-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfiguration.py
More file actions
67 lines (60 loc) · 2.68 KB
/
configuration.py
File metadata and controls
67 lines (60 loc) · 2.68 KB
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import yaml
class Configuration:
server_provider_type: str
server_provider_api_key: str
dns_provider_type: str
dns_provider_api_key: str
instance: str
server_name: str
uuid: str
image: str
ssh_pub_key: str
def __init__(self, server_provider_type, server_provider_api_key, dns_provider_type, dns_provider_api_key,instance, server_name, uuid, image, ssh_pub_key, lets_encrypt_email, components):
self.server_provider_type = server_provider_type
self.server_provider_api_key = server_provider_api_key
self.dns_provider_type = dns_provider_type
self.dns_provider_api_key = dns_provider_api_key
self.instance = instance
self.server_name = server_name
self.uuid = uuid
self.image = image
self.ssh_pub_key = ssh_pub_key
self.lets_encrypt_email = lets_encrypt_email
self.components = components
@classmethod
def from_manifest(cls, file_name):
with open(file_name) as stream:
try:
yml = yaml.safe_load(stream)
except yaml.YAMLError as exc:
click.echo(exc)
return cls(yml['provider']['type'], yml['provider']['api_key'], yml['dns']['type'], yml['dns']['api_key'],yml['instance'], yml['server_name'], yml['uuid'], yml['image'], yml['ssh_pub_key'], yml['lets_encrypt_email'], yml['components'])
def render_ansible_vars(self):
variables = {
"letsencrypt_email": self.lets_encrypt_email,
"docker_compose_services": self.components
}
with open('ansible/group_vars/all/vars.yml', 'w') as outfile:
yaml.dump(variables, outfile, default_flow_style=False)
def set_server_provider_type(self, server_provider_type):
self.server_provider_type = server_provider_type
def set_server_provider_api_key(self, server_provider_api_key):
self.server_provider_api_key = server_provider_api_key
def set_dns_provider_type(self, dns_provider_type):
self.dns_provider_type = dns_provider_type
def set_dns_provider_api_key(self, dns_provider_api_key):
self.dns_provider_api_key = dns_provider_api_key
def set_instance(self, instance):
self.instance = instance
def set_server_name(self, server_name):
self.server_name = server_name
def set_uuid(self, uuid):
self.uuid = uuid
def set_image(self, image):
self.image = image
def set_ssh_pub_key(self, ssh_pub_key):
self.ssh_pub_key = ssh_pub_key
def set_lets_encrypt_email(self, lets_encrypt_email):
self.lets_encrypt_email = lets_encrypt_email
def set_components(self, components):
self.components = components