diff options
Diffstat (limited to 'deploy/post/neutron.py')
-rw-r--r-- | deploy/post/neutron.py | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/deploy/post/neutron.py b/deploy/post/neutron.py index 0dffdfc3..9c81ed24 100644 --- a/deploy/post/neutron.py +++ b/deploy/post/neutron.py @@ -17,9 +17,23 @@ class Neutron(object): self.client = neutronclient.Client(api_v, session=session) def list_networks(self): - networks = self.client.list_networks()['networks'] - for network in networks: - print network + return self.client.list_networks()['networks'] - def create_admin_ext_net(self): + def create_network(self, name, body): + if not self.is_network_exist(name): + self._create_network(name, body) + else: + print('admin_ext [{}] already exist'.format(name)) pass + + def is_network_exist(self, name): + return [] != filter(lambda n: n['name'] == name, self.list_networks()) + + def _create_network(self, name, body): + try: + nid = self.client.create_network(body=body)['network']['id'] + print('_create_admin_ext_net [{}] with id: {}'.format(name, nid)) + return nid + except Exception, e: + print('_create_admin_ext_net [{}] fail with: {}'.format(name, e)) + return None |