Merge lp:~springfield-team/charm-helpers/trunk into lp:charm-helpers

Proposed by Shiv Prasad Rao
Status: Merged
Merged at revision: 165
Proposed branch: lp:~springfield-team/charm-helpers/trunk
Merge into: lp:charm-helpers
Diff against target: 157 lines (+74/-7)
4 files modified
charmhelpers/contrib/openstack/context.py (+22/-0)
charmhelpers/contrib/openstack/neutron.py (+14/-0)
tests/contrib/openstack/test_neutron_utils.py (+10/-4)
tests/contrib/openstack/test_os_contexts.py (+28/-3)
To merge this branch: bzr merge lp:~springfield-team/charm-helpers/trunk
Reviewer Review Type Date Requested Status
Jorge Niedbalski (community) Approve
OpenStack Charmers Pending
Review via email: mp+223667@code.launchpad.net

Description of the change

Changes made to support Cisco N1kv for nova-cloud-controller

charmhelpers/contrib/openstack/context.py
Context for cisco_plugins.ini

charmhelpers/contrib/openstack/neutron.py
neutron_plugin details for Cisco N1kv

To post a comment you must log in.
163. By Liam Young

[jamespage, r=gnuoy] Fixup problem with fstab parsing if tabs are used instead of spaces

Revision history for this message
Jorge Niedbalski (niedbalski) wrote :

Hello Shiv,

I added a couple of unit tests to provide coverage for the added lines of code. Other than that, the change LGTM +1.

review: Approve
164. By James Page

[corey.bryant,r=james-page] Add helper classes for writing amulet tests in Charms.

NOTE: needs unit tests but deferring for now - Corey will follow up with these.

165. By James Page

