/*
*
- * 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.
prefix "rwpb";
}
+ import rw-project {
+ prefix "rw-project";
+ }
+
+ revision 2017-02-08 {
+ description
+ "Update model to support projects.";
+ }
+
revision 2015-04-23 {
description
"Initial revision. This YANG file defines
"Derived from earlier versions of base YANG files";
}
+ typedef package-type {
+ description "Type of descriptor being on-boarded";
+ type enumeration {
+ enum NSD;
+ enum VNFD;
+ }
+ }
+
typedef parameter-data-type {
type enumeration {
enum STRING;
}
+ grouping image-properties {
+ leaf image {
+ description
+ "Image name for the software image.
+ If the image name is found within the VNF packaage it will
+ be uploaded to all cloud accounts during onboarding process.
+ Otherwise, the image must be added to the cloud 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 {
+ leaf seq {
+ description
+ "Sequence number for the configuration primitive.";
+ type uint64;
+ }
+
+ leaf name {
+ description
+ "Name of the configuration primitive.";
+ type string;
+ mandatory "true";
+ }
+
+ leaf user-defined-script {
+ description
+ "A user defined script.";
+ type string;
+ }
+
+ list parameter {
+ key "name";
+ leaf name {
+ type string;
+ }
+
+ leaf value {
+ type string;
+ }
+ }
+ }
+
grouping vnf-configuration {
container vnf-configuration {
rwpb:msg-new VnfConfiguration;
list initial-config-primitive {
rwpb:msg-new InitialConfigPrimitive;
description
- "Initial set of configuration primitives.";
+ "Initial set of configuration primitives.";
key "seq";
- leaf seq {
- description
- "Sequence number for the configuration primitive.";
- type uint64;
- }
-
- leaf name {
- description
- "Name of the configuration primitive.";
- type string;
- }
-
- list parameter {
- key "name";
- leaf name {
- type string;
- }
-
- leaf value {
- type string;
- }
- }
+ uses initial-config;
}
leaf config-template {
}
choice numa-policy {
- case numa-unware {
- leaf numa-unware {
+ case numa-unaware {
+ leaf numa-unaware {
type empty;
}
}
}
leaf http-endpoint-ref {
- type leafref {
- path "../../http-endpoint/path";
- }
+ // TODO (Philip): Fix this
+ // type leafref {
+ // path "../../http-endpoint/path";
+ // }
+ type string;
}
leaf json-query-method {
uses ip-profile-info;
}
}
-
+
+ grouping config-file {
+ description "Grouping for files needed to be mounted into an additional drive";
+ list config-file {
+ description
+ "List of configuration files to be written on an additional drive";
+ key "source";
+ leaf source {
+ description "Name of the configuration file";
+ type string;
+ }
+ leaf dest {
+ description "Full path of the destination in the guest";
+ type string;
+ }
+ }
+ }
+
+ grouping supplemental-boot-data {
+ description "Grouping for custom vim data";
+ container supplemental-boot-data {
+ uses manotypes:config-file;
+ leaf boot-data-drive {
+ description "Some VIMs implement additional drives to host config-files or meta-data";
+ type boolean;
+ default false;
+ }
+ }
+ }
+
+ grouping volume-info {
+ description "Grouping for Volume-info";
+
+ leaf description {
+ description "Description for Volume";
+ type string;
+ }
+
+ leaf size {
+ description "Size of disk in GB";
+ type uint64;
+ }
+
+ choice volume-source {
+ description
+ "Defines the source of the volume. Possible options are
+ 1. Ephemeral -- Empty disk
+ 2. Image -- Refer to image to be used for volume
+ 3. Volume -- Reference of pre-existing volume to be used
+ ";
+
+ case ephemeral {
+ leaf ephemeral {
+ type empty;
+ }
+ }
+
+ case image {
+ uses image-properties;
+ }
+
+ }
+
+ leaf device_bus {
+ description "Type of disk-bus on which this disk is exposed to guest";
+ type enumeration {
+ enum ide;
+ enum usb;
+ enum virtio;
+ enum scsi;
+ }
+ }
+
+ leaf device_type {
+ description "The type of device as exposed to guest";
+ type enumeration {
+ enum disk;
+ enum cdrom;
+ enum floppy;
+ enum lun;
+ }
+ }
+
+ }
+
+ grouping rpc-project-name {
+ leaf project-name {
+ mandatory true;
+ description
+ "Project to which this belongs";
+ type leafref {
+ path "/rw-project:project/rw-project:name";
+ }
+ }
+ }
}