X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=NodeUpdate.py;h=6264b0b39ecf83221bd9c0f73bebfa04a98fa8ec;hb=54b77d7dee54fa4970f41a13bcd0391995cb07a0;hp=ff0403cbab5d705ca2abf1c86fc85644c35fb13e;hpb=a9c8aea2845bfd31776ded326f86432036bc588a;p=nodeupdate.git diff --git a/NodeUpdate.py b/NodeUpdate.py old mode 100644 new mode 100755 index ff0403c..6264b0b --- a/NodeUpdate.py +++ b/NodeUpdate.py @@ -52,7 +52,7 @@ DELETE_RPM_LIST_FILE= '/etc/planetlab/delete-rpm-list' # so, we force the update of crucial pkgs independently, as # the whole group is sometimes too much to swallow # this one is builtin -CRUCIAL_PACKAGES_BUILTIN=[ 'NodeManager' , 'NodeUpdate' ] +CRUCIAL_PACKAGES_BUILTIN=[ 'NodeUpdate' , 'nodemanager' ] # and operations can also try to push a list through a conf_file # should use the second one for consistency, try the first one as well for legacy CRUCIAL_PACKAGES_OPTIONAL_PATH1='/etc/planetlab/NodeUpdate.packages' @@ -176,8 +176,14 @@ class NodeUpdate: try: crucial_packages += file(CRUCIAL_PACKAGES_OPTIONAL_PATH2).read().split() except: pass for package in crucial_packages: - Message( "\nUpdating crucial package %s" % package) - os.system( "%s %s -y update %s" %(YUM_PATH, yum_options, package)) + # if package is not yet installed, like e.g. slice images, + # need to yum install, not yum update + if os.system("rpm -q %s > /dev/null"%package)==0: + Message( "\nUpdating crucial package %s" % package) + os.system( "%s %s -y update %s" %(YUM_PATH, yum_options, package)) + else: + Message( "\Installing crucial package %s" % package) + os.system( "%s %s -y install %s" %(YUM_PATH, yum_options, package)) except: pass @@ -252,7 +258,7 @@ class NodeUpdate: Message ("Successfully removed RPM %s"%rpm) continue else: - Error( "Unable to delete RPM %s, continuing. rc=%d" % (rpm,rc )) + Error( "Unable to delete RPM %s, continuing. rc=%d" % (rpm,uninstalled)) else: Message( "No RPMs list file found." )