From 82a21be6b232ffd306fd5d67f30931be20edc79c Mon Sep 17 00:00:00 2001 From: Sergey Lukjanov Date: Mon, 13 Jan 2014 22:46:04 +0400 Subject: [PATCH] Permit specifying instance networks to use. Provider.networks can now be specified as a list of dicts containing the same parameters that 'nova boot --nic ....' would take - e.g. net-id: 'someuuid'. Change-Id: Ie34c3636f8a2fce6aae0ceb249294eaba6a92d35 Co-Authored-By: Robert Collins --- nodepool/nodepool.py | 3 +++ nodepool/provider_manager.py | 2 ++ tools/fake.yaml | 2 ++ 3 files changed, 7 insertions(+) diff --git a/nodepool/nodepool.py b/nodepool/nodepool.py index ef17879ef..3a1cb47f3 100644 --- a/nodepool/nodepool.py +++ b/nodepool/nodepool.py @@ -649,6 +649,9 @@ class NodePool(threading.Thread): p.pool = provider.get('pool') p.rate = provider.get('rate', 1.0) p.boot_timeout = provider.get('boot-timeout', 60) + p.use_neutron = bool(provider.get('networks', ())) + if p.use_neutron: + p.nics = provider.get('networks') p.images = {} for image in provider['images']: i = ProviderImage() diff --git a/nodepool/provider_manager.py b/nodepool/provider_manager.py index 20e6734f7..f120e6b7b 100644 --- a/nodepool/provider_manager.py +++ b/nodepool/provider_manager.py @@ -282,6 +282,8 @@ class ProviderManager(TaskManager): create_args = dict(name=name, image=image_id, flavor=flavor['id']) if key_name: create_args['key_name'] = key_name + if self.provider.use_neutron: + create_args['nics'] = self.provider.nics return self.submitTask(CreateServerTask(**create_args)) diff --git a/tools/fake.yaml b/tools/fake.yaml index 00a04f462..5ba39d659 100644 --- a/tools/fake.yaml +++ b/tools/fake.yaml @@ -19,6 +19,8 @@ providers: project-id: 'fake' max-servers: 96 pool: 'fake' + networks: + - net-id: 'some-uuid' images: - name: nodepool-fake base-image: 'Fake Precise'