Exemple #1
0
    def test_GET(self):
        node_device = factory.make_NodeDevice()

        response = self.client.get(self.get_node_device_uri(node_device))
        self.assertThat(response, HasStatusCode(http.client.OK))
        parsed_result = json_load_bytes(response.content)

        self.assertEqual(
            {
                "id": node_device.id,
                "bus": node_device.bus,
                "bus_name": node_device.get_bus_display(),
                "hardware_type": node_device.hardware_type,
                "hardware_type_name": node_device.get_hardware_type_display(),
                "system_id": node_device.node.system_id,
                "numa_node": node_device.numa_node.index,
                "physical_blockdevice": None,
                "physical_interface": None,
                "vendor_id": node_device.vendor_id,
                "product_id": node_device.product_id,
                "vendor_name": node_device.vendor_name,
                "product_name": node_device.product_name,
                "commissioning_driver": node_device.commissioning_driver,
                "bus_number": node_device.bus_number,
                "device_number": node_device.device_number,
                "pci_address": node_device.pci_address,
                "resource_uri": self.get_node_device_uri(node_device, True),
            },
            parsed_result,
        )
Exemple #2
0
    def test_DELETE(self):
        self.become_admin()
        node_device = factory.make_NodeDevice()

        response = self.client.delete(self.get_node_device_uri(node_device))
        self.assertThat(response, HasStatusCode(http.client.NO_CONTENT))
        self.assertIsNone(reload_object(node_device))
Exemple #3
0
 def test_hander_path(self):
     node_device = factory.make_NodeDevice()
     self.assertEqual(
         "/MAAS/api/2.0/nodes/%s/devices/%s/" %
         (node_device.node.system_id, node_device.id),
         self.get_node_device_uri(node_device, True),
     )
    def test_GET_filter_vendor_id(self):
        vendor_id = factory.make_hex_string(4)
        node_devices = [
            factory.make_NodeDevice(node=self.node, vendor_id=vendor_id)
            for _ in range(3)
        ]

        response = self.client.get(self.get_script_results_uri(),
                                   {"vendor_id": vendor_id})
        self.assertThat(response, HasStatusCode(http.client.OK))
        parsed_results = json_load_bytes(response.content)

        self.assertCountEqual(
            [node_device.id for node_device in node_devices],
            [node_device["id"] for node_device in parsed_results],
        )
    def test_GET_filter_product_name(self):
        product_name = factory.make_name("product_name")
        node_devices = [
            factory.make_NodeDevice(node=self.node, product_name=product_name)
            for _ in range(3)
        ]

        response = self.client.get(self.get_script_results_uri(),
                                   {"product_name": product_name})
        self.assertThat(response, HasStatusCode(http.client.OK))
        parsed_results = json_load_bytes(response.content)

        self.assertCountEqual(
            [node_device.id for node_device in node_devices],
            [node_device["id"] for node_device in parsed_results],
        )
    def test_GET_filter_commissioning_driver(self):
        commissioning_driver = factory.make_name("commissioning_driver")
        node_devices = [
            factory.make_NodeDevice(node=self.node,
                                    commissioning_driver=commissioning_driver)
            for _ in range(3)
        ]

        response = self.client.get(
            self.get_script_results_uri(),
            {"commissioning_driver": commissioning_driver},
        )
        self.assertThat(response, HasStatusCode(http.client.OK))
        parsed_results = json_load_bytes(response.content)

        self.assertCountEqual(
            [node_device.id for node_device in node_devices],
            [node_device["id"] for node_device in parsed_results],
        )
Exemple #7
0
 def create_node_device(self, params=None):
     if params is None:
         params = {}
     return factory.make_NodeDevice(**params)
Exemple #8
0
    def test_DELETE_admin_only(self):
        node_device = factory.make_NodeDevice()

        response = self.client.delete(self.get_node_device_uri(node_device))
        self.assertThat(response, HasStatusCode(http.client.FORBIDDEN))
        self.assertIsNotNone(reload_object(node_device))
Exemple #9
0
 def test_save_validates_no_pci_address_on_usb(self):
     node_device = factory.make_NodeDevice(bus=NODE_DEVICE_BUS.PCIE)
     node_device.bus = NODE_DEVICE_BUS.USB
     self.assertRaises(ValidationError, node_device.save)