Merge lp:~corey.bryant/ubuntu/vivid/neutron-vpnaas/2015.1.1 into lp:ubuntu/vivid-updates/neutron-vpnaas
- Vivid (15.04)
- 2015.1.1
- Merge into vivid-updates
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 | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Ubuntu Development Team | Pending | ||
Review via email: mp+266899@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
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 |
I've uploaded this to the archive and will let the Package Import Robot commit the branch changes.