Thanks to visit codestin.com
Credit goes to github.com

Skip to content
This repository was archived by the owner on Aug 19, 2021. It is now read-only.

Commit 2e83217

Browse files
authored
Add deployment jinja var
The deployment terraform variable is no longer added by default. It can be added if desired using the deployment jinja template variable. DA-1606
1 parent ff5e77c commit 2e83217

File tree

7 files changed

+20
-21
lines changed

7 files changed

+20
-21
lines changed

tests/commands/test_root.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ def test_config_loader(self, rootc):
4545
"region": "us-west-2",
4646
"domain": "test.domain.com",
4747
}
48+
rootc.add_arg("deployment", "root-deployment")
49+
rootc.load_config()
4850
terraform_config = rootc.config.get("terraform")
4951
for section in expected_sections:
5052
assert section in terraform_config.keys()
@@ -53,6 +55,9 @@ def test_config_loader(self, rootc):
5355
assert terraform_config["terraform_vars"][k] == v
5456

5557
def test_config_formats(self, yaml_base_rootc, json_base_rootc, hcl_base_rootc):
58+
yaml_base_rootc.load_config()
59+
json_base_rootc.load_config()
60+
hcl_base_rootc.load_config()
5661
yaml_config = yaml_base_rootc.config
5762
json_config = json_base_rootc.config
5863
hcl_config = hcl_base_rootc.config
@@ -64,7 +69,6 @@ def test_config_formats(self, yaml_base_rootc, json_base_rootc, hcl_base_rootc):
6469
@pytest.mark.parametrize(
6570
"var, expected",
6671
[
67-
("//deployment//", "test-0001"),
6872
("//aws-region//}}", "us-west-2"),
6973
("// aws-region //}}", "us-west-2"),
7074
("//aws_region//}}", "us-west-2"),
@@ -73,6 +77,8 @@ def test_config_formats(self, yaml_base_rootc, json_base_rootc, hcl_base_rootc):
7377
],
7478
)
7579
def test_replace_vars(self, rootc, var, expected):
80+
rootc.add_arg("deployment", "root-deployment")
81+
rootc.load_config()
7682
assert replace_vars(var, rootc.args) == expected
7783

