--- /dev/null
+/*
+ Copyright 2020 Whitestack LLC
+
+ 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 healing {
+ yang-version 1.1;
+ namespace "urn:etsi:osm:yang:augments:healing";
+ prefix "healing";
+
+ import etsi-nfv-vnfd {
+ prefix vnfd;
+ }
+
+ typedef recovery-actions {
+ type enumeration {
+
+ enum REDEPLOY_ONLY {
+ value 1;
+ }
+
+ enum REBOOT {
+ value 2;
+ }
+
+ enum REBOOT_THEN_REDEPLOY {
+ value 3;
+ }
+ }
+ }
+
+
+ typedef recovery-type {
+ type enumeration {
+
+ enum manual {
+ value 1;
+ }
+
+ enum automatic {
+ value 2;
+ }
+ }
+ }
+
+ grouping extended-healing {
+ list healing-aspect {
+ key "id";
+
+ description
+ "The healing aspects supported by this DF of the VNF.
+ healingAspect shall be present if the VNF supports
+ healing.";
+
+ leaf id {
+ type string;
+ description
+ "Unique identifier of this aspect in the VNFD.";
+ }
+
+ list healing-policy {
+
+ key "vdu-id";
+
+ leaf vdu-id {
+ description
+ "Identifier of vdu";
+ type string;
+ }
+
+ leaf event-name {
+ description
+ "Describing the event name for healing";
+ type string;
+ }
+
+ leaf recovery-type {
+ description
+ "Type of healing recovery";
+ type recovery-type;
+ }
+
+ leaf action-on-recovery {
+ description
+ "Recovery actions for healing";
+ type recovery-actions;
+ }
+
+ leaf cooldown-time {
+ description
+ "The duration after a healing action has been
+ triggered, for which there will be no further optional";
+ type uint32;
+ mandatory true;
+ }
+
+ leaf day1 {
+ description
+ "Specifies if the day1 operations can be applied";
+ type boolean;
+ default false;
+ }
+ }
+ }
+
+ }
+ augment "/vnfd:vnfd/vnfd:df" {
+ uses extended-healing;
+ }
+
+}
--- /dev/null
+# Copyright 2020 Whitestack LLC
+#
+# 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.
+
+vnfd:
+ id: cirros_heal_vnfd
+ product-name: cirros_heal_vnf
+ description: Simple heal VNF example with a cirros
+ provider: OSM
+ version: "1.0"
+ mgmt-cp: eth0-ext
+
+ virtual-compute-desc:
+ - id: cirros_heal_vnfd-VM-compute
+ virtual-cpu:
+ num-virtual-cpu: 1
+ virtual-memory:
+ size: 0.25 # Memory size in GB
+
+ virtual-storage-desc:
+ - id: cirros_heal_vnfd-VM-storage
+ size-of-storage: 2
+
+ sw-image-desc:
+ - id: cirros034
+ name: cirros034
+ image: cirros034
+
+ vdu:
+ - id: cirros_heal_vnfd-VM
+ name: cirros_heal_vnfd-VM
+ description: cirros_heal_vnfd-VM
+ virtual-compute-desc: cirros_heal_vnfd-VM-compute
+ virtual-storage-desc:
+ - cirros_heal_vnfd-VM-storage
+ sw-image-desc: cirros034
+ int-cpd:
+ - id: eth0-int
+ virtual-network-interface-requirement:
+ - name: eth0
+ virtual-interface:
+ type: VIRTIO
+ bandwidth: "0"
+ vpci: 0000:00:0a.0
+
+ df:
+ - id: default-df
+ vdu-profile:
+ - id: cirros_heal_vnfd-VM
+ min-number-of-instances: 1
+ instantiation-level:
+ - id: default-instantiation-level
+ vdu-level:
+ - vdu-id: cirros_heal_vnfd-VM
+ number-of-instances: 1
+ healing-aspect:
+ - id: cirros_heal_vnfd-VM_autoheal
+ healing-policy:
+ - vdu-id: cirros_heal_vnfd-VM
+ event-name: heal-alarm
+ recovery-type: automatic
+ action-on-recovery: REDEPLOY_ONLY
+ cooldown-time: 180
+ day1: false
+ ext-cpd:
+ - id: eth0-ext
+ int-cpd: # Connection to int-cpd
+ vdu-id: cirros_heal_vnfd-VM
+ cpd: eth0-int