Fix: upload_cirros hash mixup. 57/15857/2
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Sat, 18 Jun 2016 02:03:41 +0000 (04:03 +0200)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Sat, 18 Jun 2016 14:59:13 +0000 (16:59 +0200)
Change-Id: Ibd41229ce744256fc289756708d64c3fedede9f4
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
patches/fuel-library/0006-upload_cirros-Add-direct-kernel-boot-support.patch

index a928761..ab4100c 100644 (file)
@@ -15,22 +15,28 @@ diff --git a/deployment/puppet/osnailyfacter/modular/astute/upload_cirros.rb b/d
 index f0441b0..a619f3f 100755
 --- a/deployment/puppet/osnailyfacter/modular/astute/upload_cirros.rb
 +++ b/deployment/puppet/osnailyfacter/modular/astute/upload_cirros.rb
-@@ -56,7 +56,7 @@ def image_list
+@@ -52,11 +52,11 @@ def image_list
+   stdout = `glance --verbose image-list`
+   return_code = $?.exitstatus
+-  images = []
++  images = Hash[]
+   stdout.split("\n").each do |line|
      fields = line.split('|').map { |f| f.chomp.strip }
      next if fields[1] == 'ID'
      next unless fields[2]
 -    images << {fields[2] => fields[6]}
-+    images << {fields[2] => { :id => fields[1], :status => fields[6]}}
++    images[fields[2]] = { :id => fields[1], :status => fields[6] }
    end
    {:images => images, :exit_code => return_code}
  end
-@@ -78,6 +78,15 @@ EOF
+@@ -78,6 +78,16 @@ EOF
    [ stdout, return_code ]
  end
  
 +# Calls glance update-image with a given property and value
++# Supported properties: 'kernel-id', 'ramdisk-id'
 +def update_image(image_id, property, value)
-+  command = "/usr/bin/openstack image set --property #{property}=#{value} #{image_id}"
++  command = "/usr/bin/openstack image set --#{property}=#{value} #{image_id}"
 +  puts command
 +  stdout = `#{command}`
 +  return_code = $?.exitstatus
@@ -45,11 +51,20 @@ index f0441b0..a619f3f 100755
  def check_image(image)
    list_of_images = image_list
 -  if list_of_images[:exit_code] == 0 && list_of_images[:images].include?(image['img_name'] => "active")
-+  if list_of_images[:exit_code] == 0 && list_of_images[:images].select { |k,v| k == image['img_name'] and v[:status] == "active" }
++  if list_of_images[:exit_code] == 0 && list_of_images[:images].select { |k,v| k == image['img_name'] and v[:status] == "active" }.count > 0
      return true
    end
    return false
-@@ -157,6 +166,43 @@ def delete_image(image_name)
+@@ -142,7 +151,7 @@ end
+ # the first one
+ def cleanup_image(image)
+   list_of_images = image_list
+-  unless list_of_images[:images].select { |img_hash| img_hash.key?(image['img_name']) }.empty?
++  unless list_of_images[:images].select { |img_hash, v| img_hash == image['img_name'] }.count == 0
+     delete_image(image['img_name'])
+   end
+ end
+@@ -157,6 +166,41 @@ def delete_image(image_name)
    [ stdout, return_code ]
  end
  
@@ -76,11 +91,9 @@ index f0441b0..a619f3f 100755
 +        if i['img_name'].start_with?(image['img_name'])
 +          ret = 0
 +          if i['disk_format'] == 'aki'
-+            _, ret = update_image(image['id'], 'property',
-+                                        "kernel_id=#{i['id']}")
++            _, ret = update_image(image['id'], 'kernel-id', i['id'])
 +          elsif i['disk_format'] == 'ari'
-+            _, ret = update_image(image['id'], 'property',
-+                                        "ramdisk_id=#{i['id']}")
++            _, ret = update_image(image['id'], 'ramdisk-id', i['id'])
 +          end
 +          return_code += ret
 +        end