Fix: Labels should always include config name
[releng/global-jjb.git] / jenkins-admin / create_jenkins_clouds_openstack_yaml.py
index 4201cdb..50c4c03 100755 (executable)
@@ -97,12 +97,13 @@ jenkins:
 """
 machinetemplate = """\
           - labels: {{ labels }}
-            name: {{ name_prefix }}-{{ labels }}
+            name: {{ name_prefix }}-{{ agent_name }}
             slaveOptions:
               bootSource:
-                volumeFromImage:
+                {{ image_type }}:
                   name: {{ image_name }}
-                  volumeSize: {{ volume_size }}
+{%- if image_type == "volumeFromImage"  %}
+                  volumeSize: {{ volume_size }}{% endif %}
 {%- if hardware_id  %}
               hardwareId: {{ hardware_id }}{% endif %}
 {%- if instance_cap %}
@@ -200,13 +201,19 @@ for section in config_parser_merged.sections():
                 value = lookuptable[value]
             section_all_machines[key] = value
 
-        # Default volume size of 10
         if "volume_size" not in section_all_machines:
-            section_all_machines.update(volume_size="10")
+            section_all_machines.update(image_type="image")
+        else:
+            section_all_machines.update(image_type="volumeFromImage")
+
+        # Naming and labels
+        section_all_machines.update(agent_name=section)
         if "labels" not in section_all_machines:
-            print("LABELS not Set in builder config")
-            print(section_all_machines)
-            exit(1)
+            # "section" is the name of the cloud agent, which is the default label
+            section_all_machines.update(labels=section)
+        elif section not in section_all_machines["labels"]:
+            labels = section + " " + section_all_machines["labels"]
+            section_all_machines.update(labels=labels)
 
         j2_template = Template(machinetemplate)
         section_all_machines.update(name_prefix=name_prefix)