Merge "Allow deployment on Centos 6.5 environment"
[genesis.git] / fuel / deploy / configure_environment.py
1 import common
2 import os
3 import shutil
4 import yaml
5
6
7 from configure_settings import ConfigureSettings
8 from configure_network import ConfigureNetwork
9
10 N = common.N
11 E = common.E
12 R = common.R
13 RO = common.RO
14 exec_cmd = common.exec_cmd
15 parse = common.parse
16 err = common.err
17
18 class ConfigureEnvironment(object):
19
20     def __init__(self, dea, yaml_config_dir):
21         self.env_id = None
22         self.dea = dea
23         self.yaml_config_dir = yaml_config_dir
24         self.env_name = dea.get_environment_name()
25
26     def env_exists(self, env_name):
27         env_list = parse(exec_cmd('fuel env --list'))
28         for env in env_list:
29             if env[E['name']] == env_name and env[E['status']] == 'new':
30                 return True
31         return False
32
33     def get_env_id(self, env_name):
34         env_list = parse(exec_cmd('fuel env --list'))
35         for env in env_list:
36             if env[E['name']] == env_name:
37                 return env[E['id']]
38
39     def configure_environment(self, dea):
40         exec_cmd('fuel env -c --name %s --release %s --mode ha --net neutron '
41                  '--nst vlan' % (self.env_name,
42                                  self.supported_release[R['id']]))
43
44         self.env_id = self.get_env_id(self.env_name)
45         if not self.env_exists(self.env_name):
46             err("Failed to create environment %s" % self.env_name)
47
48         self.config_settings()
49         self.config_network()
50
51     def config_settings(self):
52         if os.path.exists(self.yaml_config_dir):
53             shutil.rmtree(self.yaml_config_dir)
54         os.makedirs(self.yaml_config_dir)
55
56         settings = ConfigureSettings(self.yaml_config_dir, self.env_id)
57         settings.config_settings()
58
59
60     def config_network(self):
61         network_yaml=self.yaml_config_dir + '/network_%s.yaml' % self.env_id
62         os.remove(network_yaml)
63
64         network = ConfigureNetwork(self.yaml_config_dir, network_yaml,
65                                    self.env_id, self.dea)
66         network.config_network()
67
68
69
70