コード例 #1
0
ファイル: service.py プロジェクト: blackantcloud/melange
    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)
コード例 #2
0
ファイル: service.py プロジェクト: blackantcloud/melange
 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)
コード例 #3
0
ファイル: service.py プロジェクト: blackantcloud/melange
    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}}
コード例 #4
0
    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)
コード例 #5
0
    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())
コード例 #6
0
ファイル: service.py プロジェクト: blackantcloud/melange
    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)
コード例 #7
0
ファイル: service.py プロジェクト: blackantcloud/melange
    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}}
コード例 #8
0
ファイル: service.py プロジェクト: blackantcloud/melange
 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)