From ab6c2c0cd441cf40723016e9a82aeeeb933fec7e Mon Sep 17 00:00:00 2001 From: Skip Wonnell Date: Mon, 14 Aug 2017 17:47:10 -0500 Subject: Initial adds artifact handler and design services asdc-artifact-handler: an interface to receive artifacts distributed by SDC and persist them into the local database. appc-design-services: an interface to manage VNF configuration artifacts, primarily those generated by the configuration design tool. Includes these user stories: APPC-28/85 Change-Id: Ib207070d4593554fa424fc69d9c77a6cd5349fec Signed-off-by: Skip Wonnell Issue-Id: APPC-9 --- appc-inbound/appc-design-services/model/.gitignore | 1 + appc-inbound/appc-design-services/model/pom.xml | 155 +++++++++++++++++++++ .../model/scripts/python/yang2props.py | 57 ++++++++ .../model/src/main/yang/appc-design-services.yang | 144 +++++++++++++++++++ 4 files changed, 357 insertions(+) create mode 100755 appc-inbound/appc-design-services/model/.gitignore create mode 100755 appc-inbound/appc-design-services/model/pom.xml create mode 100755 appc-inbound/appc-design-services/model/scripts/python/yang2props.py create mode 100644 appc-inbound/appc-design-services/model/src/main/yang/appc-design-services.yang (limited to 'appc-inbound/appc-design-services/model') diff --git a/appc-inbound/appc-design-services/model/.gitignore b/appc-inbound/appc-design-services/model/.gitignore new file mode 100755 index 000000000..b83d22266 --- /dev/null +++ b/appc-inbound/appc-design-services/model/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/appc-inbound/appc-design-services/model/pom.xml b/appc-inbound/appc-design-services/model/pom.xml new file mode 100755 index 000000000..ef7b83e55 --- /dev/null +++ b/appc-inbound/appc-design-services/model/pom.xml @@ -0,0 +1,155 @@ + + + 4.0.0 + + appc-design-services + org.openecomp.appc + 1.1.0-SNAPSHOT + + appc-design-services-model + bundle + + + + + + org.apache.felix + maven-bundle-plugin + true + + + * + + + + + org.opendaylight.yangtools + yang-maven-plugin + + + org.opendaylight.mdsal + maven-sal-api-gen-plugin + ${odl.sal.api.gen.plugin.version} + jar + + + + + + generate-sources + + + ${yang.file.directory} + + + org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl + ${salGeneratorPath} + + + true + + + + + + org.codehaus.mojo + exec-maven-plugin + 1.2.1 + + + + python + + scripts/python/yang2props.py + src/main/yang/appc-design-services.yang + target/appc-design-services.properties + + + generation + generate-resources + + exec + + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + attach-artifacts + + attach-artifact + + package + + + + ${project.build.directory}/appc-design-services.properties + properties + appc-design-services + + + + + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.codehaus.mojo + + + exec-maven-plugin + + + [1.2.1,) + + + exec + + + + + + + + + + + + + + + + org.opendaylight.mdsal + yang-binding + + + org.opendaylight.yangtools + yang-common + + + org.opendaylight.mdsal.model + ietf-inet-types + + + org.opendaylight.mdsal.model + ietf-yang-types + + + diff --git a/appc-inbound/appc-design-services/model/scripts/python/yang2props.py b/appc-inbound/appc-design-services/model/scripts/python/yang2props.py new file mode 100755 index 000000000..559d31b8b --- /dev/null +++ b/appc-inbound/appc-design-services/model/scripts/python/yang2props.py @@ -0,0 +1,57 @@ +#!/usr/bin/python + +import re +import sys + + +# Convert word from foo-bar to FooBar +# words begining with a digit will be converted to _digit +def to_enum(s): + if s[0].isdigit(): + s = "_" + s + else: + s = s[0].upper() + s[1:] + return re.sub(r'(?!^)-([a-zA-Z])', lambda m: m.group(1).upper(), s) + +leaf = "" +val = "" +li = [] + +if len(sys.argv) < 3: + print 'yang2props.py ' + sys.exit(2) + +with open(sys.argv[1], "r") as ins: + for line in ins: + # if we see a leaf save the name for later + if "leaf " in line: + match = re.search(r'leaf (\S+)', line) + if match: + leaf = match.group(1) + + # if we see enum convert the value to enum format and see if it changed + # if the value is different write a property entry + if "enum " in line: + match = re.search(r'enum "(\S+)";', line) + if match: + val = match.group(1) + enum = to_enum(val) + + # see if converting to enum changed the string + if val != enum: + property = "yang."+leaf+"."+enum+"="+val + if property not in li: + li.append( property) + + +# Open output file +fo = open(sys.argv[2], "wb") +fo.write("# yang conversion properties \n") +fo.write("# used to convert Enum back to the original yang value \n") +fo.write("\n".join(li)) +fo.write("\n") + +# Close opend file +fo.close() + + diff --git a/appc-inbound/appc-design-services/model/src/main/yang/appc-design-services.yang b/appc-inbound/appc-design-services/model/src/main/yang/appc-design-services.yang new file mode 100644 index 000000000..b43ce0fad --- /dev/null +++ b/appc-inbound/appc-design-services/model/src/main/yang/appc-design-services.yang @@ -0,0 +1,144 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APPC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Copyright (C) 2017 Amdocs + * ============================================================================= + * 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. + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * ============LICENSE_END========================================================= + */ + +/* + * Yang model for the Application Controller (APP-C) component of ECOMP + * + * + *The main purpose of this model to provide an interface bewteen APPC Runtime and APPC design time environment + * to communicate. + * + * + * + * +*/ + +module design-services { + + yang-version 1; + namespace "org:openecomp:appc"; + prefix design-services; + organization "AT&T. Copyright (C) 2015. All rights reserved."; + + description + "Defines the services and request/response requirements for the APP-C Design and RunTime."; + + /* + * Note, the revision changes the package name of the generated java code. Do not + * change the revision unless you also update all references to the bindings. + */ + revision "2017-06-27" { + description + "APP-C Design interface version 1.1.0"; + } + + grouping design-request { + container design-request { + leaf request-id { + type string; + description "The request ID "; + mandatory true; + } + leaf action { + type string; + description "The Action Name"; + mandatory true; + } + leaf payload { + type string; + description "The Payload"; + } + leaf data-type { + description "Data type for validation"; + type string; + + } + } + } + + + grouping data { + description "The Generic Data response which includes data from run Time for Design time environment"; + container data { + description "The Data from run Time for Design time environment"; + leaf block { + description "Response message"; + type string; + } + leaf requestId { + description "Response message reqesut ID"; + type string; + mandatory true; + } + } + + } + grouping status { + description "The specific response codes are to be aligned with APPC/ECOMP messaging Systems"; + container status { + description "The specific response codes are to be aligned with ASDC reference doc (main table removed to avoid duplication and digression from main table). See ASDC and ECOMP Distribution Consumer Interface Agreement"; + leaf code { + description "Response code"; + type string; + mandatory true; + } + leaf message { + description "Response message"; + type string; + } + } + } + + rpc dbservice { + description "Runs a given task if it exists."; + input { + uses design-request; + } + output { + uses data ; + uses status; + } + } + rpc validator { + description "Runs a given task if it exists."; + + input { + uses design-request; + } + output { + uses status; + } + } + rpc xinterfaceservice { + description "Runs a given task if it exists."; + input { + uses design-request; + } + output { + uses data ; + uses status; + + } + } +} -- cgit 1.2.3-korg