Skip to content

Commit 2ce13ef

Browse files
author
Jim Robinson
committed
Export json and yaml as raw data
1 parent da1a0cf commit 2ce13ef

File tree

2 files changed

+23
-7
lines changed

2 files changed

+23
-7
lines changed

croudtech_bootstrap_app/bootstrap.py

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,14 @@ def get_params(self):
152152
app_params = {**common_params, **app_params}
153153
return self.parse_params(app_params)
154154

155+
def get_raw_params(self):
156+
app_params = self.app.get_remote_params(flatten=False)
157+
158+
if self.include_common:
159+
common_params = self.common_app.get_remote_params(flatten=False)
160+
app_params = {**common_params, **app_params}
161+
return self.parse_params(app_params)
162+
155163
def params_to_env(self, export=False):
156164
strings = []
157165
for parameter, value in self.get_params().items():
@@ -206,13 +214,15 @@ def upload_to_s3(self):
206214
def s3_key(self):
207215
return os.path.join("", self.environment.name, ".".join([self.name, "yaml"]))
208216

209-
def fetch_from_s3(self) -> typing.Dict[str, Any]:
217+
def fetch_from_s3(self, raw=False) -> typing.Dict[str, Any]:
210218
if not hasattr(self, "_s3_data"):
211219
response = self.s3_client.get_object(
212220
Bucket = self.environment.manager.bucket_name,
213221
Key = self.s3_key
214222
)
215223
self._s3_data = yaml.load(response["Body"], Loader=yaml.SafeLoader)
224+
if raw:
225+
return self._s3_data
216226
for key, value in self._s3_data.items():
217227
self._s3_data[key] = self.parse_value(value)
218228

@@ -259,7 +269,7 @@ def remote_secrets(self) -> typing.Dict[str, Any]:
259269
@property
260270
def remote_values(self) -> typing.Dict[str, Any]:
261271
if not hasattr(self, "_remote_values"):
262-
self._remote_values = self.fetch_from_s3()
272+
self._remote_values = self.fetch_from_s3(self.raw)
263273

264274
return self._remote_values
265275

@@ -268,9 +278,15 @@ def get_local_params(self):
268278
app_secrets = self.convert_flatten(self.local_secrets)
269279
return {**app_values, **app_secrets}
270280

271-
def get_remote_params(self):
272-
app_values = self.convert_flatten(self.remote_values)
273-
app_secrets = self.convert_flatten(self.remote_secrets)
281+
def get_remote_params(self, flatten=True):
282+
if flatten:
283+
self.raw = False
284+
app_values = self.convert_flatten(self.remote_values)
285+
app_secrets = self.convert_flatten(self.remote_secrets)
286+
else:
287+
self.raw = True
288+
app_values = self.remote_values
289+
app_secrets = self.remote_secrets
274290
return {**app_values, **app_secrets}
275291

276292
def get_flattened_secrets(self) -> typing.Dict[str, Any]:

croudtech_bootstrap_app/cli.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,9 @@ def get_config(
121121
output = "Invalid output format"
122122

123123
if output_format == "json":
124-
output = json.dumps(bootstrap.get_params(), indent=2)
124+
output = json.dumps(bootstrap.get_raw_params(), indent=2)
125125
elif output_format == "yaml":
126-
output = dump(bootstrap.get_params(), Dumper=Dumper)
126+
output = dump(bootstrap.get_raw_params(), Dumper=Dumper)
127127
elif output_format == "environment":
128128
output = bootstrap.params_to_env()
129129
elif output_format == "environment-export":

0 commit comments

Comments
 (0)