Merge "SDK for Neutron IP availabilty and Agents"
This commit is contained in:
commit
34fe9b6d6a
openstack_dashboard
api
dashboards/admin
test
@ -2063,40 +2063,41 @@ def default_quota_get(request, tenant_id=None):
|
||||
|
||||
@profiler.trace
|
||||
def agent_list(request, **params):
|
||||
agents = neutronclient(request).list_agents(**params)
|
||||
return [Agent(a) for a in agents['agents']]
|
||||
agents = networkclient(request).agents(**params)
|
||||
return [Agent(a.to_dict()) for a in agents]
|
||||
|
||||
|
||||
@profiler.trace
|
||||
def list_dhcp_agent_hosting_networks(request, network, **params):
|
||||
agents = neutronclient(request).list_dhcp_agent_hosting_networks(network,
|
||||
**params)
|
||||
return [Agent(a) for a in agents['agents']]
|
||||
agents = networkclient(request).network_hosting_dhcp_agents(network,
|
||||
**params)
|
||||
return [Agent(a.to_dict()) for a in agents]
|
||||
|
||||
|
||||
@profiler.trace
|
||||
def list_l3_agent_hosting_router(request, router, **params):
|
||||
agents = neutronclient(request).list_l3_agent_hosting_routers(router,
|
||||
**params)
|
||||
return [Agent(a) for a in agents['agents']]
|
||||
agents = networkclient(request).routers_hosting_l3_agents(router,
|
||||
**params)
|
||||
return [Agent(a.to_dict()) for a in agents]
|
||||
|
||||
|
||||
@profiler.trace
|
||||
def show_network_ip_availability(request, network_id):
|
||||
ip_availability = neutronclient(request).show_network_ip_availability(
|
||||
ip_availability = networkclient(request).get_network_ip_availability(
|
||||
network_id)
|
||||
return ip_availability
|
||||
return ip_availability.to_dict()
|
||||
|
||||
|
||||
@profiler.trace
|
||||
def add_network_to_dhcp_agent(request, dhcp_agent, network_id):
|
||||
body = {'network_id': network_id}
|
||||
return neutronclient(request).add_network_to_dhcp_agent(dhcp_agent, body)
|
||||
return networkclient(request).add_dhcp_agent_to_network(
|
||||
agent=dhcp_agent,
|
||||
network=network_id)
|
||||
|
||||
|
||||
@profiler.trace
|
||||
def remove_network_from_dhcp_agent(request, dhcp_agent, network_id):
|
||||
return neutronclient(request).remove_network_from_dhcp_agent(dhcp_agent,
|
||||
return networkclient(request).remove_dhcp_agent_from_network(dhcp_agent,
|
||||
network_id)
|
||||
|
||||
|
||||
|
@ -169,14 +169,14 @@ def get_network_agent_zone(agent):
|
||||
|
||||
|
||||
def get_network_agent_status(agent):
|
||||
if agent.admin_state_up:
|
||||
if agent.is_admin_state_up:
|
||||
return _('Enabled')
|
||||
|
||||
return _('Disabled')
|
||||
|
||||
|
||||
def get_network_agent_state(agent):
|
||||
if agent.alive:
|
||||
if agent.is_alive:
|
||||
return _('Up')
|
||||
|
||||
return _('Down')
|
||||
@ -206,7 +206,7 @@ class NetworkAgentsTable(tables.DataTable):
|
||||
zone = tables.Column(get_network_agent_zone, verbose_name=_('Zone'))
|
||||
status = tables.Column(get_network_agent_status, verbose_name=_('Status'))
|
||||
state = tables.Column(get_network_agent_state, verbose_name=_('State'))
|
||||
heartbeat_timestamp = tables.Column('heartbeat_timestamp',
|
||||
heartbeat_timestamp = tables.Column('last_heartbeat_at',
|
||||
verbose_name=pgettext_lazy(
|
||||
'Time since the last update',
|
||||
'Last Updated'),
|
||||
|
@ -66,13 +66,13 @@ class AddDHCPAgent(tables.LinkAction):
|
||||
|
||||
|
||||
def get_agent_status(agent):
|
||||
if agent.admin_state_up:
|
||||
if agent.is_admin_state_up:
|
||||
return _('Enabled')
|
||||
return _('Disabled')
|
||||
|
||||
|
||||
def get_agent_state(agent):
|
||||
if agent.alive:
|
||||
if agent.is_alive:
|
||||
return _('Up')
|
||||
return _('Down')
|
||||
|
||||
@ -86,7 +86,7 @@ class DHCPAgentsTable(tables.DataTable):
|
||||
host = tables.WrappingColumn('host', verbose_name=_('Host'))
|
||||
status = tables.Column(get_agent_status, verbose_name=_('Status'))
|
||||
state = tables.Column(get_agent_state, verbose_name=_('Admin State'))
|
||||
heartbeat_timestamp = tables.Column('heartbeat_timestamp',
|
||||
heartbeat_timestamp = tables.Column('last_heartbeat_at',
|
||||
verbose_name=_('Updated At'),
|
||||
filters=(utils_filters.parse_isotime,
|
||||
filters.timesince))
|
||||
|
@ -14,7 +14,10 @@
|
||||
|
||||
import copy
|
||||
|
||||
from openstack.network.v2 import agent as sdk_agent
|
||||
from openstack.network.v2 import network as sdk_net
|
||||
from openstack.network.v2 import network_ip_availability as \
|
||||
sdk_ip_availability
|
||||
from openstack.network.v2 import port as sdk_port
|
||||
from openstack.network.v2 import router as sdk_router
|
||||
from openstack.network.v2 import subnet as sdk_subnet
|
||||
@ -98,6 +101,8 @@ def data(TEST):
|
||||
TEST.api_subnetpools_sdk = list()
|
||||
TEST.api_routers_sdk = list()
|
||||
TEST.api_routers_with_routes_sdk = list()
|
||||
TEST.api_agents_sdk = list()
|
||||
TEST.api_ip_availability_sdk = list()
|
||||
|
||||
# 1st network.
|
||||
network_dict = {'is_admin_state_up': True,
|
||||
@ -1032,9 +1037,9 @@ def data(TEST):
|
||||
# 1st agent.
|
||||
agent_dict = {"binary": "neutron-openvswitch-agent",
|
||||
"description": None,
|
||||
"admin_state_up": True,
|
||||
"heartbeat_timestamp": "2013-07-26 06:51:47",
|
||||
"alive": True,
|
||||
"is_admin_state_up": True,
|
||||
"last_heartbeat_at": "2013-07-26 06:51:47",
|
||||
"is_alive": True,
|
||||
"id": "c876ff05-f440-443e-808c-1d34cda3e88a",
|
||||
"topic": "N/A",
|
||||
"host": "devstack001",
|
||||
@ -1043,14 +1048,15 @@ def data(TEST):
|
||||
"created_at": "2013-07-26 05:23:28",
|
||||
"configurations": {"devices": 2}}
|
||||
TEST.api_agents.add(agent_dict)
|
||||
TEST.api_agents_sdk.append(sdk_agent.Agent(**agent_dict))
|
||||
TEST.agents.add(neutron.Agent(agent_dict))
|
||||
|
||||
# 2nd agent.
|
||||
agent_dict = {"binary": "neutron-dhcp-agent",
|
||||
"description": None,
|
||||
"admin_state_up": True,
|
||||
"heartbeat_timestamp": "2013-07-26 06:51:48",
|
||||
"alive": True,
|
||||
"is_admin_state_up": True,
|
||||
"last_heartbeat_at": "2013-07-26 06:51:48",
|
||||
"is_alive": True,
|
||||
"id": "f0d12e3d-1973-41a2-b977-b95693f9a8aa",
|
||||
"topic": "dhcp_agent",
|
||||
"host": "devstack001",
|
||||
@ -1065,6 +1071,7 @@ def data(TEST):
|
||||
"networks": 1,
|
||||
"ports": 1}}
|
||||
TEST.api_agents.add(agent_dict)
|
||||
TEST.api_agents_sdk.append(sdk_agent.Agent(**agent_dict))
|
||||
TEST.agents.add(neutron.Agent(agent_dict))
|
||||
|
||||
# Service providers.
|
||||
@ -1118,6 +1125,8 @@ def data(TEST):
|
||||
|
||||
TEST.ip_availability.add(availability)
|
||||
TEST.api_ip_availability.add(availability)
|
||||
TEST.api_ip_availability_sdk.append(
|
||||
sdk_ip_availability.NetworkIPAvailability(**availability))
|
||||
|
||||
# qos policies
|
||||
policy_dict = {'id': 'a21dcd22-7189-cccc-aa32-22adafaf16a7',
|
||||
|
@ -992,27 +992,27 @@ class NeutronApiTests(test.APIMockTestCase):
|
||||
|
||||
neutronclient.delete_network.assert_called_once_with(network_id)
|
||||
|
||||
@mock.patch.object(api.neutron, 'neutronclient')
|
||||
def test_get_network_ip_availability(self, mock_neutronclient):
|
||||
network = {'network': self.api_networks.first()}
|
||||
mock_ip_availability = self.ip_availability.get()
|
||||
neutronclient = mock_neutronclient.return_value
|
||||
neutronclient.show_network_ip_availability.return_value = \
|
||||
@mock.patch.object(api.neutron, 'networkclient')
|
||||
def test_get_network_ip_availability(self, mock_networkclient):
|
||||
network = self.api_networks_sdk[0]
|
||||
mock_ip_availability = self.api_ip_availability_sdk[0]
|
||||
networkclient = mock_networkclient.return_value
|
||||
networkclient.get_network_ip_availability.return_value = \
|
||||
mock_ip_availability
|
||||
|
||||
ret_val = api.neutron.show_network_ip_availability(self.request,
|
||||
network)
|
||||
|
||||
self.assertIsInstance(ret_val, dict)
|
||||
neutronclient.show_network_ip_availability.assert_called_once_with(
|
||||
networkclient.get_network_ip_availability.assert_called_once_with(
|
||||
network)
|
||||
|
||||
@mock.patch.object(api.neutron, 'neutronclient')
|
||||
def test_subnet_network_ip_availability(self, mock_neutronclient):
|
||||
network = {'network': self.api_networks.first()}
|
||||
mock_ip_availability = self.ip_availability.get()
|
||||
neutronclient = mock_neutronclient.return_value
|
||||
neutronclient.show_network_ip_availability.return_value = \
|
||||
@mock.patch.object(api.neutron, 'networkclient')
|
||||
def test_subnet_network_ip_availability(self, mock_networkclient):
|
||||
network = self.api_networks_sdk[0]
|
||||
mock_ip_availability = self.api_ip_availability_sdk[0]
|
||||
networkcient = mock_networkclient.return_value
|
||||
networkcient.get_network_ip_availability.return_value = \
|
||||
mock_ip_availability
|
||||
|
||||
ip_availability = api.neutron. \
|
||||
@ -1022,7 +1022,7 @@ class NeutronApiTests(test.APIMockTestCase):
|
||||
ret_val = availabilities.get("subnet_ip_availability", [])
|
||||
|
||||
self.assertIsInstance(ret_val, list)
|
||||
neutronclient.show_network_ip_availability.assert_called_once_with(
|
||||
networkcient.get_network_ip_availability.assert_called_once_with(
|
||||
network)
|
||||
|
||||
@mock.patch.object(api.neutron, 'networkclient')
|
||||
|
Loading…
x
Reference in New Issue
Block a user