summaryrefslogtreecommitdiff
path: root/trove/instance/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'trove/instance/models.py')
-rw-r--r--trove/instance/models.py35
1 files changed, 21 insertions, 14 deletions
diff --git a/trove/instance/models.py b/trove/instance/models.py
index fe424bc8..afdb1ff8 100644
--- a/trove/instance/models.py
+++ b/trove/instance/models.py
@@ -968,23 +968,30 @@ class BaseInstance(SimpleInstance):
return self._server_group
def prepare_cloud_config(self, files):
- userdata = (
- "#cloud-config\n"
- "write_files:\n"
- )
+ # This method returns None if the files argument is None
+ userdata = None
- for filename, content in files.items():
- ud = encodeutils.safe_encode(content)
- body_userdata = (
- "- encoding: b64\n"
- " owner: trove:trove\n"
- " path: %s\n"
- " content: %s\n" % (
- filename, encodeutils.safe_decode(base64.b64encode(ud)))
+ if files:
+ userdata = (
+ "#cloud-config\n"
+ "write_files:\n"
)
- userdata = userdata + body_userdata
- return userdata
+ injected_config_owner = CONF.get('injected_config_owner')
+ injected_config_group = CONF.get('injected_config_group')
+ for filename, content in files.items():
+ ud = encodeutils.safe_encode(content)
+ body_userdata = (
+ "- encoding: b64\n"
+ " owner: %s:%s\n"
+ " path: %s\n"
+ " content: %s\n" % (
+ injected_config_owner, injected_config_group, filename,
+ encodeutils.safe_decode(base64.b64encode(ud)))
+ )
+ userdata = userdata + body_userdata
+
+ return userdata if userdata else ""
def get_injected_files(self, datastore_manager, datastore_version):
injected_config_location = CONF.get('injected_config_location')