From 96a9aafdff7813324bc8a8ba1e743683e251dde6 Mon Sep 17 00:00:00 2001 From: Jessica Wagantall Date: Tue, 1 Dec 2020 11:33:35 -0800 Subject: Migrate files from sli-plugins Migrate sli-plugins repo into new directory "plugins". Signed-off-by: Jessica Wagantall --- plugins/grToolkit/model/.gitignore | 1 + plugins/grToolkit/model/pom.xml | 27 +++ .../grToolkit/model/scripts/python/yang2props.py | 78 ++++++++ .../grToolkit/model/src/main/yang/gr-toolkit.yang | 199 +++++++++++++++++++++ 4 files changed, 305 insertions(+) create mode 100755 plugins/grToolkit/model/.gitignore create mode 100755 plugins/grToolkit/model/pom.xml create mode 100755 plugins/grToolkit/model/scripts/python/yang2props.py create mode 100755 plugins/grToolkit/model/src/main/yang/gr-toolkit.yang (limited to 'plugins/grToolkit/model') diff --git a/plugins/grToolkit/model/.gitignore b/plugins/grToolkit/model/.gitignore new file mode 100755 index 000000000..eacf31a67 --- /dev/null +++ b/plugins/grToolkit/model/.gitignore @@ -0,0 +1 @@ +/target-ide/ diff --git a/plugins/grToolkit/model/pom.xml b/plugins/grToolkit/model/pom.xml new file mode 100755 index 000000000..5d518d744 --- /dev/null +++ b/plugins/grToolkit/model/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + + org.onap.ccsdk.parent + binding-parent + 2.1.0 + + + + org.onap.ccsdk.sli.plugins + gr-toolkit-model + 1.1.1-SNAPSHOT + bundle + + ccsdk-sli-plugins :: gr-toolkit :: ${project.artifactId} + + + + org.opendaylight.mdsal.binding.model.ietf + rfc6991 + + + + + diff --git a/plugins/grToolkit/model/scripts/python/yang2props.py b/plugins/grToolkit/model/scripts/python/yang2props.py new file mode 100755 index 000000000..85daccfbd --- /dev/null +++ b/plugins/grToolkit/model/scripts/python/yang2props.py @@ -0,0 +1,78 @@ +#!/usr/bin/python + +### +# ============LICENSE_START======================================================= +# openECOMP : SDN-C +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights +# reserved. +# ================================================================================ +# 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. +# ============LICENSE_END========================================================= +### + +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/plugins/grToolkit/model/src/main/yang/gr-toolkit.yang b/plugins/grToolkit/model/src/main/yang/gr-toolkit.yang new file mode 100755 index 000000000..cc21400a7 --- /dev/null +++ b/plugins/grToolkit/model/src/main/yang/gr-toolkit.yang @@ -0,0 +1,199 @@ +module gr-toolkit{ + namespace "org:onap:ccsdk:sli:plugins:gr-toolkit"; + prefix gr-toolkit; + + import ietf-inet-types { + prefix inet; + } + import ietf-yang-types { + prefix yang; + } + description + "This ODL feature is designed to gauge the health of all cluster members."; + revision "2018-09-26" { + description + "Release 19.02 draft"; + } + + grouping member { + leaf address { + type string; + mandatory true; + } + leaf role { + type string; + mandatory true; + } + leaf up { + type boolean; + mandatory true; + } + leaf unreachable { + type boolean; + mandatory true; + } + leaf voting { + type boolean; + mandatory true; + } + list leader { + leaf shard { + type string; + mandatory true; + } + } + list replicas { + leaf shard { + type string; + mandatory true; + } + } + list commit-status { + leaf shard { + type string; + mandatory true; + } + leaf delta { + type int32; + mandatory true; + } + } + } + + grouping site { + leaf id { + type string; + mandatory true; + } + leaf role { + type string; + mandatory true; + } + leaf health { + type string; + mandatory true; + } + } + + grouping node { + leaf node { + type string; + mandatory true; + } + leaf port { + type string; + mandatory true; + } + } + + rpc cluster-health { + description + "Parses akka.conf for seed nodes and queries Jolokia for the health + of each node."; + output { + leaf status { type string; } + leaf message { type string; } + leaf served-by { type string; } + leaf site1-health { type string; } + leaf site2-health { type string; } + list members { + uses member; + } + } + } + + rpc database-health { + description + "Uses DbLibService connection info to determine if the database is reachable."; + output { + leaf status { type string; } + leaf health { type string; } + leaf served-by { type string; } + } + } + + rpc admin-health { + description + "Pings the admin portal health check to determine if the admin portal is reachable."; + output { + leaf status { type string; } + leaf health { type string; } + leaf served-by { type string; } + } + } + + rpc site-health { + description + "Gathers health information on the ODL cluster, database, and admin portal + to determine if the entire site is in a healthy state."; + output { + leaf status { type string; } + leaf served-by { type string; } + list sites { + uses site; + } + } + } + + rpc site-identifier { + description + "Returns the unique site identifier."; + output { + leaf status { type string; } + leaf served-by { type string; } + leaf id { type string; mandatory true; } + } + } + + rpc halt-akka-traffic { + description + "Executes IP Tables commands to halt traffic to the akka port."; + input { + list node-info { + uses node; + } + } + output { + leaf status { type string; } + leaf served-by { type string; } + } + } + + rpc resume-akka-traffic { + description + "Executes IP Tables commands to resume traffic to the akka port."; + input { + list node-info { + uses node; + } + } + output { + leaf status { type string; } + leaf served-by { type string; } + } + } + + rpc failover { + description + "Performs a failover from primary site to standby site."; + input { + leaf backupData { + type string; + default "false"; + } + leaf isolate { + type string; + default "false"; + } + leaf downUnreachable { + type string; + default "false"; + } + } + output { + leaf status { type string; } + leaf message { type string; } + leaf served-by { type string; } + } + } +} -- cgit 1.2.3-korg