-
Notifications
You must be signed in to change notification settings - Fork 0
/
dc_env_param.py
51 lines (40 loc) · 1.43 KB
/
dc_env_param.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
from botocore.exceptions import ClientError
from utils import EachAccount
param_name = "DC_ENVIRONMENT"
@EachAccount()
def check_dc_env_param_set(account):
ssm_client = account.session.client("ssm")
try:
has_dc_env_set = ssm_client.get_parameter(Name=param_name)["Parameter"]["Value"]
except ClientError as e:
if e.response['Error']['Code'] == 'ParameterNotFound':
has_dc_env_set = False
else:
raise
print("\t".join([str(has_dc_env_set), account.name]))
@EachAccount()
def set_dc_env_values(account):
ssm_client = account.session.client("ssm")
try:
has_dc_env_set = ssm_client.get_parameter(Name=param_name)["Parameter"]["Value"]
except ClientError as e:
if e.response['Error']['Code'] == 'ParameterNotFound':
has_dc_env_set = False
else:
raise
if not has_dc_env_set:
env = None
if account.name.startswith("Production -"):
env = "production"
if account.name.startswith("Staging -"):
env = "staging"
if account.name.startswith("Dev -"):
env = "development"
if env:
ssm_client.put_parameter(Name=param_name, Value=env, Type="String")
if __name__ == "__main__":
# Uncomment to check
# check_dc_env_param_set()
# Uncomment to set
# set_dc_env_values()
print("Look at the file ane uncomment depending on what you're doing")