Update to use rw-project definition from platform 71/1271/2
authorPhilip Joseph <philip.joseph@riftio.com>
Wed, 8 Mar 2017 12:58:08 +0000 (18:28 +0530)
committerjosephp <philip.joseph@riftio.com>
Wed, 22 Mar 2017 19:33:47 +0000 (20:33 +0100)
Signed-off-by: Philip Joseph <philip.joseph@riftio.com>
19 files changed:
common/plugins/yang/CMakeLists.txt
common/python/rift/mano/utils/project.py
models/plugins/yang/CMakeLists.txt
models/plugins/yang/rw-project-mano.yang [new file with mode: 0644]
models/plugins/yang/rw-project.yang [deleted file]
rwcal/plugins/yang/CMakeLists.txt
rwcm/plugins/yang/rw-conman.yang
rwlaunchpad/plugins/cli/cli_launchpad_schema_listing.txt
rwlaunchpad/plugins/rwvns/yang/CMakeLists.txt
rwlaunchpad/plugins/yang/CMakeLists.txt
rwlaunchpad/plugins/yang/rw-image-mgmt.yang
rwlaunchpad/plugins/yang/rw-launchpad.yang
rwlaunchpad/plugins/yang/rw-monitor.yang
rwlaunchpad/plugins/yang/rw-nsm.yang
rwlaunchpad/plugins/yang/rw-pkg-mgmt.yang
rwlaunchpad/plugins/yang/rw-resource-mgr.yang
rwlaunchpad/plugins/yang/rw-staging-mgmt.yang
rwlaunchpad/plugins/yang/rw-vnfm.yang
rwlaunchpad/plugins/yang/rw-vns.yang

index 69b2f99..bc32d5d 100644 (file)
@@ -28,12 +28,12 @@ rift_add_yang_target(
   LIBRARIES
     rwsdn_yang_gen
     rwcal_yang_gen
-    rwproject_yang_gen
+    rwprojectmano_yang_gen
     mano-types_yang_gen
   DEPENDS
     rwcal_yang
     rwsdn_yang
-    rwproject_yang
+    rwprojectmano_yang
     mano-types_yang
 )
 
@@ -43,8 +43,8 @@ rift_add_yang_target(
   COMPONENT ${PKG_LONG_NAME}
   LIBRARIES
     rwcal_yang_gen
-    rwproject_yang_gen
+    rwprojectmano_yang_gen
   DEPENDS
     rwcal_yang
-    rwproject_yang
+    rwprojectmano_yang
 )
index 65d7654..56778a9 100644 (file)
@@ -21,12 +21,13 @@ import asyncio
 import logging
 
 import gi
-gi.require_version('RwProjectYang', '1.0')
+gi.require_version('RwProjectManoYang', '1.0')
 gi.require_version('RwDtsYang', '1.0')
 from gi.repository import (
-    RwProjectYang,
+    RwProjectManoYang,
     RwDts as rwdts,
     ProtobufC,
+    RwTypes,
 )
 
 import rift.tasklets
@@ -263,7 +264,7 @@ class ManoProject(object):
             self._prefix = "{}[{}='{}']".format(XPATH,
                                                 NS_NAME,
                                                 self._name)
-            self._pbcm = RwProjectYang.YangData_RwProject_Project(
+            self._pbcm = RwProjectManoYang.YangData_RwProject_Project(
                 name=self._name)
 
         elif self._name == value:
@@ -319,7 +320,7 @@ class ManoProject(object):
 
     @asyncio.coroutine
     def create_project(self, dts):
-        proj_xpath = "C,{}/project-config".format(self.prefix)
+        proj_xpath = "C,{}/config".format(self.prefix)
         self._log.info("Creating project: {} with {}".
                        format(proj_xpath, self.config.as_dict()))
 
@@ -395,7 +396,7 @@ class ProjectConfigCallbacks(object):
 
 
 class ProjectDtsHandler(object):
-    XPATH = "C,{}/project-config".format(XPATH)
+    XPATH = "C,{}/config".format(XPATH)
 
     def __init__(self, dts, log, callbacks):
         self._dts = dts
@@ -485,10 +486,13 @@ class ProjectDtsHandler(object):
             for cfg in update_cfgs:
                 self.update_project(cfg.name_ref)
 
+            return RwTypes.RwStatus.SUCCESS
+
         @asyncio.coroutine
         def on_prepare(dts, acg, xact, xact_info, ks_path, msg, scratch):
             """ Prepare callback from DTS for Project """
 
+            action = xact_info.query_action
             # xpath = ks_path.to_xpath(RwProjectYang.get_schema())
             # name = ManoProject.from_xpath(xpath, self._log)
             # if not name:
@@ -497,8 +501,18 @@ class ProjectDtsHandler(object):
             #     xact_info.respond_xpath(rwdts.XactRspCode.NACK)
             #     return
 
-            action = xact_info.query_action
+            # if name != msg.name_ref:
+            #     self._log.error("The project name {} did not match the name {} in config".
+            #                     format(name, msg.name_ref))
+            # projects = scratch.setdefault('projects', {
+            #     'create': [],
+            #     'update': [],
+            #     'delete': [],
+            # })
+
+            self._log.error("prepare msg type {}".format(type(msg)))
             name = msg.name_ref
+
             self._log.debug("Project %s on_prepare config received (action: %s): %s",
                             name, xact_info.query_action, msg)
 
@@ -512,6 +526,7 @@ class ProjectDtsHandler(object):
                                     format(name))
                     yield from self._callbacks.on_add_prepare(name)
 
