list & update methods for router NAT rules

Change-Id: I9d5d3acdbad75c95c20972e8918d3ca738572848
This commit is contained in:
Adit Sarfaty 2017-06-22 11:40:31 +03:00
parent 346135adea
commit 33c2637855
3 changed files with 32 additions and 0 deletions

View File

@ -325,6 +325,7 @@ class NsxClientTestCase(NsxLibTestCase):
self.mock_nsx_clustered_api(session_response=session_response),
nsx_api_managers=[NSX_MANAGER],
max_attempts=NSX_MAX_ATTEMPTS),
nsxlib_config=get_default_nsxlib_config(),
nsxlib=self.nsxlib)
if mock_validate:
mock.patch.object(mocked.client, '_validate_result').start()

View File

@ -527,6 +527,28 @@ class LogicalRouterTestCase(nsxlib_testcase.NsxClientTestCase):
# Sending 'bypass_firewall' with version 1.1
self._test_nat_rule_create('2.0.0', True)
def test_nat_rule_list(self):
router = self._mocked_lrouter()
router.list_nat_rules(test_constants.FAKE_ROUTER_UUID)
test_client.assert_json_call(
'get', router,
('https://1.2.3.4/api/v1/logical-routers/%s/nat/rules' %
test_constants.FAKE_ROUTER_UUID))
def test_nat_rule_update(self):
router = self._mocked_lrouter()
rule_id = '123'
with mock.patch.object(router.client, 'get',
return_value={'id': rule_id}):
router.update_nat_rule(test_constants.FAKE_ROUTER_UUID,
rule_id, nat_pass=False)
data = {'id': rule_id, 'nat_pass': False}
test_client.assert_json_call(
'put', router,
('https://1.2.3.4/api/v1/logical-routers/%s/nat/rules/%s' %
(test_constants.FAKE_ROUTER_UUID, rule_id)),
data=jsonutils.dumps(data, sort_keys=True))
class LogicalRouterPortTestCase(nsxlib_testcase.NsxClientTestCase):

View File

@ -483,6 +483,15 @@ class NsxLibLogicalRouter(utils.NsxLibApiBase):
resource = 'logical-routers/%s/nat/rules' % logical_router_id
return self._delete_resource_by_values(resource, **kwargs)
def list_nat_rules(self, logical_router_id):
resource = 'logical-routers/%s/nat/rules' % logical_router_id
return self.client.list(resource)
def update_nat_rule(self, logical_router_id, nat_rule_id, **kwargs):
resource = 'logical-routers/%s/nat/rules/%s' % (
logical_router_id, nat_rule_id)
return self._update_resource_with_retry(resource, kwargs)
def update_advertisement(self, logical_router_id, **kwargs):
resource = ('logical-routers/%s/routing/advertisement' %
logical_router_id)