def test_returns_kpackage(self): resource = factory.make_BootResource( name="ubuntu/trusty", architecture="amd64/hwe-t", rtype=BOOT_RESOURCE_TYPE.SYNCED, ) resource_set = factory.make_BootResourceSet(resource) factory.make_boot_resource_file_with_content( resource_set, filename="boot-kernel", filetype="boot-kernel", extra={ "kpackage": "linux-image-generic-lts-trusty", "kparams": "a=b", }, ) node = factory.make_Node( interface=True, power_type="manual", osystem="ubuntu", distro_series="trusty", architecture="amd64/generic", hwe_kernel="hwe-t", ) self.assertEqual( "a=b", BootResource.objects.get_kparams_for_node(node) )
def test_xinstallable_returns_true_when_filetype_present(self): resource = factory.make_BootResource() resource_set = factory.make_BootResourceSet(resource) filetype = random.choice(XINSTALL_TYPES) factory.make_boot_resource_file_with_content( resource_set, filename=filetype, filetype=filetype) self.assertTrue(resource_set.xinstallable)
def make_all_boot_resource_files(self, resource_set, filetypes): for filetype in filetypes: # We set the filename to the same value as filetype, as in most # cases this will always be true. The simplestreams content from # maas.io, is formatted this way. factory.make_boot_resource_file_with_content( resource_set, filename=filetype, filetype=filetype)
def test_xinstallable_returns_false_when_missing_filetypes(self): resource = factory.make_BootResource() resource_set = factory.make_BootResourceSet(resource) filetype = random.choice([ BOOT_RESOURCE_FILE_TYPE.BOOT_KERNEL, BOOT_RESOURCE_FILE_TYPE.BOOT_INITRD, BOOT_RESOURCE_FILE_TYPE.SQUASHFS_IMAGE, BOOT_RESOURCE_FILE_TYPE.ROOT_IMAGE, ]) factory.make_boot_resource_file_with_content( resource_set, filename=filetype, filetype=filetype) self.assertFalse(resource_set.xinstallable)
def test_complete_returns_true_for_complete_files(self): resource = factory.make_BootResource() resource_set = factory.make_BootResourceSet(resource) types = [ BOOT_RESOURCE_FILE_TYPE.ROOT_IMAGE, BOOT_RESOURCE_FILE_TYPE.BOOT_KERNEL, BOOT_RESOURCE_FILE_TYPE.BOOT_INITRD, ] for _ in range(3): filetype = types.pop() factory.make_boot_resource_file_with_content( resource_set, filename=filetype, filetype=filetype) self.assertTrue(resource_set.complete)
def test_get_filenames_finds_subarch_when_generic(self): release = factory.make_default_ubuntu_release_bootable() arch = release.architecture.split('/')[0] osystem, series = release.name.split('/') boot_resource_set = release.get_latest_complete_set() factory.make_boot_resource_file_with_content( boot_resource_set, filetype=BOOT_RESOURCE_FILE_TYPE.BOOT_DTB) kernel, initrd, boot_dbt = get_boot_filenames(arch, 'generic', osystem, series) self.assertEquals( boot_resource_set.files.get( filetype=BOOT_RESOURCE_FILE_TYPE.BOOT_KERNEL).filename, kernel) self.assertEquals( boot_resource_set.files.get( filetype=BOOT_RESOURCE_FILE_TYPE.BOOT_INITRD).filename, initrd) self.assertEquals( boot_resource_set.files.get( filetype=BOOT_RESOURCE_FILE_TYPE.BOOT_DTB).filename, boot_dbt)
def test_complete_returns_false_for_one_incomplete_file(self): resource = factory.make_BootResource() resource_set = factory.make_BootResourceSet(resource) types = [ BOOT_RESOURCE_FILE_TYPE.ROOT_IMAGE, BOOT_RESOURCE_FILE_TYPE.BOOT_KERNEL, BOOT_RESOURCE_FILE_TYPE.BOOT_INITRD, ] for _ in range(2): filetype = types.pop() factory.make_boot_resource_file_with_content( resource_set, filename=filetype, filetype=filetype) size = random.randint(512, 1024) total_size = random.randint(1025, 2048) filetype = types.pop() content = factory.make_bytes(size=size) largefile = factory.make_LargeFile(content=content, size=total_size) factory.make_BootResourceFile( resource_set, largefile, filename=filetype, filetype=filetype) self.assertFalse(resource_set.complete)