[shivrao,r=james-page,r=niedbalski] Add support for n1kv neutron plugin.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'charmhelpers/contrib/openstack/context.py'
--- charmhelpers/contrib/openstack/context.py 2014-05-02 14:53:54 +0000
+++ charmhelpers/contrib/openstack/context.py 2014-06-19 17:11:58 +0000
@@ -541,6 +541,26 @@
541541
542 return nvp_ctxt542 return nvp_ctxt
543543
544 def n1kv_ctxt(self):
545 driver = neutron_plugin_attribute(self.plugin, 'driver',
546 self.network_manager)
547 n1kv_config = neutron_plugin_attribute(self.plugin, 'config',
548 self.network_manager)
549 n1kv_ctxt = {
550 'core_plugin': driver,
551 'neutron_plugin': 'n1kv',
552 'neutron_security_groups': self.neutron_security_groups,
553 'local_ip': unit_private_ip(),
554 'config': n1kv_config,
555 'vsm_ip': config('n1kv-vsm-ip'),
556 'vsm_username': config('n1kv-vsm-username'),
557 'vsm_password': config('n1kv-vsm-password'),
558 'restrict_policy_profiles': config(
559 'n1kv_restrict_policy_profiles'),
560 }
561
562 return n1kv_ctxt
563
544 def neutron_ctxt(self):564 def neutron_ctxt(self):
545 if https():565 if https():
546 proto = 'https'566 proto = 'https'
@@ -572,6 +592,8 @@
572 ctxt.update(self.ovs_ctxt())592 ctxt.update(self.ovs_ctxt())
573 elif self.plugin in ['nvp', 'nsx']:593 elif self.plugin in ['nvp', 'nsx']:
574 ctxt.update(self.nvp_ctxt())594 ctxt.update(self.nvp_ctxt())
595 elif self.plugin == 'n1kv':
596 ctxt.update(self.n1kv_ctxt())
575597
576 alchemy_flags = config('neutron-alchemy-flags')598 alchemy_flags = config('neutron-alchemy-flags')
577 if alchemy_flags:599 if alchemy_flags:
578600
=== modified file 'charmhelpers/contrib/openstack/neutron.py'
--- charmhelpers/contrib/openstack/neutron.py 2014-05-03 06:40:08 +0000
+++ charmhelpers/contrib/openstack/neutron.py 2014-06-19 17:11:58 +0000
@@ -128,6 +128,20 @@
128 'server_packages': ['neutron-server',128 'server_packages': ['neutron-server',
129 'neutron-plugin-vmware'],129 'neutron-plugin-vmware'],
130 'server_services': ['neutron-server']130 'server_services': ['neutron-server']
131 },
132 'n1kv': {
133 'config': '/etc/neutron/plugins/cisco/cisco_plugins.ini',
134 'driver': 'neutron.plugins.cisco.network_plugin.PluginV2',
135 'contexts': [
136 context.SharedDBContext(user=config('neutron-database-user'),
137 database=config('neutron-database'),
138 relation_prefix='neutron',
139 ssl_dir=NEUTRON_CONF_DIR)],
140 'services': [],
141 'packages': [['neutron-plugin-cisco']],
142 'server_packages': ['neutron-server',
143 'neutron-plugin-cisco'],
144 'server_services': ['neutron-server']
131 }145 }
132 }146 }
133 if release >= 'icehouse':147 if release >= 'icehouse':
134148
=== modified file 'tests/contrib/openstack/test_neutron_utils.py'
--- tests/contrib/openstack/test_neutron_utils.py 2014-05-03 06:40:08 +0000
+++ tests/contrib/openstack/test_neutron_utils.py 2014-06-19 17:11:58 +0000
@@ -47,22 +47,28 @@
47 def test_quantum_plugins(self):47 def test_quantum_plugins(self):
48 self.config.return_value = 'foo'48 self.config.return_value = 'foo'
49 plugins = neutron.quantum_plugins()49 plugins = neutron.quantum_plugins()
50 self.assertEquals(plugins['ovs']['services'], ['quantum-plugin-openvswitch-agent'])50 self.assertEquals(plugins['ovs']['services'],
51 ['quantum-plugin-openvswitch-agent'])
51 self.assertEquals(plugins['nvp']['services'], [])52 self.assertEquals(plugins['nvp']['services'], [])
5253
53 def test_neutron_plugins_preicehouse(self):54 def test_neutron_plugins_preicehouse(self):
54 self.config.return_value = 'foo'55 self.config.return_value = 'foo'
55 self.os_release.return_value = 'havana'56 self.os_release.return_value = 'havana'
56 plugins = neutron.neutron_plugins()57 plugins = neutron.neutron_plugins()
57 self.assertEquals(plugins['ovs']['config'], '/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini')58 self.assertEquals(plugins['ovs']['config'],
59 '/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini')
58 self.assertEquals(plugins['nvp']['services'], [])60 self.assertEquals(plugins['nvp']['services'], [])
5961
60 def test_neutron_plugins(self):62 def test_neutron_plugins(self):
61 self.config.return_value = 'foo'63 self.config.return_value = 'foo'
62 self.os_release.return_value = 'icehouse'64 self.os_release.return_value = 'icehouse'
63 plugins = neutron.neutron_plugins()65 plugins = neutron.neutron_plugins()
64 self.assertEquals(plugins['ovs']['config'], '/etc/neutron/plugins/ml2/ml2_conf.ini')66 self.assertEquals(plugins['ovs']['config'],
65 self.assertEquals(plugins['nvp']['config'], '/etc/neutron/plugins/vmware/nsx.ini')67 '/etc/neutron/plugins/ml2/ml2_conf.ini')
68 self.assertEquals(plugins['nvp']['config'],
69 '/etc/neutron/plugins/vmware/nsx.ini')
70 self.assertEquals(plugins['n1kv']['config'],
71 '/etc/neutron/plugins/cisco/cisco_plugins.ini')
66 self.assertEquals(plugins['nvp']['services'], [])72 self.assertEquals(plugins['nvp']['services'], [])
67 self.assertEquals(plugins['nsx'], plugins['nvp'])73 self.assertEquals(plugins['nsx'], plugins['nvp'])
6874
6975
=== modified file 'tests/contrib/openstack/test_os_contexts.py'
--- tests/contrib/openstack/test_os_contexts.py 2014-05-04 23:09:50 +0000
+++ tests/contrib/openstack/test_os_contexts.py 2014-06-19 17:11:58 +0000
@@ -511,7 +511,8 @@
511 }511 }
512 _open.assert_called_once_with(ssl_dir + '/rabbit-client-ca.pem', 'w')512 _open.assert_called_once_with(ssl_dir + '/rabbit-client-ca.pem', 'w')
513 self.assertEquals(result, expected)513 self.assertEquals(result, expected)
514 self.assertEquals([call(AMQP_RELATION_WITH_SSL['ssl_ca'])], self.b64decode.call_args_list)514 self.assertEquals([call(AMQP_RELATION_WITH_SSL['ssl_ca'])],
515 self.b64decode.call_args_list)
515516
516 def test_amqp_context_with_data_ssl_noca(self):517 def test_amqp_context_with_data_ssl_noca(self):
517 '''Test amqp context with all required data with ssl but missing ca'''518 '''Test amqp context with all required data with ssl but missing ca'''
@@ -880,6 +881,28 @@
880 'neutron_security_groups': True,881 'neutron_security_groups': True,
881 'local_ip': '10.0.0.1'}, neutron.nvp_ctxt())882 'local_ip': '10.0.0.1'}, neutron.nvp_ctxt())
882883
884 @patch.object(context, 'config')
885 @patch.object(context.NeutronContext, 'neutron_security_groups')
886 @patch.object(context, 'unit_private_ip')
887 @patch.object(context, 'neutron_plugin_attribute')
888 def test_neutron_n1kv_plugin_context(self, attr, ip, sec_groups, config):
889 ip.return_value = '10.0.0.1'
890 sec_groups.__get__ = MagicMock(return_value=True)
891 attr.return_value = 'some.quantum.driver.class'
892 config.return_value = 'n1kv'
893 neutron = context.NeutronContext()
894 self.assertEquals({
895 'core_plugin': 'some.quantum.driver.class',
896 'neutron_plugin': 'n1kv',
897 'neutron_security_groups': True,
898 'local_ip': '10.0.0.1',
899 'config': 'some.quantum.driver.class',
900 'vsm_ip': 'n1kv',
901 'vsm_username': 'n1kv',
902 'vsm_password': 'n1kv',
903 'restrict_policy_profiles': 'n1kv',
904 }, neutron.n1kv_ctxt())
905
883 @patch('charmhelpers.contrib.openstack.context.unit_get')906 @patch('charmhelpers.contrib.openstack.context.unit_get')
884 @patch.object(context.NeutronContext, 'network_manager')907 @patch.object(context.NeutronContext, 'network_manager')
885 def test_neutron_neutron_ctxt(self, mock_network_manager,908 def test_neutron_neutron_ctxt(self, mock_network_manager,
@@ -980,9 +1003,11 @@
980 @patch.object(context.NeutronContext, 'plugin')1003 @patch.object(context.NeutronContext, 'plugin')
981 @patch.object(context.NeutronContext, '_ensure_packages')1004 @patch.object(context.NeutronContext, '_ensure_packages')
982 @patch.object(context.NeutronContext, 'network_manager')1005 @patch.object(context.NeutronContext, 'network_manager')
983 def test_neutron_main_context_gen_nvp_and_alchemy(self, mock_network_manager,1006 def test_neutron_main_context_gen_nvp_and_alchemy(self,
1007 mock_network_manager,
984 mock_ensure_packages,1008 mock_ensure_packages,
985 mock_plugin, mock_nvp_ctxt,1009 mock_plugin,
1010 mock_nvp_ctxt,
986 mock_save_flag_file,1011 mock_save_flag_file,
987 mock_neutron_ctxt):1012 mock_neutron_ctxt):
9881013

Subscribers

People subscribed via source and target branches