def show(self, request, id, device_id, tenant_id=None): iface_params = dict(device_id=device_id, id=id) if tenant_id: iface_params.update(dict(tenant_id=tenant_id)) interface = models.Interface.find_by(**iface_params) view_data = views.InterfaceConfigurationView(interface).data() return dict(interface=view_data)
def create(self, request, device_id, body=None): iface_params = self._extract_required_params(body, 'interface') network_params = utils.stringify_keys(iface_params.pop( 'network', None)) interface = models.Interface.create_and_allocate_ips( device_id=device_id, network_params=network_params, **iface_params) view_data = views.InterfaceConfigurationView(interface).data() return dict(interface=view_data)
def index(self, request, device_id): interfaces = models.Interface.find_all(device_id=device_id) view_data = [ views.InterfaceConfigurationView(iface).data() for iface in interfaces ] return {'instance': {'interfaces': view_data}}
def test_data_returns_mac_address(self): interface = factory_models.InterfaceFactory() mac = models.MacAddress.create(interface_id=interface.id, address="ab-bc-cd-12-23-34") data = views.InterfaceConfigurationView(interface).data() self.assertEqual(data['mac_address'], mac.unix_format) self.assertEqual(data['id'], interface.virtual_interface_id)
def test_data_returns_ip_address_configuration_information(self): interface = factory_models.InterfaceFactory() ip1 = factory_models.IpAddressFactory(interface_id=interface.id) ip2 = factory_models.IpAddressFactory(interface_id=interface.id) data = views.InterfaceConfigurationView(interface).data() self.assertEqual(len(data['ip_addresses']), 2) self.assertItemsEqual(data['ip_addresses'], views.IpConfigurationView(ip1, ip2).data())
def create(self, request, body=None): params = self._extract_required_params(body, 'interface') params['virtual_interface_id'] = params.pop('id', None) network_params = utils.stringify_keys(params.pop('network', None)) LOG.debug("Creating interface with parameters: %s" % params) interface = models.Interface.create_and_configure(**params) if network_params: network = models.Network.find_or_create_by( network_params.pop('id'), network_params.pop('tenant_id')) network.allocate_ips(interface=interface, **network_params) view_data = views.InterfaceConfigurationView(interface).data() return wsgi.Result(dict(interface=view_data), 201)
def update_all(self, request, device_id, body=None): models.Interface.delete_by(device_id=device_id) params = self._extract_required_params(body, 'instance') tenant_id = params['tenant_id'] created_interfaces = [] for iface in params['interfaces']: network_params = utils.stringify_keys(iface.pop('network', None)) interface = models.Interface.create_and_allocate_ips( device_id=device_id, network_params=network_params, tenant_id=tenant_id, **iface) view_data = views.InterfaceConfigurationView(interface).data() created_interfaces.append(view_data) return {'instance': {'interfaces': created_interfaces}}
def show(self, request, virtual_interface_id, tenant_id=None): interface = models.Interface.find_by( vif_id_on_device=virtual_interface_id, tenant_id=tenant_id) view_data = views.InterfaceConfigurationView(interface).data() return dict(interface=view_data)