Example #1
0
    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)
Example #2
0
 def test_returns_none_when_not_found(self):
     self.assertIsNone(
         get_release_from_distro_info(factory.make_name("string"))
     )
Example #3
0
 def test_finds_by_series_first_letter(self):
     release = self.pick_release()
     self.assertEqual(
         release, get_release_from_distro_info(release["series"][0])
     )
Example #4
0
 def test_finds_by_version(self):
     release = self.pick_release()
     self.assertEqual(
         release, get_release_from_distro_info(release["version"])
     )
Example #5
0
 def test_finds_by_series(self):
     release = self.pick_release()
     self.assertEqual(
         release, get_release_from_distro_info(release['series']))