From: marchettim Date: Tue, 20 Nov 2018 20:41:07 +0000 (+0100) Subject: Merge "cirros test code changes for VCD" X-Git-Tag: v5.0.0~20 X-Git-Url: https://osm.etsi.org/gitweb/?a=commitdiff_plain;h=95c0173af060c3f475fdac79c4480d6ba38bf39b;hp=a4347784b2c9bbe518efbbcfbafcfcc6a41b5aa3;p=osm%2Fdevops.git Merge "cirros test code changes for VCD" --- diff --git a/.gitignore b/.gitignore index d9a34988..e750d4ed 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,16 @@ *.pyc .cache + +#Debian packaging related files +debian/osm-devops.install +pool +osm-devops-*.post* +osm-devops_*.post* + +#IDEs +.idea + +#local stuff files that end in ".local" or folders called "local" +*.local +local + diff --git a/descriptor-packages/tools/generate_descriptor_pkg.sh b/descriptor-packages/tools/generate_descriptor_pkg.sh index 1a30cf1e..336cd8fe 100755 --- a/descriptor-packages/tools/generate_descriptor_pkg.sh +++ b/descriptor-packages/tools/generate_descriptor_pkg.sh @@ -61,7 +61,7 @@ DEBUG=false ARCHIVE=false CREATE_NSD=false VENDOR='OSM' -INTF_TYPE='VIRTIO' +INTF_TYPE='PARAVIRT' VCPU=2 MEMORY=4096 STORAGE=10 @@ -98,8 +98,8 @@ Usage: --vendor : Vendor name for descriptor. Default OSM - --interface-type : Interface type [VIRTIO|SR-IOV|PCI-PASSTHROUGH|E1000] - Default VIRTIO + --interface-type : Interface type [PARAVIRT|SR-IOV|PCI-PASSTHROUGH|E1000] + Default PARAVIRT VM Flavour options: @@ -137,7 +137,7 @@ EOF CP_TYPE='VPORT' function get_cp_type() { case ${INTF_TYPE} in - VIRTIO ) CP_TYPE='VPORT';; + PARAVIRT ) CP_TYPE='VPORT';; SR-IOV ) CP_TYPE='VPORT';; PCI-PASSTHROUGH ) CP_TYPE='VPORT';; OM-MGMT ) CP_TYPE='VPORT';; @@ -230,7 +230,7 @@ EOF - name: eth0 type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: vnf-cp0 EOF diff --git a/descriptor-packages/tools/validate_descriptor.py b/descriptor-packages/tools/validate_descriptor.py index 010ba16f..4d5f0e1f 100755 --- a/descriptor-packages/tools/validate_descriptor.py +++ b/descriptor-packages/tools/validate_descriptor.py @@ -126,12 +126,12 @@ if __name__=="__main__": for external_interface in external_interface_list: if external_interface.get("virtual-interface", {}).get("type") == "OM-MGMT": raise KeyError( - "Wrong 'Virtual-interface type': Deprecated 'OM-MGMT' value. Please, use 'VIRTIO' instead") + "Wrong 'Virtual-interface type': Deprecated 'OM-MGMT' value. Please, use 'PARAVIRT' instead") interface_list = vdu.pop("interface", ()) for interface in interface_list: if interface.get("virtual-interface", {}).get("type") == "OM-MGMT": raise KeyError( - "Wrong 'Virtual-interface type': Deprecated 'OM-MGMT' value. Please, use 'VIRTIO' instead") + "Wrong 'Virtual-interface type': Deprecated 'OM-MGMT' value. Please, use 'PARAVIRT' instead") if vnfd.get("mgmt-interface"): mgmt_iface = True if vnfd["mgmt-interface"].get("vdu-id"): diff --git a/descriptor-packages/vnfd/VyOS_vnf/src/VyOS__vnfd.yaml b/descriptor-packages/vnfd/VyOS_vnf/src/VyOS__vnfd.yaml index 1d7689b4..34548c0d 100644 --- a/descriptor-packages/vnfd/VyOS_vnf/src/VyOS__vnfd.yaml +++ b/descriptor-packages/vnfd/VyOS_vnf/src/VyOS__vnfd.yaml @@ -64,35 +64,35 @@ vnfd-catalog: type: EXTERNAL virtual-interface: bandwidth: '0' - type: VIRTIO + type: PARAVIRT vpci: 0000:00:0a.0 external-connection-point-ref: eth0 - name: eth1 type: EXTERNAL virtual-interface: bandwidth: '0' - type: VIRTIO + type: PARAVIRT vpci: 0000:00:0b.0 external-connection-point-ref: eth1 - name: eth2 type: EXTERNAL virtual-interface: bandwidth: '0' - type: VIRTIO + type: PARAVIRT vpci: 0000:00:0c.0 external-connection-point-ref: eth2 - name: eth3 type: EXTERNAL virtual-interface: bandwidth: '0' - type: VIRTIO + type: PARAVIRT vpci: 0000:00:0d.0 external-connection-point-ref: eth3 - name: eth4 type: EXTERNAL virtual-interface: bandwidth: '0' - type: VIRTIO + type: PARAVIRT vpci: 0000:00:0e.0 external-connection-point-ref: eth4 guest-epa: diff --git a/descriptor-packages/vnfd/cirros_noportsecurity_vnf/src/cirros_noportsecurity_vnfd.yaml b/descriptor-packages/vnfd/cirros_noportsecurity_vnf/src/cirros_noportsecurity_vnfd.yaml index ed8900b8..fc8d458a 100755 --- a/descriptor-packages/vnfd/cirros_noportsecurity_vnf/src/cirros_noportsecurity_vnfd.yaml +++ b/descriptor-packages/vnfd/cirros_noportsecurity_vnf/src/cirros_noportsecurity_vnfd.yaml @@ -38,7 +38,7 @@ vnfd-catalog: - name: eth0 type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT bandwidth: '0' vpci: 0000:00:0a.0 external-connection-point-ref: eth0 diff --git a/descriptor-packages/vnfd/cirros_vnf/src/cirros_vnfd.yaml b/descriptor-packages/vnfd/cirros_vnf/src/cirros_vnfd.yaml index 6d5da86f..e4980bf5 100644 --- a/descriptor-packages/vnfd/cirros_vnf/src/cirros_vnfd.yaml +++ b/descriptor-packages/vnfd/cirros_vnf/src/cirros_vnfd.yaml @@ -38,7 +38,7 @@ vnfd-catalog: - name: eth0 type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT bandwidth: '0' vpci: 0000:00:0a.0 external-connection-point-ref: eth0 diff --git a/descriptor-packages/vnfd/dns_aws_vnfd/src/dns_aws_vnfd.yaml b/descriptor-packages/vnfd/dns_aws_vnfd/src/dns_aws_vnfd.yaml index 25b7e839..80dc1afd 100755 --- a/descriptor-packages/vnfd/dns_aws_vnfd/src/dns_aws_vnfd.yaml +++ b/descriptor-packages/vnfd/dns_aws_vnfd/src/dns_aws_vnfd.yaml @@ -19,7 +19,7 @@ vnfd-catalog: type: EXTERNAL virtual-interface: bandwidth: '0' - type: VIRTIO + type: PARAVIRT vpci: 0000:00:0a.0 external-connection-point-ref: eth0 guest-epa: diff --git a/descriptor-packages/vnfd/hackfest_ansible_vnf/src/ansiblecharm_vnfd.yaml b/descriptor-packages/vnfd/hackfest_ansible_vnf/src/ansiblecharm_vnfd.yaml index 873d0412..241bc0cb 100644 --- a/descriptor-packages/vnfd/hackfest_ansible_vnf/src/ansiblecharm_vnfd.yaml +++ b/descriptor-packages/vnfd/hackfest_ansible_vnf/src/ansiblecharm_vnfd.yaml @@ -26,7 +26,7 @@ vnfd:vnfd-catalog: - name: vdu-eth0 type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: vnf-cp0 cloud-init-file: cloud-config.txt vnf-configuration: diff --git a/descriptor-packages/vnfd/hackfest_basic_vnf/src/hackfest_basic_vnfd.yaml b/descriptor-packages/vnfd/hackfest_basic_vnf/src/hackfest_basic_vnfd.yaml index b407a849..4051eb3f 100644 --- a/descriptor-packages/vnfd/hackfest_basic_vnf/src/hackfest_basic_vnfd.yaml +++ b/descriptor-packages/vnfd/hackfest_basic_vnf/src/hackfest_basic_vnfd.yaml @@ -13,6 +13,9 @@ vnfd:vnfd-catalog: - id: hackfest_basic-VM name: hackfest_basic-VM image: ubuntu1604 + alternative-images: + - vim-type: aws + image: ubuntu/images/hvm-ssd/ubuntu-artful-17.10-amd64-server-20180509 count: '1' vm-flavor: vcpu-count: '1' @@ -22,7 +25,7 @@ vnfd:vnfd-catalog: - name: vdu-eth0 type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: vnf-cp0 mgmt-interface: cp: vnf-cp0 diff --git a/descriptor-packages/vnfd/hackfest_cloudinit_vnf/src/hackfest_cloudinit_vnfd.yaml b/descriptor-packages/vnfd/hackfest_cloudinit_vnf/src/hackfest_cloudinit_vnfd.yaml index 4510db1a..066f6980 100644 --- a/descriptor-packages/vnfd/hackfest_cloudinit_vnf/src/hackfest_cloudinit_vnfd.yaml +++ b/descriptor-packages/vnfd/hackfest_cloudinit_vnf/src/hackfest_cloudinit_vnfd.yaml @@ -39,13 +39,13 @@ vnfd:vnfd-catalog: position: '1' type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: vnf-mgmt - name: mgmtVM-eth1 position: '2' type: INTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT internal-connection-point-ref: mgmtVM-internal internal-connection-point: - id: mgmtVM-internal @@ -66,13 +66,13 @@ vnfd:vnfd-catalog: position: '1' type: INTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT internal-connection-point-ref: dataVM-internal - name: dataVM-xe0 position: '2' type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: vnf-data internal-connection-point: - id: dataVM-internal diff --git a/descriptor-packages/vnfd/hackfest_epasriov_vnf/src/hackfest_epasriov_vnfd.yaml b/descriptor-packages/vnfd/hackfest_epasriov_vnf/src/hackfest_epasriov_vnfd.yaml index 9711b3c9..598ee607 100644 --- a/descriptor-packages/vnfd/hackfest_epasriov_vnf/src/hackfest_epasriov_vnfd.yaml +++ b/descriptor-packages/vnfd/hackfest_epasriov_vnf/src/hackfest_epasriov_vnfd.yaml @@ -48,13 +48,13 @@ vnfd:vnfd-catalog: position: '1' type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: vnf-mgmt - name: mgmtVM-eth1 position: '2' type: INTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT internal-connection-point-ref: mgmtVM-internal internal-connection-point: - id: mgmtVM-internal @@ -84,7 +84,7 @@ vnfd:vnfd-catalog: position: '1' type: INTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT internal-connection-point-ref: dataVM-internal - name: xe0 position: '2' diff --git a/descriptor-packages/vnfd/hackfest_multivdu_vnf/src/hackfest_multivdu_vnfd.yaml b/descriptor-packages/vnfd/hackfest_multivdu_vnf/src/hackfest_multivdu_vnfd.yaml index b7a51397..d658bf5d 100644 --- a/descriptor-packages/vnfd/hackfest_multivdu_vnf/src/hackfest_multivdu_vnfd.yaml +++ b/descriptor-packages/vnfd/hackfest_multivdu_vnf/src/hackfest_multivdu_vnfd.yaml @@ -39,13 +39,13 @@ vnfd:vnfd-catalog: position: '1' type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: vnf-mgmt - name: mgmtVM-eth1 position: '2' type: INTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT internal-connection-point-ref: mgmtVM-internal internal-connection-point: - id: mgmtVM-internal @@ -65,13 +65,13 @@ vnfd:vnfd-catalog: position: '1' type: INTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT internal-connection-point-ref: dataVM-internal - name: dataVM-xe0 position: '2' type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: vnf-data internal-connection-point: - id: dataVM-internal diff --git a/descriptor-packages/vnfd/hackfest_simplecharm_vnf/src/hackfest_simplecharm_vnfd.yaml b/descriptor-packages/vnfd/hackfest_simplecharm_vnf/src/hackfest_simplecharm_vnfd.yaml index 9c6f095c..2642f1bd 100644 --- a/descriptor-packages/vnfd/hackfest_simplecharm_vnf/src/hackfest_simplecharm_vnfd.yaml +++ b/descriptor-packages/vnfd/hackfest_simplecharm_vnf/src/hackfest_simplecharm_vnfd.yaml @@ -39,13 +39,13 @@ vnfd:vnfd-catalog: position: '1' type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: vnf-mgmt - name: mgmtVM-eth1 position: '2' type: INTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT internal-connection-point-ref: mgmtVM-internal internal-connection-point: - id: mgmtVM-internal @@ -66,13 +66,13 @@ vnfd:vnfd-catalog: position: '1' type: INTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT internal-connection-point-ref: dataVM-internal - name: dataVM-xe0 position: '2' type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: vnf-data internal-connection-point: - id: dataVM-internal diff --git a/descriptor-packages/vnfd/ims_allin1_2p_vnf/src/IMS-ALLIN1__vnfd.yaml b/descriptor-packages/vnfd/ims_allin1_2p_vnf/src/IMS-ALLIN1__vnfd.yaml index fb903fcd..1943ffb3 100644 --- a/descriptor-packages/vnfd/ims_allin1_2p_vnf/src/IMS-ALLIN1__vnfd.yaml +++ b/descriptor-packages/vnfd/ims_allin1_2p_vnf/src/IMS-ALLIN1__vnfd.yaml @@ -60,14 +60,14 @@ vnfd-catalog: type: EXTERNAL virtual-interface: bandwidth: '0' - type: VIRTIO + type: PARAVIRT vpci: 0000:00:0a.0 external-connection-point-ref: eth0 - name: eth1 type: EXTERNAL virtual-interface: bandwidth: '0' - type: VIRTIO + type: PARAVIRT vpci: 0000:00:0b.0 external-connection-point-ref: eth1 guest-epa: diff --git a/descriptor-packages/vnfd/ping_vnf/src/ping_vnfd.yaml b/descriptor-packages/vnfd/ping_vnf/src/ping_vnfd.yaml index 0639419e..a2e2c1ed 100644 --- a/descriptor-packages/vnfd/ping_vnf/src/ping_vnfd.yaml +++ b/descriptor-packages/vnfd/ping_vnf/src/ping_vnfd.yaml @@ -52,13 +52,13 @@ vnfd-catalog: position: 0 type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: ping_vnfd/cp0 - name: eth1 position: 1 type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: ping_vnfd/cp1 id: iovdu_0 image: Fedora-x86_64-20-20131211.1-sda-ping.qcow2 diff --git a/descriptor-packages/vnfd/pong_vnf/src/pong_vnfd.yaml b/descriptor-packages/vnfd/pong_vnf/src/pong_vnfd.yaml index 4dfbab05..935f04e0 100644 --- a/descriptor-packages/vnfd/pong_vnf/src/pong_vnfd.yaml +++ b/descriptor-packages/vnfd/pong_vnf/src/pong_vnfd.yaml @@ -52,13 +52,13 @@ vnfd-catalog: position: 0 type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: pong_vnfd/cp0 - name: eth1 position: 1 type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: pong_vnfd/cp1 id: iovdu_0 image: Fedora-x86_64-20-20131211.1-sda-pong.qcow2 diff --git a/descriptor-packages/vnfd/ref11_vnf/src/ref11_vnfd.yaml b/descriptor-packages/vnfd/ref11_vnf/src/ref11_vnfd.yaml index d1b78400..a022a857 100644 --- a/descriptor-packages/vnfd/ref11_vnf/src/ref11_vnfd.yaml +++ b/descriptor-packages/vnfd/ref11_vnf/src/ref11_vnfd.yaml @@ -25,12 +25,12 @@ vnfd-catalog: - name: iface10 type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: mgmt0 - name: iface11 type: INTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT internal-connection-point-ref: iface11 internal-connection-point: - name: iface11 @@ -47,12 +47,12 @@ vnfd-catalog: - name: iface22 type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: west - name: iface21 type: INTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT internal-connection-point-ref: iface21 internal-connection-point: - name: iface21 diff --git a/descriptor-packages/vnfd/ref12_vnf/src/ref12_vnfd.yaml b/descriptor-packages/vnfd/ref12_vnf/src/ref12_vnfd.yaml index ae534a8b..424eb77c 100644 --- a/descriptor-packages/vnfd/ref12_vnf/src/ref12_vnfd.yaml +++ b/descriptor-packages/vnfd/ref12_vnf/src/ref12_vnfd.yaml @@ -28,13 +28,13 @@ vnfd-catalog: - name: iface30 type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: mgmt0 - name: iface31 type: INTERNAL internal-connection-point-ref: iface31 virtual-interface: - type: VIRTIO + type: PARAVIRT guest-epa: cpu-pinning-policy: DEDICATED mempage-size: "LARGE" @@ -64,7 +64,7 @@ vnfd-catalog: type: INTERNAL internal-connection-point-ref: iface41 virtual-interface: - type: VIRTIO + type: PARAVIRT guest-epa: cpu-pinning-policy: DEDICATED id: e526e diff --git a/descriptor-packages/vnfd/ref21_vnf/src/ref21_vnfd.yaml b/descriptor-packages/vnfd/ref21_vnf/src/ref21_vnfd.yaml index 58cd499f..7a21394f 100644 --- a/descriptor-packages/vnfd/ref21_vnf/src/ref21_vnfd.yaml +++ b/descriptor-packages/vnfd/ref21_vnf/src/ref21_vnfd.yaml @@ -16,12 +16,12 @@ vnfd-catalog: - name: iface50 type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: mgmt - name: iface51 type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: data id: ref_vm21 image: ref_vm21.qcow2 diff --git a/descriptor-packages/vnfd/ref22_vnf/src/ref22_vnfd.yaml b/descriptor-packages/vnfd/ref22_vnf/src/ref22_vnfd.yaml index 02987b16..9e1388c6 100644 --- a/descriptor-packages/vnfd/ref22_vnf/src/ref22_vnfd.yaml +++ b/descriptor-packages/vnfd/ref22_vnf/src/ref22_vnfd.yaml @@ -18,7 +18,7 @@ vnfd-catalog: - name: iface60 type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: mgmt - name: iface61 type: EXTERNAL diff --git a/descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/src/ubuntu_1iface_cloudinit_newfile_vnfd.yaml b/descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/src/ubuntu_1iface_cloudinit_newfile_vnfd.yaml index 53df870d..60d23790 100644 --- a/descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/src/ubuntu_1iface_cloudinit_newfile_vnfd.yaml +++ b/descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/src/ubuntu_1iface_cloudinit_newfile_vnfd.yaml @@ -39,7 +39,7 @@ vnfd-catalog: - name: eth0 type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT bandwidth: '0' vpci: 0000:00:0a.0 external-connection-point-ref: eth0 diff --git a/descriptor-packages/vnfd/ubuntu_cirros_multidisk_vnf/src/ubuntu_cirros_multidisk_vnfd.yaml b/descriptor-packages/vnfd/ubuntu_cirros_multidisk_vnf/src/ubuntu_cirros_multidisk_vnfd.yaml index 9d56adbb..a6f9fd68 100644 --- a/descriptor-packages/vnfd/ubuntu_cirros_multidisk_vnf/src/ubuntu_cirros_multidisk_vnfd.yaml +++ b/descriptor-packages/vnfd/ubuntu_cirros_multidisk_vnf/src/ubuntu_cirros_multidisk_vnfd.yaml @@ -33,7 +33,7 @@ vnfd-catalog: - name: eth0 type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT external-connection-point-ref: eth0 # Specify the volume # There can be multiple interfaces defined diff --git a/descriptor-packages/vnfd/ubuntu_epa_virtio_vnf/src/ubuntu_epa_virtio_vnfd.yaml b/descriptor-packages/vnfd/ubuntu_epa_virtio_vnf/src/ubuntu_epa_virtio_vnfd.yaml index 9935f76f..bb26ba06 100644 --- a/descriptor-packages/vnfd/ubuntu_epa_virtio_vnf/src/ubuntu_epa_virtio_vnfd.yaml +++ b/descriptor-packages/vnfd/ubuntu_epa_virtio_vnf/src/ubuntu_epa_virtio_vnfd.yaml @@ -35,7 +35,7 @@ vnfd-catalog: - name: eth0 type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT bandwidth: '0' vpci: 0000:00:0a.0 external-connection-point-ref: eth0 diff --git a/descriptor-packages/vnfd/ubuntu_xenial_vnf/src/ubuntu_xenial_vnfd.yaml b/descriptor-packages/vnfd/ubuntu_xenial_vnf/src/ubuntu_xenial_vnfd.yaml index 5d0eed02..f230501b 100644 --- a/descriptor-packages/vnfd/ubuntu_xenial_vnf/src/ubuntu_xenial_vnfd.yaml +++ b/descriptor-packages/vnfd/ubuntu_xenial_vnf/src/ubuntu_xenial_vnfd.yaml @@ -39,7 +39,7 @@ vnfd-catalog: - name: eth0 type: EXTERNAL virtual-interface: - type: VIRTIO + type: PARAVIRT bandwidth: '0' vpci: 0000:00:0a.0 external-connection-point-ref: eth0 diff --git a/docker/LCM/Dockerfile b/docker/LCM/Dockerfile index 1a750d3b..909ea3a2 100644 --- a/docker/LCM/Dockerfile +++ b/docker/LCM/Dockerfile @@ -84,8 +84,11 @@ ENV OSMLCM_VCA_SECRET: secret # database ENV OSMLCM_DATABASE_DRIVER mongo -ENV OSMLCM_DATABASE_HOST mongo -ENV OSMLCM_DATABASE_PORT 27017 +ENV OSMLCM_DATABASE_URI mongodb://mongo:27017 +#ENV OSMLCM_DATABASE_HOST mongo +#ENV OSMLCM_DATABASE_PORT 27017 + + ENV OSMLCM_STORAGE_DRIVER local ENV OSMLCM_STORAGE_PATH /app/storage diff --git a/docker/MON/Dockerfile b/docker/MON/Dockerfile index 5b9da33e..c2760000 100644 --- a/docker/MON/Dockerfile +++ b/docker/MON/Dockerfile @@ -30,28 +30,38 @@ RUN apt-get --yes update \ && apt-get --yes install git python python-pip python3 python3-pip libmysqlclient-dev libssl-dev libffi-dev \ && pip3 install pip==9.0.3 +RUN pip3 install 'macaroonbakery>=1.1,<2.0' 'pyRFC3339>=1.0,<2.0' \ + 'pyyaml>=3.0,<4.0' 'theblues>=0.3.8,<1.0' 'websockets>=4.0,<5.0' \ + 'paramiko' # PyNaCl + ARG REPOSITORY_BASE=http://osm-download.etsi.org/repository/osm/debian ARG RELEASE=ReleaseFOUR-daily ARG REPOSITORY_KEY=OSM%20ETSI%20Release%20Key.gpg ARG REPOSITORY=testing RUN curl ${REPOSITORY_BASE}/${RELEASE}/${REPOSITORY_KEY} | apt-key add - -RUN add-apt-repository -y "deb ${REPOSITORY_BASE}/${RELEASE} ${REPOSITORY} MON common" && apt update +RUN add-apt-repository -y "deb ${REPOSITORY_BASE}/${RELEASE} ${REPOSITORY} MON N2VC common" && apt update ARG MON_VERSION ARG COMMON_VERSION +ARG N2VC_VERSION -RUN apt-get --yes update && apt-get -y install python3-osm-common${COMMON_VERSION} python3-osm-mon${MON_VERSION} +RUN apt-get --yes update && apt-get -y install python3-osm-common${COMMON_VERSION} python3-osm-mon${MON_VERSION} python3-n2vc${N2VC_VERSION} COPY scripts/ scripts/ ENV BROKER_URI kafka:9092 -ENV MONGO_URI mongo:27017 +ENV MONGO_URI mongodb://mongo:27017 ENV DATABASE sqlite:///mon_sqlite.db ENV OS_NOTIFIER_URI localhost:8662 ENV OS_DEFAULT_GRANULARITY 300 ENV REQUEST_TIMEOUT 10 +ENV OSMMON_LOG_LEVEL INFO +ENV OSMMON_KAFKA_LOG_LEVEL INFO +ENV OSMMON_VCA_HOST localhost +ENV OSMMON_VCA_SECRET secret +ENV OSMMON_VCA_USER admin -EXPOSE 8662 +EXPOSE 8662 8000 CMD /bin/bash scripts/runInstall.sh diff --git a/docker/MON/scripts/runInstall.sh b/docker/MON/scripts/runInstall.sh index 236aa3da..b3228b6a 100755 --- a/docker/MON/scripts/runInstall.sh +++ b/docker/MON/scripts/runInstall.sh @@ -20,7 +20,6 @@ # For those usages not covered by the Apache License, Version 2.0 please # contact: bdiaz@whitestack.com or glavado@whitestack.com ## -/bin/bash /mon/osm_mon/plugins/vRealiseOps/vROPs_Webservice/install.sh -python3 /usr/lib/python3/dist-packages/osm_mon/plugins/OpenStack/Aodh/notifier.py & -python3 ./usr/lib/python3/dist-packages/osm_mon/core/message_bus/common_consumer.py - +osm-mon-server & +osm-mon-evaluator & +osm-mon-collector diff --git a/docker/NBI/Dockerfile b/docker/NBI/Dockerfile index d2d0c361..04a9acd9 100644 --- a/docker/NBI/Dockerfile +++ b/docker/NBI/Dockerfile @@ -51,8 +51,10 @@ ENV OSMNBI_SOCKET_PORT 9999 ENV OSMNBI_STORAGE_PATH /app/storage # database ENV OSMNBI_DATABASE_DRIVER mongo -ENV OSMNBI_DATABASE_HOST mongo -ENV OSMNBI_DATABASE_PORT 27017 +ENV OSMNBI_DATABASE_URI mongodb://mongo:27017 +#ENV OSMNBI_DATABASE_HOST mongo +#ENV OSMNBI_DATABASE_PORT 27017 + # web ENV OSMNBI_STATIC_DIR /app/osm_nbi/html_public # logs diff --git a/docker/POL/Dockerfile b/docker/POL/Dockerfile index f5ce0571..1eb86344 100644 --- a/docker/POL/Dockerfile +++ b/docker/POL/Dockerfile @@ -52,8 +52,7 @@ ENV OSMPOL_MESSAGE_HOST kafka ENV OSMPOL_MESSAGE_PORT 9092 ENV OSMPOL_DATABASE_DRIVER mongo -ENV OSMPOL_DATABASE_HOST mongo -ENV OSMPOL_DATABASE_PORT 27017 +ENV OSMPOL_DATABASE_URI mongodb://mongo:27017 ENV OSMPOL_SQL_DATABASE_URI sqlite:///mon_sqlite.db diff --git a/installers/docker/docker-compose.yaml b/installers/docker/docker-compose.yaml index e45fabde..29b7857f 100644 --- a/installers/docker/docker-compose.yaml +++ b/installers/docker/docker-compose.yaml @@ -3,8 +3,10 @@ volumes: ro_db: mongo_db: mon_db: + pol_db: osm_packages: keystone_db: + prom_db: networks: netOSM: external: @@ -53,6 +55,7 @@ services: - "${OSM_PROM_PORTS:-9091:9090}" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro + - prom_db:/prometheus networks: - netOSM keystone-db: @@ -148,7 +151,10 @@ services: image: ${DOCKER_USER:-osm}/pol:${TAG:-latest} networks: - netOSM + volumes: + - pol_db:/app/database environment: + OSMPOL_SQL_DATABASE_URI: sqlite:///app/database/policy_module.db BROKER_URI: kafka:9092 #depends_on: # - kafka diff --git a/installers/docker/osm_elk/metricbeat.yml b/installers/docker/osm_elk/metricbeat.yml index 61feaef7..907253e0 100644 --- a/installers/docker/osm_elk/metricbeat.yml +++ b/installers/docker/osm_elk/metricbeat.yml @@ -54,7 +54,7 @@ fields: output.elasticsearch: hosts: ["elasticsearch:9200"] -logging.level: debug +logging.level: info logging.to_files: true logging.files: path: /var/log/metricbeat diff --git a/installers/docker/osm_metrics/docker-compose.yml b/installers/docker/osm_metrics/docker-compose.yml index fb0e8354..98fd5650 100644 --- a/installers/docker/osm_metrics/docker-compose.yml +++ b/installers/docker/osm_metrics/docker-compose.yml @@ -2,7 +2,7 @@ version: '3' networks: netOSM: external: - name: ${OSM_NETWORK:-netOSM} + name: ${OSM_NETWORK:-netosm} services: grafana: image: grafana/grafana diff --git a/installers/docker/osm_metrics/osm-sample-dashboard.json b/installers/docker/osm_metrics/osm-sample-dashboard.json index cb9ca068..415a7cdc 100644 --- a/installers/docker/osm_metrics/osm-sample-dashboard.json +++ b/installers/docker/osm_metrics/osm-sample-dashboard.json @@ -54,7 +54,7 @@ "steppedLine": false, "targets": [ { - "expr": "cpu_utilization", + "expr": "osm_cpu_utilization", "format": "time_series", "interval": "", "intervalFactor": 1, @@ -139,7 +139,7 @@ "steppedLine": false, "targets": [ { - "expr": "average_memory_utilization", + "expr": "osm_average_memory_utilization", "format": "time_series", "interval": "", "intervalFactor": 1, @@ -224,7 +224,7 @@ "steppedLine": false, "targets": [ { - "expr": "load", + "expr": "osm_load", "format": "time_series", "interval": "", "intervalFactor": 1, @@ -309,7 +309,7 @@ "steppedLine": false, "targets": [ { - "expr": "users", + "expr": "osm_users", "format": "time_series", "interval": "", "intervalFactor": 1, diff --git a/installers/full_install_osm.sh b/installers/full_install_osm.sh index ddff44af..f67ba082 100755 --- a/installers/full_install_osm.sh +++ b/installers/full_install_osm.sh @@ -105,6 +105,10 @@ function parse_juju_password { }' } +function generate_secret() { + head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32 +} + function remove_volumes() { stack=$1 volumes="mongo_db mon_db osm_packages ro_db" @@ -384,7 +388,7 @@ function configure_RO(){ function configure_VCA(){ echo -e " Configuring VCA" - JUJU_PASSWD=`date +%s | sha256sum | base64 | head -c 32` + JUJU_PASSWD=$(generate_secret) echo -e "$JUJU_PASSWD\n$JUJU_PASSWD" | lxc exec VCA -- juju change-user-password } @@ -744,10 +748,25 @@ function generate_config_log_folders() { function generate_docker_env_files() { echo "Generating docker env files" - echo "OSMLCM_VCA_HOST=${OSM_VCA_HOST}" | $WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/lcm.env - echo "OSMLCM_VCA_SECRET=${OSM_VCA_SECRET}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + # LCM + if [ ! -f $OSM_DOCKER_WORK_DIR/lcm.env ]; then + echo "OSMLCM_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_HOST" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_HOST=${OSM_VCA_HOST}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_HOST.*|OSMLCM_VCA_HOST=$OSM_VCA_HOST|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi - MYSQL_ROOT_PASSWORD=`date +%s | sha256sum | base64 | head -c 32` + if ! grep -Fq "OSMLCM_VCA_SECRET" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_SECRET=${OSM_VCA_SECRET}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_SECRET.*|OSMLCM_VCA_SECRET=$OSM_VCA_SECRET|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + # RO + MYSQL_ROOT_PASSWORD=$(generate_secret) if [ ! -f $OSM_DOCKER_WORK_DIR/ro-db.env ]; then echo "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/ro-db.env fi @@ -755,27 +774,47 @@ function generate_docker_env_files() { echo "RO_DB_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/ro.env fi - MYSQL_ROOT_PASSWORD=`date +%s | sha256sum | base64 | head -c 32` && sleep 1 - KEYSTONE_DB_PASSWORD=`date +%s | sha256sum | base64 | head -c 32` && sleep 1 - #ADMIN_PASSWORD=`date +%s | sha256sum | base64 | head -c 32` && sleep 1 - NBI_PASSWORD=`date +%s | sha256sum | base64 | head -c 32` + # Keystone + MYSQL_ROOT_PASSWORD=$(generate_secret) + KEYSTONE_DB_PASSWORD=$(generate_secret) + NBI_PASSWORD=$(generate_secret) if [ ! -f $OSM_DOCKER_WORK_DIR/keystone-db.env ]; then echo "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/keystone-db.env fi if [ ! -f $OSM_DOCKER_WORK_DIR/keystone.env ]; then echo "ROOT_DB_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/keystone.env echo "KEYSTONE_DB_PASSWORD=${KEYSTONE_DB_PASSWORD}" |$WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/keystone.env - #echo "ADMIN_PASSWORD=${ADMIN_PASSWORD}" |$WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/keystone.env echo "NBI_PASSWORD=${NBI_PASSWORD}" |$WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/keystone.env fi + # NBI if [ ! -f $OSM_DOCKER_WORK_DIR/nbi.env ]; then echo "OSMNBI_AUTHENTICATION_SERVICE_PASSWORD=${NBI_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/nbi.env + echo "OSMNBI_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/nbi.env fi - echo "OS_NOTIFIER_URI=http://${DEFAULT_IP}:8662" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/mon.env - echo "OSMMON_VCA_HOST=${OSM_VCA_HOST}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env - echo "OSMMON_VCA_SECRET=${OSM_VCA_SECRET}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + # MON + if [ ! -f $OSM_DOCKER_WORK_DIR/mon.env ]; then + echo "OSMMON_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OS_NOTIFIER_URI" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OS_NOTIFIER_URI=http://${DEFAULT_IP}:8662" |$WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OS_NOTIFIER_URI.*|OS_NOTIFIER_URI=http://$DEFAULT_IP:8662|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OSMMON_VCA_HOST" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OSMMON_VCA_HOST=${OSM_VCA_HOST}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OSMMON_VCA_HOST.*|OSMMON_VCA_HOST=$OSM_VCA_HOST|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OSMMON_VCA_SECRET" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OSMMON_VCA_SECRET=${OSM_VCA_SECRET}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OSMMON_VCA_SECRET.*|OSMMON_VCA_SECRET=$OSM_VCA_SECRET|g" $OSM_DOCKER_WORK_DIR/mon.env + fi echo "Finished generation of docker env files" } @@ -853,9 +892,10 @@ function deploy_lightweight() { function deploy_elk() { echo "Pulling docker images for ELK" - sg docker -c "docker pull docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.3" || FATAL "cannot get elasticsearch docker image" - sg docker -c "docker pull docker.elastic.co/logstash/logstash-oss:6.2.3" || FATAL "cannot get logstash docker image" - sg docker -c "docker pull docker.elastic.co/kibana/kibana-oss:6.2.3" || FATAL "cannot get kibana docker image" + sg docker -c "docker pull docker.elastic.co/elasticsearch/elasticsearch-oss:${ELASTIC_VERSION}" || FATAL "cannot get elasticsearch docker image" + sg docker -c "docker pull docker.elastic.co/beats/metricbeat:${ELASTIC_VERSION}" || FATAL "cannot get metricbeat docker image" + sg docker -c "docker pull docker.elastic.co/beats/filebeat:${ELASTIC_VERSION}" || FATAL "cannot get filebeat docker image" + sg docker -c "docker pull docker.elastic.co/kibana/kibana-oss:${ELASTIC_VERSION}" || FATAL "cannot get kibana docker image" echo "Finished pulling elk docker images" $WORKDIR_SUDO mkdir -p "$OSM_DOCKER_WORK_DIR/osm_elk" $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/osm_elk/* $OSM_DOCKER_WORK_DIR/osm_elk @@ -879,21 +919,21 @@ function deploy_elk() { echo "ELK is up and running. Trying to create index pattern..." #Create index pattern curl -f -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ - "http://127.0.0.1:5601/api/saved_objects/index-pattern/logstash-*" \ - -d"{\"attributes\":{\"title\":\"logstash-*\",\"timeFieldName\":\"@timestamp\"}}" 2>/dev/null + "http://127.0.0.1:5601/api/saved_objects/index-pattern/filebeat-*" \ + -d"{\"attributes\":{\"title\":\"filebeat-*\",\"timeFieldName\":\"@timestamp\"}}" 2>/dev/null #Make it the default index curl -f -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ "http://127.0.0.1:5601/api/kibana/settings/defaultIndex" \ - -d"{\"value\":\"logstash-*\"}" 2>/dev/null + -d"{\"value\":\"filebeat-*\"}" 2>/dev/null else echo "Cannot connect to Kibana to create index pattern." echo "Once Kibana is running, you can use the following instructions to create index pattern:" echo 'curl -f -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ - "http://127.0.0.1:5601/api/saved_objects/index-pattern/logstash-*" \ - -d"{\"attributes\":{\"title\":\"logstash-*\",\"timeFieldName\":\"@timestamp\"}}"' + "http://127.0.0.1:5601/api/saved_objects/index-pattern/filebeat-*" \ + -d"{\"attributes\":{\"title\":\"filebeat-*\",\"timeFieldName\":\"@timestamp\"}}"' echo 'curl -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ "http://127.0.0.1:5601/api/kibana/settings/defaultIndex" \ - -d"{\"value\":\"logstash-*\"}"' + -d"{\"value\":\"filebeat-*\"}"' fi echo "Finished deployment of ELK stack" return 0 @@ -955,16 +995,21 @@ function install_lightweight() { [ -z "$OSM_VCA_SECRET" ] && FATAL "Cannot obtain juju secret" fi + if [ -z "$OSM_DATABASE_COMMONKEY" ]; then + OSM_DATABASE_COMMONKEY=$(generate_secret) + [ -z "OSM_DATABASE_COMMONKEY" ] && FATAL "Cannot generate common db secret" + fi + track juju [ -n "$INSTALL_NODOCKER" ] || install_docker_ce track docker_ce #install_docker_compose + [ -n "$INSTALL_NODOCKER" ] || init_docker_swarm [ -z "$DOCKER_NOBUILD" ] && generate_docker_images track docker_build generate_docker_env_files generate_config_log_folders - [ -n "$INSTALL_NODOCKER" ] || init_docker_swarm # remove old stack remove_stack $OSM_STACK_NAME create_docker_network @@ -1098,6 +1143,8 @@ DOCKER_USER=osm KAFKA_TAG=2.11-1.0.2 PROMETHEUS_TAG=v2.4.3 KEYSTONEDB_TAG=10 +OSM_DATABASE_COMMONKEY= +ELASTIC_VERSION=6.4.2 while getopts ":hy-:b:r:k:u:R:l:p:D:o:m:H:S:s:w:t:" o; do case "${o}" in diff --git a/installers/osm_health.sh b/installers/osm_health.sh index b8e24ada..2684af73 100755 --- a/installers/osm_health.sh +++ b/installers/osm_health.sh @@ -3,6 +3,7 @@ WAIT_TIME=180 # LCM healthcheck needs 140 senconds SERVICES_WITH_HEALTH="nbi ro zookeeper lcm" NUM_SERVICES_WITH_HEALTH=$(echo $SERVICES_WITH_HEALTH | wc -w) +WAIT_FINAL=30 while getopts "w:s:n:c:" o; do case "${o}" in @@ -26,6 +27,9 @@ time=0 step=2 while [ $time -le "$WAIT_TIME" ]; do if [ "$(docker ps | grep " ${STACK_NAME}_" | grep -i healthy | wc -l)" -ge "$NUM_SERVICES_WITH_HEALTH" ]; then + # all dockers are healthy now. + # final sleep is needed until more health checks are added to validate system is ready to handle requests + sleep $WAIT_FINAL exit 0 fi diff --git a/jenkins/ci-pipelines/ci_stage_3.groovy b/jenkins/ci-pipelines/ci_stage_3.groovy index 724daadb..47ab0e13 100644 --- a/jenkins/ci-pipelines/ci_stage_3.groovy +++ b/jenkins/ci-pipelines/ci_stage_3.groovy @@ -35,7 +35,7 @@ properties([ booleanParam(defaultValue: false, description: '', name: 'SAVE_CONTAINER_ON_FAIL'), booleanParam(defaultValue: false, description: '', name: 'SAVE_CONTAINER_ON_PASS'), booleanParam(defaultValue: true, description: '', name: 'SAVE_ARTIFACTS_ON_SMOKE_SUCCESS'), - booleanParam(defaultValue: false, description: '', name: 'DO_STAGE_4'), + booleanParam(defaultValue: true, description: '', name: 'DO_STAGE_4'), booleanParam(defaultValue: true, description: '', name: 'DO_BUILD'), booleanParam(defaultValue: true, description: '', name: 'DO_INSTALL'), booleanParam(defaultValue: true, description: '', name: 'DO_SMOKE'), @@ -225,6 +225,11 @@ node("${params.NODE}") { release = "-R ${params.RELEASE}" } + if ( params.REPOSITORY_BASE ) + { + repo_base_url = "-u ${params.REPOSITORY_BASE}" + } + sh """ export PATH=$PATH:/snap/bin installers/full_install_osm.sh -y -s ${container_name} --test --nolxd --nodocker --nojuju --nohostports --nohostclient \ diff --git a/systest/Makefile b/systest/Makefile index df43019b..a5b63039 100644 --- a/systest/Makefile +++ b/systest/Makefile @@ -38,6 +38,7 @@ VIM_EMU ?= TOPDIR=$(shell readlink -f .|sed -e 's/systest.*//') + ifdef OS_AUTH_URL OPTION_OS_AUTH_URL=--os-url $(OS_AUTH_URL) endif diff --git a/systest/testcases/vnfs/test_vnfs.py b/systest/testcases/vnfs/test_vnfs.py index 53f39acd..b84da44c 100644 --- a/systest/testcases/vnfs/test_vnfs.py +++ b/systest/testcases/vnfs/test_vnfs.py @@ -117,6 +117,12 @@ class TestClass(object): assert not osm.get_api().ns.delete(ns_name) + #wait for the ns to delete + try: + utils.wait_for_value( lambda: osm.get_api().ns.get(nsd_desc['name']), result=False, wait_time=60) + except: + pass + assert not osm.get_api().nsd.delete(nsd_desc['name']) for file in vnfd_file_list: diff --git a/tools/osm-report b/tools/osm-report new file mode 100755 index 00000000..4e00b9ab --- /dev/null +++ b/tools/osm-report @@ -0,0 +1,158 @@ +#!/bin/bash + +# OSM devops/tools - Tool that generates a report for debugging +# +# Copyright 2018 Telefonica +# +# 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. + +DIRNAME=$(readlink -f ${BASH_SOURCE[0]}) +DIRNAME=$(dirname $DIRNAME) + +#Get versions +echo "-------------------------------" +echo "Versions" +echo "-------------------------------" +echo "DIRNAME: $DIRNAME" +echo "docker version:" +docker version +echo "lxd version:" +lxd --version +echo "juju version:" +juju --version +echo "osm-devops deb package:" +dpkg -l |grep osm-devops +echo "osm-imdocs deb package:" +dpkg -l |grep osm-imdocs +echo "python-osmclient deb package:" +dpkg -l |grep +echo "whereis osm:" +whereis osm +echo "which osmclient:" +which osm +#dockers deb packages +echo "dockers deb packages" +for i in kafka keystone keystone-db lcm light-ui mon mongo nbi pol prometheus ro ro-db zookeeper; do + echo "docker osm_$i" + docker exec $(docker ps -q -f name=osm_$i -l) dpkg -l |grep osm +done +#dockers source code +echo "dockers deb packages" +echo "docker osm_ro" +docker exec $(docker ps -q -f name=osm_ro -l) git -C /root/RO rev-parse HEAD +docker exec $(docker ps -q -f name=osm_ro -l) git -C /root/RO describe --tags --long --dirty +echo "docker osm_lcm" +docker exec $(docker ps -q -f name=osm_lcm -l) git -C /app rev-parse HEAD +docker exec $(docker ps -q -f name=osm_lcm -l) git -C /app describe --tags --long --dirty +echo "docker osm_nbi" +docker exec $(docker ps -q -f name=osm_nbi -l) git -C /app/NBI rev-parse HEAD +docker exec $(docker ps -q -f name=osm_nbi -l) git -C /app/NBI describe --tags --long --dirty +echo "docker osm_light-ui" +docker exec $(docker ps -q -f name=osm_light-ui -l) git -C /usr/share/osm-lightui rev-parse HEAD +docker exec $(docker ps -q -f name=osm_light-ui -l) git -C /usr/share/osm-lightui describe --tags --long --dirty +echo "docker osm_mon" +docker exec $(docker ps -q -f name=osm_mon -l) git -C /mon rev-parse HEAD +docker exec $(docker ps -q -f name=osm_mon -l) git -C /mon describe --tags --long --dirty +echo "docker osm_pol" +docker exec $(docker ps -q -f name=osm_pol -l) git -C /policy_module rev-parse HEAD +docker exec $(docker ps -q -f name=osm_pol -l) git -C /policy_module describe --tags --long --dirty + +#Get configuration files +echo "-------------------------------" +echo "Configuration files" +echo "-------------------------------" +for i in $(find /etc/osm -type f -exec echo {} \;); do + [ -f "$i" ] || continue + echo "File $i:" + cat $i +done + +#Get status of docker swarm +echo "-------------------------------" +echo "Docker swarm status" +echo "-------------------------------" +echo "Node ls:" +docker node ls +echo "Node inspect self:" +docker node inspect self --pretty +echo "Network inspect docker_gwbridge:" +docker network inspect docker_gwbridge +echo "Network inspect netOSM:" +docker network inspect netOSM +echo "Network inspect netosm:" +docker network inspect netosm + +#Get status of dockers +echo "-------------------------------" +echo "Docker status" +echo "-------------------------------" +echo "-------------------------------" +echo "Docker stack ls" +echo "-------------------------------" +docker stack ls +echo "-------------------------------" +echo "Docker service ls" +echo "-------------------------------" +docker service ls +for i in $(docker stack ps |tail -n +2|awk '{print $1}'); do + echo "-------------------------------" + echo "Docker stack $i" + echo "-------------------------------" + docker stack ps $i +done + +#Get log files +echo +echo "-------------------------------" +echo "Log files" +echo "-------------------------------" +echo "To be added" + +#Get OSM general info +echo "-------------------------------" +echo "OSM info" +echo "-------------------------------" +for i in vim-list sdnc-list vnfd-list nsd-list ns-list vnf-list; do + echo "-------------------------------" + echo "OSM info: $i" + echo "-------------------------------" + osm $i +done + +#Get OSM details +echo "-------------------------------" +echo "OSM details" +echo "-------------------------------" +for i in vim sdnc vnfd nsd ns; do + echo "-------------------------------" + echo "OSM details: $i" + echo "-------------------------------" + for j in $(osm $i-list|tail -n +4|awk '{print $4}'); do + echo "-------------------------------" + echo "OSM details: vim $j" + echo "-------------------------------" + osm $i-show $j + done +done +for i in vnf; do + echo "-------------------------------" + echo "OSM details: $i" + echo "-------------------------------" + for j in $(osm $i-list|tail -n +4|awk '{print $2}'); do + echo "-------------------------------" + echo "OSM details: vim $j" + echo "-------------------------------" + osm $i-show $j + done +done +