def test__returns_kparams_for_known_node(self): rack_controller = factory.make_RackController() local_ip = factory.make_ip_address() remote_ip = factory.make_ip_address() """ The make_node function will result in a boot resource being created with an architecture that looks like "arch-YYY/hwe-Z", with YYY being a random string and Z being the first letter of the default commissioning image. If we don't create a node with this same kernel name, the node will use an architecture name of arch-YYY/generic which means the get_config won't find the matching boot resource file with the kparams attribute. """ default_series = Config.objects.get_config( name='commissioning_distro_series') release = get_release_from_distro_info(default_series) hwe_kernel = "hwe-%s" % (release['version'].split()[0]) node = self.make_node_with_extra(status=NODE_STATUS.DEPLOYING, extra={'kparams': 'a=b'}, hwe_kernel=hwe_kernel) """ Create a tag so that we can make sure the kparams attribute got merged with the tag's kernel_opts attribute. """ tag = factory.make_Tag(kernel_opts="b=c") node.tags.add(tag) mac = node.get_boot_interface().mac_address config = get_config(rack_controller.system_id, local_ip, remote_ip, mac=mac) extra = config.get('extra_opts', None) self.assertIn('b=c', extra) self.assertIn('a=b', extra)
def test_returns_none_when_not_found(self): self.assertIsNone( get_release_from_distro_info(factory.make_name("string")) )
def test_finds_by_series_first_letter(self): release = self.pick_release() self.assertEqual( release, get_release_from_distro_info(release["series"][0]) )
def test_finds_by_version(self): release = self.pick_release() self.assertEqual( release, get_release_from_distro_info(release["version"]) )
def test_finds_by_series(self): release = self.pick_release() self.assertEqual( release, get_release_from_distro_info(release['series']))