Fix access to lifetime dict in update_ipsecpolicy method

Also add corresponding unit test.

Change-Id: Ie1141b5034415ccf3039a71dfedc47cfb2ca7a88
Closes-Bug: #1237912
This commit is contained in:
Eugene Nikanorov 2013-10-10 13:10:58 +04:00
parent ba427820b3
commit 48e36b5429
2 changed files with 30 additions and 5 deletions

View File

@ -504,7 +504,7 @@ class VPNPluginDb(VPNPluginBase, base_db.CommonDbMixin):
if lifetime_info: if lifetime_info:
if lifetime_info.get('units'): if lifetime_info.get('units'):
ipsecp['lifetime_units'] = lifetime_info['units'] ipsecp['lifetime_units'] = lifetime_info['units']
if lifetime_info('value'): if lifetime_info.get('value'):
ipsecp['lifetime_value'] = lifetime_info['value'] ipsecp['lifetime_value'] = lifetime_info['value']
ipsecp_db.update(ipsecp) ipsecp_db.update(ipsecp)
return self._make_ipsecpolicy_dict(ipsecp_db) return self._make_ipsecpolicy_dict(ipsecp_db)

View File

@ -515,9 +515,13 @@ class TestVpnaas(VPNPluginDbTestCase):
('phase1_negotiation_mode', 'main'), ('phase1_negotiation_mode', 'main'),
('ike_version', 'v1'), ('ike_version', 'v1'),
('pfs', 'group5'), ('pfs', 'group5'),
('tenant_id', self._tenant_id)] ('tenant_id', self._tenant_id),
('lifetime', {'units': 'seconds',
'value': 60})]
with self.ikepolicy(name=name) as ikepolicy: with self.ikepolicy(name=name) as ikepolicy:
data = {'ikepolicy': {'name': name}} data = {'ikepolicy': {'name': name,
'lifetime': {'units': 'seconds',
'value': 60}}}
req = self.new_update_request("ikepolicies", req = self.new_update_request("ikepolicies",
data, data,
ikepolicy['ikepolicy']['id']) ikepolicy['ikepolicy']['id'])
@ -699,9 +703,13 @@ class TestVpnaas(VPNPluginDbTestCase):
('encapsulation_mode', 'tunnel'), ('encapsulation_mode', 'tunnel'),
('transform_protocol', 'esp'), ('transform_protocol', 'esp'),
('pfs', 'group5'), ('pfs', 'group5'),
('tenant_id', self._tenant_id)] ('tenant_id', self._tenant_id),
('lifetime', {'units': 'seconds',
'value': 60})]
with self.ipsecpolicy(name=name) as ipsecpolicy: with self.ipsecpolicy(name=name) as ipsecpolicy:
data = {'ipsecpolicy': {'name': name}} data = {'ipsecpolicy': {'name': name,
'lifetime': {'units': 'seconds',
'value': 60}}}
req = self.new_update_request("ipsecpolicies", req = self.new_update_request("ipsecpolicies",
data, data,
ipsecpolicy['ipsecpolicy']['id']) ipsecpolicy['ipsecpolicy']['id'])
@ -709,6 +717,23 @@ class TestVpnaas(VPNPluginDbTestCase):
for k, v in keys: for k, v in keys:
self.assertEqual(res['ipsecpolicy'][k], v) self.assertEqual(res['ipsecpolicy'][k], v)
def test_update_ipsecpolicy_lifetime(self):
with self.ipsecpolicy() as ipsecpolicy:
data = {'ipsecpolicy': {'lifetime': {'units': 'seconds'}}}
req = self.new_update_request("ipsecpolicies",
data,
ipsecpolicy['ipsecpolicy']['id'])
res = self.deserialize(self.fmt, req.get_response(self.ext_api))
self.assertEqual(res['ipsecpolicy']['lifetime']['units'],
'seconds')
data = {'ipsecpolicy': {'lifetime': {'value': 60}}}
req = self.new_update_request("ipsecpolicies",
data,
ipsecpolicy['ipsecpolicy']['id'])
res = self.deserialize(self.fmt, req.get_response(self.ext_api))
self.assertEqual(res['ipsecpolicy']['lifetime']['value'], 60)
def test_create_ipsecpolicy_with_invalid_values(self): def test_create_ipsecpolicy_with_invalid_values(self):
"""Test case to test invalid values.""" """Test case to test invalid values."""
name = 'ipsecpolicy1' name = 'ipsecpolicy1'