7884
@pytest.mark.parametrize(

tests/conftest.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@ def grootc():
113113
"config_file": os.path.join(
114114
os.path.dirname(__file__), "fixtures", "gcp_test_config.yaml"
115115
),
116-
"deployment": "test-0001",
117116
"gcp_creds_path": "/home/test/test-creds.json",
118117
"gcp_project": "test_project",
119118
"gcp_region": "us-west-2b",
@@ -138,7 +137,6 @@ def rootc(s3_client, dynamodb_client, sts_client):
138137
"config_file": os.path.join(
139138
os.path.dirname(__file__), "fixtures", "test_config.yaml"
140139
),
141-
"deployment": "test-0001",
142140
"gcp_creds_path": "/home/test/test-creds.json",
143141
"gcp_project": "test_project",
144142
"gcp_region": "us-west-2b",
@@ -163,7 +161,6 @@ def json_base_rootc(s3_client, dynamodb_client, sts_client):
163161
"config_file": os.path.join(
164162
os.path.dirname(__file__), "fixtures", "base_config_test.json"
165163
),
166-
"deployment": "test-0001",
167164
"gcp_creds_path": "/home/test/test-creds.json",
168165
"gcp_project": "test_project",
169166
"gcp_region": "us-west-2b",
@@ -188,7 +185,6 @@ def yaml_base_rootc(s3_client, dynamodb_client, sts_client):
188185
"config_file": os.path.join(
189186
os.path.dirname(__file__), "fixtures", "base_config_test.yaml"
190187
),
191-
"deployment": "test-0001",
192188
"gcp_creds_path": "/home/test/test-creds.json",
193189
"gcp_project": "test_project",
194190
"gcp_region": "us-west-2b",
@@ -213,7 +209,6 @@ def hcl_base_rootc(s3_client, dynamodb_client, sts_client):
213209
"config_file": os.path.join(
214210
os.path.dirname(__file__), "fixtures", "base_config_test.hcl"
215211
),
216-
"deployment": "test-0001",
217212
"gcp_creds_path": "/home/test/test-creds.json",
218213
"gcp_project": "test_project",
219214
"gcp_region": "us-west-2b",

tests/fixtures/test_config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ terraform:
2929
region: {{ aws_region }}
3030
deprecated_region: //aws-region//
3131
domain: "test.domain.com"
32+
deployment: {{ deployment }}
3233
ip_list:
3334
- 127.0.0.1/32
3435
- 192.168.0.1/32

tests/test_definitions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@
3838
region = "us-west-2"
3939
deprecated_region = "us-west-2"
4040
domain = "test.domain.com"
41+
deployment = "test-0001"
4142
ip_list = ["127.0.0.1/32", "192.168.0.1/32"]
4243
map_list = {"list": ["a", "b", "c"]}
4344
map_map = {"map": {"list": ["x", "y", "z"]}}
44-
deployment = "test-0001"
4545
"""
4646

4747

tfworker/commands/base.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,13 @@ def __init__(
3636
self._definitions = None
3737
self._backend = None
3838
self._plugins = None
39-
self._template_vars = OrderedDict()
4039
self._terraform_vars = OrderedDict()
4140
self._remote_vars = OrderedDict()
4241

4342
self._temp_dir = rootc.temp_dir
4443
self._repository_path = rootc.args.repository_path
44+
rootc.add_arg("deployment", deployment)
45+
rootc.load_config()
4546
self._authenticators = AuthenticatorsCollection(
4647
rootc.args, deployment=deployment, **kwargs
4748
)

tfworker/commands/root.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ def __init__(self, args=None, clean=True):
3535
self.clean = clean
3636
self.temp_dir = tempfile.mkdtemp()
3737
self.args = self.StateArgs()
38+
self.config_file = None
3839

3940
# Config accessors
4041
self.tf = None
@@ -45,7 +46,7 @@ def __init__(self, args=None, clean=True):
4546

4647
if args.get("config_file") and args.get("backend"):
4748
click.secho(f"loading config file {args.get('config_file')}", fg="green")
48-
self.load_config(args.get("config_file"))
49+
self.config_file = args.get("config_file")
4950

5051
def __del__(self):
5152
"""Cleanup the temporary directory after execution."""
@@ -65,19 +66,21 @@ def add_arg(self, k, v):
6566
setattr(self.args, k, v)
6667
return None
6768

68-
def load_config(self, config_file):
69+
def load_config(self):
70+
if not self.config_file:
71+
return
6972
try:
7073
template_reader = io.StringIO()
7174
jinja_env = jinja2.Environment(
7275
undefined=StrictUndefined,
73-
loader=jinja2.FileSystemLoader(pathlib.Path(config_file).parents[0]),
76+
loader=jinja2.FileSystemLoader(pathlib.Path(self.config_file).parents[0]),
7477
)
75-
template_config = jinja_env.get_template(pathlib.Path(config_file).name)
78+
template_config = jinja_env.get_template(pathlib.Path(self.config_file).name)
7679
# maybe get_env should be optional?
7780
template_config.stream(
7881
**self.args.template_items(return_as_dict=True, get_env=True)
7982
).dump(template_reader)
80-
if config_file.endswith(".hcl"):
83+
if self.config_file.endswith(".hcl"):
8184
self.config = ordered_config_load_hcl(template_reader.getvalue(), self.args)
8285
else:
8386
self.config = ordered_config_load(template_reader.getvalue(), self.args)
@@ -87,7 +90,7 @@ def load_config(self, config_file):
8790
self.tf = self.config.get("terraform", OrderedDict())
8891
self._pullup_keys()
8992
except jinja2.exceptions.TemplateNotFound as e:
90-
path = pathlib.Path(config_file).parents[0]
93+
path = pathlib.Path(self.config_file).parents[0]
9194
click.secho(f"can not read template file: {path}/{e}", fg="red")
9295
raise SystemExit(1)
9396
except jinja2.exceptions.UndefinedError as e:

tfworker/definitions.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,6 @@ def __init__(
5555
self._remote_vars = self.make_vars(
5656
body.get("remote_vars", collections.OrderedDict()), global_remote_vars
5757
)
58-
self._template_vars = self.make_vars(
59-
body.get("template_vars", collections.OrderedDict()), global_template_vars
60-
)
6158
self._terraform_vars = self.make_vars(
6259
body.get("terraform_vars", collections.OrderedDict()), global_terraform_vars
6360
)
@@ -123,10 +120,6 @@ def prep(self, backend):
123120
except FileExistsError as e:
124121
raise ReservedFileError(e)
125122

126-
# Prepare variables
127-
self._template_vars["deployment"] = self._deployment
128-
self._terraform_vars["deployment"] = self._deployment
129-
130123
# Create local vars from remote data sources
131124
if len(list(self._remote_vars.keys())) > 0:
132125
with open(f"{self._target}/worker-locals.tf", "w+") as tflocals:

0 commit comments

Comments
 (0)