コード例 #1
0
ファイル: test_base.py プロジェクト: denisgolius/maas
 def test_pod_fromdict(self):
     hostname = factory.make_name("hostname")
     cores = random.randint(1, 8)
     cpu_speed = random.randint(1000, 2000)
     memory = random.randint(4096, 8192)
     local_storage = random.randint(4096, 8192)
     iscsi_storage = random.randint(4096, 8192)
     hints = dict(
         cores=random.randint(1, 8),
         cpu_speed=random.randint(1000, 2000),
         memory=random.randint(4096, 8192),
         local_storage=random.randint(4096, 8192),
         iscsi_storage=random.randint(4096, 8192),
     )
     machines_data = []
     for _ in range(3):
         cores = random.randint(1, 8)
         cpu_speed = random.randint(1000, 2000)
         memory = random.randint(4096, 8192)
         interfaces = [
             dict(mac_address=factory.make_mac_address()) for _ in range(3)
         ]
         block_devices = [
             dict(
                 model=factory.make_name("model"),
                 serial=factory.make_name("serial"),
                 size=random.randint(512, 1024),
             ) for _ in range(3)
         ]
         for _ in range(3):
             block_devices.append(
                 dict(
                     model=None,
                     serial=None,
                     size=random.randint(512, 1024),
                     type=BlockDeviceType.ISCSI,
                     iscsi_target=self.make_iscsi_target(),
                 ))
         machines_data.append(
             dict(
                 hostname=hostname,
                 architecture="amd64/generic",
                 cores=cores,
                 cpu_speed=cpu_speed,
                 memory=memory,
                 interfaces=interfaces,
                 block_devices=block_devices,
             ))
     pod_data = dict(
         architectures=["amd64/generic"],
         cores=cores,
         cpu_speed=cpu_speed,
         memory=memory,
         local_storage=local_storage,
         iscsi_storage=iscsi_storage,
         hints=hints,
         machines=machines_data,
     )
     pod = DiscoveredPod.fromdict(pod_data)
     self.assertThat(pod, IsInstance(DiscoveredPod))
     self.assertThat(
         pod,
         MatchesStructure(
             architectures=Equals(["amd64/generic"]),
             cores=Equals(cores),
             cpu_speed=Equals(cpu_speed),
             memory=Equals(memory),
             local_storage=Equals(local_storage),
             iscsi_storage=Equals(iscsi_storage),
             hints=MatchesAll(
                 IsInstance(DiscoveredPodHints),
                 MatchesStructure(
                     cores=Equals(hints["cores"]),
                     cpu_speed=Equals(hints["cpu_speed"]),
                     memory=Equals(hints["memory"]),
                     local_storage=Equals(hints["local_storage"]),
                     iscsi_storage=Equals(hints["iscsi_storage"]),
                 ),
             ),
             machines=MatchesListwise([
                 MatchesAll(
                     IsInstance(DiscoveredMachine),
                     MatchesStructure(
                         architecture=Equals("amd64/generic"),
                         cores=Equals(machine["cores"]),
                         cpu_speed=Equals(machine["cpu_speed"]),
                         memory=Equals(machine["memory"]),
                         interfaces=MatchesListwise([
                             MatchesAll(
                                 IsInstance(DiscoveredMachineInterface),
                                 MatchesStructure(
                                     mac_address=Equals(
                                         interface["mac_address"]),
                                     vid=Equals(-1),
                                     tags=Equals([]),
                                 ),
                             ) for interface in machine["interfaces"]
                         ]),
                         block_devices=MatchesListwise([
                             MatchesAll(
                                 IsInstance(DiscoveredMachineBlockDevice),
                                 MatchesStructure(
                                     model=Equals(block_device["model"]),
                                     serial=Equals(block_device["serial"]),
                                     size=Equals(block_device["size"]),
                                     block_size=Equals(512),
                                     tags=Equals([]),
                                     type=Equals(BlockDeviceType.PHYSICAL),
                                 ),
                             ) for block_device in machine["block_devices"]
                             if "type" not in block_device
                         ] + [
                             MatchesAll(
                                 IsInstance(DiscoveredMachineBlockDevice),
                                 MatchesStructure(
                                     model=Is(None),
                                     serial=Is(None),
                                     size=Equals(block_device["size"]),
                                     block_size=Equals(512),
                                     tags=Equals([]),
                                     type=Equals(BlockDeviceType.ISCSI),
                                     iscsi_target=Equals(
                                         block_device["iscsi_target"]),
                                 ),
                             ) for block_device in machine["block_devices"]
                             if "type" in block_device
                         ]),
                     ),
                 ) for machine in machines_data
             ]),
         ),
     )
コード例 #2
0
    def fromString(self, inString):
        # Circular imports.
        from provisioningserver.drivers.pod import DiscoveredPod

        data = super(AmpDiscoveredPod, self).fromString(inString)
        return DiscoveredPod.fromdict(data)