From 010d2c95261820add617047a030e4d06563a6613 Mon Sep 17 00:00:00 2001 From: SerenaFeng Date: Tue, 7 Mar 2017 10:43:56 +0800 Subject: create external network Change-Id: I6621fed21832f3e4653c2d236bb29de421b5b573 Signed-off-by: SerenaFeng --- deploy/post/execute.py | 18 +++++++++++++++++- deploy/post/neutron.py | 22 ++++++++++++++++++---- 2 files changed, 35 insertions(+), 5 deletions(-) (limited to 'deploy') diff --git a/deploy/post/execute.py b/deploy/post/execute.py index 8758b401..3f05d005 100644 --- a/deploy/post/execute.py +++ b/deploy/post/execute.py @@ -9,9 +9,25 @@ import neutron +def _config_admin_external_network(): + name = 'admin_external' + body = { + 'network': { + 'name': name, + 'admin_state_up': True, + 'shared': True, + 'provider:network_type': 'flat', + 'provider:physical_network': 'physnet1', + 'router:external': True + } + } + + return name, body + + def main(): neutron.Neutron().list_networks() - + neutron.Neutron().create_network(*(_config_admin_external_network())) if __name__ == '__main__': main() 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 -- cgit 1.2.3-korg