vmware-nsxlib/vmware_nsxlib/tests/unit/v3/test_load_balancer.py

649 lines
30 KiB
Python

# Copyright 2017 VMware, Inc.
# All Rights Reserved
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
from unittest import mock
from vmware_nsxlib.tests.unit.v3 import nsxlib_testcase
from vmware_nsxlib.tests.unit.v3 import test_constants as consts
from vmware_nsxlib.v3 import exceptions as nsxlib_exc
from vmware_nsxlib.v3 import load_balancer
app_profile_types = load_balancer.ApplicationProfileTypes
app_profiles = [app_profile_types.HTTP,
app_profile_types.FAST_TCP,
app_profile_types.FAST_UDP]
per_profile_types = load_balancer.PersistenceProfileTypes
per_profiles = [per_profile_types.COOKIE, per_profile_types.SOURCE_IP]
monitor_types = load_balancer.MonitorTypes
monitors = [monitor_types.HTTP, monitor_types.HTTPS, monitor_types.ICMP,
monitor_types.PASSIVE, monitor_types.TCP, monitor_types.UDP]
class TestApplicationProfile(nsxlib_testcase.NsxClientTestCase):
def test_create_application_profiles(self):
fake_profile = consts.FAKE_APPLICATION_PROFILE.copy()
for profile_type in app_profiles:
body = {
'display_name': fake_profile['display_name'],
'description': fake_profile['description'],
'resource_type': profile_type,
'tags': consts.FAKE_TAGS
}
with mock.patch.object(self.nsxlib.client, 'create') as create:
self.nsxlib.load_balancer.application_profile.create(
display_name=body['display_name'],
description=body['description'],
resource_type=body['resource_type'],
tags=consts.FAKE_TAGS)
create.assert_called_with('loadbalancer/application-profiles',
body)
def test_create_fast_tcp_profiles(self):
fake_profile = consts.FAKE_APPLICATION_PROFILE.copy()
body = {
'display_name': fake_profile['display_name'],
'description': fake_profile['description'],
'resource_type': app_profile_types.FAST_TCP,
'close_timeout': 8,
'ha_flow_mirroring_enabled': True,
'idle_timeout': 1800,
'tags': consts.FAKE_TAGS
}
with mock.patch.object(self.nsxlib.client, 'create') as create:
self.nsxlib.load_balancer.application_profile.create(
display_name=body['display_name'],
description=body['description'],
resource_type=body['resource_type'],
close_timeout=body['close_timeout'],
ha_flow_mirroring_enabled=body['ha_flow_mirroring_enabled'],
idle_timeout=body['idle_timeout'],
tags=consts.FAKE_TAGS)
create.assert_called_with('loadbalancer/application-profiles',
body)
def test_create_fast_udp_profiles(self):
fake_profile = consts.FAKE_APPLICATION_PROFILE.copy()
body = {
'display_name': fake_profile['display_name'],
'description': fake_profile['description'],
'resource_type': app_profile_types.FAST_UDP,
'flow_mirroring_enabled': True,
'idle_timeout': 1800,
'tags': consts.FAKE_TAGS
}
with mock.patch.object(self.nsxlib.client, 'create') as create:
self.nsxlib.load_balancer.application_profile.create(
display_name=body['display_name'],
description=body['description'],
resource_type=body['resource_type'],
flow_mirroring_enabled=body['flow_mirroring_enabled'],
idle_timeout=body['idle_timeout'],
tags=consts.FAKE_TAGS)
create.assert_called_with('loadbalancer/application-profiles',
body)
def test_create_http_profiles(self):
fake_profile = consts.FAKE_APPLICATION_PROFILE.copy()
body = {
'display_name': fake_profile['display_name'],
'description': fake_profile['description'],
'resource_type': app_profile_types.HTTP,
'http_redirect_to': fake_profile['http_redirect_to'],
'http_redirect_to_https': fake_profile['http_redirect_to_https'],
'ntlm': fake_profile['ntlm'],
'request_body_size': fake_profile['request_body_size'],
'request_header_size': fake_profile['request_header_size'],
'response_header_size': fake_profile['response_header_size'],
'response_timeout': fake_profile['response_timeout'],
'x_forwarded_for': fake_profile['x_forwarded_for'],
'idle_timeout': fake_profile['idle_timeout'],
'tags': consts.FAKE_TAGS
}
with mock.patch.object(self.nsxlib.client, 'create') as create:
self.nsxlib.load_balancer.application_profile.create(
display_name=body['display_name'],
description=body['description'],
resource_type=body['resource_type'],
http_redirect_to=body['http_redirect_to'],
http_redirect_to_https=body['http_redirect_to_https'],
ntlm=body['ntlm'],
request_body_size=body['request_body_size'],
request_header_size=body['request_header_size'],
response_header_size=body['response_header_size'],
response_timeout=body['response_timeout'],
x_forwarded_for=body['x_forwarded_for'],
idle_timeout=body['idle_timeout'],
tags=consts.FAKE_TAGS)
create.assert_called_with('loadbalancer/application-profiles',
body)
def test_list_application_profiles(self):
with mock.patch.object(self.nsxlib.client, 'list') as list_call:
self.nsxlib.load_balancer.application_profile.list()
list_call.assert_called_with(
resource='loadbalancer/application-profiles')
def test_get_application_profile(self):
with mock.patch.object(self.nsxlib.client, 'get') as get:
fake_profile = consts.FAKE_APPLICATION_PROFILE.copy()
self.nsxlib.load_balancer.application_profile.get(
fake_profile['id'])
get.assert_called_with(
'loadbalancer/application-profiles/%s' % fake_profile['id'])
def test_delete_application_profile(self):
with mock.patch.object(self.nsxlib.client, 'delete') as delete:
fake_profile = consts.FAKE_APPLICATION_PROFILE.copy()
self.nsxlib.load_balancer.application_profile.delete(
fake_profile['id'])
delete.assert_called_with(
'loadbalancer/application-profiles/%s' % fake_profile['id'],
headers=None)
class TestPersistenceProfile(nsxlib_testcase.NsxClientTestCase):
def test_create_persistence_profiles(self):
fake_profile = consts.FAKE_PERSISTENCE_PROFILE.copy()
for profile_type in per_profiles:
body = {
'display_name': fake_profile['display_name'],
'description': fake_profile['description'],
'resource_type': profile_type,
'tags': consts.FAKE_TAGS
}
with mock.patch.object(self.nsxlib.client, 'create') as create:
self.nsxlib.load_balancer.persistence_profile.create(
body['display_name'], body['description'],
consts.FAKE_TAGS, body['resource_type'])
create.assert_called_with('loadbalancer/persistence-profiles',
body)
def test_list_persistence_profiles(self):
with mock.patch.object(self.nsxlib.client, 'list') as list_call:
self.nsxlib.load_balancer.persistence_profile.list()
list_call.assert_called_with(
resource='loadbalancer/persistence-profiles')
def test_get_persistence_profile(self):
with mock.patch.object(self.nsxlib.client, 'get') as get:
fake_profile = consts.FAKE_APPLICATION_PROFILE.copy()
self.nsxlib.load_balancer.persistence_profile.get(
fake_profile['id'])
get.assert_called_with(
'loadbalancer/persistence-profiles/%s' % fake_profile['id'])
def test_delete_persistence_profile(self):
with mock.patch.object(self.nsxlib.client, 'delete') as delete:
fake_profile = consts.FAKE_PERSISTENCE_PROFILE.copy()
self.nsxlib.load_balancer.persistence_profile.delete(
fake_profile['id'])
delete.assert_called_with(
'loadbalancer/persistence-profiles/%s' % fake_profile['id'],
headers=None)
class TestRule(nsxlib_testcase.NsxClientTestCase):
def test_create_rule(self):
fake_rule = consts.FAKE_RULE.copy()
body = {
'display_name': fake_rule['display_name'],
'description': fake_rule['description'],
'resource_type': fake_rule['resource_type'],
'phase': fake_rule['phase'],
'match_strategy': fake_rule['match_strategy'],
'tags': consts.FAKE_TAGS
}
with mock.patch.object(self.nsxlib.client, 'create') as create:
self.nsxlib.load_balancer.rule.create(**body)
create.assert_called_with('loadbalancer/rules', body)
def test_list_rules(self):
with mock.patch.object(self.nsxlib.client, 'list') as list_call:
self.nsxlib.load_balancer.rule.list()
list_call.assert_called_with(resource='loadbalancer/rules')
def test_get_rule(self):
with mock.patch.object(self.nsxlib.client, 'get') as get:
fake_rule = consts.FAKE_RULE.copy()
self.nsxlib.load_balancer.rule.get(fake_rule['id'])
get.assert_called_with('loadbalancer/rules/%s' % fake_rule['id'])
def test_delete_rule(self):
with mock.patch.object(self.nsxlib.client, 'delete') as delete:
fake_rule = consts.FAKE_RULE.copy()
self.nsxlib.load_balancer.rule.delete(fake_rule['id'])
delete.assert_called_with(
'loadbalancer/rules/%s' % fake_rule['id'], headers=None)
class TestClientSslProfile(nsxlib_testcase.NsxClientTestCase):
def test_create_client_ssl_profiles(self):
fake_profile = consts.FAKE_CLIENT_SSL_PROFILE.copy()
body = {
'display_name': fake_profile['display_name'],
'description': fake_profile['description'],
'tags': consts.FAKE_TAGS
}
with mock.patch.object(self.nsxlib.client, 'create') as create:
self.nsxlib.load_balancer.client_ssl_profile.create(
body['display_name'], body['description'],
consts.FAKE_TAGS)
create.assert_called_with('loadbalancer/client-ssl-profiles', body)
def test_list_client_ssl_profiles(self):
with mock.patch.object(self.nsxlib.client, 'list') as list_call:
self.nsxlib.load_balancer.client_ssl_profile.list()
list_call.assert_called_with(
resource='loadbalancer/client-ssl-profiles')
def test_get_client_ssl_profile(self):
with mock.patch.object(self.nsxlib.client, 'get') as get:
fake_profile = consts.FAKE_CLIENT_SSL_PROFILE.copy()
self.nsxlib.load_balancer.client_ssl_profile.get(
fake_profile['id'])
get.assert_called_with(
'loadbalancer/client-ssl-profiles/%s' % fake_profile['id'])
def test_delete_client_ssl_profile(self):
with mock.patch.object(self.nsxlib.client, 'delete') as delete:
fake_profile = consts.FAKE_CLIENT_SSL_PROFILE.copy()
self.nsxlib.load_balancer.client_ssl_profile.delete(
fake_profile['id'])
delete.assert_called_with(
'loadbalancer/client-ssl-profiles/%s' % fake_profile['id'],
headers=None)
class TestServerSslProfile(nsxlib_testcase.NsxClientTestCase):
def test_create_server_client_ssl_profiles(self):
fake_profile = consts.FAKE_SERVER_SSL_PROFILE.copy()
body = {
'display_name': fake_profile['display_name'],
'description': fake_profile['description'],
'tags': consts.FAKE_TAGS
}
with mock.patch.object(self.nsxlib.client, 'create') as create:
self.nsxlib.load_balancer.server_ssl_profile.create(
body['display_name'], body['description'],
consts.FAKE_TAGS)
create.assert_called_with('loadbalancer/server-ssl-profiles', body)
def test_list_server_ssl_profiles(self):
with mock.patch.object(self.nsxlib.client, 'list') as list_call:
self.nsxlib.load_balancer.server_ssl_profile.list()
list_call.assert_called_with(
resource='loadbalancer/server-ssl-profiles')
def test_get_server_ssl_profile(self):
with mock.patch.object(self.nsxlib.client, 'get') as get:
fake_profile = consts.FAKE_SERVER_SSL_PROFILE.copy()
self.nsxlib.load_balancer.server_ssl_profile.get(
fake_profile['id'])
get.assert_called_with(
'loadbalancer/server-ssl-profiles/%s' % fake_profile['id'])
def test_delete_server_ssl_profile(self):
with mock.patch.object(self.nsxlib.client, 'delete') as delete:
fake_profile = consts.FAKE_SERVER_SSL_PROFILE.copy()
self.nsxlib.load_balancer.server_ssl_profile.delete(
fake_profile['id'])
delete.assert_called_with(
'loadbalancer/server-ssl-profiles/%s' % fake_profile['id'],
headers=None)
class TestMonitor(nsxlib_testcase.NsxClientTestCase):
def test_create_monitors(self):
fake_monitor = consts.FAKE_MONITOR.copy()
for monitor_type in monitors:
body = {
'display_name': fake_monitor['display_name'],
'description': fake_monitor['description'],
'resource_type': monitor_type,
'tags': consts.FAKE_TAGS
}
with mock.patch.object(self.nsxlib.client, 'create') as create:
self.nsxlib.load_balancer.monitor.create(
body['display_name'], body['description'],
consts.FAKE_TAGS, body['resource_type'])
create.assert_called_with('loadbalancer/monitors',
body)
def test_list_monitors(self):
with mock.patch.object(self.nsxlib.client, 'list') as list_call:
self.nsxlib.load_balancer.monitor.list()
list_call.assert_called_with(resource='loadbalancer/monitors')
def test_get_monitor(self):
with mock.patch.object(self.nsxlib.client, 'get') as get:
fake_monitor = consts.FAKE_MONITOR.copy()
self.nsxlib.load_balancer.monitor.get(fake_monitor['id'])
get.assert_called_with(
'loadbalancer/monitors/%s' % fake_monitor['id'])
def test_delete_monitor(self):
with mock.patch.object(self.nsxlib.client, 'delete') as delete:
fake_monitor = consts.FAKE_MONITOR.copy()
self.nsxlib.load_balancer.monitor.delete(fake_monitor['id'])
delete.assert_called_with(
'loadbalancer/monitors/%s' % fake_monitor['id'], headers=None)
class TestPool(nsxlib_testcase.NsxClientTestCase):
def test_create_pool(self):
fake_pool = consts.FAKE_POOL.copy()
body = {
'display_name': fake_pool['display_name'],
'description': fake_pool['description'],
'algorithm': fake_pool['algorithm'],
'tags': consts.FAKE_TAGS
}
with mock.patch.object(self.nsxlib.client, 'create') as create:
self.nsxlib.load_balancer.pool.create(
body['display_name'], body['description'],
consts.FAKE_TAGS, algorithm=body['algorithm'])
create.assert_called_with('loadbalancer/pools',
body)
def test_list_pools(self):
with mock.patch.object(self.nsxlib.client, 'list') as list_call:
self.nsxlib.load_balancer.pool.list()
list_call.assert_called_with(resource='loadbalancer/pools')
def test_get_pool(self):
with mock.patch.object(self.nsxlib.client, 'get') as get:
fake_profile = consts.FAKE_POOL.copy()
self.nsxlib.load_balancer.pool.get(fake_profile['id'])
get.assert_called_with(
'loadbalancer/pools/%s' % fake_profile['id'])
def test_delete_pool(self):
with mock.patch.object(self.nsxlib.client, 'delete') as delete:
fake_profile = consts.FAKE_POOL.copy()
self.nsxlib.load_balancer.pool.delete(fake_profile['id'])
delete.assert_called_with(
'loadbalancer/pools/%s' % fake_profile['id'], headers=None)
def test_remove_monitor_from_pool(self):
fake_pool = consts.FAKE_POOL.copy()
fake_pool['active_monitor_ids'] = [consts.FAKE_MONITOR_UUID]
body = {'display_name': fake_pool['display_name'],
'description': fake_pool['description'],
'id': fake_pool['id'],
'algorithm': fake_pool['algorithm'],
'active_monitor_ids': []}
with mock.patch.object(self.nsxlib.client, 'get',
return_value=fake_pool):
with mock.patch.object(self.nsxlib.client, 'update') as update:
self.nsxlib.load_balancer.pool.remove_monitor_from_pool(
fake_pool['id'], consts.FAKE_MONITOR_UUID)
resource = 'loadbalancer/pools/%s' % fake_pool['id']
update.assert_called_with(resource, body)
def test_remove_non_exist_monitor_from_pool(self):
fake_pool = consts.FAKE_POOL.copy()
fake_pool['active_monitor_ids'] = [consts.FAKE_MONITOR_UUID]
with mock.patch.object(self.nsxlib.client, 'get',
return_value=fake_pool):
self.assertRaises(
nsxlib_exc.ResourceNotFound,
self.nsxlib.load_balancer.pool.remove_monitor_from_pool,
fake_pool['id'],
'xxx-yyy')
def test_add_monitor_to_pool(self):
fake_pool = consts.FAKE_POOL.copy()
body = {'display_name': fake_pool['display_name'],
'description': fake_pool['description'],
'id': fake_pool['id'],
'algorithm': fake_pool['algorithm'],
'active_monitor_ids': [consts.FAKE_MONITOR_UUID]}
with mock.patch.object(self.nsxlib.client, 'get',
return_value=fake_pool):
with mock.patch.object(self.nsxlib.client, 'update') as update:
self.nsxlib.load_balancer.pool.add_monitor_to_pool(
fake_pool['id'], consts.FAKE_MONITOR_UUID)
resource = 'loadbalancer/pools/%s' % fake_pool['id']
update.assert_called_with(resource, body)
class TestVirtualServer(nsxlib_testcase.NsxClientTestCase):
def test_create_virtual_server(self):
fake_virtual_server = consts.FAKE_VIRTUAL_SERVER.copy()
body = {
'display_name': fake_virtual_server['display_name'],
'description': fake_virtual_server['description'],
'ip_protocol': fake_virtual_server['ip_protocol'],
'port': fake_virtual_server['port'],
'enabled': fake_virtual_server['enabled'],
'tags': consts.FAKE_TAGS
}
with mock.patch.object(self.nsxlib.client, 'create') as create:
self.nsxlib.load_balancer.virtual_server.create(
body['display_name'], body['description'],
consts.FAKE_TAGS, ip_protocol=body['ip_protocol'],
port=body['port'], enabled=body['enabled'])
create.assert_called_with('loadbalancer/virtual-servers',
body)
def test_list_virtual_servers(self):
with mock.patch.object(self.nsxlib.client, 'list') as list_call:
self.nsxlib.load_balancer.virtual_server.list()
list_call.assert_called_with(
resource='loadbalancer/virtual-servers')
def test_get_virtual_server(self):
with mock.patch.object(self.nsxlib.client, 'get') as get:
fake_virtual_server = consts.FAKE_VIRTUAL_SERVER.copy()
self.nsxlib.load_balancer.virtual_server.get(
fake_virtual_server['id'])
get.assert_called_with(
'loadbalancer/virtual-servers/%s' % fake_virtual_server['id'])
def test_delete_virtual_server(self):
with mock.patch.object(self.nsxlib.client, 'delete') as delete:
fake_virtual_server = consts.FAKE_VIRTUAL_SERVER.copy()
self.nsxlib.load_balancer.virtual_server.delete(
fake_virtual_server['id'])
delete.assert_called_with(
'loadbalancer/virtual-servers/%s' % fake_virtual_server['id'],
headers=None)
def test_add_rule(self):
fake_virtual_server = consts.FAKE_VIRTUAL_SERVER.copy()
body = {
'display_name': fake_virtual_server['display_name'],
'description': fake_virtual_server['description'],
'id': fake_virtual_server['id'],
'enabled': fake_virtual_server['enabled'],
'port': fake_virtual_server['port'],
'ip_protocol': fake_virtual_server['ip_protocol'],
'rule_ids': [consts.FAKE_RULE_UUID]
}
with mock.patch.object(self.nsxlib.client, 'get') as mock_get, \
mock.patch.object(self.nsxlib.client, 'update') as mock_update:
mock_get.return_value = fake_virtual_server
self.nsxlib.load_balancer.virtual_server.add_rule(
fake_virtual_server['id'], consts.FAKE_RULE_UUID)
mock_update.assert_called_with(
'loadbalancer/virtual-servers/%s' % fake_virtual_server['id'],
body)
def test_remove_rule(self):
fake_virtual_server = consts.FAKE_VIRTUAL_SERVER.copy()
fake_virtual_server['rule_ids'] = [consts.FAKE_RULE_UUID]
body = {
'display_name': fake_virtual_server['display_name'],
'description': fake_virtual_server['description'],
'id': fake_virtual_server['id'],
'enabled': fake_virtual_server['enabled'],
'port': fake_virtual_server['port'],
'ip_protocol': fake_virtual_server['ip_protocol'],
'rule_ids': []
}
with mock.patch.object(self.nsxlib.client, 'get') as mock_get, \
mock.patch.object(self.nsxlib.client, 'update') as mock_update:
mock_get.return_value = fake_virtual_server
self.nsxlib.load_balancer.virtual_server.remove_rule(
fake_virtual_server['id'], consts.FAKE_RULE_UUID)
mock_update.assert_called_with(
'loadbalancer/virtual-servers/%s' % fake_virtual_server['id'],
body)
def test_add_client_ssl_profile_binding(self):
fake_virtual_server = consts.FAKE_VIRTUAL_SERVER.copy()
body = {
'display_name': fake_virtual_server['display_name'],
'description': fake_virtual_server['description'],
'id': fake_virtual_server['id'],
'enabled': fake_virtual_server['enabled'],
'port': fake_virtual_server['port'],
'ip_protocol': fake_virtual_server['ip_protocol'],
'client_ssl_profile_binding': {
'ssl_profile_id': consts.FAKE_CLIENT_SSL_PROFILE_UUID,
'default_certificate_id': consts.FAKE_DEFAULT_CERTIFICATE_ID,
'client_auth': 'IGNORE',
'certificate_chain_depth': 3
}
}
with mock.patch.object(self.nsxlib.client, 'get') as mock_get, \
mock.patch.object(self.nsxlib.client, 'update') as mock_update:
mock_get.return_value = fake_virtual_server
vs_client = self.nsxlib.load_balancer.virtual_server
vs_client.add_client_ssl_profile_binding(
fake_virtual_server['id'],
consts.FAKE_CLIENT_SSL_PROFILE_UUID,
consts.FAKE_DEFAULT_CERTIFICATE_ID,
client_auth='IGNORE',
certificate_chain_depth=3,
xyz='xyz'
)
mock_update.assert_called_with(
'loadbalancer/virtual-servers/%s' % fake_virtual_server['id'],
body)
def test_add_server_ssl_profile_binding(self):
fake_virtual_server = consts.FAKE_VIRTUAL_SERVER.copy()
body = {
'display_name': fake_virtual_server['display_name'],
'description': fake_virtual_server['description'],
'id': fake_virtual_server['id'],
'enabled': fake_virtual_server['enabled'],
'port': fake_virtual_server['port'],
'ip_protocol': fake_virtual_server['ip_protocol'],
'server_ssl_profile_binding': {
'ssl_profile_id': consts.FAKE_SERVER_SSL_PROFILE_UUID,
'server_auth': 'IGNORE',
'certificate_chain_depth': 3
}
}
with mock.patch.object(self.nsxlib.client, 'get') as mock_get, \
mock.patch.object(self.nsxlib.client, 'update') as mock_update:
mock_get.return_value = fake_virtual_server
vs_client = self.nsxlib.load_balancer.virtual_server
vs_client.add_server_ssl_profile_binding(
fake_virtual_server['id'],
consts.FAKE_SERVER_SSL_PROFILE_UUID,
server_auth='IGNORE',
certificate_chain_depth=3,
xyz='xyz')
mock_update.assert_called_with(
'loadbalancer/virtual-servers/%s' % fake_virtual_server['id'],
body)
class TestService(nsxlib_testcase.NsxClientTestCase):
def test_create_service(self):
fake_service = consts.FAKE_SERVICE.copy()
body = {
'display_name': fake_service['display_name'],
'description': fake_service['description'],
'enabled': fake_service['enabled'],
'attachment': fake_service['attachment'],
'relax_scale_validation': fake_service['relax_scale_validation'],
'tags': consts.FAKE_TAGS
}
with mock.patch.object(self.nsxlib.client, 'create') as create, \
mock.patch.object(self.nsxlib, 'feature_supported') as support:
support.return_value = True
self.nsxlib.load_balancer.service.create(
body['display_name'], body['description'],
consts.FAKE_TAGS, enabled=body['enabled'],
attachment=body['attachment'],
relax_scale_validation=body['relax_scale_validation'])
create.assert_called_with('loadbalancer/services',
body)
def test_list_services(self):
with mock.patch.object(self.nsxlib.client, 'list') as list_call:
self.nsxlib.load_balancer.service.list()
list_call.assert_called_with(resource='loadbalancer/services')
def test_get_service(self):
with mock.patch.object(self.nsxlib.client, 'get') as get:
fake_service = consts.FAKE_SERVICE.copy()
self.nsxlib.load_balancer.service.get(fake_service['id'])
get.assert_called_with(
'loadbalancer/services/%s' % fake_service['id'])
def test_get_stats(self):
with mock.patch.object(self.nsxlib.client, 'get') as get:
fake_service = consts.FAKE_SERVICE.copy()
self.nsxlib.load_balancer.service.get_stats(fake_service['id'])
get.assert_called_with(
'loadbalancer/services/%s/statistics?source=realtime' %
fake_service['id'],
silent=False)
def test_get_status(self):
with mock.patch.object(self.nsxlib.client, 'get') as get:
fake_service = consts.FAKE_SERVICE.copy()
self.nsxlib.load_balancer.service.get_status(fake_service['id'])
get.assert_called_with(
'loadbalancer/services/%s/status' % fake_service['id'])
def test_get_virtual_servers_status(self):
with mock.patch.object(self.nsxlib.client, 'get') as get:
fake_service = consts.FAKE_SERVICE.copy()
self.nsxlib.load_balancer.service.get_virtual_servers_status(
fake_service['id'])
get.assert_called_with(
'loadbalancer/services/%s/virtual-servers/status' %
fake_service['id'])
def test_delete_service(self):
with mock.patch.object(self.nsxlib.client, 'delete') as delete:
fake_service = consts.FAKE_SERVICE.copy()
self.nsxlib.load_balancer.service.delete(fake_service['id'])
delete.assert_called_with(
'loadbalancer/services/%s' % fake_service['id'], headers=None)
def test_get_usage(self):
with mock.patch.object(self.nsxlib.client, 'get') as get:
fake_service = consts.FAKE_SERVICE.copy()
self.nsxlib.load_balancer.service.get_usage(fake_service['id'])
get.assert_called_with(
'loadbalancer/services/%s/usage' % fake_service['id'])