Skip to content

Commit 7909033

Browse files
committed
Fixed files recast
1 parent 50d0521 commit 7909033

File tree

4 files changed

+27
-14
lines changed

4 files changed

+27
-14
lines changed

ecs_files_composer/cli.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,13 @@ def main():
6565
required=False,
6666
default="jinja2",
6767
)
68+
parser.add_argument(
69+
"--override-init-folder",
70+
dest="init_folder",
71+
required=False,
72+
type=str,
73+
default="",
74+
)
6875
parser.add_argument("_", nargs="*")
6976
args = parser.parse_args()
7077
print("Arguments: " + str(args._))
@@ -82,30 +89,35 @@ def main():
8289
env_var=args.env_var,
8390
decode_base64=args.decode_base64,
8491
context=args.context,
92+
override_folder=args.init_folder,
8593
)
8694
elif args.file_path:
8795
config = init_config(
8896
file_path=args.file_path,
8997
decode_base64=args.decode_base64,
9098
context=args.context,
99+
override_folder=args.init_folder,
91100
)
92101
elif args.ssm_config:
93102
config = init_config(
94103
ssm_parameter=args.ssm_config,
95104
decode_base64=args.decode_base64,
96105
context=args.context,
106+
override_folder=args.init_folder,
97107
)
98108
elif args.s3_config:
99109
config = init_config(
100110
s3_config=args.s3_config,
101111
decode_base64=args.decode_base64,
102112
context=args.context,
113+
override_folder=args.init_folder,
103114
)
104115
elif args.secret_config:
105116
config = init_config(
106117
secret_config=args.secret_config,
107118
decode_base64=args.decode_base64,
108119
context=args.context,
120+
override_folder=args.init_folder,
109121
)
110122
else:
111123
raise parser.error(

ecs_files_composer/ecs_files_composer.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ def init_config(
3838
external_id=None,
3939
decode_base64=False,
4040
context=None,
41+
override_folder: str = None,
4142
):
4243
"""
4344
Function to initialize the configuration
@@ -95,8 +96,11 @@ def init_config(
9596
if not initial_config:
9697
raise ImportError("Failed to import a configuration content")
9798
LOG.debug(initial_config)
98-
temp_dir = TemporaryDirectory()
99-
config_path = f"{temp_dir.name}/init.conf"
99+
if not override_folder:
100+
temp_dir = TemporaryDirectory()
101+
config_path = f"{temp_dir.name}/init.conf"
102+
else:
103+
config_path = f"{override_folder}/init.conf"
100104
jobs_input_def = {
101105
"files": {config_path: initial_config},
102106
"IamOverride": iam_override,
@@ -123,7 +127,8 @@ def init_config(
123127
def process_files(job: Model, override_session=None) -> None:
124128
files: list = []
125129
for file_path, file in job.files.items():
126-
file_redef = File(**file.dict())
130+
config = json.loads(file.json(by_alias=True))
131+
file_redef = File(**config)
127132
file_redef.path = file_path
128133
files.append(file_redef)
129134
for file in files:

ecs_files_composer/files_mgmt.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,6 @@ class File(FileDef):
3232
def __init__(self, **data: Any):
3333
super().__init__(**data)
3434
self.templates_dir = None
35-
self.dir_path = None
36-
37-
def set_dir_path(self):
38-
if self.path:
39-
self.dir_path = path.abspath(path.dirname(self.path))
4035

4136
def handler(self, iam_override=None, session_override=None):
4237
"""
@@ -45,9 +40,7 @@ def handler(self, iam_override=None, session_override=None):
4540
:param ecs_files_composer.input.IamOverrideDef iam_override:
4641
:param boto3.session.Session session_override:
4742
"""
48-
if not self.dir_path:
49-
self.set_dir_path()
50-
if self.dir_path and not path.exists(self.dir_path):
43+
if not path.exists(self.dir_path):
5144
print(f"Creating {self.dir_path} folder")
5245
dir_path = pathlib.Path(path.abspath(self.dir_path))
5346
dir_path.mkdir(parents=True, exist_ok=True)
@@ -74,6 +67,10 @@ def handler(self, iam_override=None, session_override=None):
7467
if self.commands and self.commands.post:
7568
self.exec_post_commands()
7669

70+
@property
71+
def dir_path(self) -> str:
72+
return path.abspath(path.dirname(self.path))
73+
7774
def handle_sources(self, iam_override=None, session_override=None):
7875
"""
7976
Handles files from external sources
@@ -190,8 +187,7 @@ def render_jinja(self):
190187
template = jinja_env.get_template(path.basename(self.path))
191188
self.content = template.render(env=os.environ)
192189
self.write_content(is_template=False)
193-
except jinja2.exceptions.TemplateNotFound as error:
194-
LOG.exception(error)
190+
except jinja2.exceptions.TemplateNotFound:
195191
LOG.error(listdir(self.templates_dir.name))
196192
raise
197193

ecs_files_composer/input.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# generated by datamodel-codegen:
22
# filename: ecs-files-input.json
3-
# timestamp: 2022-07-28T00:59:13+00:00
3+
# timestamp: 2022-07-28T09:25:01+00:00
44

55
from __future__ import annotations
66

0 commit comments

Comments
 (0)