X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=NodeUpdate.py;h=6264b0b39ecf83221bd9c0f73bebfa04a98fa8ec;hb=54b77d7dee54fa4970f41a13bcd0391995cb07a0;hp=704f5444aaccc6a5a69bedef238a7f2b5170c91e;hpb=ad27085b67f6414bb6ba9903102bd1a5d2bf5dd4;p=nodeupdate.git diff --git a/NodeUpdate.py b/NodeUpdate.py old mode 100644 new mode 100755 index 704f544..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=[ 'NodeUpdate' , 'NodeManager' ] +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