def forwards(self, orm):
        # Initialise new field 'NodeGroupInterface.name'.  This becomes the
        # identifying name (within a cluster) of a cluster interface, instead
        # of the network interface name.  A network interface may be on
        # multiple IPv6 networks, each has to be its own cluster interface.
        #
        # For pre-existing NodeGroupInterface entries, the name defaults to
        # a watered-down version of the network interface name.
        for ngi in orm['maasserver.nodegroupinterface'].objects.all():
            ngi.name = make_name_from_interface(ngi.interface)
            ngi.save()

        # Removing unique constraint on 'NodeGroupInterface', fields ['interface', 'nodegroup']
        db.delete_unique('maasserver_nodegroupinterface',
                         ['interface', 'nodegroup_id'])

        # Adding unique constraint on 'NodeGroupInterface', fields ['nodegroup', 'name']
        db.create_unique('maasserver_nodegroupinterface',
                         ['nodegroup_id', 'name'])
Example #2
0
 def test__makes_up_unique_name_if_no_interface_given(self):
     self.assertNotEqual(make_name_from_interface(""),
                         make_name_from_interface(""))
Example #3
0
 def test__makes_up_name_if_no_interface_given(self):
     self.assertNotIn(make_name_from_interface(None), (None, ""))
     self.assertNotIn(make_name_from_interface(""), (None, ""))
Example #4
0
 def test__escapes_weird_characters(self):
     self.assertEqual("x--y", make_name_from_interface("x?y"))
     self.assertEqual("x--y", make_name_from_interface("x y"))
Example #5
0
 def test__passes_name_unchanged(self):
     name = factory.make_name("itf9:2")
     self.assertEqual(name, make_name_from_interface(name))
Example #6
0
 def test__escapes_weird_characters(self):
     self.assertEqual('x--y', make_name_from_interface('x?y'))
     self.assertEqual('x--y', make_name_from_interface('x y'))