Просмотр исходного кода

GCE Instance working user data

almahmoud 7 лет назад
Родитель
Сommit
6e69d8ab0d

+ 5 - 3
cloudbridge/cloud/providers/gce/resources.py

@@ -1100,15 +1100,17 @@ class GCEInstance(BaseInstance):
             key_pair = self._provider.security.key_pairs.get(value)
         if key_pair:
             kp = key_pair._key_pair
-            kp_items = [{
+            kp_entry = {
                 "key": "ssh-keys",
                 # Format is not removed from public key portion
                 "value": "{}:{} {}".format(self._provider.vm_default_user_name,
                                            kp.public_key,
                                            kp.name)
-            }]
+            }
+            items = self._gce_instance['metadata'].get('items', [])
+            items.append(kp_entry)
             config = {
-                "items": kp_items,
+                "items": items,
                 "fingerprint": self._gce_instance['metadata']['fingerprint']
             }
             try:

+ 4 - 0
cloudbridge/cloud/providers/gce/services.py

@@ -447,6 +447,10 @@ class GCEInstanceService(BaseInstanceService):
                 config['tags'] = {}
                 config['tags']['items'] = vm_firewall_names
 
+        if user_data:
+            entry = {'key': 'startup-script', 'value': user_data}
+            config['metadata'] = {'items': [entry]}
+
         operation = (self.provider
                          .gce_compute.instances()
                          .insert(project=self.provider.project_name,