blob: 9a29a60d4a61b4573796a73f34d35503b22c7ee1 [file] [log] [blame]
/*
*
* Copyright 2016-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.
*
*/
/**
* @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 rw-project-vnfd {
prefix "rw-project-vnfd";
}
import rw-project-nsd {
prefix "rw-project-nsd";
}
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";
}
import rw-project {
prefix "rw-project";
}
import rw-project-mano {
prefix "rw-project-mano";
}
revision 2017-02-08 {
description
"Update model to support projects.";
}
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;
}
}
augment "/rw-project:project" {
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
augment "/rw-project:project" {
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