| |
| /* |
| * |
| * 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. |
| * |
| */ |
| |
| |
| |
| module rw-resource-mgr |
| { |
| namespace "http://riftio.com/ns/riftware-1.0/rw-resource-mgr"; |
| prefix "rw-resource-mgr"; |
| |
| import rw-pb-ext { |
| prefix "rwpb"; |
| } |
| |
| import rw-cli-ext { |
| prefix "rwcli"; |
| } |
| |
| import rw-yang-types { |
| prefix "rwt"; |
| } |
| |
| import rw-cloud { |
| prefix "rwcloud"; |
| } |
| |
| import rwcal { |
| prefix "rwcal"; |
| } |
| |
| import ietf-yang-types { |
| prefix "yang"; |
| } |
| |
| import mano-types { |
| prefix "manotypes"; |
| } |
| |
| 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-16 { |
| description |
| "Initial revision."; |
| } |
| |
| grouping resource-pool-info { |
| leaf name { |
| description "Name of the resource pool"; |
| rwpb:field-inline "true"; |
| rwpb:field-string-max 64; |
| type string; |
| //mandatory true; |
| } |
| |
| leaf resource-type { |
| description "Type of resource"; |
| type enumeration { |
| enum compute; |
| enum network; |
| } |
| } |
| |
| leaf pool-type { |
| description "Type of pool"; |
| type enumeration { |
| enum static; |
| enum dynamic; |
| } |
| default "static"; |
| } |
| |
| leaf max-size { |
| description "Maximum size to which a dynamic resource pool can grow"; |
| type uint32; |
| } |
| |
| } |
| |
| augment "/rw-project:project" { |
| container resource-mgr-config { |
| description "Data model for configuration of resource-mgr"; |
| rwpb:msg-new ResourceManagerConfig; |
| config true; |
| |
| container management-domain { |
| leaf name { |
| description "The management domain name this launchpad is associated with."; |
| rwpb:field-inline "true"; |
| rwpb:field-string-max 64; |
| type string; |
| //mandatory true; |
| } |
| } |
| |
| container resource-pools { |
| description "Resource Pool configuration"; |
| rwpb:msg-new ResourcePools; |
| list cloud-account { |
| key "name"; |
| leaf name { |
| description |
| "Resource pool for the configured cloud account"; |
| type leafref { |
| path "../../../../rwcloud:cloud/rwcloud:account/rwcloud:name"; |
| } |
| } |
| } |
| } |
| } |
| } |
| |
| grouping resource-state { |
| leaf resource-state { |
| type enumeration { |
| enum inactive; |
| enum active; |
| enum pending; |
| enum failed; |
| } |
| } |
| leaf resource-errors { |
| description "Error message details in case of failed resource state"; |
| type string; |
| } |
| } |
| |
| augment "/rw-project:project" { |
| container resource-mgmt { |
| description "Resource management "; |
| config false; |
| |
| container vdu-event { |
| description "Events for VDU Management"; |
| rwpb:msg-new VDUEvent; |
| |
| list vdu-event-data { |
| rwpb:msg-new VDUEventData; |
| key "event-id"; |
| |
| leaf event-id { |
| description "Identifier associated with the VDU transaction"; |
| type yang:uuid; |
| } |
| |
| leaf cloud-account { |
| description "The cloud account to use for this resource request"; |
| type leafref { |
| path "../../../../rwcloud:cloud/rwcloud:account/rwcloud:name"; |
| } |
| } |
| |
| container request-info { |
| description "Information about required resource"; |
| |
| uses rwcal:vdu-create-params; |
| } |
| |
| container resource-info { |
| description "Information about allocated resource"; |
| leaf pool-name { |
| type string; |
| } |
| uses resource-state; |
| uses rwcal:vdu-info-params; |
| } |
| } |
| } |
| |
| container vlink-event { |
| description "Events for Virtual Link management"; |
| rwpb:msg-new VirtualLinkEvent; |
| |
| list vlink-event-data { |
| rwpb:msg-new VirtualLinkEventData; |
| |
| key "event-id"; |
| |
| leaf event-id { |
| description "Identifier associated with the Virtual Link transaction"; |
| type yang:uuid; |
| } |
| |
| leaf cloud-account { |
| description "The cloud account to use for this resource request"; |
| type leafref { |
| path "../../../../rwcloud:cloud/rwcloud:account/rwcloud:name"; |
| } |
| } |
| |
| container request-info { |
| description "Information about required resource"; |
| |
| uses rwcal:virtual-link-create-params; |
| } |
| |
| container resource-info { |
| leaf pool-name { |
| type string; |
| } |
| uses resource-state; |
| uses rwcal:virtual-link-info-params; |
| } |
| } |
| } |
| } |
| } |
| |
| |
| augment "/rw-project:project" { |
| container resource-pool-records { |
| description "Resource Pool Records"; |
| rwpb:msg-new ResourcePoolRecords; |
| config false; |
| |
| list cloud-account { |
| key "name"; |
| leaf name { |
| description |
| "The configured cloud account's pool records."; |
| type leafref { |
| path "../../../rwcloud:cloud/rwcloud:account/rwcloud:name"; |
| } |
| } |
| |
| list records { |
| rwpb:msg-new ResourceRecordInfo; |
| key "name"; |
| uses resource-pool-info; |
| |
| leaf pool-status { |
| type enumeration { |
| enum unknown; |
| enum locked; |
| enum unlocked; |
| } |
| } |
| |
| leaf total-resources { |
| type uint32; |
| } |
| |
| leaf free-resources { |
| type uint32; |
| } |
| |
| leaf allocated-resources { |
| type uint32; |
| } |
| } |
| } |
| } |
| } |
| |
| |
| augment "/rw-project:project" { |
| container resource-mgr-data { |
| description "Resource Manager operational data"; |
| config false; |
| |
| container pool-record { |
| description "Resource Pool record"; |
| |
| list cloud { |
| key "name"; |
| max-elements 16; |
| rwpb:msg-new "ResmgrCloudPoolRecords"; |
| leaf name { |
| description |
| "The configured cloud account's pool records."; |
| type leafref { |
| path "../../../../rwcloud:cloud/rwcloud:account/rwcloud:name"; |
| } |
| } |
| |
| list records { |
| key "name"; |
| uses resource-pool-info; |
| |
| list free-vdu-list { |
| key vdu-id; |
| uses rwcal:vdu-info-params; |
| } |
| |
| list in-use-vdu-list { |
| key vdu-id; |
| uses rwcal:vdu-info-params; |
| } |
| |
| list free-vlink-list { |
| key virtual-link-id; |
| uses rwcal:virtual-link-info-params; |
| } |
| |
| list in-use-vlink-list { |
| key virtual-link-id; |
| uses rwcal:virtual-link-info-params; |
| } |
| } |
| } |
| } |
| } |
| } |
| } |