Merge "New api: update metadata proxy server"

This commit is contained in:
Jenkins 2017-09-06 05:35:40 +00:00 committed by Gerrit Code Review
commit 959a49721c
3 changed files with 56 additions and 0 deletions

View File

@ -329,3 +329,12 @@ FAKE_TZ = {
"display_name": FAKE_NAME,
"transport_type": "OVERLAY"
}
FAKE_MD_UUID = uuidutils.generate_uuid()
FAKE_URL = "http://7.7.7.70:3500/abc"
FAKE_MD = {
"resource_type": "MetadataProxy",
"revision": 0,
"id": FAKE_MD_UUID,
"metadata_server_url": FAKE_URL
}

View File

@ -1123,3 +1123,37 @@ class TransportZone(nsxlib_testcase.NsxClientTestCase):
with mock.patch.object(tz.client, 'url_get', return_value=fake_tz):
tz_type = tz.get_transport_type(fake_tz['id'])
self.assertEqual(tz.TRANSPORT_TYPE_OVERLAY, tz_type)
class MetadataProxy(nsxlib_testcase.NsxClientTestCase):
def _mocked_md(self, session_response=None):
return self.mocked_resource(
core_resources.NsxLibMetadataProxy,
session_response=session_response)
def test_get_metadata_proxy(self):
uuid = uuidutils.generate_uuid()
md = self._mocked_md()
md.get(uuid)
test_client.assert_json_call(
'get', md,
'https://1.2.3.4/api/v1/md-proxies/%s' % uuid)
def test_update_metadata_proxy(self):
fake_md = test_constants.FAKE_MD.copy()
md = self._mocked_md()
new_url = "http://2.2.2.20:3500/xyz"
new_secret = 'abc'
new_edge = uuidutils.generate_uuid()
with mock.patch.object(md.client, 'url_get', return_value=fake_md):
md.update(fake_md['id'], server_url=new_url, secret=new_secret,
edge_cluster_id=new_edge)
fake_md.update({'metadata_server_url': new_url,
'secret': new_secret,
'edge_cluster_id': new_edge})
test_client.assert_json_call(
'put', md,
'https://1.2.3.4/api/v1/md-proxies/%s' % fake_md['id'],
data=jsonutils.dumps(fake_md, sort_keys=True),
headers=self.default_headers())

View File

@ -712,6 +712,19 @@ class NsxLibMetadataProxy(utils.NsxLibApiBase):
def resource_type(self):
return 'MetadataProxy'
def update(self, uuid, server_url=None, secret=None, edge_cluster_id=None):
# get the current configuration
body = self.get(uuid)
# update the relevant fields
if server_url is not None:
body['metadata_server_url'] = server_url
if secret is not None:
body['secret'] = secret
if edge_cluster_id is not None:
body['edge_cluster_id'] = edge_cluster_id
return self._update_resource_with_retry(
self.get_path(uuid), body)
class NsxLibBridgeCluster(utils.NsxLibApiBase):