def test_save_purges_orphaned_script_results_interface(self): node = factory.make_Machine_with_Interface_on_Subnet() iface = node.interface_set.first() script = factory.make_Script( parameters={"interface": { "type": "interface" }}) old_script_set = factory.make_ScriptSet(node=node) old_script_result = factory.make_ScriptResult( script=script, script_set=old_script_set, status=factory.pick_choice(SCRIPT_STATUS_CHOICES, but_not=[SCRIPT_STATUS.PASSED]), parameters={"interface": { "type": "interface", "value": "all" }}, ) new_script_set = factory.make_ScriptSet(node=node) new_script_result = factory.make_ScriptResult( script=script, script_set=new_script_set, status=SCRIPT_STATUS.PENDING, parameters={ "interface": { "type": "interface", "value": { "interface": iface }, } }, ) self.assertIsNone(reload_object(old_script_result)) self.assertIsNotNone(reload_object(new_script_result))
def create_pod_with_host(self, params=None): if params is None: params = {} subnet = factory.make_Subnet() machine = factory.make_Machine_with_Interface_on_Subnet(subnet=subnet) ip = factory.make_StaticIPAddress(subnet=subnet, interface=machine.boot_interface) pod = factory.make_Pod(ip_address=ip, **params) return pod, machine
def test_does_nothing_if_reserved_status(self): machine = factory.make_Machine_with_Interface_on_Subnet( status=self.status, power_state=POWER_STATE.ON) for interface in machine.interface_set.all(): interface.claim_auto_ips() # Hack to get around node transition model Node.objects.filter(id=machine.id).update( status=random.choice(self.reserved_statuses)) machine = reload_object(machine) machine.power_state = POWER_STATE.OFF machine.save() for ip in StaticIPAddress.objects.filter( interface__node=machine, alloc_type=IPADDRESS_TYPE.AUTO): self.assertIsNotNone(ip.ip)