def _incorrect_device_path_test(self, bad_value):
        # XXX This discovers volumes as NON_MANIFEST, but we should
        # have a state so we can try to recover.
        dataset_id = uuid4()
        volume = self.api.create_volume(
            dataset_id=dataset_id, size=LOOPBACK_MINIMUM_ALLOCATABLE_SIZE,
        )
        self.api.attach_volume(
            volume.blockdevice_id, self.api.compute_instance_id(),
        )

        # Break the API object now.
        self.patch(
            self.api, "get_device_path", lambda blockdevice_id: bad_value
        )

        assert_discovered_state(
            self, self.deployer,
            persistent_state=PersistentState(
                blockdevice_ownership={
                    dataset_id: volume.blockdevice_id,
                }
            ),
            expected_discovered_datasets=[
                DiscoveredDataset(
                    state=DatasetStates.NON_MANIFEST,
                    dataset_id=volume.dataset_id,
                    blockdevice_id=volume.blockdevice_id,
                    maximum_size=LOOPBACK_MINIMUM_ALLOCATABLE_SIZE,
                ),
            ],
        )
Parse host, port, username, password, path from opts and spec.
dataset/ETHPy150Open ClusterHQ/flocker/flocker/node/agents/test/test_blockdevice.py/BlockDeviceDeployerDiscoverStateTests._incorrect_device_path_test--crossover with--dataset/ETHPy150Open membase/membase-cli/pump.py/parse_spec