X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=rwcm%2Fplugins%2Fyang%2Frw-conman.yang;fp=rwcm%2Fplugins%2Fyang%2Frw-conman.yang;h=bb1555d0848bf5dbbfe8343e04c540f232847494;hb=6f07e6f33f751ab4ffe624f6037f887b243bece2;hp=0000000000000000000000000000000000000000;hpb=72a563886272088feb7cb52e4aafbe6d2c580ff9;p=osm%2FSO.git diff --git a/rwcm/plugins/yang/rw-conman.yang b/rwcm/plugins/yang/rw-conman.yang new file mode 100644 index 00000000..bb1555d0 --- /dev/null +++ b/rwcm/plugins/yang/rw-conman.yang @@ -0,0 +1,260 @@ + +/* + * + * Copyright 2016 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. + * + */ + + + +/** + * @file rw-conman.yang + * @author Manish Patel + * @date 2015/10/27 + * @brief Service Orchestrator configuration yang + */ + +module rw-conman +{ + namespace "http://riftio.com/ns/riftware-1.0/rw-conman"; + prefix "rw-conman"; + + import rw-pb-ext { + prefix "rwpb"; + } + + import rw-cli-ext { + prefix "rwcli"; + } + + import nsr { + prefix "nsr"; + } + + import vnfr { + prefix "vnfr"; + } + + import rw-vlr { + prefix "rwvlr"; + } + + import rw-yang-types { + prefix "rwt"; + } + + import ietf-inet-types { + prefix "inet"; + } + + import ietf-yang-types { + prefix "yang"; + } + + import mano-base { + prefix "manobase"; + } + + import mano-types { + prefix "manotypes"; + } + + import rw-config-agent { + prefix "rw-config-agent"; + } + + revision 2015-10-27 { + description + "Initial revision."; + } + + // typedef ro-endpoint-method { + // type enumeration { + // enum netconf; + // enum restconf; + // } + // } + + grouping ro-endpoint { + // leaf ro-endpoint-method { + // description "interface between CM & RO, defaults to netconf"; + // type ro-endpoint-method; + // default netconf; + // } + leaf ro-ip-address { + type inet:ip-address; + description "IP Address"; + default "127.0.0.1"; + } + leaf ro-port { + type inet:port-number; + description "Port Number"; + default 2022; + } + leaf ro-username { + description "RO endpoint username"; + type string; + default "admin"; + } + leaf ro-password { + description "RO endpoint password"; + type string; + default "admin"; + } + } + + grouping vnf-cfg-items { + leaf configuration-file { + description "Location of the confguration file on CM system"; + type string; + } + leaf translator-script { + description "Script that translates the templates in the configuration-file using VNFR information + Currently, we only use IP address translations. + configuration will use connection point name instead of IP addresses."; + type string; + } + } + + container cm-config { + description "Service Orchestrator specific configuration"; + rwpb:msg-new "SoConfig"; + rwcli:new-mode "cm-config"; + + container ro-endpoint { + description "Resource Orchestrator endpoint ip address"; + rwpb:msg-new "RoEndpoint"; + uses ro-endpoint; + } + + //uses vnf-cfg-items; + + list nsr { + key "id"; + leaf id { + description "Indicates NSR bringup complete, now initiate configuration of the NSR"; + type yang:uuid; + } + } + }// cm-config + + // =================== SHOW ================== + typedef record-state { + type enumeration { + enum init; + enum received; + enum cfg-delay; + enum cfg-process; + enum cfg-process-failed; + enum cfg-sched; + enum connecting; + enum failed-connection; + enum netconf-connected; + enum netconf-ssh-connected; + enum restconf-connected; + enum cfg-send; + enum cfg-failed; + enum ready-no-cfg; + enum ready; + } + } + + // TBD: Do we need this typedef, currently not used anywhere + typedef cfg-type { + type enumeration { + enum none; + enum scriptconf; + enum netconf; + enum restconf; + enum jujuconf; + } + } + + + // This is also used by RO (Resource Orchestrator) to indicate NSR is ready + // It will only fill in IDs + container cm-state { + rwpb:msg-new "CmOpdata"; + config false; + description "CM NS & VNF states"; + + leaf states { + description "CM various states"; + type string; + } + + list cm-nsr { + description "List of NS Records"; + key "id"; + leaf id { + type yang:uuid; + } + leaf name { + description "NSR name."; + type string; + } + leaf state { + description "State of NSR"; + type record-state; + } + leaf state-details { + description "Details of the state of NSR, in case of errors"; + type string; + } + + list cm-vnfr { + description "List of VNF Records within NS Record"; + key "id"; + leaf id { + type yang:uuid; + } + leaf name { + description "VNFR name."; + type string; + } + leaf state { + description "Last known state of this VNFR"; + type record-state; + } + container mgmt-interface { + leaf ip-address { + type inet:ip-address; + } + leaf port { + type inet:port-number; + } + } + leaf cfg-type { + type string; + } + leaf cfg-location { + type inet:uri; + } + list connection-point { + key "name"; + leaf name { + description "Connection Point name"; + type string; + } + leaf ip-address { + description "IP address assigned to this connection point"; + type inet:ip-address; + } + } + } // list VNFR + } // list NSR + } // cm-state + +} // rw-conman