From 2f577b1f44e471688e9e687a4741a35d303eef58 Mon Sep 17 00:00:00 2001 From: sritharan Date: Fri, 1 Apr 2022 05:10:08 +0000 Subject: [PATCH] Feature 10923: Autohealing Added the healing parameters Change-Id: I3404e301885ecac8473530c19ca7da1c869e5317 Signed-off-by: sritharan --- models/augments/healing.yang | 123 ++++++++++++++++++++ tests/examples/cirros_heal_vnfd_sol006.yaml | 80 +++++++++++++ 2 files changed, 203 insertions(+) create mode 100644 models/augments/healing.yang create mode 100644 tests/examples/cirros_heal_vnfd_sol006.yaml diff --git a/models/augments/healing.yang b/models/augments/healing.yang new file mode 100644 index 0000000..8eec9d1 --- /dev/null +++ b/models/augments/healing.yang @@ -0,0 +1,123 @@ +/* + 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; + } + +} diff --git a/tests/examples/cirros_heal_vnfd_sol006.yaml b/tests/examples/cirros_heal_vnfd_sol006.yaml new file mode 100644 index 0000000..253dc66 --- /dev/null +++ b/tests/examples/cirros_heal_vnfd_sol006.yaml @@ -0,0 +1,80 @@ +# 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 -- 2.25.1