From 957499791f5d80a279a599c1e34ec86352bafaf4 Mon Sep 17 00:00:00 2001 From: Dmitry Shulyak Date: Mon, 15 Jul 2013 16:08:38 +0300 Subject: [PATCH] nailgun config with identity and network opts --- .gitignore | 3 +- fuel_health/__init__.pyc | Bin 143 -> 0 bytes fuel_health/common/__init__.pyc | Bin 150 -> 0 bytes fuel_health/common/log.pyc | Bin 4130 -> 0 bytes fuel_health/common/rest_client.pyc | Bin 15277 -> 0 bytes fuel_health/common/ssh.pyc | Bin 5170 -> 0 bytes fuel_health/common/test_mixins.pyc | Bin 4079 -> 0 bytes fuel_health/common/utils/__init__.pyc | Bin 372 -> 0 bytes fuel_health/common/utils/data_utils.pyc | Bin 2009 -> 0 bytes fuel_health/common/utils/misc.pyc | Bin 639 -> 0 bytes fuel_health/config.py | 220 +++++++++++++++++++----- 11 files changed, 176 insertions(+), 47 deletions(-) delete mode 100644 fuel_health/__init__.pyc delete mode 100644 fuel_health/common/__init__.pyc delete mode 100644 fuel_health/common/log.pyc delete mode 100644 fuel_health/common/rest_client.pyc delete mode 100644 fuel_health/common/ssh.pyc delete mode 100644 fuel_health/common/test_mixins.pyc delete mode 100644 fuel_health/common/utils/__init__.pyc delete mode 100644 fuel_health/common/utils/data_utils.pyc delete mode 100644 fuel_health/common/utils/misc.pyc diff --git a/.gitignore b/.gitignore index 45977d04..a55eb57d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .idea *.egg-info -dist \ No newline at end of file +dist +*.pyc \ No newline at end of file diff --git a/fuel_health/__init__.pyc b/fuel_health/__init__.pyc deleted file mode 100644 index 07453f40f38240be9902f0a754bb2151f8cf4fe6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143 zcmZSn%*!RE`YPO2Tq JieeyU002MiA7TIi diff --git a/fuel_health/common/__init__.pyc b/fuel_health/common/__init__.pyc deleted file mode 100644 index 0062379d17976d9a6586564999b4f34282c2a9d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150 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 TUJ7m(5z^MK)>jZ2YxVyE5>0io diff --git a/fuel_health/common/test_mixins.pyc b/fuel_health/common/test_mixins.pyc deleted file mode 100644 index 31622eb4ccb4ead40925d5d0c30c0cff45ecf50d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4079 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 diff --git a/fuel_health/common/utils/data_utils.pyc b/fuel_health/common/utils/data_utils.pyc deleted file mode 100644 index e150def96b00f68ca6c23dc5b37e60ca738378c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2009 zcmcIl+iD|65Un0vt+ny)lEjd}GUUSQVJ)%j!@?4BTi6f?f{aNXgh7mETAo&BdX(-S zvko$W*q@N!$Oq*i5BY|CKys?amLbpac&2o!yQ{0K`c%2|_rd7tCx3mH(aqDt?-%&| z6-16#QAsr4VMTLwJ08(Iy2TxucLYaNcB$&oyhkd>P?xS@)2F;gIplz@VK(4>+gI;V zKBVg|%}102V|*lQ9xy%`KfpQ6KX_(i1sFyU`fa8+!PM4!R%;)gFM{^rIO8S!aTu@h z`S&5VFvF{8jpJhfh_3J|IyxD5Fg-JD!9IQwJ@B9pF7)y1Qk&OR7~DW(Lwk%a25egC zF@8ye{~Bmo)Rmq#(~YawItzZfYIJ#w1FnwwfUUkLbXtaDn$=ZR+i4R_>8E)b(uKgu z<|6E2FLu3P9~^^^AV?XOa@33m_~X+`s1E@U=UQ>VTg5@1$YEz=UYCgA)uIMYkq@a0 z60f%TJ%z#-D4`&C3zI)#w|o>*87G({-G%Tc6x`5d|2B|5Z95!@d%@RsIiL{H8m#Kj zc0gC8epO@(Udkx#YhJ^I4;i=0!yYqE2X1@9_A--x%na82fvC}^_ z;70s?@@>3wbrqkPb8X`Sta%o1YR57SMGQIsI1nOe=O>;yd48IoPEK?G6!-^>q9$Tr z)D5<_b%>WbHa07pT;~9?%|y6dY46iB?T4@{LfH6M)2VF83NVU==#|J8e?A+tKcpYG zsf9dM8nPmRPT?JhZ|r$mn*4QbSLUp7Dc5Jh{%R)mQIEeRU9xqJ8y9i3B>pH&X9KhEuXDURI=dp96rG{!sWYtOnuN$c?lumf$>! zTB;ir0noNDzl7;1#*^sKINZPaS;tucresW%mQ%|Vi3<8H$mH}!<96(sux~d3f~<@+ zL6;Y@n_0zHYcOXb>VG;d8Vwo=A78F!U8A}=DX@2;u1hZ$WqfI}mMz&uR_eC%uoWLt z40itS>87|VrfzA1OWnl+Z5@Gg{dsOa)a$D~HQonGxG}Xo@_^AJ2w@?2@SBb;WKXzp zCR{j)bX->7q@~x%2R!x>#9b(Y{@4Eu?D*5F&YMzy_88c+*jMrwJ?!jv4?)7iC;tLB CbJh*S_yJ*;pc#&V zhiZ#;9WNGPdtAB>iA;9p9xUwjov8=ec*P3YkTfXQ&6oJnYky znF$TY35D1u0C6A=#h;Qf%Nw(%e>v`}3mX!{uU&04cvo+)mJ+q2qpeZBpfRstrGUvd SxrrT`H_ZLCvgW+zW`ZByb(3KL diff --git a/fuel_health/config.py b/fuel_health/config.py index cc7cb302..17f57515 100644 --- a/fuel_health/config.py +++ b/fuel_health/config.py @@ -22,6 +22,7 @@ from oslo.config import cfg from fuel_health.common import log as logging from fuel_health.common.utils.misc import singleton +import requests LOG = logging.getLogger(__name__) @@ -184,11 +185,11 @@ ComputeGroup = [ default=[], help="If false, skip config tests regardless of the " "extension status"), - cfg.StrOpt('controller_node', - default='127.0.0.1', + cfg.ListOpt('controller_nodes', + default=['127.0.0.1'], help="IP address of one of the controller nodes"), - cfg.StrOpt('controller_node_name', - default='', + cfg.ListOpt('controller_nodes_name', + default=[''], help="DNS name of one of the controller nodes"), cfg.StrOpt('controller_node_ssh_user', default='ssh_user', @@ -575,64 +576,191 @@ class FuelConfig(object): class ConfigGroup(object): # USE SLOTS - def __init__(self, opts): - self.parse_opts(opts) + def __init__(self, opts): + self.parse_opts(opts) - def parse_opts(self, opts): - for opt in opts: - name = opt.name - self.__dict__[name] = opt.default + def parse_opts(self, opts): + for opt in opts: + name = opt.name + self.__dict__[name] = opt.default - def __setattr__(self, key, value): - self.__dict__[key] = value + def __setattr__(self, key, value): + self.__dict__[key] = value - def __getitem__(self, key): - return self.__dict__[key] + def __getitem__(self, key): + return self.__dict__[key] - def __setitem(self, key, value): - self.__dict__[key] = value + def __setitem(self, key, value): + self.__dict__[key] = value - def __repr__(self): - return u"{0} WITH {1}".format( - self.__class__.__name__, - self.__dict__) + def __repr__(self): + return u"{0} WITH {1}".format( + self.__class__.__name__, + self.__dict__) @process_singleton class NailgunConfig(object): - identity = ConfigGroup(IdentityGroup) - compute = ConfigGroup(ComputeGroup) - smoke = ConfigGroup(SmokeGroup) - orchestration = ConfigGroup(OrchestrationGroup) - compute_admin = ConfigGroup(ComputeAdminGroup) - image = ConfigGroup(ImageGroup) - network = ConfigGroup(NetworkGroup) - volume = ConfigGroup(VolumeGroup) - object_storage = ConfigGroup(ObjectStoreConfig) + identity = ConfigGroup(IdentityGroup) + compute = ConfigGroup(ComputeGroup) + smoke = ConfigGroup(SmokeGroup) + orchestration = ConfigGroup(OrchestrationGroup) + compute_admin = ConfigGroup(ComputeAdminGroup) + image = ConfigGroup(ImageGroup) + network = ConfigGroup(NetworkGroup) + volume = ConfigGroup(VolumeGroup) + object_storage = ConfigGroup(ObjectStoreConfig) + def __init__(self, parse=True): + self.nailgun_host = os.environ.get('NAILGUN_HOST', None) + self.nailgun_port = os.environ.get('NAILGUN_PORT', None) + self.nailgun_url = 'http://{0}:{1}'.format(self.nailgun_host, + self.nailgun_port) + self.cluster_id = os.environ.get('CLUSTER_ID', None) + if parse: + self.prepare_config() - def __init__(self, *args, **kwargs): - self.prepare_config(*args, **kwargs) + def prepare_config(self, *args, **kwargs): + for interface in dir(self): + if interface.startswith('_parse'): + method = getattr(self, interface) + if callable(method): + method() - def prepare_config(self, *args, **kwargs): - for interface in dir(self): - if interface.startswith('_parse') : - method = getattr(self, interface) - if callable(method): - method(*args, **kwargs) + def _parse_ostf(self): + """ + RESPONSE FORMAT + { + "controller_nodes_ips": [ + "10.20.0.129" + ], + "horizon_url": "http://240.0.1.2/", + "controller_nodes_names": [ + "controller-1.example.com" + ], + "keystone_url": "http://240.0.1.2:5000/", + "admin_tenant_name": "admin", + "admin_username": "admin", + "admin_password": "admin" + } + """ + api_url = '/api/%s/ostf/' % self.cluster_id + response = requests.get(self.nailgun_url+api_url) + if response.status_code == 404: + LOG.warning('URL %s is not implemented ' + 'in nailgun api' % api_url) + elif response.status_code == 200: + data = response.json() + self.identity.url = data['horizon_url'] + self.identity.uri = data['keystone_url'] + self.identity.admin_tenant_name = data['admin_tenant_name'] + self.identity.admin_tenant_name = data['admin_username'] + self.identity.admin_tenant_name = data['admin_password'] + self.identity.controller_nodes = data['controller_nodes_ips'] + self.identity.controller_nodes_name = \ + data['controller_nodes_names'] - def _parse_identity(self, *args, **kwargs): - pass - - def _parse_smoke(self, *args, **kwargs): - pass - - def _parse_all(self, *args, **kwargs): - pass + def _parse_networks_configuration(self): + """ + { + "net_manager": "FlatDHCPManager", + "networks": [ + { + "network_size": 256, + "name": "floating", + "ip_ranges": [ + [ + "172.18.8.42", + "172.18.8.47" + ] + ], + "amount": 1, + "id": 27, + "netmask": "255.255.255.0", + "cluster_id": 6, + "vlan_start": 522, + "cidr": "240.0.0.0/24", + "gateway": "240.0.0.1" + }, + { + "network_size": 256, + "name": "management", + "ip_ranges": [ + [ + "192.168.0.2", + "192.168.0.254" + ] + ], + "amount": 1, + "id": 29, + "netmask": "255.255.255.0", + "cluster_id": 6, + "vlan_start": 101, + "cidr": "192.168.0.0/24", + "gateway": "192.168.0.1" + }, + { + "network_size": 256, + "name": "storage", + "ip_ranges": [ + [ + "172.16.0.2", + "172.16.0.254" + ] + ], + "amount": 1, + "id": 30, + "netmask": "255.255.255.0", + "cluster_id": 6, + "vlan_start": 102, + "cidr": "172.16.0.0/24", + "gateway": "172.16.0.1" + }, + { + "network_size": 256, + "name": "fixed", + "ip_ranges": [ + [ + "10.0.0.2", + "10.0.0.254" + ] + ], + "amount": 1, + "id": 31, + "netmask": "255.255.255.0", + "cluster_id": 6, + "vlan_start": 103, + "cidr": "10.0.0.0/24", + "gateway": "10.0.0.1" + }, + { + "network_size": 256, + "name": "public", + "ip_ranges": [ + [ + "172.18.8.50", + "172.18.8.59" + ] + ], + "amount": 1, + "id": 28, + "netmask": "255.255.255.224", + "cluster_id": 6, + "vlan_start": 522, + "cidr": "240.0.1.0/24", + "gateway": "172.18.8.33" + } + ] +} + """ + api_url = '/api/clusters/%s/network_configuration/' % self.cluster_id + data = requests.get(self.nailgun_url+api_url).json() + self.network.raw_data = data def Config(): - if 'NAILGUN_HOST' in os.environ: + if all(item in os.environ for item in + ('NAILGUN_HOST', 'NAILGUN_PORT', 'CLUSTER_ID')): return NailgunConfig() return FuelConfig() \ No newline at end of file