+
             elif action == rwdts.QueryAction.DELETE:
                 # Check if the entire project got deleted
                 fref = ProtobufC.FieldReference.alloc()
index 580e556..f31fa3c 100644 (file)
@@ -38,11 +38,13 @@ set(source_yang_files
   )
 
 rift_add_yang_target(
-  TARGET rwproject_yang
+  TARGET rwprojectmano_yang
   YANG_FILES
-    rw-project.yang
+    rw-project-mano.yang
   GIR_PATHS ${CMAKE_CURRENT_BINARY_DIR}
   COMPONENT ${PKG_LONG_NAME}
+  LIBRARIES
+    rw_project_yang_gen
   )
 
 rift_add_yang_target(
@@ -51,9 +53,7 @@ rift_add_yang_target(
     mano-types.yang
   COMPONENT ${PKG_LONG_NAME}
   LIBRARIES
-    rwproject_yang_gen
-  DEPENDS
-    rwproject_yang
+    rwprojectmano_yang_gen
   )
 
 rift_add_yang_target(
@@ -67,11 +67,11 @@ rift_add_yang_target(
     rwcloud_yang_gen
     rwconfig_agent_yang_gen
     mano-types_yang_gen
-    rwproject_yang_gen
+    rwprojectmano_yang_gen
   DEPENDS
     rwcloud_yang
     rwconfig_agent_yang
-    rwproject_yang
+    rwprojectmano_yang
   )
 
 #rift_gen_yang_tree(mano-pyang-trees
diff --git a/models/plugins/yang/rw-project-mano.yang b/models/plugins/yang/rw-project-mano.yang
new file mode 100644 (file)
index 0000000..0b5a334
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ *
+ *   Copyright 2017 RIFT.IO Inc
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+
+module rw-project-mano
+{
+  namespace "http://riftio.com/ns/riftware-1.0/rw-project-mano";
+  prefix "rw-project-mano";
+
+  import rw-pb-ext {
+    prefix "rw-pb-ext";
+  }
+
+  import rw-project {
+    prefix "rw-project";
+  }
+
+  revision 2017-03-08 {
+    description
+      "Initial revision. This YANG file defines the
+       MANO extentions for project based tenancy";
+    reference
+      "Derived from earlier versions of base YANG files";
+  }
+
+  augment /rw-project:project/rw-project:config {
+    leaf name-ref {
+      type leafref {
+        path "../../rw-project:name";
+      }
+    }
+  }
+}
diff --git a/models/plugins/yang/rw-project.yang b/models/plugins/yang/rw-project.yang
deleted file mode 100644 (file)
index 32030d1..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- *
- *   Copyright 2017 RIFT.IO Inc
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- */
-
-module rw-project
-{
-  namespace "http://riftio.com/ns/riftware-1.0/rw-project";
-  prefix "rw-project";
-
-  import rw-pb-ext {
-    prefix "rw-pb-ext";
-  }
-
-  revision 2017-02-08 {
-    description
-      "Initial revision. This YANG file defines the
-       projects fo MANO to support Role Based Access
-       Control (RBAC)";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-
-  list project {
-    description
-        "Configuration for individual Projects.  RIFT.ware applications
-        and Projects are expected to augment this list in order to add
-        configuration for Projects that is specific to the product or
-        application.  As such, this list contains minimal data defined
-        in this yang module.  When augmenting this element, other yang
-        modules should prefer to define containers with the same name
-        as the augmenting module.  (Augmenting RIFT.ware modules should
-        prefer to augment without the rw prefix [for new features], or
-        should prefer to augment the augmented container of an existing
-        augment.";
-
-    key name;
-    leaf name {
-      description "Name of the Project.";
-      type string {
-        length "1..255";
-      }
-    }
-
-    leaf description {
-      description "Information about Project";
-      type string;
-    }
-
-    container project-config {
-
-      description "Project management related configuration.";
-
-      leaf name-ref {
-        type leafref {
-          path "../../name";
-        }
-        mandatory true;
-      }
-
-      // list user {
-      //   description
-      //     "The list of Users who have been assigned Roles within this
-      //     Project.";
-
-      //   key user-name user-domain;
-      //   uses rw-rbac-base:user-key;
-
-      //   list role {
-      //     description
-      //       "The list of Roles the User has been assigned.";
-
-      //     key role key;
-      //     uses rw-rbac-base:role-instance;
-      //   }
-      // }
-    }
-
-    container project-state {
-
-      config false;
-
-      description "Project management operational data";
-    }
-  }
-}
index 58c5cdb..52ad258 100644 (file)
@@ -37,12 +37,12 @@ rift_add_yang_target(
   COMPONENT ${PKG_LONG_NAME}
   DEPENDS
     mano-types_yang
-    rwproject_yang
+    rwprojectmano_yang
   LIBRARIES
     rwschema_yang_gen
     rwyang
     rwlog
     rwlog-mgmt_yang_gen
     mano-types_yang_gen
-    rwproject_yang_gen
+    rwprojectmano_yang_gen
 )
index b6cf99c..9a29a60 100644 (file)
@@ -87,6 +87,10 @@ module rw-conman
     prefix "rw-project";
   }
 
+  import rw-project-mano {
+    prefix "rw-project-mano";
+  }
+
   revision 2017-02-08 {
     description
       "Update model to support projects.";
index c06e6b8..6bebc9d 100644 (file)
@@ -39,6 +39,7 @@ rw-nsm
 rw-nsr
 rw-pb-ext
 rw-project
+rw-project-mano
 rw-project-nsd
 rw-project-vnfd
 rw-resource-mgr
index 1c036b4..ecc180c 100644 (file)
@@ -29,6 +29,6 @@ rift_add_yang_target(
   COMPONENT ${PKG_LONG_NAME}
   LIBRARIES
     mano-types_yang_gen
-    rwproject_yang_gen
+    rwprojectmano_yang_gen
 )
 
index 2bfcc0d..f4bf007 100644 (file)
@@ -71,13 +71,13 @@ rift_add_yang_target(
     rw_conman_yang_gen
     rwconfig_agent_yang_gen
     mano-types_yang_gen
-    rwproject_yang_gen
+    rwprojectmano_yang_gen
   DEPENDS
     mano_yang
     rwcloud_yang
     rw_conman_yang
     rwconfig_agent_yang
     mano-types_yang
-    rwproject_yang
+    rwprojectmano_yang
 )
 
index 27eab2e..457db6d 100644 (file)
@@ -53,6 +53,10 @@ module rw-image-mgmt
     prefix "rw-project";
   }
 
+  import rw-project-mano {
+    prefix "rw-project-mano";
+  }
+
   import mano-types {
     prefix "mano-types";
   }
index 9932874..7787fa2 100644 (file)
@@ -106,6 +106,10 @@ module rw-launchpad
     prefix "rw-project";
   }
 
+  import rw-project-mano {
+    prefix "rw-project-mano";
+  }
+
   revision 2017-02-08 {
     description
       "Update model to support projects.";
index 559880d..e9a1112 100644 (file)
@@ -63,6 +63,10 @@ module rw-monitor
     prefix "yang";
   }
 
+  import rw-project-mano {
+    prefix "rw-project-mano";
+  }
+
   revision 2015-10-30 {
     description
       "Initial revision.";
index f182114..975bd81 100644 (file)
@@ -103,6 +103,10 @@ module rw-nsm
     prefix "rw-project";
   }
 
+  import rw-project-mano {
+    prefix "rw-project-mano";
+  }
+
   revision 2017-02-08 {
     description
       "Update model to support projects.";
index 747fbc5..49e8925 100644 (file)
@@ -57,6 +57,10 @@ module rw-pkg-mgmt
     prefix "rw-project";
   }
 
+  import rw-project-mano {
+    prefix "rw-project-mano";
+  }
+
   revision 2017-02-08 {
     description
       "Update model to support projects.";
index 0d56004..08d606d 100644 (file)
@@ -56,6 +56,10 @@ module rw-resource-mgr
     prefix "rw-project";
   }
 
+  import rw-project-mano {
+    prefix "rw-project-mano";
+  }
+
   revision 2017-02-08 {
     description
       "Update model to support projects.";
index 8ae1f71..2a6b37d 100644 (file)
@@ -57,6 +57,10 @@ module rw-staging-mgmt
     prefix "rw-project";
   }
 
+  import rw-project-mano {
+    prefix "rw-project-mano";
+  }
+
   revision 2017-02-08 {
     description
       "Update model to support projects.";
index 225633b..dc83a4c 100644 (file)
@@ -71,6 +71,10 @@ module rw-vnfm
     prefix "rw-launchpad";
   }
 
+  import rw-project-mano {
+    prefix "rw-project-mano";
+  }
+
   revision 2015-10-07 {
     description
       "Initial revision.";
index 0036e16..d0c9cc1 100644 (file)
@@ -89,6 +89,10 @@ module rw-vns
     prefix "rw-sdn";
   }
 
+  import rw-project-mano {
+    prefix "rw-project-mano";
+  }
+
   revision 2015-10-05 {
     description
       "Initial revision.";