Merge lp:~corey.bryant/ubuntu/vivid/neutron-vpnaas/2015.1.1 into lp:ubuntu/vivid-updates/neutron-vpnaas

Proposed by Corey Bryant
Status: Approved
Approved by: Corey Bryant
Approved revision: 8
Proposed branch: lp:~corey.bryant/ubuntu/vivid/neutron-vpnaas/2015.1.1
Merge into: lp:ubuntu/vivid-updates/neutron-vpnaas
Diff against target: 572 lines (+290/-43)
20 files modified
AUTHORS (+3/-0)
ChangeLog (+11/-0)
PKG-INFO (+1/-1)
debian/changelog (+11/-0)
etc/neutron/rootwrap.d/vpnaas.filters (+1/-0)
etc/vpn_agent.ini (+2/-0)
neutron_vpnaas.egg-info/PKG-INFO (+1/-1)
neutron_vpnaas.egg-info/SOURCES.txt (+2/-0)
neutron_vpnaas.egg-info/pbr.json (+1/-1)
neutron_vpnaas.egg-info/requires.txt (+11/-11)
neutron_vpnaas/services/vpn/agent.py (+1/-0)
neutron_vpnaas/services/vpn/device_drivers/fedora_strongswan_ipsec.py (+107/-0)
neutron_vpnaas/services/vpn/device_drivers/ipsec.py (+8/-7)
neutron_vpnaas/services/vpn/device_drivers/libreswan_ipsec.py (+50/-0)
neutron_vpnaas/tests/unit/db/vpn/test_vpn_db.py (+10/-0)
neutron_vpnaas/tests/unit/services/vpn/device_drivers/test_ipsec.py (+49/-0)
requirements.txt (+11/-11)
setup.cfg (+1/-1)
setup.py (+0/-1)
test-requirements.txt (+9/-9)
To merge this branch: bzr merge lp:~corey.bryant/ubuntu/vivid/neutron-vpnaas/2015.1.1
Reviewer Review Type Date Requested Status
Ubuntu Development Team Pending
Review via email: mp+266899@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Corey Bryant (corey.bryant) wrote :

I've uploaded this to the archive and will let the Package Import Robot commit the branch changes.

Unmerged revisions

8. By Corey Bryant

