X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=models%2Fplugins%2Fyang%2Fmano-types.yang;h=a58492e4b4e5128e397055fa487a0ca05bc5a438;hb=f314b4af9744068a7ed7a6a6314220c3aa857523;hp=4ec602cb7de466e67fb9d9781f684574143fb1b2;hpb=6f1a3fe149e4a6b9803382cb299c902f4cf58ec9;p=osm%2FSO.git diff --git a/models/plugins/yang/mano-types.yang b/models/plugins/yang/mano-types.yang index 4ec602cb..a58492e4 100644 --- a/models/plugins/yang/mano-types.yang +++ b/models/plugins/yang/mano-types.yang @@ -1,7 +1,7 @@ /* - * - * Copyright 2016 RIFT.IO Inc + * + * 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. @@ -27,8 +27,13 @@ module mano-types prefix "inet"; } - import rw-pb-ext { - prefix "rwpb"; + import rw-project { + prefix "rw-project"; + } + + revision 2017-02-08 { + description + "Update model to support projects."; } revision 2015-04-23 { @@ -40,6 +45,12 @@ module mano-types "Derived from earlier versions of base YANG files"; } + typedef meta-data-type { + type enumeration { + enum STRING; + } + } + typedef package-type { description "Type of descriptor being on-boarded"; type enumeration { @@ -109,6 +120,7 @@ module mano-types "The value should be dimmed by the UI. Only applies to parameters with default values."; type boolean; + default false; } leaf hidden { @@ -116,28 +128,29 @@ module mano-types "The value should be hidden by the UI. Only applies to parameters with default values."; type boolean; + default false; } } - + grouping ui-primitive-group { list parameter-group { description "Grouping of parameters which are logically grouped in UI"; key "name"; - + leaf name { description "Name of the parameter group"; type string; } - + list parameter { description "List of parameters for the service primitive."; key "name"; uses manotypes:primitive-parameter; } - + leaf mandatory { description "Is this parameter group mandatory"; type boolean; @@ -146,28 +159,7 @@ module mano-types } } - grouping image-properties { - leaf image { - description - "Image name for the software image. - If the image name is found within the VNF package it will - be uploaded to all VIM accounts during onboarding process. - Otherwise, the image must be added to the VIM account with - the same name as entered here. - "; - type string; - } - - leaf image-checksum { - description - "Image md5sum for the software image. - The md5sum, if provided, along with the image name uniquely - identifies an image uploaded to the CAL. - "; - type string; - } - } - grouping initial-config { + grouping event-config { leaf seq { description "Sequence number for the configuration primitive."; @@ -200,11 +192,32 @@ module mano-types } } + grouping image-properties { + leaf image { + description + "Image name for the software image. + If the image name is found within the VNF package it will + be uploaded to all VIM accounts during onboarding process. + Otherwise, the image must be added to the VIM account with + the same name as entered here. + "; + type string; + } + + leaf image-checksum { + description + "Image md5sum for the software image. + The md5sum, if provided, along with the image name uniquely + identifies an image uploaded to the CAL. + "; + type string; + } + } + grouping vnf-configuration { container vnf-configuration { - rwpb:msg-new VnfConfiguration; description - "Information about the VNF configuration. Note: + "Information about the VNF configuration. Note: If the NS contains multiple instances of the same VNF, each instance could have a different configuration."; @@ -212,61 +225,18 @@ module mano-types choice config-method { description "Defines the configuration method for the VNF."; - case netconf { - description - "Use NETCONF for configuring the VNF."; - container netconf { - leaf target { - description - "Netconf configuration target"; - type enumeration { - enum running; - enum candidate; - } - } - - leaf protocol { - description - "Protocol to use for NETCONF, such as ssh"; - type enumeration { - enum None; - enum ssh; - } - } - - leaf port { - description - "Port for the NETCONF server."; - type inet:port-number; - } - } - } - - case rest { - description - "Use REST for configuring the VNF."; - container rest { - leaf port { - description - "Port for the REST server."; - type inet:port-number; - } - } - } - case script { description "Use custom script for configuring the VNF. - This script is executed in the context of + This script is executed in the context of Orchestrator (The same system and environment as the Launchpad)."; container script { leaf script-type { description - "Script type - currently supported : bash, expect"; + "Script type - currently supported - Scripts confirming to Rift CA plugin"; type enumeration { - enum bash; - enum expect; + enum rift; } } } @@ -284,80 +254,60 @@ module mano-types } } - container config-access { - leaf mgmt-ip-address { - description - "IP address to be used to configure this VNF, - optional if it is possible to resolve dynamically."; - type inet:ip-address; - } - - leaf username { - description - "User name for configuration."; - type string; - } - - leaf password { - description - "Password for configuration access authentication."; - type string; - } - } - - container config-attributes { - description - "Miscellaneous input parameters to be considered - while processing the NSD to apply configuration"; - - leaf config-priority { - description - "Configuration priority - order of configuration - to be applied to each VNF in this NS. A low - number takes precedence over a high number"; - type uint64; - } - - leaf config-delay { - description - "Wait (seconds) before applying the configuration to VNF"; - type uint64; - } - } - - list service-primitive { - rwpb:msg-new ServicePrimitive; + list config-primitive { description - "List of service primitives supported by the + "List of config primitives supported by the configuration agent for this VNF."; key "name"; leaf name { description - "Name of the service primitive."; + "Name of the config primitive."; type string; } list parameter { description - "List of parameters to the service primitive."; + "List of parameters to the config primitive."; key "name"; uses primitive-parameter; } + + leaf user-defined-script { + description + "A user defined script. If user defined script is defined, + the script will be executed using bash"; + type string; + } } list initial-config-primitive { - rwpb:msg-new InitialConfigPrimitive; description "Initial set of configuration primitives."; key "seq"; - uses initial-config; - } + leaf seq { + description + "Sequence number for the configuration primitive."; + type uint64; + } - leaf config-template { - description - "Configuration template for each VNF"; - type string; + choice primitive-type { + case primitive-definition { + leaf name { + description + "Name of the configuration primitive."; + type string; + } + + uses primitive-parameter-value; + + leaf user-defined-script { + description + "A user defined script."; + type string; + } + } + } } } } // END - grouping vnf-configuration @@ -454,12 +404,12 @@ module mano-types description "Type of the widget, typically used by the UI."; type enumeration { - enum HISTOGRAM; - enum BAR; - enum GAUGE; - enum SLIDER; enum COUNTER; + enum GAUGE; enum TEXTBOX; + enum SLIDER; + enum HISTOGRAM; + enum BAR; } } @@ -667,6 +617,13 @@ module mano-types } } //grouping vm-flavor + grouping vm-flavor-name { + leaf vm-flavor-name { + description "flavor name to be used while creating vm using cloud account"; + type string; + } + } + grouping vswitch-epa { container vswitch-epa { leaf ovs-acceleration { @@ -784,7 +741,7 @@ module mano-types description "Number of threads per cores on the host."; type uint64; } - + list cpu-feature { key "feature"; description "List of CPU features."; @@ -794,7 +751,7 @@ module mano-types } } - + leaf om-cpu-model-string { description "OpenMANO CPU model string"; type string; @@ -1028,16 +985,18 @@ module mano-types description "Type of the overlay network. LOCAL - Provider network implemented in a single compute node - FLAT - Provider network shared by all tenants + FLAT - Provider network shared by all tenants VLAN - Provider network implemented using 802.1Q tagging VXLAN - Provider networks implemented using RFC 7348 - GRE - Provider networks implemented using GRE tunnels"; + GRE - Provider networks implemented using GRE tunnels + PORTGROUP - Provider networks implemented for VIO support"; type enumeration { enum LOCAL; enum FLAT; enum VLAN; enum VXLAN; enum GRE; + enum PORTGROUP; } } leaf segmentation_id { @@ -1048,6 +1007,108 @@ module mano-types } } + grouping ns-service-primitive { + list service-primitive { + description + "Network service level service primitives."; + + key "name"; + + leaf name { + description + "Name of the service primitive."; + type string; + } + + list parameter { + description + "List of parameters for the service primitive."; + + key "name"; + uses manotypes:primitive-parameter; + } + + list parameter-group { + description + "Grouping of parameters which are logically grouped in UI"; + key "name"; + + leaf name { + description + "Name of the parameter group"; + type string; + } + + list parameter { + description + "List of parameters for the service primitive."; + key "name"; + uses manotypes:primitive-parameter; + } + + leaf mandatory { + description "Is this parameter group mandatory"; + type boolean; + default true; + } + } + + list vnf-primitive-group { + description + "List of service primitives grouped by VNF."; + + key "member-vnf-index-ref"; + leaf member-vnf-index-ref { + description + "Reference to member-vnf within constituent-vnfds"; + type uint64; + } + + leaf vnfd-id-ref { + description + "A reference to a vnfd. This is a + leafref to path: + ../../../../nsd:constituent-vnfd + + [nsd:id = current()/../nsd:id-ref] + + /nsd:vnfd-id-ref + NOTE: An issue with confd is preventing the + use of xpath. Seems to be an issue with leafref + to leafref, whose target is in a different module. + Once that is resolved this will switched to use + leafref"; + + type string; + } + + leaf vnfd-name { + description + "Name of the VNFD"; + type string; + } + + list primitive { + key "index"; + + leaf index { + description "Index of this primitive"; + type uint32; + } + + leaf name { + description "Name of the primitive in the VNF primitive "; + type string; + } + } + } + + leaf user-defined-script { + description + "A user defined script."; + type string; + } + } + } + grouping monitoring-param { list http-endpoint { description @@ -1183,6 +1244,7 @@ module mano-types leaf widget-type { description "Defines the UI Display variant of measured counters."; type manotypes:widget-type; + default "COUNTER"; } leaf units { @@ -1423,7 +1485,7 @@ module mano-types } leaf default-value { - description "/nsd:nsd-catalog/nsd:nsd/nsd:vendor"; + description "Default Value for the Input Parameter"; type string; } } @@ -1756,7 +1818,7 @@ module mano-types leaf operation { description "The relational operator used to define whether an alarm should be - triggered in certain scenarios, such as if the metric statistic + triggered in certain scenarios, such as if the metric statistic goes above or below a specified value."; type alarm-operation-type; } @@ -1799,12 +1861,12 @@ module mano-types enum openvim; } } - + grouping host-aggregate { list host-aggregate { description "Name of the Host Aggregate"; key "metadata-key"; - + leaf metadata-key { description "Name of the additional information attached to the host-aggregate"; @@ -1817,13 +1879,13 @@ module mano-types } } } - + grouping placement-group-input { leaf cloud-type { type manotypes:cloud-account-type; } choice cloud-provider { - case openstack { + case openstack { container availability-zone { description "Name of the Availability Zone"; leaf name { @@ -1846,7 +1908,7 @@ module mano-types case openmano { leaf openmano-construct { type empty; - } + } } case vsphere { leaf vsphere-construct { @@ -1865,7 +1927,56 @@ module mano-types } } } - + + grouping cloud-config { + list key-pair { + key "name"; + description "Used to configure the list of public keys to be injected as part + of ns instantiation"; + + leaf name { + description "Name of this key pair"; + type string; + } + + leaf key { + description "Key associated with this key pair"; + type string; + } + } + + list user { + key "name"; + description "List of users to be added through cloud-config"; + + leaf name { + description "Name of the user "; + type string; + } + + leaf user-info { + description "The user name's real name"; + type string; + } + + list key-pair { + key "name"; + description "Used to configure the list of public keys to be injected as part + of ns instantiation"; + + leaf name { + description "Name of this key pair"; + type string; + } + + leaf key { + description "Key associated with this key pair"; + type string; + } + } + } + } + grouping placement-group-info { description ""; @@ -1881,7 +1992,7 @@ module mano-types behind this placement group. This is for human consumption only"; type string; } - + leaf strategy { description "Strategy associated with this placement group @@ -1904,7 +2015,7 @@ module mano-types grouping ip-profile-info { description "Grouping for IP-Profile"; container ip-profile-params { - + leaf ip-version { type inet:ip-version; default ipv4; @@ -1928,12 +2039,12 @@ module mano-types list dns-server { key "address"; leaf address { - description "List of DNS Servers associated with IP Profile"; - type inet:ip-address; + description "List of DNS Servers associated with IP Profile"; + type inet:ip-address; } } - container dhcp-params { + container dhcp-params { leaf enabled { description "This flag indicates if DHCP is enabled or not"; type boolean; @@ -1963,19 +2074,19 @@ module mano-types description "List of IP Profiles. IP Profile describes the IP characteristics for the Virtual-Link"; - + key "name"; leaf name { description "Name of the IP-Profile"; type string; } - + leaf description { description "Description for IP profile"; type string; } - + uses ip-profile-info; } } @@ -2005,7 +2116,7 @@ module mano-types description "Some VIMs implement additional drives to host config-files or meta-data"; type boolean; default false; - } + } } } @@ -2039,7 +2150,6 @@ module mano-types case image { uses image-properties; } - } leaf device-bus { @@ -2061,6 +2171,16 @@ module mano-types enum lun; } } + } + grouping rpc-project-name { + leaf project-name { + default "default"; + description + "Project to which this belongs"; + type leafref { + path "/rw-project:project/rw-project:name"; + } + } } }