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
)
COMPONENT ${PKG_LONG_NAME}
LIBRARIES
rwcal_yang_gen
- rwproject_yang_gen
+ rwprojectmano_yang_gen
DEPENDS
rwcal_yang
- rwproject_yang
+ rwprojectmano_yang
)
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
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:
@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()))
class ProjectDtsHandler(object):
- XPATH = "C,{}/project-config".format(XPATH)
+ XPATH = "C,{}/config".format(XPATH)
def __init__(self, dts, log, callbacks):
self._dts = dts
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:
# 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)
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()
)
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(
mano-types.yang
COMPONENT ${PKG_LONG_NAME}
LIBRARIES
- rwproject_yang_gen
- DEPENDS
- rwproject_yang
+ rwprojectmano_yang_gen
)
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
--- /dev/null
+/*
+ *
+ * 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";
+ }
+ }
+ }
+}
+++ /dev/null
-/*
- *
- * 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";
- }
- }
-}
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
)
prefix "rw-project";
}
+ import rw-project-mano {
+ prefix "rw-project-mano";
+ }
+
revision 2017-02-08 {
description
"Update model to support projects.";
rw-nsr
rw-pb-ext
rw-project
+rw-project-mano
rw-project-nsd
rw-project-vnfd
rw-resource-mgr
COMPONENT ${PKG_LONG_NAME}
LIBRARIES
mano-types_yang_gen
- rwproject_yang_gen
+ rwprojectmano_yang_gen
)
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
)
prefix "rw-project";
}
+ import rw-project-mano {
+ prefix "rw-project-mano";
+ }
+
import mano-types {
prefix "mano-types";
}
prefix "rw-project";
}
+ import rw-project-mano {
+ prefix "rw-project-mano";
+ }
+
revision 2017-02-08 {
description
"Update model to support projects.";
prefix "yang";
}
+ import rw-project-mano {
+ prefix "rw-project-mano";
+ }
+
revision 2015-10-30 {
description
"Initial revision.";
prefix "rw-project";
}
+ import rw-project-mano {
+ prefix "rw-project-mano";
+ }
+
revision 2017-02-08 {
description
"Update model to support projects.";
prefix "rw-project";
}
+ import rw-project-mano {
+ prefix "rw-project-mano";
+ }
+
revision 2017-02-08 {
description
"Update model to support projects.";
prefix "rw-project";
}
+ import rw-project-mano {
+ prefix "rw-project-mano";
+ }
+
revision 2017-02-08 {
description
"Update model to support projects.";
prefix "rw-project";
}
+ import rw-project-mano {
+ prefix "rw-project-mano";
+ }
+
revision 2017-02-08 {
description
"Update model to support projects.";
prefix "rw-launchpad";
}
+ import rw-project-mano {
+ prefix "rw-project-mano";
+ }
+
revision 2015-10-07 {
description
"Initial revision.";
prefix "rw-sdn";
}
+ import rw-project-mano {
+ prefix "rw-project-mano";
+ }
+
revision 2015-10-05 {
description
"Initial revision.";