removing plural from model names. some cleanup
[plstackapi.git] / planetstack / apigen / modelgen
old mode 100755 (executable)
new mode 100644 (file)
index ef2730b..04ca0fa
@@ -55,6 +55,24 @@ class GenObj(object):
                        else:
                                return name+'s'
 
+        def singular(self):
+            return str(self)
+
+        def rest_name(self):
+            # These are things that either for historic reasons or due to incorrect naming,
+            # got called something different than the autogen thinks they should be
+            # called.
+            REST_FIXUP = {'controllernetworkses': 'controllernetworks',
+                            'controllerimageses': 'controllerimages',
+                            'controllersliceses': 'controllerslices',
+                            'controlleruserses': 'controllerusers',
+                            'sitedeploymentses': 'sitedeployments',
+                            'siteroles': 'site_roles',
+                            'sliceprivileges': 'slice_privileges',
+                            'sliceroles': 'slice_roles',
+                            }
+            return REST_FIXUP.get(self.plural(), self.plural())
+
        def camel(self):
                name = str(self.model.__name__)
                return name
@@ -93,8 +111,6 @@ class Generator(dict):
                                                cobj = copy.deepcopy(obj)
                                                cobj.multi = True
                                                cobj.plural_name = related_name
-                                               #if (str(refobj)=='slice' and related_name=='networks'):
-                                               #       pdb.set_trace()
                                                refobj.refs.append(cobj)
                                else:
                                        obj.props.append(f.name)
@@ -108,24 +124,23 @@ class Generator(dict):
 
                                related_name = f.related_query_name()
                                if related_model_name in self.keys():
-                       #               pdb.set_trace()
+                                        #print "XXX1", obj, f, related_name, related_model_name
                                        refobj = self[related_model_name]
                                        cobj = copy.deepcopy(obj)
                                        cobj.multi=True
                                        refobj.refs.append(cobj)
-                               
+
+                                # deal with upgradeFrom_rel_+
+                                if (related_name.endswith("+")):
+                                    continue
+
                                if (related_name!='+' and related_name.lower()!=str(obj).lower()):
-                                       cobj = copy.deepcopy(obj)
+                                        #print "XXX2", obj, f, related_name, related_model_name, refobj.plural_name
+                                        refobj = self[related_model_name]
+                                       cobj = copy.deepcopy(refobj)
                                        cobj.multi = True
-                                       cobj.plural_name = related_name
-
-                                       #if (str(refobj)=='slice' and related_name=='networks'):
-                                       #       pdb.set_trace()
-                                       refobj.refs.append(cobj)
 
-                                       #if (related_name=='networks'):
-                                               #pdb.set_trace()
-                                               #print str(refobj)
+                                       obj.refs.append(cobj)