* Resynchronize with stable/kilo (9c73c0c) (LP: #1481008):
  - [fb18c46] Set vpn agent's agent_state['binary'] attribute
  - [0ec1668] Fix failures for integration tests
  - [053fd30] VPNaaS: Fix breakage in status reporting
  - [5cc0613] Libreswan driver support in VPNaaS
  - [9c73c0c] Provide Fedora support for StrongSwan

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'AUTHORS'
2--- AUTHORS 2015-03-30 11:20:04 +0000
3+++ AUTHORS 2015-08-04 15:46:24 +0000
4@@ -147,6 +147,7 @@
5 Tomoko Inoue <inoue.tomoko@lab.ntt.co.jp>
6 Trinath Somanchi <trinath.somanchi@freescale.com>
7 Tyler Smith <tylesmit@cisco.com>
8+Wei Hu <hwhu@cn.ibm.com>
9 Weidong Shao <weidong.shao@huawei.com>
10 Wu Wenxiang <wu.wenxiang@99cloud.net>
11 YAMAMOTO Takashi <yamamoto@valinux.co.jp>
12@@ -174,6 +175,7 @@
13 johndavidge <jodavidg@cisco.com>
14 justin Lund <justin.lund@dreamhost.com>
15 lawrancejing <lawrancejing@gmail.com>
16+leejian0612 <ljianbj@cn.ibm.com>
17 liu-sheng <liusheng@huawei.com>
18 liuqing <jing.liuqing@99cloud.net>
19 llg8212 <lilinguo@huawei.com>
20@@ -187,6 +189,7 @@
21 sridhargaddam <sridhar.gaddam@enovance.com>
22 sukhdev <sukhdev@aristanetworks.com>
23 trinaths <trinath.somanchi@freescale.com>
24+venkata anil <anil.venkata@enovance.com>
25 vikas <vikas.d-m@hp.com>
26 vinkesh banka <vinkeshb@thoughtworks.com>
27 zhhuabj <zhhuabj@cn.ibm.com>
28
29=== modified file 'ChangeLog'
30--- ChangeLog 2015-04-30 18:32:31 +0000
31+++ ChangeLog 2015-08-04 15:46:24 +0000
32@@ -1,6 +1,17 @@
33 CHANGES
34 =======
35
36+2015.1.1
37+--------
38+
39+* Updated from global requirements
40+* Set vpn agent's agent_state['binary'] attribute
41+* Fix failures for integration tests
42+* VPNaaS: Fix breakage in status reporting
43+* Libreswan driver support in VPNaaS
44+* Provide Fedora support for StrongSwan
45+* Bump pre-release to 2015.1.1
46+
47 2015.1.0
48 --------
49
50
51=== modified file 'PKG-INFO'
52--- PKG-INFO 2015-04-30 18:32:31 +0000
53+++ PKG-INFO 2015-08-04 15:46:24 +0000
54@@ -1,6 +1,6 @@
55 Metadata-Version: 1.1
56 Name: neutron-vpnaas
57-Version: 2015.1.0
58+Version: 2015.1.1
59 Summary: OpenStack Networking VPN as a Service
60 Home-page: http://www.openstack.org/
61 Author: OpenStack
62
63=== modified file 'debian/changelog'
64--- debian/changelog 2015-04-30 18:32:31 +0000
65+++ debian/changelog 2015-08-04 15:46:24 +0000
66@@ -1,3 +1,14 @@
67+neutron-vpnaas (1:2015.1.1-0ubuntu1) UNRELEASED; urgency=medium
68+
69+ * Resynchronize with stable/kilo (9c73c0c) (LP: #1481008):
70+ - [fb18c46] Set vpn agent's agent_state['binary'] attribute
71+ - [0ec1668] Fix failures for integration tests
72+ - [053fd30] VPNaaS: Fix breakage in status reporting
73+ - [5cc0613] Libreswan driver support in VPNaaS
74+ - [9c73c0c] Provide Fedora support for StrongSwan
75+
76+ -- Corey Bryant <corey.bryant@canonical.com> Tue, 04 Aug 2015 11:31:19 -0400
77+
78 neutron-vpnaas (1:2015.1.0-0ubuntu1) vivid; urgency=medium
79
80 * New upstream release for OpenStack kilo. (LP: #1449744)
81
82=== modified file 'etc/neutron/rootwrap.d/vpnaas.filters'
83--- etc/neutron/rootwrap.d/vpnaas.filters 2015-03-30 11:20:04 +0000
84+++ etc/neutron/rootwrap.d/vpnaas.filters 2015-08-04 15:46:24 +0000
85@@ -11,5 +11,6 @@
86 ip: IpFilter, ip, root
87 ip_exec: IpNetnsExecFilter, ip, root
88 ipsec: CommandFilter, ipsec, root
89+strongswan: CommandFilter, strongswan, root
90 neutron_netns_wrapper: CommandFilter, neutron-vpn-netns-wrapper, root
91 neutron_netns_wrapper_local: CommandFilter, /usr/local/bin/neutron-vpn-netns-wrapper, root
92
93=== modified file 'etc/vpn_agent.ini'
94--- etc/vpn_agent.ini 2015-03-30 11:20:04 +0000
95+++ etc/vpn_agent.ini 2015-08-04 15:46:24 +0000
96@@ -12,6 +12,8 @@
97 # vpn_device_driver=neutron_vpnaas.services.vpn.device_drivers.cisco_ipsec.CiscoCsrIPsecDriver
98 # vpn_device_driver=neutron_vpnaas.services.vpn.device_drivers.vyatta_ipsec.VyattaIPSecDriver
99 # vpn_device_driver=neutron_vpnaas.services.vpn.device_drivers.strongswan_ipsec.StrongSwanDriver
100+# vpn_device_driver=neutron_vpnaas.services.vpn.device_drivers.fedora_strongswan_ipsec.FedoraStrongSwanDriver
101+# vpn_device_driver=neutron_vpnaas.services.vpn.device_drivers.libreswan_ipsec.LibreSwanDriver
102 # vpn_device_driver=another_driver
103
104 [ipsec]
105
106=== modified file 'neutron_vpnaas.egg-info/PKG-INFO'
107--- neutron_vpnaas.egg-info/PKG-INFO 2015-04-30 18:32:31 +0000
108+++ neutron_vpnaas.egg-info/PKG-INFO 2015-08-04 15:46:24 +0000
109@@ -1,6 +1,6 @@
110 Metadata-Version: 1.1
111 Name: neutron-vpnaas
112-Version: 2015.1.0
113+Version: 2015.1.1
114 Summary: OpenStack Networking VPN as a Service
115 Home-page: http://www.openstack.org/
116 Author: OpenStack
117
118=== modified file 'neutron_vpnaas.egg-info/SOURCES.txt'
119--- neutron_vpnaas.egg-info/SOURCES.txt 2015-04-30 18:32:31 +0000
120+++ neutron_vpnaas.egg-info/SOURCES.txt 2015-08-04 15:46:24 +0000
121@@ -63,7 +63,9 @@
122 neutron_vpnaas/services/vpn/device_drivers/__init__.py
123 neutron_vpnaas/services/vpn/device_drivers/cisco_csr_rest_client.py
124 neutron_vpnaas/services/vpn/device_drivers/cisco_ipsec.py
125+neutron_vpnaas/services/vpn/device_drivers/fedora_strongswan_ipsec.py
126 neutron_vpnaas/services/vpn/device_drivers/ipsec.py
127+neutron_vpnaas/services/vpn/device_drivers/libreswan_ipsec.py
128 neutron_vpnaas/services/vpn/device_drivers/strongswan_ipsec.py
129 neutron_vpnaas/services/vpn/device_drivers/vyatta_ipsec.py
130 neutron_vpnaas/services/vpn/device_drivers/template/openswan/ipsec.conf.template
131
132=== modified file 'neutron_vpnaas.egg-info/pbr.json'
133--- neutron_vpnaas.egg-info/pbr.json 2015-04-30 18:32:31 +0000
134+++ neutron_vpnaas.egg-info/pbr.json 2015-08-04 15:46:24 +0000
135@@ -1,1 +1,1 @@
136-{"is_release": true, "git_version": "eca9e87"}
137\ No newline at end of file
138+{"is_release": true, "git_version": "db6dfc8"}
139\ No newline at end of file
140
141=== modified file 'neutron_vpnaas.egg-info/requires.txt'
142--- neutron_vpnaas.egg-info/requires.txt 2015-04-10 10:27:42 +0000
143+++ neutron_vpnaas.egg-info/requires.txt 2015-08-04 15:46:24 +0000
144@@ -1,14 +1,14 @@
145-pbr>=0.6,!=0.7,<1.0
146-requests>=2.2.0,!=2.4.0
147-Jinja2>=2.6 # BSD License3 clause
148+pbr!=0.7,<1.0,>=0.6
149+requests!=2.4.0,>=2.2.0
150+Jinja2>=2.6 # BSD License3 clause
151 netaddr>=0.7.12
152-SQLAlchemy>=0.9.7,<=0.9.99
153+SQLAlchemy<=0.9.99,>=0.9.7
154 alembic>=0.7.2
155 six>=1.9.0
156-oslo.concurrency>=1.8.0,<1.9.0 # Apache-2.0
157-oslo.config>=1.9.3,<1.10.0 # Apache-2.0
158-oslo.db>=1.7.0,<1.8.0 # Apache-2.0
159-oslo.log>=1.0.0,<1.1.0 # Apache-2.0
160-oslo.messaging>=1.8.0,<1.9.0 # Apache-2.0
161-oslo.serialization>=1.4.0,<1.5.0 # Apache-2.0
162-oslo.utils>=1.4.0,<1.5.0 # Apache-2.0
163+oslo.concurrency<1.9.0,>=1.8.0 # Apache-2.0
164+oslo.config<1.10.0,>=1.9.3 # Apache-2.0
165+oslo.db<1.8.0,>=1.7.0 # Apache-2.0
166+oslo.log<1.1.0,>=1.0.0 # Apache-2.0
167+oslo.messaging<1.9.0,>=1.8.0 # Apache-2.0
168+oslo.serialization<1.5.0,>=1.4.0 # Apache-2.0
169+oslo.utils<1.5.0,>=1.4.0 # Apache-2.0
170
171=== modified file 'neutron_vpnaas/services/vpn/agent.py'
172--- neutron_vpnaas/services/vpn/agent.py 2015-04-10 10:27:42 +0000
173+++ neutron_vpnaas/services/vpn/agent.py 2015-08-04 15:46:24 +0000
174@@ -34,6 +34,7 @@
175 """VPNAgent class which can handle vpn service drivers."""
176 def __init__(self, host, conf=None):
177 super(VPNAgent, self).__init__(host=host, conf=conf)
178+ self.agent_state['binary'] = 'neutron-vpn-agent'
179 self.service = vpn_service.VPNService(self)
180 self.device_drivers = self.service.load_device_drivers(host)
181
182
183=== added file 'neutron_vpnaas/services/vpn/device_drivers/fedora_strongswan_ipsec.py'
184--- neutron_vpnaas/services/vpn/device_drivers/fedora_strongswan_ipsec.py 1970-01-01 00:00:00 +0000
185+++ neutron_vpnaas/services/vpn/device_drivers/fedora_strongswan_ipsec.py 2015-08-04 15:46:24 +0000
186@@ -0,0 +1,107 @@
187+# Copyright (c) 2015 IBM, Inc.
188+# All Rights Reserved.
189+#
190+# Licensed under the Apache License, Version 2.0 (the "License"); you may
191+# not use this file except in compliance with the License. You may obtain
192+# a copy of the License at
193+#
194+# http://www.apache.org/licenses/LICENSE-2.0
195+#
196+# Unless required by applicable law or agreed to in writing, software
197+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
198+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
199+# License for the specific language governing permissions and limitations
200+# under the License.
201+
202+import os
203+
204+from oslo_config import cfg
205+from oslo_log import log as logging
206+
207+from neutron_vpnaas.services.vpn.device_drivers import ipsec
208+from neutron_vpnaas.services.vpn.device_drivers import strongswan_ipsec
209+
210+LOG = logging.getLogger(__name__)
211+TEMPLATE_PATH = os.path.dirname(os.path.abspath(__file__))
212+
213+cfg.CONF.set_default(name='default_config_area',
214+ default=os.path.join(
215+ TEMPLATE_PATH,
216+ '/usr/share/strongswan/templates/'
217+ 'config/strongswan.d'),
218+ group='strongswan')
219+
220+
221+class FedoraStrongSwanProcess(strongswan_ipsec.StrongSwanProcess):
222+
223+ binary = 'strongswan'
224+ CONFIG_DIRS = [
225+ 'var/run',
226+ 'log',
227+ 'etc',
228+ 'etc/strongswan/ipsec.d/aacerts',
229+ 'etc/strongswan/ipsec.d/acerts',
230+ 'etc/strongswan/ipsec.d/cacerts',
231+ 'etc/strongswan/ipsec.d/certs',
232+ 'etc/strongswan/ipsec.d/crls',
233+ 'etc/strongswan/ipsec.d/ocspcerts',
234+ 'etc/strongswan/ipsec.d/policies',
235+ 'etc/strongswan/ipsec.d/private',
236+ 'etc/strongswan/ipsec.d/reqs',
237+ 'etc/pki/nssdb/'
238+ ]
239+ STATUS_NOT_RUNNING_RE = ('Command:.*[ipsec|strongswan].*status.*'
240+ 'Exit code: [1|3] ')
241+
242+ def __init__(self, conf, process_id, vpnservice, namespace):
243+ super(FedoraStrongSwanProcess, self).__init__(conf, process_id,
244+ vpnservice, namespace)
245+
246+ def ensure_configs(self):
247+ """Generate config files which are needed for StrongSwan.
248+
249+ If there is no directory, this function will create
250+ dirs.
251+ """
252+ self.ensure_config_dir(self.vpnservice)
253+ self.ensure_config_file(
254+ 'ipsec.conf',
255+ cfg.CONF.strongswan.ipsec_config_template,
256+ self.vpnservice)
257+ self.ensure_config_file(
258+ 'strongswan.conf',
259+ cfg.CONF.strongswan.strongswan_config_template,
260+ self.vpnservice)
261+ self.ensure_config_file(
262+ 'ipsec.secrets',
263+ cfg.CONF.strongswan.ipsec_secret_template,
264+ self.vpnservice)
265+ self.copy_and_overwrite(cfg.CONF.strongswan.default_config_area,
266+ self._get_config_filename('strongswan.d'))
267+ # Fedora uses /usr/share/strongswan/templates/config/ as strongswan
268+ # template directory. But /usr/share/strongswan/templates/config/
269+ # strongswan.d does not include charon. Those configuration files
270+ # are in /usr/share/strongswan/templates/config/plugins directory.
271+ charon_dir = os.path.join(
272+ cfg.CONF.strongswan.default_config_area,
273+ 'charon')
274+ if not os.path.exists(charon_dir):
275+ plugins_dir = os.path.join(
276+ cfg.CONF.strongswan.default_config_area, '../plugins')
277+ self.copy_and_overwrite(
278+ plugins_dir,
279+ self._get_config_filename('strongswan.d/charon'))
280+
281+ def _get_config_filename(self, kind):
282+ config_dir = '%s/strongswan' % self.etc_dir
283+ return os.path.join(config_dir, kind)
284+
285+
286+class FedoraStrongSwanDriver(ipsec.IPsecDriver):
287+
288+ def create_process(self, process_id, vpnservice, namespace):
289+ return FedoraStrongSwanProcess(
290+ self.conf,
291+ process_id,
292+ vpnservice,
293+ namespace)
294
295=== modified file 'neutron_vpnaas/services/vpn/device_drivers/ipsec.py'
296--- neutron_vpnaas/services/vpn/device_drivers/ipsec.py 2015-04-10 10:27:42 +0000
297+++ neutron_vpnaas/services/vpn/device_drivers/ipsec.py 2015-08-04 15:46:24 +0000
298@@ -298,16 +298,17 @@
299 self.STATUS_MAP[status])
300
301 def _record_connection_status(self, connection_id, status,
302- updated_pending_status=False):
303- if not self.connection_status.get(connection_id):
304+ force_status_update=False):
305+ conn_info = self.connection_status.get(connection_id)
306+ if not conn_info:
307 self.connection_status[connection_id] = {
308 'status': status,
309- 'updated_pending_status': updated_pending_status
310+ 'updated_pending_status': force_status_update
311 }
312 else:
313- self.connection_status[connection_id]['status'] = status
314- self.connection_status[connection_id]['updated_pending_status'] = (
315- updated_pending_status)
316+ conn_info['status'] = status
317+ if force_status_update:
318+ conn_info['updated_pending_status'] = True
319
320
321 class OpenSwanProcess(BaseSwanProcess):
322@@ -380,7 +381,7 @@
323 ip_addr = self._resolve_fqdn(address)
324 if not ip_addr:
325 self._record_connection_status(connection_id, constants.ERROR,
326- updated_pending_status=True)
327+ force_status_update=True)
328 raise vpnaas.VPNPeerAddressNotResolved(peer_address=address)
329 else:
330 ip_addr = address
331
332=== added file 'neutron_vpnaas/services/vpn/device_drivers/libreswan_ipsec.py'
333--- neutron_vpnaas/services/vpn/device_drivers/libreswan_ipsec.py 1970-01-01 00:00:00 +0000
334+++ neutron_vpnaas/services/vpn/device_drivers/libreswan_ipsec.py 2015-08-04 15:46:24 +0000
335@@ -0,0 +1,50 @@
336+# Copyright (c) 2015 Red Hat, Inc.
337+# All Rights Reserved.
338+#
339+# Licensed under the Apache License, Version 2.0 (the "License"); you may
340+# not use this file except in compliance with the License. You may obtain
341+# a copy of the License at
342+#
343+# http://www.apache.org/licenses/LICENSE-2.0
344+#
345+# Unless required by applicable law or agreed to in writing, software
346+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
347+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
348+# License for the specific language governing permissions and limitations
349+# under the License.
350+from neutron_vpnaas.services.vpn.device_drivers import ipsec
351+
352+
353+class LibreSwanProcess(ipsec.OpenSwanProcess):
354+ """Libreswan Process manager class.
355+
356+ Libreswan needs nssdb initialised before running pluto daemon.
357+ """
358+ def __init__(self, conf, process_id, vpnservice, namespace):
359+ super(LibreSwanProcess, self).__init__(conf, process_id,
360+ vpnservice, namespace)
361+
362+ def ensure_configs(self):
363+ """Generate config files which are needed for Libreswan.
364+
365+ Initialise the nssdb, otherwise pluto daemon will fail to run.
366+ """
367+ super(LibreSwanProcess, self).ensure_configs()
368+ # Load the ipsec kernel module if not loaded
369+ self._execute([self.binary, '_stackmanager', 'start'])
370+ # checknss creates nssdb only if it is missing
371+ # It is added in Libreswan version v3.10
372+ # For prior versions use initnss
373+ try:
374+ self._execute([self.binary, 'checknss', self.etc_dir])
375+ except RuntimeError:
376+ self._execute([self.binary, 'initnss', self.etc_dir])
377+
378+
379+class LibreSwanDriver(ipsec.IPsecDriver):
380+ def create_process(self, process_id, vpnservice, namespace):
381+ return LibreSwanProcess(
382+ self.conf,
383+ process_id,
384+ vpnservice,
385+ namespace)
386
387=== modified file 'neutron_vpnaas/tests/unit/db/vpn/test_vpn_db.py'
388--- neutron_vpnaas/tests/unit/db/vpn/test_vpn_db.py 2015-04-10 10:27:42 +0000
389+++ neutron_vpnaas/tests/unit/db/vpn/test_vpn_db.py 2015-08-04 15:46:24 +0000
390@@ -453,6 +453,16 @@
391
392 class TestVpnaas(VPNPluginDbTestCase):
393
394+ def setUp(self, **kwargs):
395+ # TODO(armax): this is far from being a unit test case, as it tests
396+ # that multiple parties (core + vpn) are integrated properly and
397+ # should be replaced by API test that do not rely on so much mocking.
398+ # NOTE(armax): make sure that the callbacks needed by this test are
399+ # registered, as they may get wiped out depending by the order in
400+ # which imports, subscriptions and mocks occur.
401+ super(TestVpnaas, self).setUp(**kwargs)
402+ vpn_db.subscribe()
403+
404 def _check_policy(self, policy, keys, lifetime):
405 for k, v in keys:
406 self.assertEqual(policy[k], v)
407
408=== modified file 'neutron_vpnaas/tests/unit/services/vpn/device_drivers/test_ipsec.py'
409--- neutron_vpnaas/tests/unit/services/vpn/device_drivers/test_ipsec.py 2015-04-10 10:27:42 +0000
410+++ neutron_vpnaas/tests/unit/services/vpn/device_drivers/test_ipsec.py 2015-08-04 15:46:24 +0000
411@@ -25,7 +25,9 @@
412 from oslo_config import cfg
413
414 from neutron_vpnaas.extensions import vpnaas
415+from neutron_vpnaas.services.vpn.device_drivers import fedora_strongswan_ipsec
416 from neutron_vpnaas.services.vpn.device_drivers import ipsec as ipsec_driver
417+from neutron_vpnaas.services.vpn.device_drivers import libreswan_ipsec
418 from neutron_vpnaas.services.vpn.device_drivers import strongswan_ipsec
419 from neutron_vpnaas.tests import base
420
421@@ -643,6 +645,36 @@
422 self.driver.connection_status)
423
424
425+class TestLibreSwanProcess(base.BaseTestCase):
426+ def setUp(self):
427+ super(TestLibreSwanProcess, self).setUp()
428+ self.ipsec_process = libreswan_ipsec.LibreSwanProcess(mock.ANY,
429+ 'foo-process-id',
430+ FAKE_VPN_SERVICE,
431+ mock.ANY)
432+
433+ def test_ensure_configs(self):
434+ ipsec_driver.OpenSwanProcess.ensure_configs = mock.Mock()
435+ with mock.patch.object(self.ipsec_process, '_execute') as fake_execute:
436+ self.ipsec_process.ensure_configs()
437+ expected = [mock.call(['ipsec', '_stackmanager', 'start']),
438+ mock.call(['ipsec', 'checknss',
439+ self.ipsec_process.etc_dir])]
440+ fake_execute.assert_has_calls(expected)
441+ self.assertEqual(fake_execute.call_count, 2)
442+
443+ with mock.patch.object(self.ipsec_process, '_execute') as fake_execute:
444+ fake_execute.side_effect = [None, RuntimeError, None]
445+ self.ipsec_process.ensure_configs()
446+ expected = [mock.call(['ipsec', '_stackmanager', 'start']),
447+ mock.call(['ipsec', 'checknss',
448+ self.ipsec_process.etc_dir]),
449+ mock.call(['ipsec', 'initnss',
450+ self.ipsec_process.etc_dir])]
451+ fake_execute.assert_has_calls(expected)
452+ self.assertEqual(fake_execute.call_count, 3)
453+
454+
455 class IPsecStrongswanDeviceDriverLegacy(IPSecDeviceLegacy):
456 def setUp(self, driver=strongswan_ipsec.StrongSwanDriver,
457 ipsec_process='strongswan_ipsec.StrongSwanProcess'):
458@@ -738,3 +770,20 @@
459 ipsec_process='strongswan_ipsec.StrongSwanProcess'):
460 super(IPsecStrongswanDeviceDriverDVR, self).setUp(driver,
461 ipsec_process)
462+
463+
464+class IPsecFedoraStrongswanDeviceDriverLegacy(
465+ IPsecStrongswanDeviceDriverLegacy):
466+
467+ def setUp(self, driver=fedora_strongswan_ipsec.FedoraStrongSwanDriver,
468+ ipsec_process=fedora_strongswan_ipsec.FedoraStrongSwanProcess):
469+ super(IPsecFedoraStrongswanDeviceDriverLegacy,
470+ self).setUp(driver, ipsec_process)
471+
472+
473+class IPsecFedoraStrongswanDeviceDriverDVR(IPSecDeviceDVR):
474+
475+ def setUp(self, driver=fedora_strongswan_ipsec.FedoraStrongSwanDriver,
476+ ipsec_process=fedora_strongswan_ipsec.FedoraStrongSwanProcess):
477+ super(IPsecFedoraStrongswanDeviceDriverDVR, self).setUp(driver,
478+ ipsec_process)
479
480=== modified file 'requirements.txt'
481--- requirements.txt 2015-04-30 18:32:31 +0000
482+++ requirements.txt 2015-08-04 15:46:24 +0000
483@@ -1,21 +1,21 @@
484 # The order of packages is significant, because pip processes them in the order
485 # of appearance. Changing the order has an impact on the overall integration
486 # process, which may cause wedges in the gate later.
487-pbr>=0.6,!=0.7,<1.0
488+pbr!=0.7,<1.0,>=0.6
489
490-requests>=2.2.0,!=2.4.0
491-Jinja2>=2.6 # BSD License (3 clause)
492+requests!=2.4.0,>=2.2.0
493+Jinja2>=2.6 # BSD License (3 clause)
494 netaddr>=0.7.12
495-SQLAlchemy>=0.9.7,<=0.9.99
496+SQLAlchemy<=0.9.99,>=0.9.7
497 alembic>=0.7.2
498 six>=1.9.0
499-oslo.concurrency>=1.8.0,<1.9.0 # Apache-2.0
500-oslo.config>=1.9.3,<1.10.0 # Apache-2.0
501-oslo.db>=1.7.0,<1.8.0 # Apache-2.0
502-oslo.log>=1.0.0,<1.1.0 # Apache-2.0
503-oslo.messaging>=1.8.0,<1.9.0 # Apache-2.0
504-oslo.serialization>=1.4.0,<1.5.0 # Apache-2.0
505-oslo.utils>=1.4.0,<1.5.0 # Apache-2.0
506+oslo.concurrency<1.9.0,>=1.8.0 # Apache-2.0
507+oslo.config<1.10.0,>=1.9.3 # Apache-2.0
508+oslo.db<1.8.0,>=1.7.0 # Apache-2.0
509+oslo.log<1.1.0,>=1.0.0 # Apache-2.0
510+oslo.messaging<1.9.0,>=1.8.0 # Apache-2.0
511+oslo.serialization<1.5.0,>=1.4.0 # Apache-2.0
512+oslo.utils<1.5.0,>=1.4.0 # Apache-2.0
513
514 # This project does depend on neutron as a library, but the
515 # openstack tooling does not play nicely with projects that
516
517=== modified file 'setup.cfg'
518--- setup.cfg 2015-03-30 11:20:04 +0000
519+++ setup.cfg 2015-08-04 15:46:24 +0000
520@@ -1,6 +1,6 @@
521 [metadata]
522 name = neutron-vpnaas
523-version = 2015.1
524+version = 2015.1.1
525 summary = OpenStack Networking VPN as a Service
526 description-file =
527 README.rst
528
529=== modified file 'setup.py'
530--- setup.py 2015-01-14 11:23:12 +0000
531+++ setup.py 2015-08-04 15:46:24 +0000
532@@ -1,4 +1,3 @@
533-#!/usr/bin/env python
534 # Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
535 #
536 # Licensed under the Apache License, Version 2.0 (the "License");
537
538=== modified file 'test-requirements.txt'
539--- test-requirements.txt 2015-04-10 10:27:42 +0000
540+++ test-requirements.txt 2015-08-04 15:46:24 +0000
541@@ -1,22 +1,22 @@
542 # The order of packages is significant, because pip processes them in the order
543 # of appearance. Changing the order has an impact on the overall integration
544 # process, which may cause wedges in the gate later.
545-hacking>=0.10.0,<0.11
546+hacking<0.11,>=0.10.0
547
548-cliff>=1.10.0,<1.11.0 # Apache-2.0
549+cliff<1.11.0,>=1.10.0 # Apache-2.0
550 coverage>=3.6
551 discover
552-fixtures>=0.3.14
553-mock>=1.0
554+fixtures<1.3.0,>=0.3.14
555+mock<1.1.0,>=1.0
556 python-subunit>=0.0.18
557-requests-mock>=0.6.0 # Apache-2.0
558-sphinx>=1.1.2,!=1.2.0,!=1.3b1,<1.3
559-oslosphinx>=2.5.0,<2.6.0 # Apache-2.0
560+requests-mock>=0.6.0 # Apache-2.0
561+sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2
562+oslosphinx<2.6.0,>=2.5.0 # Apache-2.0
563 testrepository>=0.0.18
564-testtools>=0.9.36,!=1.2.0
565+testtools!=1.2.0,>=0.9.36
566 testscenarios>=0.4
567 WebOb>=1.2.3
568 WebTest>=2.0
569-oslotest>=1.5.1,<1.6.0 # Apache-2.0
570+oslotest<1.6.0,>=1.5.1 # Apache-2.0
571 psycopg2
572 MySQL-python

Subscribers

People subscribed via source and target branches

to all changes: