← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~jtv/maas/prep-nodeuserdata into lp:maas

 

Jeroen T. Vermeulen has proposed merging lp:~jtv/maas/prep-nodeuserdata into lp:maas.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)

For more details, see:
https://code.launchpad.net/~jtv/maas/prep-nodeuserdata/+merge/110459

As per the migration plan.  This prepares for the first model migration for metadataserver.  I hadn't updated its models to use DefaultMeta for their Meta classes yet, so here I do that for all metadataserver models in one go.

And as with the maasserver migration, I'm keeping the largest and most actively maintained model for last, so that it can be moved by renaming the file which minimizes bzr conflicts.  That would probably be NodeCommissionResult.  I'm not entirely sure, but I'm fairly sure it's not NodeUserData.  So that one goes first.

Finally, also as per the plan, I converted a ForeignKey to use the name of the model class it refers to, rather than the actual model class it refers to.  This helps reduce the risk of circular imports in a place where we can't just defer the import until runtime.  This is a change I didn't make for all classes in one go, because especially with more model migrations ahead, it's nice to keep the early validity check of an actual class reference for as long as we can.


Jeroen
-- 
https://code.launchpad.net/~jtv/maas/prep-nodeuserdata/+merge/110459
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~jtv/maas/prep-nodeuserdata into lp:maas.
=== modified file 'src/metadataserver/models/__init__.py'
--- src/metadataserver/models/__init__.py	2012-06-14 06:53:15 +0000
+++ src/metadataserver/models/__init__.py	2012-06-15 05:45:24 +0000
@@ -29,6 +29,7 @@
 from maasserver.models import Node
 from maasserver.models.cleansave import CleanSave
 from maasserver.models.user import create_auth_token
+from metadataserver import DefaultMeta
 from metadataserver.fields import (
     Bin,
     BinaryField,
@@ -124,6 +125,9 @@
         to the maas-init-node user.
     """
 
+    class Meta(DefaultMeta):
+        """Needed for South to recognize this model."""
+
     objects = NodeKeyManager()
 
     node = ForeignKey(Node, null=False, editable=False, unique=True)
@@ -132,6 +136,7 @@
         max_length=KEY_SIZE, null=False, editable=False, unique=True)
 
 
+# Scheduled for model migration on 2012-06-22
 class NodeUserDataManager(Manager):
     """Utility for the collection of NodeUserData items."""
 
@@ -167,6 +172,7 @@
         self.filter(node=node).delete()
 
 
+# Scheduled for model migration on 2012-06-22
 class NodeUserData(CleanSave, Model):
     """User-data portion of a node's metadata.
 
@@ -178,9 +184,13 @@
     :ivar data: base64-encoded data.
     """
 
+    class Meta(DefaultMeta):
+        """Needed for South to recognize this model."""
+
     objects = NodeUserDataManager()
 
-    node = ForeignKey(Node, null=False, editable=False, unique=True)
+    node = ForeignKey(
+        'maasserver.Node', null=False, editable=False, unique=True)
     data = BinaryField(null=False)
 
 
@@ -223,5 +233,5 @@
     name = CharField(max_length=100, unique=False, editable=False)
     data = CharField(max_length=1024 * 1024, editable=True)
 
-    class Meta:
+    class Meta(DefaultMeta):
         unique_together = ('node', 'name')