Opened 12 years ago
Closed 12 years ago
#330 closed defect (fixed)
tomcat user and initpetascopedb function in /etc/init.d/rasdaman script
Reported by: | damiano | Owned by: | Dimitar Misev |
---|---|---|---|
Priority: | major | Milestone: | 8.4 |
Component: | RPM | Version: | 8.4 |
Keywords: | initpetascopedb | Cc: | mantovani@… |
Complexity: | Medium |
Description
With the following distro initpetascopedb function fails
- Scientific Linux release 6.X
- CentOS release 6.X
Probably with any other EL 6.X distro the function will not work (Not tested)
In these distro tomcat user is "tomcat" and not "tomcat6"
Error:
At row 203 function search for hard-coded user tomcat6 in petascope.properties so it is assumed tomcat6 user as default user.
Consequently the grep command return 0, the sed command is not executed and in petascope.properties metadata_user remains tomcat6
update_petascopedb.sh: postgres settings read from /etc/rasdaman/petascope.properties
update_petascopedb.sh: user: tomcat6
update_petascopedb.sh: port: 5432
update_petascopedb.sh: db: petascopedb
update_petascopedb.sh: no petascope database found, creating… createdb: could not connect to database postgres: FATAL: role "tomcat6" does not exist
failed.
update_petascopedb.sh: exiting.
Proposed Solution
Execute the sed command directly, removing grep at row 203 and the if statement at row 204. The tomcat use is identified correctly in the previous step and is in variable $tomcat_user.
Solution tested, works
Ciao
Damiano
# /etc/init.d/rasdaman initpetascopedb
creating user
update_petascopedb.sh: postgres settings read from /etc/rasdaman/petascope.properties
update_petascopedb.sh: user: tomcat
update_petascopedb.sh: port: 5432
update_petascopedb.sh: db: petascopedb
update_petascopedb.sh: no petascope database found, creating… ok.
update_petascopedb.sh: executing updates:
update_petascopedb.sh: update 0… ok.
update_petascopedb.sh: update 1… ok.
update_petascopedb.sh: update 2… ok.
update_petascopedb.sh: update 3… ok.
update_petascopedb.sh: update 4… ok.
update_petascopedb.sh: update 5… ok.
update_petascopedb.sh: update 6… ok.
update_petascopedb.sh: update 7… ok.
update_petascopedb.sh: updated database to update 7
update_petascopedb.sh: done, exiting.
Attachments (1)
Change History (11)
comment:1 by , 12 years ago
by , 12 years ago
rasdaman init script in rasdaman-8.4.0-rc.2.2.el6.x86_64.rpm
comment:2 by , 12 years ago
Yes dimitar, function is updated but tomcat6 remains hard-coded in the following section (row 203:207):
# update petascope user in configuration, unless the user has changed it
grep 'metadata_user=tomcat6' /etc/rasdaman/petascope.properties > /dev/null
if [ $? -ne 0 ]; then
sed -i 's/metadata_user=.\+/metadata_user='$tomcat_user'/' /etc/rasdaman/petascope.properties
fi
file attached
Ciao
Damiano
comment:3 by , 12 years ago
We check for the tomcat6 user because this is the default user defined in the properties when rasdaman-petascope is installed. If the petascope user is not tomcat6 then it's assumed that the user has changed the configuration, and we should not overwrite these modifications.
comment:4 by , 12 years ago
Status: | new → accepted |
---|
But it seems I haven't tested properly with a different user in petascope.properties, the initpetascopedb should not give an error.
comment:5 by , 12 years ago
Ah, the
grep 'metadata_user=tomcat6' /etc/rasdaman/petascope.properties > /dev/null if [ $? -ne 0 ]; then
should be
grep 'metadata_user=tomcat6' /etc/rasdaman/petascope.properties > /dev/null if [ $? -eq 0 ]; then
comment:7 by , 12 years ago
Ok Dimitar, now I understand your point of view and why you check for "tomcat6" user
To change if condition "-ne" with "-eq" fix the issue.
Tested.
Ciao
Damiano
# /etc/init.d/rasdaman initpetascopedb
creating user
update_petascopedb.sh: postgres settings read from /etc/rasdaman/petascope.properties
update_petascopedb.sh: user: tomcat
update_petascopedb.sh: port: 5432
update_petascopedb.sh: db: petascopedb
update_petascopedb.sh: no petascope database found, creating… ok.
update_petascopedb.sh: executing updates:
update_petascopedb.sh: update 0… ok.
update_petascopedb.sh: update 1… ok.
update_petascopedb.sh: update 2… ok.
update_petascopedb.sh: update 3… ok.
update_petascopedb.sh: update 4… ok.
update_petascopedb.sh: update 5… ok.
update_petascopedb.sh: update 6… ok.
update_petascopedb.sh: update 7… ok.
update_petascopedb.sh: updated database to update 7
update_petascopedb.sh: done, exiting.
comment:8 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
Thanks for checking, so fixed in changeset:2aa58a0 and we close the ticket.
comment:9 by , 12 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
if condition is again "-ne" and not "-eq" with the latest rpm 8.4.1
# rpm -qa | grep rasda
rasdaman-petascope-8.4.1-1.el6.noarch
rasdaman-8.4.1-1.el6.x86_64
# update petascope user in configuration, unless the user has changed it
grep 'metadata_user=tomcat6' /etc/rasdaman/petascope.properties > /dev/null
if [ $? -ne 0 ]; then
sed -i 's/metadata_user=.\+/metadata_user='$tomcat_user'/' /etc/rasdaman/petascope.properties
fi
comment:10 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
fixed in rasdaman-8.4.1-2.el6.x86_64.rpm
thanks Joachim
Do you have the latest RPMs? I've fixed this just before tagging 8.4.0-rc.2, in changeset:a7b70d9
Can you attach the rasdaman init script here?