Merge lp:~james-page/openstack-charm-testing/ext-port-configuration into lp:openstack-charm-testing

Proposed by James Page
Status: Merged
Merged at revision: 215
Proposed branch: lp:~james-page/openstack-charm-testing/ext-port-configuration
Merge into: lp:openstack-charm-testing
Diff against target: 103 lines (+58/-38)
1 file modified
bin/post-deploy-config (+58/-38)
To merge this branch: bzr merge lp:~james-page/openstack-charm-testing/ext-port-configuration
Reviewer Review Type Date Requested Status
OpenStack Charm Testing Maintainers Pending
Review via email: mp+297035@code.launchpad.net
To post a comment you must log in.
216. By James Page

Drop keystoneclient usage

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'bin/post-deploy-config'
--- bin/post-deploy-config 2016-05-09 14:04:13 +0000
+++ bin/post-deploy-config 2016-06-10 09:26:21 +0000
@@ -5,41 +5,61 @@
5import os5import os
6import sys6import sys
77
8cmd_out = subprocess.check_output(['neutron', 'net-list'])8from neutronclient.v2_0 import client as ne_client
99from novaclient import client as no_client
10net_id = os.environ.get('NET_ID')10
1111if __name__ == '__main__':
12if net_id:12 neutron = ne_client.Client(username=os.environ['OS_USERNAME'],
13 # Use OSCI / Jenkins environment variable if defined.13 password=os.environ['OS_PASSWORD'],
14 print 'Using NET_ID environment variable: {}'.format(net_id)14 tenant_name=os.environ['OS_TENANT_NAME'],
15else:15 auth_url=os.environ['OS_AUTH_URL'],
16 # Preserve existing default behavior (eg. manual testing)16 region_name=os.environ['OS_REGION_NAME'])
17 net_name = os.environ['OS_USERNAME'] + '_admin_net'17 nova = no_client.Client('2',
18 print('Using default network name: {}'.format(net_name))18 os.environ['OS_USERNAME'],
19 for line in cmd_out.split('\n'):19 os.environ['OS_PASSWORD'],
20 if net_name in line:20 os.environ['OS_TENANT_NAME'],
21 net_id = line.split('|')[1].replace(' ', '')21 os.environ['OS_AUTH_URL'],
2222 os.environ['OS_REGION_NAME'])
23service = sys.argv[1]23
2424 net_id = os.environ.get('NET_ID')
25ext_port = 'eth1'25 if net_id:
26if len(sys.argv) >= 3:26 # Use OSCI / Jenkins environment variable if defined.
27 ext_port = sys.argv[2]27 print('Using NET_ID environment variable: {}'.format(net_id))
2828 else:
29service_config = yaml.load(29 # Preserve existing default behavior (eg. manual testing)
30 subprocess.check_output(['juju', 'status', service])30 net_name = os.environ['OS_USERNAME'] + '_admin_net'
31)31 print('Using default network name: {}'.format(net_name))
3232 try:
33uuids = []33 network = neutron.list_networks(name=net_name)['networks'][0]
34for machine in service_config['machines']:34 net_id = network['id']
35 uuids.append(service_config['machines'][machine]['instance-id'])35 except IndexError:
3636 print('Unable to find local network {}'.format(net_name))
37if len(uuids) > 0:37 raise ValueError('Unable to find local network {}'.format(net_name))
38 for uuid in uuids:38
39 print("Attaching interface to instance {}".format(uuid))39 service = sys.argv[1]
40 subprocess.check_call(40
41 ['nova', 'interface-attach', '--net-id', net_id, uuid]41 service_config = yaml.load(
42 )42 subprocess.check_output(['juju', 'status', service])
4343 )
44print("Setting ext-port configuration on neutron-gateway to {}".format(ext_port))44
45subprocess.check_call(['juju', 'set', service, 'ext-port={}'.format(ext_port)])45 uuids = []
46 for machine in service_config['machines']:
47 uuids.append(service_config['machines'][machine]['instance-id'])
48
49 ext_port = []
50 if len(sys.argv) >= 3:
51 ext_port = [sys.argv[2]]
52
53 if len(uuids) > 0:
54 for uuid in uuids:
55 print("Attaching interface to instance {}".format(uuid))
56 server = nova.servers.get(uuid)
57 result = server.interface_attach(port_id=None,
58 net_id=net_id,
59 fixed_ip=None).to_dict()
60 ext_port.append(result['mac_addr'])
61
62 ports = " ".join(ext_port)
63 print("Setting ext-port configuration on {} to {}".format(service, ports))
64 subprocess.check_call(['juju', 'set', service, 'ext-port={}'.format(ports)])
65

Subscribers

People subscribed via source and target branches

to status/vote changes: