Add support for load balancer manager
This commit is contained in:
parent
c90d01e72e
commit
ac3d2c1edc
@ -2900,3 +2900,53 @@ class BGPRouters(_BaseHNVModel):
|
||||
properties["bgpPeers"] = bgp_peers
|
||||
|
||||
return super(BGPRouters, cls).from_raw_data(raw_data)
|
||||
|
||||
|
||||
class LoadBalancerManager(_BaseHNVModel):
|
||||
|
||||
"""Model for load balancer manager.
|
||||
|
||||
The LoadBalancerManager resource is a singleton resource that configures
|
||||
the load balancing service of the Network Controller.
|
||||
"""
|
||||
|
||||
_endpoint = "/networking/v1/loadBalancerManager/config"
|
||||
|
||||
manager_ip_address = model.Field(
|
||||
name="manager_ip_address", key="loadBalancerManagerIPAddress",
|
||||
is_property=True, is_required=True, is_read_only=False)
|
||||
"""The IP address of the load balancer service. This is part of one of
|
||||
the FrontendIPPools as specified in the FrontendIPPool element in this
|
||||
resource."""
|
||||
|
||||
outbound_nat_ip = model.Field(
|
||||
name="outbound_nat_ip", key="outboundNatIPExemptions",
|
||||
is_property=True, is_required=True, is_read_only=False)
|
||||
"""An array of v4 or v6 subnets masks with prefixes that will not have
|
||||
the source IP and Port changed by being NAT-ed. This is typically used
|
||||
for datacenter services that will communicated with other services within
|
||||
the same datacenter or cluster. Array of strings in the following format:
|
||||
0.0.0.0/0.
|
||||
|
||||
NOTE: There is no validation that these IP addresses are known by the
|
||||
Network Controller."""
|
||||
|
||||
vip_ip_pools = model.Field(
|
||||
name="vip_ip_pools", key="vipIpPools",
|
||||
is_property=True, is_required=True, is_read_only=False)
|
||||
"""An array of references to ipPool resource that will be used for the
|
||||
frontend IP Addresses.
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def from_raw_data(cls, raw_data):
|
||||
"""Create a new model using raw API response."""
|
||||
properties = raw_data.get("properties", {})
|
||||
|
||||
vip_ip_pools = []
|
||||
for raw_content in properties.get("vipIpPools", []):
|
||||
resource = Resource.from_raw_data(raw_content)
|
||||
vip_ip_pools.append(resource)
|
||||
properties["vipIpPools"] = vip_ip_pools
|
||||
|
||||
return super(LoadBalancerManager, cls).from_raw_data(raw_data)
|
||||
|
@ -125,3 +125,7 @@ class FakeResponse(object):
|
||||
def bgp_routers(self):
|
||||
"""Fake GET(all) response for BGP routers."""
|
||||
return self._load_resource("bgp_routers.json")
|
||||
|
||||
def load_balancer_manager(self):
|
||||
"""Fake GET response for load balancer manager."""
|
||||
return self._load_resource("load_balancer_manager.json")
|
||||
|
19
hnv/tests/fake/response/load_balancer_manager.json
Normal file
19
hnv/tests/fake/response/load_balancer_manager.json
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
"resourceRef": "/loadBalancerManager/config",
|
||||
"resourceId": "config",
|
||||
"etag": "W/\"ea4ce83a-3b5c-4b92-90b4-f1a69aa5935f\"",
|
||||
"instanceId": "6a42e935-92bb-4081-a1a7-bac1d772671f",
|
||||
"properties": {
|
||||
"provisioningState": "Succeeded",
|
||||
"loadBalancerManagerIPAddress": "21.0.0.21",
|
||||
"outboundNatIPExemptions": [],
|
||||
"vipIpPools": [
|
||||
{
|
||||
"resourceRef": "/logicalnetworks/ccb732ec-a3b5-4755-99ff-\nfddb91d50884/subnets/262b479f-0952-49b9-ad20-3d6732729389/ipPools/968917ad-8122-447d-90f7-\nbee2f95828c8"
|
||||
},
|
||||
{
|
||||
"resourceRef": "/logicalnetworks/9c1b2b61-dec2-49e3-b573-\nc2ecff57893d/subnets/a4f7c90b-6056-4dff-97fb-f46211ecdc10/ipPools/6b7c0255-c68d-4b2f-9870-\n9757255b55de"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@ -384,3 +384,8 @@ class TestClient(unittest.TestCase):
|
||||
raw_data["parentResourceID"] = "fake-parent-id"
|
||||
self._test_get_resource(model=client.BGPRouters,
|
||||
raw_data=raw_data)
|
||||
|
||||
def test_load_balancer_manager(self):
|
||||
raw_data = self._response.load_balancer_manager()
|
||||
self._test_get_resource(model=client.LoadBalancerManager,
|
||||
raw_data=raw_data)
|
||||
|
Loading…
x
Reference in New Issue
Block a user