Devops Cleanup 60/12460/5
authorMark Beierl <mark.beierl@canonical.com>
Tue, 16 Aug 2022 13:57:13 +0000 (09:57 -0400)
committerbeierlm <mark.beierl@canonical.com>
Wed, 16 Nov 2022 15:47:42 +0000 (16:47 +0100)
Removes old files from devops that are not maintained and are
confusing to developers looking to use robot tests or other
tools that have been abandoned in this repository.

Change-Id: I1eca6f413477868fd8892463b696c933f55c35e4
Signed-off-by: Mark Beierl <mark.beierl@canonical.com>
296 files changed:
charms/.gitignore [deleted file]
charms/Dockerfile [deleted file]
charms/Makefile [deleted file]
charms/README.md [deleted file]
charms/juju-env.sh [deleted file]
charms/layers/ansible-charm/LICENSE [deleted file]
charms/layers/ansible-charm/README.md [deleted file]
charms/layers/ansible-charm/actions.yaml [deleted file]
charms/layers/ansible-charm/actions/ansible-playbook [deleted file]
charms/layers/ansible-charm/icon.svg [deleted file]
charms/layers/ansible-charm/layer.yaml [deleted file]
charms/layers/ansible-charm/metadata.yaml [deleted file]
charms/layers/ansible-charm/playbook/playbook.yaml [deleted file]
charms/layers/ansible-charm/reactive/ansible_charm.py [deleted file]
charms/layers/ansible-charm/tests/00-setup [deleted file]
charms/layers/ansible-charm/tests/10-deploy [deleted file]
charms/layers/netutils/LICENSE [deleted file]
charms/layers/netutils/README.md [deleted file]
charms/layers/netutils/actions.yaml [deleted file]
charms/layers/netutils/actions/dig [deleted file]
charms/layers/netutils/actions/iperf [deleted file]
charms/layers/netutils/actions/nmap [deleted file]
charms/layers/netutils/actions/ping [deleted file]
charms/layers/netutils/actions/traceroute [deleted file]
charms/layers/netutils/config.yaml [deleted file]
charms/layers/netutils/icon.svg [deleted file]
charms/layers/netutils/layer.yaml [deleted file]
charms/layers/netutils/metadata.yaml [deleted file]
charms/layers/netutils/reactive/layer_netutils.py [deleted file]
charms/layers/netutils/tests/00-setup [deleted file]
charms/layers/netutils/tests/10-deploy [deleted file]
charms/layers/pingpong/README.md [deleted file]
charms/layers/pingpong/actions.yaml [deleted file]
charms/layers/pingpong/actions/get-rate [deleted file]
charms/layers/pingpong/actions/get-server [deleted file]
charms/layers/pingpong/actions/get-state [deleted file]
charms/layers/pingpong/actions/get-stats [deleted file]
charms/layers/pingpong/actions/set-rate [deleted file]
charms/layers/pingpong/actions/set-server [deleted file]
charms/layers/pingpong/actions/start-traffic [deleted file]
charms/layers/pingpong/actions/stop-traffic [deleted file]
charms/layers/pingpong/config.yaml [deleted file]
charms/layers/pingpong/icon.svg [deleted file]
charms/layers/pingpong/layer.yaml [deleted file]
charms/layers/pingpong/metadata.yaml [deleted file]
charms/layers/pingpong/reactive/pingpong.py [deleted file]
charms/layers/pingpong/tests/00-setup [deleted file]
charms/layers/pingpong/tests/10-deploy [deleted file]
charms/layers/simple/README.md [deleted file]
charms/layers/simple/actions.yaml [deleted file]
charms/layers/simple/actions/touch [deleted file]
charms/layers/simple/config.yaml [deleted file]
charms/layers/simple/icon.svg [deleted file]
charms/layers/simple/layer.yaml [deleted file]
charms/layers/simple/metadata.yaml [deleted file]
charms/layers/simple/metrics.yaml [deleted file]
charms/layers/simple/reactive/simple.py [deleted file]
charms/layers/simple/tests/00-setup [deleted file]
charms/layers/simple/tests/10-deploy [deleted file]
charms/layers/vyos-proxy/Makefile [deleted file]
charms/layers/vyos-proxy/README.md [deleted file]
charms/layers/vyos-proxy/actions.yaml [deleted file]
charms/layers/vyos-proxy/actions/ping [deleted file]
charms/layers/vyos-proxy/config.yaml [deleted file]
charms/layers/vyos-proxy/copyright [deleted file]
charms/layers/vyos-proxy/icon.svg [deleted file]
charms/layers/vyos-proxy/layer.yaml [deleted file]
charms/layers/vyos-proxy/metadata.yaml [deleted file]
charms/layers/vyos-proxy/reactive/__init__.py [deleted file]
charms/layers/vyos-proxy/reactive/vyos_proxy.py [deleted file]
charms/layers/vyos-proxy/requirements.txt [deleted file]
charms/layers/vyos-proxy/revision [deleted file]
charms/layers/vyos-proxy/tox.ini [deleted file]
charms/layers/vyos-proxy/wheelhouse.txt [deleted file]
descriptor-packages/.gitignore [deleted file]
descriptor-packages/Makefile [deleted file]
descriptor-packages/README [deleted file]
descriptor-packages/mk/dirs.mk [deleted file]
descriptor-packages/mk/pkg.mk [deleted file]
descriptor-packages/nsd/Makefile [deleted file]
descriptor-packages/nsd/VyOS_ns/Makefile [deleted file]
descriptor-packages/nsd/VyOS_ns/src/VyOS_nsd.yaml [deleted file]
descriptor-packages/nsd/VyOS_ns/src/icons/osm_2x.png [deleted file]
descriptor-packages/nsd/cirros_2vnf_ns/Makefile [deleted file]
descriptor-packages/nsd/cirros_2vnf_ns/src/cirros_2vnf_nsd.yaml [deleted file]
descriptor-packages/nsd/cirros_2vnf_ns/src/icons/osm_2x.png [deleted file]
descriptor-packages/nsd/cirros_noportsecurity_2vnf_ns/Makefile [deleted file]
descriptor-packages/nsd/cirros_noportsecurity_2vnf_ns/src/README [deleted file]
descriptor-packages/nsd/cirros_noportsecurity_2vnf_ns/src/cirros_noportsecurity_2vnf_nsd.yaml [deleted file]
descriptor-packages/nsd/cirros_noportsecurity_2vnf_ns/src/icons/osm_2x.png [deleted file]
descriptor-packages/nsd/cirros_ns/Makefile [deleted file]
descriptor-packages/nsd/cirros_ns/src/cirros_nsd.yaml [deleted file]
descriptor-packages/nsd/cirros_ns/src/icons/osm_2x.png [deleted file]
descriptor-packages/nsd/cirros_set_vim_network_ns/Makefile [deleted file]
descriptor-packages/nsd/cirros_set_vim_network_ns/src/cirros_set_vim_network_nsd.yaml [deleted file]
descriptor-packages/nsd/cirros_set_vim_network_ns/src/icons/osm_2x.png [deleted file]
descriptor-packages/nsd/dns_aws_ns/Makefile [deleted file]
descriptor-packages/nsd/dns_aws_ns/src/dns_aws_nsd.yaml [deleted file]
descriptor-packages/nsd/dns_aws_ns/src/icons/dns.jpg [deleted file]
descriptor-packages/nsd/hackfest_ansible_ns/Makefile [deleted file]
descriptor-packages/nsd/hackfest_ansible_ns/src/ansiblecharm_nsd.yaml [deleted file]
descriptor-packages/nsd/hackfest_ansible_ns/src/icons/osm.png [deleted file]
descriptor-packages/nsd/hackfest_basic_ns/Makefile [deleted file]
descriptor-packages/nsd/hackfest_basic_ns/src/hackfest_basic_nsd.yaml [deleted file]
descriptor-packages/nsd/hackfest_basic_ns/src/icons/osm.png [deleted file]
descriptor-packages/nsd/hackfest_cloudinit_ns/Makefile [deleted file]
descriptor-packages/nsd/hackfest_cloudinit_ns/src/hackfest_cloudinit_nsd.yaml [deleted file]
descriptor-packages/nsd/hackfest_cloudinit_ns/src/icons/osm.png [deleted file]
descriptor-packages/nsd/hackfest_epasriov_ns/Makefile [deleted file]
descriptor-packages/nsd/hackfest_epasriov_ns/src/hackfest_epasriov_nsd.yaml [deleted file]
descriptor-packages/nsd/hackfest_epasriov_ns/src/icons/osm.png [deleted file]
descriptor-packages/nsd/hackfest_multivdu_ns/Makefile [deleted file]
descriptor-packages/nsd/hackfest_multivdu_ns/src/hackfest_multivdu_nsd.yaml [deleted file]
descriptor-packages/nsd/hackfest_multivdu_ns/src/icons/osm.png [deleted file]
descriptor-packages/nsd/hackfest_simplecharm_ns/Makefile [deleted file]
descriptor-packages/nsd/hackfest_simplecharm_ns/src/hackfest_simplecharm_nsd.yaml [deleted file]
descriptor-packages/nsd/hackfest_simplecharm_ns/src/icons/osm.png [deleted file]
descriptor-packages/nsd/ims_allin1_corpa/Makefile [deleted file]
descriptor-packages/nsd/ims_allin1_corpa/src/IMS-corpA__nsd.yaml [deleted file]
descriptor-packages/nsd/ims_allin1_corpa/src/icons/osm_2x.png [deleted file]
descriptor-packages/nsd/ims_allin1_corpa/src/vnf_config/IMS-ALLIN1_2p__1.yaml [deleted file]
descriptor-packages/nsd/no_port_security_ns/Makefile [deleted file]
descriptor-packages/nsd/no_port_security_ns/src/icons/osm.png [deleted file]
descriptor-packages/nsd/no_port_security_ns/src/no_port_security_nsd.yaml [deleted file]
descriptor-packages/nsd/ping_pong_ns/Makefile [deleted file]
descriptor-packages/nsd/ping_pong_ns/src/icons/rift_logo.png [deleted file]
descriptor-packages/nsd/ping_pong_ns/src/ping_pong_nsd.yaml [deleted file]
descriptor-packages/nsd/ping_pong_ns/src/scripts/start_traffic.py [deleted file]
descriptor-packages/nsd/ref1_ns/Makefile [deleted file]
descriptor-packages/nsd/ref1_ns/src/ref1_nsd.yaml [deleted file]
descriptor-packages/nsd/ref2_ns/Makefile [deleted file]
descriptor-packages/nsd/ref2_ns/src/ref2_nsd.yaml [deleted file]
descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/Makefile [deleted file]
descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/src/icons/osm.png [deleted file]
descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/src/simple_multi-charm_multi-vdu_nsd.yaml [deleted file]
descriptor-packages/nsd/ubuntu-cloudinit_ns/Makefile [deleted file]
descriptor-packages/nsd/ubuntu-cloudinit_ns/src/ubuntu-cloudinit_nsd.yaml [deleted file]
descriptor-packages/nsd/ubuntu_cirros_multidisk_ns/Makefile [deleted file]
descriptor-packages/nsd/ubuntu_cirros_multidisk_ns/src/icons/osm_2x.png [deleted file]
descriptor-packages/nsd/ubuntu_cirros_multidisk_ns/src/ubuntu_cirros_multidisk_nsd.yaml [deleted file]
descriptor-packages/nsd/ubuntu_cloudinit_ns/Makefile [deleted file]
descriptor-packages/nsd/ubuntu_cloudinit_ns/src/ubuntu_cloudinit_nsd.yaml [deleted file]
descriptor-packages/nsd/ubuntu_epa_virtio_ns/Makefile [deleted file]
descriptor-packages/nsd/ubuntu_epa_virtio_ns/src/icons/tef.png [deleted file]
descriptor-packages/nsd/ubuntu_epa_virtio_ns/src/ubuntu_epa_virtio_nsd.yaml [deleted file]
descriptor-packages/nsd/ubuntu_xenial_ns/Makefile [deleted file]
descriptor-packages/nsd/ubuntu_xenial_ns/src/icons/osm_2x.png [deleted file]
descriptor-packages/nsd/ubuntu_xenial_ns/src/ubuntu_xenial_nsd.yaml [deleted file]
descriptor-packages/tools/charm-generator/LICENSE [deleted file]
descriptor-packages/tools/charm-generator/README.md [deleted file]
descriptor-packages/tools/charm-generator/generator-runner.py [deleted file]
descriptor-packages/tools/charm-generator/generator/__init__.py [deleted file]
descriptor-packages/tools/charm-generator/generator/__main__.py [deleted file]
descriptor-packages/tools/charm-generator/generator/actions/__init__.py [deleted file]
descriptor-packages/tools/charm-generator/generator/actions/templates/action.j2 [deleted file]
descriptor-packages/tools/charm-generator/generator/actions/templates/actions.yaml.j2 [deleted file]
descriptor-packages/tools/charm-generator/generator/ansible-charm/__init__.py [deleted file]
descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/ansible_charm.py.j2 [deleted file]
descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/ansible_lib.py.j2 [deleted file]
descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/layer.yaml.j2 [deleted file]
descriptor-packages/tools/charm-generator/generator/generator.py [deleted file]
descriptor-packages/tools/charm-generator/generator/generators/__init__.py [deleted file]
descriptor-packages/tools/charm-generator/generator/generators/actions_generator.py [deleted file]
descriptor-packages/tools/charm-generator/generator/generators/ansible_generator.py [deleted file]
descriptor-packages/tools/charm-generator/generator/generators/metadata_generator.py [deleted file]
descriptor-packages/tools/charm-generator/generator/metadata/__init__.py [deleted file]
descriptor-packages/tools/charm-generator/generator/metadata/templates/metadata.yaml.j2 [deleted file]
descriptor-packages/tools/charm-generator/requirements.txt [deleted file]
descriptor-packages/tools/charm-generator/setup.py [deleted file]
descriptor-packages/tools/gen_nsd_pkg.sh [deleted file]
descriptor-packages/tools/gen_vnfd_pkg.sh [deleted file]
descriptor-packages/tools/generate_descriptor_pkg.sh [deleted file]
descriptor-packages/tools/launch_tests.sh [deleted file]
descriptor-packages/tools/upgrade_descriptor_version.py [deleted file]
descriptor-packages/tools/validate_descriptor.py [deleted file]
descriptor-packages/vnfd/Makefile [deleted file]
descriptor-packages/vnfd/VyOS_vnf/Makefile [deleted file]
descriptor-packages/vnfd/VyOS_vnf/src/VyOS__vnfd.yaml [deleted file]
descriptor-packages/vnfd/VyOS_vnf/src/icons/osm_2x.png [deleted file]
descriptor-packages/vnfd/cirros_noportsecurity_vnf/Makefile [deleted file]
descriptor-packages/vnfd/cirros_noportsecurity_vnf/src/README [deleted file]
descriptor-packages/vnfd/cirros_noportsecurity_vnf/src/cirros_noportsecurity_vnfd.yaml [deleted file]
descriptor-packages/vnfd/cirros_noportsecurity_vnf/src/icons/cirros-64.png [deleted file]
descriptor-packages/vnfd/cirros_vnf/Makefile [deleted file]
descriptor-packages/vnfd/cirros_vnf/src/cirros_vnfd.yaml [deleted file]
descriptor-packages/vnfd/cirros_vnf/src/icons/cirros-64.png [deleted file]
descriptor-packages/vnfd/dns_aws_vnfd/Makefile [deleted file]
descriptor-packages/vnfd/dns_aws_vnfd/src/cloud_init/cloud_init.cfg [deleted file]
descriptor-packages/vnfd/dns_aws_vnfd/src/dns_aws_vnfd.yaml [deleted file]
descriptor-packages/vnfd/dns_aws_vnfd/src/icons/dns.jpg [deleted file]
descriptor-packages/vnfd/hackfest_ansible_vnf/Makefile [deleted file]
descriptor-packages/vnfd/hackfest_ansible_vnf/src/ansiblecharm_vnfd.yaml [deleted file]
descriptor-packages/vnfd/hackfest_ansible_vnf/src/cloud_init/cloud-config.txt [deleted file]
descriptor-packages/vnfd/hackfest_ansible_vnf/src/icons/osm.png [deleted file]
descriptor-packages/vnfd/hackfest_basic_vnf/Makefile [deleted file]
descriptor-packages/vnfd/hackfest_basic_vnf/src/hackfest_basic_vnfd.yaml [deleted file]
descriptor-packages/vnfd/hackfest_basic_vnf/src/icons/osm.png [deleted file]
descriptor-packages/vnfd/hackfest_cloudinit_vnf/Makefile [deleted file]
descriptor-packages/vnfd/hackfest_cloudinit_vnf/src/cloud_init/cloud-config.txt [deleted file]
descriptor-packages/vnfd/hackfest_cloudinit_vnf/src/hackfest_cloudinit_vnfd.yaml [deleted file]
descriptor-packages/vnfd/hackfest_cloudinit_vnf/src/icons/osm.png [deleted file]
descriptor-packages/vnfd/hackfest_epasriov_vnf/Makefile [deleted file]
descriptor-packages/vnfd/hackfest_epasriov_vnf/src/cloud_init/cloud-config.txt [deleted file]
descriptor-packages/vnfd/hackfest_epasriov_vnf/src/hackfest_epasriov_vnfd.yaml [deleted file]
descriptor-packages/vnfd/hackfest_epasriov_vnf/src/icons/osm.png [deleted file]
descriptor-packages/vnfd/hackfest_multivdu_vnf/Makefile [deleted file]
descriptor-packages/vnfd/hackfest_multivdu_vnf/src/hackfest_multivdu_vnfd.yaml [deleted file]
descriptor-packages/vnfd/hackfest_multivdu_vnf/src/icons/osm.png [deleted file]
descriptor-packages/vnfd/hackfest_simplecharm_vnf/Makefile [deleted file]
descriptor-packages/vnfd/hackfest_simplecharm_vnf/src/cloud_init/cloud-config.txt [deleted file]
descriptor-packages/vnfd/hackfest_simplecharm_vnf/src/hackfest_simplecharm_vnfd.yaml [deleted file]
descriptor-packages/vnfd/hackfest_simplecharm_vnf/src/icons/osm.png [deleted file]
descriptor-packages/vnfd/ims_allin1_2p_vnf/Makefile [deleted file]
descriptor-packages/vnfd/ims_allin1_2p_vnf/src/IMS-ALLIN1__vnfd.yaml [deleted file]
descriptor-packages/vnfd/ims_allin1_2p_vnf/src/icons/metaswitch_2x.png [deleted file]
descriptor-packages/vnfd/ping_vnf/Makefile [deleted file]
descriptor-packages/vnfd/ping_vnf/src/cloud_init/ping_cloud_init.cfg [deleted file]
descriptor-packages/vnfd/ping_vnf/src/icons/rift_logo.png [deleted file]
descriptor-packages/vnfd/ping_vnf/src/ping_vnfd.yaml [deleted file]
descriptor-packages/vnfd/pong_vnf/Makefile [deleted file]
descriptor-packages/vnfd/pong_vnf/src/cloud_init/pong_cloud_init.cfg [deleted file]
descriptor-packages/vnfd/pong_vnf/src/icons/rift_logo.png [deleted file]
descriptor-packages/vnfd/pong_vnf/src/pong_vnfd.yaml [deleted file]
descriptor-packages/vnfd/ref11_vnf/Makefile [deleted file]
descriptor-packages/vnfd/ref11_vnf/src/ref11_vnfd.yaml [deleted file]
descriptor-packages/vnfd/ref12_vnf/Makefile [deleted file]
descriptor-packages/vnfd/ref12_vnf/src/ref12_vnfd.yaml [deleted file]
descriptor-packages/vnfd/ref21_vnf/Makefile [deleted file]
descriptor-packages/vnfd/ref21_vnf/src/ref21_vnfd.yaml [deleted file]
descriptor-packages/vnfd/ref22_vnf/Makefile [deleted file]
descriptor-packages/vnfd/ref22_vnf/src/ref22_vnfd.yaml [deleted file]
descriptor-packages/vnfd/simple_multi-charm_multi-vdu_vnf/Makefile [deleted file]
descriptor-packages/vnfd/simple_multi-charm_multi-vdu_vnf/src/simple_multi-charm_multi-vdu_vnfd.yaml [deleted file]
descriptor-packages/vnfd/ubuntu-cloudinit_vnf/Makefile [deleted file]
descriptor-packages/vnfd/ubuntu-cloudinit_vnf/src/cloud_init/cloud-init.cfg [deleted file]
descriptor-packages/vnfd/ubuntu-cloudinit_vnf/src/ubuntu-cloudinit_vnfd.yaml [deleted file]
descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/Makefile [deleted file]
descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/src/cloud_init/cloud_init.cfg [deleted file]
descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/src/icons/ubuntu-logo14.png [deleted file]
descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/src/keys/test4.pem [deleted file]
descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/src/keys/test4.pub [deleted file]
descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/src/ubuntu_1iface_cloudinit_newfile_vnfd.yaml [deleted file]
descriptor-packages/vnfd/ubuntu_cirros_multidisk_vnf/Makefile [deleted file]
descriptor-packages/vnfd/ubuntu_cirros_multidisk_vnf/src/cloud_init/cloud_init.cfg [deleted file]
descriptor-packages/vnfd/ubuntu_cirros_multidisk_vnf/src/ubuntu_cirros_multidisk_vnfd.yaml [deleted file]
descriptor-packages/vnfd/ubuntu_epa_virtio_vnf/Makefile [deleted file]
descriptor-packages/vnfd/ubuntu_epa_virtio_vnf/src/icons/ubuntu-logo14.png [deleted file]
descriptor-packages/vnfd/ubuntu_epa_virtio_vnf/src/ubuntu_epa_virtio_vnfd.yaml [deleted file]
descriptor-packages/vnfd/ubuntu_xenial_vnf/Makefile [deleted file]
descriptor-packages/vnfd/ubuntu_xenial_vnf/src/cloud_init/cloud_init.cfg [deleted file]
descriptor-packages/vnfd/ubuntu_xenial_vnf/src/icons/ubuntu-logo14.png [deleted file]
descriptor-packages/vnfd/ubuntu_xenial_vnf/src/ubuntu_xenial_vnfd.yaml [deleted file]
devops-stages/stage-build.sh
jenkins/ci-pipelines/ci_stage_4.groovy [deleted file]
robot-systest/README.md [deleted file]
robot-systest/environment.rc [deleted file]
systest/.gitignore [deleted file]
systest/Dockerfile [deleted file]
systest/Makefile [deleted file]
systest/conftest.py [deleted file]
systest/lib/__init__.py [deleted file]
systest/lib/openstack/__init__.py [deleted file]
systest/lib/openstack/fixtures.py [deleted file]
systest/lib/openstack/openstack.py [deleted file]
systest/lib/osm/__init__.py [deleted file]
systest/lib/osm/fixtures.py [deleted file]
systest/lib/osm/osm.py [deleted file]
systest/lib/vim/__init__.py [deleted file]
systest/lib/vim/fixtures.py [deleted file]
systest/lib/vim/vim.py [deleted file]
systest/lib/vmware/__init__.py [deleted file]
systest/lib/vmware/fixtures.py [deleted file]
systest/lib/vmware/vmware.py [deleted file]
systest/testcases/conftest.py [deleted file]
systest/testcases/smoke/test_smoke.py [deleted file]
systest/testcases/vim/test_vim.py [deleted file]
systest/testcases/vnfs/test_vnfs.py [deleted file]
test/certs.py [deleted file]
test/conftest.py [deleted file]
test/example/config.yaml [deleted file]
test/example/conftest.py [deleted file]
test/example/test_strings.py [deleted file]
test/test_cirros.py [deleted file]
test/test_pingpong_osm.py [deleted file]
tools/OVF_converter/Usage.txt [deleted file]
tools/OVF_converter/config/disk_controller.yaml [deleted file]
tools/OVF_converter/config/os_type.yaml [deleted file]
tools/OVF_converter/converter.py [deleted file]
tools/OVF_converter/install.sh [deleted file]
tools/OVF_converter/ovf_converter_cli.py [deleted file]
tools/OVF_converter/ovf_template/ide_cdrom.xml [deleted file]
tools/OVF_converter/ovf_template/template.xml [deleted file]
tools/OVF_converter/ovf_uploader_cli.py [deleted file]
tools/OVF_converter/readme.txt [deleted file]
tools/OVF_converter/uploader.py [deleted file]
tools/vmware_ovf_upload.py [deleted file]

diff --git a/charms/.gitignore b/charms/.gitignore
deleted file mode 100644 (file)
index 9f751ef..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-deps/
-builds/
diff --git a/charms/Dockerfile b/charms/Dockerfile
deleted file mode 100644 (file)
index 36248e2..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM ubuntu:16.04
-
-RUN  apt-get update && apt install -y charm-tools
-
diff --git a/charms/Makefile b/charms/Makefile
deleted file mode 100644 (file)
index ad8af98..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-#   Copyright 2016 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.
-#
-#
-
-BUILD_DIR = .
-
-CHARMS:= pingpong vyos-proxy netutils simple ansible-charm
-CHARM_SRC_DIR := layers
-CHARM_BUILD_DIR := $(BUILD_DIR)/builds
-
-CHARM_SRC_DIRS := $(addprefix $(CHARM_SRC_DIR)/, $(CHARMS))
-CHARM_BUILD_DIRS := $(addprefix $(CHARM_BUILD_DIR)/, $(CHARMS))
-CHARM_DOCKER_TAG := charm-tools
-DOCKER_BUILD     ?=
-
-all: $(CHARM_BUILD_DIRS)
-
-clean:
-       -@ $(RM) -rf $(CHARM_BUILD_DIR)
-
-
-ifdef DOCKER_BUILD
-$(CHARM_BUILD_DIR)/%: $(CHARM_SRC_DIR)/%
-       docker build -t $(CHARM_DOCKER_TAG) .
-       docker run -u $$(id -u):$$(id -g) -v$$(pwd):$$(pwd) -w$$(pwd) $(CHARM_DOCKER_TAG) charm-build -o $(BUILD_DIR) $<
-else
-$(CHARM_BUILD_DIR)/%: $(CHARM_SRC_DIR)/%
-       charm build -o $(BUILD_DIR) $<
-endif
diff --git a/charms/README.md b/charms/README.md
deleted file mode 100644 (file)
index 6eaf43f..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-# Juju Charm usage and development
-
-This document is intended to provide a brief overview of the components included
-in this repository as well as recommendations for how to develop, build, and
-publish charms.
-
-Please read the [develper geting started guide](https://jujucharms.com/docs/2.0/developer-getting-started) before proceeding.
-
-## Directory structure
-
-```
-.
-├── builds
-│   └── vpe-router
-├── interfaces
-├── layers
-│   └── vpe-router
-└── module-blueprints
-```
-
-The source code of a charm is referred to as a "layer". This layer is compiled
-into a charm and placed in the `builds/` directory. Interfaces, currently
-unused in this context, extend relationships between applications.
-
-## Development workflow
-### Prepare your build environment
-```
-# Source the environment variables JUJU_REPOSITORY, INTERFACE_PATH, and
-# LAYER_PATH, which are needed to build a charm. You could also place these
-# in your $HOME/.bashrc
-$ source juju-env.sh
-```
-#### Install the `charm` command, either via apt:
-
-```
-$ sudo apt install charm
-```
-
-or with [snap](http://snapcraft.io/)
-
-```
-$ snap install charm --edge
-```
-
-To build a charm, simply run `charm build` inside of a layer.
-```
-$ cd $LAYER_PATH/vpe-router
-$ charm build
-$ charm deploy $JUJU_REPOSITORY/builds/vpe-router
-```
-
-## Publishing to jujucharms.com
-
-Publishing to the Juju Charm store requires a launchpad login. With that, login
-to [jujucharms.com](http://www.jujucharms.com/).
-
-Next, you'll use the charm command to publish your compiled charm. This will
-put the charm into the store where it can be used by anyone with access.
-
-For example, if I wanted to publish the latest version of the vpe-router charm:
-
-# Step 1: Upload the charm to the "unpublished" channel
-```
-$ cd $JUJU_REPOSITORY/builds
-$ charm push vpe-router/ cs:~aisrael/vpe-router
-url: cs:~aisrael/vpe-router-0
-channel: unpublished
-```
-
-# There are four channels to release a charm: edge, beta, candidate, and stable
-```
-$ charm release cs:~aisrael/vpe-router-0 --channel=edge
-url: cs:~aisrael/vpe-router-0
-channel: edge
-```
-The charm can then be deployed directly from the charm store:
-```
-$ juju deploy cs:~aisrael/vpe-router --channel=edge
-```
diff --git a/charms/juju-env.sh b/charms/juju-env.sh
deleted file mode 100644 (file)
index 61ef85e..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/env bash
-
-##
-# Copyright 2019 ETSI
-#
-# All Rights Reserved.
-#
-# 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.
-##
-
-
-# Set the Juju env variables for building a layer
-export JUJU_REPOSITORY=`pwd`
-export INTERFACE_PATH=$JUJU_REPOSITORY/interfaces
-export LAYER_PATH=$JUJU_REPOSITORY/layers
diff --git a/charms/layers/ansible-charm/LICENSE b/charms/layers/ansible-charm/LICENSE
deleted file mode 100644 (file)
index 830e559..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright 2017 Borja Nogales <bdorado@pa.uc3m.es>, Iván Vidal <ividal@it.uc3m.es>
-
-   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.
diff --git a/charms/layers/ansible-charm/README.md b/charms/layers/ansible-charm/README.md
deleted file mode 100755 (executable)
index 0529137..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-# Overview
-This base charm layer provides a template to create a *proxy charm*, which enables to configure a Virtual Network Function (VNF) instantiated trough Open Source MANO (OSM) using an Ansible playbook. The files included in this charm layer are free to use under the terms provided by the license information specified below.
-
-
-# Usage
-The base charm layer includes the following base layers: [vnfproxy](https://github.com/AdamIsrael/vnfproxy) and [ansible-base](https://github.com/chuckbutler/ansible-base). It provides a template ready for customization, which enables to create a *proxy charm* that supports the execution of an Ansible playbook to configure a VNF. For more information on *proxy charms*, the reader is referred to the [OSM wiki](https://osm.etsi.org/wikipub/index.php/Creating_your_own_VNF_charm_(Release_TWO)).
-
-Step by step instructions to use the base charm layer:
-
-1. Include the playbook under the *playbook* folder of the base charm layer; name it as *playbook.yaml*. Alternatively, you can open the file *playbook.yaml* alreay existing in this directory and paste the playbook in this file.
-
-2. The base charm layer already implements a Juju action, _**ansible-playbook**_, which runs the playbook *playbook/playbook.yaml*. You can optionally define additional actions, if needed by your VNF.
-
-3. Build the charm, via the *charm build* command.
-
-4. Update the VNF descriptor (VNFD) to use the charm: a) specify the name of the Juju charm in in the VNF configuration; b) Include the action “ansible-playbook” with no arguments as a service primitive and as an initial configuration primitive.
-
-5. Include the compiled charm in the VNF package.
-
-More comprehensive and complementary information on building *Proxy charms* can be found in the [OSM wiki](https://osm.etsi.org/wikipub/index.php/Creating_your_own_VNF_charm_(Release_TWO)) and in the documentation of the [vnfproxy layer](https://github.com/AdamIsrael/vnfproxy).
-
-# Upstream Project Name
-This work has been supported by the European H2020 5GinFIRE project (grant agreement 732497).
diff --git a/charms/layers/ansible-charm/actions.yaml b/charms/layers/ansible-charm/actions.yaml
deleted file mode 100755 (executable)
index 8807303..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# OSM devops/charms - Ansible charm inside OSM devops
-#
-# Copyright 2017-2018 Universidad Carlos III de Madrid
-#
-# 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.
-#
-
-ansible-playbook:
-    description: "Configure needed ansible files and run the playbook"
diff --git a/charms/layers/ansible-charm/actions/ansible-playbook b/charms/layers/ansible-charm/actions/ansible-playbook
deleted file mode 100755 (executable)
index 67f581f..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env python3
-#
-# OSM devops/charms - Ansible charm inside OSM devops
-#
-# Copyright 2017-2018 Universidad Carlos III de Madrid
-#
-# 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.
-#
-
-import sys
-sys.path.append('lib')
-
-from charms.reactive import main
-from charms.reactive import set_state
-from charmhelpers.core.hookenv import action_fail, action_name
-
-"""
-`set_state` only works here because it's flushed to disk inside the `main()`
-loop. remove_state will need to be called inside the action method.
-"""
-set_state('actions.{}'.format(action_name()))
-
-try:
-    main()
-except Exception as e:
-    action_fail(repr(e))
diff --git a/charms/layers/ansible-charm/icon.svg b/charms/layers/ansible-charm/icon.svg
deleted file mode 100755 (executable)
index e092eef..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
-<!-- Created with Inkscape (http://www.inkscape.org/) -->\r
-\r
-<svg\r
-   xmlns:dc="http://purl.org/dc/elements/1.1/"\r
-   xmlns:cc="http://creativecommons.org/ns#"\r
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\r
-   xmlns:svg="http://www.w3.org/2000/svg"\r
-   xmlns="http://www.w3.org/2000/svg"\r
-   xmlns:xlink="http://www.w3.org/1999/xlink"\r
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"\r
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"\r
-   width="96"\r
-   height="96"\r
-   id="svg6517"\r
-   version="1.1"\r
-   inkscape:version="0.48+devel r12274"\r
-   sodipodi:docname="Juju_charm_icon_template.svg">\r
-  <defs\r
-     id="defs6519">\r
-    <linearGradient\r
-       inkscape:collect="always"\r
-       xlink:href="#Background"\r
-       id="linearGradient6461"\r
-       gradientUnits="userSpaceOnUse"\r
-       x1="0"\r
-       y1="970.29498"\r
-       x2="144"\r
-       y2="970.29498"\r
-       gradientTransform="matrix(0,-0.66666669,0.6660448,0,-866.25992,731.29077)" />\r
-    <linearGradient\r
-       id="Background">\r
-      <stop\r
-         id="stop4178"\r
-         offset="0"\r
-         style="stop-color:#b8b8b8;stop-opacity:1" />\r
-      <stop\r
-         id="stop4180"\r
-         offset="1"\r
-         style="stop-color:#c9c9c9;stop-opacity:1" />\r
-    </linearGradient>\r
-    <filter\r
-       style="color-interpolation-filters:sRGB;"\r
-       inkscape:label="Inner Shadow"\r
-       id="filter1121">\r
-      <feFlood\r
-         flood-opacity="0.59999999999999998"\r
-         flood-color="rgb(0,0,0)"\r
-         result="flood"\r
-         id="feFlood1123" />\r
-      <feComposite\r
-         in="flood"\r
-         in2="SourceGraphic"\r
-         operator="out"\r
-         result="composite1"\r
-         id="feComposite1125" />\r
-      <feGaussianBlur\r
-         in="composite1"\r
-         stdDeviation="1"\r
-         result="blur"\r
-         id="feGaussianBlur1127" />\r
-      <feOffset\r
-         dx="0"\r
-         dy="2"\r
-         result="offset"\r
-         id="feOffset1129" />\r
-      <feComposite\r
-         in="offset"\r
-         in2="SourceGraphic"\r
-         operator="atop"\r
-         result="composite2"\r
-         id="feComposite1131" />\r
-    </filter>\r
-    <filter\r
-       style="color-interpolation-filters:sRGB;"\r
-       inkscape:label="Drop Shadow"\r
-       id="filter950">\r
-      <feFlood\r
-         flood-opacity="0.25"\r
-         flood-color="rgb(0,0,0)"\r
-         result="flood"\r
-         id="feFlood952" />\r
-      <feComposite\r
-         in="flood"\r
-         in2="SourceGraphic"\r
-         operator="in"\r
-         result="composite1"\r
-         id="feComposite954" />\r
-      <feGaussianBlur\r
-         in="composite1"\r
-         stdDeviation="1"\r
-         result="blur"\r
-         id="feGaussianBlur956" />\r
-      <feOffset\r
-         dx="0"\r
-         dy="1"\r
-         result="offset"\r
-         id="feOffset958" />\r
-      <feComposite\r
-         in="SourceGraphic"\r
-         in2="offset"\r
-         operator="over"\r
-         result="composite2"\r
-         id="feComposite960" />\r
-    </filter>\r
-    <clipPath\r
-       clipPathUnits="userSpaceOnUse"\r
-       id="clipPath873">\r
-      <g\r
-         transform="matrix(0,-0.66666667,0.66604479,0,-258.25992,677.00001)"\r
-         id="g875"\r
-         inkscape:label="Layer 1"\r
-         style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline">\r
-        <path\r
-           style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline"\r
-           d="m 46.702703,898.22775 50.594594,0 C 138.16216,898.22775 144,904.06497 144,944.92583 l 0,50.73846 c 0,40.86071 -5.83784,46.69791 -46.702703,46.69791 l -50.594594,0 C 5.8378378,1042.3622 0,1036.525 0,995.66429 L 0,944.92583 C 0,904.06497 5.8378378,898.22775 46.702703,898.22775 Z"\r
-           id="path877"\r
-           inkscape:connector-curvature="0"\r
-           sodipodi:nodetypes="sssssssss" />\r
-      </g>\r
-    </clipPath>\r
-    <filter\r
-       inkscape:collect="always"\r
-       id="filter891"\r
-       inkscape:label="Badge Shadow">\r
-      <feGaussianBlur\r
-         inkscape:collect="always"\r
-         stdDeviation="0.71999962"\r
-         id="feGaussianBlur893" />\r
-    </filter>\r
-  </defs>\r
-  <sodipodi:namedview\r
-     id="base"\r
-     pagecolor="#ffffff"\r
-     bordercolor="#666666"\r
-     borderopacity="1.0"\r
-     inkscape:pageopacity="0.0"\r
-     inkscape:pageshadow="2"\r
-     inkscape:zoom="4.0745362"\r
-     inkscape:cx="18.514671"\r
-     inkscape:cy="49.018169"\r
-     inkscape:document-units="px"\r
-     inkscape:current-layer="layer1"\r
-     showgrid="true"\r
-     fit-margin-top="0"\r
-     fit-margin-left="0"\r
-     fit-margin-right="0"\r
-     fit-margin-bottom="0"\r
-     inkscape:window-width="1920"\r
-     inkscape:window-height="1029"\r
-     inkscape:window-x="0"\r
-     inkscape:window-y="24"\r
-     inkscape:window-maximized="1"\r
-     showborder="true"\r
-     showguides="true"\r
-     inkscape:guide-bbox="true"\r
-     inkscape:showpageshadow="false">\r
-    <inkscape:grid\r
-       type="xygrid"\r
-       id="grid821" />\r
-    <sodipodi:guide\r
-       orientation="1,0"\r
-       position="16,48"\r
-       id="guide823" />\r
-    <sodipodi:guide\r
-       orientation="0,1"\r
-       position="64,80"\r
-       id="guide825" />\r
-    <sodipodi:guide\r
-       orientation="1,0"\r
-       position="80,40"\r
-       id="guide827" />\r
-    <sodipodi:guide\r
-       orientation="0,1"\r
-       position="64,16"\r
-       id="guide829" />\r
-  </sodipodi:namedview>\r
-  <metadata\r
-     id="metadata6522">\r
-    <rdf:RDF>\r
-      <cc:Work\r
-         rdf:about="">\r
-        <dc:format>image/svg+xml</dc:format>\r
-        <dc:type\r
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />\r
-        <dc:title></dc:title>\r
-      </cc:Work>\r
-    </rdf:RDF>\r
-  </metadata>\r
-  <g\r
-     inkscape:label="BACKGROUND"\r
-     inkscape:groupmode="layer"\r
-     id="layer1"\r
-     transform="translate(268,-635.29076)"\r
-     style="display:inline">\r
-    <path\r
-       style="fill:url(#linearGradient6461);fill-opacity:1;stroke:none;display:inline;filter:url(#filter1121)"\r
-       d="m -268,700.15563 0,-33.72973 c 0,-27.24324 3.88785,-31.13513 31.10302,-31.13513 l 33.79408,0 c 27.21507,0 31.1029,3.89189 31.1029,31.13513 l 0,33.72973 c 0,27.24325 -3.88783,31.13514 -31.1029,31.13514 l -33.79408,0 C -264.11215,731.29077 -268,727.39888 -268,700.15563 Z"\r
-       id="path6455"\r
-       inkscape:connector-curvature="0"\r
-       sodipodi:nodetypes="sssssssss" />\r
-  </g>\r
-  <g\r
-     inkscape:groupmode="layer"\r
-     id="layer3"\r
-     inkscape:label="PLACE YOUR PICTOGRAM HERE"\r
-     style="display:inline" />\r
-  <g\r
-     inkscape:groupmode="layer"\r
-     id="layer2"\r
-     inkscape:label="BADGE"\r
-     style="display:none"\r
-     sodipodi:insensitive="true">\r
-    <g\r
-       style="display:inline"\r
-       transform="translate(-340.00001,-581)"\r
-       id="g4394"\r
-       clip-path="none">\r
-      <g\r
-         id="g855">\r
-        <g\r
-           inkscape:groupmode="maskhelper"\r
-           id="g870"\r
-           clip-path="url(#clipPath873)"\r
-           style="opacity:0.6;filter:url(#filter891)">\r
-          <path\r
-             transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-237.54282)"\r
-             d="m 264,552.36218 a 12,12 0 1 1 -24,0 A 12,12 0 1 1 264,552.36218 Z"\r
-             sodipodi:ry="12"\r
-             sodipodi:rx="12"\r
-             sodipodi:cy="552.36218"\r
-             sodipodi:cx="252"\r
-             id="path844"\r
-             style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             sodipodi:type="arc" />\r
-        </g>\r
-        <g\r
-           id="g862">\r
-          <path\r
-             sodipodi:type="arc"\r
-             style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             id="path4398"\r
-             sodipodi:cx="252"\r
-             sodipodi:cy="552.36218"\r
-             sodipodi:rx="12"\r
-             sodipodi:ry="12"\r
-             d="m 264,552.36218 a 12,12 0 1 1 -24,0 A 12,12 0 1 1 264,552.36218 Z"\r
-             transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-238.54282)" />\r
-          <path\r
-             transform="matrix(1.25,0,0,1.25,33,-100.45273)"\r
-             d="m 264,552.36218 a 12,12 0 1 1 -24,0 A 12,12 0 1 1 264,552.36218 Z"\r
-             sodipodi:ry="12"\r
-             sodipodi:rx="12"\r
-             sodipodi:cy="552.36218"\r
-             sodipodi:cx="252"\r
-             id="path4400"\r
-             style="color:#000000;fill:#dd4814;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             sodipodi:type="arc" />\r
-          <path\r
-             sodipodi:type="star"\r
-             style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             id="path4459"\r
-             sodipodi:sides="5"\r
-             sodipodi:cx="666.19574"\r
-             sodipodi:cy="589.50385"\r
-             sodipodi:r1="7.2431178"\r
-             sodipodi:r2="4.3458705"\r
-             sodipodi:arg1="1.0471976"\r
-             sodipodi:arg2="1.6755161"\r
-             inkscape:flatsided="false"\r
-             inkscape:rounded="0.1"\r
-             inkscape:randomized="0"\r
-             d="m 669.8173,595.77657 c -0.39132,0.22593 -3.62645,-1.90343 -4.07583,-1.95066 -0.44938,-0.0472 -4.05653,1.36297 -4.39232,1.06062 -0.3358,-0.30235 0.68963,-4.03715 0.59569,-4.47913 -0.0939,-0.44198 -2.5498,-3.43681 -2.36602,-3.8496 0.18379,-0.41279 4.05267,-0.59166 4.44398,-0.81759 0.39132,-0.22593 2.48067,-3.48704 2.93005,-3.4398 0.44938,0.0472 1.81505,3.67147 2.15084,3.97382 0.3358,0.30236 4.08294,1.2817 4.17689,1.72369 0.0939,0.44198 -2.9309,2.86076 -3.11469,3.27355 C 669.9821,591.68426 670.20862,595.55064 669.8173,595.77657 Z"\r
-             transform="matrix(1.511423,-0.16366377,0.16366377,1.511423,-755.37346,-191.93651)" />\r
-        </g>\r
-      </g>\r
-    </g>\r
-  </g>\r
-</svg>\r
diff --git a/charms/layers/ansible-charm/layer.yaml b/charms/layers/ansible-charm/layer.yaml
deleted file mode 100755 (executable)
index 788e67c..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# OSM devops/charms - Ansible charm inside OSM devops
-#
-# Copyright 2017-2018 Universidad Carlos III de Madrid
-#
-# 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.
-#
-
-includes: ['layer:ansible-base', 'layer:vnfproxy']
diff --git a/charms/layers/ansible-charm/metadata.yaml b/charms/layers/ansible-charm/metadata.yaml
deleted file mode 100755 (executable)
index 2837b35..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# OSM devops/charms - Ansible charm inside OSM devops
-#
-# Copyright 2017-2018 Universidad Carlos III de Madrid
-#
-# 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.
-#
-
-name: ansible-charm
-summary: Base charm layer to configure a VNF using ansible.
-maintainer: borja <bdorado@pa.uc3m.es>
-description: |
-  Base charm layer to configure a VNF using ansible, through the Juju framework of Open Source MANO (OSM).
-series:
-  - trusty
-  - xenial
-tags:
-  - osm
-  - vnf
-subordinate: false
diff --git a/charms/layers/ansible-charm/playbook/playbook.yaml b/charms/layers/ansible-charm/playbook/playbook.yaml
deleted file mode 100755 (executable)
index 67a3493..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# OSM devops/charms - Ansible charm inside OSM devops
-#
-# Copyright 2017-2018 Universidad Carlos III de Madrid
-#
-# 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.
-#
-# Place here the ansible playbook to be run
-
----
-- hosts: test
-  tasks:
-      - name: Create file
-        file: path=/tmp/playbook_created_file state=touch
diff --git a/charms/layers/ansible-charm/reactive/ansible_charm.py b/charms/layers/ansible-charm/reactive/ansible_charm.py
deleted file mode 100755 (executable)
index 61425f3..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-# OSM devops/charms - Ansible charm inside OSM devops
-#
-# Copyright 2017-2018 Universidad Carlos III de Madrid
-# Copyright 2018 Altran
-#
-# 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.
-
-from charmhelpers.core.hookenv import (
-    action_get,
-    action_fail,
-    action_set,
-    config,
-    status_set,
-)
-
-from charms.reactive import (
-    remove_state as remove_flag,
-    set_state as set_flag,
-    when,
-)
-import charms.sshproxy
-
-from subprocess import (
-    Popen,
-    CalledProcessError,
-    PIPE,
-)
-
-#from charms.ansible import apply_playbook
-import os, fnmatch
-import subprocess
-
-cfg = config()
-
-
-# Sets the status of the charm to show in OSM: configured
-@when('config.changed')
-def config_changed():
-    set_flag('ansible-charm.configured')
-    status_set('active', 'ready!')
-    return
-
-
-# Edits ansible config files and executes ansible-playbook
-@when('ansible-charm.configured')
-@when('actions.ansible-playbook')
-def ansible_playbook():
-    try:
-        # Retrieve the ssh parameter
-        cfg = config()
-        # edit ansible hosts file with the VNF parameters
-        h = open("/etc/ansible/hosts", "wt")
-        h.write("[test]\n")
-        h1 = "{} ansible_connection=ssh ansible_ssh_user={} ansible_ssh_pass={} ansible_python_interpreter=/usr/bin/python3\n".format(cfg['ssh-hostname'],cfg['ssh-username'],cfg['ssh-password'])
-        h.write(h1)
-        h.close()
-        # edit ansible config to enable ssh connection with th VNF
-        c = open("/etc/ansible/ansible.cfg", "wt")
-        c.write("[defaults]\n")
-        c.write("host_key_checking = False\n")
-        c.close()
-        # execute the ansible playbook
-        path = find('playbook.yaml','/var/lib/juju/agents/')
-        call = ['ansible-playbook', path]
-        subprocess.check_call(call)
-    except Exception as e:
-        action_fail('command failed: {}, errors: {}'.format(e, e.output))
-        remove_flag('actions.ansible-playbook')
-        return
-    finally:
-        remove_flag('actions.ansible-playbook')
-
-
-# Function to find the playbook path
-def find(pattern, path):
-    result = ''
-    for root, dirs, files in os.walk(path):
-        for name in files:
-            if fnmatch.fnmatch(name, pattern):
-                result = os.path.join(root, name)
-    return result
diff --git a/charms/layers/ansible-charm/tests/00-setup b/charms/layers/ansible-charm/tests/00-setup
deleted file mode 100755 (executable)
index 8c0ff38..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-#
-# OSM devops/charms - Ansible charm inside OSM devops
-#
-# Copyright 2017-2018 Universidad Carlos III de Madrid
-#
-# 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.
-#
-
-sudo add-apt-repository ppa:juju/stable -y
-sudo apt-get update
-sudo apt-get install amulet python-requests -y
diff --git a/charms/layers/ansible-charm/tests/10-deploy b/charms/layers/ansible-charm/tests/10-deploy
deleted file mode 100755 (executable)
index 35e0918..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/python3
-#
-# OSM devops/charms - Ansible charm inside OSM devops
-#
-# Copyright 2017-2018 Universidad Carlos III de Madrid
-#
-# 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.
-#
-
-import amulet
-import requests
-import unittest
-
-
-class TestCharm(unittest.TestCase):
-    def setUp(self):
-        self.d = amulet.Deployment()
-
-        self.d.add('ansible-charm')
-        self.d.expose('ansible-charm')
-
-        self.d.setup(timeout=900)
-        self.d.sentry.wait()
-
-        self.unit = self.d.sentry['ansible-charm'][0]
-
-    def test_service(self):
-        # test we can access over http
-        page = requests.get('http://{}'.format(self.unit.info['public-address']))
-        self.assertEqual(page.status_code, 200)
-        # Now you can use self.d.sentry[SERVICE][UNIT] to address each of the units and perform
-        # more in-depth steps. Each self.d.sentry[SERVICE][UNIT] has the following methods:
-        # - .info - An array of the information of that unit from Juju
-        # - .file(PATH) - Get the details of a file on that unit
-        # - .file_contents(PATH) - Get plain text output of PATH file from that unit
-        # - .directory(PATH) - Get details of directory
-        # - .directory_contents(PATH) - List files and folders in PATH on that unit
-        # - .relation(relation, service:rel) - Get relation data from return service
-
-
-if __name__ == '__main__':
-    unittest.main()
diff --git a/charms/layers/netutils/LICENSE b/charms/layers/netutils/LICENSE
deleted file mode 100644 (file)
index d645695..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   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.
diff --git a/charms/layers/netutils/README.md b/charms/layers/netutils/README.md
deleted file mode 100644 (file)
index e8258c0..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-# Overview
-
-This charm provides basic network utilities that can be run from a Juju-deployed
-machine.
-
-# Usage
-
-To deploy the charm:
-```bash
-$ juju deploy cs:~nfv/netutils
-```
-
-To run an action:
-```bash
-$ juju run-action netutils/0 ping destination=google.com
-$ juju run-action netutils/0 traceroute destination=google.com
-```
-
-To fetch the output of an action:
-```bash
-$ juju show-action-output 026b3d4c-0bb2-4818-8d24-9855936cdcdf
-results:
-  output: |
-    traceroute to google.com (216.58.198.78), 30 hops max, 60 byte packets
-     1  ec2-79-125-0-86.eu-west-1.compute.amazonaws.com (79.125.0.86)  1.431 ms  1.410 ms  1.380 ms
-     2  100.64.2.73 (100.64.2.73)  1.647 ms 100.64.2.103 (100.64.2.103)  1.247 ms 100.64.2.121 (100.64.2.121)  1.224 ms
-     3  100.64.0.232 (100.64.0.232)  1.296 ms 100.64.0.184 (100.64.0.184)  1.515 ms 100.64.0.234 (100.64.0.234)  1.079 ms
-     4  100.64.16.37 (100.64.16.37)  0.377 ms 100.64.16.49 (100.64.16.49)  0.347 ms 100.64.16.1 (100.64.16.1)  0.340 ms
-     5  176.32.107.12 (176.32.107.12)  0.739 ms 176.32.107.4 (176.32.107.4)  0.875 ms  0.748 ms
-     6  178.236.0.111 (178.236.0.111)  0.650 ms  0.641 ms  0.645 ms
-     7  72.14.215.85 (72.14.215.85)  0.544 ms  1.508 ms  1.498 ms
-     8  209.85.252.198 (209.85.252.198)  0.680 ms  0.659 ms  0.618 ms
-     9  64.233.174.27 (64.233.174.27)  0.690 ms  0.682 ms  0.634 ms
-    10  dub08s02-in-f14.1e100.net (216.58.198.78)  0.568 ms  0.560 ms  0.595 ms
-status: completed
-timing:
-  completed: 2016-06-29 14:50:04 +0000 UTC
-  enqueued: 2016-06-29 14:50:03 +0000 UTC
-  started: 2016-06-29 14:50:03 +0000 UTC
-```
-## iperf3
-
-Because iperf3 has a client and server component, the netutils charm can operate
-as both. Setting the iperf3 configuration value to True will start iperf3 in
-server mode, running as a daemon.
-```
-$ juju deploy cs:~nfv/netutils client
-$ juju deploy cs:~nfv/netutils server iperf3=True
-$ juju run-action client/0 iperf host=<ip of server> [...]
-```
-
-## Scale out Usage
-
-With great scalability comes great power, but please don't use this to DDoS anyone without their permission.
-
-## Known Limitations and Issues
-
-# Contact Information
-
-## Contributing to the charm
-
-  - The compiled charm can be found [here](https://www.jujucharms.com/u/nfv/netutils).
-  - [layer/netutils](https://osm.etsi.org/gitweb/?p=osm/juju-charms.git;a=summary/) contains the source of the layer.
-  - Please add any bugs or feature requests to the [bugzilla](https://osm.etsi.org/bugzilla/buglist.cgi?component=Juju-charms&list_id=426&product=OSM&resolution=---).
diff --git a/charms/layers/netutils/actions.yaml b/charms/layers/netutils/actions.yaml
deleted file mode 100644 (file)
index f4f7884..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-nmap:
-  description: "nmap a thing!"
-  params:
-    destination:
-      description: "destination to scan"
-      type: string
-  required:
-    - destination
-ping:
-  description: 'ping a thing!'
-  params:
-    count:
-      description: "Stop after sending count ECHO_REQUEST packets"
-      type: integer
-      default: 30
-    destination:
-      description: "destination of ping request"
-      type: string
-  required:
-    - destination
-traceroute:
-  description: 'trace a thing!'
-  params:
-    hops:
-      description: "Stop tracing after count hops"
-      type: integer
-      default: 30
-    destination:
-      description: "destination of traceroute request"
-      type: string
-  required:
-    - destination
-dig:
-  description: "DNS lookup"
-  params:
-    nsserver:
-      description: "The nameserver to lookup against."
-      type: string
-    host:
-      description: "The host to lookup"
-      type: string
-    type:
-      description: "The DNS record type to lookup"
-      type: string
-  required:
-    - host
-iperf:
-    description: ""
-    params:
-      host:
-        description: ""
-        type: string
-      port:
-        description: ""
-        type: integer
-        default: 5201
-      format:
-        description: ""
-        type: string
-      interval:
-        description: ""
-        type: string
-      affinity:
-        description: ""
-        type: string
-      udp:
-        description: "Use UDP rather than TCP"
-        type: boolean
-        default: False
-      bandwidth:
-        description: "Set the target bandwidth to n bits/sec (default 1Mbit/sec for UDP, unlimited for TCP)"
-        type: integer
-        default: 1
-      time:
-        description: "Time, in seconds, to transmit for."
-        type: integer
-        default: 10
-      blockcount:
-        description: "The number of blocks to transmit"
-        type: integer
-      length:
-        description: "The length of buffer to read or write (default 128KB for TCP, 8KB for UDP)"
-        type: integer
-      parallel:
-        description: "The number of parallel client streams to run"
-        type: integer
-      reverse:
-        description: "Run in reverse mode (server sends, client receives)."
-        type: boolean
-        default: false
-      window:
-        description: "Window size/socket buffer size."
-        type: integer
-      bind:
-        description: "Bind to a specific interface or multicast address"
-        type: string
-      mss:
-        description: "Set the TCP maximum segment size (MTU - 40 bytes)"
-        type: integer
-      no-delay:
-        description: "Set the TCP no delay, disabling Nagle's algorithm."
-        type: boolean
-        default: false
-      ipv4:
-        description: "Only use IPv4"
-        type: boolean
-        default: false
-      ipv6:
-        description: "Only use IPv6"
-        type: boolean
-        default: false
-      tos:
-        description: "Set the IP 'type of service'"
-        type: integer
-      flowlabel:
-        description: "Set the IPv6 flow label (linux-only)"
-        type: string
-      zerocopy:
-        description: "Use a 'zero copy' method of sending data, such as sendfile(s), instead of the usual write(2)."
-        type: boolean
-        default: false
-      omit:
-        description: "Omit the first n seconds of the test, to skip past the TCP slow-start period."
-        type: integer
-      title:
-        description: "Prefix every output line with this string."
-        type: string
-      congestion:
-        description: "Set the linux congestion control algorithm."
-        type: string
-
-    required:
-      - host
diff --git a/charms/layers/netutils/actions/dig b/charms/layers/netutils/actions/dig
deleted file mode 100755 (executable)
index 736a406..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env python3
-import sys
-sys.path.append('lib')
-
-from charms.reactive import main
-from charms.reactive import set_state
-from charmhelpers.core.hookenv import action_fail
-
-"""
-`set_state` only works here because it's flushed to disk inside the `main()`
-loop. remove_state will need to be called inside the action method.
-"""
-set_state('actions.dig')
-
-try:
-    main()
-except Exception as e:
-    action_fail(repr(e))
diff --git a/charms/layers/netutils/actions/iperf b/charms/layers/netutils/actions/iperf
deleted file mode 100755 (executable)
index 750028e..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env python3
-import sys
-sys.path.append('lib')
-
-from charms.reactive import main
-from charms.reactive import set_state
-from charmhelpers.core.hookenv import action_fail
-
-"""
-`set_state` only works here because it's flushed to disk inside the `main()`
-loop. remove_state will need to be called inside the action method.
-"""
-set_state('actions.iperf3')
-
-try:
-    main()
-except Exception as e:
-    action_fail(repr(e))
diff --git a/charms/layers/netutils/actions/nmap b/charms/layers/netutils/actions/nmap
deleted file mode 100755 (executable)
index ede4f5b..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env python3
-import sys
-sys.path.append('lib')
-
-from charms.reactive import main
-from charms.reactive import set_state
-from charmhelpers.core.hookenv import action_fail
-
-"""
-`set_state` only works here because it's flushed to disk inside the `main()`
-loop. remove_state will need to be called inside the action method.
-"""
-set_state('actions.nmap')
-
-try:
-    main()
-except Exception as e:
-    action_fail(repr(e))
diff --git a/charms/layers/netutils/actions/ping b/charms/layers/netutils/actions/ping
deleted file mode 100755 (executable)
index 9850fe7..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env python3
-import sys
-sys.path.append('lib')
-
-from charms.reactive import main
-from charms.reactive import set_state
-from charmhelpers.core.hookenv import action_fail
-
-"""
-`set_state` only works here because it's flushed to disk inside the `main()`
-loop. remove_state will need to be called inside the action method.
-"""
-set_state('actions.ping')
-
-try:
-    main()
-except Exception as e:
-    action_fail(repr(e))
diff --git a/charms/layers/netutils/actions/traceroute b/charms/layers/netutils/actions/traceroute
deleted file mode 100755 (executable)
index 229ed32..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env python3
-import sys
-sys.path.append('lib')
-
-from charms.reactive import main
-from charms.reactive import set_state
-from charmhelpers.core.hookenv import action_fail
-
-"""
-`set_state` only works here because it's flushed to disk inside the `main()`
-loop. remove_state will need to be called inside the action method.
-"""
-set_state('actions.traceroute')
-
-try:
-    main()
-except Exception as e:
-    action_fail(repr(e))
diff --git a/charms/layers/netutils/config.yaml b/charms/layers/netutils/config.yaml
deleted file mode 100644 (file)
index 6101063..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-options:
-    iperf3:
-        type: boolean
-        default: false
-        description: "Enabling this option will start iperf3 in server mode."
diff --git a/charms/layers/netutils/icon.svg b/charms/layers/netutils/icon.svg
deleted file mode 100644 (file)
index e092eef..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
-<!-- Created with Inkscape (http://www.inkscape.org/) -->\r
-\r
-<svg\r
-   xmlns:dc="http://purl.org/dc/elements/1.1/"\r
-   xmlns:cc="http://creativecommons.org/ns#"\r
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\r
-   xmlns:svg="http://www.w3.org/2000/svg"\r
-   xmlns="http://www.w3.org/2000/svg"\r
-   xmlns:xlink="http://www.w3.org/1999/xlink"\r
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"\r
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"\r
-   width="96"\r
-   height="96"\r
-   id="svg6517"\r
-   version="1.1"\r
-   inkscape:version="0.48+devel r12274"\r
-   sodipodi:docname="Juju_charm_icon_template.svg">\r
-  <defs\r
-     id="defs6519">\r
-    <linearGradient\r
-       inkscape:collect="always"\r
-       xlink:href="#Background"\r
-       id="linearGradient6461"\r
-       gradientUnits="userSpaceOnUse"\r
-       x1="0"\r
-       y1="970.29498"\r
-       x2="144"\r
-       y2="970.29498"\r
-       gradientTransform="matrix(0,-0.66666669,0.6660448,0,-866.25992,731.29077)" />\r
-    <linearGradient\r
-       id="Background">\r
-      <stop\r
-         id="stop4178"\r
-         offset="0"\r
-         style="stop-color:#b8b8b8;stop-opacity:1" />\r
-      <stop\r
-         id="stop4180"\r
-         offset="1"\r
-         style="stop-color:#c9c9c9;stop-opacity:1" />\r
-    </linearGradient>\r
-    <filter\r
-       style="color-interpolation-filters:sRGB;"\r
-       inkscape:label="Inner Shadow"\r
-       id="filter1121">\r
-      <feFlood\r
-         flood-opacity="0.59999999999999998"\r
-         flood-color="rgb(0,0,0)"\r
-         result="flood"\r
-         id="feFlood1123" />\r
-      <feComposite\r
-         in="flood"\r
-         in2="SourceGraphic"\r
-         operator="out"\r
-         result="composite1"\r
-         id="feComposite1125" />\r
-      <feGaussianBlur\r
-         in="composite1"\r
-         stdDeviation="1"\r
-         result="blur"\r
-         id="feGaussianBlur1127" />\r
-      <feOffset\r
-         dx="0"\r
-         dy="2"\r
-         result="offset"\r
-         id="feOffset1129" />\r
-      <feComposite\r
-         in="offset"\r
-         in2="SourceGraphic"\r
-         operator="atop"\r
-         result="composite2"\r
-         id="feComposite1131" />\r
-    </filter>\r
-    <filter\r
-       style="color-interpolation-filters:sRGB;"\r
-       inkscape:label="Drop Shadow"\r
-       id="filter950">\r
-      <feFlood\r
-         flood-opacity="0.25"\r
-         flood-color="rgb(0,0,0)"\r
-         result="flood"\r
-         id="feFlood952" />\r
-      <feComposite\r
-         in="flood"\r
-         in2="SourceGraphic"\r
-         operator="in"\r
-         result="composite1"\r
-         id="feComposite954" />\r
-      <feGaussianBlur\r
-         in="composite1"\r
-         stdDeviation="1"\r
-         result="blur"\r
-         id="feGaussianBlur956" />\r
-      <feOffset\r
-         dx="0"\r
-         dy="1"\r
-         result="offset"\r
-         id="feOffset958" />\r
-      <feComposite\r
-         in="SourceGraphic"\r
-         in2="offset"\r
-         operator="over"\r
-         result="composite2"\r
-         id="feComposite960" />\r
-    </filter>\r
-    <clipPath\r
-       clipPathUnits="userSpaceOnUse"\r
-       id="clipPath873">\r
-      <g\r
-         transform="matrix(0,-0.66666667,0.66604479,0,-258.25992,677.00001)"\r
-         id="g875"\r
-         inkscape:label="Layer 1"\r
-         style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline">\r
-        <path\r
-           style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline"\r
-           d="m 46.702703,898.22775 50.594594,0 C 138.16216,898.22775 144,904.06497 144,944.92583 l 0,50.73846 c 0,40.86071 -5.83784,46.69791 -46.702703,46.69791 l -50.594594,0 C 5.8378378,1042.3622 0,1036.525 0,995.66429 L 0,944.92583 C 0,904.06497 5.8378378,898.22775 46.702703,898.22775 Z"\r
-           id="path877"\r
-           inkscape:connector-curvature="0"\r
-           sodipodi:nodetypes="sssssssss" />\r
-      </g>\r
-    </clipPath>\r
-    <filter\r
-       inkscape:collect="always"\r
-       id="filter891"\r
-       inkscape:label="Badge Shadow">\r
-      <feGaussianBlur\r
-         inkscape:collect="always"\r
-         stdDeviation="0.71999962"\r
-         id="feGaussianBlur893" />\r
-    </filter>\r
-  </defs>\r
-  <sodipodi:namedview\r
-     id="base"\r
-     pagecolor="#ffffff"\r
-     bordercolor="#666666"\r
-     borderopacity="1.0"\r
-     inkscape:pageopacity="0.0"\r
-     inkscape:pageshadow="2"\r
-     inkscape:zoom="4.0745362"\r
-     inkscape:cx="18.514671"\r
-     inkscape:cy="49.018169"\r
-     inkscape:document-units="px"\r
-     inkscape:current-layer="layer1"\r
-     showgrid="true"\r
-     fit-margin-top="0"\r
-     fit-margin-left="0"\r
-     fit-margin-right="0"\r
-     fit-margin-bottom="0"\r
-     inkscape:window-width="1920"\r
-     inkscape:window-height="1029"\r
-     inkscape:window-x="0"\r
-     inkscape:window-y="24"\r
-     inkscape:window-maximized="1"\r
-     showborder="true"\r
-     showguides="true"\r
-     inkscape:guide-bbox="true"\r
-     inkscape:showpageshadow="false">\r
-    <inkscape:grid\r
-       type="xygrid"\r
-       id="grid821" />\r
-    <sodipodi:guide\r
-       orientation="1,0"\r
-       position="16,48"\r
-       id="guide823" />\r
-    <sodipodi:guide\r
-       orientation="0,1"\r
-       position="64,80"\r
-       id="guide825" />\r
-    <sodipodi:guide\r
-       orientation="1,0"\r
-       position="80,40"\r
-       id="guide827" />\r
-    <sodipodi:guide\r
-       orientation="0,1"\r
-       position="64,16"\r
-       id="guide829" />\r
-  </sodipodi:namedview>\r
-  <metadata\r
-     id="metadata6522">\r
-    <rdf:RDF>\r
-      <cc:Work\r
-         rdf:about="">\r
-        <dc:format>image/svg+xml</dc:format>\r
-        <dc:type\r
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />\r
-        <dc:title></dc:title>\r
-      </cc:Work>\r
-    </rdf:RDF>\r
-  </metadata>\r
-  <g\r
-     inkscape:label="BACKGROUND"\r
-     inkscape:groupmode="layer"\r
-     id="layer1"\r
-     transform="translate(268,-635.29076)"\r
-     style="display:inline">\r
-    <path\r
-       style="fill:url(#linearGradient6461);fill-opacity:1;stroke:none;display:inline;filter:url(#filter1121)"\r
-       d="m -268,700.15563 0,-33.72973 c 0,-27.24324 3.88785,-31.13513 31.10302,-31.13513 l 33.79408,0 c 27.21507,0 31.1029,3.89189 31.1029,31.13513 l 0,33.72973 c 0,27.24325 -3.88783,31.13514 -31.1029,31.13514 l -33.79408,0 C -264.11215,731.29077 -268,727.39888 -268,700.15563 Z"\r
-       id="path6455"\r
-       inkscape:connector-curvature="0"\r
-       sodipodi:nodetypes="sssssssss" />\r
-  </g>\r
-  <g\r
-     inkscape:groupmode="layer"\r
-     id="layer3"\r
-     inkscape:label="PLACE YOUR PICTOGRAM HERE"\r
-     style="display:inline" />\r
-  <g\r
-     inkscape:groupmode="layer"\r
-     id="layer2"\r
-     inkscape:label="BADGE"\r
-     style="display:none"\r
-     sodipodi:insensitive="true">\r
-    <g\r
-       style="display:inline"\r
-       transform="translate(-340.00001,-581)"\r
-       id="g4394"\r
-       clip-path="none">\r
-      <g\r
-         id="g855">\r
-        <g\r
-           inkscape:groupmode="maskhelper"\r
-           id="g870"\r
-           clip-path="url(#clipPath873)"\r
-           style="opacity:0.6;filter:url(#filter891)">\r
-          <path\r
-             transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-237.54282)"\r
-             d="m 264,552.36218 a 12,12 0 1 1 -24,0 A 12,12 0 1 1 264,552.36218 Z"\r
-             sodipodi:ry="12"\r
-             sodipodi:rx="12"\r
-             sodipodi:cy="552.36218"\r
-             sodipodi:cx="252"\r
-             id="path844"\r
-             style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             sodipodi:type="arc" />\r
-        </g>\r
-        <g\r
-           id="g862">\r
-          <path\r
-             sodipodi:type="arc"\r
-             style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             id="path4398"\r
-             sodipodi:cx="252"\r
-             sodipodi:cy="552.36218"\r
-             sodipodi:rx="12"\r
-             sodipodi:ry="12"\r
-             d="m 264,552.36218 a 12,12 0 1 1 -24,0 A 12,12 0 1 1 264,552.36218 Z"\r
-             transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-238.54282)" />\r
-          <path\r
-             transform="matrix(1.25,0,0,1.25,33,-100.45273)"\r
-             d="m 264,552.36218 a 12,12 0 1 1 -24,0 A 12,12 0 1 1 264,552.36218 Z"\r
-             sodipodi:ry="12"\r
-             sodipodi:rx="12"\r
-             sodipodi:cy="552.36218"\r
-             sodipodi:cx="252"\r
-             id="path4400"\r
-             style="color:#000000;fill:#dd4814;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             sodipodi:type="arc" />\r
-          <path\r
-             sodipodi:type="star"\r
-             style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             id="path4459"\r
-             sodipodi:sides="5"\r
-             sodipodi:cx="666.19574"\r
-             sodipodi:cy="589.50385"\r
-             sodipodi:r1="7.2431178"\r
-             sodipodi:r2="4.3458705"\r
-             sodipodi:arg1="1.0471976"\r
-             sodipodi:arg2="1.6755161"\r
-             inkscape:flatsided="false"\r
-             inkscape:rounded="0.1"\r
-             inkscape:randomized="0"\r
-             d="m 669.8173,595.77657 c -0.39132,0.22593 -3.62645,-1.90343 -4.07583,-1.95066 -0.44938,-0.0472 -4.05653,1.36297 -4.39232,1.06062 -0.3358,-0.30235 0.68963,-4.03715 0.59569,-4.47913 -0.0939,-0.44198 -2.5498,-3.43681 -2.36602,-3.8496 0.18379,-0.41279 4.05267,-0.59166 4.44398,-0.81759 0.39132,-0.22593 2.48067,-3.48704 2.93005,-3.4398 0.44938,0.0472 1.81505,3.67147 2.15084,3.97382 0.3358,0.30236 4.08294,1.2817 4.17689,1.72369 0.0939,0.44198 -2.9309,2.86076 -3.11469,3.27355 C 669.9821,591.68426 670.20862,595.55064 669.8173,595.77657 Z"\r
-             transform="matrix(1.511423,-0.16366377,0.16366377,1.511423,-755.37346,-191.93651)" />\r
-        </g>\r
-      </g>\r
-    </g>\r
-  </g>\r
-</svg>\r
diff --git a/charms/layers/netutils/layer.yaml b/charms/layers/netutils/layer.yaml
deleted file mode 100644 (file)
index e13c81a..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-repo: git@github.com:AdamIsrael/layer-netutils.git
-includes: ['layer:basic', 'layer:sshproxy']
-options:
-  basic:
-    packages:
-      - traceroute
-      - nmap
-      - iperf3
diff --git a/charms/layers/netutils/metadata.yaml b/charms/layers/netutils/metadata.yaml
deleted file mode 100644 (file)
index c42d963..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-name: netutils
-summary: A suite of network-related utilities.
-maintainer: Adam Israel <adam.israel@canonical.com>
-description: |
-  A suite of network-related utilities, such as ping and traceroute, that
-  can be deployed into a data center in order to diagnose connectivity issues.
-tags:
-  # https://jujucharms.com/docs/stable/authors-charm-metadata
-  - ops
-  - network
-  - performance
-series:
-  - trusty
-  - xenial
-subordinate: false
diff --git a/charms/layers/netutils/reactive/layer_netutils.py b/charms/layers/netutils/reactive/layer_netutils.py
deleted file mode 100644 (file)
index 1fd4cb2..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-from charmhelpers.core.hookenv import (
-    action_get,
-    action_fail,
-    action_set,
-    config,
-    log,
-    status_set,
-)
-
-from charms.reactive import (
-    remove_state as remove_flag,
-    set_state as set_flag,
-    when,
-    when_not,
-)
-import charms.sshproxy
-from subprocess import CalledProcessError
-
-
-@when_not('netutils.ready')
-def ready():
-    status_set('active', 'Ready!')
-    set_flag('netutils.ready')
-
-
-@when('actions.dig')
-def dig():
-    err = ''
-    try:
-        nsserver = action_get('nsserver')
-        host = action_get('host')
-        nstype = action_get('type')
-        cmd = "dig"
-
-        if nsserver:
-            cmd += " @{}".format(nsserver)
-        if host:
-            cmd += " {}".format(host)
-        else:
-            action_fail('Hostname required.')
-        if nstype:
-            cmd += " -t {}".format(nstype)
-
-        result, err = charms.sshproxy._run(cmd)
-    except:
-        action_fail('dig command failed:' + err)
-    else:
-        action_set({'outout': result})
-    finally:
-        remove_flag('actions.dig')
-
-
-@when('actions.nmap')
-def nmap():
-    err = ''
-    try:
-        result, err = charms.sshproxy._run(
-            'nmap {}'.format(action_get('destination'))
-        )
-    except:
-        action_fail('nmap command failed:' + err)
-    else:
-        action_set({'outout': result})
-    finally:
-        remove_flag('actions.nmap')
-
-
-@when('actions.ping')
-def ping():
-    err = ''
-    try:
-        result, err = charms.sshproxy._run('ping -qc {} {}'.format(
-            action_get('count'), action_get('destination'))
-        )
-
-    except:
-        action_fail('ping command failed:' + err)
-    else:
-        # Here you can send results back from ping, if you had time to parse it
-        action_set({'output': result})
-    finally:
-        remove_flag('actions.ping')
-
-
-@when('actions.traceroute')
-def traceroute():
-    try:
-        result, err = charms.sshproxy._run(
-            'traceroute -m {} {}'.format(
-                    action_get('hops'),
-                    action_get('destination')
-            )
-        )
-    except:
-        action_fail('traceroute command failed')
-    else:
-        # Here you can send results back from ping, if you had time to parse it
-        action_set({'output': result})
-    finally:
-        remove_flag('actions.traceroute')
-
-
-@when('actions.iperf3')
-def iperf3():
-    err = ''
-    try:
-        # TODO: read all the flags via action_get and build the
-        # proper command line to run iperf3
-        host = action_get('host')
-
-        cmd = 'iperf3 -c {} --json'.format(host)
-        result, err = charms.sshproxy._run(cmd)
-    except CalledProcessError as e:
-        action_fail('iperf3 command failed:' + e.output)
-    else:
-        action_set({'outout': result})
-    finally:
-        remove_flag('actions.iperf3')
-
-
-@when('config.changed')
-def config_changed():
-    """ Handle configuration changes """
-    cfg = config()
-    if cfg.changed('iperf3'):
-        if cfg['iperf3']:
-            # start iperf in server + daemon mode
-            cmd = "iperf3 -s -D"
-        else:
-            cmd = "killall iperf3"
-        try:
-            charms.sshproxy._run(cmd)
-            log("iperf3 stopped.")
-        except CalledProcessError:
-            log("iperf3 not running.")
-        else:
-            log("iperf3 started.")
diff --git a/charms/layers/netutils/tests/00-setup b/charms/layers/netutils/tests/00-setup
deleted file mode 100755 (executable)
index f0616a5..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-sudo add-apt-repository ppa:juju/stable -y
-sudo apt-get update
-sudo apt-get install amulet python-requests -y
diff --git a/charms/layers/netutils/tests/10-deploy b/charms/layers/netutils/tests/10-deploy
deleted file mode 100755 (executable)
index ef269cd..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/python3
-
-import amulet
-import requests
-import unittest
-
-
-class TestCharm(unittest.TestCase):
-    def setUp(self):
-        self.d = amulet.Deployment()
-
-        self.d.add('layer-netutils')
-        self.d.expose('layer-netutils')
-
-        self.d.setup(timeout=900)
-        self.d.sentry.wait()
-
-        self.unit = self.d.sentry['layer-netutils'][0]
-
-    def test_service(self):
-        # test we can access over http
-        page = requests.get('http://{}'.format(self.unit.info['public-address']))
-        self.assertEqual(page.status_code, 200)
-        # Now you can use self.d.sentry[SERVICE][UNIT] to address each of the units and perform
-        # more in-depth steps. Each self.d.sentry[SERVICE][UNIT] has the following methods:
-        # - .info - An array of the information of that unit from Juju
-        # - .file(PATH) - Get the details of a file on that unit
-        # - .file_contents(PATH) - Get plain text output of PATH file from that unit
-        # - .directory(PATH) - Get details of directory
-        # - .directory_contents(PATH) - List files and folders in PATH on that unit
-        # - .relation(relation, service:rel) - Get relation data from return service
diff --git a/charms/layers/pingpong/README.md b/charms/layers/pingpong/README.md
deleted file mode 100644 (file)
index 3bec243..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-# Overview
-
-This repository contains the [Juju] layer that represents a working example of a proxy charm.
-
-# What is a proxy charm?
-
-A proxy charm is a limited type of charm that does not interact with software running on the same host, such as controlling and configuring a remote device (a static VM image, a router/switch, etc.). It cannot take advantage of some of Juju's key features, such as [scaling], [relations], and [leadership].
-
-Proxy charms are primarily a stop-gap, intended to prototype quickly, with the end goal being to develop it into a full-featured charm, which installs and executes code on the same machine as the charm is running.
-
-# Usage
-
-```bash
-# Clone this repository
-git clone https://osm.etsi.org/gerrit/osm/juju-charms
-cd juju-charms
-
-# Setup environment variables
-source juju-env.sh
-
-cd layers/pingpong
-charm build
-
-# Examine the built charm
-cd ../../builds/pingpong
-ls
-actions       config.yaml  icon.svg    metadata.yaml     tests
-actions.yaml  copyright    layer.yaml  reactive          tox.ini
-bin           deps         lib         README.md         wheelhouse
-builds        hooks        Makefile    requirements.txt
-
-```
-
-You can view a screencast of this: https://asciinema.org/a/96738
-
-The `charm build` process combines this pingpong layer with each layer that it
-has included in the `metadata.yaml` file, along with their various dependencies.
-
-This built charm is what will then be used by the SO to communicate with the
-VNF.
-
-# Configuration
-
-The pingpong charm has several configuration properties that can be set via
-the SO:
-
-- ssh-hostname
-- ssh-username
-- ssh-password
-- ssh-private-key
-- mode
-
-The ssh-* keys are included by the `sshproxy` layer, and enable the charm to
-connect to the VNF image.
-
-The mode key must be one of two values: `ping` or `pong`. This informs the
-charm as to which function it is serving.
-
-# Contact Information
-For support, please send an email to the [OSM Tech] list.
-
-
-[OSM Tech]: mailto:OSM_TECH@list.etsi.org
-[Juju]: https://jujucharms.com/about
-[configure]: https://jujucharms.com/docs/2.0/charms-config
-[scaling]: https://jujucharms.com/docs/2.0/charms-scaling
-[relations]: https://jujucharms.com/docs/2.0/charms-relations
-[leadership]: https://jujucharms.com/docs/2.0/developer-leadership
-[created your charm]: https://jujucharms.com/docs/2.0/developer-getting-started
-
-
-
-
-
------
-
-
-# Integration
-
-After you've [created your charm], open `interfaces.yaml` and add
-`layer:sshproxy` to the includes stanza, as shown below:
-```
-includes: ['layer:basic', 'layer:sshproxy']
-```
-
-## Reactive states
-
-This layer will set the following states:
-
-- `sshproxy.configured` This state is set when SSH credentials have been supplied to the charm.
-
-
-## Example
-In `reactive/mycharm.py`, you can add logic to execute commands over SSH. This
-example is run via a `start` action, and starts a service running on a remote
-host.
-```
-...
-import charms.sshproxy
-
-
-@when('sshproxy.configured')
-@when('actions.start')
-def start():
-    """ Execute's the command, via the start action` using the
-    configured SSH credentials
-    """
-    sshproxy.ssh("service myservice start")
-
-```
-
-## Actions
-This layer includes a built-in `run` action useful for debugging or running arbitrary commands:
-
-```
-$ juju run-action mycharm/0 run command=hostname
-Action queued with id: 014b72f3-bc02-4ecb-8d38-72bce03bbb63
-
-$ juju show-action-output 014b72f3-bc02-4ecb-8d38-72bce03bbb63
-results:
-  output: juju-66a5f3-11
-status: completed
-timing:
-  completed: 2016-10-27 19:53:49 +0000 UTC
-  enqueued: 2016-10-27 19:53:44 +0000 UTC
-  started: 2016-10-27 19:53:48 +0000 UTC
-
-```
-## Known Limitations and Issues
-
-### Security issues
-
-- Password and key-based authentications are supported, with the caveat that
-both (password and private key) are stored plaintext within the Juju controller.
-
-# Configuration and Usage
-
-This layer adds the following configuration options:
-- ssh-hostname
-- ssh-username
-- ssh-password
-- ssh-private-key
-
-Once  [configure] those values at any time. Once they are set, the `sshproxy.configured` state flag will be toggled:
-
-```
-juju deploy mycharm ssh-hostname=10.10.10.10 ssh-username=ubuntu ssh-password=yourpassword
-```
-or
-```
-juju deploy mycharm ssh-hostname=10.10.10.10 ssh-username=ubuntu ssh-private-key="cat `~/.ssh/id_rsa`"
-```
-
-
-# Contact Information
-Homepage: https://github.com/AdamIsrael/layer-sshproxy
-
-[Juju]: https://jujucharms.com/about
-[configure]: https://jujucharms.com/docs/2.0/charms-config
-[scaling]: https://jujucharms.com/docs/2.0/charms-scaling
-[relations]: https://jujucharms.com/docs/2.0/charms-relations
-[leadership]: https://jujucharms.com/docs/2.0/developer-leadership
-[created your charm]: https://jujucharms.com/docs/2.0/developer-getting-started
diff --git a/charms/layers/pingpong/actions.yaml b/charms/layers/pingpong/actions.yaml
deleted file mode 100644 (file)
index a5928f1..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-set-server:
-    description: "Set the target IP address and port"
-    params:
-        server-ip:
-            description: "IP on which the target service is listening."
-            type: string
-            default: ""
-        server-port:
-            description: "Port on which the target service is listening."
-            type: integer
-            default: 5555
-    required:
-        - server-ip
-set-rate:
-    description: "Set the rate of packet generation."
-    params:
-        rate:
-            description: "Packet rate."
-            type: integer
-            default: 5
-get-stats:
-    description: "Get the stats."
-get-state:
-    description: "Get the admin state of the target service."
-get-rate:
-    description: "Get the rate set on the target service."
-get-server:
-    description: "Get the target server and IP set"
-start-traffic:
-    description: "Start the traffic generator or echo."
-stop-traffic:
-    description: "Stop the traffic generator or echo."
diff --git a/charms/layers/pingpong/actions/get-rate b/charms/layers/pingpong/actions/get-rate
deleted file mode 100755 (executable)
index 959b3e9..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env python3
-import sys
-sys.path.append('lib')
-
-from charms.reactive import main
-from charms.reactive import set_state
-from charmhelpers.core.hookenv import action_fail
-
-"""
-`set_state` only works here because it's flushed to disk inside the `main()`
-loop. remove_state will need to be called inside the action method.
-"""
-set_state('actions.get-rate')
-
-try:
-    main()
-except Exception as e:
-    action_fail(repr(e))
diff --git a/charms/layers/pingpong/actions/get-server b/charms/layers/pingpong/actions/get-server
deleted file mode 100755 (executable)
index 52e0089..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env python3
-import sys
-sys.path.append('lib')
-
-from charms.reactive import main
-from charms.reactive import set_state
-from charmhelpers.core.hookenv import action_fail
-
-"""
-`set_state` only works here because it's flushed to disk inside the `main()`
-loop. remove_state will need to be called inside the action method.
-"""
-set_state('actions.get-server')
-
-try:
-    main()
-except Exception as e:
-    action_fail(repr(e))
diff --git a/charms/layers/pingpong/actions/get-state b/charms/layers/pingpong/actions/get-state
deleted file mode 100755 (executable)
index 446e8d7..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env python3
-import sys
-sys.path.append('lib')
-
-from charms.reactive import main
-from charms.reactive import set_state
-from charmhelpers.core.hookenv import action_fail
-
-"""
-`set_state` only works here because it's flushed to disk inside the `main()`
-loop. remove_state will need to be called inside the action method.
-"""
-set_state('actions.get-state')
-
-try:
-    main()
-except Exception as e:
-    action_fail(repr(e))
diff --git a/charms/layers/pingpong/actions/get-stats b/charms/layers/pingpong/actions/get-stats
deleted file mode 100755 (executable)
index 086afc2..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env python3
-import sys
-sys.path.append('lib')
-
-from charms.reactive import main
-from charms.reactive import set_state
-from charmhelpers.core.hookenv import action_fail
-
-"""
-`set_state` only works here because it's flushed to disk inside the `main()`
-loop. remove_state will need to be called inside the action method.
-"""
-set_state('actions.get-stats')
-
-try:
-    main()
-except Exception as e:
-    action_fail(repr(e))
diff --git a/charms/layers/pingpong/actions/set-rate b/charms/layers/pingpong/actions/set-rate
deleted file mode 100755 (executable)
index 8fb723e..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env python3
-import sys
-sys.path.append('lib')
-
-from charms.reactive import main
-from charms.reactive import set_state
-from charmhelpers.core.hookenv import action_fail
-
-"""
-`set_state` only works here because it's flushed to disk inside the `main()`
-loop. remove_state will need to be called inside the action method.
-"""
-set_state('actions.set-rate')
-
-try:
-    main()
-except Exception as e:
-    action_fail(repr(e))
diff --git a/charms/layers/pingpong/actions/set-server b/charms/layers/pingpong/actions/set-server
deleted file mode 100755 (executable)
index d1e908f..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env python3
-import sys
-sys.path.append('lib')
-
-from charms.reactive import main
-from charms.reactive import set_state
-from charmhelpers.core.hookenv import action_fail
-
-"""
-`set_state` only works here because it's flushed to disk inside the `main()`
-loop. remove_state will need to be called inside the action method.
-"""
-set_state('actions.set-server')
-
-try:
-    main()
-except Exception as e:
-    action_fail(repr(e))
diff --git a/charms/layers/pingpong/actions/start-traffic b/charms/layers/pingpong/actions/start-traffic
deleted file mode 100755 (executable)
index 562ac4c..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env python3
-import sys
-sys.path.append('lib')
-
-from charms.reactive import main
-from charms.reactive import set_state
-from charmhelpers.core.hookenv import action_fail
-
-"""
-`set_state` only works here because it's flushed to disk inside the `main()`
-loop. remove_state will need to be called inside the action method.
-"""
-set_state('actions.start-traffic')
-
-try:
-    main()
-except Exception as e:
-    action_fail(repr(e))
diff --git a/charms/layers/pingpong/actions/stop-traffic b/charms/layers/pingpong/actions/stop-traffic
deleted file mode 100755 (executable)
index 9352b33..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env python3
-import sys
-sys.path.append('lib')
-
-from charms.reactive import main
-from charms.reactive import set_state
-from charmhelpers.core.hookenv import action_fail
-
-"""
-`set_state` only works here because it's flushed to disk inside the `main()`
-loop. remove_state will need to be called inside the action method.
-"""
-set_state('actions.stop-traffic')
-
-try:
-    main()
-except Exception as e:
-    action_fail(repr(e))
diff --git a/charms/layers/pingpong/config.yaml b/charms/layers/pingpong/config.yaml
deleted file mode 100644 (file)
index 437524e..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-options:
-  mode:
-    type: string
-    default:
-    description: "The service type: [ping, pong]"
diff --git a/charms/layers/pingpong/icon.svg b/charms/layers/pingpong/icon.svg
deleted file mode 100644 (file)
index e092eef..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
-<!-- Created with Inkscape (http://www.inkscape.org/) -->\r
-\r
-<svg\r
-   xmlns:dc="http://purl.org/dc/elements/1.1/"\r
-   xmlns:cc="http://creativecommons.org/ns#"\r
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\r
-   xmlns:svg="http://www.w3.org/2000/svg"\r
-   xmlns="http://www.w3.org/2000/svg"\r
-   xmlns:xlink="http://www.w3.org/1999/xlink"\r
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"\r
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"\r
-   width="96"\r
-   height="96"\r
-   id="svg6517"\r
-   version="1.1"\r
-   inkscape:version="0.48+devel r12274"\r
-   sodipodi:docname="Juju_charm_icon_template.svg">\r
-  <defs\r
-     id="defs6519">\r
-    <linearGradient\r
-       inkscape:collect="always"\r
-       xlink:href="#Background"\r
-       id="linearGradient6461"\r
-       gradientUnits="userSpaceOnUse"\r
-       x1="0"\r
-       y1="970.29498"\r
-       x2="144"\r
-       y2="970.29498"\r
-       gradientTransform="matrix(0,-0.66666669,0.6660448,0,-866.25992,731.29077)" />\r
-    <linearGradient\r
-       id="Background">\r
-      <stop\r
-         id="stop4178"\r
-         offset="0"\r
-         style="stop-color:#b8b8b8;stop-opacity:1" />\r
-      <stop\r
-         id="stop4180"\r
-         offset="1"\r
-         style="stop-color:#c9c9c9;stop-opacity:1" />\r
-    </linearGradient>\r
-    <filter\r
-       style="color-interpolation-filters:sRGB;"\r
-       inkscape:label="Inner Shadow"\r
-       id="filter1121">\r
-      <feFlood\r
-         flood-opacity="0.59999999999999998"\r
-         flood-color="rgb(0,0,0)"\r
-         result="flood"\r
-         id="feFlood1123" />\r
-      <feComposite\r
-         in="flood"\r
-         in2="SourceGraphic"\r
-         operator="out"\r
-         result="composite1"\r
-         id="feComposite1125" />\r
-      <feGaussianBlur\r
-         in="composite1"\r
-         stdDeviation="1"\r
-         result="blur"\r
-         id="feGaussianBlur1127" />\r
-      <feOffset\r
-         dx="0"\r
-         dy="2"\r
-         result="offset"\r
-         id="feOffset1129" />\r
-      <feComposite\r
-         in="offset"\r
-         in2="SourceGraphic"\r
-         operator="atop"\r
-         result="composite2"\r
-         id="feComposite1131" />\r
-    </filter>\r
-    <filter\r
-       style="color-interpolation-filters:sRGB;"\r
-       inkscape:label="Drop Shadow"\r
-       id="filter950">\r
-      <feFlood\r
-         flood-opacity="0.25"\r
-         flood-color="rgb(0,0,0)"\r
-         result="flood"\r
-         id="feFlood952" />\r
-      <feComposite\r
-         in="flood"\r
-         in2="SourceGraphic"\r
-         operator="in"\r
-         result="composite1"\r
-         id="feComposite954" />\r
-      <feGaussianBlur\r
-         in="composite1"\r
-         stdDeviation="1"\r
-         result="blur"\r
-         id="feGaussianBlur956" />\r
-      <feOffset\r
-         dx="0"\r
-         dy="1"\r
-         result="offset"\r
-         id="feOffset958" />\r
-      <feComposite\r
-         in="SourceGraphic"\r
-         in2="offset"\r
-         operator="over"\r
-         result="composite2"\r
-         id="feComposite960" />\r
-    </filter>\r
-    <clipPath\r
-       clipPathUnits="userSpaceOnUse"\r
-       id="clipPath873">\r
-      <g\r
-         transform="matrix(0,-0.66666667,0.66604479,0,-258.25992,677.00001)"\r
-         id="g875"\r
-         inkscape:label="Layer 1"\r
-         style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline">\r
-        <path\r
-           style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline"\r
-           d="m 46.702703,898.22775 50.594594,0 C 138.16216,898.22775 144,904.06497 144,944.92583 l 0,50.73846 c 0,40.86071 -5.83784,46.69791 -46.702703,46.69791 l -50.594594,0 C 5.8378378,1042.3622 0,1036.525 0,995.66429 L 0,944.92583 C 0,904.06497 5.8378378,898.22775 46.702703,898.22775 Z"\r
-           id="path877"\r
-           inkscape:connector-curvature="0"\r
-           sodipodi:nodetypes="sssssssss" />\r
-      </g>\r
-    </clipPath>\r
-    <filter\r
-       inkscape:collect="always"\r
-       id="filter891"\r
-       inkscape:label="Badge Shadow">\r
-      <feGaussianBlur\r
-         inkscape:collect="always"\r
-         stdDeviation="0.71999962"\r
-         id="feGaussianBlur893" />\r
-    </filter>\r
-  </defs>\r
-  <sodipodi:namedview\r
-     id="base"\r
-     pagecolor="#ffffff"\r
-     bordercolor="#666666"\r
-     borderopacity="1.0"\r
-     inkscape:pageopacity="0.0"\r
-     inkscape:pageshadow="2"\r
-     inkscape:zoom="4.0745362"\r
-     inkscape:cx="18.514671"\r
-     inkscape:cy="49.018169"\r
-     inkscape:document-units="px"\r
-     inkscape:current-layer="layer1"\r
-     showgrid="true"\r
-     fit-margin-top="0"\r
-     fit-margin-left="0"\r
-     fit-margin-right="0"\r
-     fit-margin-bottom="0"\r
-     inkscape:window-width="1920"\r
-     inkscape:window-height="1029"\r
-     inkscape:window-x="0"\r
-     inkscape:window-y="24"\r
-     inkscape:window-maximized="1"\r
-     showborder="true"\r
-     showguides="true"\r
-     inkscape:guide-bbox="true"\r
-     inkscape:showpageshadow="false">\r
-    <inkscape:grid\r
-       type="xygrid"\r
-       id="grid821" />\r
-    <sodipodi:guide\r
-       orientation="1,0"\r
-       position="16,48"\r
-       id="guide823" />\r
-    <sodipodi:guide\r
-       orientation="0,1"\r
-       position="64,80"\r
-       id="guide825" />\r
-    <sodipodi:guide\r
-       orientation="1,0"\r
-       position="80,40"\r
-       id="guide827" />\r
-    <sodipodi:guide\r
-       orientation="0,1"\r
-       position="64,16"\r
-       id="guide829" />\r
-  </sodipodi:namedview>\r
-  <metadata\r
-     id="metadata6522">\r
-    <rdf:RDF>\r
-      <cc:Work\r
-         rdf:about="">\r
-        <dc:format>image/svg+xml</dc:format>\r
-        <dc:type\r
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />\r
-        <dc:title></dc:title>\r
-      </cc:Work>\r
-    </rdf:RDF>\r
-  </metadata>\r
-  <g\r
-     inkscape:label="BACKGROUND"\r
-     inkscape:groupmode="layer"\r
-     id="layer1"\r
-     transform="translate(268,-635.29076)"\r
-     style="display:inline">\r
-    <path\r
-       style="fill:url(#linearGradient6461);fill-opacity:1;stroke:none;display:inline;filter:url(#filter1121)"\r
-       d="m -268,700.15563 0,-33.72973 c 0,-27.24324 3.88785,-31.13513 31.10302,-31.13513 l 33.79408,0 c 27.21507,0 31.1029,3.89189 31.1029,31.13513 l 0,33.72973 c 0,27.24325 -3.88783,31.13514 -31.1029,31.13514 l -33.79408,0 C -264.11215,731.29077 -268,727.39888 -268,700.15563 Z"\r
-       id="path6455"\r
-       inkscape:connector-curvature="0"\r
-       sodipodi:nodetypes="sssssssss" />\r
-  </g>\r
-  <g\r
-     inkscape:groupmode="layer"\r
-     id="layer3"\r
-     inkscape:label="PLACE YOUR PICTOGRAM HERE"\r
-     style="display:inline" />\r
-  <g\r
-     inkscape:groupmode="layer"\r
-     id="layer2"\r
-     inkscape:label="BADGE"\r
-     style="display:none"\r
-     sodipodi:insensitive="true">\r
-    <g\r
-       style="display:inline"\r
-       transform="translate(-340.00001,-581)"\r
-       id="g4394"\r
-       clip-path="none">\r
-      <g\r
-         id="g855">\r
-        <g\r
-           inkscape:groupmode="maskhelper"\r
-           id="g870"\r
-           clip-path="url(#clipPath873)"\r
-           style="opacity:0.6;filter:url(#filter891)">\r
-          <path\r
-             transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-237.54282)"\r
-             d="m 264,552.36218 a 12,12 0 1 1 -24,0 A 12,12 0 1 1 264,552.36218 Z"\r
-             sodipodi:ry="12"\r
-             sodipodi:rx="12"\r
-             sodipodi:cy="552.36218"\r
-             sodipodi:cx="252"\r
-             id="path844"\r
-             style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             sodipodi:type="arc" />\r
-        </g>\r
-        <g\r
-           id="g862">\r
-          <path\r
-             sodipodi:type="arc"\r
-             style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             id="path4398"\r
-             sodipodi:cx="252"\r
-             sodipodi:cy="552.36218"\r
-             sodipodi:rx="12"\r
-             sodipodi:ry="12"\r
-             d="m 264,552.36218 a 12,12 0 1 1 -24,0 A 12,12 0 1 1 264,552.36218 Z"\r
-             transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-238.54282)" />\r
-          <path\r
-             transform="matrix(1.25,0,0,1.25,33,-100.45273)"\r
-             d="m 264,552.36218 a 12,12 0 1 1 -24,0 A 12,12 0 1 1 264,552.36218 Z"\r
-             sodipodi:ry="12"\r
-             sodipodi:rx="12"\r
-             sodipodi:cy="552.36218"\r
-             sodipodi:cx="252"\r
-             id="path4400"\r
-             style="color:#000000;fill:#dd4814;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             sodipodi:type="arc" />\r
-          <path\r
-             sodipodi:type="star"\r
-             style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             id="path4459"\r
-             sodipodi:sides="5"\r
-             sodipodi:cx="666.19574"\r
-             sodipodi:cy="589.50385"\r
-             sodipodi:r1="7.2431178"\r
-             sodipodi:r2="4.3458705"\r
-             sodipodi:arg1="1.0471976"\r
-             sodipodi:arg2="1.6755161"\r
-             inkscape:flatsided="false"\r
-             inkscape:rounded="0.1"\r
-             inkscape:randomized="0"\r
-             d="m 669.8173,595.77657 c -0.39132,0.22593 -3.62645,-1.90343 -4.07583,-1.95066 -0.44938,-0.0472 -4.05653,1.36297 -4.39232,1.06062 -0.3358,-0.30235 0.68963,-4.03715 0.59569,-4.47913 -0.0939,-0.44198 -2.5498,-3.43681 -2.36602,-3.8496 0.18379,-0.41279 4.05267,-0.59166 4.44398,-0.81759 0.39132,-0.22593 2.48067,-3.48704 2.93005,-3.4398 0.44938,0.0472 1.81505,3.67147 2.15084,3.97382 0.3358,0.30236 4.08294,1.2817 4.17689,1.72369 0.0939,0.44198 -2.9309,2.86076 -3.11469,3.27355 C 669.9821,591.68426 670.20862,595.55064 669.8173,595.77657 Z"\r
-             transform="matrix(1.511423,-0.16366377,0.16366377,1.511423,-755.37346,-191.93651)" />\r
-        </g>\r
-      </g>\r
-    </g>\r
-  </g>\r
-</svg>\r
diff --git a/charms/layers/pingpong/layer.yaml b/charms/layers/pingpong/layer.yaml
deleted file mode 100644 (file)
index 833eea6..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-includes:
-    - layer:basic
-    - layer:vnfproxy
-repo: https://osm.etsi.org/gerrit/osm/juju-charms
diff --git a/charms/layers/pingpong/metadata.yaml b/charms/layers/pingpong/metadata.yaml
deleted file mode 100644 (file)
index 1840743..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-name: pingpong
-summary: <Fill in summary here>
-maintainer: Adam Israel <Adam.Israel@ronin>
-description: |
-  <Multi-line description here>
-tags:
-  # Replace "misc" with one or more whitelisted tags from this list:
-  # https://jujucharms.com/docs/stable/authors-charm-metadata
-  - misc
-subordinate: false
-series:
-    - trusty
-    - xenial
diff --git a/charms/layers/pingpong/reactive/pingpong.py b/charms/layers/pingpong/reactive/pingpong.py
deleted file mode 100755 (executable)
index 7eedc84..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-from charmhelpers.core.hookenv import (
-    action_get,
-    action_fail,
-    action_set,
-    config,
-    status_set,
-)
-
-from charms.reactive import (
-    remove_state as remove_flag,
-    set_state as set_flag,
-    when,
-    when_not,
-)
-import charms.sshproxy
-# from subprocess import (
-#     Popen,
-#     CalledProcessError,
-#     PIPE,
-# )
-
-
-cfg = config()
-
-
-@when_not('pingpong.configured')
-def not_configured():
-    """Check the current configuration.
-
-    Check the current values in config to see if we have enough
-    information to continue.
-    """
-    config_changed()
-
-
-@when('config.changed', 'sshproxy.configured')
-def config_changed():
-    """Verify the configuration.
-
-    Verify that the charm has been configured
-    """
-
-    try:
-        status_set('maintenance', 'Verifying configuration data...')
-
-        (validated, output) = charms.sshproxy.verify_ssh_credentials()
-        if not validated:
-            status_set('blocked', 'Unable to verify SSH credentials: {}'.format(
-                output
-            ))
-            return
-
-        if all(k in cfg for k in ['mode']):
-            if cfg['mode'] in ['ping', 'pong']:
-                set_flag('pingpong.configured')
-                status_set('active', 'ready!')
-                return
-        status_set('blocked', 'Waiting for configuration')
-
-    except Exception as err:
-        status_set('blocked', 'Waiting for valid configuration ({})'.format(err))
-
-
-@when('config.changed')
-@when_not('sshproxy.configured')
-def invalid_credentials():
-    status_set('blocked', 'Waiting for SSH credentials.')
-    pass
-
-
-def is_ping():
-    if cfg['mode'] == 'ping':
-        return True
-    return False
-
-
-def is_pong():
-    return not is_ping()
-
-
-def get_port():
-    port = 18888
-    if is_pong():
-        port = 18889
-    return port
-
-
-@when('pingpong.configured')
-@when('actions.start')
-def start():
-    try:
-        # Bring up the eth1 interface.
-        # The selinux label on the file needs to be set correctly
-        cmd = "sudo timeout 5 /sbin/restorecon -v /etc/sysconfig/network-scripts/ifcfg-eth1"
-        result, err = charms.sshproxy._run(cmd)
-    except Exception as e:
-        err = "{}".format(e)
-        action_fail('command failed: {}, errors: {}'.format(err, e.output))
-        remove_flag('actions.start')
-        return
-
-    # Attempt to raise the non-mgmt interface, but ignore failures if
-    # the interface is already up.
-    try:
-        cmd = "sudo timeout 30 /sbin/ifup eth1"
-        result, err = charms.sshproxy._run(cmd)
-    except Exception as e:
-        pass
-
-    try:
-        cmd = "sudo timeout 30 /usr/bin/systemctl start {}". \
-              format(cfg['mode'])
-        result, err = charms.sshproxy._run(cmd)
-    except Exception as e:
-        action_fail('command failed: {}, errors: {}'.format(e, e.output))
-    else:
-        action_set({'stdout': result,
-                    'errors': err})
-    finally:
-        remove_flag('actions.start')
-
-
-@when('pingpong.configured')
-@when('actions.stop')
-def stop():
-    try:
-        # Enter the command to stop your service(s)
-        cmd = "sudo timeout 30 /usr/bin/systemctl stop {}".format(cfg['mode'])
-        result, err = charms.sshproxy._run(cmd)
-    except Exception as e:
-        action_fail('command failed: {}, errors: {}'.format(e, e.output))
-    else:
-        action_set({'stdout': result,
-                    'errors': err})
-    finally:
-        remove_flag('actions.stop')
-
-
-@when('pingpong.configured')
-@when('actions.restart')
-def restart():
-    try:
-        # Enter the command to restart your service(s)
-        cmd = "sudo timeout 30 /usr/bin/systemctl restart {}".format(cfg['mode'])
-        result, err = charms.sshproxy._run(cmd)
-    except Exception as e:
-        action_fail('command failed: {}, errors: {}'.format(e, e.output))
-    else:
-        action_set({'stdout': result,
-                    'errors': err})
-    finally:
-        remove_flag('actions.restart')
-
-
-@when('pingpong.configured')
-@when('actions.set-server')
-def set_server():
-    try:
-        # Get the target service info
-        target_ip = action_get('server-ip')
-        target_port = action_get('server-port')
-
-        data = '{{"ip" : "{}", "port" : {} }}'. \
-               format(target_ip, target_port)
-
-        cmd = format_curl(
-            'POST',
-            '/server',
-            data,
-        )
-
-        result, err = charms.sshproxy._run(cmd)
-    except Exception as e:
-        action_fail('command failed: {}, errors: {}'.format(e, e.output))
-    else:
-        action_set({'stdout': result,
-                    'errors': err})
-    finally:
-        remove_flag('actions.set-server')
-
-
-@when('pingpong.configured')
-@when('actions.set-rate')
-def set_rate():
-    try:
-        if is_ping():
-            rate = action_get('rate')
-            cmd = format_curl('POST', '/rate', '{{"rate" : {}}}'.format(rate))
-
-            result, err = charms.sshproxy._run(cmd)
-    except Exception as e:
-        err = "{}".format(e)
-        action_fail('command failed: {}, errors: {}'.format(err, e.output))
-    else:
-        action_set({'stdout': result,
-                    'errors': err})
-    finally:
-        remove_flag('actions.set-rate')
-
-
-@when('pingpong.configured')
-@when('actions.get-rate')
-def get_rate():
-    try:
-        if is_ping():
-            cmd = format_curl('GET', '/rate')
-
-            result, err = charms.sshproxy._run(cmd)
-    except Exception as e:
-        action_fail('command failed: {}, errors: {}'.format(e, e.output))
-    else:
-        action_set({'stdout': result,
-                    'errors': err})
-    finally:
-        remove_flag('actions.get-rate')
-
-
-@when('pingpong.configured')
-@when('actions.get-state')
-def get_state():
-    try:
-        cmd = format_curl('GET', '/state')
-
-        result, err = charms.sshproxy._run(cmd)
-    except Exception as e:
-        action_fail('command failed: {}, errors: {}'.format(e, e.output))
-    else:
-        action_set({'stdout': result,
-                    'errors': err})
-    finally:
-        remove_flag('actions.get-state')
-
-
-@when('pingpong.configured')
-@when('actions.get-stats')
-def get_stats():
-    try:
-        cmd = format_curl('GET', '/stats')
-
-        result, err = charms.sshproxy._run(cmd)
-    except Exception as e:
-        action_fail('command failed: {}, errors: {}'.format(e, e.output))
-    else:
-        action_set({'stdout': result,
-                    'errors': err})
-    finally:
-        remove_flag('actions.get-stats')
-
-
-@when('pingpong.configured')
-@when('actions.start-traffic')
-def start_traffic():
-    try:
-        cmd = format_curl('POST', '/adminstatus/state', '{"enable" : true}')
-
-        result, err = charms.sshproxy._run(cmd)
-    except Exception as e:
-        action_fail('command failed: {}, errors: {}'.format(e, e.output))
-    else:
-        action_set({'stdout': result,
-                    'errors': err})
-    finally:
-        remove_flag('actions.start-traffic')
-
-
-@when('pingpong.configured')
-@when('actions.stop-traffic')
-def stop_traffic():
-    try:
-        cmd = format_curl('POST', '/adminstatus/state', '{"enable" : false}')
-
-        result, err = charms.sshproxy._run(cmd)
-    except Exception as e:
-        action_fail('command failed: {}, errors: {}'.format(e, e.output))
-    else:
-        action_set({'stdout': result,
-                    'errors': err})
-    finally:
-        remove_flag('actions.stop-traffic')
-
-
-def format_curl(method, path, data=None):
-    """ A utility function to build the curl command line. """
-
-    # method must be GET or POST
-    if method not in ['GET', 'POST']:
-        # Throw exception
-        return None
-
-    # Get our service info
-    host = '127.0.0.1'
-    port = get_port()
-    mode = cfg['mode']
-
-    cmd = ['curl',
-           # '-D', '/dev/stdout',
-           '-H', 'Accept: application/vnd.yang.data+xml',
-           '-H', 'Content-Type: application/vnd.yang.data+json',
-           '-X', method]
-
-    if method == "POST" and data:
-        cmd.append('-d')
-        cmd.append('{}'.format(data))
-
-    cmd.append(
-        'http://{}:{}/api/v1/{}{}'.format(host, port, mode, path)
-    )
-    return cmd
diff --git a/charms/layers/pingpong/tests/00-setup b/charms/layers/pingpong/tests/00-setup
deleted file mode 100755 (executable)
index f0616a5..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-sudo add-apt-repository ppa:juju/stable -y
-sudo apt-get update
-sudo apt-get install amulet python-requests -y
diff --git a/charms/layers/pingpong/tests/10-deploy b/charms/layers/pingpong/tests/10-deploy
deleted file mode 100755 (executable)
index d1d4719..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/python3
-
-import amulet
-import requests
-import unittest
-
-
-class TestCharm(unittest.TestCase):
-    def setUp(self):
-        self.d = amulet.Deployment()
-
-        self.d.add('pingpong')
-        self.d.expose('pingpong')
-
-        self.d.setup(timeout=900)
-        self.d.sentry.wait()
-
-        self.unit = self.d.sentry['pingpong'][0]
-
-    def test_service(self):
-        # test we can access over http
-        page = requests.get('http://{}'.format(self.unit.info['public-address']))
-        self.assertEqual(page.status_code, 200)
-        # Now you can use self.d.sentry[SERVICE][UNIT] to address each of the units and perform
-        # more in-depth steps. Each self.d.sentry[SERVICE][UNIT] has the following methods:
-        # - .info - An array of the information of that unit from Juju
-        # - .file(PATH) - Get the details of a file on that unit
-        # - .file_contents(PATH) - Get plain text output of PATH file from that unit
-        # - .directory(PATH) - Get details of directory
-        # - .directory_contents(PATH) - List files and folders in PATH on that unit
-        # - .relation(relation, service:rel) - Get relation data from return service
-
-        
-if __name__ == '__main__':
-    unittest.main()
diff --git a/charms/layers/simple/README.md b/charms/layers/simple/README.md
deleted file mode 100644 (file)
index f9d6eed..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-# Overview
-
-This is an example charm as demonstrated in the OSM [Hackfest](https://osm.etsi.org/wikipub/index.php/OSM_workshops_and_events) series.
-
-This is intended to provide a well-documented example of the proxy charm written by Hackfest participants.
-
-# Prerequisites
-
-There are two ways that you can exercise this charm: install the latest stable release of OSM or use Juju directly.
-
-The workshop materials and tutorials cover using charms as part of OSM. You can follow that approach, but this README will focus on using Juju directly. We highly recommend that vendors and charm developers use this approach for the initial development of the charm.
-
-## Ubuntu 16.04 or higher
-
-We recommend using Ubuntu 16.04 or higher for the development and testing of charms. It is assumed that you have installed Ubuntu either on physical hardware or in a Virtual Machine.
-
-## Install LXD and Juju
-
-We will be installing the required software via snap. Snaps are containerised software packages, preferred because they are easy to create and install, will automatically update to the latest stable version, and contain bundled dependencies.
-
-```
-snap install lxd
-snap install juju
-snap install charm
-```
-
-# Usage
-
-
-## Known Limitations and Issues
-
-This not only helps users but gives people a place to start if they want to help
-you add features to your charm.
-
-# Configuration
-
-The configuration options will be listed on the charm store, however If you're
-making assumptions or opinionated decisions in the charm (like setting a default
-administrator password), you should detail that here so the user knows how to
-change it immediately, etc.
-
-# Contact Information
-
-## Upstream Project Name
-
-  - Upstream website
-  - Upstream bug tracker
-  - Upstream mailing list or contact information
-  - Feel free to add things if it's useful for users
-
-
-[service]: http://example.com
-[icon guidelines]: https://jujucharms.com/docs/stable/authors-charm-icon
diff --git a/charms/layers/simple/actions.yaml b/charms/layers/simple/actions.yaml
deleted file mode 100644 (file)
index 6cd6f8c..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-touch:
-    description: "Touch a file on the VNF."
-    params:
-        filename:
-            description: "The name of the file to touch."
-            type: string
-            default: ""
-    required:
-        - filename
diff --git a/charms/layers/simple/actions/touch b/charms/layers/simple/actions/touch
deleted file mode 100755 (executable)
index 7e30af4..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env python3
-##
-# Copyright 2016 Canonical Ltd.
-# All rights reserved.
-#
-# 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.
-##
-import sys
-sys.path.append('lib')
-
-from charms.reactive import main, set_flag
-from charmhelpers.core.hookenv import action_fail, action_name
-
-"""
-`set_state` only works here because it's flushed to disk inside the `main()`
-loop. remove_state will need to be called inside the action method.
-"""
-set_flag('actions.{}'.format(action_name()))
-
-try:
-    main()
-except Exception as e:
-    action_fail(repr(e))
diff --git a/charms/layers/simple/config.yaml b/charms/layers/simple/config.yaml
deleted file mode 100644 (file)
index 51f2ce4..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-options:
-  string-option:
-    type: string
-    default: "Default Value"
-    description: "A short description of the configuration option"
-  boolean-option:
-    type: boolean
-    default: False
-    description: "A short description of the configuration option"
-  int-option:
-    type: int
-    default: 9001
-    description: "A short description of the configuration option"
-
diff --git a/charms/layers/simple/icon.svg b/charms/layers/simple/icon.svg
deleted file mode 100644 (file)
index e092eef..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
-<!-- Created with Inkscape (http://www.inkscape.org/) -->\r
-\r
-<svg\r
-   xmlns:dc="http://purl.org/dc/elements/1.1/"\r
-   xmlns:cc="http://creativecommons.org/ns#"\r
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\r
-   xmlns:svg="http://www.w3.org/2000/svg"\r
-   xmlns="http://www.w3.org/2000/svg"\r
-   xmlns:xlink="http://www.w3.org/1999/xlink"\r
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"\r
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"\r
-   width="96"\r
-   height="96"\r
-   id="svg6517"\r
-   version="1.1"\r
-   inkscape:version="0.48+devel r12274"\r
-   sodipodi:docname="Juju_charm_icon_template.svg">\r
-  <defs\r
-     id="defs6519">\r
-    <linearGradient\r
-       inkscape:collect="always"\r
-       xlink:href="#Background"\r
-       id="linearGradient6461"\r
-       gradientUnits="userSpaceOnUse"\r
-       x1="0"\r
-       y1="970.29498"\r
-       x2="144"\r
-       y2="970.29498"\r
-       gradientTransform="matrix(0,-0.66666669,0.6660448,0,-866.25992,731.29077)" />\r
-    <linearGradient\r
-       id="Background">\r
-      <stop\r
-         id="stop4178"\r
-         offset="0"\r
-         style="stop-color:#b8b8b8;stop-opacity:1" />\r
-      <stop\r
-         id="stop4180"\r
-         offset="1"\r
-         style="stop-color:#c9c9c9;stop-opacity:1" />\r
-    </linearGradient>\r
-    <filter\r
-       style="color-interpolation-filters:sRGB;"\r
-       inkscape:label="Inner Shadow"\r
-       id="filter1121">\r
-      <feFlood\r
-         flood-opacity="0.59999999999999998"\r
-         flood-color="rgb(0,0,0)"\r
-         result="flood"\r
-         id="feFlood1123" />\r
-      <feComposite\r
-         in="flood"\r
-         in2="SourceGraphic"\r
-         operator="out"\r
-         result="composite1"\r
-         id="feComposite1125" />\r
-      <feGaussianBlur\r
-         in="composite1"\r
-         stdDeviation="1"\r
-         result="blur"\r
-         id="feGaussianBlur1127" />\r
-      <feOffset\r
-         dx="0"\r
-         dy="2"\r
-         result="offset"\r
-         id="feOffset1129" />\r
-      <feComposite\r
-         in="offset"\r
-         in2="SourceGraphic"\r
-         operator="atop"\r
-         result="composite2"\r
-         id="feComposite1131" />\r
-    </filter>\r
-    <filter\r
-       style="color-interpolation-filters:sRGB;"\r
-       inkscape:label="Drop Shadow"\r
-       id="filter950">\r
-      <feFlood\r
-         flood-opacity="0.25"\r
-         flood-color="rgb(0,0,0)"\r
-         result="flood"\r
-         id="feFlood952" />\r
-      <feComposite\r
-         in="flood"\r
-         in2="SourceGraphic"\r
-         operator="in"\r
-         result="composite1"\r
-         id="feComposite954" />\r
-      <feGaussianBlur\r
-         in="composite1"\r
-         stdDeviation="1"\r
-         result="blur"\r
-         id="feGaussianBlur956" />\r
-      <feOffset\r
-         dx="0"\r
-         dy="1"\r
-         result="offset"\r
-         id="feOffset958" />\r
-      <feComposite\r
-         in="SourceGraphic"\r
-         in2="offset"\r
-         operator="over"\r
-         result="composite2"\r
-         id="feComposite960" />\r
-    </filter>\r
-    <clipPath\r
-       clipPathUnits="userSpaceOnUse"\r
-       id="clipPath873">\r
-      <g\r
-         transform="matrix(0,-0.66666667,0.66604479,0,-258.25992,677.00001)"\r
-         id="g875"\r
-         inkscape:label="Layer 1"\r
-         style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline">\r
-        <path\r
-           style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline"\r
-           d="m 46.702703,898.22775 50.594594,0 C 138.16216,898.22775 144,904.06497 144,944.92583 l 0,50.73846 c 0,40.86071 -5.83784,46.69791 -46.702703,46.69791 l -50.594594,0 C 5.8378378,1042.3622 0,1036.525 0,995.66429 L 0,944.92583 C 0,904.06497 5.8378378,898.22775 46.702703,898.22775 Z"\r
-           id="path877"\r
-           inkscape:connector-curvature="0"\r
-           sodipodi:nodetypes="sssssssss" />\r
-      </g>\r
-    </clipPath>\r
-    <filter\r
-       inkscape:collect="always"\r
-       id="filter891"\r
-       inkscape:label="Badge Shadow">\r
-      <feGaussianBlur\r
-         inkscape:collect="always"\r
-         stdDeviation="0.71999962"\r
-         id="feGaussianBlur893" />\r
-    </filter>\r
-  </defs>\r
-  <sodipodi:namedview\r
-     id="base"\r
-     pagecolor="#ffffff"\r
-     bordercolor="#666666"\r
-     borderopacity="1.0"\r
-     inkscape:pageopacity="0.0"\r
-     inkscape:pageshadow="2"\r
-     inkscape:zoom="4.0745362"\r
-     inkscape:cx="18.514671"\r
-     inkscape:cy="49.018169"\r
-     inkscape:document-units="px"\r
-     inkscape:current-layer="layer1"\r
-     showgrid="true"\r
-     fit-margin-top="0"\r
-     fit-margin-left="0"\r
-     fit-margin-right="0"\r
-     fit-margin-bottom="0"\r
-     inkscape:window-width="1920"\r
-     inkscape:window-height="1029"\r
-     inkscape:window-x="0"\r
-     inkscape:window-y="24"\r
-     inkscape:window-maximized="1"\r
-     showborder="true"\r
-     showguides="true"\r
-     inkscape:guide-bbox="true"\r
-     inkscape:showpageshadow="false">\r
-    <inkscape:grid\r
-       type="xygrid"\r
-       id="grid821" />\r
-    <sodipodi:guide\r
-       orientation="1,0"\r
-       position="16,48"\r
-       id="guide823" />\r
-    <sodipodi:guide\r
-       orientation="0,1"\r
-       position="64,80"\r
-       id="guide825" />\r
-    <sodipodi:guide\r
-       orientation="1,0"\r
-       position="80,40"\r
-       id="guide827" />\r
-    <sodipodi:guide\r
-       orientation="0,1"\r
-       position="64,16"\r
-       id="guide829" />\r
-  </sodipodi:namedview>\r
-  <metadata\r
-     id="metadata6522">\r
-    <rdf:RDF>\r
-      <cc:Work\r
-         rdf:about="">\r
-        <dc:format>image/svg+xml</dc:format>\r
-        <dc:type\r
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />\r
-        <dc:title></dc:title>\r
-      </cc:Work>\r
-    </rdf:RDF>\r
-  </metadata>\r
-  <g\r
-     inkscape:label="BACKGROUND"\r
-     inkscape:groupmode="layer"\r
-     id="layer1"\r
-     transform="translate(268,-635.29076)"\r
-     style="display:inline">\r
-    <path\r
-       style="fill:url(#linearGradient6461);fill-opacity:1;stroke:none;display:inline;filter:url(#filter1121)"\r
-       d="m -268,700.15563 0,-33.72973 c 0,-27.24324 3.88785,-31.13513 31.10302,-31.13513 l 33.79408,0 c 27.21507,0 31.1029,3.89189 31.1029,31.13513 l 0,33.72973 c 0,27.24325 -3.88783,31.13514 -31.1029,31.13514 l -33.79408,0 C -264.11215,731.29077 -268,727.39888 -268,700.15563 Z"\r
-       id="path6455"\r
-       inkscape:connector-curvature="0"\r
-       sodipodi:nodetypes="sssssssss" />\r
-  </g>\r
-  <g\r
-     inkscape:groupmode="layer"\r
-     id="layer3"\r
-     inkscape:label="PLACE YOUR PICTOGRAM HERE"\r
-     style="display:inline" />\r
-  <g\r
-     inkscape:groupmode="layer"\r
-     id="layer2"\r
-     inkscape:label="BADGE"\r
-     style="display:none"\r
-     sodipodi:insensitive="true">\r
-    <g\r
-       style="display:inline"\r
-       transform="translate(-340.00001,-581)"\r
-       id="g4394"\r
-       clip-path="none">\r
-      <g\r
-         id="g855">\r
-        <g\r
-           inkscape:groupmode="maskhelper"\r
-           id="g870"\r
-           clip-path="url(#clipPath873)"\r
-           style="opacity:0.6;filter:url(#filter891)">\r
-          <path\r
-             transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-237.54282)"\r
-             d="m 264,552.36218 a 12,12 0 1 1 -24,0 A 12,12 0 1 1 264,552.36218 Z"\r
-             sodipodi:ry="12"\r
-             sodipodi:rx="12"\r
-             sodipodi:cy="552.36218"\r
-             sodipodi:cx="252"\r
-             id="path844"\r
-             style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             sodipodi:type="arc" />\r
-        </g>\r
-        <g\r
-           id="g862">\r
-          <path\r
-             sodipodi:type="arc"\r
-             style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             id="path4398"\r
-             sodipodi:cx="252"\r
-             sodipodi:cy="552.36218"\r
-             sodipodi:rx="12"\r
-             sodipodi:ry="12"\r
-             d="m 264,552.36218 a 12,12 0 1 1 -24,0 A 12,12 0 1 1 264,552.36218 Z"\r
-             transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-238.54282)" />\r
-          <path\r
-             transform="matrix(1.25,0,0,1.25,33,-100.45273)"\r
-             d="m 264,552.36218 a 12,12 0 1 1 -24,0 A 12,12 0 1 1 264,552.36218 Z"\r
-             sodipodi:ry="12"\r
-             sodipodi:rx="12"\r
-             sodipodi:cy="552.36218"\r
-             sodipodi:cx="252"\r
-             id="path4400"\r
-             style="color:#000000;fill:#dd4814;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             sodipodi:type="arc" />\r
-          <path\r
-             sodipodi:type="star"\r
-             style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             id="path4459"\r
-             sodipodi:sides="5"\r
-             sodipodi:cx="666.19574"\r
-             sodipodi:cy="589.50385"\r
-             sodipodi:r1="7.2431178"\r
-             sodipodi:r2="4.3458705"\r
-             sodipodi:arg1="1.0471976"\r
-             sodipodi:arg2="1.6755161"\r
-             inkscape:flatsided="false"\r
-             inkscape:rounded="0.1"\r
-             inkscape:randomized="0"\r
-             d="m 669.8173,595.77657 c -0.39132,0.22593 -3.62645,-1.90343 -4.07583,-1.95066 -0.44938,-0.0472 -4.05653,1.36297 -4.39232,1.06062 -0.3358,-0.30235 0.68963,-4.03715 0.59569,-4.47913 -0.0939,-0.44198 -2.5498,-3.43681 -2.36602,-3.8496 0.18379,-0.41279 4.05267,-0.59166 4.44398,-0.81759 0.39132,-0.22593 2.48067,-3.48704 2.93005,-3.4398 0.44938,0.0472 1.81505,3.67147 2.15084,3.97382 0.3358,0.30236 4.08294,1.2817 4.17689,1.72369 0.0939,0.44198 -2.9309,2.86076 -3.11469,3.27355 C 669.9821,591.68426 670.20862,595.55064 669.8173,595.77657 Z"\r
-             transform="matrix(1.511423,-0.16366377,0.16366377,1.511423,-755.37346,-191.93651)" />\r
-        </g>\r
-      </g>\r
-    </g>\r
-  </g>\r
-</svg>\r
diff --git a/charms/layers/simple/layer.yaml b/charms/layers/simple/layer.yaml
deleted file mode 100644 (file)
index 3fed5e2..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-includes: ['layer:basic', 'layer:vnfproxy']
-options:
-        basic:
-                use_venv: false
diff --git a/charms/layers/simple/metadata.yaml b/charms/layers/simple/metadata.yaml
deleted file mode 100644 (file)
index fd80d1a..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-name: simple
-summary: A simple VNF proxy charm
-maintainer: Adam Israel <adam.israel@canonical.com>
-subordinate: false
-series: ['xenial']
diff --git a/charms/layers/simple/metrics.yaml b/charms/layers/simple/metrics.yaml
deleted file mode 100644 (file)
index 6ebb605..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-metrics:
-  uptime:
-    type: gauge
-    description: "Uptime of the VNF"
-    command: awk '{print $1}' /proc/uptime
diff --git a/charms/layers/simple/reactive/simple.py b/charms/layers/simple/reactive/simple.py
deleted file mode 100644 (file)
index 228be3c..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-from charmhelpers.core.hookenv import (
-    action_get,
-    action_fail,
-    action_set,
-    status_set,
-)
-from charms.reactive import (
-    clear_flag,
-    set_flag,
-    when,
-    when_not,
-)
-import charms.sshproxy
-
-
-@when('sshproxy.configured')
-@when_not('simple.installed')
-def install_simple_proxy_charm():
-    """Post-install actions.
-
-    This function will run when two conditions are met:
-    1. The 'sshproxy.configured' state is set
-    2. The 'simple.installed' state is not set
-
-    This ensures that the workload status is set to active only when the SSH
-    proxy is properly configured.
-    """
-    set_flag('simple.installed')
-    status_set('active', 'Ready!')
-
-
-@when('actions.touch')
-def touch():
-    err = ''
-    try:
-        filename = action_get('filename')
-        cmd = ['touch {}'.format(filename)]
-        result, err = charms.sshproxy._run(cmd)
-    except:
-        action_fail('command failed:' + err)
-    else:
-        action_set({'output': result})
-    finally:
-        clear_flag('actions.touch')
diff --git a/charms/layers/simple/tests/00-setup b/charms/layers/simple/tests/00-setup
deleted file mode 100755 (executable)
index f0616a5..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-sudo add-apt-repository ppa:juju/stable -y
-sudo apt-get update
-sudo apt-get install amulet python-requests -y
diff --git a/charms/layers/simple/tests/10-deploy b/charms/layers/simple/tests/10-deploy
deleted file mode 100755 (executable)
index 9a26117..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/python3
-
-import amulet
-import requests
-import unittest
-
-
-class TestCharm(unittest.TestCase):
-    def setUp(self):
-        self.d = amulet.Deployment()
-
-        self.d.add('simple')
-        self.d.expose('simple')
-
-        self.d.setup(timeout=900)
-        self.d.sentry.wait()
-
-        self.unit = self.d.sentry['simple'][0]
-
-    def test_service(self):
-        # test we can access over http
-        page = requests.get('http://{}'.format(self.unit.info['public-address']))
-        self.assertEqual(page.status_code, 200)
-        # Now you can use self.d.sentry[SERVICE][UNIT] to address each of the units and perform
-        # more in-depth steps. Each self.d.sentry[SERVICE][UNIT] has the following methods:
-        # - .info - An array of the information of that unit from Juju
-        # - .file(PATH) - Get the details of a file on that unit
-        # - .file_contents(PATH) - Get plain text output of PATH file from that unit
-        # - .directory(PATH) - Get details of directory
-        # - .directory_contents(PATH) - List files and folders in PATH on that unit
-        # - .relation(relation, service:rel) - Get relation data from return service
-
-        
-if __name__ == '__main__':
-    unittest.main()
diff --git a/charms/layers/vyos-proxy/Makefile b/charms/layers/vyos-proxy/Makefile
deleted file mode 100644 (file)
index a1ad3a5..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/make
-
-all: lint unit_test
-
-
-.PHONY: clean
-clean:
-       @rm -rf .tox
-
-.PHONY: apt_prereqs
-apt_prereqs:
-       @# Need tox, but don't install the apt version unless we have to (don't want to conflict with pip)
-       @which tox >/dev/null || (sudo apt-get install -y python-pip && sudo pip install tox)
-
-.PHONY: lint
-lint: apt_prereqs
-       @tox --notest
-       @PATH=.tox/py34/bin:.tox/py35/bin flake8 $(wildcard hooks reactive lib unit_tests tests)
-       @charm proof
-
-.PHONY: unit_test
-unit_test: apt_prereqs
-       @echo Starting tests...
-       tox
diff --git a/charms/layers/vyos-proxy/README.md b/charms/layers/vyos-proxy/README.md
deleted file mode 100644 (file)
index 0337c83..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-# Overview
-
-This is the base layer for all charms [built using layers][building].  It
-provides all of the standard Juju hooks and runs the
-[charms.reactive.main][charms.reactive] loop for them.  It also bootstraps the
-[charm-helpers][] and [charms.reactive][] libraries and all of their
-dependencies for use by the charm.
-
-# Usage
-
-To create a charm layer using this base layer, you need only include it in
-a `layer.yaml` file:
-
-```yaml
-includes: ['layer:basic']
-```
-
-This will fetch this layer from [interfaces.juju.solutions][] and incorporate
-it into your charm layer.  You can then add handlers under the `reactive/`
-directory.  Note that **any** file under `reactive/` will be expected to
-contain handlers, whether as Python decorated functions or [executables][non-python]
-using the [external handler protocol][].
-
-### Charm Dependencies
-
-Each layer can include a `wheelhouse.txt` file with Python requirement lines.
-For example, this layer's `wheelhouse.txt` includes:
-
-```
-pip>=7.0.0,<8.0.0
-charmhelpers>=0.4.0,<1.0.0
-charms.reactive>=0.1.0,<2.0.0
-```
-
-All of these dependencies from each layer will be fetched (and updated) at build
-time and will be automatically installed by this base layer before any reactive
-handlers are run.
-
-Note that the `wheelhouse.txt` file is intended for **charm** dependencies only.
-That is, for libraries that the charm code itself needs to do its job of deploying
-and configuring the payload.  If the payload itself has Python dependencies, those
-should be handled separately, by the charm.
-
-See [PyPI][pypi charms.X] for packages under the `charms.` namespace which might
-be useful for your charm.
-
-### Layer Namespace
-
-Each layer has a reserved section in the `charms.layer.` Python package namespace,
-which it can populate by including a `lib/charms/layer/<layer-name>.py` file or
-by placing files under `lib/charms/layer/<layer-name>/`.  (If the layer name
-includes hyphens, replace them with underscores.)  These can be helpers that the
-layer uses internally, or it can expose classes or functions to be used by other
-layers to interact with that layer.
-
-For example, a layer named `foo` could include a `lib/charms/layer/foo.py` file
-with some helper functions that other layers could access using:
-
-```python
-from charms.layer.foo import my_helper
-```
-
-### Layer Options
-
-Any layer can define options in its `layer.yaml`.  Those options can then be set
-by other layers to change the behavior of your layer.  The options are defined
-using [jsonschema][], which is the same way that [action paramters][] are defined.
-
-For example, the `foo` layer could include the following option definitons:
-
-```yaml
-includes: ['layer:basic']
-defines:  # define some options for this layer (the layer "foo")
-  enable-bar:  # define an "enable-bar" option for this layer
-    description: If true, enable support for "bar".
-    type: boolean
-    default: false
-```
-
-A layer using `foo` could then set it:
-
-```yaml
-includes: ['layer:foo']
-options:
-  foo:  # setting options for the "foo" layer
-    enable-bar: true  # set the "enable-bar" option to true
-```
-
-The `foo` layer can then use the `charms.layer.options` helper to load the values
-for the options that it defined.  For example:
-
-```python
-from charms import layer
-
-@when('state')
-def do_thing():
-  layer_opts = layer.options('foo')  # load all of the options for the "foo" layer
-  if layer_opts['enable-bar']:  # check the value of the "enable-bar" option
-      hookenv.log("Bar is enabled")
-```
-
-You can also access layer options in other handlers, such as Bash, using
-the command-line interface:
-
-```bash
-. charms.reactive.sh
-
-@when 'state'
-function do_thing() {
-    if layer_option foo enable-bar; then
-        juju-log "Bar is enabled"
-        juju-log "bar-value is: $(layer_option foo bar-value)"
-    fi
-}
-
-reactive_handler_main
-```
-
-Note that options of type `boolean` will set the exit code, while other types
-will be printed out.
-
-# Hooks
-
-This layer provides hooks that other layers can react to using the decorators
-of the [charms.reactive][] library:
-
-  * `config-changed`
-  * `install`
-  * `leader-elected`
-  * `leader-settings-changed`
-  * `start`
-  * `stop`
-  * `upgrade-charm`
-  * `update-status`
-
-Other hooks are not implemented at this time. A new layer can implement storage
-or relation hooks in their own layer by putting them in the `hooks` directory.
-
-**Note:** Because `update-status` is invoked every 5 minutes, you should take
-care to ensure that your reactive handlers only invoke expensive operations
-when absolutely necessary.  It is recommended that you use helpers like
-[`@only_once`][], [`@when_file_changed`][], and [`data_changed`][] to ensure
-that handlers run only when necessary.
-
-# Layer Configuration
-
-This layer supports the following options, which can be set in `layer.yaml`:
-
-  * **packages**  A list of system packages to be installed before the reactive
-    handlers are invoked.
-
-  * **use_venv**  If set to true, the charm dependencies from the various
-    layers' `wheelhouse.txt` files will be installed in a Python virtualenv
-    located at `$CHARM_DIR/../.venv`.  This keeps charm dependencies from
-    conflicting with payload dependencies, but you must take care to preserve
-    the environment and interpreter if using `execl` or `subprocess`.
-
-  * **include_system_packages**  If set to true and using a venv, include
-    the `--system-site-packages` options to make system Python libraries
-    visible within the venv.
-
-An example `layer.yaml` using these options might be:
-
-```yaml
-includes: ['layer:basic']
-options:
-  basic:
-    packages: ['git']
-    use_venv: true
-    include_system_packages: true
-```
-
-
-# Reactive States
-
-This layer will set the following states:
-
-  * **`config.changed`**  Any config option has changed from its previous value.
-    This state is cleared automatically at the end of each hook invocation.
-
-  * **`config.changed.<option>`** A specific config option has changed.
-    **`<option>`** will be replaced by the config option name from `config.yaml`.
-    This state is cleared automatically at the end of each hook invocation.
-
-  * **`config.set.<option>`** A specific config option has a True or non-empty
-    value set.  **`<option>`** will be replaced by the config option name from
-    `config.yaml`.  This state is cleared automatically at the end of each hook
-    invocation.
-
-  * **`config.default.<option>`** A specific config option is set to its
-    default value.  **`<option>`** will be replaced by the config option name
-    from `config.yaml`.  This state is cleared automatically at the end of
-    each hook invocation.
-
-An example using the config states would be:
-
-```python
-@when('config.changed.my-opt')
-def my_opt_changed():
-    update_config()
-    restart_service()
-```
-
-
-# Actions
-
-This layer currently does not define any actions.
-
-
-[building]: https://jujucharms.com/docs/devel/authors-charm-building
-[charm-helpers]: https://pythonhosted.org/charmhelpers/
-[charms.reactive]: https://pythonhosted.org/charms.reactive/
-[interfaces.juju.solutions]: http://interfaces.juju.solutions/
-[non-python]: https://pythonhosted.org/charms.reactive/#non-python-reactive-handlers
-[external handler protocol]: https://pythonhosted.org/charms.reactive/charms.reactive.bus.html#charms.reactive.bus.ExternalHandler
-[jsonschema]: http://json-schema.org/
-[action paramters]: https://jujucharms.com/docs/stable/authors-charm-actions
-[pypi charms.X]: https://pypi.python.org/pypi?%3Aaction=search&term=charms.&submit=search
-[`@only_once`]: https://pythonhosted.org/charms.reactive/charms.reactive.decorators.html#charms.reactive.decorators.only_once
-[`@when_file_changed`]: https://pythonhosted.org/charms.reactive/charms.reactive.decorators.html#charms.reactive.decorators.when_file_changed
-[`data_changed`]: https://pythonhosted.org/charms.reactive/charms.reactive.helpers.html#charms.reactive.helpers.data_changed
diff --git a/charms/layers/vyos-proxy/actions.yaml b/charms/layers/vyos-proxy/actions.yaml
deleted file mode 100644 (file)
index 2acc33d..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-"ping":
-  "description": "ping a thing!"
-  "params":
-    "count":
-      "description": "Stop after sending count ECHO_REQUEST packets"
-      "type": "integer"
-      "default": !!int "30"
-    "destination":
-      "description": "destination of ping request"
-      "type": "string"
-  "required":
-  - "destination"
diff --git a/charms/layers/vyos-proxy/actions/ping b/charms/layers/vyos-proxy/actions/ping
deleted file mode 100755 (executable)
index 9850fe7..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env python3
-import sys
-sys.path.append('lib')
-
-from charms.reactive import main
-from charms.reactive import set_state
-from charmhelpers.core.hookenv import action_fail
-
-"""
-`set_state` only works here because it's flushed to disk inside the `main()`
-loop. remove_state will need to be called inside the action method.
-"""
-set_state('actions.ping')
-
-try:
-    main()
-except Exception as e:
-    action_fail(repr(e))
diff --git a/charms/layers/vyos-proxy/config.yaml b/charms/layers/vyos-proxy/config.yaml
deleted file mode 100644 (file)
index 0780d5f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-"options":
-  "hostname":
-    "default": !!null ""
-    "type": "string"
-    "description": "Hostname or IP of the VyOS"
-  "user":
-    "type": "string"
-    "default": "vyos"
-    "description": "Username for VyOS"
-  "pass":
-    "type": "string"
-    "default": !!null ""
-    "description": "Password for VyOS"
diff --git a/charms/layers/vyos-proxy/copyright b/charms/layers/vyos-proxy/copyright
deleted file mode 100644 (file)
index 720356a..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0
-
-Files: *
-Copyright: 2015, Canonical Ltd.
-License: Apache-2.0 
-
-License: Apache-2.0
- On Debian GNU/Linux system you can find the complete text of the
- Apache-2.0 license in '/usr/share/common-licenses/Apache-2.0'
diff --git a/charms/layers/vyos-proxy/icon.svg b/charms/layers/vyos-proxy/icon.svg
deleted file mode 100644 (file)
index e092eef..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
-<!-- Created with Inkscape (http://www.inkscape.org/) -->\r
-\r
-<svg\r
-   xmlns:dc="http://purl.org/dc/elements/1.1/"\r
-   xmlns:cc="http://creativecommons.org/ns#"\r
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\r
-   xmlns:svg="http://www.w3.org/2000/svg"\r
-   xmlns="http://www.w3.org/2000/svg"\r
-   xmlns:xlink="http://www.w3.org/1999/xlink"\r
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"\r
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"\r
-   width="96"\r
-   height="96"\r
-   id="svg6517"\r
-   version="1.1"\r
-   inkscape:version="0.48+devel r12274"\r
-   sodipodi:docname="Juju_charm_icon_template.svg">\r
-  <defs\r
-     id="defs6519">\r
-    <linearGradient\r
-       inkscape:collect="always"\r
-       xlink:href="#Background"\r
-       id="linearGradient6461"\r
-       gradientUnits="userSpaceOnUse"\r
-       x1="0"\r
-       y1="970.29498"\r
-       x2="144"\r
-       y2="970.29498"\r
-       gradientTransform="matrix(0,-0.66666669,0.6660448,0,-866.25992,731.29077)" />\r
-    <linearGradient\r
-       id="Background">\r
-      <stop\r
-         id="stop4178"\r
-         offset="0"\r
-         style="stop-color:#b8b8b8;stop-opacity:1" />\r
-      <stop\r
-         id="stop4180"\r
-         offset="1"\r
-         style="stop-color:#c9c9c9;stop-opacity:1" />\r
-    </linearGradient>\r
-    <filter\r
-       style="color-interpolation-filters:sRGB;"\r
-       inkscape:label="Inner Shadow"\r
-       id="filter1121">\r
-      <feFlood\r
-         flood-opacity="0.59999999999999998"\r
-         flood-color="rgb(0,0,0)"\r
-         result="flood"\r
-         id="feFlood1123" />\r
-      <feComposite\r
-         in="flood"\r
-         in2="SourceGraphic"\r
-         operator="out"\r
-         result="composite1"\r
-         id="feComposite1125" />\r
-      <feGaussianBlur\r
-         in="composite1"\r
-         stdDeviation="1"\r
-         result="blur"\r
-         id="feGaussianBlur1127" />\r
-      <feOffset\r
-         dx="0"\r
-         dy="2"\r
-         result="offset"\r
-         id="feOffset1129" />\r
-      <feComposite\r
-         in="offset"\r
-         in2="SourceGraphic"\r
-         operator="atop"\r
-         result="composite2"\r
-         id="feComposite1131" />\r
-    </filter>\r
-    <filter\r
-       style="color-interpolation-filters:sRGB;"\r
-       inkscape:label="Drop Shadow"\r
-       id="filter950">\r
-      <feFlood\r
-         flood-opacity="0.25"\r
-         flood-color="rgb(0,0,0)"\r
-         result="flood"\r
-         id="feFlood952" />\r
-      <feComposite\r
-         in="flood"\r
-         in2="SourceGraphic"\r
-         operator="in"\r
-         result="composite1"\r
-         id="feComposite954" />\r
-      <feGaussianBlur\r
-         in="composite1"\r
-         stdDeviation="1"\r
-         result="blur"\r
-         id="feGaussianBlur956" />\r
-      <feOffset\r
-         dx="0"\r
-         dy="1"\r
-         result="offset"\r
-         id="feOffset958" />\r
-      <feComposite\r
-         in="SourceGraphic"\r
-         in2="offset"\r
-         operator="over"\r
-         result="composite2"\r
-         id="feComposite960" />\r
-    </filter>\r
-    <clipPath\r
-       clipPathUnits="userSpaceOnUse"\r
-       id="clipPath873">\r
-      <g\r
-         transform="matrix(0,-0.66666667,0.66604479,0,-258.25992,677.00001)"\r
-         id="g875"\r
-         inkscape:label="Layer 1"\r
-         style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline">\r
-        <path\r
-           style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline"\r
-           d="m 46.702703,898.22775 50.594594,0 C 138.16216,898.22775 144,904.06497 144,944.92583 l 0,50.73846 c 0,40.86071 -5.83784,46.69791 -46.702703,46.69791 l -50.594594,0 C 5.8378378,1042.3622 0,1036.525 0,995.66429 L 0,944.92583 C 0,904.06497 5.8378378,898.22775 46.702703,898.22775 Z"\r
-           id="path877"\r
-           inkscape:connector-curvature="0"\r
-           sodipodi:nodetypes="sssssssss" />\r
-      </g>\r
-    </clipPath>\r
-    <filter\r
-       inkscape:collect="always"\r
-       id="filter891"\r
-       inkscape:label="Badge Shadow">\r
-      <feGaussianBlur\r
-         inkscape:collect="always"\r
-         stdDeviation="0.71999962"\r
-         id="feGaussianBlur893" />\r
-    </filter>\r
-  </defs>\r
-  <sodipodi:namedview\r
-     id="base"\r
-     pagecolor="#ffffff"\r
-     bordercolor="#666666"\r
-     borderopacity="1.0"\r
-     inkscape:pageopacity="0.0"\r
-     inkscape:pageshadow="2"\r
-     inkscape:zoom="4.0745362"\r
-     inkscape:cx="18.514671"\r
-     inkscape:cy="49.018169"\r
-     inkscape:document-units="px"\r
-     inkscape:current-layer="layer1"\r
-     showgrid="true"\r
-     fit-margin-top="0"\r
-     fit-margin-left="0"\r
-     fit-margin-right="0"\r
-     fit-margin-bottom="0"\r
-     inkscape:window-width="1920"\r
-     inkscape:window-height="1029"\r
-     inkscape:window-x="0"\r
-     inkscape:window-y="24"\r
-     inkscape:window-maximized="1"\r
-     showborder="true"\r
-     showguides="true"\r
-     inkscape:guide-bbox="true"\r
-     inkscape:showpageshadow="false">\r
-    <inkscape:grid\r
-       type="xygrid"\r
-       id="grid821" />\r
-    <sodipodi:guide\r
-       orientation="1,0"\r
-       position="16,48"\r
-       id="guide823" />\r
-    <sodipodi:guide\r
-       orientation="0,1"\r
-       position="64,80"\r
-       id="guide825" />\r
-    <sodipodi:guide\r
-       orientation="1,0"\r
-       position="80,40"\r
-       id="guide827" />\r
-    <sodipodi:guide\r
-       orientation="0,1"\r
-       position="64,16"\r
-       id="guide829" />\r
-  </sodipodi:namedview>\r
-  <metadata\r
-     id="metadata6522">\r
-    <rdf:RDF>\r
-      <cc:Work\r
-         rdf:about="">\r
-        <dc:format>image/svg+xml</dc:format>\r
-        <dc:type\r
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />\r
-        <dc:title></dc:title>\r
-      </cc:Work>\r
-    </rdf:RDF>\r
-  </metadata>\r
-  <g\r
-     inkscape:label="BACKGROUND"\r
-     inkscape:groupmode="layer"\r
-     id="layer1"\r
-     transform="translate(268,-635.29076)"\r
-     style="display:inline">\r
-    <path\r
-       style="fill:url(#linearGradient6461);fill-opacity:1;stroke:none;display:inline;filter:url(#filter1121)"\r
-       d="m -268,700.15563 0,-33.72973 c 0,-27.24324 3.88785,-31.13513 31.10302,-31.13513 l 33.79408,0 c 27.21507,0 31.1029,3.89189 31.1029,31.13513 l 0,33.72973 c 0,27.24325 -3.88783,31.13514 -31.1029,31.13514 l -33.79408,0 C -264.11215,731.29077 -268,727.39888 -268,700.15563 Z"\r
-       id="path6455"\r
-       inkscape:connector-curvature="0"\r
-       sodipodi:nodetypes="sssssssss" />\r
-  </g>\r
-  <g\r
-     inkscape:groupmode="layer"\r
-     id="layer3"\r
-     inkscape:label="PLACE YOUR PICTOGRAM HERE"\r
-     style="display:inline" />\r
-  <g\r
-     inkscape:groupmode="layer"\r
-     id="layer2"\r
-     inkscape:label="BADGE"\r
-     style="display:none"\r
-     sodipodi:insensitive="true">\r
-    <g\r
-       style="display:inline"\r
-       transform="translate(-340.00001,-581)"\r
-       id="g4394"\r
-       clip-path="none">\r
-      <g\r
-         id="g855">\r
-        <g\r
-           inkscape:groupmode="maskhelper"\r
-           id="g870"\r
-           clip-path="url(#clipPath873)"\r
-           style="opacity:0.6;filter:url(#filter891)">\r
-          <path\r
-             transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-237.54282)"\r
-             d="m 264,552.36218 a 12,12 0 1 1 -24,0 A 12,12 0 1 1 264,552.36218 Z"\r
-             sodipodi:ry="12"\r
-             sodipodi:rx="12"\r
-             sodipodi:cy="552.36218"\r
-             sodipodi:cx="252"\r
-             id="path844"\r
-             style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             sodipodi:type="arc" />\r
-        </g>\r
-        <g\r
-           id="g862">\r
-          <path\r
-             sodipodi:type="arc"\r
-             style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             id="path4398"\r
-             sodipodi:cx="252"\r
-             sodipodi:cy="552.36218"\r
-             sodipodi:rx="12"\r
-             sodipodi:ry="12"\r
-             d="m 264,552.36218 a 12,12 0 1 1 -24,0 A 12,12 0 1 1 264,552.36218 Z"\r
-             transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-238.54282)" />\r
-          <path\r
-             transform="matrix(1.25,0,0,1.25,33,-100.45273)"\r
-             d="m 264,552.36218 a 12,12 0 1 1 -24,0 A 12,12 0 1 1 264,552.36218 Z"\r
-             sodipodi:ry="12"\r
-             sodipodi:rx="12"\r
-             sodipodi:cy="552.36218"\r
-             sodipodi:cx="252"\r
-             id="path4400"\r
-             style="color:#000000;fill:#dd4814;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             sodipodi:type="arc" />\r
-          <path\r
-             sodipodi:type="star"\r
-             style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"\r
-             id="path4459"\r
-             sodipodi:sides="5"\r
-             sodipodi:cx="666.19574"\r
-             sodipodi:cy="589.50385"\r
-             sodipodi:r1="7.2431178"\r
-             sodipodi:r2="4.3458705"\r
-             sodipodi:arg1="1.0471976"\r
-             sodipodi:arg2="1.6755161"\r
-             inkscape:flatsided="false"\r
-             inkscape:rounded="0.1"\r
-             inkscape:randomized="0"\r
-             d="m 669.8173,595.77657 c -0.39132,0.22593 -3.62645,-1.90343 -4.07583,-1.95066 -0.44938,-0.0472 -4.05653,1.36297 -4.39232,1.06062 -0.3358,-0.30235 0.68963,-4.03715 0.59569,-4.47913 -0.0939,-0.44198 -2.5498,-3.43681 -2.36602,-3.8496 0.18379,-0.41279 4.05267,-0.59166 4.44398,-0.81759 0.39132,-0.22593 2.48067,-3.48704 2.93005,-3.4398 0.44938,0.0472 1.81505,3.67147 2.15084,3.97382 0.3358,0.30236 4.08294,1.2817 4.17689,1.72369 0.0939,0.44198 -2.9309,2.86076 -3.11469,3.27355 C 669.9821,591.68426 670.20862,595.55064 669.8173,595.77657 Z"\r
-             transform="matrix(1.511423,-0.16366377,0.16366377,1.511423,-755.37346,-191.93651)" />\r
-        </g>\r
-      </g>\r
-    </g>\r
-  </g>\r
-</svg>\r
diff --git a/charms/layers/vyos-proxy/layer.yaml b/charms/layers/vyos-proxy/layer.yaml
deleted file mode 100644 (file)
index dd254f3..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-"options":
-  "basic":
-    "packages":
-    - "python-dev"
-    - "libffi-dev"
-    - "libssl-dev"
-    "use_venv": !!bool "false"
-    "include_system_packages": !!bool "false"
-  "vyos-proxy": {}
-"includes":
-- "layer:basic"
-"is": "vyos-proxy"
-"repo": "https://osm.etsi.org/gerrit/osm/juju-charms"
diff --git a/charms/layers/vyos-proxy/metadata.yaml b/charms/layers/vyos-proxy/metadata.yaml
deleted file mode 100644 (file)
index 1d29b37..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-"name": "vyos-proxy"
-"summary": "VyOS Proxy charm for ping"
-"description": |
-  VyOS Proxy charm
-"tags":
-- "vnf"
-- "network"
-"maintainers":
-- "Marco Ceppi <marco.ceppi@canonical.com>"
-"series":
-- "xenial"
-- "trusty"
diff --git a/charms/layers/vyos-proxy/reactive/__init__.py b/charms/layers/vyos-proxy/reactive/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/charms/layers/vyos-proxy/reactive/vyos_proxy.py b/charms/layers/vyos-proxy/reactive/vyos_proxy.py
deleted file mode 100644 (file)
index a8fd5e0..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-
-import subprocess
-import paramiko
-
-from charmhelpers.core.hookenv import (
-    config,
-    status_set,
-    action_get,
-    action_set,
-    action_fail,
-)
-
-from charms.reactive import (
-    when,
-    when_not,
-    set_state as set_flag,
-    remove_state as remove_flag,
-)
-
-
-@when('config.changed')
-def test_connection():
-    status_set('maintenance', 'configuring ssh connection')
-    remove_flag('vyos-proxy.ready')
-    try:
-        who, _ = run('whoami')
-    except MgmtNotConfigured as e:
-        remove_flag('vyos-proxy.configured')
-        status_set('blocked', str(e))
-    except subprocess.CalledProcessError as e:
-        remove_flag('vyos-proxy.configured')
-        status_set('blocked', e.output)
-    else:
-        set_flag('vyos-proxy.configured')
-
-
-@when('vyos-proxy.configured')
-@when_not('vyos-proxy.ready')
-def vyos_proxy_ready():
-    status_set('active', 'ready')
-    set_flag('vyos-proxy.ready')
-
-
-@when('actions.ping')
-@when_not('vyos-proxy.configured')
-def pingme():
-    action_fail('proxy is not ready')
-
-
-@when('actions.ping')
-@when('vyos-proxy.configured')
-def pingme_forreal():
-    try:
-        result, err = run('ping -qc {} {}'.format(action_get('count'), action_get('destination')))
-    except:
-        action_fail('ping command failed')
-    finally:
-        remove_flag('actions.ping')
-
-    # Here you can send results back from ping, if you had time to parse it
-    action_set({'output': result})
-
-
-
-class MgmtNotConfigured(Exception):
-    pass
-
-
-def run(cmd):
-    ''' Suddenly this project needs to SSH to something. So we replicate what
-        _run was doing with subprocess using the Paramiko library. This is
-        temporary until this charm /is/ the VPE Router '''
-
-    cfg = config()
-
-    hostname = cfg.get('hostname')
-    password = cfg.get('pass')
-    username = cfg.get('user')
-
-    if not (username and password and hostname):
-        raise MgmtNotConfigured('incomplete remote credentials')
-
-    client = paramiko.SSHClient()
-    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
-
-    try:
-        client.connect(cfg.get('hostname'), port=22,
-                       username=cfg.get('user'), password=cfg.get('pass'))
-    except paramiko.ssh_exception.AuthenticationException:
-        raise MgmtNotConfigured('invalid credentials')
-
-    stdin, stdout, stderr = client.exec_command(cmd)
-    retcode = stdout.channel.recv_exit_status()
-    client.close()  # @TODO re-use connections
-    if retcode > 0:
-        output = stderr.read().strip()
-        raise subprocess.CalledProcessError(returncode=retcode, cmd=cmd,
-                                            output=output)
-    return (''.join(stdout), ''.join(stderr))
diff --git a/charms/layers/vyos-proxy/requirements.txt b/charms/layers/vyos-proxy/requirements.txt
deleted file mode 100644 (file)
index 28ecaca..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-flake8
-pytest
diff --git a/charms/layers/vyos-proxy/revision b/charms/layers/vyos-proxy/revision
deleted file mode 100644 (file)
index c227083..0000000
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/charms/layers/vyos-proxy/tox.ini b/charms/layers/vyos-proxy/tox.ini
deleted file mode 100644 (file)
index 0b8b27a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-[tox]
-skipsdist=True
-envlist = py34, py35
-skip_missing_interpreters = True
-
-[testenv]
-commands = py.test -v
-deps =
-    -r{toxinidir}/requirements.txt
-
-[flake8]
-exclude=docs
diff --git a/charms/layers/vyos-proxy/wheelhouse.txt b/charms/layers/vyos-proxy/wheelhouse.txt
deleted file mode 100644 (file)
index 24d2c9c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-paramiko==2.0.1
diff --git a/descriptor-packages/.gitignore b/descriptor-packages/.gitignore
deleted file mode 100644 (file)
index 0766a22..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-nsd/*/build
-vnfd/*/build
diff --git a/descriptor-packages/Makefile b/descriptor-packages/Makefile
deleted file mode 100644 (file)
index 61710bf..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-SUBDIRS = vnfd nsd
-
-include mk/dirs.mk
diff --git a/descriptor-packages/README b/descriptor-packages/README
deleted file mode 100644 (file)
index 0d99d66..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-#   Copyright 2016 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.
-#
-# Author(s): Austin Cormier
-# Creation Date: 2016/05/23
-
-
-Generates the MWC16 NSD and VNFD descriptor packages from source.
-
-To generate the packages type "make". The VNF and NSD packages will be located
-build/vnfd_pkgs and build/nsd_pkgs.
-
-To clean, type 'make clean'.
-
-You need to install charm tools to compile the charms required for the packages.
-On Fedora, install using: pip install charm-tools
-On Ubuntu, install using: apt install charm-tools
-For other platforms, check https://jujucharms.com/docs/2.0/tools-charm-tools
-You need also docker
-
-Due to license issues, for the IMS VNFD package, the IMS charm is fetched
-extracted from the respective git repository prior to packaging.  Because of
-this, internet access is required to reach github.
diff --git a/descriptor-packages/mk/dirs.mk b/descriptor-packages/mk/dirs.mk
deleted file mode 100644 (file)
index 8e00787..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-TOPDIR=$(shell readlink -f .|sed -e 's/\/descriptor-packages\/.*//')
-TOOLS_DIR := $(TOPDIR)/tools
-
-SUBDIRS_CLEAN = $(addsuffix .clean, $(SUBDIRS))
-SUBDIRS_TEST = $(addsuffix .test, $(SUBDIRS))
-
-.PHONY: $(SUBDIRS) $(SUBDIRS_CLEAN) clean
-
-all: $(SUBDIRS)
-
-clean: $(SUBDIRS_CLEAN)
-
-test: $(SUBDIRS_TEST)
-
-$(SUBDIRS_CLEAN): %.clean:
-       @$(MAKE) --no-print-directory -C $* clean
-
-$(SUBDIRS_TEST): %.test:
-       @$(MAKE) --no-print-directory -C $* test
-
-$(SUBDIRS):
-       @$(MAKE) --no-print-directory -C $@
-
-test:
-       $(TOOLS_DIR)/launch_tests.sh
diff --git a/descriptor-packages/mk/pkg.mk b/descriptor-packages/mk/pkg.mk
deleted file mode 100644 (file)
index 4226ebf..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-
-TOPDIR=$(shell readlink -f .|sed -e 's/\/descriptor-packages\/.*//')
-
-BUILD_DIR := build
-TOOLS_DIR := $(TOPDIR)/descriptor-packages/tools
-PKG_BASE_NAME := $(shell basename $(shell pwd))
-PKG_NAME      := $(addsuffix .tar.gz, $(PKG_BASE_NAME))
-
-CHARM_DIR        := $(TOPDIR)/charms
-CHARM_SRC_DIR    := $(CHARM_DIR)/layers
-CHARM_DOCKER_TAG := charm-tools
-CHARM_BUILD_DIR  := $(CHARM_DIR)/builds
-DOCKER_BUILD     ?=
-
-Q=@
-
-GEN_VNFD_PKG := $(TOOLS_DIR)/gen_vnfd_pkg.sh
-GEN_NSD_PKG  := $(TOOLS_DIR)/gen_nsd_pkg.sh
-GEN_PKG      := $(TOOLS_DIR)/generate_descriptor_pkg.sh
-TEST_PKG     := $(TOOLS_DIR)/validate_descriptor.py
-BUILD_VNFD   := $(shell readlink -f .|sed -e 's/\/.*descriptor-packages//' | grep vnfd)
-
-DEP_FILES = $(wildcard src/*)
-
-ifdef BUILD_VNFD
-$(BUILD_DIR)/$(PKG_BASE_NAME): src
-       $(Q)mkdir -p $@
-       $(Q)cp -rf $</. $@
-       $(Q)$(GEN_VNFD_PKG) $< $@
-else
-$(BUILD_DIR)/$(PKG_BASE_NAME): src
-       $(Q)mkdir -p $@
-       $(Q)cp -rf $</. $@
-       $(Q)$(GEN_NSD_PKG) $< $@
-endif
-
-ifdef VNFD_CHARM
-$(BUILD_DIR)/$(PKG_NAME): $(DEP_FILES) $(CHARM_BUILD_DIR)/$(VNFD_CHARM)
-       $(Q)echo "building $(PKG_BASE_NAME) with charm $(VNFD_CHARM)"
-       $(Q)$(MAKE) --no-print-directory $(BUILD_DIR)/$(PKG_BASE_NAME)
-       $(Q)cp -rf $(CHARM_BUILD_DIR)/$(VNFD_CHARM) $(BUILD_DIR)/$(PKG_BASE_NAME)/charms
-       $(Q)$(GEN_PKG) --no-remove-files -d $(BUILD_DIR) $(BUILD_DIR)/$(PKG_BASE_NAME)
-else
-$(BUILD_DIR)/$(PKG_NAME): $(DEP_FILES)
-       $(Q)echo "building $(PKG_BASE_NAME) $(BUILD_DIR)"
-       $(Q)$(MAKE) --no-print-directory $(BUILD_DIR)/$(PKG_BASE_NAME)
-       $(Q)$(GEN_PKG) --no-remove-files -d $(BUILD_DIR) $(BUILD_DIR)/$(PKG_BASE_NAME)
-endif
-
-ifdef DOCKER_BUILD
-$(CHARM_BUILD_DIR)/%: $(CHARM_SRC_DIR)/%
-       $(Q)docker build -q -t $(CHARM_DOCKER_TAG) $(CHARM_DIR)/.
-       $(CHARM_DIR) $(CHARM_DOCKER_TAG) charm-build -o $(CHARM_DIR) $<
-else
-$(CHARM_BUILD_DIR)/%: $(CHARM_SRC_DIR)/%
-       $(Q)charm build -o $(CHARM_DIR) $<
-endif
-
-clean:
-       $(Q)rm -rf $(BUILD_DIR)
-       $(Q)rm -rf $(CHARM_BUILD_DIR)
-
-test:
-       $(Q)echo -n testing $(shell readlink -f src/*.yaml)  "             "
-       $(Q)$(TEST_PKG) src/*.yaml
-       $(Q)echo OK
-
-.DEFAULT_GOAL := all
diff --git a/descriptor-packages/nsd/Makefile b/descriptor-packages/nsd/Makefile
deleted file mode 100644 (file)
index fdd2045..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-SUBDIRS = $(wildcard */)
-TOPDIR ?= ../
-include $(TOPDIR)/mk/dirs.mk
diff --git a/descriptor-packages/nsd/VyOS_ns/Makefile b/descriptor-packages/nsd/VyOS_ns/Makefile
deleted file mode 100644 (file)
index c5f5f69..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/VyOS_ns/src/VyOS_nsd.yaml b/descriptor-packages/nsd/VyOS_ns/src/VyOS_nsd.yaml
deleted file mode 100644 (file)
index b3f4611..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-nsd-catalog:
-    nsd:
-    -   id: VyOS
-        name: VyOS
-        short-name: VyOS
-        description: VyOS NS Example NS
-        logo: osm_2x.png
-        constituent-vnfd:
-        -   member-vnf-index: '1'
-            vnfd-id-ref: VyOS
-        vld:
-        -   id: data
-            name: data
-            short-name: data
-            type: ELAN
-            vim-network-name: net-corp
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: eth1
-                vnfd-id-ref: VyOS
-        -   id: management
-            name: management
-            short-name: management
-            mgmt-network: 'true'
-            type: ELAN
-            vim-network-name: net-mgmtOS
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: eth0
-                vnfd-id-ref: VyOS
-        service-primitive:
-        -   name: Config VyOS
-            vnf-primitive-group:
-            -   member-vnf-index-ref: '1'
-                vnfd-id-ref: VyOS
-                vnfd-name: VyOS
-                primitive:
-                -   index: '1'
-                    name: config
-        -   name: ping
-            vnf-primitive-group:
-            -   member-vnf-index-ref: '1'
-                vnfd-id-ref: VyOS
-                vnfd-name: VyOS
-                primitive:
-                -   index: '1'
-                    name: ping
\ No newline at end of file
diff --git a/descriptor-packages/nsd/VyOS_ns/src/icons/osm_2x.png b/descriptor-packages/nsd/VyOS_ns/src/icons/osm_2x.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/nsd/VyOS_ns/src/icons/osm_2x.png and /dev/null differ
diff --git a/descriptor-packages/nsd/cirros_2vnf_ns/Makefile b/descriptor-packages/nsd/cirros_2vnf_ns/Makefile
deleted file mode 100644 (file)
index c5f5f69..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/cirros_2vnf_ns/src/cirros_2vnf_nsd.yaml b/descriptor-packages/nsd/cirros_2vnf_ns/src/cirros_2vnf_nsd.yaml
deleted file mode 100644 (file)
index c573ab1..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-nsd-catalog:
-    nsd:
-    -   id: cirros_2vnf_nsd
-        name: cirros_2vnf_ns
-        short-name: cirros_2vnf_ns
-        description: Generated by OSM pacakage generator
-        vendor: OSM
-        version: '1.0'
-
-        # Place the logo as png in icons directory and provide the name here
-        logo: osm_2x.png
-
-        # Specify the VNFDs that are part of this NSD
-        constituent-vnfd:
-            # The member-vnf-index needs to be unique, starting from 1
-            # vnfd-id-ref is the id of the VNFD
-            # Multiple constituent VNFDs can be specified
-        -   member-vnf-index: 1
-            vnfd-id-ref: cirros_vnfd
-        -   member-vnf-index: 2
-            vnfd-id-ref: cirros_vnfd
-
-
-        vld:
-        # Networks for the VNFs
-            -   id: cirros_2vnf_nsd_vld1
-                name: cirros_2vnf_nsd_vld1
-                short-name: cirros_2vnf_nsd_vld1
-                type: ELAN
-                mgmt-network: 'true'
-                # vim-network-name: <update>
-                # provider-network:
-                #     segmentation_id: <update>
-                vnfd-connection-point-ref:
-                # Specify the constituent VNFs
-                # member-vnf-index-ref - entry from constituent vnf
-                # vnfd-id-ref - VNFD id
-                # vnfd-connection-point-ref - connection point name in the VNFD
-                -   member-vnf-index-ref: 1
-                    vnfd-id-ref: cirros_vnfd
-                    vnfd-connection-point-ref: eth0
-                -   member-vnf-index-ref: 2
-                    vnfd-id-ref: cirros_vnfd
-                    vnfd-connection-point-ref: eth0
diff --git a/descriptor-packages/nsd/cirros_2vnf_ns/src/icons/osm_2x.png b/descriptor-packages/nsd/cirros_2vnf_ns/src/icons/osm_2x.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/nsd/cirros_2vnf_ns/src/icons/osm_2x.png and /dev/null differ
diff --git a/descriptor-packages/nsd/cirros_noportsecurity_2vnf_ns/Makefile b/descriptor-packages/nsd/cirros_noportsecurity_2vnf_ns/Makefile
deleted file mode 100644 (file)
index c5f5f69..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/cirros_noportsecurity_2vnf_ns/src/README b/descriptor-packages/nsd/cirros_noportsecurity_2vnf_ns/src/README
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/descriptor-packages/nsd/cirros_noportsecurity_2vnf_ns/src/cirros_noportsecurity_2vnf_nsd.yaml b/descriptor-packages/nsd/cirros_noportsecurity_2vnf_ns/src/cirros_noportsecurity_2vnf_nsd.yaml
deleted file mode 100644 (file)
index 9e5a23a..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-nsd-catalog:
-    nsd:
-    -   id: cirros_noportsecurity_2vnf_nsd
-        name: cirros_noportsecurity_2vnf_ns
-        short-name: cirros_noportsecurity_2vnf_ns
-        description: Generated by OSM pacakage generator
-        vendor: OSM
-        version: '1.0'
-
-        # Place the logo as png in icons directory and provide the name here
-        logo: osm_2x.png
-
-        # Specify the VNFDs that are part of this NSD
-        constituent-vnfd:
-            # The member-vnf-index needs to be unique, starting from 1
-            # vnfd-id-ref is the id of the VNFD
-            # Multiple constituent VNFDs can be specified
-        -   member-vnf-index: 1
-            vnfd-id-ref: cirros_noportsecurity_vnfd
-        -   member-vnf-index: 2
-            vnfd-id-ref: cirros_noportsecurity_vnfd
-
-
-        vld:
-        # Networks for the VNFs
-            -   id: cirros_2vnf_nsd_vld1
-                name: cirros_2vnf_nsd_vld1
-                short-name: cirros_2vnf_nsd_vld1
-                type: ELAN
-                mgmt-network: 'true'
-                # vim-network-name: <update>
-                # provider-network:
-                #     segmentation_id: <update>
-                vnfd-connection-point-ref:
-                # Specify the constituent VNFs
-                # member-vnf-index-ref - entry from constituent vnf
-                # vnfd-id-ref - VNFD id
-                # vnfd-connection-point-ref - connection point name in the VNFD
-                -   member-vnf-index-ref: 1
-                    vnfd-id-ref: cirros_noportsecurity_vnfd
-                    vnfd-connection-point-ref: eth0
-                -   member-vnf-index-ref: 2
-                    vnfd-id-ref: cirros_noportsecurity_vnfd
-                    vnfd-connection-point-ref: eth0
diff --git a/descriptor-packages/nsd/cirros_noportsecurity_2vnf_ns/src/icons/osm_2x.png b/descriptor-packages/nsd/cirros_noportsecurity_2vnf_ns/src/icons/osm_2x.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/nsd/cirros_noportsecurity_2vnf_ns/src/icons/osm_2x.png and /dev/null differ
diff --git a/descriptor-packages/nsd/cirros_ns/Makefile b/descriptor-packages/nsd/cirros_ns/Makefile
deleted file mode 100644 (file)
index c5f5f69..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/cirros_ns/src/cirros_nsd.yaml b/descriptor-packages/nsd/cirros_ns/src/cirros_nsd.yaml
deleted file mode 100644 (file)
index 878eac0..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-##
-# Copyright 2019 ETSI
-#
-# All Rights Reserved.
-#
-# 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.
-##
-
-nsd-catalog:
-    nsd:
-    -   id: cirros_nsd
-        name: cirros_ns
-        short-name: cirros_ns
-        description: Generated by OSM pacakage generator
-        vendor: OSM
-        version: '1.0'
-
-        # Place the logo as png in icons directory and provide the name here
-        logo: osm_2x.png
-
-        # Specify the VNFDs that are part of this NSD
-        constituent-vnfd:
-            # The member-vnf-index needs to be unique, starting from 1
-            # vnfd-id-ref is the id of the VNFD
-            # Multiple constituent VNFDs can be specified
-        -   member-vnf-index: 1
-            vnfd-id-ref: cirros_vnfd
-        scaling-group-descriptor:
-        -   name: "scaling_cirros"
-            vnfd-member:
-            -   count: 1
-                member-vnf-index-ref: 1
-            min-instance-count: 0
-            max-instance-count: 10
-            scaling-policy:
-            -   scaling-type: "manual"
-                cooldown-time: 10
-                threshold-time: 10
-                name: manual_scale
-        vld:
-        # Networks for the VNFs
-            -   id: mgmtnet
-                name: mgmtnet
-                type: ELAN
-                mgmt-network: 'true'
-                # vim-network-name: <update>
-                # provider-network:
-                #     segmentation_id: <update>
-                vnfd-connection-point-ref:
-                # Specify the constituent VNFs
-                # member-vnf-index-ref - entry from constituent vnf
-                # vnfd-id-ref - VNFD id
-                # vnfd-connection-point-ref - connection point name in the VNFD
-                -   member-vnf-index-ref: 1
-                    vnfd-id-ref: cirros_vnfd
-                    # NOTE: Validate the entry below
-                    vnfd-connection-point-ref: eth0
diff --git a/descriptor-packages/nsd/cirros_ns/src/icons/osm_2x.png b/descriptor-packages/nsd/cirros_ns/src/icons/osm_2x.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/nsd/cirros_ns/src/icons/osm_2x.png and /dev/null differ
diff --git a/descriptor-packages/nsd/cirros_set_vim_network_ns/Makefile b/descriptor-packages/nsd/cirros_set_vim_network_ns/Makefile
deleted file mode 100644 (file)
index c5f5f69..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/cirros_set_vim_network_ns/src/cirros_set_vim_network_nsd.yaml b/descriptor-packages/nsd/cirros_set_vim_network_ns/src/cirros_set_vim_network_nsd.yaml
deleted file mode 100755 (executable)
index 2fabb3b..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-nsd-catalog:
-    nsd:
-    -   id: cirros_set_vim_network_ns
-        name: cirros_set_vim_network_ns
-        short-name: cirros_set_vim_network_ns
-        description: Generated by OSM pacakage generator
-        vendor: OSM
-        version: '1.0'
-
-        # Place the logo as png in icons directory and provide the name here
-        logo: osm_2x.png
-
-        # Specify the VNFDs that are part of this NSD
-        constituent-vnfd:
-            # The member-vnf-index needs to be unique, starting from 1
-            # vnfd-id-ref is the id of the VNFD
-            # Multiple constituent VNFDs can be specified
-        -   member-vnf-index: 1
-            vnfd-id-ref: cirros_vnfd
-        scaling-group-descriptor:
-        -   name: "scaling_cirros"
-            vnfd-member:
-            -   count: 1
-                member-vnf-index-ref: 1
-            min-instance-count: 0
-            max-instance-count: 10
-            scaling-policy:
-            -   scaling-type: "manual"
-                cooldown-time: 10
-                threshold-time: 10
-                name: manual_scale
-        vld:
-        # Networks for the VNFs
-            -   id: cirros_nsd_vld1
-                name: cirros_nsd_vld1
-                type: ELAN
-                mgmt-network: 'true'
-                # vim-network-name: <update>
-                # provider-network:
-                #     segmentation_id: <update>
-                vim-network-name: mgmt
-                vnfd-connection-point-ref:
-                # Specify the constituent VNFs
-                # member-vnf-index-ref - entry from constituent vnf
-                # vnfd-id-ref - VNFD id
-                # vnfd-connection-point-ref - connection point name in the VNFD
-                -   member-vnf-index-ref: 1
-                    vnfd-id-ref: cirros_vnfd
-                    # NOTE: Validate the entry below
-                    vnfd-connection-point-ref: eth0
diff --git a/descriptor-packages/nsd/cirros_set_vim_network_ns/src/icons/osm_2x.png b/descriptor-packages/nsd/cirros_set_vim_network_ns/src/icons/osm_2x.png
deleted file mode 100755 (executable)
index 62012d2..0000000
Binary files a/descriptor-packages/nsd/cirros_set_vim_network_ns/src/icons/osm_2x.png and /dev/null differ
diff --git a/descriptor-packages/nsd/dns_aws_ns/Makefile b/descriptor-packages/nsd/dns_aws_ns/Makefile
deleted file mode 100644 (file)
index c5f5f69..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/dns_aws_ns/src/dns_aws_nsd.yaml b/descriptor-packages/nsd/dns_aws_ns/src/dns_aws_nsd.yaml
deleted file mode 100755 (executable)
index a6b4a0d..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-nsd:nsd-catalog:
-    nsd:
-    -   constituent-vnfd:
-        -   member-vnf-index: '1'
-            start-by-default: 'true'
-            vnfd-id-ref: dns_forwarder
-        id: dns_forwarder_ns
-        logo: dns.jpg
-        name: dns_forwarder_ns
-        vld:
-        -   id: management
-            mgmt-network: 'true'
-            name: management
-            vim-network-name: subnet-8a91b2c0
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: eth0
-                vnfd-id-ref: dns_forwarder
diff --git a/descriptor-packages/nsd/dns_aws_ns/src/icons/dns.jpg b/descriptor-packages/nsd/dns_aws_ns/src/icons/dns.jpg
deleted file mode 100644 (file)
index 6cec5e1..0000000
Binary files a/descriptor-packages/nsd/dns_aws_ns/src/icons/dns.jpg and /dev/null differ
diff --git a/descriptor-packages/nsd/hackfest_ansible_ns/Makefile b/descriptor-packages/nsd/hackfest_ansible_ns/Makefile
deleted file mode 100644 (file)
index 9c18082..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/hackfest_ansible_ns/src/ansiblecharm_nsd.yaml b/descriptor-packages/nsd/hackfest_ansible_ns/src/ansiblecharm_nsd.yaml
deleted file mode 100644 (file)
index 031ed4e..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-nsd:nsd-catalog:
-    nsd:
-    -   id: ansiblecharm_nsd
-        name: ansiblecharm_nsd
-        short-name: ansiblecharm_nsd
-        description: Generated by OSM package generator
-        vendor: OSM
-        logo: osm.png
-        version: '1.0'
-        constituent-vnfd:
-            # The member-vnf-index needs to be unique, starting from 1
-            # vnfd-id-ref is the id of the VNFD
-            # Multiple constituent VNFDs can be specified
-        -   member-vnf-index: 1
-            vnfd-id-ref: ansiblecharm_vnfd
-        vld:
-        # Networks for the VNFs
-        -   id: mgmtnet
-            name: mgmtnet
-            short-name: mgmtnet
-            type: ELAN
-            mgmt-network: 'true'
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: 1
-                vnfd-id-ref: ansiblecharm_vnfd
-                vnfd-connection-point-ref: vnf-cp0
diff --git a/descriptor-packages/nsd/hackfest_ansible_ns/src/icons/osm.png b/descriptor-packages/nsd/hackfest_ansible_ns/src/icons/osm.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/nsd/hackfest_ansible_ns/src/icons/osm.png and /dev/null differ
diff --git a/descriptor-packages/nsd/hackfest_basic_ns/Makefile b/descriptor-packages/nsd/hackfest_basic_ns/Makefile
deleted file mode 100644 (file)
index 9c18082..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/hackfest_basic_ns/src/hackfest_basic_nsd.yaml b/descriptor-packages/nsd/hackfest_basic_ns/src/hackfest_basic_nsd.yaml
deleted file mode 100644 (file)
index 56c7d99..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-nsd:nsd-catalog:
-    nsd:
-    -   id: hackfest_basic-ns
-        name: hackfest_basic-ns
-        short-name: hackfest_basic-ns
-        description: Simple NS with a single VNF and a single VL
-        version: '1.0'
-        logo: osm.png
-        constituent-vnfd:
-        -   vnfd-id-ref: hackfest_basic-vnf
-            member-vnf-index: '1'
-        vld:
-        -   id: mgmtnet
-            name: mgmtnet
-            short-name: mgmtnet
-            type: ELAN
-            mgmt-network: 'true'
-            vnfd-connection-point-ref:
-            -   vnfd-id-ref: hackfest_basic-vnf
-                member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: vnf-cp0
-
diff --git a/descriptor-packages/nsd/hackfest_basic_ns/src/icons/osm.png b/descriptor-packages/nsd/hackfest_basic_ns/src/icons/osm.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/nsd/hackfest_basic_ns/src/icons/osm.png and /dev/null differ
diff --git a/descriptor-packages/nsd/hackfest_cloudinit_ns/Makefile b/descriptor-packages/nsd/hackfest_cloudinit_ns/Makefile
deleted file mode 100644 (file)
index 9c18082..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/hackfest_cloudinit_ns/src/hackfest_cloudinit_nsd.yaml b/descriptor-packages/nsd/hackfest_cloudinit_ns/src/hackfest_cloudinit_nsd.yaml
deleted file mode 100755 (executable)
index d676c59..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-nsd:nsd-catalog:
-    nsd:
-    -   id: hackfest_cloudinit-ns
-        name: hackfest_cloudinit-ns
-        short-name: hackfest_cloudinit-ns
-        description: NS with 2 VNFs with cloudinit connected by datanet and mgmtnet VLs
-        version: '1.0'
-        logo: osm.png
-        constituent-vnfd:
-        -   vnfd-id-ref: hackfest_cloudinit-vnf
-            member-vnf-index: '1'
-        -   vnfd-id-ref: hackfest_cloudinit-vnf
-            member-vnf-index: '2'
-        vld:
-        -   id: mgmtnet
-            name: mgmtnet
-            short-name: mgmtnet
-            type: ELAN
-            mgmt-network: 'true'
-            vim-network-name: mgmt
-            vnfd-connection-point-ref:
-            -   vnfd-id-ref: hackfest_cloudinit-vnf
-                member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: vnf-mgmt
-            -   vnfd-id-ref: hackfest_cloudinit-vnf
-                member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: vnf-mgmt
-        -   id: datanet
-            name: datanet
-            short-name: datanet
-            type: ELAN
-            vnfd-connection-point-ref:
-            -   vnfd-id-ref: hackfest_cloudinit-vnf
-                member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: vnf-data
-            -   vnfd-id-ref: hackfest_cloudinit-vnf
-                member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: vnf-data
-
diff --git a/descriptor-packages/nsd/hackfest_cloudinit_ns/src/icons/osm.png b/descriptor-packages/nsd/hackfest_cloudinit_ns/src/icons/osm.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/nsd/hackfest_cloudinit_ns/src/icons/osm.png and /dev/null differ
diff --git a/descriptor-packages/nsd/hackfest_epasriov_ns/Makefile b/descriptor-packages/nsd/hackfest_epasriov_ns/Makefile
deleted file mode 100644 (file)
index 9c18082..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/hackfest_epasriov_ns/src/hackfest_epasriov_nsd.yaml b/descriptor-packages/nsd/hackfest_epasriov_ns/src/hackfest_epasriov_nsd.yaml
deleted file mode 100755 (executable)
index cc14207..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-nsd:nsd-catalog:
-    nsd:
-    -   id: hackfest_epasriov-ns
-        name: hackfest_epasriov-ns
-        short-name: hackfest_epasriov-ns
-        description: NS with 2 VNFs hackfest_epasriov-vnf connected by datanet and mgmtnet VLs
-        version: '1.0'
-        logo: osm.png
-        constituent-vnfd:
-        -   vnfd-id-ref: hackfest_epasriov-vnf
-            member-vnf-index: '1'
-        -   vnfd-id-ref: hackfest_epasriov-vnf
-            member-vnf-index: '2'
-        vld:
-        -   id: mgmtnet
-            name: mgmtnet
-            short-name: mgmtnet
-            type: ELAN
-            mgmt-network: 'true'
-            vim-network-name: mgmt
-            vnfd-connection-point-ref:
-            -   vnfd-id-ref: hackfest_epasriov-vnf
-                member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: vnf-mgmt
-            -   vnfd-id-ref: hackfest_epasriov-vnf
-                member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: vnf-mgmt
-        -   id: datanet
-            name: datanet
-            short-name: datanet
-            type: ELAN
-            vnfd-connection-point-ref:
-            -   vnfd-id-ref: hackfest_epasriov-vnf
-                member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: vnf-data
-            -   vnfd-id-ref: hackfest_epasriov-vnf
-                member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: vnf-data
-
diff --git a/descriptor-packages/nsd/hackfest_epasriov_ns/src/icons/osm.png b/descriptor-packages/nsd/hackfest_epasriov_ns/src/icons/osm.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/nsd/hackfest_epasriov_ns/src/icons/osm.png and /dev/null differ
diff --git a/descriptor-packages/nsd/hackfest_multivdu_ns/Makefile b/descriptor-packages/nsd/hackfest_multivdu_ns/Makefile
deleted file mode 100644 (file)
index 9c18082..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/hackfest_multivdu_ns/src/hackfest_multivdu_nsd.yaml b/descriptor-packages/nsd/hackfest_multivdu_ns/src/hackfest_multivdu_nsd.yaml
deleted file mode 100755 (executable)
index c564846..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-nsd:nsd-catalog:
-    nsd:
-    -   id: hackfest_multivdu-ns
-        name: hackfest_multivdu-ns
-        short-name: hackfest_multivdu-ns
-        description: NS with 2 VNFs connected by datanet and mgmtnet VLs
-        version: '1.0'
-        logo: osm.png
-        constituent-vnfd:
-        -   vnfd-id-ref: hackfest_multivdu-vnf
-            member-vnf-index: '1'
-        -   vnfd-id-ref: hackfest_multivdu-vnf
-            member-vnf-index: '2'
-        vld:
-        -   id: mgmtnet
-            name: mgmtnet
-            short-name: mgmtnet
-            type: ELAN
-            mgmt-network: 'true'
-            vim-network-name: mgmt
-            vnfd-connection-point-ref:
-            -   vnfd-id-ref: hackfest_multivdu-vnf
-                member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: vnf-mgmt
-            -   vnfd-id-ref: hackfest_multivdu-vnf
-                member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: vnf-mgmt
-        -   id: datanet
-            name: datanet
-            short-name: datanet
-            type: ELAN
-            vnfd-connection-point-ref:
-            -   vnfd-id-ref: hackfest_multivdu-vnf
-                member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: vnf-data
-            -   vnfd-id-ref: hackfest_multivdu-vnf
-                member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: vnf-data
-
diff --git a/descriptor-packages/nsd/hackfest_multivdu_ns/src/icons/osm.png b/descriptor-packages/nsd/hackfest_multivdu_ns/src/icons/osm.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/nsd/hackfest_multivdu_ns/src/icons/osm.png and /dev/null differ
diff --git a/descriptor-packages/nsd/hackfest_simplecharm_ns/Makefile b/descriptor-packages/nsd/hackfest_simplecharm_ns/Makefile
deleted file mode 100644 (file)
index 9c18082..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/hackfest_simplecharm_ns/src/hackfest_simplecharm_nsd.yaml b/descriptor-packages/nsd/hackfest_simplecharm_ns/src/hackfest_simplecharm_nsd.yaml
deleted file mode 100644 (file)
index aebed0a..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-nsd:nsd-catalog:
-    nsd:
-    -   id: hackfest-simplecharm-ns
-        name: hackfest-simplecharm-ns
-        short-name: hackfest-simplecharm-ns
-        description: NS with 2 VNFs hackfest-simplecharm-vnf connected by datanet and mgmtnet VLs
-        version: '1.0'
-        logo: osm.png
-        constituent-vnfd:
-        -   vnfd-id-ref: hackfest-simplecharm-vnf
-            member-vnf-index: '1'
-        -   vnfd-id-ref: hackfest-simplecharm-vnf
-            member-vnf-index: '2'
-        vld:
-        -   id: mgmtnet
-            name: mgmtnet
-            short-name: mgmtnet
-            type: ELAN
-            mgmt-network: 'true'
-            vim-network-name: mgmt
-            vnfd-connection-point-ref:
-            -   vnfd-id-ref: hackfest-simplecharm-vnf
-                member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: vnf-mgmt
-            -   vnfd-id-ref: hackfest-simplecharm-vnf
-                member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: vnf-mgmt
-        -   id: datanet
-            name: datanet
-            short-name: datanet
-            type: ELAN
-            vnfd-connection-point-ref:
-            -   vnfd-id-ref: hackfest-simplecharm-vnf
-                member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: vnf-data
-            -   vnfd-id-ref: hackfest-simplecharm-vnf
-                member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: vnf-data
-
diff --git a/descriptor-packages/nsd/hackfest_simplecharm_ns/src/icons/osm.png b/descriptor-packages/nsd/hackfest_simplecharm_ns/src/icons/osm.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/nsd/hackfest_simplecharm_ns/src/icons/osm.png and /dev/null differ
diff --git a/descriptor-packages/nsd/ims_allin1_corpa/Makefile b/descriptor-packages/nsd/ims_allin1_corpa/Makefile
deleted file mode 100644 (file)
index c5f5f69..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/ims_allin1_corpa/src/IMS-corpA__nsd.yaml b/descriptor-packages/nsd/ims_allin1_corpa/src/IMS-corpA__nsd.yaml
deleted file mode 100644 (file)
index 3124886..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-nsd-catalog:
-    nsd:
-    -   id: IMS-corpA
-        name: IMS-corpA
-        short-name: IMS-corpA
-        description: All in one Clearwater IMS for corporation A in MWC16
-        logo: osm_2x.png
-        constituent-vnfd:
-        -   member-vnf-index: '1'
-            vnfd-id-ref: IMS-ALLIN1_2p
-        vld:
-        -   id: data
-            name: data
-            short-name: data
-            type: ELAN
-            vim-network-name: net-corp:108
-            provider-network:
-                physical-network: net-corp
-                segmentation_id: '108'
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: eth0
-                vnfd-id-ref: IMS-ALLIN1_2p
-        -   id: management
-            mgmt-network: 'true'
-            name: management
-            short-name: management
-            type: ELAN
-            vim-network-name: net-mgmtOS
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: eth1
-                vnfd-id-ref: IMS-ALLIN1_2p
-        service-primitive:
-        -   name: Update Domain
-            vnf-primitive-group:
-            -   member-vnf-index-ref: '1'
-                vnfd-id-ref: IMS-ALLIN1_2p
-                vnfd-name: cwims_vnfd
-                primitive:
-                -   index: '1'
-                    name: config
-        -   name: Add User
-            vnf-primitive-group:
-            -   member-vnf-index-ref: '1'
-                vnfd-id-ref: IMS-ALLIN1_2p
-                vnfd-name: cwims_vnfd
-                primitive:
-                -   index: '1'
-                    name: create-update-user
-        -   name: Delete User
-            vnf-primitive-group:
-            -   member-vnf-index-ref: '1'
-                vnfd-id-ref: IMS-ALLIN1_2p
-                vnfd-name: cwims_vnfd
-                primitive:
-                -   index: '1'
-                    name: delete-user
\ No newline at end of file
diff --git a/descriptor-packages/nsd/ims_allin1_corpa/src/icons/osm_2x.png b/descriptor-packages/nsd/ims_allin1_corpa/src/icons/osm_2x.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/nsd/ims_allin1_corpa/src/icons/osm_2x.png and /dev/null differ
diff --git a/descriptor-packages/nsd/ims_allin1_corpa/src/vnf_config/IMS-ALLIN1_2p__1.yaml b/descriptor-packages/nsd/ims_allin1_corpa/src/vnf_config/IMS-ALLIN1_2p__1.yaml
deleted file mode 100644 (file)
index 33c5ef9..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-initial_config_primitive:
-- name: config
-  parameter:
-    proxied_ip: <rw_mgmt_ip>
diff --git a/descriptor-packages/nsd/no_port_security_ns/Makefile b/descriptor-packages/nsd/no_port_security_ns/Makefile
deleted file mode 100644 (file)
index 91f8792..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-#   Copyright 2020 Tech Mahindra Limited
-#
-#   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.
-#
-#   Author: Mrityunjay Yadav <MY00514913@TechMahindra.com>, Jayant Madavi
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/no_port_security_ns/src/icons/osm.png b/descriptor-packages/nsd/no_port_security_ns/src/icons/osm.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/nsd/no_port_security_ns/src/icons/osm.png and /dev/null differ
diff --git a/descriptor-packages/nsd/no_port_security_ns/src/no_port_security_nsd.yaml b/descriptor-packages/nsd/no_port_security_ns/src/no_port_security_nsd.yaml
deleted file mode 100644 (file)
index 097e615..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-##
-# Copyright 2020 Tech Mahindra Limited
-#
-# All Rights Reserved.
-#
-# 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.
-#
-# Author: Mrityunjay Yadav <MY00514913@TechMahindra.com>, Jayant Madavi
-##
-
-
-nsd:nsd-catalog:
-    nsd:
-    -   id: no_port_security-ns
-        name: no_port_security-ns
-        short-name: no_port_security-ns
-        description: Simple NS with a single VNF and a single VL
-        version: '1.0'
-        logo: osm.png
-        constituent-vnfd:
-        -   vnfd-id-ref: hackfest_basic-vnf
-            member-vnf-index: '1'
-        vld:
-        -   id: noPortSecurity
-            name: noPortSecurity
-            short-name: noPortSecurity
-            type: ELAN
-            vnfd-connection-point-ref:
-            -   vnfd-id-ref: hackfest_basic-vnf
-                member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: vnf-cp0
diff --git a/descriptor-packages/nsd/ping_pong_ns/Makefile b/descriptor-packages/nsd/ping_pong_ns/Makefile
deleted file mode 100644 (file)
index c5f5f69..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/ping_pong_ns/src/icons/rift_logo.png b/descriptor-packages/nsd/ping_pong_ns/src/icons/rift_logo.png
deleted file mode 100644 (file)
index 09b47c7..0000000
Binary files a/descriptor-packages/nsd/ping_pong_ns/src/icons/rift_logo.png and /dev/null differ
diff --git a/descriptor-packages/nsd/ping_pong_ns/src/ping_pong_nsd.yaml b/descriptor-packages/nsd/ping_pong_ns/src/ping_pong_nsd.yaml
deleted file mode 100644 (file)
index bec5997..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-#
-#   Copyright 2016 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.
-#
-#
-
-nsd-catalog:
-    nsd:
-     -  id: rift_ping_pong_ns
-        logo: rift_logo.png
-        name: ping_pong_ns
-        short-name: ping_pong_ns
-        vendor: RIFT.io
-        version: '1.1'
-        description: RIFT.io sample ping pong network service
-        constituent-vnfd:
-        -   member-vnf-index: '1'
-            vnfd-id-ref: rift_ping_vnf
-        -   member-vnf-index: '2'
-            vnfd-id-ref: rift_pong_vnf
-        initial-service-primitive:
-        -   name: start traffic
-            parameter:
-            -   name: port
-                value: 5555
-            -   name: ssh-username
-                value: fedora
-            -   name: ssh-password
-                value: fedora
-            seq: '1'
-            user-defined-script: start_traffic.py
-        input-parameter-xpath:
-        -   xpath: /nsd:nsd-catalog/nsd:nsd/nsd:vendor
-        ip-profiles:
-        -   description: Inter VNF Link
-            ip-profile-params:
-                gateway-address: 31.31.31.210
-                ip-version: ipv4
-                subnet-address: 31.31.31.0/24
-                dhcp-params:
-                  count: 200
-                  start-address: 31.31.31.2
-            name: InterVNFLink
-        placement-groups:
-        -   member-vnfd:
-            -   member-vnf-index-ref: '1'
-                vnfd-id-ref: rift_ping_vnf
-            -   member-vnf-index-ref: '2'
-                vnfd-id-ref: rift_pong_vnf
-            name: Orcus
-            requirement: Place this VM on the Kuiper belt object Orcus
-            strategy: COLOCATION
-        -   member-vnfd:
-            -   member-vnf-index-ref: '1'
-                vnfd-id-ref: rift_ping_vnf
-            -   member-vnf-index-ref: '2'
-                vnfd-id-ref: rift_pong_vnf
-            name: Quaoar
-            requirement: Place this VM on the Kuiper belt object Quaoar
-            strategy: COLOCATION
-        vld:
-        -   id: mgmt_vl
-            description: Management VL
-            name: mgmt_vl
-            short-name: mgmt_vl
-            vim-network-name: mgmt
-            type: ELAN
-            vendor: RIFT.io
-            version: '1.0'
-            mgmt-network: 'true'
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: ping_vnfd/cp0
-                vnfd-id-ref: rift_ping_vnf
-            -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: pong_vnfd/cp0
-                vnfd-id-ref: rift_pong_vnf
-        -   id: ping_pong_vl1
-            description: Data VL
-            ip-profile-ref: InterVNFLink
-            name: data_vl
-            short-name: data_vl
-            type: ELAN
-            vendor: RIFT.io
-            version: '1.0'
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: ping_vnfd/cp1
-                vnfd-id-ref: rift_ping_vnf
-            -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: pong_vnfd/cp1
-                vnfd-id-ref: rift_pong_vnf
diff --git a/descriptor-packages/nsd/ping_pong_ns/src/scripts/start_traffic.py b/descriptor-packages/nsd/ping_pong_ns/src/scripts/start_traffic.py
deleted file mode 100755 (executable)
index 87c309f..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-#!/usr/bin/env python3
-
-############################################################################
-# Copyright 2016 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.                                           #
-############################################################################
-
-
-import argparse
-import logging
-import paramiko
-import os
-import subprocess
-import sys
-import time
-
-import yaml
-
-
-def ssh(cmd, host, user, password):
-    """ Run an arbitrary command over SSH. """
-
-    client = paramiko.SSHClient()
-    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
-
-    client.connect(host, port=22, username=user, password=password)
-
-    stdin, stdout, stderr = client.exec_command(cmd, get_pty=True)
-    retcode = stdout.channel.recv_exit_status()
-    client.close()
-
-    return (
-        retcode,
-        stdout.read().decode('utf-8').strip(),
-        stderr.read().decode('utf-8').strip()
-    )
-
-
-def start_traffic(yaml_cfg, logger):
-    '''Use curl and set admin status to enable on pong and ping vnfs'''
-
-    curl_fmt = 'curl -D /dev/stdout -H "Accept: application/vnd.yang.data' \
-                   '+xml" -H "Content-Type: application/vnd.yang.data+json" ' \
-                   '-X POST -d "{{ {data} }}" http://127.0.0.1:' \
-                   '{mgmt_port}/api/v1/{vnf_type}/{url}'
-
-    # Get userid and password for the VNF
-    user = yaml_cfg['parameter']['ssh-username']
-    passwd = yaml_cfg['parameter']['ssh-password']
-
-    # Get port from user parameter
-    service_port = yaml_cfg['parameter']['port']
-
-    service_ip = None
-
-    def exec_cmd(vnf_type, mgmt_ip, port, url, data):
-        curl_cmd = curl_fmt.format(
-            mgmt_port=port,
-            vnf_type=vnf_type,
-            data=data,
-            url=url
-        )
-
-        logger.debug("Executing cmd: %s", curl_cmd)
-        rc, out, err = ssh(curl_cmd, mgmt_ip, user, passwd)
-
-        if rc != 0:
-            logger.error("cmd={}, rc={}, stderr={}, stdout={}".
-                         format(curl_cmd, rc, err, out))
-        else:
-            logger.debug("cmd={}, rc={}, stderr={}, stdout={}".
-                         format(curl_cmd, rc, err, out))
-
-        return rc
-
-    def setup_service(mgmt_ip, port, vnf_type):
-        data = '\\"ip\\":\\"{}\\", \\"port\\":5555'.format(service_ip)
-        return exec_cmd(vnf_type, mgmt_ip, port, 'server', data)
-
-    def enable_service(mgmt_ip, port, vnf_type):
-        data='\\"enable\\":true'
-        url='adminstatus/state'
-        return exec_cmd(vnf_type, mgmt_ip, port, url, data)
-
-    # Enable pong service first
-    for index, vnfr in yaml_cfg['vnfr'].items():
-        logger.debug("VNFR {}: {}".format(index, vnfr))
-
-        def get_cp_ip(cp_name):
-            for cp in vnfr['connection_point']:
-                if cp['name'].endswith(cp_name):
-                    return cp['ip_address']
-
-        # Check if it is pong vnf
-        if 'pong_vnf' in vnfr['name']:
-            vnf_type = 'pong'
-            mgmt_ip = vnfr['mgmt_ip_address']
-            port = vnfr['mgmt_port']
-            service_ip = get_cp_ip('cp1')
-
-            max_tries = 60
-            tries = 0
-            while tries < max_tries:
-                rc = setup_service(mgmt_ip, port, vnf_type)
-                tries += 1
-                if rc != 0:
-                    logger.error("Setup service for pong failed ({}): {}".
-                                 format(tries, rc))
-                    if rc != 7:
-                        return rc
-                    else:
-                        time.sleep(1) # Sleep for 1 seconds
-                else:
-                    break
-
-            rc = enable_service(mgmt_ip, port, vnf_type)
-            if rc != 0:
-                logger.error("Enable service for pong failed: {}".
-                             format(rc))
-                return rc
-
-    # Add a delay to provide pong port to come up
-    time.sleep(1)
-
-    # Enable ping service next
-    for index, vnfr in yaml_cfg['vnfr'].items():
-        logger.debug("VNFR {}: {}".format(index, vnfr))
-
-        # Check if it is pong vnf
-        if 'ping_vnf' in vnfr['name']:
-            vnf_type = 'ping'
-            mgmt_ip = vnfr['mgmt_ip_address']
-            port = vnfr['mgmt_port']
-            if service_ip is None:
-                logger.error("Did not find pong ip!!")
-                return 1
-
-            max_tries = 30
-            tries = 0
-            while tries < max_tries:
-                rc = setup_service(mgmt_ip, port, vnf_type)
-                tries += 1
-                if rc != 0:
-                    logger.error("Setup service for ping failed ({}): {}".
-                                 format(tries, rc))
-                    if rc != 7:
-                        return rc
-                    else:
-                        time.sleep(1) # Sleep for 1 seconds
-                else:
-                    break
-
-            rc = enable_service(mgmt_ip, port, vnf_type)
-            if rc != 0:
-                logger.error("Enable service for ping failed: {}".
-                             format(rc))
-
-    return rc
-
-
-def main(argv=sys.argv[1:]):
-    try:
-        parser = argparse.ArgumentParser()
-        parser.add_argument("yaml_cfg_file", type=argparse.FileType('r'))
-        parser.add_argument("-q", "--quiet", dest="verbose", action="store_false")
-        args = parser.parse_args()
-
-        run_dir = os.path.join(os.environ['RIFT_INSTALL'], "var/run/rift")
-        if not os.path.exists(run_dir):
-            os.makedirs(run_dir)
-        log_file = "{}/ping_pong_start_traffic-{}.log".format(run_dir, time.strftime("%Y%m%d%H%M%S"))
-
-        # logging.basicConfig(filename=log_file, level=logging.DEBUG)
-        logger = logging.getLogger('ping-pong-start-traffic')
-        logger.setLevel(logging.DEBUG)
-
-        fh = logging.FileHandler(log_file)
-        fh.setLevel(logging.DEBUG)
-
-        ch = logging.StreamHandler()
-        if args.verbose:
-            ch.setLevel(logging.DEBUG)
-        else:
-            ch.setLevel(logging.INFO)
-
-        # create formatter and add it to the handlers
-        formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
-        fh.setFormatter(formatter)
-        ch.setFormatter(formatter)
-        logger.addHandler(fh)
-        logger.addHandler(ch)
-
-    except Exception as e:
-        logger.exception("Exception in {}: {}".format(__file__, e))
-        sys.exit(1)
-
-    try:
-        logger.debug("Input file: {}".format(args.yaml_cfg_file.name))
-        yaml_str = args.yaml_cfg_file.read()
-        yaml_cfg = yaml.load(yaml_str)
-        logger.debug("Input YAML: {}".format(yaml_cfg))
-
-        rc = start_traffic(yaml_cfg, logger)
-        logger.info("Return code: {}".format(rc))
-        sys.exit(rc)
-
-    except Exception as e:
-        logger.exception("Exception in {}: {}".format(__file__, e))
-        sys.exit(1)
-
-if __name__ == "__main__":
-    main()
diff --git a/descriptor-packages/nsd/ref1_ns/Makefile b/descriptor-packages/nsd/ref1_ns/Makefile
deleted file mode 100644 (file)
index c5f5f69..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/ref1_ns/src/ref1_nsd.yaml b/descriptor-packages/nsd/ref1_ns/src/ref1_nsd.yaml
deleted file mode 100644 (file)
index d8c3813..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-nsd-catalog:
-    nsd:
-    -   constituent-vnfd:
-        -   member-vnf-index: '1'
-            start-by-default: 'true'
-            vnfd-id-ref: Ref_Vnf_11
-        -   member-vnf-index: '2'
-            vnfd-id-ref: Ref_Vnf_21
-        description: Reference NS 1
-        id: Ref_NS_1
-        name: Ref_NS_1
-        vendor: ETSI
-        vld:
-        -   description: Mgmt VL
-            mgmt-network: 'true'
-            id: 54c04
-            name: VL1
-            short-name: VL1
-            type: ELAN
-            vendor: ETSI
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '1'
-                vnfd-id-ref: Ref_Vnf_11
-                vnfd-connection-point-ref: mgmt0
-            -   member-vnf-index-ref: '2'
-                vnfd-id-ref: Ref_Vnf_21
-                vnfd-connection-point-ref: mgmt
-        -   description: Data VL
-            id: 54c03
-            name: VL2
-            short-name: VL2
-            type: ELAN
-            vendor: ETSI
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: west
-                vnfd-id-ref: Ref_Vnf_11
-            -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: data
-                vnfd-id-ref: Ref_Vnf_21
diff --git a/descriptor-packages/nsd/ref2_ns/Makefile b/descriptor-packages/nsd/ref2_ns/Makefile
deleted file mode 100644 (file)
index c5f5f69..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/ref2_ns/src/ref2_nsd.yaml b/descriptor-packages/nsd/ref2_ns/src/ref2_nsd.yaml
deleted file mode 100644 (file)
index 6f67ed2..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-nsd-catalog:
-    nsd:
-    -   constituent-vnfd:
-        -   member-vnf-index: '1'
-            vnfd-id-ref: Ref_Vnf_12
-        -   member-vnf-index: '2'
-            vnfd-id-ref: Ref_Vnf_22
-        description: Reference NS2
-        id: Ref_NS_2
-        name: Ref_NS_2
-        vendor: ETSI
-        vld:
-        -   id: '97465'
-            mgmt-network: 'true'
-            name: VL1
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: mgmt0
-                vnfd-id-ref: Ref_Vnf_12
-            -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: mgmt
-                vnfd-id-ref: Ref_Vnf_22
-        -   id: f66e6
-            name: VL2
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: east
-                vnfd-id-ref: Ref_Vnf_12
-            -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: east
-                vnfd-id-ref: Ref_Vnf_22
-        -   id: b72e9
-            name: VL3
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: west
-                vnfd-id-ref: Ref_Vnf_12
-            -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: west
-                vnfd-id-ref: Ref_Vnf_22
-
diff --git a/descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/Makefile b/descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/Makefile
deleted file mode 100644 (file)
index 9c18082..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/src/icons/osm.png b/descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/src/icons/osm.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/src/icons/osm.png and /dev/null differ
diff --git a/descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/src/simple_multi-charm_multi-vdu_nsd.yaml b/descriptor-packages/nsd/simple_multi-charm_multi-vdu-ns/src/simple_multi-charm_multi-vdu_nsd.yaml
deleted file mode 100644 (file)
index bd21706..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-nsd:nsd-catalog:
-    nsd:
-    -   id: multicharmvdu-ns
-        name: multicharmvdu-ns
-        short-name: multicharmvdu-ns
-        description: NS with 2 VNFs multicharmvdu-vnf connected by datanet and mgmtnet VLs
-        version: '1.0'
-        logo: osm.png
-        constituent-vnfd:
-        -   vnfd-id-ref: multicharmvdu-vnf
-            member-vnf-index: '1'
-        -   vnfd-id-ref: multicharmvdu-vnf
-            member-vnf-index: '2'
-        vld:
-        -   id: mgmtnet
-            name: mgmtnet
-            short-name: mgmtnet
-            type: ELAN
-            mgmt-network: 'true'
-            vim-network-name: mgmt
-            vnfd-connection-point-ref:
-            -   vnfd-id-ref: multicharmvdu-vnf
-                member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: vnf-mgmt
-            -   vnfd-id-ref: multicharmvdu-vnf
-                member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: vnf-mgmt
-        -   id: datanet
-            name: datanet
-            short-name: datanet
-            type: ELAN
-            vnfd-connection-point-ref:
-            -   vnfd-id-ref: multicharmvdu-vnf
-                member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: vnf-data
-            -   vnfd-id-ref: multicharmvdu-vnf
-                member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: vnf-data
diff --git a/descriptor-packages/nsd/ubuntu-cloudinit_ns/Makefile b/descriptor-packages/nsd/ubuntu-cloudinit_ns/Makefile
deleted file mode 100644 (file)
index c5f5f69..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/ubuntu-cloudinit_ns/src/ubuntu-cloudinit_nsd.yaml b/descriptor-packages/nsd/ubuntu-cloudinit_ns/src/ubuntu-cloudinit_nsd.yaml
deleted file mode 100644 (file)
index 0264a72..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 2019 ETSI
-#
-# 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.
-
-nsd:nsd-catalog:
-    nsd:
-    -   id: ubuntu-cloudinit_nsd
-        name: ubuntu-cloudinit_nsd
-        short-name: ubuntu-cloudinit_nsd
-        description: Generated by OSM package generator
-        vendor: OSM
-        version: '1.0'
-
-
-        constituent-vnfd:
-        -   member-vnf-index: 1
-            vnfd-id-ref: ubuntu-cloudinit_vnfd
-
-        vld:
-        # Networks for the VNFs
-        -   id: mgmtnet
-            name: mgmtnet
-            short-name: mgmtnet
-            type: ELAN
-            mgmt-network: 'true'
-            # vim-network-name: <update>
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: 1
-                vnfd-id-ref: ubuntu-cloudinit_vnfd
-                vnfd-connection-point-ref: vnf-cp0
diff --git a/descriptor-packages/nsd/ubuntu_cirros_multidisk_ns/Makefile b/descriptor-packages/nsd/ubuntu_cirros_multidisk_ns/Makefile
deleted file mode 100644 (file)
index c5f5f69..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/ubuntu_cirros_multidisk_ns/src/icons/osm_2x.png b/descriptor-packages/nsd/ubuntu_cirros_multidisk_ns/src/icons/osm_2x.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/nsd/ubuntu_cirros_multidisk_ns/src/icons/osm_2x.png and /dev/null differ
diff --git a/descriptor-packages/nsd/ubuntu_cirros_multidisk_ns/src/ubuntu_cirros_multidisk_nsd.yaml b/descriptor-packages/nsd/ubuntu_cirros_multidisk_ns/src/ubuntu_cirros_multidisk_nsd.yaml
deleted file mode 100644 (file)
index 51cc963..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-nsd-catalog:
-    nsd:
-    -   id: ubuntu_cirros_multidisk_nsd
-        name: ubuntu_cirros_multidisk_nsd
-        short-name: ubuntu_cirros_multidisk_nsd
-        description: Generated by OSM pacakage generator
-        vendor: OSM
-        version: '1.0'
-
-        # Place the logo as png in icons directory and provide the name here
-        logo: osm_2x.png
-
-        # Specify the VNFDs that are part of this NSD
-        constituent-vnfd:
-            # The member-vnf-index needs to be unique, starting from 1
-            # vnfd-id-ref is the id of the VNFD
-            # Multiple constituent VNFDs can be specified
-        -   member-vnf-index: 1
-            vnfd-id-ref: ubuntu_cirros_multidisk_vnfd
-
-        vld:
-        # Networks for the VNFs
-            -   id: ubuntu_cirros_multidisk_nsd_vld1
-                name: management
-                short-name: management
-                type: ELAN
-                mgmt-network: 'true'
-                vnfd-connection-point-ref:
-                # Specify the constituent VNFs
-                -   member-vnf-index-ref: 1
-                    vnfd-id-ref: ubuntu_cirros_multidisk_vnfd
-                    # NOTE: Validate the entry below
-                    vnfd-connection-point-ref: eth0
diff --git a/descriptor-packages/nsd/ubuntu_cloudinit_ns/Makefile b/descriptor-packages/nsd/ubuntu_cloudinit_ns/Makefile
deleted file mode 100644 (file)
index c5f5f69..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/ubuntu_cloudinit_ns/src/ubuntu_cloudinit_nsd.yaml b/descriptor-packages/nsd/ubuntu_cloudinit_ns/src/ubuntu_cloudinit_nsd.yaml
deleted file mode 100755 (executable)
index fa9a567..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-nsd-catalog:
-    nsd:
-    -   constituent-vnfd:
-        -   member-vnf-index: '1'
-            start-by-default: 'true'
-            vnfd-id-ref: ubuntu_1iface_cloudinit_newfile_vnfd
-        id: ubuntu_cloudinit
-        name: ubuntu_cloudinit
-        short-name: ubuntu_cloudinit
-        vld:
-        -   id: mgmt
-            mgmt-network: 'false'
-            name: mgmt
-            short-name: mgmt
-            mgmt-network: 'true'
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: eth0
-                vnfd-id-ref: ubuntu_1iface_cloudinit_newfile_vnfd
diff --git a/descriptor-packages/nsd/ubuntu_epa_virtio_ns/Makefile b/descriptor-packages/nsd/ubuntu_epa_virtio_ns/Makefile
deleted file mode 100644 (file)
index c5f5f69..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/ubuntu_epa_virtio_ns/src/icons/tef.png b/descriptor-packages/nsd/ubuntu_epa_virtio_ns/src/icons/tef.png
deleted file mode 100644 (file)
index fcaaf88..0000000
Binary files a/descriptor-packages/nsd/ubuntu_epa_virtio_ns/src/icons/tef.png and /dev/null differ
diff --git a/descriptor-packages/nsd/ubuntu_epa_virtio_ns/src/ubuntu_epa_virtio_nsd.yaml b/descriptor-packages/nsd/ubuntu_epa_virtio_ns/src/ubuntu_epa_virtio_nsd.yaml
deleted file mode 100755 (executable)
index 31378ef..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-nsd-catalog:
-    nsd:
-    -   id: ubuntu_epa_virtio_ns
-        name: ubuntu_epa_virtio_ns
-        short-name: ubuntu_epa_virtio_ns
-        description: One VNF based on Ubuntu 16.04 with EPA and virtio connected to mgmt
-        vendor: OSM
-        version: '1.0'
-        logo: tef.png
-
-        constituent-vnfd:
-        -   member-vnf-index: 1
-            vnfd-id-ref: ubuntu_epa_virtio_vnf
-
-        vld:
-        -   id: mgmt
-            name: mgmt
-            short-name: mgmt
-            type: ELAN
-            mgmt-network: 'true'
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: 1
-                vnfd-id-ref: ubuntu_epa_virtio_vnf
-                vnfd-connection-point-ref: eth0
-
diff --git a/descriptor-packages/nsd/ubuntu_xenial_ns/Makefile b/descriptor-packages/nsd/ubuntu_xenial_ns/Makefile
deleted file mode 100644 (file)
index c5f5f69..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/ubuntu_xenial_ns/src/icons/osm_2x.png b/descriptor-packages/nsd/ubuntu_xenial_ns/src/icons/osm_2x.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/nsd/ubuntu_xenial_ns/src/icons/osm_2x.png and /dev/null differ
diff --git a/descriptor-packages/nsd/ubuntu_xenial_ns/src/ubuntu_xenial_nsd.yaml b/descriptor-packages/nsd/ubuntu_xenial_ns/src/ubuntu_xenial_nsd.yaml
deleted file mode 100644 (file)
index 6a46694..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-nsd:nsd-catalog:
-    nsd:
-    -   id: ubuntu_xenial_nsd
-        name: ubuntu_xenial_ns
-        short-name: ubuntu_xenial_ns
-        description: Generated by OSM pacakage generator
-        vendor: OSM
-        version: '1.0'
-
-        # Place the logo as png in icons directory and provide the name here
-        logo: osm_2x.png
-
-        # Specify the VNFDs that are part of this NSD
-        constituent-vnfd:
-            # The member-vnf-index needs to be unique, starting from 1
-            # vnfd-id-ref is the id of the VNFD
-            # Multiple constituent VNFDs can be specified
-        -   member-vnf-index: 1
-            vnfd-id-ref: ubuntu_xenial_vnfd
-
-        vld:
-        # Networks for the VNFs
-            -   id: ubuntu_xenial_nsd_vld1
-                mgmt-network: 'true'
-                name: management
-                short-name: management
-                type: ELAN
-                vim-network-name: net-mgmtOS
-                # vim-network-name: <update>
-                # provider-network:
-                #     overlay-type: VLAN
-                #     segmentation_id: <update>
-                vnfd-connection-point-ref:
-                # Specify the constituent VNFs
-                # member-vnf-index-ref - entry from constituent vnf
-                # vnfd-id-ref - VNFD id
-                # vnfd-connection-point-ref - connection point name in the VNFD
-                -   member-vnf-index-ref: 1
-                    vnfd-id-ref: ubuntu_xenial_vnfd
-                    # NOTE: Validate the entry below
-                    vnfd-connection-point-ref: eth0
diff --git a/descriptor-packages/tools/charm-generator/LICENSE b/descriptor-packages/tools/charm-generator/LICENSE
deleted file mode 100644 (file)
index 76d751a..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright 2019 Eduardo Sousa <esousa@whitestack.com>,
-                  Gianpietro Lavado <glavado@whitestack.com>
-
-   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.
diff --git a/descriptor-packages/tools/charm-generator/README.md b/descriptor-packages/tools/charm-generator/README.md
deleted file mode 100644 (file)
index fd8d7e0..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-Charm Generator
-===============
-
-This tool was designed to help bootstrap the process of charm creation.
-It should help beginners to have a charm working in a matter of minutes.
-
-The charm generator takes as input an initialized charm and some scripts
-or description of HTTP requests and transforms it into a functional charm
-with all the metadata filled in.
-
-The main flow is the following:
-
-1) charm create <name of the charm>
-2) copy the scripts or the requests definition into a specific directory
-3) run the generator
-4) charm build
-
-What types of charms can be generated?
---------------------------------------
-
-Currently, the Charm Generator only supports Ansible scripts.
-
-In the roadmap, the following charms are planned:
-
-* HTTP Requests
-* SOL002 Requests
-* Python Scripts
-
-How to run the Charm Generator?
--------------------------------
-
-To run the Charm Generator, you should do the following steps:
-
-1) Download the OSM Devops git repository
-2) Install the requirements.txt
-3) Run the generator.py in the charm that you want to generate
-
-The only mandatory parameter is what type of charm you want to
-generate:
-
-* Ansible (--ansible)
-* HTTP Requests (--http) - not implemented
-* SOL002 Requests (--sol002) - not implemented
-* Python Scripts (--scripts) - not implemented
-
-There are some recommended parameters, such as:
-
-* Summary - summary of what the charm does (--summary)
-* Maintainer - the name and email of the maintainer (--maintainer)
-* Description - description of what the charm does (--description)
-* Company - company name to be include in the license headers (--company)
-* Email - email of the company/developer to be included in the license headers (--email)
-
-Specifics of the Ansible option
--------------------------------
-
-In order to create an Ansible charm, you need to create a directory
-inside the charm and name it playbooks. Inside that directory, you 
-should put all the playbooks that are going to be executed in the charm.
-
-Note: the playbooks extension must be .yaml
-
-Your charm should look like this before running the generator:
-
-~~~
-.
-├── config.yaml
-├── icon.svg
-├── layer.yaml
-├── metadata.yaml
-├── playbooks
-│   ├── pb-1.yaml
-│   ├── playbook2.yaml
-│   └── playbook_3.yaml
-├── reactive
-│   └── testch.py
-├── README.ex
-└── tests
-    ├── 00-setup
-    └── 10-deploy
-~~~
\ No newline at end of file
diff --git a/descriptor-packages/tools/charm-generator/generator-runner.py b/descriptor-packages/tools/charm-generator/generator-runner.py
deleted file mode 100644 (file)
index 275156b..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2019 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: esousa@whitestack.com or glavado@whitestack.com
-##
-
-from generator.generator import main
-
-if __name__ == '__main__':
-    main()
diff --git a/descriptor-packages/tools/charm-generator/generator/__init__.py b/descriptor-packages/tools/charm-generator/generator/__init__.py
deleted file mode 100644 (file)
index e584ee5..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright 2019 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: esousa@whitestack.com or glavado@whitestack.com
-##
diff --git a/descriptor-packages/tools/charm-generator/generator/__main__.py b/descriptor-packages/tools/charm-generator/generator/__main__.py
deleted file mode 100644 (file)
index 01143fb..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2019 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: esousa@whitestack.com or glavado@whitestack.com
-##
-
-from .generator import main
-
-main()
diff --git a/descriptor-packages/tools/charm-generator/generator/actions/__init__.py b/descriptor-packages/tools/charm-generator/generator/actions/__init__.py
deleted file mode 100644 (file)
index e584ee5..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright 2019 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: esousa@whitestack.com or glavado@whitestack.com
-##
diff --git a/descriptor-packages/tools/charm-generator/generator/actions/templates/action.j2 b/descriptor-packages/tools/charm-generator/generator/actions/templates/action.j2
deleted file mode 100644 (file)
index c1727c6..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/env python3
-{#-
-# Copyright 2019 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: esousa@whitestack.com or glavado@whitestack.com
--#}
-{%- if license is defined %}
-# Copyright {{ license.year }} {{ license.company }}
-#
-# 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: {{ license.email }}
-{%- endif %}
-
-import sys
-sys.path.append('lib')
-
-from charms.reactive import main
-from charms.reactive import set_state
-from charmhelpers.core.hookenv import action_fail, action_name
-
-"""
-`set_state` only works here because it's flushed to disk inside the `main()`
-loop. remove_state will need to be called inside the action method.
-"""
-set_state('actions.{}'.format(action_name()))
-
-try:
-    main()
-except Exception as e:
-    action_fail(repr(e))
-
diff --git a/descriptor-packages/tools/charm-generator/generator/actions/templates/actions.yaml.j2 b/descriptor-packages/tools/charm-generator/generator/actions/templates/actions.yaml.j2
deleted file mode 100644 (file)
index 994bcde..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-{#-
-# Copyright 2019 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: esousa@whitestack.com or glavado@whitestack.com
--#}
-{%- if license is defined -%}
-# Copyright {{ license.year }} {{ license.company }}
-#
-# 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: {{ license.email }}
-{% endif %}
-
-{%- for act in actions %}
-{{ act.action_name }}:
-  description: "Insert description for this playbook."
-  {#- TODO: Insert parameters -#}
-  {#- TODO: Insert required -#}
-{% endfor %}
-
diff --git a/descriptor-packages/tools/charm-generator/generator/ansible-charm/__init__.py b/descriptor-packages/tools/charm-generator/generator/ansible-charm/__init__.py
deleted file mode 100644 (file)
index e584ee5..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright 2019 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: esousa@whitestack.com or glavado@whitestack.com
-##
diff --git a/descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/ansible_charm.py.j2 b/descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/ansible_charm.py.j2
deleted file mode 100644 (file)
index 016659f..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-{#-
-# Copyright 2019 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: esousa@whitestack.com or glavado@whitestack.com
--#}
-{%- if license is defined -%}
-# Copyright {{ license.year }} {{ license.company }}
-#
-# 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: {{ license.email }}
-{%- endif %}
-
-
-import sys
-import traceback
-
-from charmhelpers.core.hookenv import (
-    action_get,
-    action_fail,
-    action_set,
-    config,
-    status_set,
-)
-
-import charms.libansible
-
-from charms.reactive import (
-    remove_state as remove_flag,
-    set_state as set_flag,
-    when,
-)
-
-
-# Sets the status of the charm to show in OSM: configured
-@when('config.changed')
-def config_changed():
-    set_flag('{{ charm_name }}.configured')
-    status_set('active', 'ready!')
-    return
-
-
-# Edits ansible config files and executes ansible-playbook
-{% for pb in playbooks -%}
-@when('{{ charm_name }}.configured')
-@when('actions.{{ pb.action_name }}')
-def {{ pb.function_name }}():
-    try:
-        dict_vars = {}
-
-        # edit the following snippet to add your parameters
-        # Note: don't forget to edit actions.yaml to add the parameters
-        # param_variable = action_get('param-name')
-        # dict_vars['param-name'] = param_variable}
-
-        result = charms.libansible.execute_playbook('{{ pb.file }}', dict_vars)
-    except:
-        exc_type, exc_value, exc_traceback = sys.exc_info()
-        err = traceback.format_exception(exc_type, exc_value, exc_traceback)
-        action_fail('{{ pb.action_name }} failed: ' + str(err))
-    else:
-        action_set({'output': result})
-    finally:
-        remove_flag('actions.{{ pb.action_name }}')
-
-
-{% endfor -%}
\ No newline at end of file
diff --git a/descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/ansible_lib.py.j2 b/descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/ansible_lib.py.j2
deleted file mode 100644 (file)
index afbf162..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-{#-
-# Copyright 2019 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: esousa@whitestack.com or glavado@whitestack.com
--#}
-{%- if license is defined -%}
-# Copyright {{ license.year }} {{ license.company }}
-#
-# 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: {{ license.email }}
-{%- endif %}
-
-import fnmatch
-import os
-import yaml
-import subprocess
-
-from charmhelpers.core.hookenv import config
-
-
-def create_hosts(cfg, hosts):
-    inventory_path = '/etc/ansible/hosts'
-
-    with open(inventory_path, 'w') as f:
-        f.write('[{}]\n'.format(hosts))
-        h1 = '{0} ansible_connection=ssh ansible_ssh_user={1} ansible_ssh_pass={2} ' \
-             'ansible_ssh_private_key_file=~/.ssh/id_juju_sshproxy ' \
-             'ansible_python_interpreter=/usr/bin/python3\n'.format(cfg['ssh-hostname'], cfg['ssh-username'],
-                                                                    cfg['ssh-password'])
-        f.write(h1)
-
-
-def create_ansible_cfg():
-    ansible_config_path = '/etc/ansible/ansible.cfg'
-
-    with open(ansible_config_path, 'w') as f:
-        f.write('[defaults]\n')
-        f.write('host_key_checking = False\n')
-        # logs playbook execution attempts to the specified path
-        f.write('log_path = /var/log/ansible.log\n')
-
-        f.write('[ssh_connection]\n')
-        f.write('control_path=%(directory)s/%%h-%%r\n')
-        f.write('control_path_dir=~/.ansible/cp\n')
-
-
-# Function to find the playbook path
-def find(pattern, path):
-    result = ''
-    for root, dirs, files in os.walk(path):
-        for name in files:
-            if fnmatch.fnmatch(name, pattern):
-                result = os.path.join(root, name)
-    return result
-
-
-def execute_playbook(playbook_file, vars_dict=None):
-    playbook_path = find(playbook_file, '/var/lib/juju/agents/')
-
-    cfg = config()
-
-    with open(playbook_path, 'r') as f:
-        playbook_data = yaml.load(f)
-
-    hosts = 'all'
-    if 'hosts' in playbook_data[0].keys() and playbook_data[0]['hosts']:
-        hosts = playbook_data[0]['hosts']
-
-    create_ansible_cfg()
-    create_hosts(cfg, hosts)
-
-    call = 'ansible-playbook %s ' % playbook_path
-
-    if vars_dict and isinstance(vars_dict, dict) and len(vars_dict) > 0:
-        call += '--extra-vars '
-
-        string_var = ''
-        for v in vars_dict.items():
-            string_var += '%s=%s ' % v
-
-        string_var = string_var.strip()
-        call += '"%s"' % string_var
-
-    call = call.strip()
-    result = subprocess.check_output(call, shell=True)
-
-    return result
diff --git a/descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/layer.yaml.j2 b/descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/layer.yaml.j2
deleted file mode 100644 (file)
index 3b0fa83..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-{#-
-# Copyright 2019 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: esousa@whitestack.com or glavado@whitestack.com
--#}
-{%- if license is defined -%}
-# Copyright {{ license.year }} {{ license.company }}
-#
-# 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: {{ license.email }}
-{%- endif %}
-
-includes:
-{% for lr in layers -%}
-- "layer:{{ lr.name }}"
-{% endfor -%}
-options:
-{%- for lr in layers if lr.options is defined %}
-  {{ lr.name }}:
-    {%- for op in lr.options %}
-    {{ op.name }}: {{ op.value }}
-    {%- endfor -%}
-{% endfor %}
-
diff --git a/descriptor-packages/tools/charm-generator/generator/generator.py b/descriptor-packages/tools/charm-generator/generator/generator.py
deleted file mode 100644 (file)
index 0ef9d1d..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright 2019 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: esousa@whitestack.com or glavado@whitestack.com
-##
-
-__version__ = '1.0.0'
-
-import argparse
-import logging
-import sys
-
-from datetime import datetime
-
-from .generators.ansible_generator import AnsibleGenerator
-
-
-def configure_logger(args):
-    global logger
-    logger = logging.getLogger()
-
-    if args.verbose:
-        logger.setLevel(logging.DEBUG)
-    else:
-        logger.setLevel(logging.INFO)
-
-    handler = logging.StreamHandler(sys.stdout)
-
-    if args.verbose:
-        handler.setLevel(logging.DEBUG)
-    else:
-        handler.setLevel(logging.INFO)
-
-    formatter = logging.Formatter('[%(levelname)s] %(message)s')
-    handler.setFormatter(formatter)
-    logger.addHandler(handler)
-
-
-def verify_environment(args):
-    pass
-
-
-def input_processing():
-    parser = argparse.ArgumentParser(description='Charm generator for OSM VNFs')
-
-    # Setting logger from INFO to DEBUG
-    parser.add_argument('-v', '--verbose', required=False, action='store_true',
-                        help='increase output verbosity')
-
-    # Backend selection
-    backend_parser = parser.add_mutually_exclusive_group(required=True)
-
-    backend_parser.add_argument('--ansible', action='store_true',
-                                help='generate an Ansible charm')
-    backend_parser.add_argument('--http', action='store_true',
-                                help='generate a HTTP charm')
-    backend_parser.add_argument('--sol002', action='store_true',
-                                help='generate a SOL002 charm')
-    backend_parser.add_argument('--scripts', action='store_true',
-                                help='generate a Scripts charm')
-
-    # Metadata inputs
-    metadata_parser = parser.add_argument_group('metadata')
-
-    metadata_parser.add_argument('--summary', required=False, action='store',
-                                 help='summary to be included in the metadata.yaml')
-    metadata_parser.add_argument('--maintainer', required=False, action='store',
-                                 help='maintainer information to be included in the metadata.yaml')
-    metadata_parser.add_argument('--description', required=False, action='store',
-                                 help='description to be included in the metadata.yaml')
-
-    # License header inputs
-    license_header_group = parser.add_argument_group('license_header')
-
-    license_header_group.add_argument('--company', required=False, action='store',
-                                      help='company name to be included in the license headers')
-    license_header_group.add_argument('--email', required=False, action='store',
-                                      help='email to be included in the license headers')
-
-    return parser.parse_args()
-
-
-def process_args(args):
-    # Metadata information for metadata.yaml
-    metadata = {}
-
-    if args.summary:
-        metadata['summary'] = args.summary
-    if args.maintainer:
-        metadata['maintainer'] = args.maintainer
-    if args.description:
-        metadata['description'] = args.description
-
-    # Information for license headers
-    license = {
-        'year': datetime.now().year
-    }
-
-    if args.company:
-        license['company'] = args.company
-    if args.email:
-        license['email'] = args.email
-
-    # Options to configure the backends
-    options = {
-        'backend': None
-    }
-
-    if args.ansible:
-        options['backend'] = 'ansible'
-    elif args.http:
-        options['backend'] = 'http'
-    elif args.sol002:
-        options['backend'] = 'sol002'
-    elif args.scripts:
-        options['backend'] = 'scripts'
-
-    return metadata, license, options
-
-
-def main():
-    # getting the input from the user
-    args = input_processing()
-
-    # configure the logger
-    configure_logger(args)
-
-    logger.info('Starting generation process...')
-
-    # verify if the environment is correct and the args are valid
-    verify_environment(args)
-
-    # process data to input in generator
-    metadata, license, options = process_args(args)
-
-    logger.debug('Metadata: %s', metadata)
-    logger.debug('License: %s', license)
-    logger.debug('Options: %s', options)
-
-    if options['backend'] == 'ansible':
-        generator = AnsibleGenerator(metadata=metadata, license=license, options=options)
-    elif options['backend'] == 'http':
-        logger.error('HTTP backend not yet available. Available backends are: ansible')
-        sys.exit(-1)
-    elif options['backend'] == 'sol002':
-        logger.error('SOL002 backend not yet available. Available backends are: ansible')
-        sys.exit(-1)
-    elif options['backend'] == 'scripts':
-        logger.error('Scripts backend not yet available. Available backends are: ansible')
-        sys.exit(-1)
-    else:
-        logger.error('Undefined backend for generator. Available backends are: ansible')
-        sys.exit(-1)
-
-    generator.generate()
-
-    logger.info('Generation process complete.')
diff --git a/descriptor-packages/tools/charm-generator/generator/generators/__init__.py b/descriptor-packages/tools/charm-generator/generator/generators/__init__.py
deleted file mode 100644 (file)
index e584ee5..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright 2019 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: esousa@whitestack.com or glavado@whitestack.com
-##
diff --git a/descriptor-packages/tools/charm-generator/generator/generators/actions_generator.py b/descriptor-packages/tools/charm-generator/generator/generators/actions_generator.py
deleted file mode 100644 (file)
index b3da7c3..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-# Copyright 2019 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: esousa@whitestack.com or glavado@whitestack.com
-##
-
-import functools
-import logging
-import os
-import stat
-
-from jinja2 import Environment, PackageLoader
-
-
-class ActionsGenerator:
-    LOGGER = logging.getLogger()
-    ENV = Environment(loader=PackageLoader('generator.actions', 'templates'))
-
-    def __init__(self, metadata, actions, license=None, options=None):
-        """
-        Creates the object to generate the actions folder, actions files and actions.yaml.
-
-        Usage should be:
-
-        1) Create the object.
-        2) Run the generate method.
-
-        :param metadata: metadata information about the charm being generated.
-        :param actions: actions to be included in the charm.
-        :param license: information license to included in the charm being generated.
-        :param options: options to override the normal flow.
-        """
-        self.path = os.getcwd()
-        self.metadata = metadata
-        self.actions = actions
-        self.license = license
-        self.options = options
-
-    def generate(self):
-        """
-        Generates the actions folder, actions files and actions.yaml.
-        """
-        ActionsGenerator.LOGGER.info('Generating the actions...')
-
-        self._create_actions_folder()
-
-        for action in self.actions:
-            self._generate_action_file(action)
-
-        self._generate_actions_yaml_file()
-
-        ActionsGenerator.LOGGER.info('Generated the actions.')
-
-    def _create_actions_folder(self):
-        """
-        Creates the actions folder, where all the action files are placed.
-        These files are the entry point for the execution of the actions.
-        """
-        ActionsGenerator.LOGGER.debug('Creating the actions folder...')
-
-        actions_path = self.path + '/actions'
-
-        if not os.path.isdir(actions_path):
-            os.mkdir(actions_path)
-        else:
-            ActionsGenerator.LOGGER.warning('Actions folder already exists.')
-            return
-
-        ActionsGenerator.LOGGER.debug('Created actions folder.')
-
-    def _generate_action_file(self, action):
-        """
-        Generates the action file to act as entry point for a specific action.
-
-        Note: the action file is made executable during this function.
-
-        :param action: dictionary with information about the action
-        """
-        ActionsGenerator.LOGGER.debug('Creating action file: %s...', action['action_name'])
-
-        playbook_path = self.path + ('/actions/%s' % action['action_name'])
-        action_file_template = ActionsGenerator.ENV.get_template('action.j2')
-
-        with open(playbook_path, "w") as f:
-            f.write(action_file_template.render(license=self.license))
-            mode = os.fstat(f.fileno()).st_mode
-            mode |= stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH
-            os.fchmod(f.fileno(), stat.S_IMODE(mode))
-
-        ActionsGenerator.LOGGER.debug('Created action file: %s.', action['action_name'])
-
-    def _generate_actions_yaml_file(self):
-        """
-        Generates the actions.yaml file from a template.
-        It takes all the playbook information and fills in the templates.
-
-        Note: renames the old actions.yaml file with a .bkp extension, so the history is preserved.
-        """
-        ActionsGenerator.LOGGER.debug('Creating actions.yaml...')
-
-        actions_yaml_path = self.path + '/actions.yaml'
-        actions_template = ActionsGenerator.ENV.get_template('actions.yaml.j2')
-
-        if os.path.isfile(actions_yaml_path):
-            ids = [int(f.split('.')[-1]) for f in os.listdir(self.path) if f.startswith('actions.yaml.bkp')]
-
-            id = 0
-            if ids:
-                id = functools.reduce(lambda x, y: x if (x > y) else y, ids)
-                id += 1
-
-            backup_actions_yaml_path = self.path + ('/actions.yaml.bkp.%02d' % id)
-            os.rename(actions_yaml_path, backup_actions_yaml_path)
-
-        with open(actions_yaml_path, 'w') as f:
-            f.write(actions_template.render(actions=self.actions, license=self.license))
-
-        ActionsGenerator.LOGGER.debug('Created actions.yaml.')
diff --git a/descriptor-packages/tools/charm-generator/generator/generators/ansible_generator.py b/descriptor-packages/tools/charm-generator/generator/generators/ansible_generator.py
deleted file mode 100644 (file)
index cefe422..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-# Copyright 2019 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: esousa@whitestack.com or glavado@whitestack.com
-##
-
-import functools
-import logging
-import os
-import sys
-
-from jinja2 import Environment, PackageLoader
-
-from generator.generators.actions_generator import ActionsGenerator
-from generator.generators.metadata_generator import MetadataGenerator
-
-
-class AnsibleGenerator:
-    LOGGER = logging.getLogger()
-    ENV = Environment(loader=PackageLoader('generator.ansible-charm', 'templates'))
-
-    def __init__(self, metadata, license=None, options=None):
-        """
-        Creates the object to generate the ansible charm from templates.
-
-        Usage should be:
-
-        1) Create the object.
-        2) Run the generate method.
-
-        :param metadata: metadata information about the charm being generated.
-        :param license: information license to included in the charm being generated.
-        :param options: options to override the normal flow.
-        """
-        self.path = os.getcwd()
-        self.metadata = metadata
-        self.license = license
-        self.options = options
-        self.playbooks = AnsibleGenerator._fetch_all_playbooks(self.path)
-
-        playbooks_name = [playbook['file'] for playbook in self.playbooks]
-        AnsibleGenerator.LOGGER.debug('Playbooks found: %s', playbooks_name)
-
-        self.metadata_generator = MetadataGenerator(metadata=self.metadata, license=self.license, options=self.options)
-        self.actions_generator = ActionsGenerator(metadata=self.metadata, actions=self.playbooks, license=self.license,
-                                                  options=self.options)
-
-    def generate(self):
-        """
-        Generates the Ansible Charm using templates.
-        """
-        AnsibleGenerator.LOGGER.info('Generating the Ansible Charm...')
-
-        # Generating metadata.yaml
-        self.metadata_generator.generate()
-        self.metadata = self.metadata_generator.get_metadata()
-
-        # Generating actions
-        self.actions_generator.generate()
-
-        self._generate_ansible_lib()
-        self._generate_layer_yaml_file()
-        self._generate_reactive_file()
-
-        AnsibleGenerator.LOGGER.info('Generated the Ansible Charm.')
-
-    @staticmethod
-    def _fetch_all_playbooks(path):
-        """
-        Walks over the playbooks directory, fetches the playbook's name.
-        It takes the file name and normalizes it to be used in the ansible charm.
-
-        :param path: path of the root of the charm.
-        :return: a list of dictionaries with the information about the playbooks.
-        """
-        playbooks_path = path + '/playbooks'
-
-        if os.path.isdir(playbooks_path) and len(os.listdir(playbooks_path)) != 0:
-            filenames = os.listdir(playbooks_path)
-
-            result = []
-            for file in filenames:
-                info = {
-                    'action_name': file.replace('_', '-').replace('.yaml', ''),
-                    'function_name': file.replace('-', '_').replace('.yaml', ''),
-                    'file': file
-                }
-                result.append(info)
-
-            return result
-        else:
-            AnsibleGenerator.LOGGER.error('Playbooks directory should exist and be populated.')
-            sys.exit(-1)
-
-    def _generate_ansible_lib(self):
-        """
-        Generates the ansible lib file from a template.
-        """
-        AnsibleGenerator.LOGGER.debug('Creating ansible.py lib...')
-
-        lib_folder_path = self.path + '/lib/charms'
-        ansible_lib_path = lib_folder_path + '/libansible.py'
-
-        if not os.path.isdir(lib_folder_path):
-            os.makedirs(lib_folder_path)
-
-        ansible_lib_template = AnsibleGenerator.ENV.get_template('ansible_lib.py.j2')
-
-        with open(ansible_lib_path, 'w') as f:
-            f.write(ansible_lib_template.render(license=self.license))
-
-        AnsibleGenerator.LOGGER.debug('Created anisble.py lib.')
-
-    def _generate_layer_yaml_file(self):
-        """
-        Generates the layer.yaml file from a template.
-
-        Note: disables the venv environment.
-        """
-        AnsibleGenerator.LOGGER.debug('Creating layer.yaml...')
-
-        layer_yaml_path = self.path + '/layer.yaml'
-
-        layers = [{
-            'name': 'basic',
-            'options': [{
-                'name': 'use_venv',
-                'value': 'false'
-            }]}, {
-            'name': 'ansible-base'
-        }, {
-            'name': 'vnfproxy'
-        }]
-
-        layer_template = AnsibleGenerator.ENV.get_template('layer.yaml.j2')
-
-        with open(layer_yaml_path, 'w') as f:
-            f.write(layer_template.render(layers=layers, license=self.license))
-
-        AnsibleGenerator.LOGGER.debug('Created layer.yaml.')
-
-    def _generate_reactive_file(self):
-        """
-        Generates the Ansible reactive file from a template.
-        It takes all the playbook information and fills in the templates.
-
-        Note: renames the old charm file with a .bkp extension, so the history is preserved.
-        """
-        AnsibleGenerator.LOGGER.debug('Creating ansible charm: %s...', self.metadata['file'])
-
-        reactive_folder_path = self.path + '/reactive'
-        charm_file_path = reactive_folder_path + ('/%s' % self.metadata['file'])
-        ansible_charm_template = AnsibleGenerator.ENV.get_template('ansible_charm.py.j2')
-
-        ids = [int(f.split('.')[-1]) for f in os.listdir(reactive_folder_path)
-               if f.startswith('%s.bkp' % self.metadata['file'])]
-
-        id = 0
-        if ids:
-            id = functools.reduce(lambda x, y: x if (x > y) else y, ids)
-            id += 1
-
-        backup_charm_file_path = reactive_folder_path + ('/%s.bkp.%02d' % (self.metadata['file'], id))
-        os.rename(charm_file_path, backup_charm_file_path)
-
-        with open(charm_file_path, 'w') as f:
-            f.write(ansible_charm_template.render(charm_name=self.metadata['name'], playbooks=self.playbooks,
-                                                  license=self.license))
-
-        AnsibleGenerator.LOGGER.debug('Created ansible charm: %s.', self.metadata['file'])
diff --git a/descriptor-packages/tools/charm-generator/generator/generators/metadata_generator.py b/descriptor-packages/tools/charm-generator/generator/generators/metadata_generator.py
deleted file mode 100644 (file)
index 6c9b000..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-# Copyright 2019 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: esousa@whitestack.com or glavado@whitestack.com
-##
-
-import functools
-import logging
-import os
-import sys
-
-import yaml
-
-from jinja2 import Environment, PackageLoader
-
-
-class MetadataGenerator:
-    LOGGER = logging.getLogger()
-    ENV = Environment(loader=PackageLoader('generator.metadata', 'templates'))
-
-    def __init__(self, metadata, license=None, options=None):
-        """
-        Creates the object to generate the metadata.yaml file from a template.
-
-        Usage should be:
-
-        1) Create the object.
-        2) Run the generate method.
-
-        :param metadata: metadata information about the charm being generated.
-        :param license: information license to included in the charm being generated.
-        :param options: options to override the normal flow.
-        """
-        self.path = os.getcwd()
-        self.metadata = metadata
-        self.license = license
-        self.options = options
-
-    def generate(self):
-        """
-        Generates the metadata.yaml using templates.
-        """
-        MetadataGenerator.LOGGER.info('Generating the metadata.yaml...')
-
-        standard_metadata = self._read_metadata_yaml()
-        self._update_metadata(standard_metadata)
-        self._rename_metadata_yaml_as_backup()
-        self._write_metadata_yaml()
-
-        MetadataGenerator.LOGGER.info('Generated the metadata.yaml.')
-
-    def get_metadata(self):
-        """
-        Gets the enhanced metadata.
-
-        :return: the enhanced metadata dictionary.
-        """
-        return self.metadata
-
-    def _read_metadata_yaml(self):
-        """
-        Reads the values from the old metadata.yaml and does a cleanup on undesired values.
-        """
-        MetadataGenerator.LOGGER.debug('Reading old metadata.yaml...')
-
-        metadata_yaml_path = self.path + '/metadata.yaml'
-
-        if not os.path.isfile(metadata_yaml_path):
-            MetadataGenerator.LOGGER.error('metadata.yaml must be present. Must be run in the root of the charm')
-            sys.exit(-1)
-
-        with open(metadata_yaml_path, 'r') as f:
-            metadata = yaml.load(f)
-
-        if 'tags' in metadata.keys():
-            del metadata['tags']
-        if 'provides' in metadata.keys():
-            del metadata['provides']
-        if 'requires' in metadata.keys():
-            del metadata['requires']
-        if 'peers' in metadata.keys():
-            del metadata['peers']
-
-        MetadataGenerator.LOGGER.debug('Read old metadata.yaml.')
-
-        return metadata
-
-    def _update_metadata(self, metadata):
-        """
-        Update internal metadata before writing the new metadata.yaml.
-
-        :param metadata: metadata values provided by the user.
-        """
-        MetadataGenerator.LOGGER.debug('Generating the Ansible Charm...')
-
-        if 'name' in metadata:
-            self.metadata['name'] = metadata['name']
-            self.metadata['file'] = '%s.py' % metadata['name'].replace('-', '_')
-
-        self.metadata['subordinate'] = False
-        self.metadata['tags'] = ['misc', 'osm', 'vnf']
-        self.metadata['series'] = ['xenial', 'trusty']
-
-        MetadataGenerator.LOGGER.debug('Generating the Ansible Charm...')
-
-    def _rename_metadata_yaml_as_backup(self):
-        """
-        Renames the metadata.yaml to metadata.yaml.bkp.*.
-        Preserves the history of the charm for the user.
-        """
-        MetadataGenerator.LOGGER.debug('Renaming the metadata.yaml to .bkp.*...')
-
-        metadata_yaml_path = self.path + '/metadata.yaml'
-
-        ids = [int(f.split('.')[-1]) for f in os.listdir(self.path)
-               if f.startswith('metadata.yaml.bkp')]
-
-        id = 0
-        if ids:
-            id = functools.reduce(lambda x, y: x if (x > y) else y, ids)
-            id += 1
-
-        backup_metadata_yaml_path = self.path + ('/metadata.yaml.bkp.%02d' % id)
-        os.rename(metadata_yaml_path, backup_metadata_yaml_path)
-
-        MetadataGenerator.LOGGER.debug('Renamed the metadata.yaml to .bkp.%02d.', id)
-
-    def _write_metadata_yaml(self):
-        """
-        Writes the enriched metadata to metadata.yaml.
-        """
-        MetadataGenerator.LOGGER.debug('Generating metadata.yaml...')
-
-        metadata_yaml_path = self.path + '/metadata.yaml'
-        metadata_yaml_template = MetadataGenerator.ENV.get_template('metadata.yaml.j2')
-
-        with open(metadata_yaml_path, 'w') as f:
-            f.write(metadata_yaml_template.render(metadata=self.metadata, license=self.license))
-
-        MetadataGenerator.LOGGER.debug('Generated metadata.yaml.')
diff --git a/descriptor-packages/tools/charm-generator/generator/metadata/__init__.py b/descriptor-packages/tools/charm-generator/generator/metadata/__init__.py
deleted file mode 100644 (file)
index e584ee5..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright 2019 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: esousa@whitestack.com or glavado@whitestack.com
-##
diff --git a/descriptor-packages/tools/charm-generator/generator/metadata/templates/metadata.yaml.j2 b/descriptor-packages/tools/charm-generator/generator/metadata/templates/metadata.yaml.j2
deleted file mode 100644 (file)
index e189244..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-{#-
-# Copyright 2019 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: esousa@whitestack.com or glavado@whitestack.com
--#}
-{%- if license is defined -%}
-# Copyright {{ license.year }} {{ license.company }}
-#
-# 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: {{ license.email }}
-{%- endif %}
-
-name: {{ metadata.name }}
-summary: {{ metadata.summary }}
-maintainer: {{ metadata.maintainer }}
-description: {{ metadata.description }}
-tags:
-{% for tag in metadata.tags -%}
-- {{ tag }}
-{% endfor -%}
-series:
-{% for serie in metadata.series -%}
-- {{ serie }}
-{% endfor -%}
-subordinate: {{ metadata.subordinate }}
diff --git a/descriptor-packages/tools/charm-generator/requirements.txt b/descriptor-packages/tools/charm-generator/requirements.txt
deleted file mode 100644 (file)
index f0aaeda..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Jinja2>=2.10
diff --git a/descriptor-packages/tools/charm-generator/setup.py b/descriptor-packages/tools/charm-generator/setup.py
deleted file mode 100644 (file)
index 51df44c..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 2019 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: esousa@whitestack.com or glavado@whitestack.com
-##
-
-import re
-import setuptools
-
-print(setuptools.find_packages())
-
-version = re.search(
-    r'^__version__\s*=\s*["\'](.*)["\']',
-    open('generator/generator.py').read(),
-    re.MULTILINE).group(1)
-
-with open('README.md', 'r') as f:
-    long_description = f.read()
-
-setuptools.setup(
-    name='osm-charm-generator',
-    packages=setuptools.find_packages(),
-    entry_points={
-        "console_scripts": ['osm-charm-generator = generator.generator:main']
-    },
-    version=version,
-    author='Eduardo Sousa',
-    author_email='esousa@whitestack.com',
-    description='OSM Charm Generator using Ansible',
-    long_description=long_description,
-    long_description_content_type='text/markdown',
-    url='https://osm.etsi.org',
-    install_requires=[
-        'Jinja2>=2.10'
-    ],
-    package_data={
-        'generator.actions': ['templates/*.j2'],
-        'generator.ansible-charm': ['templates/*.j2'],
-        'generator.metadata': ['templates/*.j2'],
-    },
-    include_package_data=True,
-    classifiers=[
-        'Programming Language :: Python :: 3 :: Only',
-        'License :: OSI Approved :: Apache Software License',
-        'Operating System :: POSIX :: Linux',
-        'Environment :: Console',
-        'Intended Audience :: Telecommunications Industry',
-        'Natural Language :: English',
-        'Topic :: Software Development :: Code Generators'
-    ]
-)
diff --git a/descriptor-packages/tools/gen_nsd_pkg.sh b/descriptor-packages/tools/gen_nsd_pkg.sh
deleted file mode 100755 (executable)
index 4ac1ec4..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/bash
-#
-#   Copyright 2016 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.
-#
-# Author(s): Austin Cormier
-# Creation Date: 2016/05/23
-#
-
-# Generates a NSD descriptor package from a source directory
-# Usage:
-# gen_nsd_pkg.sh <pkg_src_dir> <pkg_dest_dir>
-
-set -o nounset
-
-if [ $# -ne 2 ]; then
-       echo "Error: Must provide 2 parameters" >@2
-       exit 1
-fi
-
-pkg_src_dir="$1"
-pkg_dest_dir="$2"
-
-if [ ! -e ${pkg_src_dir} ]; then
-    echo "Error: ${pkg_src_dir} does not exist"
-    exit 1
-fi
-
-if [ ! -e ${pkg_dest_dir} ]; then
-    echo "Error: ${pkg_src_dir} does not exist"
-    exit 1
-fi
-
-#echo "Generating package in directory: ${pkg_dest_dir}"
-
-# Create any missing directories/files so each package has
-# a complete hierachy
-nsd_dirs=( ns_config vnf_config icons scripts )
-nsd_files=( README )
-
-nsd_dir="${pkg_src_dir}"
-#echo $(pwd)
-
-mkdir -p "${pkg_dest_dir}"
-cp -rf ${nsd_dir}/* "${pkg_dest_dir}"
-for sub_dir in ${nsd_dirs[@]}; do
-    dir_path=${pkg_dest_dir}/${sub_dir}
-    mkdir -p ${dir_path}
-done
-
-for file in ${nsd_files[@]}; do
-    file_path=${pkg_dest_dir}/${file}
-    touch ${file_path}
-done
diff --git a/descriptor-packages/tools/gen_vnfd_pkg.sh b/descriptor-packages/tools/gen_vnfd_pkg.sh
deleted file mode 100755 (executable)
index 185a6b4..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/bash
-#
-#   Copyright 2016 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.
-#
-# Author(s): Austin Cormier
-# Creation Date: 2016/05/23
-#
-
-# Generates a NSD descriptor package from a source directory
-# Usage:
-# gen_vnfd_pkg.sh <pkg_src_dir> <pkg_dest_dir>
-
-set -o nounset
-
-if [ $# -ne 2 ]; then
-       echo "Error: Must provide 2 parameters" >@2
-       exit 1
-fi
-
-pkg_src_dir="$1"
-pkg_dest_dir="$2"
-
-if [ ! -e ${pkg_src_dir} ]; then
-    echo "Error: ${pkg_src_dir} does not exist"
-    exit 1
-fi
-
-if [ ! -e ${pkg_dest_dir} ]; then
-    echo "Error: ${pkg_src_dir} does not exist"
-    exit 1
-fi
-
-#echo "Generating package in directory: ${pkg_dest_dir}"
-
-# Create any missing directories/files so each package has
-# a complete hierachy
-vnfd_dirs=( charms icons scripts images )
-vnfd_files=( README )
-
-vnfd_dir="${pkg_src_dir}"
-#echo $(pwd)
-
-mkdir -p "${pkg_dest_dir}"
-cp -rf ${vnfd_dir}/* "${pkg_dest_dir}"
-for sub_dir in ${vnfd_dirs[@]}; do
-    dir_path=${pkg_dest_dir}/${sub_dir}
-    mkdir -p ${dir_path}
-done
-
-for file in ${vnfd_files[@]}; do
-    file_path=${pkg_dest_dir}/${file}
-    touch ${file_path}
-done
diff --git a/descriptor-packages/tools/generate_descriptor_pkg.sh b/descriptor-packages/tools/generate_descriptor_pkg.sh
deleted file mode 100755 (executable)
index 1b9a9e0..0000000
+++ /dev/null
@@ -1,842 +0,0 @@
-#!/bin/bash
-
-############################################################################
-# Copyright 2016 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.                                           #
-############################################################################
-
-#
-# This shell script is used to create a descriptor package
-# The main functions of this script include:
-# - Generate checksums.txt file
-# - Generate a tar.gz file
-# This script can be used to create the required folders for
-# a descriptor package and a template descriptor
-
-# Usage: generate_descriptor_pkg.sh <base-directory> <package-directory>
-
-# Descriptor names should be
-#   - (nsd|vnfd).(yaml|yml|json|xml)
-#   - *_(nsd|vnfd).(yaml|yml|json|xml)
-#   - *_(nsd|vnfd)_*.(yaml|yml|json|xml)
-#   - (nsd|vnfd)/*.(yaml|yml|json|xml)
-#
-
-SCRIPTNAME=`basename $0`
-
-# From https://osm.etsi.org/wikipub/index.php/Release_0_Data_Model_Details
-# Supported folders for VNFD
-# cloud_init - Rel 4.3, not yet part of OSM
-VNFD_FOLDERS=(images scripts icons charms cloud_init)
-
-# Supported folders for NSD
-# OSM document specifies (ns|vnf)-config folder, while Rel 4.3
-# is using (ns|vnf)_config.
-NSD_FOLDERS=(scripts charms icons ns_config vnf_config)
-
-# Other files allowed in the descriptor base directory
-ALLOWED_FILES=(README)
-ALLOWED_FILES_WILDCARDS=(README)
-
-DESC_TYPES=(vnfd nsd)
-DESC_EXTN=(yml yaml json xml)
-CHKSUM='checksums.txt'
-
-VERBOSE=false
-DRY_RUN=false
-CREATE=false
-RM="--remove-files"
-DEBUG=false
-
-ARCHIVE=false
-CREATE_NSD=false
-VENDOR='OSM'
-INTF_TYPE='PARAVIRT'
-VCPU=2
-MEMORY=4096
-STORAGE=10
-INTERFACES=1
-
-function usage() {
-    cat <<EOF
-Usage:
-     $SCRIPTNAME [-t <type>] [-N] [-c] [base-directory] <package-name>
-
-        -h|--help : show this message
-
-        -t|--package-type <nsd|vnfd> : Descriptor package type
-                                       is NSD or VNFD. Script will try to
-                                       determine the type if not provided.
-                                       Default is vnfd for create-folders.
-
-        -d|--destination-dir <destination directory>: Directory to create the
-                                                      archived file.
-                                                      Default is base-directory
-
-        -N|--no-remove-files : Do not remove the package files after creating
-                               archive
-
-        Options specifc for create descriptor:
-
-            -c|--create-folder : Create folder with the structure for the
-                                 package type using the base-dir and package-dir
-                                 and a descriptor template
-
-            -a|--archive: Create package for the descriptor
-
-            --nsd : Generate NSD descriptor package also.
-
-            --vendor : Vendor name for descriptor. Default OSM
-
-            --interface-type : Interface type [PARAVIRT|SR-IOV|PCI-PASSTHROUGH|E1000]
-                               Default PARAVIRT
-
-          VM Flavour options:
-
-            --vcpu : Virtual CPU count. Default 2
-
-            --memory : Memory for VM in MB. Default 4096MB
-
-            --storage : Storage size for VM in GB. Default 10GB
-
-          VDU Parameters:
-
-            --image : Location URI of the image
-
-            --cloud-init-file : Cloud init file
-
-            --cloud-init : Cloud init script. Will be ignored if
-                           cloud-init-file is specified
-
-            --interfaces : Number of external interfaces in additon to OM-MGMT. Default 1.
-
-        End of create descriptor specific options
-
-        -v| --verbose : Generate progress details
-
-        -n| --dry-run : Validate the package dir
-
-        base-dir : Directory where the archive file or folders are created,
-                   if destination directory is not specified.
-                   Default is current directory
-
-        package-name : The descriptor name (full path if base-dir not specified)
-EOF
-}
-
-CP_TYPE='VPORT'
-function get_cp_type() {
-    case ${INTF_TYPE} in
-        PARAVIRT ) CP_TYPE='VPORT';;
-        SR-IOV ) CP_TYPE='VPORT';;
-        PCI-PASSTHROUGH ) CP_TYPE='VPORT';;
-        OM-MGMT ) CP_TYPE='VPORT';;
-        E1000 ) CP_TYPE='VPORT';;
-        * ) echo "ERROR: Unknown interface type ${INTF_TYPE}"; exit 1;;
-    esac
-}
-
-# Get pci number starting from 0x0a
-get_pci() {
-   printf '%02x' $((10 + $1)) | tr '[:upper:]' '[:lower:]'
-}
-
-function write_readme() {
-    dir=$1
-    file=${dir}/README
-    date=$(date)
-
-    cat >$file <<EOF
-Descriptor created by OSM descriptor package generated
-Created on $date
-EOF
-
-}
-
-function write_vnfd_tmpl() {
-    name=$(basename $1)
-    desc_file="${name}.yaml"
-
-    cat >$desc_file <<EOF
-vnfd:vnfd-catalog:
-    vnfd:
-    -   id: ${name}
-        name: ${name}
-        short-name: ${name}
-        description: Generated by OSM package generator
-        vendor: ${VENDOR}
-        version: '1.0'
-
-        # Place the logo as png in icons directory and provide the name here
-        # logo: <update, optional>
-
-        # Management interface
-        mgmt-interface:
-            cp: vnf-cp0
-
-        # Atleast one VDU need to be specified
-        vdu:
-        # Additional VDUs can be created by copying the
-        # VDU descriptor below
-        -   id: ${name}-VM
-            name: ${name}-VM
-            description: ${name}-VM
-            count: 1
-
-            # Flavour of the VM to be instantiated for the VDU
-            vm-flavor:
-                vcpu-count: ${VCPU}
-                memory-mb: ${MEMORY}
-                storage-gb: ${STORAGE}
-
-            # Image including the full path
-            image: '${IMAGE}'
-
-EOF
-
-    # Add the cloud init file or script
-    if [[ -n ${CLOUD_INIT_FILE} ]]; then
-        cif=$(basename ${CLOUD_INIT_FILE})
-        cat >>$desc_file <<EOF
-            # Cloud init file
-            cloud-init-file: '${cif}'
-EOF
-    elif [[ -n ${CLOUD_INIT} ]]; then
-        cat >>$desc_file <<EOF
-            # Cloud init to use
-            cloud-init: '${CLOUD_INIT}'
-EOF
-    fi
-
-    # Add external interfaces
-    cat >>$desc_file <<EOF
-            interface:
-            # Specify the external interfaces
-            # There can be multiple interfaces defined
-EOF
-
-    # Add mgmt interface
-    cat >>$desc_file <<EOF
-            -   name: eth0
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: vnf-cp0
-EOF
-
-    # Add external interfaces
-    for i in `seq 1 ${INTERFACES}`; do
-        eth=$(($i))
-        cat >>$desc_file <<EOF
-            -   name: eth${eth}
-                type: EXTERNAL
-                virtual-interface:
-                    type: ${INTF_TYPE}
-                external-connection-point-ref: vnf-cp${eth}
-EOF
-    done
-
-    # Add connection points
-    cat >>$desc_file <<EOF
-
-        connection-point:
-EOF
-
-    for i in `seq 0 ${INTERFACES}`; do
-        eth=$(($i))
-        cat >>$desc_file <<EOF
-        -   name: vnf-cp${eth}
-EOF
-    done
-
-    cat >>$desc_file <<EOF
-
-        # Uncomment and update below to enable juju
-        # charm configuration for the VNF
-        # vnf-configuration:
-        #     juju:
-        #         charm: <charm name>
-        #     service-primitive:
-        #     -   name: config
-        #         parameter:
-        #         -   name: <config parameter>
-        #             data-type: [STRING|INTEGER]
-        #             mandatory: [true|false]
-        #             default-value: <value>
-        #     -   name: <action name>
-        #         parameter:
-        #         -   name: <action parameter>
-        #             data-type: [STRING|INTEGER]
-        #             mandatory: [true|false]
-        #             default-value: <value>
-        #     initial-config-primitive:
-        #     -   name: config
-        #         parameter:
-        #         -   name: <config name>
-        #             value: <value>
-        #     -   name: <action name>
-        #         parameter:
-        #         -   name: <action parameter>
-        #             value: <value>
-EOF
-
-    if [ $VERBOSE == true ]; then
-        echo "INFO: Created $desc_file"
-    fi
-}
-
-function write_nsd_tmpl() {
-    name=$(basename $1)
-    vnfd=$2
-    desc_file="${name}.yaml"
-
-    cat >$desc_file <<EOF
-nsd:nsd-catalog:
-    nsd:
-    -   id: ${name}
-        name: ${name}
-        short-name: ${name}
-        description: Generated by OSM package generator
-        vendor: ${VENDOR}
-        version: '1.0'
-
-        # Place the logo as png in icons directory and provide the name here
-        # logo: <update, optional>
-
-        # Specify the VNFDs that are part of this NSD
-        constituent-vnfd:
-            # The member-vnf-index needs to be unique, starting from 1
-            # vnfd-id-ref is the id of the VNFD
-            # Multiple constituent VNFDs can be specified
-        -   member-vnf-index: 1
-            vnfd-id-ref: ${vnfd}
-
-EOF
-
-    cat >>$desc_file <<EOF
-        vld:
-        # Networks for the VNFs
-EOF
-
-    # Add management VLD
-    cat >>$desc_file <<EOF
-        -   id: ${name}_vld0
-            name: management
-            short-name: management
-            type: ELAN
-            mgmt-network: 'true'
-            # vim-network-name: <update>
-            # provider-network:
-            #     overlay-type: VLAN
-            #     segmentation_id: <update>
-            vnfd-connection-point-ref:
-            # Specify the constituent VNFs
-            # member-vnf-index-ref - entry from constituent vnf
-            # vnfd-id-ref - VNFD id
-            # vnfd-connection-point-ref - connection point name in the VNFD
-            -   member-vnf-index-ref: 1
-                vnfd-id-ref: ${vnfd}
-                # NOTE: Validate the entry below
-                vnfd-connection-point-ref: vnf-cp0
-EOF
-
-    # Add rest of VLDs
-    for i in `seq 1 ${INTERFACES}`; do
-        eth=$(($i))
-        cat >>$desc_file <<EOF
-        -   id: ${name}_vld${i}
-            name: ${name}_vld${i}
-            short-name: ${name}_vld${i}
-            type: ELAN
-            # vim-network-name: <update>
-            # provider-network:
-            #     overlay-type: VLAN
-            #     segmentation_id: <update>
-            vnfd-connection-point-ref:
-            # Specify the constituent VNFs
-            # member-vnf-index-ref - entry from constituent vnf
-            # vnfd-id-ref - VNFD id
-            # vnfd-connection-point-ref - connection point name in the VNFD
-            -   member-vnf-index-ref: 1
-                vnfd-id-ref: ${vnfd}
-                # NOTE: Validate the entry below
-                vnfd-connection-point-ref: vnf-cp${eth}
-EOF
-    done
-
-    if [ $VERBOSE == true ]; then
-        echo "INFO: Created $desc_file"
-    fi
-}
-
-function write_nsd_config_tmpl() {
-    name=$(basename $1)
-    cfg_file="ns_config/$name.yaml"
-
-    cat >$cfg_file <<EOF
-
-EOF
-
-    if [ $VERBOSE == true ]; then
-        echo "INFO: Created $cfg_file"
-    fi
-}
-
-cur_dir=`pwd`
-
-# Check if the array contains a specific value
-# Taken from
-# http://stackoverflow.com/questions/3685970/check-if-an-array-contains-a-value
-function contains() {
-    local n=$#
-    local value=${!n}
-    for ((i=1;i < $#;i++)); do
-        if [ "${!i}" == "${value}" ]; then
-            echo "y"
-            return 0
-        fi
-    done
-    echo "n"
-    return 1
-}
-
-function check_type() {
-    type=$1
-    if [ $(contains "${DESC_TYPES[@]}" $type) == "y" ]; then
-        TYPE=$type
-    else
-        echo "ERROR: Unknown descriptor type $type!" >&2
-        exit 1
-    fi
-}
-
-function get_expr(){
-    # First argument is to specify if this is a negative match or not
-    # Rest are filename expressions without extension
-
-    local regex=" "
-    local n=$#
-    local neg="${1}"
-    local first="true"
-    for ((i=2;i <= $#;i++)); do
-        for extn in "${DESC_EXTN[@]}"; do
-            if [ $first == true ]; then
-                if [ $neg == true ]; then
-                    subexpr='! -name'
-                else
-                    subexpr='-name'
-                fi
-                first=false
-            else
-                if [ $neg == true ]; then
-                    subexpr=' -a ! -name'
-                else
-                    subexpr=' -o -name'
-                fi
-            fi
-
-            regex="$regex $subexpr ${!i}.$extn"
-        done
-    done
-
-    echo "$regex"
-}
-
-function generate_package(){
-    type=$1
-    name="${2}_${type}"
-    vnfd="${2}_vnfd" # Required for NSD
-    dest_dir=$3
-
-    dir="${dest_dir}/${name}"
-
-    # Create the folders for the descriptor
-    if [ $VERBOSE == true ]; then
-        echo "INFO: Creating folders for $PKG in $dest_dir"
-    fi
-
-    # Remove any existing directory
-    if [ -d $dir ]; then
-        rm -rf $dir >/dev/null 2>&1
-    fi
-
-    mkdir -p $dir && cd $dir
-    if [ $? -ne 0 ]; then
-        rc=$?
-        echo "ERROR: creating directory $dir ($rc)" >&2
-        exit $rc
-    fi
-
-    if [ $type == 'nsd' ]; then
-        folders=("${NSD_FOLDERS[@]}")
-    else
-        folders=("${VNFD_FOLDERS[@]}")
-    fi
-
-    for d in ${folders[@]}; do
-        mkdir -p $dir/$d
-        if [ $? -ne 0 ]; then
-            rc=$?
-            echo "ERROR: creating directory $dir/$d ($rc)" >&2
-            exit $rc
-        fi
-        if [ $VERBOSE == true ]; then
-            echo "Created folder $d in $dir"
-        fi
-    done
-
-    if [ $VERBOSE == true ]; then
-        echo "INFO: Created folders for in $dir"
-    fi
-
-    # Write a descriptor template file
-    if [ $type == 'vnfd' ]; then
-
-        # Copy cloud init file to correct folder
-        if [[ -n ${CLOUD_INIT_FILE} ]]; then
-            if [[ -e ${CLOUD_INIT_FILE} ]]; then
-                cp ${CLOUD_INIT_FILE} $dir/cloud_init
-            else
-                echo "ERROR: Unable to find cloud-init-file ${CLOUD_INIT_FILE}"
-                exit 1
-            fi
-        fi
-
-        write_vnfd_tmpl $dir
-    else
-        write_nsd_tmpl $dir $vnfd
-    fi
-
-    write_readme $dir
-
-    if [ $ARCHIVE == true ]; then
-        # Create archive of the package
-        cd $dest_dir
-        if [ $VERBOSE == true ]; then
-            tar zcvf ${name}.tar.gz ${name}
-            echo "Created package ${name}.tar.gz in $dest_dir"
-        else
-            tar zcvf ${name}.tar.gz ${name} >/dev/null 2>&1
-        fi
-
-        if [ $? -ne 0 ]; then
-            echo "ERROR: Creating archive for ${name} in $dest_dir" >&2
-            exit 1
-        fi
-
-        echo "$dest_dir/${name}.tar.gz" >&2
-
-        if [ $RM == true ]; then
-            rm -rf ${name}
-        fi
-    fi
-}
-
-OPTS=`getopt -o vhnt:d:caN --long verbose,dry-run,help,package-type:,destination-dir,create-folder,no-remove-files,archive,nsd,vendor:,interface-type:,vcpu:,memory:,storage:,image:,cloud-init-file:,cloud-init:,interfaces:,debug -n $SCRIPTNAME -- "$@"`
-
-if [ $? != 0 ] ; then
-    echo "ERROR: Failed parsing options ($?)." >&2
-    usage
-    exit 1
-fi
-
-#echo "$OPTS"
-eval set -- "$OPTS >/dev/null 2>&1"
-
-while true; do
-    case "$1" in
-        -v | --verbose ) VERBOSE=true; shift ;;
-        -h | --help )    usage; exit 0; shift ;;
-        -n | --dry-run ) DRY_RUN=true; shift ;;
-        -t | --package-type ) check_type "$2"; shift; shift ;;
-        -d | --destination-dir ) DEST_DIR=$2; shift; shift;;
-        -c | --create-folder ) CREATE=true; shift;;
-        -N | --no-remove-files ) RM=''; shift;;
-        -a | --archive ) ARCHIVE=true; shift;;
-        --nsd ) CREATE_NSD=true; shift;;
-        --vendor ) VENDOR=$2; shift; shift;;
-        --interface-type ) INTF_TYPE=$2; shift; shift;;
-        --vcpu ) VCPU=$2; shift; shift;;
-        --memory ) MEMORY=$2; shift; shift;;
-        --storage ) STORAGE=$2; shift; shift;;
-        --image ) IMAGE=$2; shift; shift;;
-        --cloud-init ) CLOUD_INIT=$2; shift; shift;;
-        --cloud-init-file ) CLOUD_INIT_FILE=$2; shift; shift;;
-        --interfaces ) INTERFACES=$2; shift; shift;;
-        --debug ) DEBUG=true; shift;;
-        -- ) shift; break ;;
-        * ) break ;;
-    esac
-done
-
-if [ $DEBUG == true ]; then
-    echo "INFO: Debugging ON"
-    set -x
-fi
-
-if [ $VERBOSE == true ]; then
-    echo "INFO: Descriptor type: $TYPE"
-fi
-
-# Dry run is to validate existing descriptor folders
-if [ $DRY_RUN == true ] && [ $CREATE == true ]; then
-    echo "ERROR: Option dry-run with create-folders not supported!" >&2
-    exit 1
-fi
-
-if [ $# -gt 1 ]; then
-    BASE_DIR=$1
-    PKG=$(basename $2)
-else
-    BASE_DIR=$(dirname $1)
-    PKG=$(basename $1)
-fi
-
-if [ $VERBOSE == true ]; then
-    echo "INFO: Using base dir: $BASE_DIR"
-fi
-
-if [ $VERBOSE == true ]; then
-    echo "INFO: Using package: $PKG"
-fi
-
-if [[ -z "$PKG" ]]; then
-    echo "ERROR: Need to specify the package name" >&2
-    usage >&2
-    exit 1
-fi
-
-if [[ ! -d $BASE_DIR ]]; then
-    if [ $CREATE == true ]; then
-        mkdir -p $BASE_DIR
-        if [ $? -ne 0 ]; then
-            echo "ERROR: Unable to create base directory $BASE_DIR" >&2
-            exit 1
-        fi
-    fi
-fi
-cd $BASE_DIR
-if [ $? -ne 0 ]; then
-    echo "ERROR: Unable to change to base directory $BASE_DIR!" >&2
-    exit 1
-fi
-
-# Get full base dir path
-BASE_DIR=`pwd`
-cd $cur_dir
-
-if [[ -z $DEST_DIR ]]; then
-    DEST_DIR=$BASE_DIR # Default to base directory
-fi
-
-mkdir -p $DEST_DIR
-
-cd $DEST_DIR
-if [ $? -ne 0 ]; then
-    echo "ERROR: Not able to access destination directory $DEST_DIR!" >&2
-    exit 1
-fi
-
-# Get the full destination dir path
-DEST_DIR=`pwd`
-cd $cur_dir
-
-dir=${BASE_DIR}/${PKG}
-
-function add_chksum() {
-    if [ $VERBOSE == true ]; then
-        echo "INFO: Add file $1 to $CHKSUM"
-    fi
-
-    md5sum $1 >> $CHKSUM
-}
-
-if [ $CREATE == false ]; then
-    if [ ! -d $dir ]; then
-        echo "INFO: Package folder $dir not found!" >&2
-        exit 1
-    fi
-
-    cd $dir
-    if [ $? -ne 0 ]; then
-        rc=$?
-        echo "ERROR: changing directory to $dir ($rc)" >&2
-        exit $rc
-    fi
-
-    # Remove checksum file, if present
-    rm -f $CHKSUM
-
-    # Check if the descriptor file is present
-    if [[ -z $TYPE ]]; then
-        # Desc type not specified, look for the desc file and guess the type
-        # Required for backward compatibility
-        for ty in ${DESC_TYPES[@]}; do
-            re=$(get_expr false "$ty" "*_$ty" "*_${ty}_*")
-            desc=$(find * -maxdepth 0 -type f $re 2>/dev/null)
-
-            if [[ -z $desc ]] || [ ${#desc[@]} -eq 0 ]; then
-                # Check the vnfd|nsd folder
-                if [ ! -d $ty ]; then
-                    continue
-                fi
-                re=$(get_expr false "*")
-                desc=$(find $ty/* -maxdepth 0 -type f $re 2>/dev/null)
-                if [[ -z $desc ]] || [ ${#desc[@]} -eq 0 ]; then
-                    continue
-                elif [ ${#desc[@]} -gt 1 ]; then
-                    echo "ERROR: Found multiple descriptor files: ${desc[@]}" >&2
-                    exit 1
-                fi
-                # Descriptor sub directory
-                desc_sub_dir=$ty
-            fi
-
-            TYPE=$ty
-            if [ $TYPE == 'nsd' ]; then
-                folders=("${NSD_FOLDERS[@]}")
-            else
-                folders=("${VNFD_FOLDERS[@]}")
-            fi
-
-            if [ $VERBOSE == true ]; then
-                echo "INFO: Determined descriptor is of type $TYPE"
-            fi
-            break
-        done
-
-        if [[ -z $TYPE ]]; then
-            echo "ERROR: Unable to determine the descriptor type!" >&2
-            exit 1
-        fi
-    else
-        if [ $TYPE == 'nsd' ]; then
-            folders=("${NSD_FOLDERS[@]}")
-        else
-            folders=("${VNFD_FOLDERS[@]}")
-        fi
-
-        # Check for descriptor of type provided on command line
-        re=$(get_expr false "$TYPE" "*_${TYPE}" "*_${TYPE}_*")
-        desc=$(find * -maxdepth 0 -type f $re 2>/dev/null)
-
-        if [[ -z $desc ]] || [ ${#desc[@]} -eq 0 ]; then
-            # Check if it is under vnfd/nsd subdirectory
-            # Backward compatibility support
-            re=$(get_expr false "*")
-            desc=$(find $TYPE/* -maxdepth 0 -type f $re 2>/dev/null)
-            if [[ -z $desc ]] || [ ${#desc[@]} -eq 0 ]; then
-                echo "ERROR: Did not find descriptor file of type $TYPE" \
-                     " in $dir" >&2
-                exit 1
-            fi
-            desc_sub_dir=$ty
-        fi
-    fi
-
-    if [ ${#desc[@]} -gt 1 ]; then
-        echo "ERROR: Found multiple files of type $TYPE in $dir: $desc" >&2
-        exit 1
-    fi
-
-    descriptor=${desc[0]}
-
-    # Check if there are files not supported
-    files=$(find * -maxdepth 0 -type f ! -name $descriptor 2>/dev/null)
-
-    for f in ${files[@]}; do
-        if [ $(contains "${ALLOWED_FILES[@]}" $f)  == "n" ]; then
-            for j in ${ALLOWED_FILES_WILDCARDS[@]}; do
-                if [[ $f != *"$j"* ]]; then
-                    echo "WARN: Unsupported file $f found"
-                fi
-            done
-        fi
-    done
-
-    if [ $VERBOSE == true ]; then
-        echo "INFO: Found descriptor package: ${desc_sub_dir} ${descriptor}"
-    fi
-
-    if [ $DRY_RUN == false ]; then
-        add_chksum ${descriptor}
-    fi
-
-    # Check the folders are supported ones
-    dirs=$( find * -maxdepth 0 -type d )
-
-    for d in ${dirs[@]}; do
-        if [ $(contains "${folders[@]}" $d) == "y" ]; then
-            if [ $DRY_RUN == false ]; then
-                find $d/* -type f  2>/dev/null|
-                    while read file; do
-                        add_chksum $file
-                    done
-            fi
-        elif [[ -z $desc_sub_dir ]] || [ $d != $desc_sub_dir ]; then
-            echo "WARN: $d is not part of standard folders " \
-                 "for descriptor type $TYPE in $PKG"
-        fi
-    done
-
-    if [ $VERBOSE == true ]; then
-        echo "INFO: Creating archive for $PKG"
-    fi
-
-    cd $BASE_DIR
-    # Mrityunjay Yadav: Validate descriptor
-    GEN_BASEDIR=$(dirname "$0")
-    python3 $GEN_BASEDIR/validate_descriptor.py $BASE_DIR/$PKG/$descriptor
-    if [ $? -ne 0 ]; then
-        rc=$?
-        echo "ERROR: validating descriptor for $PKG ($rc)" >&2
-        exit $rc
-    fi
-    if [ $DRY_RUN == false ]; then
-        if [ $VERBOSE == true ]; then
-            tar zcvf "$DEST_DIR/$PKG.tar.gz" "${PKG}" ${RM}
-        else
-            #tar zcvf ${name}.tar.gz ${name} >/dev/null 2>&1
-            tar zcvf "$DEST_DIR/$PKG.tar.gz" "${PKG}" ${RM} > /dev/null 2>&1
-        fi
-        if [ $? -ne 0 ]; then
-            rc=$?
-            echo "ERROR: creating archive for $PKG ($rc)" >&2
-            exit $rc
-        fi
-    fi
-else
-    # Create, default to VNFD if no type is defined
-    if [[ -z $TYPE ]]; then
-        TYPE=vnfd
-        if [ $VERBOSE == true ]; then
-            echo "WARNING: Defaulting to descriptor type $TYPE"
-        fi
-    fi
-
-    if [ $TYPE == 'vnfd' ]; then
-        if [[ -z $IMAGE ]]; then
-            echo "ERROR: Image file need to be specified for VNF"
-            exit 1
-        fi
-        generate_package vnfd $PKG $DEST_DIR
-    fi
-
-    if [ $TYPE == 'nsd' -o  $CREATE_NSD == true ]; then
-        generate_package nsd $PKG $DEST_DIR
-    fi
-
-fi
-
-cd $cur_dir
diff --git a/descriptor-packages/tools/launch_tests.sh b/descriptor-packages/tools/launch_tests.sh
deleted file mode 100755 (executable)
index 066e35c..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-
-function test_format
-{
- folder=$(dir -1)
-
- for file in $folder;
- do
-  if [ -n $file ]; then
-       if [ -d "$file" ]; then
-
-            cd $file
-            test_format
-            cd ..
-       else
-            extension=${file##*.}
-            name=${file%.*}
-            folder_file=`pwd`
-            if [ $extension == "yaml" ]; then
-                $tools_dir/upgrade_descriptor_version.py --test -i $folder_file"/"$name.$extension -o $folder_file"/"$name."output" 2> $folder_file"/"$name."error"
-                [ -s $folder_file"/"$name."output" ] || rm $folder_file"/"$name."output"
-                [ -s $folder_file"/"$name."error" ] || rm $folder_file"/"$name."error"
-            fi;
-       fi;
-  fi;
- done;
-}
-
-
-top_dir=`readlink -f .|sed -e 's/\/descriptor-packages\/.*//'`
-tools_dir=${top_dir}/tools
-
-if [ -f $tools_dir/upgrade_descriptor_version.py ]; then
-    cd ${top_dir}/
-    test_format ./
-else
-    print "Error: 'make' command should be called inside '/devops/descriptor-packages/' folder to work"
-    exit -1
-fi;
diff --git a/descriptor-packages/tools/upgrade_descriptor_version.py b/descriptor-packages/tools/upgrade_descriptor_version.py
deleted file mode 100755 (executable)
index 7db1ec6..0000000
+++ /dev/null
@@ -1,347 +0,0 @@
-#!/usr/bin/env python2
-# -*- coding: utf-8 -*-
-
-##
-# All Rights Reserved.
-#
-# 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.
-#
-##
-from __future__ import print_function
-import json
-import yaml
-# import logging
-import sys
-import getopt
-
-"""
-Converts OSM VNFD, NSD descriptor from release TWO to release THREE format
-"""
-__author__ = "Alfonso Tierno, Guillermo Calvino"
-__date__ = "2017-10-14"
-__version__ = "0.0.2"
-version_date = "Nov 2017"
-
-
-class ArgumentParserError(Exception):
-    pass
-
-
-def usage():
-    print("Usage: {} [options] FILE".format(sys.argv[0]))
-    print(" EXPERIMENTAL: Upgrade vnfd, nsd descriptor from old versions to release THREE version")
-    print(" FILE: a yaml or json vnfd-catalog or nsd-catalog descriptor")
-    print(" OPTIONS:")
-    print("      -v|--version: prints current version")
-    print("      -h|--help: shows this help")
-    print("      -i|--input FILE: (same as param FILE) descriptor file to be upgraded")
-    print("      -o|--output FILE: where to write generated descriptor. By default stdout")
-    print("      --test: Content is tested to check wrong format or unknown keys")
-    return
-
-
-def remove_prefix(desc, prefix):
-    """
-    Recursively removes prefix from keys
-    :param desc: dictionary or list to change
-    :param prefix: prefix to remove. Must
-    :return: None, param desc is changed
-    """
-    prefix_len = len(prefix)
-    if isinstance(desc, dict):
-        prefixed_list=[]
-        for k,v in desc.items():
-            if isinstance(v, (list, tuple, dict)):
-                remove_prefix(v, prefix)
-            if isinstance(k, str) and k.startswith(prefix) and k != prefix:
-                prefixed_list.append(k)
-        for k in prefixed_list:
-            desc[k[prefix_len:]] = desc.pop(k)
-    elif isinstance(desc, (list, tuple)):
-        for i in desc:
-            if isinstance(desc, (list, tuple, dict)):
-                remove_prefix(i, prefix)
-
-
-if __name__=="__main__":
-    error_position = []
-    format_output_yaml = True
-    input_file_name = None
-    output_file_name = None
-    test_file = None
-    file_name = None
-    try:
-        # load parameters and configuration
-        opts, args = getopt.getopt(sys.argv[1:], "hvi:o:", ["input=", "help", "version", "output=", "test",])
-
-        for o, a in opts:
-            if o in ("-v", "--version"):
-                print ("upgrade descriptor version " + __version__ + ' ' + version_date)
-                sys.exit()
-            elif o in ("-h", "--help"):
-                usage()
-                sys.exit()
-            elif o in ("-i", "--input"):
-                input_file_name = a
-            elif o in ("-o", "--output"):
-                output_file_name = a
-            elif o == "--test":
-                test_file = True
-            else:
-                assert False, "Unhandled option"
-        if not input_file_name:
-            if not args:
-                raise ArgumentParserError("missing DESCRIPTOR_FILE parameter. Type --help for more info")
-            input_file_name = args[0]
-
-        # Open files
-        file_name = input_file_name
-        with open(file_name, 'r') as f:
-            descriptor_str = f.read()
-        if output_file_name:
-            file_name = output_file_name
-            output = open(file_name, 'w')
-        else:
-            output = sys.stdout
-        file_name = None
-
-        if input_file_name.endswith('.yaml') or input_file_name.endswith('.yml') or not \
-            (input_file_name.endswith('.json') or '\t' in descriptor_str):
-            data = yaml.load(descriptor_str)
-        else:   # json
-            data = json.loads(descriptor_str)
-            format_output_yaml = False
-
-        if test_file:
-            import osm_im.vnfd as vnfd_catalog
-            import osm_im.nsd as nsd_catalog
-            from pyangbind.lib.serialise import pybindJSONDecoder
-
-            if "vnfd:vnfd-catalog" in data or "vnfd-catalog" in data:
-                descriptor = "VNF"
-                #Check if mgmt-interface is defined:
-                remove_prefix(data, "vnfd:")
-                vnfd_descriptor = data["vnfd-catalog"]
-                vnfd_list = vnfd_descriptor["vnfd"]
-                mgmt_iface = False
-                for vnfd in vnfd_list:
-                    vdu_list = vnfd["vdu"]
-                    for vdu in vdu_list:
-                        interface_list = []
-                        external_interface_list = vdu.pop("external-interface", ())
-                        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")
-                        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")
-                    if vnfd.get("mgmt-interface"):
-                        mgmt_iface = True
-                        if vnfd["mgmt-interface"].get("vdu-id"):
-                            raise KeyError("'mgmt-iface': Deprecated 'vdu-id' field. Please, use 'cp' field instead")
-                if not mgmt_iface:
-                    raise KeyError("'mgmt-iface' is a mandatory field and it is not defined")
-                myvnfd = vnfd_catalog.vnfd()
-                pybindJSONDecoder.load_ietf_json(data, None, None, obj=myvnfd)
-            elif "nsd:nsd-catalog" in data or "nsd-catalog" in data:
-                descriptor = "NS"
-                mynsd = nsd_catalog.nsd()
-                pybindJSONDecoder.load_ietf_json(data, None, None, obj=mynsd)
-            else:
-                descriptor = None
-                raise KeyError("This is not neither nsd-catalog nor vnfd-catalog descriptor")
-            exit(0)
-
-        # Convert version
-        if "vnfd:vnfd-catalog" in data or "vnfd-catalog" in data:
-            remove_prefix(data, "vnfd:")
-            error_position.append("vnfd-catalog")
-            vnfd_descriptor = data["vnfd-catalog"]
-            vnfd_list = vnfd_descriptor["vnfd"]
-            error_position.append("vnfd")
-            for vnfd in vnfd_list:
-                error_position[-1] = "vnfd[{}]".format(vnfd["id"])
-                # Remove vnf-configuration:config-attributes
-                if "vnf-configuration" in vnfd and "config-attributes" in vnfd["vnf-configuration"]:
-                    del vnfd["vnf-configuration"]["config-attributes"]
-                # Remove interval-vld:vendor
-                if "internal-vld" in vnfd:
-                    internal_vld_list = vnfd.get("internal-vld", ())
-                    for internal_vld in internal_vld_list:
-                        if "vendor" in internal_vld:
-                            del internal_vld["vendor"]
-                # Remove "rw-nsd:meta"
-                if "rw-vnfd:meta" in vnfd:
-                    del vnfd["rw-vnfd:meta"]
-                # Change vnf-configuration:service-primitive into vnf-configuration:config-primitive
-                if "vnf-configuration" in vnfd and "service-primitive" in vnfd["vnf-configuration"]:
-                    vnfd["vnf-configuration"]["config-primitive"] = vnfd["vnf-configuration"].pop("service-primitive")
-
-                # Convert to capital letters vnf-configuration:service-primitive:parameter:data-type
-                if "vnf-configuration" in vnfd and "config-primitive" in vnfd["vnf-configuration"]:
-                    error_position.append("vnf-configuration")
-                    error_position.append("config-primitive")
-                    primitive_list = vnfd["vnf-configuration"].get("config-primitive", ())
-
-                    for primitive in primitive_list:
-                        if "parameter" in primitive:
-                            parameter_list = primitive.get("parameter", ())
-                            for parameter in parameter_list:
-                                parameter["data-type"] = str(parameter["data-type"]).upper()
-
-                    vnfd["vnf-configuration"]["config-primitive"] = primitive_list
-                    error_position.pop()
-                    error_position.pop()
-                # Iterate with vdu:interfaces
-                vdu_list = vnfd["vdu"]
-                error_position.append("vdu")
-                vdu2mgmt_cp = {}  # internal dict to indicate management interface for each vdu
-                for vdu in vdu_list:
-                    error_position[-1] = "vdu[{}]".format(vdu["id"])
-                    # Change external/internal interface
-                    interface_list = []
-                    external_interface_list = vdu.pop("external-interface", ())
-                    error_position.append("external-interface")
-                    for external_interface in external_interface_list:
-                        error_position[-1] = "external-interface[{}]".format(external_interface["name"])
-                        if "rw-vnfd:floating-ip-needed" in external_interface:
-                            del external_interface["rw-vnfd:floating-ip-needed"]
-                        external_interface["type"] = "EXTERNAL"
-                        external_interface["external-connection-point-ref"] = \
-                            external_interface.pop("vnfd-connection-point-ref")
-                        if external_interface.get("virtual-interface", {}).get("type") == "OM-MGMT":
-                            external_interface["virtual-interface"]["type"] = "VIRTIO"
-                            if vdu["id"] not in vdu2mgmt_cp:
-                                vdu2mgmt_cp[vdu["id"]] = external_interface["external-connection-point-ref"]
-                        interface_list.append(external_interface)
-                    error_position.pop()
-                    internal_interface_list = vdu.pop("internal-interface", ())
-                    error_position.append("internal-interface")
-                    for internal_interface in internal_interface_list:
-                        error_position[-1] = "internal-interface[{}]".format(internal_interface["name"])
-                        internal_interface["type"] = "INTERNAL"
-                        internal_interface["internal-connection-point-ref"] = \
-                            internal_interface.pop("vdu-internal-connection-point-ref")
-                        interface_list.append(internal_interface)
-                    error_position.pop()
-
-                    #Removing "rw-vnfd:floating-ip-needed" items from V3 descriptors
-                    interfaces = vdu.pop("interface", ())
-                    for iface in interfaces:
-                        if "rw-vnfd:floating-ip-needed" in iface:
-                            del iface["rw-vnfd:floating-ip-needed"]
-                        interface_list.append(iface)
-
-                    # order interface alphabetically and set position
-                    if interface_list:
-                        interface_list = sorted(interface_list,
-                                                key=lambda k: k.get('external-connection-point-ref',
-                                                                    k.get('internal-connection-point-ref')))
-                        index = 1
-                        for i in interface_list:
-                            i["position"] = str(index)
-                            index += 1
-
-                        vdu["interface"] = interface_list
-                error_position.pop()
-                # change mgmt-interface
-                if vnfd.get("mgmt-interface"):
-                    error_position.append("mgmt-interface")
-                    vdu_id = vnfd["mgmt-interface"].pop("vdu-id", None)
-                    if vdu_id:
-                        error_position.append("vdu-id")
-                        vnfd["mgmt-interface"]["cp"] = vdu2mgmt_cp[vdu_id]
-                        error_position.pop()
-                    error_position.pop()
-            error_position = []
-        elif "nsd:nsd-catalog" in data or "nsd-catalog" in data:
-            remove_prefix(data, "nsd:")
-            error_position.append("nsd-catalog")
-            nsd_descriptor = data["nsd-catalog"]
-            nsd_list = nsd_descriptor["nsd"]
-            error_position.append("nsd")
-            for nsd in nsd_list:
-                error_position[-1] = "nsd[{}]".format(nsd["id"])
-                # set mgmt-network to true
-                error_position.append("vld")
-                vld_list = nsd.get("vld", ())
-                for vld in vld_list:
-                    error_position[-1] = "vld[{}]".format(vld["id"])
-                    if "mgmt" in vld["name"].lower() or "management" in vld["name"].lower():
-                        vld['mgmt-network'] = 'true'
-                        break
-                error_position.pop()
-                # Change initial-config-primitive into initial-service-primitive
-                if "initial-config-primitive" in nsd:
-                    nsd['initial-service-primitive'] = nsd.pop("initial-config-primitive")
-                # Remove "rw-nsd:meta"
-                if "rw-nsd:meta" in nsd:
-                    del nsd["rw-nsd:meta"]
-                # Remove "rw-meta"
-                if "rw-meta" in nsd:
-                    del nsd["rw-meta"]
-                # Iterate with vld:id
-                error_position.append("vld")
-                vld_list = nsd.get("vld",())
-                for vld in vld_list:
-                    error_position[-1] = "vld[{}]".format(vld["id"])
-                    if "provider-network" in vld and "overlay-type" in vld["provider-network"]:
-                        del vld["provider-network"]["overlay-type"]
-                error_position.pop()
-                if vld_list:
-                    nsd["vld"] = vld_list
-            error_position = []
-        else:
-            error_position = ["global"]
-            raise KeyError("This is not neither nsd-catalog nor vnfd-catalog descriptor")
-
-        if format_output_yaml:
-            yaml.dump(data, output, indent=4, default_flow_style=False)
-        else:
-            json.dump(data, output)
-        exit(0)
-
-    except yaml.YAMLError as exc:
-        error_pos = ""
-        if hasattr(exc, 'problem_mark'):
-            mark = exc.problem_mark
-            error_pos = "at line:%s column:%s" % (mark.line + 1, mark.column + 1)
-        print("Error loading file '{}'. yaml format error {}".format(input_file_name, error_pos), file=sys.stderr)
-
-#    except json.decoder.JSONDecodeError as e:
-#        print("Invalid field at configuration file '{file}' {message}".format(file=input_file_name, message=str(e)),
-#              file=sys.stderr)
-    except ArgumentParserError as e:
-        print(str(e), file=sys.stderr)
-    except IOError as e:
-            print("Error loading file '{}': {}".format(file_name, e), file=sys.stderr)
-    except ImportError as e:
-        print ("Package python-osm-im not installed: {}".format(e), file=sys.stderr)
-    except Exception as e:
-        if test_file:
-            if descriptor:
-                print("Error. Invalid {} descriptor format in '{}': {}".format(descriptor, input_file_name, str(e)), file=sys.stderr)
-            else:
-                print("Error. Invalid descriptor format in '{}': {}".format(input_file_name, str(e)),
-                      file=sys.stderr)
-        elif error_position:
-            print("Descriptor error at '{}': {}".format(":".join(error_position), e), file=sys.stderr)
-        elif file_name:
-            print ("Error loading file '{}': {}".format(file_name, str(e)), file=sys.stderr)
-        else:
-            raise
-            # print("Unexpected exception {}".format(e), file=sys.stderr)
-    exit(1)
diff --git a/descriptor-packages/tools/validate_descriptor.py b/descriptor-packages/tools/validate_descriptor.py
deleted file mode 100755 (executable)
index de958fe..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-##
-# All Rights Reserved.
-#
-# 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.
-#
-##
-from __future__ import print_function
-import json
-import yaml
-import sys
-import getopt
-import os
-
-"""
-Tests the format of OSM VNFD and NSD descriptors
-"""
-__author__ = "Alfonso Tierno, Guillermo Calvino"
-__date__ = "2018-04-16"
-__version__ = "0.0.1"
-version_date = "Apr 2018"
-
-
-class ArgumentParserError(Exception):
-    pass
-
-class DescriptorValidationError(Exception):
-    pass
-
-def usage():
-    print("Usage: {} [options] FILE".format(sys.argv[0]))
-    print(" Validates vnfd, nsd and nst descriptors format")
-    print(" FILE: a yaml or json vnfd-catalog, nsd-catalog or nst descriptor")
-    print(" OPTIONS:")
-    print("      -v|--version: prints current version")
-    print("      -h|--help: shows this help")
-    print("      -i|--input FILE: (same as param FILE) descriptor file to be upgraded")
-    print("      -c|--charms: looks for the charms folder and validates its coherency with the descriptor")
-    return
-
-
-def remove_prefix(desc, prefix):
-    """
-    Recursively removes prefix from keys
-    :param desc: dictionary or list to change
-    :param prefix: prefix to remove. Must
-    :return: None, param desc is changed
-    """
-    prefix_len = len(prefix)
-    if isinstance(desc, dict):
-        prefixed_list=[]
-        for k,v in desc.items():
-            if isinstance(v, (list, tuple, dict)):
-                remove_prefix(v, prefix)
-            if isinstance(k, str) and k.startswith(prefix) and k != prefix:
-                prefixed_list.append(k)
-        for k in prefixed_list:
-            desc[k[prefix_len:]] = desc.pop(k)
-    elif isinstance(desc, (list, tuple)):
-        for i in desc:
-            if isinstance(desc, (list, tuple, dict)):
-                remove_prefix(i, prefix)
-
-
-# Mrityunjay Yadav: Function to verify charm included in VNF Package
-def validate_charm(charm, desc_file):
-    """
-    Verify charm included in VNF Package and raised error if invalid
-    :param charm: vnf-configuration/vdu-configuration
-    :param desc_file: descriptor file
-    :return: None
-    """
-    check_list = ['layer.yaml', 'metadata.yaml', 'actions.yaml', 'actions', 'hooks']
-    charm_name = charm['juju']['charm']
-    charm_dir = os.path.join(os.path.abspath(os.path.dirname(desc_file)), 'charms', charm_name)
-
-    config_primitive = charm.get('config-primitive', [])
-    initial_config_primitive = charm.get('initial-config-primitive', [])
-
-    if charm.get('metrics'):
-        check_list.append('metrics.yaml')
-
-    if os.path.exists(charm_dir):
-        if not all(item in os.listdir(charm_dir) for item in check_list):
-            raise KeyError("Invalid charm {}".format(charm_name))
-    else:
-        raise KeyError("Provided charm:{} does not exist in descriptor.".format(charm_name))
-
-
-if __name__ == "__main__":
-    error_position = []
-    format_output_yaml = True
-    input_file_name = None
-    test_file = None
-    file_name = None
-    validate_charms = False
-    try:
-        # load parameters and configuration
-        opts, args = getopt.getopt(sys.argv[1:], "hvi:o:", ["input=", "help", "version",])
-
-        for o, a in opts:
-            if o in ("-v", "--version"):
-                print("test descriptor version THREE " + __version__ + ' ' + version_date)
-                sys.exit()
-            elif o in ("-h", "--help"):
-                usage()
-                sys.exit()
-            elif o in ("-i", "--input"):
-                input_file_name = a
-            elif o in ("-c", "--charms"):
-                validate_charms = True
-            else:
-                assert False, "Unhandled option"
-        if not input_file_name:
-            if not args:
-                raise ArgumentParserError("missing DESCRIPTOR_FILE parameter. Type --help for more info")
-            input_file_name = args[0]
-
-        # Open files
-        file_name = input_file_name
-        with open(file_name, 'r') as f:
-            descriptor_str = f.read()
-        file_name = None
-
-        if input_file_name.endswith('.yaml') or input_file_name.endswith('.yml') or not \
-            (input_file_name.endswith('.json') or '\t' in descriptor_str):
-            data = yaml.load(descriptor_str)
-        else:   # json
-            data = json.loads(descriptor_str)
-            format_output_yaml = False
-
-        import osm_im.vnfd as vnfd_catalog
-        import osm_im.nsd as nsd_catalog
-        import osm_im.nst as nst_catalog
-        from pyangbind.lib.serialise import pybindJSONDecoder
-
-        if "vnfd:vnfd-catalog" in data or "vnfd-catalog" in data:
-            descriptor = "VNF"
-            # Check if mgmt-interface is defined:
-            remove_prefix(data, "vnfd:")
-            vnfd_descriptor = data["vnfd-catalog"]
-            vnfd_list = vnfd_descriptor["vnfd"]
-            mgmt_iface = False
-            for vnfd in vnfd_list:
-                if "vdu" not in vnfd and "kdu" not in vnfd:
-                    raise DescriptorValidationError("vdu or kdu not present in the descriptor")
-                vdu_list = vnfd.get("vdu",[])
-                for vdu in vdu_list:
-                    interface_list = []
-                    external_interface_list = vdu.pop("external-interface", ())
-                    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 'PARAVIRT' instead")
-                    interface_list = vdu.get("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 'PARAVIRT' instead")
-                    # Mrityunjay yadav: Verify charm if included in vdu
-                    if vdu.get("vdu-configuration", False) and validate_charms:
-                        validate_charm(vdu["vdu-configuration"], input_file_name)
-                if vnfd.get("mgmt-interface"):
-                    mgmt_iface = True
-                    if vnfd["mgmt-interface"].get("vdu-id"):
-                        raise KeyError("'mgmt-iface': Deprecated 'vdu-id' field. Please, use 'cp' field instead")
-                # Mrityunjay yadav: Verify charm if included in vnf
-                if vnfd.get("vnf-configuration", False) and validate_charms:
-                    validate_charm(vnfd["vnf-configuration"], input_file_name)
-                kdu_list = vnfd.get("kdu",[])
-
-            if not mgmt_iface:
-                raise KeyError("'mgmt-interface' is a mandatory field and it is not defined")
-            myvnfd = vnfd_catalog.vnfd()
-            pybindJSONDecoder.load_ietf_json(data, None, None, obj=myvnfd)
-        elif "nsd:nsd-catalog" in data or "nsd-catalog" in data:
-            descriptor = "NS"
-            mynsd = nsd_catalog.nsd()
-            pybindJSONDecoder.load_ietf_json(data, None, None, obj=mynsd)
-        elif "nst:nst" in data or "nst" in data:
-            descriptor = "NST"
-            mynst = nst_catalog.nst()
-            pybindJSONDecoder.load_ietf_json(data, None, None, obj=mynst)
-        else:
-            descriptor = None
-            raise KeyError("This is not neither nsd-catalog nor vnfd-catalog descriptor")
-        exit(0)
-
-    except yaml.YAMLError as exc:
-        error_pos = ""
-        if hasattr(exc, 'problem_mark'):
-            mark = exc.problem_mark
-            error_pos = "at line:%s column:%s" % (mark.line + 1, mark.column + 1)
-        print("Error loading file '{}'. yaml format error {}".format(input_file_name, error_pos), file=sys.stderr)
-    except DescriptorValidationError as e:
-        print(str(e), file=sys.stderr)
-    except ArgumentParserError as e:
-        print(str(e), file=sys.stderr)
-    except IOError as e:
-        print("Error loading file '{}': {}".format(file_name, e), file=sys.stderr)
-    except ImportError as e:
-        print ("Package python-osm-im not installed: {}".format(e), file=sys.stderr)
-    except Exception as e:
-        if file_name:
-            print("Error loading file '{}': {}".format(file_name, str(e)), file=sys.stderr)
-        else:
-            if descriptor:
-                print("Error. Invalid {} descriptor format in '{}': {}".format(descriptor, input_file_name, str(e)), file=sys.stderr)
-            else:
-                print("Error. Invalid descriptor format in '{}': {}".format(input_file_name, str(e)), file=sys.stderr)
-    exit(1)
diff --git a/descriptor-packages/vnfd/Makefile b/descriptor-packages/vnfd/Makefile
deleted file mode 100644 (file)
index fdd2045..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-SUBDIRS = $(wildcard */)
-TOPDIR ?= ../
-include $(TOPDIR)/mk/dirs.mk
diff --git a/descriptor-packages/vnfd/VyOS_vnf/Makefile b/descriptor-packages/vnfd/VyOS_vnf/Makefile
deleted file mode 100644 (file)
index a08d588..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/VyOS_vnf/src/VyOS__vnfd.yaml b/descriptor-packages/vnfd/VyOS_vnf/src/VyOS__vnfd.yaml
deleted file mode 100644 (file)
index b49e42b..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-vnfd-catalog:
-    vnfd:
-    -   id: VyOS
-        name: VyOS
-        short-name: VyOS
-        description: VyOS Router
-        logo: osm_2x.png
-        mgmt-interface:
-            cp: eth0
-        vnf-configuration:
-            config-primitive:
-            -   name: config
-                parameter:
-                -   name: user
-                    data-type: STRING
-                    mandatory: 'true'
-                    default-value: vyos
-                -   name: pass
-                    data-type: STRING
-                    mandatory: 'true'
-                    default-value: vyos
-            -   name: ping
-                parameter:
-                -   name: destination
-                    data-type: STRING
-                    mandatory: 'true'
-                -   name: count
-                    data-type: INTEGER
-                    mandatory: 'false'
-                    default-value: 5
-            initial-config-primitive:
-            -   name: config
-                parameter:
-                -   name: hostname
-                    value: <rw_mgmt_ip>
-                -   name: pass
-                    value: vyos
-                seq: '1'
-            juju:
-                charm: vyos-proxy
-        connection-point:
-        -   name: eth0
-
-        -   name: eth1
-
-        -   name: eth2
-
-        -   name: eth3
-
-        -   name: eth4
-
-        vdu:
-        -   id: VyOS-VM
-            name: VyOS-VM
-            description: VyOS-VM
-            image: /mnt/powervault/virtualization/osm/VyOS/VyOS-1.1.7-signed-disk1.qcow2
-            vm-flavor:
-                memory-mb: '1024'
-                storage-gb: '40'
-                vcpu-count: '1'
-            mgmt-vpci: 0000:00:0a.0
-            interface:
-            -   name: eth0
-                type: EXTERNAL
-                virtual-interface:
-                    bandwidth: '0'
-                    type: PARAVIRT
-                    vpci: 0000:00:0a.0
-                external-connection-point-ref: eth0
-            -   name: eth1
-                type: EXTERNAL
-                virtual-interface:
-                    bandwidth: '0'
-                    type: PARAVIRT
-                    vpci: 0000:00:0b.0
-                external-connection-point-ref: eth1
-            -   name: eth2
-                type: EXTERNAL
-                virtual-interface:
-                    bandwidth: '0'
-                    type: PARAVIRT
-                    vpci: 0000:00:0c.0
-                external-connection-point-ref: eth2
-            -   name: eth3
-                type: EXTERNAL
-                virtual-interface:
-                    bandwidth: '0'
-                    type: PARAVIRT
-                    vpci: 0000:00:0d.0
-                external-connection-point-ref: eth3
-            -   name: eth4
-                type: EXTERNAL
-                virtual-interface:
-                    bandwidth: '0'
-                    type: PARAVIRT
-                    vpci: 0000:00:0e.0
-                external-connection-point-ref: eth4
-            guest-epa:
-                cpu-pinning-policy: DEDICATED
-                cpu-thread-pinning-policy: PREFER
-                mempage-size: LARGE
-                numa-node-policy:
-                    mem-policy: STRICT
-                    node:
-                    -   id: '0'
-                        paired-threads:
-                            num-paired-threads: '1'
-                    node-cnt: '1'
diff --git a/descriptor-packages/vnfd/VyOS_vnf/src/icons/osm_2x.png b/descriptor-packages/vnfd/VyOS_vnf/src/icons/osm_2x.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/vnfd/VyOS_vnf/src/icons/osm_2x.png and /dev/null differ
diff --git a/descriptor-packages/vnfd/cirros_noportsecurity_vnf/Makefile b/descriptor-packages/vnfd/cirros_noportsecurity_vnf/Makefile
deleted file mode 100644 (file)
index ad4b68c..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/cirros_noportsecurity_vnf/src/README b/descriptor-packages/vnfd/cirros_noportsecurity_vnf/src/README
deleted file mode 100755 (executable)
index e69de29..0000000
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
deleted file mode 100755 (executable)
index 2ee60f7..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-vnfd-catalog:
-    vnfd:
-    -   id: cirros_noportsecurity_vnfd
-        name: cirros_noportsecurity_vnf
-        short-name: cirros_noportsecurity_vnf
-        description: Simple VNF example with a cirros 
-        vendor: OSM
-        version: '1.0'
-
-        # Place the logo as png in icons directory and provide the name here
-        logo: cirros-64.png
-
-        # Management interface
-        mgmt-interface:
-            cp: eth0
-
-        # Atleast one VDU need to be specified
-        vdu:
-        -   id: cirros_vnfd-VM
-            name: cirros_vnfd-VM
-            description: cirros_vnfd-VM
-            count: 1
-
-            # Flavour of the VM to be instantiated for the VDU
-            # flavor below can fit into m1.micro
-            vm-flavor:
-                vcpu-count: 1
-                memory-mb: 256
-                storage-gb: 2
-
-            # Image/checksum or image including the full path
-            image: 'cirros034'
-            #checksum: 
-
-            interface:
-            # Specify the external interfaces
-            # There can be multiple interfaces defined
-            -   name: eth0
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                    bandwidth: '0'
-                    vpci: 0000:00:0a.0
-                external-connection-point-ref: eth0
-
-        connection-point:
-            -   name: eth0
-
-                port-security-enabled: "false"
diff --git a/descriptor-packages/vnfd/cirros_noportsecurity_vnf/src/icons/cirros-64.png b/descriptor-packages/vnfd/cirros_noportsecurity_vnf/src/icons/cirros-64.png
deleted file mode 100755 (executable)
index 5725d29..0000000
Binary files a/descriptor-packages/vnfd/cirros_noportsecurity_vnf/src/icons/cirros-64.png and /dev/null differ
diff --git a/descriptor-packages/vnfd/cirros_vnf/Makefile b/descriptor-packages/vnfd/cirros_vnf/Makefile
deleted file mode 100644 (file)
index ad4b68c..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/cirros_vnf/src/cirros_vnfd.yaml b/descriptor-packages/vnfd/cirros_vnf/src/cirros_vnfd.yaml
deleted file mode 100644 (file)
index 16b4989..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-vnfd-catalog:
-    vnfd:
-    -   id: cirros_vnfd
-        name: cirros_vnf
-        short-name: cirros_vnf
-        description: Simple VNF example with a cirros 
-        vendor: OSM
-        version: '1.0'
-
-        # Place the logo as png in icons directory and provide the name here
-        logo: cirros-64.png
-
-        # Management interface
-        mgmt-interface:
-            cp: eth0
-
-        # Atleast one VDU need to be specified
-        vdu:
-        -   id: cirros_vnfd-VM
-            name: cirros_vnfd-VM
-            description: cirros_vnfd-VM
-            count: 1
-
-            # Flavour of the VM to be instantiated for the VDU
-            # flavor below can fit into m1.micro
-            vm-flavor:
-                vcpu-count: 1
-                memory-mb: 256
-                storage-gb: 2
-
-            # Image/checksum or image including the full path
-            image: 'cirros-0.3.5-x86_64-disk.img'
-            #checksum:
-
-            interface:
-            # Specify the external interfaces
-            # There can be multiple interfaces defined
-            -   name: eth0
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                    bandwidth: '0'
-                    vpci: 0000:00:0a.0
-                external-connection-point-ref: eth0
-
-        connection-point:
-            -   name: eth0
-
diff --git a/descriptor-packages/vnfd/cirros_vnf/src/icons/cirros-64.png b/descriptor-packages/vnfd/cirros_vnf/src/icons/cirros-64.png
deleted file mode 100644 (file)
index 5725d29..0000000
Binary files a/descriptor-packages/vnfd/cirros_vnf/src/icons/cirros-64.png and /dev/null differ
diff --git a/descriptor-packages/vnfd/dns_aws_vnfd/Makefile b/descriptor-packages/vnfd/dns_aws_vnfd/Makefile
deleted file mode 100644 (file)
index ad4b68c..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/dns_aws_vnfd/src/cloud_init/cloud_init.cfg b/descriptor-packages/vnfd/dns_aws_vnfd/src/cloud_init/cloud_init.cfg
deleted file mode 100644 (file)
index 00c41b7..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#cloud-config
-
-password: c0mpl3xp4ssw0rd
-chpasswd: { expire: False }
-ssh_pwauth: True
-
-write_files:
--   content: |
-        # My new helloworld file
-        sudo apt update
-        sudo apt install dnsmasq -y
-        sudo bash -c 'cat << EOF > /etc/dnsmasq.conf
-        strict-order
-        interface=eth0
-        no-dhcp-interface=eth0
-        EOF'
-    owner: root:root
-    permissions: '0774'
-    path: /tmp/configure_dns
-
-runcmd:
- - /tmp/configure_dns
-
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
deleted file mode 100755 (executable)
index 38e8a68..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-vnfd-catalog:
-    vnfd:
-    -   connection-point:
-        -   name: eth0
-
-        description: Simple VNF example with a DNS forwarder
-        id: dns_forwarder
-        logo: dns.jpg
-        mgmt-interface:
-            cp: eth0
-        name: dns_forwarder
-        service-function-chain: UNAWARE
-        short-name: dns_forwarder
-        vdu:
-        -   count: '1'
-            description: dns_forwarder-VM
-            interface:
-            -   name: eth0
-                type: EXTERNAL
-                virtual-interface:
-                    bandwidth: '0'
-                    type: PARAVIRT
-                    vpci: 0000:00:0a.0
-                external-connection-point-ref: eth0
-            guest-epa:
-                cpu-pinning-policy: ANY
-            id: dns_forwarder-VM
-            image: ubuntu/images/hvm-ssd/ubuntu-zesty-17.04-amd64-server-20170619.1
-            cloud-init-file: cloud_init.cfg
-            name: dns_forwarder-VM
-            supplemental-boot-data:
-                boot-data-drive: 'false'
-            vm-flavor:
-                memory-mb: '1024'
-                storage-gb: '1'
-                vcpu-count: '1'
-        vendor: OSM
-        version: '1.0'
diff --git a/descriptor-packages/vnfd/dns_aws_vnfd/src/icons/dns.jpg b/descriptor-packages/vnfd/dns_aws_vnfd/src/icons/dns.jpg
deleted file mode 100644 (file)
index 6cec5e1..0000000
Binary files a/descriptor-packages/vnfd/dns_aws_vnfd/src/icons/dns.jpg and /dev/null differ
diff --git a/descriptor-packages/vnfd/hackfest_ansible_vnf/Makefile b/descriptor-packages/vnfd/hackfest_ansible_vnf/Makefile
deleted file mode 100644 (file)
index e989331..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-#   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.
-#
-DESCRIPTORS_TOPDIR ?= ../..
-
-VNFD_CHARM = ansible-charm
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/hackfest_ansible_vnf/src/ansiblecharm_vnfd.yaml b/descriptor-packages/vnfd/hackfest_ansible_vnf/src/ansiblecharm_vnfd.yaml
deleted file mode 100644 (file)
index 0161482..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-vnfd:vnfd-catalog:
-    vnfd:
-    -   id: ansiblecharm_vnfd
-        name: ansiblecharm_vnfd
-        short-name: ansiblecharm_vnfd
-        description: Generated by OSM package generator
-        vendor: OSM
-        logo: osm.png
-        version: '1.0'
-        connection-point:
-        -   name: vnf-cp0
-
-        mgmt-interface:
-            cp: vnf-cp0
-        vdu:
-        -   id: ansiblecharm_vnfd-VM
-            name: ansiblecharm_vnfd-VM
-            description: ansiblecharm_vnfd-VM
-            count: 1
-            vm-flavor:
-                vcpu-count: 1
-                memory-mb: 1024
-                storage-gb: 10
-            image: 'ubuntu1604'
-            interface:
-            -   name: vdu-eth0
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: vnf-cp0
-            cloud-init-file: cloud-config.txt
-        vnf-configuration:
-             juju:
-                 charm: ansible-charm
-             initial-config-primitive:
-             -   seq: 1
-                 name: config
-                 parameter:
-                 -   name: ssh-hostname
-                     value: <rw_mgmt_ip>
-                 -   name: ssh-username
-                     value: ubuntu
-                 -   name: ssh-password
-                     value: osm4u
-             -   seq: 2
-                 name: ansible-playbook
-                 parameter:
-                 -   name: filename
-                     value: '/home/ubuntu/first-touch'
-             config-primitive:
-             -   name: ansible-playbook
-                 parameter:
-                 -   name: filename
-                     data-type: STRING
-                     value: '/home/ubuntu/first-touch'
diff --git a/descriptor-packages/vnfd/hackfest_ansible_vnf/src/cloud_init/cloud-config.txt b/descriptor-packages/vnfd/hackfest_ansible_vnf/src/cloud_init/cloud-config.txt
deleted file mode 100644 (file)
index 36c8d1b..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#cloud-config\r
-password: osm4u\r
-chpasswd: { expire: False }\r
-ssh_pwauth: True\r
-\r
-write_files:\r
--   content: |\r
-        # My new helloworld file\r
-\r
-    owner: root:root\r
-    permissions: '0644'\r
-    path: /root/helloworld.txt\r
diff --git a/descriptor-packages/vnfd/hackfest_ansible_vnf/src/icons/osm.png b/descriptor-packages/vnfd/hackfest_ansible_vnf/src/icons/osm.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/vnfd/hackfest_ansible_vnf/src/icons/osm.png and /dev/null differ
diff --git a/descriptor-packages/vnfd/hackfest_basic_vnf/Makefile b/descriptor-packages/vnfd/hackfest_basic_vnf/Makefile
deleted file mode 100644 (file)
index fadd46b..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   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.
-#
-DESCRIPTORS_TOPDIR ?= ../..
-
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
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
deleted file mode 100644 (file)
index 998c2d8..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-vnfd:vnfd-catalog:
-    vnfd:
-    -   id: hackfest_basic-vnf
-        name: hackfest_basic-vnf
-        short-name: hackfest_basic-vnf
-        version: '1.0'
-        description: A basic VNF descriptor w/ one VDU
-        logo: osm.png
-        connection-point:
-        -   name: vnf-cp0
-
-        vdu:
-        -   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'
-                memory-mb: '1024'
-                storage-gb: '10'
-            interface:
-            -   name: vdu-eth0
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: vnf-cp0
-        mgmt-interface:
-            cp: vnf-cp0
-
diff --git a/descriptor-packages/vnfd/hackfest_basic_vnf/src/icons/osm.png b/descriptor-packages/vnfd/hackfest_basic_vnf/src/icons/osm.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/vnfd/hackfest_basic_vnf/src/icons/osm.png and /dev/null differ
diff --git a/descriptor-packages/vnfd/hackfest_cloudinit_vnf/Makefile b/descriptor-packages/vnfd/hackfest_cloudinit_vnf/Makefile
deleted file mode 100644 (file)
index fadd46b..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   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.
-#
-DESCRIPTORS_TOPDIR ?= ../..
-
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/hackfest_cloudinit_vnf/src/cloud_init/cloud-config.txt b/descriptor-packages/vnfd/hackfest_cloudinit_vnf/src/cloud_init/cloud-config.txt
deleted file mode 100755 (executable)
index 36c8d1b..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#cloud-config\r
-password: osm4u\r
-chpasswd: { expire: False }\r
-ssh_pwauth: True\r
-\r
-write_files:\r
--   content: |\r
-        # My new helloworld file\r
-\r
-    owner: root:root\r
-    permissions: '0644'\r
-    path: /root/helloworld.txt\r
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
deleted file mode 100644 (file)
index 24a6548..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-# -*- coding: utf-8 -*-
-
-##
-# Copyright 2019 ETSI
-#
-# All Rights Reserved.
-#
-# 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.
-##
-
-## Change log:
-# 1. Feature 7829: Mrityunjay Yadav, Jayant Madavi : MY00514913@techmahindra.com
-# 19-aug-2019 : changed vdu image from hackfest3-mgmt to ubuntu1604
-##
-
-vnfd:vnfd-catalog:
-    vnfd:
-    -   id: hackfest_cloudinit-vnf
-        name: hackfest_cloudinit-vnf
-        short-name: hackfest_cloudinit-vnf
-        version: '1.0'
-        description: A VNF consisting of 2 VDUs connected to an internal VL, and one VDU with cloud-init
-        logo: osm.png
-        connection-point:
-        -   id: vnf-mgmt
-            name: vnf-mgmt
-            short-name: vnf-mgmt
-
-        -   id: vnf-data
-            name: vnf-data
-            short-name: vnf-data
-
-        mgmt-interface:
-            cp: vnf-mgmt
-        internal-vld:
-        -   id: internal
-            name: internal
-            short-name: internal
-            type: ELAN
-            internal-connection-point:
-            -   id-ref: mgmtVM-internal
-            -   id-ref: dataVM-internal
-        vdu:
-        -   id: mgmtVM
-            name: mgmtVM
-            image: ubuntu1604
-            count: '1'
-            vm-flavor:
-                vcpu-count: '1'
-                memory-mb: '1024'
-                storage-gb: '10'
-            interface:
-            -   name: mgmtVM-eth0
-                position: '1'
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: vnf-mgmt
-            -   name: mgmtVM-eth1
-                position: '2'
-                type: INTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                internal-connection-point-ref: mgmtVM-internal
-            internal-connection-point:
-            -   id: mgmtVM-internal
-                name: mgmtVM-internal
-                short-name: mgmtVM-internal
-
-            cloud-init-file: cloud-config.txt
-        -   id: dataVM
-            name: dataVM
-            image: ubuntu1604
-            count: '1'
-            vm-flavor:
-                vcpu-count: '1'
-                memory-mb: '1024'
-                storage-gb: '10'
-            interface:
-            -   name: dataVM-eth0
-                position: '1'
-                type: INTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                internal-connection-point-ref: dataVM-internal
-            -   name: dataVM-xe0
-                position: '2'
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: vnf-data
-            internal-connection-point:
-            -   id: dataVM-internal
-                name: dataVM-internal
-                short-name: dataVM-internal
-
-
diff --git a/descriptor-packages/vnfd/hackfest_cloudinit_vnf/src/icons/osm.png b/descriptor-packages/vnfd/hackfest_cloudinit_vnf/src/icons/osm.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/vnfd/hackfest_cloudinit_vnf/src/icons/osm.png and /dev/null differ
diff --git a/descriptor-packages/vnfd/hackfest_epasriov_vnf/Makefile b/descriptor-packages/vnfd/hackfest_epasriov_vnf/Makefile
deleted file mode 100644 (file)
index fadd46b..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   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.
-#
-DESCRIPTORS_TOPDIR ?= ../..
-
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/hackfest_epasriov_vnf/src/cloud_init/cloud-config.txt b/descriptor-packages/vnfd/hackfest_epasriov_vnf/src/cloud_init/cloud-config.txt
deleted file mode 100755 (executable)
index 36c8d1b..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#cloud-config\r
-password: osm4u\r
-chpasswd: { expire: False }\r
-ssh_pwauth: True\r
-\r
-write_files:\r
--   content: |\r
-        # My new helloworld file\r
-\r
-    owner: root:root\r
-    permissions: '0644'\r
-    path: /root/helloworld.txt\r
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
deleted file mode 100644 (file)
index 476f126..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-# -*- coding: utf-8 -*-
-
-##
-# Copyright 2019 ETSI
-#
-# All Rights Reserved.
-#
-# 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.
-##
-
-## Change log:
-# 1. Feature 7829: Mrityunjay Yadav, Jayant Madavi : MY00514913@techmahindra.com
-# 19-aug-2019 : changed vdu image from hackfest3-mgmt & hackfest-pktgen to ubuntu1604
-##
-
-vnfd:vnfd-catalog:
-    vnfd:
-    -   id: hackfest_epasriov-vnf
-        name: hackfest_epasriov-vnf
-        short-name: hackfest_epasriov-vnf
-        version: '1.0'
-        description: A VNF consisting of 2 VDUs with EPA capabilities connected to an internal VL, mgmtVM VDU with cloud-init
-        logo: osm.png
-        connection-point:
-        -   id: vnf-mgmt
-            name: vnf-mgmt
-            short-name: vnf-mgmt
-
-        -   id: vnf-data
-            name: vnf-data
-            short-name: vnf-data
-
-        mgmt-interface:
-            cp: vnf-mgmt
-        internal-vld:
-        -   id: internal
-            name: internal
-            short-name: internal
-            type: ELAN
-            internal-connection-point:
-            -   id-ref: mgmtVM-internal
-            -   id-ref: dataVM-internal
-        vdu:
-        -   id: mgmtVM
-            name: mgmtVM
-            image: ubuntu1604
-            count: '1'
-            vm-flavor:
-                vcpu-count: '1'
-                memory-mb: '1024'
-                storage-gb: '10'
-            guest-epa:
-                cpu-pinning-policy: DEDICATED
-                cpu-thread-pinning-policy: PREFER
-                mempage-size: LARGE
-                numa-node-policy:
-                    mem-policy: STRICT
-                    node-cnt: '1'
-                    node:
-                    -   id: '1'
-            interface:
-            -   name: mgmtVM-eth0
-                position: '1'
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: vnf-mgmt
-            -   name: mgmtVM-eth1
-                position: '2'
-                type: INTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                internal-connection-point-ref: mgmtVM-internal
-            internal-connection-point:
-            -   id: mgmtVM-internal
-                name: mgmtVM-internal
-                short-name: mgmtVM-internal
-
-            cloud-init-file: cloud-config.txt
-        -   id: dataVM
-            name: dataVM
-            image: ubuntu1604
-            count: '1'
-            vm-flavor:
-                vcpu-count: '8'
-                memory-mb: '4096'
-                storage-gb: '10'
-            guest-epa:
-                cpu-pinning-policy: DEDICATED
-                cpu-thread-pinning-policy: PREFER
-                mempage-size: LARGE
-                numa-node-policy:
-                    mem-policy: STRICT
-                    node-cnt: '1'
-                    node:
-                    -   id: '1'
-            interface:
-            -   name: eth0
-                position: '1'
-                type: INTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                internal-connection-point-ref: dataVM-internal
-            -   name: xe0
-                position: '2'
-                type: EXTERNAL
-                virtual-interface:
-                    type: SR-IOV
-                external-connection-point-ref: vnf-data
-            internal-connection-point:
-            -   id: dataVM-internal
-                name: dataVM-internal
-                short-name: dataVM-internal
-
-
diff --git a/descriptor-packages/vnfd/hackfest_epasriov_vnf/src/icons/osm.png b/descriptor-packages/vnfd/hackfest_epasriov_vnf/src/icons/osm.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/vnfd/hackfest_epasriov_vnf/src/icons/osm.png and /dev/null differ
diff --git a/descriptor-packages/vnfd/hackfest_multivdu_vnf/Makefile b/descriptor-packages/vnfd/hackfest_multivdu_vnf/Makefile
deleted file mode 100644 (file)
index fadd46b..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   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.
-#
-DESCRIPTORS_TOPDIR ?= ../..
-
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
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
deleted file mode 100644 (file)
index ff411e0..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-# -*- coding: utf-8 -*-
-
-##
-# Copyright 2019 ETSI
-#
-# All Rights Reserved.
-#
-# 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.
-##
-
-## Change log:
-# 1. Feature 7829: Mrityunjay Yadav, Jayant Madavi : MY00514913@techmahindra.com
-# 19-aug-2019 : changed vdu image from US1604 to ubuntu1604
-##
-
-vnfd:vnfd-catalog:
-    vnfd:
-    -   id: hackfest_multivdu-vnf
-        name: hackfest_multivdu-vnf
-        short-name: hackfest_multivdu-vnf
-        version: '1.0'
-        description: A VNF consisting of 2 VDUs connected to an internal VL
-        logo: osm.png
-        connection-point:
-        -   id: vnf-mgmt
-            name: vnf-mgmt
-            short-name: vnf-mgmt
-
-        -   id: vnf-data
-            name: vnf-data
-            short-name: vnf-data
-
-        mgmt-interface:
-            cp: vnf-mgmt
-        internal-vld:
-        -   id: internal
-            name: internal
-            short-name: internal
-            type: ELAN
-            internal-connection-point:
-            -   id-ref: mgmtVM-internal
-            -   id-ref: dataVM-internal
-        vdu:
-        -   id: mgmtVM
-            name: mgmtVM
-            image: ubuntu1604
-            count: '1'
-            vm-flavor:
-                vcpu-count: '1'
-                memory-mb: '1024'
-                storage-gb: '10'
-            interface:
-            -   name: mgmtVM-eth0
-                position: '1'
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: vnf-mgmt
-            -   name: mgmtVM-eth1
-                position: '2'
-                type: INTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                internal-connection-point-ref: mgmtVM-internal
-            internal-connection-point:
-            -   id: mgmtVM-internal
-                name: mgmtVM-internal
-                short-name: mgmtVM-internal
-
-        -   id: dataVM
-            name: dataVM
-            image: ubuntu1604
-            count: '1'
-            vm-flavor:
-                vcpu-count: '1'
-                memory-mb: '1024'
-                storage-gb: '10'
-            interface:
-            -   name: dataVM-eth0
-                position: '1'
-                type: INTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                internal-connection-point-ref: dataVM-internal
-            -   name: dataVM-xe0
-                position: '2'
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: vnf-data
-            internal-connection-point:
-            -   id: dataVM-internal
-                name: dataVM-internal
-                short-name: dataVM-internal
-
-
diff --git a/descriptor-packages/vnfd/hackfest_multivdu_vnf/src/icons/osm.png b/descriptor-packages/vnfd/hackfest_multivdu_vnf/src/icons/osm.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/vnfd/hackfest_multivdu_vnf/src/icons/osm.png and /dev/null differ
diff --git a/descriptor-packages/vnfd/hackfest_simplecharm_vnf/Makefile b/descriptor-packages/vnfd/hackfest_simplecharm_vnf/Makefile
deleted file mode 100644 (file)
index 3e88db7..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-#   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.
-#
-DESCRIPTORS_TOPDIR ?= ../..
-
-VNFD_CHARM = simple
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/hackfest_simplecharm_vnf/src/cloud_init/cloud-config.txt b/descriptor-packages/vnfd/hackfest_simplecharm_vnf/src/cloud_init/cloud-config.txt
deleted file mode 100755 (executable)
index f6c1b9d..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-#cloud-config
-password: osm4u
-chpasswd: { expire: False }
-ssh_pwauth: True
-
-write_files:
--   content: |
-        # My new helloworld file
-
-    owner: root:root
-    permissions: '0644'
-    path: /root/helloworld.txt
-
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
deleted file mode 100644 (file)
index 7295c54..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-# -*- coding: utf-8 -*-
-
-##
-# Copyright 2019 ETSI
-#
-# All Rights Reserved.
-#
-# 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.
-##
-
-## Change log:
-# 1. Feature 7829: Mrityunjay Yadav, Jayant Madavi : MY00514913@techmahindra.com
-# 19-aug-2019 : changed vdu image from hackfest3-mgmt to ubuntu1604
-##
-
-vnfd:vnfd-catalog:
-    vnfd:
-    -   id: hackfest-simplecharm-vnf
-        name: hackfest-simplecharm-vnf
-        short-name: hackfest-simplecharm-vnf
-        version: '1.0'
-        description: A VNF consisting of 2 VDUs connected to an internal VL, and one VDU with cloud-init
-        logo: osm.png
-        connection-point:
-        -   id: vnf-mgmt
-            name: vnf-mgmt
-            short-name: vnf-mgmt
-
-        -   id: vnf-data
-            name: vnf-data
-            short-name: vnf-data
-
-        mgmt-interface:
-            cp: vnf-mgmt
-        internal-vld:
-        -   id: internal
-            name: internal
-            short-name: internal
-            type: ELAN
-            internal-connection-point:
-            -   id-ref: mgmtVM-internal
-            -   id-ref: dataVM-internal
-        vdu:
-        -   id: mgmtVM
-            name: mgmtVM
-            image: ubuntu1604
-            count: '1'
-            vm-flavor:
-                vcpu-count: '1'
-                memory-mb: '1024'
-                storage-gb: '10'
-            interface:
-            -   name: mgmtVM-eth0
-                position: '1'
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: vnf-mgmt
-            -   name: mgmtVM-eth1
-                position: '2'
-                type: INTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                internal-connection-point-ref: mgmtVM-internal
-            internal-connection-point:
-            -   id: mgmtVM-internal
-                name: mgmtVM-internal
-                short-name: mgmtVM-internal
-
-            cloud-init-file: cloud-config.txt
-        -   id: dataVM
-            name: dataVM
-            image: ubuntu1604
-            count: '1'
-            vm-flavor:
-                vcpu-count: '1'
-                memory-mb: '1024'
-                storage-gb: '10'
-            interface:
-            -   name: dataVM-eth0
-                position: '1'
-                type: INTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                internal-connection-point-ref: dataVM-internal
-            -   name: dataVM-xe0
-                position: '2'
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: vnf-data
-            internal-connection-point:
-            -   id: dataVM-internal
-                name: dataVM-internal
-                short-name: dataVM-internal
-
-        vnf-configuration:
-            juju:
-                charm: simple
-            initial-config-primitive:
-            -   seq: '1'
-                name: config
-                parameter:
-                -   name: ssh-hostname
-                    value: <rw_mgmt_ip>
-                -   name: ssh-username
-                    value: ubuntu
-                -   name: ssh-password
-                    value: osm4u
-            -   seq: '2'
-                name: touch
-                parameter:
-                -   name: filename
-                    value: '/home/ubuntu/first-touch'
-            config-primitive:
-            -   name: touch
-                parameter:
-                -   name: filename
-                    data-type: STRING
-                    default-value: '/home/ubuntu/touched'
-
diff --git a/descriptor-packages/vnfd/hackfest_simplecharm_vnf/src/icons/osm.png b/descriptor-packages/vnfd/hackfest_simplecharm_vnf/src/icons/osm.png
deleted file mode 100644 (file)
index 62012d2..0000000
Binary files a/descriptor-packages/vnfd/hackfest_simplecharm_vnf/src/icons/osm.png and /dev/null differ
diff --git a/descriptor-packages/vnfd/ims_allin1_2p_vnf/Makefile b/descriptor-packages/vnfd/ims_allin1_2p_vnf/Makefile
deleted file mode 100644 (file)
index 52d95b5..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-DESCRIPTORS_TOPDIR ?= ../..
-
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
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
deleted file mode 100644 (file)
index 27b2247..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-vnfd-catalog:
-    vnfd:
-    -   id: IMS-ALLIN1_2p
-        name: IMS-ALLIN1_2p
-        short-name: IMS-ALLIN1_2p
-        description: IMS-ALLIN1_2p
-        logo: metaswitch_2x.png
-        mgmt-interface:
-            cp: eth1
-        vnf-configuration:
-            config-primitive:
-            -   name: config
-                parameter:
-                -   name: home_domain
-                    data-type: STRING
-                    mandatory: 'true'
-                    default-value: ims.com
-                -   name: password
-                    data-type: STRING
-                    mandatory: 'true'
-                    default-value: cw-aio
-            -   name: create-update-user
-                parameter:
-                -   name: number
-                    data-type: STRING
-                    mandatory: 'true'
-                -   name: password
-                    data-type: STRING
-                    mandatory: 'true'
-            -   name: delete-user
-                parameter:
-                -   name: number
-                    data-type: STRING
-                    mandatory: 'true'
-            initial-config-primitive:
-            -   name: config
-                parameter:
-                -   name: proxied_ip
-                    value: <rw_mgmt_ip>
-                seq: '1'
-            juju:
-                charm: clearwater-aio-proxy
-        connection-point:
-        -   name: eth0
-
-        -   name: eth1
-
-        vdu:
-        -   id: IMS-ALLIN1_2p-VM
-            name: IMS-ALLIN1_2p-VM
-            description: IMS-ALLIN1_2p-VM
-            image: /mnt/powervault/virtualization/vnfs/demos/mwc2016/allin1.qcow2
-            vm-flavor:
-                memory-mb: '4096'
-                storage-gb: '10'
-                vcpu-count: '2'
-            mgmt-vpci: 0000:00:0a.0
-            interface:
-            -   name: eth0
-                type: EXTERNAL
-                virtual-interface:
-                    bandwidth: '0'
-                    type: PARAVIRT
-                    vpci: 0000:00:0a.0
-                external-connection-point-ref: eth0
-            -   name: eth1
-                type: EXTERNAL
-                virtual-interface:
-                    bandwidth: '0'
-                    type: PARAVIRT
-                    vpci: 0000:00:0b.0
-                external-connection-point-ref: eth1
-            guest-epa:
-                cpu-pinning-policy: DEDICATED
-                cpu-thread-pinning-policy: PREFER
-                mempage-size: LARGE
-                numa-node-policy:
-                    mem-policy: STRICT
-                    node:
-                    -   id: '0'
-                        paired-threads:
-                            num-paired-threads: '1'
-                    node-cnt: '1'
diff --git a/descriptor-packages/vnfd/ims_allin1_2p_vnf/src/icons/metaswitch_2x.png b/descriptor-packages/vnfd/ims_allin1_2p_vnf/src/icons/metaswitch_2x.png
deleted file mode 100644 (file)
index a899bc8..0000000
Binary files a/descriptor-packages/vnfd/ims_allin1_2p_vnf/src/icons/metaswitch_2x.png and /dev/null differ
diff --git a/descriptor-packages/vnfd/ping_vnf/Makefile b/descriptor-packages/vnfd/ping_vnf/Makefile
deleted file mode 100644 (file)
index 8c50a0a..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-DESCRIPTORS_TOPDIR ?= ../..
-
-VNFD_CHARM = pingpong
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/ping_vnf/src/cloud_init/ping_cloud_init.cfg b/descriptor-packages/vnfd/ping_vnf/src/cloud_init/ping_cloud_init.cfg
deleted file mode 100644 (file)
index 81a13ed..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#cloud-config
-password: fedora
-chpasswd: { expire: False }
-ssh_pwauth: True
diff --git a/descriptor-packages/vnfd/ping_vnf/src/icons/rift_logo.png b/descriptor-packages/vnfd/ping_vnf/src/icons/rift_logo.png
deleted file mode 100644 (file)
index 09b47c7..0000000
Binary files a/descriptor-packages/vnfd/ping_vnf/src/icons/rift_logo.png and /dev/null differ
diff --git a/descriptor-packages/vnfd/ping_vnf/src/ping_vnfd.yaml b/descriptor-packages/vnfd/ping_vnf/src/ping_vnfd.yaml
deleted file mode 100644 (file)
index d73baf6..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-#
-#   Copyright 2016 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.
-#
-#
-
-vnfd-catalog:
-    vnfd:
-     -  id: rift_ping_vnf
-        name: ping_vnf
-        short-name: ping_vnf
-        logo: rift_logo.png
-        vendor: RIFT.io
-        version: '1.1'
-        description: This is an example RIFT.ware VNF
-        connection-point:
-        -   name: ping_vnfd/cp0
-
-        -   name: ping_vnfd/cp1
-
-        http-endpoint:
-        -   path: api/v1/ping/stats
-            port: '18888'
-        mgmt-interface:
-            dashboard-params:
-                path: api/v1/ping/stats
-                port: '18888'
-            port: '18888'
-            cp: ping_vnfd/cp0
-        placement-groups:
-        -   member-vdus:
-            -   member-vdu-ref: iovdu_0
-            name: Eris
-            requirement: Place this VM on the Kuiper belt object Eris
-            strategy: COLOCATION
-        vdu:
-        -   cloud-init-file: ping_cloud_init.cfg
-            count: '1'
-            interface:
-            -   name: eth0
-                position: 0
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: ping_vnfd/cp0
-            -   name: eth1
-                position: 1
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: ping_vnfd/cp1
-            id: iovdu_0
-            image: Fedora-x86_64-20-20131211.1-sda-ping.qcow2
-            name: iovdu_0
-            vm-flavor:
-                memory-mb: '512'
-                storage-gb: '4'
-                vcpu-count: '1'
-        vnf-configuration:
-            config-primitive:
-            -   name: start
-            -   name: stop
-            -   name: restart
-            -   name: config
-                parameter:
-                -   data-type: STRING
-                    default-value: <rw_mgmt_ip>
-                    name: ssh-hostname
-                -   data-type: STRING
-                    default-value: fedora
-                    name: ssh-username
-                -   data-type: STRING
-                    default-value: fedora
-                    name: ssh-password
-                -   data-type: STRING
-                    name: ssh-private-key
-                -   data-type: STRING
-                    default-value: ping
-                    name: mode
-                    read-only: 'true'
-            -   name: set-server
-                parameter:
-                -   data-type: STRING
-                    name: server-ip
-                -   data-type: INTEGER
-                    name: server-port
-            -   name: set-rate
-                parameter:
-                -   data-type: INTEGER
-                    default-value: '5'
-                    name: rate
-            -   name: start-traffic
-            -   name: stop-traffic
-            initial-config-primitive:
-            -   name: config
-                parameter:
-                -   name: ssh-hostname
-                    value: <rw_mgmt_ip>
-                -   name: ssh-username
-                    value: fedora
-                -   name: ssh-password
-                    value: fedora
-                -   name: mode
-                    value: ping
-                seq: '1'
-            -   name: start
-                seq: '2'
-            juju:
-                charm: pingpong
diff --git a/descriptor-packages/vnfd/pong_vnf/Makefile b/descriptor-packages/vnfd/pong_vnf/Makefile
deleted file mode 100644 (file)
index 8c50a0a..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-DESCRIPTORS_TOPDIR ?= ../..
-
-VNFD_CHARM = pingpong
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/pong_vnf/src/cloud_init/pong_cloud_init.cfg b/descriptor-packages/vnfd/pong_vnf/src/cloud_init/pong_cloud_init.cfg
deleted file mode 100644 (file)
index 81a13ed..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#cloud-config
-password: fedora
-chpasswd: { expire: False }
-ssh_pwauth: True
diff --git a/descriptor-packages/vnfd/pong_vnf/src/icons/rift_logo.png b/descriptor-packages/vnfd/pong_vnf/src/icons/rift_logo.png
deleted file mode 100644 (file)
index 09b47c7..0000000
Binary files a/descriptor-packages/vnfd/pong_vnf/src/icons/rift_logo.png and /dev/null differ
diff --git a/descriptor-packages/vnfd/pong_vnf/src/pong_vnfd.yaml b/descriptor-packages/vnfd/pong_vnf/src/pong_vnfd.yaml
deleted file mode 100644 (file)
index f824f20..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-#
-#   Copyright 2016 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.
-#
-#
-
-vnfd-catalog:
-    vnfd:
-     -  id: rift_pong_vnf
-        name: pong_vnf
-        short-name: pong_vnf
-        logo: rift_logo.png
-        vendor: RIFT.io
-        version: '1.1'
-        description: This is an example RIFT.ware VNF
-        connection-point:
-        -   name: pong_vnfd/cp0
-
-        -   name: pong_vnfd/cp1
-
-        http-endpoint:
-        -   path: api/v1/pong/stats
-            port: '18889'
-        mgmt-interface:
-            dashboard-params:
-                path: api/v1/pong/stats
-                port: '18889'
-            port: '18889'
-            cp: pong_vnfd/cp0
-        placement-groups:
-        -   member-vdus:
-            -   member-vdu-ref: iovdu_0
-            name: Weywot
-            requirement: Place this VM on the Kuiper belt object Weywot
-            strategy: COLOCATION
-        vdu:
-        -   cloud-init-file: pong_cloud_init.cfg
-            count: '1'
-            interface:
-            -   name: eth0
-                position: 0
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: pong_vnfd/cp0
-            -   name: eth1
-                position: 1
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: pong_vnfd/cp1
-            id: iovdu_0
-            image: Fedora-x86_64-20-20131211.1-sda-pong.qcow2
-            name: iovdu_0
-            vm-flavor:
-                memory-mb: '512'
-                storage-gb: '4'
-                vcpu-count: '1'
-        vnf-configuration:
-            config-primitive:
-            -   name: start
-            -   name: stop
-            -   name: restart
-            -   name: config
-                parameter:
-                -   data-type: STRING
-                    default-value: <rw_mgmt_ip>
-                    name: ssh-hostname
-                -   data-type: STRING
-                    default-value: fedora
-                    name: ssh-username
-                -   data-type: STRING
-                    default-value: fedora
-                    name: ssh-password
-                -   data-type: STRING
-                    name: ssh-private-key
-                -   data-type: STRING
-                    default-value: pong
-                    name: mode
-                    read-only: 'true'
-            -   name: set-server
-                parameter:
-                -   data-type: STRING
-                    name: server-ip
-                -   data-type: INTEGER
-                    name: server-port
-            -   name: start-traffic
-            -   name: stop-traffic
-            initial-config-primitive:
-            -   name: config
-                parameter:
-                -   name: ssh-hostname
-                    value: <rw_mgmt_ip>
-                -   name: ssh-username
-                    value: fedora
-                -   name: ssh-password
-                    value: fedora
-                -   name: mode
-                    value: pong
-                seq: '1'
-            -   name: start
-                seq: '2'
-            juju:
-                charm: pingpong
diff --git a/descriptor-packages/vnfd/ref11_vnf/Makefile b/descriptor-packages/vnfd/ref11_vnf/Makefile
deleted file mode 100644 (file)
index 52d95b5..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-DESCRIPTORS_TOPDIR ?= ../..
-
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/ref11_vnf/src/ref11_vnfd.yaml b/descriptor-packages/vnfd/ref11_vnf/src/ref11_vnfd.yaml
deleted file mode 100644 (file)
index cd11155..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-vnfd-catalog:
-    vnfd:
-    -   connection-point:
-        -   name: mgmt0
-
-        -   name: west
-
-        description: A simple VNF descriptor w/ VM1 and VM2
-        id: Ref_Vnf_11
-        name: Ref_VNF_11
-        short-name: Ref_VNF_11
-        mgmt-interface:
-            cp: mgmt0
-        internal-vld:
-        -   description: Internal VL
-            id: VL12
-            name: VL12
-            short-name: VL12
-            type: ELAN
-            internal-connection-point:
-            -   id-ref: 'iface11'
-            -   id-ref: 'iface21'
-        vdu:
-        -   interface:
-            -   name: iface10
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: mgmt0
-            -   name: iface11
-                type: INTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                internal-connection-point-ref: iface11
-            internal-connection-point:
-            -   name: iface11
-                id: iface11
-
-            id: Ref_VM1
-            image: ref_vm1.qcow2
-            name: Ref_VM1
-            vm-flavor:
-                memory-mb: '2048'
-                storage-gb: '8'
-                vcpu-count: '2'
-        -   interface:
-            -   name: iface22
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: west
-            -   name: iface21
-                type: INTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                internal-connection-point-ref: iface21
-            internal-connection-point:
-            -   name: iface21
-                id: iface21
-
-            id: Ref_VM2
-            image: ref_vm2.qcow2
-            name: Ref_VM2
-            vm-flavor:
-                memory-mb: '4096'
-                storage-gb: '16'
-                vcpu-count: '2'
-        vendor: ETSI
-        version: '1.0'
diff --git a/descriptor-packages/vnfd/ref12_vnf/Makefile b/descriptor-packages/vnfd/ref12_vnf/Makefile
deleted file mode 100644 (file)
index 52d95b5..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-DESCRIPTORS_TOPDIR ?= ../..
-
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/ref12_vnf/src/ref12_vnfd.yaml b/descriptor-packages/vnfd/ref12_vnf/src/ref12_vnfd.yaml
deleted file mode 100644 (file)
index 2374281..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-vnfd-catalog:
-    vnfd:
-    -   connection-point:
-        -   name: mgmt0
-
-        -   name: west
-
-        -   name: east
-
-        description: A simple VNF descriptor w/ two VDU
-        id: Ref_Vnf_12
-        name: Ref_Vnf_12
-        short-name: Ref_Vnf_12
-        mgmt-interface:
-            cp: mgmt0
-        internal-vld:
-        -   description: Internal VL
-            id: VL34
-            name: VL34
-            short-name: VL34
-            type: ELAN
-            internal-connection-point:
-            -   id-ref: 'iface31'
-            -   id-ref: 'iface41'
-        vdu:
-        -   description: Middlepoint
-            interface:
-            -   name: iface30
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: mgmt0
-            -   name: iface31
-                type: INTERNAL
-                internal-connection-point-ref: iface31
-                virtual-interface:
-                    type: PARAVIRT
-            guest-epa:
-                cpu-pinning-policy: DEDICATED
-                mempage-size: "LARGE"
-            id: a3a2f
-            image: ref_vm3.qcow2
-            internal-connection-point:
-            -   id: iface31
-                name: iface31
-
-            name: Ref_VM3
-            vm-flavor:
-                memory-mb: '2048'
-                storage-gb: '8'
-                vcpu-count: '2'
-        -   interface:
-            -   name: iface42
-                type: EXTERNAL
-                virtual-interface:
-                    type: PCI-PASSTHROUGH
-                external-connection-point-ref: west
-            -   name: iface43
-                type: EXTERNAL
-                virtual-interface:
-                    type: SR-IOV
-                external-connection-point-ref: east
-            -   name: iface41
-                type: INTERNAL
-                internal-connection-point-ref: iface41
-                virtual-interface:
-                    type: PARAVIRT
-            guest-epa:
-                cpu-pinning-policy: DEDICATED
-            id: e526e
-            internal-connection-point:
-            -   id: iface41
-                name: iface41
-
-            name: Ref_VM4
-        vendor: ETSI
-        version: '1.0'
diff --git a/descriptor-packages/vnfd/ref21_vnf/Makefile b/descriptor-packages/vnfd/ref21_vnf/Makefile
deleted file mode 100644 (file)
index a08d588..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/ref21_vnf/src/ref21_vnfd.yaml b/descriptor-packages/vnfd/ref21_vnf/src/ref21_vnfd.yaml
deleted file mode 100644 (file)
index a36904e..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-vnfd-catalog:
-    vnfd:
-    -   connection-point:
-        -   name: mgmt
-
-        -   name: data
-
-        description: A simple VNF descriptor w/ one VDU
-        id: Ref_Vnf_21
-        name: Ref_Vnf_21
-        short-name: Ref_Vnf_21
-        mgmt-interface:
-            cp: mgmt
-        vdu:
-        -   interface:
-            -   name: iface50
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: mgmt
-            -   name: iface51
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: data
-            id: ref_vm21
-            image: ref_vm21.qcow2
-            name: Ref_VM_5
-            vm-flavor:
-                memory-mb: '1024'
-                storage-gb: '16'
-                vcpu-count: '1'
-        vendor: ETSI
-        version: '1.0'
diff --git a/descriptor-packages/vnfd/ref22_vnf/Makefile b/descriptor-packages/vnfd/ref22_vnf/Makefile
deleted file mode 100644 (file)
index a08d588..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/ref22_vnf/src/ref22_vnfd.yaml b/descriptor-packages/vnfd/ref22_vnf/src/ref22_vnfd.yaml
deleted file mode 100644 (file)
index 43f3ac9..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-vnfd-catalog:
-    vnfd:
-    -   connection-point:
-        -   name: mgmt
-
-        -   name: west
-
-        -   name: east
-
-        description: A simple VNF descriptor w/ one VDU
-        id: Ref_Vnf_22
-        name: Ref_VNF_22
-        short-name: Ref_VNF_22
-        mgmt-interface:
-            cp: mgmt
-        vdu:
-        -   interface:
-            -   name: iface60
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: mgmt
-            -   name: iface61
-                type: EXTERNAL
-                virtual-interface:
-                    type: PCI-PASSTHROUGH
-                external-connection-point-ref: west
-            -   name: iface62
-                type: EXTERNAL
-                virtual-interface:
-                    type: SR-IOV
-                external-connection-point-ref: east
-            id: abd6831e-f811-4580-9aad-1de9c6424180
-            image: ref_vm22.qcow2
-            name: Ref_VM6
-            guest-epa:
-                cpu-pinning-policy: DEDICATED
-                mempage-size: "LARGE"
-            vm-flavor:
-                memory-mb: '1024'
-                storage-gb: '16'
-                vcpu-count: '1'
-        vendor: ETSI
-        version: '1.0'
diff --git a/descriptor-packages/vnfd/simple_multi-charm_multi-vdu_vnf/Makefile b/descriptor-packages/vnfd/simple_multi-charm_multi-vdu_vnf/Makefile
deleted file mode 100644 (file)
index 3e88db7..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-#   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.
-#
-DESCRIPTORS_TOPDIR ?= ../..
-
-VNFD_CHARM = simple
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/simple_multi-charm_multi-vdu_vnf/src/simple_multi-charm_multi-vdu_vnfd.yaml b/descriptor-packages/vnfd/simple_multi-charm_multi-vdu_vnf/src/simple_multi-charm_multi-vdu_vnfd.yaml
deleted file mode 100644 (file)
index c2f3561..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-vnfd:vnfd-catalog:
-    vnfd:
-    -   id: multicharmvdu-vnf
-        name: multicharmvdu-vnf
-        short-name: multicharmvdu-vnf
-        version: '1.0'
-        description: A VNF consisting of 2 VDUs w/charms connected to an internal VL, and one VDU with cloud-init
-        logo: osm.png
-        connection-point:
-        -   id: vnf-mgmt
-            name: vnf-mgmt
-            short-name: vnf-mgmt
-
-        -   id: vnf-data
-            name: vnf-data
-            short-name: vnf-data
-
-        mgmt-interface:
-            cp: vnf-mgmt
-        internal-vld:
-        -   id: internal
-            name: internal
-            short-name: internal
-            type: ELAN
-            internal-connection-point:
-            -   id-ref: mgmtVM-internal
-            -   id-ref: dataVM-internal
-        vdu:
-        -   id: mgmtVM
-            name: mgmtVM
-            image: xenial
-            count: '1'
-            vm-flavor:
-                vcpu-count: '1'
-                memory-mb: '1024'
-                storage-gb: '10'
-            interface:
-            -   name: mgmtVM-eth0
-                position: '1'
-                type: EXTERNAL
-                virtual-interface:
-                    type: VIRTIO
-                external-connection-point-ref: vnf-mgmt
-            -   name: mgmtVM-eth1
-                position: '2'
-                type: INTERNAL
-                virtual-interface:
-                    type: VIRTIO
-                internal-connection-point-ref: mgmtVM-internal
-            internal-connection-point:
-            -   id: mgmtVM-internal
-                name: mgmtVM-internal
-                short-name: mgmtVM-internal
-
-            cloud-init-file: cloud-config.txt
-            vdu-configuration:
-                juju:
-                    charm: simple
-                initial-config-primitive:
-                -   seq: '1'
-                    name: config
-                    parameter:
-                    -   name: ssh-hostname
-                        value: <rw_mgmt_ip>
-                    -   name: ssh-username
-                        value: ubuntu
-                    -   name: ssh-password
-                        value: osm4u
-                -   seq: '2'
-                    name: touch
-                    parameter:
-                    -   name: filename
-                        value: '/home/ubuntu/first-touch-mgmtVM'
-                config-primitive:
-                -   name: touch
-                    parameter:
-                    -   name: filename
-                        data-type: STRING
-                        default-value: '/home/ubuntu/touched'
-
-        -   id: dataVM
-            name: dataVM
-            image: xenial
-            count: '1'
-            vm-flavor:
-                vcpu-count: '1'
-                memory-mb: '1024'
-                storage-gb: '10'
-            interface:
-            -   name: dataVM-eth0
-                position: '1'
-                type: INTERNAL
-                virtual-interface:
-                    type: VIRTIO
-                internal-connection-point-ref: dataVM-internal
-            -   name: dataVM-xe0
-                position: '2'
-                type: EXTERNAL
-                virtual-interface:
-                    type: VIRTIO
-                external-connection-point-ref: vnf-data
-            internal-connection-point:
-            -   id: dataVM-internal
-                name: dataVM-internal
-                short-name: dataVM-internal
-
-            vdu-configuration:
-                juju:
-                    charm: simple
-                initial-config-primitive:
-                -   seq: '1'
-                    name: config
-                    parameter:
-                    -   name: ssh-hostname
-                        value: <rw_mgmt_ip>
-                    -   name: ssh-username
-                        value: ubuntu
-                    -   name: ssh-password
-                        value: osm4u
-                -   seq: '2'
-                    name: touch
-                    parameter:
-                    -   name: filename
-                        value: '/home/ubuntu/first-touch-dataVM'
-                config-primitive:
-                -   name: touch
-                    parameter:
-                    -   name: filename
-                        data-type: STRING
-                        default-value: '/home/ubuntu/touched'
diff --git a/descriptor-packages/vnfd/ubuntu-cloudinit_vnf/Makefile b/descriptor-packages/vnfd/ubuntu-cloudinit_vnf/Makefile
deleted file mode 100644 (file)
index a08d588..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/ubuntu-cloudinit_vnf/src/cloud_init/cloud-init.cfg b/descriptor-packages/vnfd/ubuntu-cloudinit_vnf/src/cloud_init/cloud-init.cfg
deleted file mode 100644 (file)
index b7fa010..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#Copyright 2019 ETSI
-#
-#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.
-
-#cloud-config
-password: {{ password }}
-chpasswd: { expire: False }
-ssh_pwauth: True
-
diff --git a/descriptor-packages/vnfd/ubuntu-cloudinit_vnf/src/ubuntu-cloudinit_vnfd.yaml b/descriptor-packages/vnfd/ubuntu-cloudinit_vnf/src/ubuntu-cloudinit_vnfd.yaml
deleted file mode 100644 (file)
index b4e9236..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 2019 ETSI
-#
-# 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:vnfd-catalog:
-    vnfd:
-    -   id: ubuntu-cloudinit_vnfd
-        name: ubuntu-cloudinit_vnfd
-        short-name: ubuntu-cloudinit_vnfd
-        description: Generated by OSM package generator
-        vendor: OSM
-        version: '1.0'
-
-        # Management interface
-        mgmt-interface:
-            cp: vnf-cp0
-
-        vdu:
-        -   id: ubuntu-cloudinit_vnfd-VM
-            name: ubuntu-cloudinit_vnfd-VM
-            description: ubuntu-cloudinit_vnfd-VM
-            count: 1
-            cloud-init-file: cloud-init.cfg
-
-            vm-flavor:
-                vcpu-count: 2
-                memory-mb: 2048
-                storage-gb: 10
-
-            # Image including the full path
-            image: 'ubuntu1604'
-
-            interface:
-            -   name: eth0
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: vnf-cp0
-
-        connection-point:
-        -   name: vnf-cp0
-
diff --git a/descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/Makefile b/descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/Makefile
deleted file mode 100644 (file)
index ad4b68c..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/src/cloud_init/cloud_init.cfg b/descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/src/cloud_init/cloud_init.cfg
deleted file mode 100644 (file)
index ddc6f93..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#cloud-config
-
-# Add public key to the default user's authorized_keys file
-ssh_authorized_keys:
--   ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXYVPzII6lwC/hb1PHsgJcf11mYKI1pEeHzcjQ8X8P7YwOj2ihikhy6IRtm38HzP7udMWjQolPUbIzNBmldt8fy6EFkZEpf7R3QziDbqw3FH6wIbQnLpCZWa9OCGRyPyPdBY//K0Ya5b/IBfG4t+KoIVwkJuSG+oYRGhCYhnAwRZ/IUwxhtbNVsS26wN+jGsaUKIWCEBbS5ccFeb9k3eovIFkELNDJVWVJsh2tyGrUd+HQ1+xQGtBUcnipJV75lwL2Z2rprnMIIuVc+A1tTNWArHccLSyfxf2kANy5jGCkwNAH1ETp3r8A5BgoFYd7NSLxK3ob3XycXvYvt/XMrUDP test4
-
-write_files:
--   content: |
-        # My new helloworld file
-
-    owner: root:root
-    permissions: '0644'
-    path: /root/helloworld.txt
-
diff --git a/descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/src/icons/ubuntu-logo14.png b/descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/src/icons/ubuntu-logo14.png
deleted file mode 100644 (file)
index e966783..0000000
Binary files a/descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/src/icons/ubuntu-logo14.png and /dev/null differ
diff --git a/descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/src/keys/test4.pem b/descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/src/keys/test4.pem
deleted file mode 100644 (file)
index e31971f..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEA12FT8yCOpcAv4W9Tx7ICXH9dZmCiNaRHh83I0PF/D+2MDo9o
-oYpIcuiEbZt/B8z+7nTFo0KJT1GyMzQZpXbfH8uhBZGRKX+0d0M4g26sNxR+sCG0
-Jy6QmVmvTghkcj8j3QWP/ytGGuW/yAXxuLfiqCFcJCbkhvqGERoQmIZwMEWfyFMM
-YbWzVbEtusDfoxrGlCiFghAW0uXHBXm/ZN3qLyBZBCzQyVVlSbIdrchq1Hfh0Nfs
-UBrQVHJ4qSVe+ZcC9mdq6a5zCCLlXPgNbUzVgKx3HC0sn8X9pADcuYxgpMDQB9RE
-6d6/AOQYKBWHezUi8St6G918nF72L7f1zK1AzwIDAQABAoIBAG7mNYS9odWk1MKe
-QSRU+zRHfH8niL5YHWDGy/0SLBu2c+RXYUe0XUOViAKsC0en/SgpRk6fBvapmTkW
-PZJeV9sWTY4Bex5EHFdAbIv4Y4Jk8iqc4BdAucHMVSC334iYDE5U++Umkg1teUd0
-EBfNz05FBx2yTP9XZcrOgfcXWhLwBNmd99+gV6cQB6NF0ZFVm6TLuA7gH3joyipi
-Kfhod7uonFRVXSg6vipXs3+oH6BkpgYxQ5EC9U21q7YS4/H5nyBJDQymf88Lvm0l
-IkZasKC8RKkHJupROyUUrORW0n6ZV5P3jPCtsav/n6QIQStqCniR1SluONHlI/Sm
-qy71VpECgYEA7APuEsSSR/AQtxMp057+jqx6VE+UjIyrtkLBFzHl6GxU4SRz9fIS
-LxvI8fTv3AMpJTIQcf78l8CNBs0lpxOxOhuoFQcwqZsMb/Hg5wdS6r0t6ggKMMhO
-ig0xITzGEW5cVMQ2t3mE1sHP92NT8BTx0eD8nG9b4hxDFujrNOoTMicCgYEA6Z4X
-sIm5LcFRPe/mNhasLxYuh+d5sat20Om2YtNXDA349qQ9e4mC33mKLR1/EVA5dDud
-yvjwOvwvefLEuC/1W8d8AxUaYUMQHtoPB4qG//D/cIGhm3YtvUuaJoXEP0kd47mq
-Pr6Nu/W5b7jO/rCIBOZN6T+h2dxClCLApZ9vrRkCgYEA2+VperkFZdspZ7mGHfKk
-UEApFcazrCQglIcrqrXF9MCCcOZq2Hr7MEMd/TluBbo4Kryzj9K4e5dejjizXTC+
-zloYR8dUMqIQe3iMSBSNz8IFNmjZPcxTSNKztLkP/guqIRxTsqyY9RLM9jzoZubM
-y/RoyEQFAu28IGtRQhLZYb8CgYBF6e8TARRvEgSbMZlGpKBg8xV3zJlJx5OmT9sq
-Vi8dx2yze1F/EBcfhAMLH2Gwr76R/2lonfle3avjpfijWo7mKZv+XClp5CUF5qJK
-0nU2UUxQwiq4GLT1ipOWZb/mZJ5SUXUWk/Zcwtv9CGTCKdh7BuVYIZfxWA6AwKnA
-pydHuQKBgQCMKBFNH0W5bXp+40xmm5CYuvR2hNrDlgjL0g4X4RBYEBcg6yCCq1fo
-gv0OBqNe1L72LWhI6oI2qlKPveN1fdh0jsAvPpQpce/16Y0f7xsl5N3upp+yHHNk
-xruDOG7npSCyHKfcQjDtaHOPKYiQ/3CuXp7OJOvjbNZFf0GJZA9XQA==
------END RSA PRIVATE KEY-----
diff --git a/descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/src/keys/test4.pub b/descriptor-packages/vnfd/ubuntu_1iface_cloudinit_new_vnf/src/keys/test4.pub
deleted file mode 100644 (file)
index d144710..0000000
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXYVPzII6lwC/hb1PHsgJcf11mYKI1pEeHzcjQ8X8P7YwOj2ihikhy6IRtm38HzP7udMWjQolPUbIzNBmldt8fy6EFkZEpf7R3QziDbqw3FH6wIbQnLpCZWa9OCGRyPyPdBY//K0Ya5b/IBfG4t+KoIVwkJuSG+oYRGhCYhnAwRZ/IUwxhtbNVsS26wN+jGsaUKIWCEBbS5ccFeb9k3eovIFkELNDJVWVJsh2tyGrUd+HQ1+xQGtBUcnipJV75lwL2Z2rprnMIIuVc+A1tTNWArHccLSyfxf2kANy5jGCkwNAH1ETp3r8A5BgoFYd7NSLxK3ob3XycXvYvt/XMrUDP test4
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
deleted file mode 100644 (file)
index ba7ab11..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-vnfd-catalog:
-    vnfd:
-    -   id: ubuntu_1iface_cloudinit_newfile_vnfd
-        name: ubuntu_1iface_cloudinit_newfile_vnf
-        short-name: ubuntu_1iface_cloudinit_newfile_vnf
-        description: Generated by OSM pacakage generator
-        vendor: OSM
-        version: '1.0'
-
-        # Place the logo as png in icons directory and provide the name here
-        logo: ubuntu-logo14.png
-
-        # Management interface
-        mgmt-interface:
-            cp: eth0
-
-        # Atleast one VDU need to be specified
-        vdu:
-        -   id: ubuntu_1iface_cloudinit_newfile_vnfd-VM
-            name: ubuntu_1iface_cloudinit_newfile_vnfd-VM
-            description: ubuntu_1iface_cloudinit_newfile_vnfd-VM
-            count: 1
-
-            # Flavour of the VM to be instantiated for the VDU
-            vm-flavor:
-                vcpu-count: 1
-                memory-mb: 1024
-                storage-gb: 10
-
-            # Image including the full path
-            image: 'ubuntu1604'
-
-            # User-data injection
-            cloud-init-file: cloud_init.cfg
-
-            interface:
-            # Specify the external interfaces
-            # There can be multiple interfaces defined
-            -   name: eth0
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                    bandwidth: '0'
-                    vpci: 0000:00:0a.0
-                external-connection-point-ref: eth0
-
-        connection-point:
-            -   name: eth0
-
diff --git a/descriptor-packages/vnfd/ubuntu_cirros_multidisk_vnf/Makefile b/descriptor-packages/vnfd/ubuntu_cirros_multidisk_vnf/Makefile
deleted file mode 100644 (file)
index a08d588..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/ubuntu_cirros_multidisk_vnf/src/cloud_init/cloud_init.cfg b/descriptor-packages/vnfd/ubuntu_cirros_multidisk_vnf/src/cloud_init/cloud_init.cfg
deleted file mode 100644 (file)
index d1c2188..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#cloud-config
-password: ubuntu
-chpasswd: { expire: False }
-ssh_pwauth: True
-
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
deleted file mode 100644 (file)
index 5b95440..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-vnfd-catalog:
-    vnfd:
-    -   id: ubuntu_cirros_multidisk_vnfd
-        name: ubuntu_cirros_multidisk_vnfd
-        short-name: ubuntu_cirros_multidisk_vnfd
-        description: Generated by OSM pacakage generator
-        vendor: OSM
-        version: '1.0'
-
-        # Management interface
-        mgmt-interface:
-            cp: eth0
-
-        # Atleast one VDU need to be specified
-        vdu:
-        -   id: ubuntu_cirros_multidisk_vnfd-VM
-            name: ubuntu_cirros_multidisk_vnfd-VM
-            description: ubuntu_cirros_multidisk_vnfd-VM
-            count: 1
-
-            # Flavour of the VM to be instantiated for the VDU
-            vm-flavor:
-                vcpu-count: 2
-                memory-mb: 4096
-                storage-gb: 10
-
-            # User-data injection
-            cloud-init-file: cloud_init.cfg
-
-            interface:
-            # Specify the external interfaces
-            # There can be multiple interfaces defined
-            -   name: eth0
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                external-connection-point-ref: eth0
-            # Specify the volume
-            # There can be multiple interfaces defined
-            volumes:
-            -   name: vda
-                device-type: disk
-                image: UbuntuXenial
-                image-checksum: 4a293322f18827af81a9450e3792947c
-                size: 10
-            -   name: vdb
-                device-type: disk
-                image: cirros-0.3.4-x86_64-disk.img
-                image-checksum: ee1eca47dc88f4879d8a229cc70a07c6
-                size: 8
-
-        connection-point:
-            -   name: eth0
-
diff --git a/descriptor-packages/vnfd/ubuntu_epa_virtio_vnf/Makefile b/descriptor-packages/vnfd/ubuntu_epa_virtio_vnf/Makefile
deleted file mode 100644 (file)
index ad4b68c..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-DESCRIPTORS_TOPDIR ?= ../..
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/ubuntu_epa_virtio_vnf/src/icons/ubuntu-logo14.png b/descriptor-packages/vnfd/ubuntu_epa_virtio_vnf/src/icons/ubuntu-logo14.png
deleted file mode 100644 (file)
index e966783..0000000
Binary files a/descriptor-packages/vnfd/ubuntu_epa_virtio_vnf/src/icons/ubuntu-logo14.png and /dev/null differ
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
deleted file mode 100644 (file)
index 0a7f30f..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-vnfd-catalog:
-    vnfd:
-    -   id: ubuntu_epa_virtio_vnf
-        name: ubuntu_epa_virtio_vnf
-        short-name: ubuntu_epa_virtio
-        description: VNF based on Ubuntu 16.04 LTS with EPA, 1 virtio interface and user osm
-        vendor: OSM
-        version: '1.0'
-
-        # Place the logo as png in icons directory and provide the name here
-        logo: ubuntu-logo14.png
-
-        # Management interface
-        mgmt-interface:
-            cp: eth0
-
-        # Atleast one VDU need to be specified
-        vdu:
-        -   id: ubuntu_epa_virtio_vnf-VM
-            name: ubuntu_epa_virtio_vnf-VM
-            description: ubuntu_epa_virtio_vnf-VM
-            count: 1
-
-            # Flavour of the VM to be instantiated for the VDU
-            vm-flavor:
-                memory-mb: 2048
-                storage-gb: 10
-
-            # Image including the full path
-            image: 'ubuntu1604'
-
-            interface:
-            # Specify the external interfaces
-            # There can be multiple interfaces defined
-            -   name: eth0
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                    bandwidth: '0'
-                    vpci: 0000:00:0a.0
-                external-connection-point-ref: eth0
-            host-epa:
-                om-cpu-model-string: "Intel(R) Xeon(R) CPU E5-4620 0 @ 2.20GHz"
-                om-cpu-feature:
-                -   feature: "64b"
-                -   feature: "iommu"
-                -   feature: "lps"
-                -   feature: "tlbps"
-                -   feature: "hwsv"
-                -   feature: "dioc"
-                -   feature: "ht"
-            guest-epa:
-                numa-node-policy:
-                    node:
-                    -   id: 0
-                        paired-threads:
-                            num-paired-threads: 1
-                    mem-policy: "STRICT"
-                    node-cnt: 1
-                mempage-size: "LARGE"
-                cpu-pinning-policy: "DEDICATED"
-                cpu-thread-pinning-policy: "PREFER"
-            hypervisor-epa:
-                version: "10002|12001|2.6.32-358.el6.x86_64"
-                type: "REQUIRE_KVM"
-
-        connection-point:
-            -   name: eth0
-
diff --git a/descriptor-packages/vnfd/ubuntu_xenial_vnf/Makefile b/descriptor-packages/vnfd/ubuntu_xenial_vnf/Makefile
deleted file mode 100644 (file)
index a08d588..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-#   Copyright 2017 Sandvine
-#
-#   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.
-#
-
-DESCRIPTORS_TOPDIR ?= ../..
-
-include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
-
-all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/ubuntu_xenial_vnf/src/cloud_init/cloud_init.cfg b/descriptor-packages/vnfd/ubuntu_xenial_vnf/src/cloud_init/cloud_init.cfg
deleted file mode 100644 (file)
index d1c2188..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#cloud-config
-password: ubuntu
-chpasswd: { expire: False }
-ssh_pwauth: True
-
diff --git a/descriptor-packages/vnfd/ubuntu_xenial_vnf/src/icons/ubuntu-logo14.png b/descriptor-packages/vnfd/ubuntu_xenial_vnf/src/icons/ubuntu-logo14.png
deleted file mode 100644 (file)
index e966783..0000000
Binary files a/descriptor-packages/vnfd/ubuntu_xenial_vnf/src/icons/ubuntu-logo14.png and /dev/null differ
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
deleted file mode 100644 (file)
index e246a04..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-vnfd-catalog:
-    vnfd:
-    -   id: ubuntu_xenial_vnfd
-        name: ubuntu_xenial_vnf
-        short-name: ubuntu_xenial_vnf
-        description: Generated by OSM pacakage generator
-        vendor: OSM
-        version: '1.0'
-
-        # Place the logo as png in icons directory and provide the name here
-        logo: ubuntu-logo14.png
-
-        # Management interface
-        mgmt-interface:
-            cp: eth0
-
-        # Atleast one VDU need to be specified
-        vdu:
-        -   id: ubuntu_xenial_vnfd-VM
-            name: ubuntu_xenial_vnfd-VM
-            description: ubuntu_xenial_vnfd-VM
-            count: 1
-
-            # Flavour of the VM to be instantiated for the VDU
-            vm-flavor:
-                vcpu-count: 2
-                memory-mb: 4096
-                storage-gb: 10
-
-            # Image including the full path
-            image: '/mnt/powervault/virtualization/vnfs/demos/ubuntu/ubuntu-16.04.img'
-
-            # User-data injection
-            cloud-init-file: cloud_init.cfg
-
-            interface:
-            # Specify the external interfaces
-            # There can be multiple interfaces defined
-            -   name: eth0
-                type: EXTERNAL
-                virtual-interface:
-                    type: PARAVIRT
-                    bandwidth: '0'
-                    vpci: 0000:00:0a.0
-                external-connection-point-ref: eth0
-
-        connection-point:
-            -   name: eth0
-
index ef1151d..f7cc214 100755 (executable)
@@ -14,7 +14,7 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-PKG_DIRECTORIES="common jenkins installers systest charms descriptor-packages tools docker robot-systest"
+PKG_DIRECTORIES="common jenkins installers tools docker"
 MDG_NAME=devops
 DEB_INSTALL=debian/osm-$MDG_NAME.install
 export DEBEMAIL="OSM_TECH@LIST.ETSI.ORG"
diff --git a/jenkins/ci-pipelines/ci_stage_4.groovy b/jenkins/ci-pipelines/ci_stage_4.groovy
deleted file mode 100644 (file)
index 5e390e3..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright 2017 Sandvine
- *
- * All Rights Reserved.
- * 
- *   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.
- */
-
-properties([
-    parameters([
-        string(defaultValue: '', description: '', name: 'CONTAINER_NAME' ),
-        string(defaultValue: 'osm-stage_3', description: '', name: 'UPSTREAM_PROJECT'),
-        string(defaultValue: 'pipeline', description: '', name: 'NODE'),
-        string(defaultValue: '/home/jenkins/hive/openstack-telefonica.rc', description: '', name: 'HIVE_VIM_1'),
-    ])
-])
-
-node("${params.NODE}") {
-
-    stage("checkout") {
-        checkout scm
-    }
-
-    ci_helper = load "jenkins/ci-pipelines/ci_helper.groovy"
-
-    if ( params.CONTAINER_NAME ) {
-        container_name = params.CONTAINER_NAME
-    }
-    else if ( params.UPSTREAM_PROJECT ) {
-        step ([$class: 'CopyArtifact',
-              projectName: "${params.UPSTREAM_PROJECT}/${BRANCH_NAME}"])
-        container_name = sh(returnStdout: true, script: 'cat build_version.txt').trim()
-    }
-    else {
-        println("no OSM container found")
-        currentBuild.result = 'FAILURE'
-        return
-    }
-    println("OSM container = ${container_name}")
-
-    if ( params.HIVE_VIM_1 ) {
-        stage( "${params.HIVE_VIM_1}" ) {
-            ci_helper.systest_run(container_name, 'cirros', params.HIVE_VIM_1)
-            ci_helper.systest_run(container_name, 'ns_scale', params.HIVE_VIM_1)
-            junit '*.xml'
-        }
-    }
-}
diff --git a/robot-systest/README.md b/robot-systest/README.md
deleted file mode 100644 (file)
index 084ef50..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<!--
- 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.
--->
-
-# Robot Framework: Test usage
-
-## Requirements
-
-- OSM client installed (<https://osm.etsi.org/docs/user-guide/03-installing-osm.html#installing-standalone-osm-client>)
-- devops repository cloned in home (<https://osm.etsi.org/gerrit/#/admin/projects/osm/devops>)
-- The descriptor packages used on each test are expected to be in `${PACKAGES_FOLDER}`.
-- A set of environment variables (there is an example file located at devops/robot-systest/environment.rc):
-  - `OSM_HOSTNAME`: IP address of target OSM.
-  - `OS_CLOUD`: Cloud credentialss.
-  - `VIM_TARGET`: VIM where tests will be run.
-  - `VIM_MGMT_NET`: VIM management network, reachable from robot.
-  - `PACKAGES_FOLDER`: Path where descriptor packages repository are cloned: https://osm.etsi.org/gitlab/vnf-onboarding/osm-packages/
-  - `ROBOT_DEVOPS_FOLDER`: Where the devops repository is located.
-  - `ROBOT_REPORT_FOLDER`: Where robot outpul will be placed.
-
-## Installation
-
-```bash
-sudo -H python3 -m pip install --ignore-installed haikunator requests pyvcloud progressbar pathlib robotframework robotframework-seleniumlibrary robotframework-requests robotframework-SSHLibrary
-sudo snap install yq
-sudo apt-get install -y python3-openstackclient  # Installs Queens by default
-```
-
-## Usage
-
-Example using hackfest basic test. 
-
-```bash
-
-# Set your environment variables in environment.rc as specified in requirements
-source environment.rc
-
-cd ~/devops/robot-systest
-robot -d ${ROBOT_REPORT_FOLDER} testsuite/hackfest_basic.robot
-```
diff --git a/robot-systest/environment.rc b/robot-systest/environment.rc
deleted file mode 100644 (file)
index 80673a8..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#   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.
-
-echo "Please set your environment variables."
-# export OSM_HOSTNAME=<OSM_HOSTNAME>
-# export OS_CLOUD=<OS_CLOUD>
-# export VIM_TARGET=<VIM_TARGET>
-# export VIM_MGMT_NET=<VIM_MGMT_NET>
-# export PACKAGES_FOLDER=<PACKAGES_FOLDER=>
-# export ROBOT_DEVOPS_FOLDER=<ROBOT_DEVOPS_FOLDER>
-# export ROBOT_REPORT_FOLDER=<ROBOT_REPORT_FOLDER>
-# export K8S_CREDENTIALS=<KUBECONFIG.yaml>
diff --git a/systest/.gitignore b/systest/.gitignore
deleted file mode 100644 (file)
index 1fae3e1..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-pytest-output.xml
-*.pyc
-.cache
-descriptor-packages/
-*.xml
-images/*
diff --git a/systest/Dockerfile b/systest/Dockerfile
deleted file mode 100644 (file)
index 23ed1d0..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-FROM ubuntu:16.04
-
-RUN apt-get update && apt-get -y install python \
-    libcurl4-gnutls-dev libgnutls-dev \
-    python-setuptools python-pip git python-pytest \
-    charm-tools sudo
-
-# allow users to sudo.  This will allow packages to be installed
-# inside the container
-RUN echo "ALL ALL = NOPASSWD: ALL" > /etc/sudoers.d/user && \
-    chmod 0440 /etc/sudoers.d/user
diff --git a/systest/Makefile b/systest/Makefile
deleted file mode 100644 (file)
index a5b6303..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-# Copyright 2017 Sandvine
-# All Rights Reserved.
-# 
-#    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.
-
-#
-# These variables need to be defined in environment or passed in
-# the make invocation.
-# eg. 
-#    export OSM_HOSTNAME=1.2.3.4:8008
-#    export OS_AUTH_URL=https://<keystoneserver>:5000/v2.0
-#    export OS_USERNAME=admin
-#    export OS_PASSWORD=admin
-#    export OS_PROJECT_NAME=admin
-OSM_HOSTNAME ?=
-OSM_RO_HOSTNAME ?=
-OS_AUTH_URL ?=
-OS_USERNAME ?=
-OS_PASSWORD ?=
-OS_PROJECT_NAME ?=
-VIM_CONFIG ?=
-VCD_AUTH_URL ?=
-VCD_USERNAME ?=
-VCD_PASSWORD ?=
-VCD_TENANT_NAME ?=
-VCD_ORGANIZATION ?=
-VIM_EMU ?=
-
-TOPDIR=$(shell readlink -f .|sed -e 's/systest.*//')
-
-
-ifdef OS_AUTH_URL
-    OPTION_OS_AUTH_URL=--os-url $(OS_AUTH_URL)
-endif
-ifdef OS_USERNAME
-    OPTION_OS_USERNAME=--os-username $(OS_USERNAME)
-endif
-ifdef OS_PASSWORD
-    OPTION_OS_PASSWORD=--os-password $(OS_PASSWORD)
-endif
-ifdef OS_PROJECT_NAME
-    OPTION_OS_PROJECT_NAME=--os-project-name $(OS_PROJECT_NAME)
-endif
-
-ifdef TEST_VNFD_DESCRIPTORS
-    OPTION_TEST_VNFD_DESCRIPTORS=--osm-vnfd-descriptor-packages $(TEST_VNFD_DESCRIPTORS)
-endif
-ifdef TEST_NSD_DESCRIPTORS
-    OPTION_TEST_NSD_DESCRIPTORS=--osm-nsd-descriptor-packages $(TEST_NSD_DESCRIPTORS)
-endif
-ifdef OSM_RO_HOSTNAME
-    OPTION_RO_HOSTNAME=--osm_ro_host $(OSM_RO_HOSTNAME)
-else
-    OPTION_RO_HOSTNAME=--osm_ro_host $(OSM_HOSTNAME)
-endif
-
-ifdef VIM_CONFIG
-    OPTION_VIM_CONFIG=--vim-config "$(VIM_CONFIG)"
-endif
-
-ifdef VCD_AUTH_URL
-    OPTION_VCD_AUTH_URL=--vcd-url $(VCD_AUTH_URL)
-endif
-ifdef VCD_USERNAME
-    OPTION_VCD_USERNAME=--vcd-username $(VCD_USERNAME)
-endif
-ifdef VCD_PASSWORD
-    OPTION_VCD_PASSWORD=--vcd-password $(VCD_PASSWORD)
-endif
-ifdef VCD_TENANT_NAME
-    OPTION_VCD_TENANT_NAME=--vcd-tenant-name $(VCD_TENANT_NAME)
-endif
-ifdef VCD_ORGANIZATION
-    OPTION_VCD_ORGANIZATION=--vcd-org $(VCD_ORGANIZATION)
-endif
-
-
-DESCRIPTOR_DIR ?= $(TOPDIR)/descriptor-packages
-
-#TODO: Need to re-add this once charm application name length issue is resolved
-#TEST_OSM_NS_NAME_PREFIX=pytest-$(shell date +%D-%T)-
-#OPTION_TEST_OSM_NS_NAME_PREFIX=--osm-ns-name-prefix $(TEST_OSM_NS_NAME_PREFIX)
-
-JUNITXML_DIR = reports
-
-JUNITXML ?= pytest-output.xml
-
-PYTEST_OPTIONS=
-Q=@
-
-TEST_VNFD_DESCRIPTORS ?= None
-TEST_NSD_DESCRIPTORS  ?= None
-
-.NOTPARALLEL:
-all: smoke cirros ping_pong
-
-define check_env_var
-       $(Q)if [ -z "$($(1))" ]; then echo "error: $(1) not set"; exit 1; fi
-endef
-
-check_OSM_HOSTNAME:
-       $(call check_env_var,OSM_HOSTNAME)
-
-check_openstack_env:
-       $(call check_env_var,OS_AUTH_URL)
-       $(call check_env_var,OS_USERNAME)
-       $(call check_env_var,OS_PASSWORD)
-       $(call check_env_var,OS_PROJECT_NAME)
-
-check_vcd_env:
-       $(call check_env_var,VCD_AUTH_URL)
-       $(call check_env_var,VCD_USERNAME)
-       $(call check_env_var,VCD_PASSWORD)
-       $(call check_env_var,VCD_TENANT_NAME)
-       $(call check_env_var,VCD_ORGANIZATION)
-
-.PHONY: check_openstack_env check_vcd_env check_OSM_HOSTNAME
-
-report_dir:
-       @mkdir -p reports
-
-_run_test: report_dir
-       -$(Q)py.test \
-        --osmhost $(OSM_HOSTNAME) --sol005 \
-        $(OPTION_RO_HOSTNAME) \
-        $(OPTION_OS_AUTH_URL) \
-        $(OPTION_OS_USERNAME) \
-        $(OPTION_OS_PASSWORD) \
-        $(OPTION_VIM_CONFIG) \
-        $(OPTION_OS_PROJECT_NAME) \
-        $(OPTION_VCD_AUTH_URL) \
-        $(OPTION_VCD_USERNAME) \
-        $(OPTION_VCD_PASSWORD) \
-        $(OPTION_VCD_TENANT_NAME) \
-        $(OPTION_TEST_VNFD_DESCRIPTORS) \
-        $(OPTION_TEST_NSD_DESCRIPTORS) \
-        $(OPTION_DESCRIPTOR_BUILD_DIR) \
-        $(OPTION_TEST_OSM_NS_NAME_PREFIX) \
-        --junitxml $(JUNITXML_DIR)/$(JUNITXML) \
-        $(PYTEST_OPTIONS)
-
-$(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/%.tar.gz:
-       $(MAKE) -C $(DESCRIPTOR_DIR)/vnfd/cirros_vnf
-
-$(DESCRIPTOR_DIR)/nsd/cirros_ns/build/%.tar.gz:
-       $(MAKE) -C $(DESCRIPTOR_DIR)/nsd/cirros_ns
-
-images/cache/cirros-0.3.5-x86_64-disk.img:
-       $(Q)mkdir -p images/cache
-       $(Q)wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img -O $@
-
-images/cache/Fedora-x86_64-20-20131211.1-sda-ping.qcow2:
-       $(Q)mkdir -p images/cache
-       $(Q)wget ftp://osm-download.etsi.org/examples/ping_pong_ns/images/Fedora-x86_64-20-20131211.1-sda-ping.qcow2 -O $@
-
-images/cache/Fedora-x86_64-20-20131211.1-sda-pong.qcow2:
-       $(Q)mkdir -p images/cache
-       $(Q)wget ftp://osm-download.etsi.org/examples/ping_pong_ns/images/Fedora-x86_64-20-20131211.1-sda-pong.qcow2 -O $@
-
-# images are prefixed with 'osm/' to separate osm uploaded images from VIM installed images
-OSM_IMAGE_PREFIX ?=
-sys_path ?= $(TOPDIR)systest
-
-ifdef VIM_EMU 
-# VIM emulator does not need images pushed to glance.
-else
-ifdef OS_AUTH_URL
-images/%.qcow2 images/%.img:
-       $(Q)openstack image show $(OSM_IMAGE_PREFIX)$(shell basename $@) || \
-          sh -c "make images/cache/$(shell basename $@) && openstack image create --file images/cache/$(shell basename $@) $(OSM_IMAGE_PREFIX)$(shell basename $@)"
-endif
-endif
-
-ifdef VCD_AUTH_URL
-images/%.img:
-       ovf_converter images/cache/$(OSM_IMAGE_PREFIX)$(shell basename $@) -n cirros
-       python $(TOPDIR)tools/vmware_ovf_upload.py $(VCD_AUTH_URL) $(VCD_USERNAME) $(VCD_PASSWORD) $(VCD_ORGANIZATION) $(sys_path)/images/cache/cirros.ovf
-else
-images/%.img:
-       echo "No method selected to upload image to VIM"
-endif
-
-%.openstack: check_openstack_env
-       $(Q)$(MAKE) $*
-
-%.vcd: check_vcd_env
-       $(Q)$(MAKE) $*
-
-cirros: check_OSM_HOSTNAME \
-        $(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
-        $(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz \
-        images/cirros-0.3.5-x86_64-disk.img
-       $(Q)$(MAKE) \
-        TEST_VNFD_DESCRIPTORS=$(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
-        TEST_NSD_DESCRIPTORS=$(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz \
-        JUNITXML=pytest-$@.xml \
-        PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m vnf" _run_test
-
-ns_scale: check_OSM_HOSTNAME \
-        $(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
-        $(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz \
-        images/cirros-0.3.5-x86_64-disk.img
-       $(Q)$(MAKE) \
-        TEST_VNFD_DESCRIPTORS=$(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
-        TEST_NSD_DESCRIPTORS=$(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz \
-        JUNITXML=pytest-$@.xml \
-        PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m ns_scale" _run_test
-
-smoke: check_OSM_HOSTNAME \
-        $(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
-        $(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz
-       $(Q)$(MAKE) \
-        JUNITXML=pytest-$@.xml \
-        PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m smoke" _run_test \
-        TEST_VNFD_DESCRIPTORS=$(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
-        TEST_NSD_DESCRIPTORS=$(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz
-
-vim: check_OSM_HOSTNAME check_openstack_env
-       $(Q)$(MAKE) \
-        JUNITXML=pytest-$@.xml \
-        PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m vim" _run_test
-
-$(DESCRIPTOR_DIR)/vnfd/ping_vnf/build/%.tar.gz:
-       $(MAKE) -C $(DESCRIPTOR_DIR)/vnfd/ping_vnf
-
-$(DESCRIPTOR_DIR)/vnfd/pong_vnf/build/%.tar.gz:
-       $(MAKE) -C $(DESCRIPTOR_DIR)/vnfd/pong_vnf
-
-$(DESCRIPTOR_DIR)/nsd/ping_pong_ns/build/%.tar.gz:
-       $(MAKE) -C $(DESCRIPTOR_DIR)/nsd/ping_pong_ns
-
-ping_pong: check_OSM_HOSTNAME check_openstack_env \
-    $(DESCRIPTOR_DIR)/vnfd/ping_vnf/build/ping_vnf.tar.gz \
-    $(DESCRIPTOR_DIR)/vnfd/pong_vnf/build/pong_vnf.tar.gz \
-    $(DESCRIPTOR_DIR)/nsd/ping_pong_ns/build/ping_pong_ns.tar.gz \
-    images/Fedora-x86_64-20-20131211.1-sda-ping.qcow2 \
-    images/Fedora-x86_64-20-20131211.1-sda-pong.qcow2
-       $(Q)$(MAKE) \
-        TEST_VNFD_DESCRIPTORS="$(DESCRIPTOR_DIR)/vnfd/ping_vnf/build/ping_vnf.tar.gz,$(DESCRIPTOR_DIR)/vnfd/pong_vnf/build/pong_vnf.tar.gz" \
-        TEST_NSD_DESCRIPTORS=$(DESCRIPTOR_DIR)/nsd/ping_pong_ns/build/ping_pong_ns.tar.gz \
-        JUNITXML=pytest-$@.xml \
-        PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m vnf" _run_test
-
-stage_4_tests = cirros
-
-openstack_stage_4: $(stage_4_tests)
-
-.PHONY: report_dir cirros vim smoke ping_pong openstack_stage_4 stage_4_tests
diff --git a/systest/conftest.py b/systest/conftest.py
deleted file mode 100644 (file)
index 4611f27..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 2017 Sandvine
-#
-# All Rights Reserved.
-#
-#    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.
-
-from lib.osm.fixtures import osm_add_options
-from lib.openstack.fixtures import openstack_add_options
-from lib.vim.fixtures import vim_add_options
-from lib.vmware.fixtures import vmware_add_options
-
-def pytest_addoption(parser):
-    osm_add_options(parser)
-    openstack_add_options(parser)
-    vmware_add_options(parser)
-    vim_add_options(parser)
diff --git a/systest/lib/__init__.py b/systest/lib/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/systest/lib/openstack/__init__.py b/systest/lib/openstack/__init__.py
deleted file mode 100644 (file)
index 2bf7fed..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright 2017 Sandvine
-#
-# All Rights Reserved.
-#
-#    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.
diff --git a/systest/lib/openstack/fixtures.py b/systest/lib/openstack/fixtures.py
deleted file mode 100644 (file)
index 5b654a9..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2017 Sandvine
-#
-# All Rights Reserved.
-#
-#    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.
-
-import pytest
-import json
-
-
-def openstack_add_options(parser):
-    parser.addoption("--os-url", default="", help="openstack identity url")
-    parser.addoption("--os-username", default="", help="openstack username")
-    parser.addoption("--os-password", default="", help="openstack password")
-    parser.addoption("--os-project-name", default="", help="openstack project name")
-    parser.addoption("--vim-config", default="", help="vim/openstack specific configuration")
-
-@pytest.fixture
-def openstack(request):
-    from lib.openstack import openstack
-    access = {}
-    access['vim-url'] = request.config.getoption("--os-url")
-    access['vim-username'] = request.config.getoption("--os-username")
-    access['vim-password'] = request.config.getoption("--os-password")
-    access['vim-tenant-name'] = request.config.getoption("--os-project-name")
-    access['vim-type'] = 'openstack'
-    access['description'] = 'pytest system test'
-    access['config'] = request.config.getoption("--vim-config")
-
-    return openstack.Openstack(access)
diff --git a/systest/lib/openstack/openstack.py b/systest/lib/openstack/openstack.py
deleted file mode 100644 (file)
index 9f5c304..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2017 Sandvine
-#
-# All Rights Reserved.
-#
-#    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.
-
-
-class Openstack():
-    def __init__(self,access):
-        self._os_access = access
-
-    def get_access(self):
-        return self._os_access
diff --git a/systest/lib/osm/__init__.py b/systest/lib/osm/__init__.py
deleted file mode 100644 (file)
index 2bf7fed..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright 2017 Sandvine
-#
-# All Rights Reserved.
-#
-#    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.
diff --git a/systest/lib/osm/fixtures.py b/systest/lib/osm/fixtures.py
deleted file mode 100644 (file)
index c1becc8..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright 2017 Sandvine
-#
-# All Rights Reserved.
-#
-#    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.
-
-import pytest
-import json
-
-
-def osm_add_options(parser):
-    parser.addoption("--osmhost", default="", help="osm hostname")
-    parser.addoption("--sol005",action="store_true", help="enable sol005 API")
-    parser.addoption("--osm_ro_host", default="", help="osm ro_host")
-    parser.addoption("--osm-descriptor-packages", default="", help="location of descriptor packages")
-    parser.addoption("--osm-vnfd-descriptor-packages", default="", help="vnfd packages to test")
-    parser.addoption("--osm-nsd-descriptor-packages", default="", help="nsd package to test")
-    parser.addoption("--osmfile", action="store", default="", help="osm json data file")
-    parser.addoption("--osm-ns-name-prefix", action="store", default="", help="ns name prefix to apply")
-
-'''
-@pytest.fixture
-def osm(request):
-    from osmclient.common import OsmAPI
-    with open(request.config.getoption("--osm")) as json_data:
-        osmdict=json.load(json_data)
-        return OsmAPI.OsmAPI(osmdict['ip'])
-
-'''
-
-@pytest.fixture
-def osm(request):
-    from lib.osm import osm
-    osmhost=request.config.getoption("--osmhost")
-    sol005=request.config.getoption("--sol005")
-    osm_ro_host=request.config.getoption("--osm_ro_host")
-    descriptors_dir=request.config.getoption("--osm-descriptor-packages")
-    vnfd_descriptors_list=request.config.getoption("--osm-vnfd-descriptor-packages").split(',')
-    nsd_descriptors_list=request.config.getoption("--osm-nsd-descriptor-packages").split(',')
-    ns_name_prefix=request.config.getoption("--osm-ns-name-prefix")
-    return osm.Osm(osmhost,
-                   ro_host=osm_ro_host,
-                   sol005=sol005,
-                   descriptors_dir=descriptors_dir,
-                   vnfd_descriptors_list=vnfd_descriptors_list,
-                   nsd_descriptors_list=nsd_descriptors_list,
-                   ns_name_prefix=ns_name_prefix)
diff --git a/systest/lib/osm/osm.py b/systest/lib/osm/osm.py
deleted file mode 100644 (file)
index a354994..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 2017 Sandvine
-#
-# All Rights Reserved.
-#
-#    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.
-
-
-from osmclient import client
-
-class Osm():
-    def __init__(self,osmhost,sol005=None,ro_host=None,descriptors_dir=None,vnfd_descriptors_list=None,nsd_descriptors_list=None,ns_name_prefix=None):
-        self._OsmApi=client.Client(host=osmhost,sol005=sol005,ro_host=ro_host, verbose=2)
-        self._descriptors_dir = descriptors_dir
-        self.vnfd_descriptors_list = vnfd_descriptors_list
-        self.nsd_descriptors_list  = nsd_descriptors_list 
-        self.ns_name_prefix = ns_name_prefix
-
-    def get_api(self):
-        return self._OsmApi
-
-    def get_descriptors_dir(self):
-        return self._descriptors_dir
diff --git a/systest/lib/vim/__init__.py b/systest/lib/vim/__init__.py
deleted file mode 100644 (file)
index 2bf7fed..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright 2017 Sandvine
-#
-# All Rights Reserved.
-#
-#    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.
diff --git a/systest/lib/vim/fixtures.py b/systest/lib/vim/fixtures.py
deleted file mode 100644 (file)
index 6b4404d..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2017 Sandvine
-#
-# All Rights Reserved.
-#
-#    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.
-
-import pytest
-import json
-
-
-def vim_add_options(parser):
-    pass
-
-@pytest.fixture
-def vim(request,osm,openstack,vmware):
-    from lib.vim import vim 
-    return vim.Vim(osm,openstack,vmware)
diff --git a/systest/lib/vim/vim.py b/systest/lib/vim/vim.py
deleted file mode 100644 (file)
index 0ac9525..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2017 Sandvine
-#
-# All Rights Reserved.
-#
-#    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.
-
-from osmclient.common.exceptions import ClientException
-
-
-class Vim():
-    def __init__(self,osm,openstack,vmware):
-        self.vim_name='pytest'
-        try:
-            osm.get_api().vim.get(self.vim_name)
-        except ClientException:
-            if vmware._os_access['vim-url'] and vmware._os_access['vim-type'] == 'vmware':
-                osm.get_api().vim.create(self.vim_name,vmware.get_access())
-            else:
-                osm.get_api().vim.create(self.vim_name,openstack.get_access())
diff --git a/systest/lib/vmware/__init__.py b/systest/lib/vmware/__init__.py
deleted file mode 100644 (file)
index 861d0b2..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-# -*- coding: utf-8 -*-
-
-##
-# Copyright 2016-2017 VMware Inc.
-# This file is part of ETSI OSM
-# All Rights Reserved.
-#
-# 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact:  osslegalrouting@vmware.com
-##
-
diff --git a/systest/lib/vmware/fixtures.py b/systest/lib/vmware/fixtures.py
deleted file mode 100644 (file)
index cb6cc7b..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-# -*- coding: utf-8 -*-
-
-##
-# Copyright 2016-2017 VMware Inc.
-# This file is part of ETSI OSM
-# All Rights Reserved.
-#
-# 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact:  osslegalrouting@vmware.com
-##
-
-import pytest
-import json
-
-
-def vmware_add_options(parser):
-    parser.addoption("--vcd-url", default="", help="VMware vCloud identity url")
-    parser.addoption("--vcd-username", default="", help="VMware vCloud username")
-    parser.addoption("--vcd-password", default="", help="VMware vCloud password")
-    parser.addoption("--vcd-tenant-name", default="", help="VMware vCloud tenant name")
-    parser.addoption("--vcd-org", default="", help="VMware vCloud Organization name")
-
-@pytest.fixture
-def vmware(request):
-    from lib.vmware import vmware
-    access = {}
-    access['vim-url'] = request.config.getoption("--vcd-url")
-    access['vim-username'] = request.config.getoption("--vcd-username")
-    access['vim-password'] = request.config.getoption("--vcd-password")
-    access['vim-tenant-name'] = request.config.getoption("--vcd-tenant-name")
-    access['vcd-org'] = request.config.getoption("--vcd-org")
-    access['config'] = request.config.getoption("--vim-config")
-    access['vim-type'] = 'vmware'
-    access['description'] = 'pytest system test'
-
-    return vmware.Vmware(access)
diff --git a/systest/lib/vmware/vmware.py b/systest/lib/vmware/vmware.py
deleted file mode 100644 (file)
index 76c5412..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-# -*- coding: utf-8 -*-
-
-##
-# Copyright 2016-2017 VMware Inc.
-# This file is part of ETSI OSM
-# All Rights Reserved.
-#
-# 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact:  osslegalrouting@vmware.com
-##
-
-
-class Vmware():
-    def __init__(self,access):
-        self._os_access = access
-
-    def get_access(self):
-        return self._os_access
diff --git a/systest/testcases/conftest.py b/systest/testcases/conftest.py
deleted file mode 100644 (file)
index 481ce91..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2017 Sandvine
-#
-# All Rights Reserved.
-#
-#    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.
-
-from lib.osm.fixtures import osm
-from lib.openstack.fixtures import openstack
-from lib.vmware.fixtures import vmware
-from lib.vim.fixtures import vim
diff --git a/systest/testcases/smoke/test_smoke.py b/systest/testcases/smoke/test_smoke.py
deleted file mode 100644 (file)
index 650cf05..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright 2017 Sandvine
-#
-# All Rights Reserved.
-#
-#    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.
-
-import pytest
-import pprint
-import time
-
-
-@pytest.mark.smoke
-class TestClass(object):
-
-    def test_empty_vnf(self,osm):
-        assert not osm.get_api().vnf.list()
-
-    def test_empty_vnf_catalog(self,osm):
-        assert not osm.get_api().vnfd.list()
-
-    def test_empty_ns(self,osm):
-        assert not osm.get_api().ns.list()
-
-    def test_empty_ns_catalog(self,osm):
-        assert not osm.get_api().nsd.list()
-
-    def vnf_upload_packages(self, osm, descriptor_file_list ):
-        for file in descriptor_file_list:
-            assert not osm.get_api().package.upload(file)
-            assert not osm.get_api().package.wait_for_upload(file)
-            desc = osm.get_api().package.get_key_val_from_pkg(file)
-            assert desc
-
-    def delete_all_packages(self, osm):
-        for nsd in osm.get_api().nsd.list(): 
-            assert not osm.get_api().nsd.delete(nsd['name'])
-
-        for vnfd in osm.get_api().vnfd.list(): 
-            assert not osm.get_api().vnfd.delete(vnfd['name'])
-            
-    def test_upload_vnf_package(self, osm):
-        vnfd_file_list = osm.vnfd_descriptors_list
-        nsd_file_list = osm.nsd_descriptors_list
-        # upload vnfd's
-        self.vnf_upload_packages(osm, vnfd_file_list )
-        # upload nsd's
-        self.vnf_upload_packages(osm, nsd_file_list )
-
-        # now delete all packages
-        self.delete_all_packages(osm)
diff --git a/systest/testcases/vim/test_vim.py b/systest/testcases/vim/test_vim.py
deleted file mode 100644 (file)
index a80ae70..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-# Copyright 2017 Sandvine
-#
-# All Rights Reserved.
-#
-#    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.
-
-import pytest
-import time
-
-
-@pytest.mark.vim
-@pytest.mark.openstack
-@pytest.mark.vmware
-class TestClass(object):
-
-    def test_empty_vim(self,osm):
-        assert not osm.get_api().vim.list()
-
-    @pytest.fixture(scope='function')
-    def cleanup_test_add_vim_account(self,osm,request):
-        def teardown():
-            try:
-                for vim in osm.get_api().vim.list(False):
-                    osm.get_api().vim.delete(vim['name'])
-            except:
-                pass
-        request.addfinalizer(teardown)
-    @pytest.mark.openstack
-    @pytest.mark.smoke
-    def test_add_vim_account(self,osm,openstack,cleanup_test_add_vim_account):
-        os_access = {}
-        vim_name = 'helloworld-os'
-        os_access['vim-url'] = 'https://169.254.169.245/'
-        os_access['vim-username'] = 'pytest2'
-        os_access['vim-password'] = 'fred'
-        os_access['vim-tenant-name'] = 'pytest3'
-        os_access['vim-type'] = 'openstack'
-        os_access['description'] = 'a test vim'
-        assert not osm.get_api().vim.create(vim_name,os_access)
-
-        resp=osm.get_api().vim.get(vim_name)
-        assert resp['name'] == vim_name
-        assert resp['vim_type'] == 'openstack'
-        assert resp['vim_url'] == os_access['vim-url']
-        assert resp['vim_user'] == os_access['vim-username']
-        assert resp['vim_tenant_name'] == os_access['vim-tenant-name']
-        assert not osm.get_api().vim.delete(vim_name)
-
-    @pytest.mark.vmware
-    #@pytest.mark.smoke
-    def test_add_vim_account_vmware(self,osm,vmware,cleanup_test_add_vim_account):
-        os_access = {}
-        vim_name = 'helloworld-vmware'
-        os_access['vim-url'] = 'https://169.254.169.245/'
-        os_access['vim-username'] = 'pytest2'
-        os_access['vim-password'] = 'fred'
-        os_access['vim-tenant-name'] = 'pytest3'
-        os_access['vim-type'] = 'vmware'
-        os_access['description'] = 'a test vim'
-        assert not osm.get_api().vim.create(vim_name,os_access)
-
-        resp=osm.get_api().vim.get(vim_name)
-        assert resp['name'] == vim_name
-        assert resp['vim_type'] == 'vmware'
-        assert resp['vim_url'] == os_access['vim-url']
-        assert resp['vim_user'] == os_access['vim-username']
-        assert resp['vim_tenant_name'] == os_access['vim-tenant-name']
-        assert not osm.get_api().vim.delete(vim_name)
-
-    #@pytest.mark.smoke
-    def test_add_multiple_accounts(self,osm,cleanup_test_add_vim_account):
-        os_access = {}
-        vims = [ {'name': 'testvim1', 'vim-type': 'openstack'}, {'name': 'testvim2','vim-type': 'vmware'} ]
-        os_access['vim-url'] = 'https://169.254.169.245/'
-        os_access['vim-username'] = 'pytest2'
-        os_access['vim-password'] = 'fred'
-        os_access['vim-tenant-name'] = 'pytest3'
-        os_access['description'] = 'a test vim'
-
-        for vim in vims:
-            os_access['vim-type'] = vim['vim-type']
-            assert not osm.get_api().vim.create(vim['name'],os_access)
-            resp=osm.get_api().vim.get(vim['name'])
-            assert resp['name'] == vim['name'] 
-            assert resp['vim_type'] == vim['vim-type']
-            assert resp['vim_url'] == os_access['vim-url']
-            assert resp['vim_user'] == os_access['vim-username']
-            assert resp['vim_tenant_name'] == os_access['vim-tenant-name']
-
-        for vim in osm.get_api().vim.list(False):
-            osm.get_api().vim.delete(vim['name'])
diff --git a/systest/testcases/vnfs/test_vnfs.py b/systest/testcases/vnfs/test_vnfs.py
deleted file mode 100644 (file)
index 58fc240..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-# Copyright 2017 Sandvine
-#
-# All Rights Reserved.
-#
-#    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.
-
-import pytest
-import pprint
-import time
-from osmclient.common import utils
-
-
-class TestClass(object):
-
-    @pytest.fixture(scope='function')
-    def cleanup_test_vnf(self,osm,request):
-        vnfd_file_list = osm.vnfd_descriptors_list
-        nsd_file_list = osm.nsd_descriptors_list
-
-        # cleanup all ns/packages that might have been left around
-        def teardown():
-
-            # first delete all nsd's
-            for file in nsd_file_list:
-                try:
-                    desc = osm.get_api().package.get_key_val_from_pkg(file)
-                    ns_name=osm.ns_name_prefix+desc['name']
-                    osm.get_api().ns.delete(ns_name)
-                except:
-                    pass
-
-            # delete all nsd packages
-            for file in nsd_file_list:
-                try:
-                    desc = osm.get_api().package.get_key_val_from_pkg(file)
-                    osm.get_api().nsd.delete(desc['name'])
-                except: 
-                    pass
-
-            # delete all vnfd packages
-            for file in vnfd_file_list:
-                try:
-                    desc = osm.get_api().package.get_key_val_from_pkg(file)
-                    osm.get_api().vnfd.delete(desc['name'])
-                except: 
-                    pass
-
-        request.addfinalizer(teardown)
-
-    def vnf_upload_packages(self, osm, vnfd_file_list, nsd_file_list ):
-        vnfd_descriptors=[]
-        for file in vnfd_file_list:
-            assert not osm.get_api().package.upload(file)
-            assert not osm.get_api().package.wait_for_upload(file)
-            desc = osm.get_api().package.get_key_val_from_pkg(file)
-            assert desc
-            vnfd_descriptors.append(desc)
-
-        nsd_descriptors=[]
-        for file in nsd_file_list:
-            assert not osm.get_api().package.upload(file)
-            assert not osm.get_api().package.wait_for_upload(file)
-            desc = osm.get_api().package.get_key_val_from_pkg(file)
-            assert desc
-            nsd_descriptors.append(desc)
-        # TODO/HACK: need to figure out why this is necessary. 
-        # vnfd/nsd is there (seen on ping_pong), but the ns fails that nsd is not there, 
-        # another way to check if the nsd is really ready via API?
-        time.sleep(5)
-
-    def vnf_test(self,osm, openstack, vim, vmware, vnfd_file_list, nsd_file_list, ns_scale=False):
-
-        # FIXME: need sleep after vim creation. Need a way to validate vim is ready to handle requests
-        time.sleep(20)
-
-        for file in nsd_file_list:
-            nsd_desc = osm.get_api().package.get_key_val_from_pkg(file)
-
-            ns_name=osm.ns_name_prefix+nsd_desc['name']
-
-            assert osm.get_api().ns.create(nsd_desc['name'],ns_name,vim.vim_name)
-           # commenting the init check as sometime it is going to running state very fast
-           
-           # if not utils.wait_for_value(lambda: osm.get_api().ns.get_field(ns_name,'operational-status'),result='init', wait_time=30):
-            #    nsr=osm.get_api().ns.get(ns_name)
-            #    pprint.pprint(nsr)
-            #    assert True, "operational-status != init"
-
-            # make sure ns is running
-            if not utils.wait_for_value(lambda: osm.get_api().ns.get_field(ns_name,'operational-status'),result='running',wait_time=240):
-                nsr=osm.get_api().ns.get(ns_name)
-                pprint.pprint(nsr)
-                assert True, "operational-status != running"
-
-            if ns_scale:
-                # for each descriptor, scale it
-                for scale in nsd_desc['scaling-group-descriptor']:
-                    # scale it.
-                    assert not osm.get_api().ns.scale(ns_name, scale['name'], 1)
-
-                    # ensure ns is scaling-out
-                    assert utils.wait_for_value(lambda: osm.get_api().ns.get_field(ns_name,'operational-status'),result='scaling-out',wait_time=120)
-
-                    # wait for ns to be in running-state
-                    assert utils.wait_for_value(lambda: osm.get_api().ns.get_field(ns_name,'operational-status'),result='running',wait_time=300)
-
-            time.sleep(10)
-
-            assert not osm.get_api().ns.delete(ns_name, wait=True)
-
-            #wait for the ns to delete
-            #try:
-            #    utils.wait_for_value( lambda: osm.get_api().ns.get(ns_name), result=False, wait_time=180)
-            #except:
-            #    print("Exception: Failed to get NAME after NS DELETE ... ")
-            
-            #TODO find the reason for 502 exception from osmclient/nbi            
-            try:
-                assert not osm.get_api().nsd.delete(nsd_desc['name'])
-            except:
-                print("Exception: NSD Delete exception ...due to 502 error")
-                time.sleep(10)
-                
-        for file in vnfd_file_list:
-            vnfd_desc = osm.get_api().package.get_key_val_from_pkg(file)
-            assert not osm.get_api().vnfd.delete(vnfd_desc['name'])
-
-    @pytest.mark.openstack
-    @pytest.mark.vnf
-    @pytest.mark.vmware
-    def test_vnf(self,osm, vim, openstack, vmware, cleanup_test_vnf):
-        vnfd_file_list = osm.vnfd_descriptors_list
-        nsd_file_list = osm.nsd_descriptors_list
-
-        self.vnf_upload_packages(osm, vnfd_file_list, nsd_file_list )
-        self.vnf_test(osm,openstack, vim, vmware, vnfd_file_list, nsd_file_list)
-
-    @pytest.mark.openstack
-    @pytest.mark.ns_scale
-    @pytest.mark.vmware
-    def test_scale_vnf(self,osm, vim, openstack, vmware, cleanup_test_vnf):
-        vnfd_file_list = osm.vnfd_descriptors_list
-        nsd_file_list = osm.nsd_descriptors_list
-
-        self.vnf_upload_packages(osm, vnfd_file_list, nsd_file_list )
-        self.vnf_test(osm,openstack, vim, vmware, vnfd_file_list, nsd_file_list, ns_scale=True)
diff --git a/test/certs.py b/test/certs.py
deleted file mode 100644 (file)
index e33a536..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-#   Copyright 2016 RIFT.IO Inc
-#   Copyright 2016 Telefónica Investigación y Desarrollo S.A.U.
-#
-#   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.
-
-import os
-
-class BootstrapSslMissingException(Exception):
-    pass
-
-# True if the environment variable is unset, otherwise False
-USE_SSL = os.environ.get("RIFT_BOOT_WITHOUT_HTTPS", None) is None
-
-def get_bootstrap_cert_and_key():
-    '''
-    Lookup the bootstrap certificate and key and return their paths
-    '''
-
-    user_cert = os.path.join("/", "etc", "ssl", "current.cert")
-    user_key = os.path.join("/", "etc", "ssl", "current.key")
-
-    if os.path.isfile(user_cert) and os.path.isfile(user_key):
-        return USE_SSL, user_cert, user_key
-
-    rift_install = os.environ["RIFT_INSTALL"]
-    rift_cert = os.path.join(rift_install, "etc", "ssl", "current.cert")
-    rift_key = os.path.join(rift_install, "etc", "ssl", "current.key")
-
-    if os.path.isfile(rift_cert) and os.path.isfile(rift_key):
-        return USE_SSL, rift_cert, rift_key
-
-    raise BootstrapSslMissingException()
-
diff --git a/test/conftest.py b/test/conftest.py
deleted file mode 100644 (file)
index eb49b79..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-import pytest
-
-def pytest_addoption(parser):
-    parser.addoption('--so-host', action='store', default='127.0.0.1')
-    parser.addoption('--so-port', action='store', default='8008')
-    parser.addoption('--so-user', action='store', default='admin')
-    parser.addoption('--so-pass', action='store', default='admin')
-    parser.addoption('--vim-type', action='store')
-    parser.addoption('--vim-host', action='store')
-    parser.addoption('--vim-user', action='store')
-    parser.addoption('--vim-tenant', action='store')
-    parser.addoption('--vim-pass', action='store')
-    parser.addoption('--package-location', action='store')
-    return parser
-
-@pytest.fixture(scope='session')
-def so_host(request):
-    """Fixture that returns --so-host option value"""
-    return request.config.getoption("--so-host")
-
-@pytest.fixture(scope='session')
-def so_port(request):
-    """Fixture that returns --so-port option value"""
-    return request.config.getoption("--so-port")
-@pytest.fixture(scope='session')
-def so_user(request):
-    """Fixture that returns --so-user option value"""
-    return request.config.getoption("--so-user")
-
-@pytest.fixture(scope='session')
-def so_pass(request):
-    """Fixture that returns --so-pass option value"""
-    return request.config.getoption("--so-pass")
-@pytest.fixture(scope='session')
-def vim_type(request):
-    """Fixture that returns --vim-type option value"""
-    return request.config.getoption("--vim-type")
-    
-@pytest.fixture(scope='session')
-def vim_host(request):
-    """Fixture that returns --vim-host option value"""
-    return request.config.getoption("--vim-host")
-    
-@pytest.fixture(scope='session')
-def vim_user(request):
-    """Fixture that returns --vim-user option value"""
-    return request.config.getoption("--vim-user")
-
-@pytest.fixture(scope='session')
-def vim_pass(request):
-    """Fixture that returns --vim-pass option value"""
-    return request.config.getoption("--vim-pass")
-
-@pytest.fixture(scope='session')
-def vim_tenant(request):
-    """Fixture that returns --vim-tenant option value"""
-    return request.config.getoption("--vim-tenant")
-
-@pytest.fixture(scope='session')
-def package_location(request):
-    """Fixture that returns --package-location option value"""
-    return request.config.getoption("--package-location")
diff --git a/test/example/config.yaml b/test/example/config.yaml
deleted file mode 100644 (file)
index b6b6176..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-so_host:
-    type: 'string'
-    default: '127.0.0.1'
-    description: 'Host name or ip of the SO'
-so_port:
-    type: int
-    default: 80
-    description: 'Port'
diff --git a/test/example/conftest.py b/test/example/conftest.py
deleted file mode 100644 (file)
index 3798a15..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-import yaml
-
-
-config = None
-with open('config.yaml') as f:
-    config = yaml.load(f)
-
-
-def pytest_addoption(parser):
-    for param in config:
-        parser.addoption("--{}".format(param),
-                         action="store",
-                         type="{}".format(config[param]["type"]),
-                         default="{}".format(config[param]["default"]),
-                         help="{}".format(config[param]["description"])
-                         )
-
-
-def pytest_generate_tests(metafunc):
-    for param in config:
-        if param in metafunc.fixturenames:
-            metafunc.parametrize(param, [metafunc.config.getoption(param)])
diff --git a/test/example/test_strings.py b/test/example/test_strings.py
deleted file mode 100644 (file)
index c156dc9..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-def test_host(so_host):
-    assert so_host == '127.0.0.1'
-
-
-def test_port(so_host, so_port):
-    assert so_host == '127.0.0.1'
-    assert so_port == 80
diff --git a/test/test_cirros.py b/test/test_cirros.py
deleted file mode 100644 (file)
index 1451d11..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-#!/usr/bin/env python3
-#   Copyright 2016 RIFT.IO Inc
-#   Copyright 2016 Telefónica Investigación y Desarrollo S.A.U.
-#
-#   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.
-
-import json
-import logging
-import pytest
-import requests
-import subprocess
-import time
-import yaml
-import certs
-
-logger = logging.getLogger(__name__)
-
-
-def chomp_json(string):
-    return ''.join([line.strip() for line in string.splitlines()])
-
-
-@pytest.fixture(scope='session')
-def session(request, so_user, so_pass):
-    client_session = requests.session()
-    client_session.auth = (so_user, so_pass)
-    client_session.headers = {
-        "Accept": "application/vnd.yang.data+json",
-        "Content-Type": "application/vnd.yang.data+json",
-    }
-    client_session.verify = False
-    _, cert, key = certs.get_bootstrap_cert_and_key()
-    client_session.cert = (cert, key)
-    return client_session
-
-
-@pytest.fixture(scope='session')
-def fetch_packages():
-    """ Fetch NSD/VNFD packages"""
-    wget_command = 'wget --no-parent -r https://osm-download.etsi.org/ftp/osm-1.0-one/vnf-packages'
-    subprocess.check_call(wget_command, shell=True)
-
-
-@pytest.fixture(scope='session')
-def rest_endpoint(so_host, so_port):
-    return 'https://{host}:{port}'.format(host=so_host, port=so_port)
-
-
-def test_so_started(session, rest_endpoint):
-    ''' Get contents of /vcs/info/components and verify all components have started successfully
-    '''
-    uri = "{endpoint}/api/operational/vcs/info/components".format(endpoint=rest_endpoint)
-    response = session.request("GET", uri)
-    vcs_info = json.loads(response.text)
-    for component in vcs_info['rw-base:components']['component_info']:
-        assert component['state'] == 'RUNNING'
-
-
-@pytest.fixture(scope='session')
-def cirros_vnfd_pkg(package_location):
-    '''cirros vnfd package location'''
-    return "%s/cirros_vnf.tar.gz" % (package_location)
-
-
-@pytest.fixture(scope='session')
-def cirros_nsd_pkg(package_location):
-    '''cirros  nsd package location'''
-    return "%s/cirros_2vnf_ns.tar.gz" % (package_location)
-
-
-def test_onboard_cirros_descriptors(session, so_host, cirros_vnfd_pkg,
-                                    cirros_nsd_pkg, rest_endpoint):
-    ''' Onboard Cirros NSD/VNFD descriptors
-    '''
-    onboard_command = 'onboard_pkg -s {host} -u {cirros_vnfd_pkg}'.format(
-        host=so_host,
-        cirros_vnfd_pkg=cirros_vnfd_pkg,
-    )
-    subprocess.check_call(onboard_command, shell=True)
-
-    onboard_command = 'onboard_pkg -s {host} -u {cirros_nsd_pkg}'.format(
-        host=so_host,
-        cirros_nsd_pkg=cirros_nsd_pkg,
-    )
-    subprocess.check_call(onboard_command, shell=True)
-
-
-def test_instantiate_cirros(session, so_host, data_center_id, rest_endpoint):
-    ''' Instantiate an instance of cirros from descriptors
-    '''
-    uri = "{endpoint}/api/operational/nsd-catalog".format(endpoint=rest_endpoint)
-    response = session.request("GET", uri)
-    catalog = json.loads(response.text)
-    cirros_nsd = None
-    for nsd in catalog['nsd:nsd-catalog']['nsd']:
-        if nsd['name'] == 'cirros_2vnf_nsd':
-            cirros_nsd = nsd
-            break
-    assert cirros_nsd is not None
-
-    instantiate_command = 'onboard_pkg -s {host} -i instance-0 -d {nsd_id} -D {data_center_id}'.format(
-        host=so_host,
-        nsd_id=cirros_nsd['id'],
-        data_center_id=data_center_id
-    )
-    subprocess.check_call(instantiate_command, shell=True)
-
-    def wait_for_cirros_ns(instance_name, timeout=600, retry_interval=5):
-        start_time = time.time()
-        while True:
-            uri = "{endpoint}/api/operational/ns-instance-opdata".format(endpoint=rest_endpoint)
-            response = session.request("GET", uri)
-            print(response, response.text)
-            opdata = json.loads(response.text)
-
-            nsr = None
-            for instance in opdata['nsr:ns-instance-opdata']['nsr']:
-                if instance['name-ref'] == instance_name:
-                    nsr = instance
-
-            assert nsr is not None, response.text
-            assert nsr['operational-status'] not in ['failed']
-            assert nsr['config-status'] not in ['failed']
-
-            if nsr['operational-status'] in ['running'] and nsr['config-status'] in ['configured']:
-                break
-
-            time_elapsed = time.time() - start_time
-            time_remaining = timeout - time_elapsed
-            assert time_remaining > 0
-            time.sleep(min(time_remaining, retry_interval))
-
-    wait_for_cirros_ns('instance-0')
-
-
-@pytest.fixture(scope='session')
-def test_add_datacenter(name, url, vim_type, tenant_id=None, tenant_name=None, user=None, password=None,
-                        description=None, config=None):
-    ''' Add a datacenter to RO
-    '''
-    onboard_command = \
-        'lxc exec RO --env OPENMANO_TENANT=osm -- openmano datacenter-create "{name}" "{url}" --type={vimtype}'.format(
-            name=name, url=url, vimtype=vim_type)
-    if description:
-        onboard_command += ' --description="{}"'.format(description)
-    out = subprocess.check_output(onboard_command, shell=True)
-    assert out
-    datacenter_id = out.split()[0]
-
-    onboard_command = 'lxc exec RO --env OPENMANO_TENANT=osm -- openmano datacenter-attach {id}'.format(
-        id=datacenter_id)
-    if tenant_id:
-        onboard_command += " --vim_tenant_id=" + tenant_id
-    if tenant_name:
-        onboard_command += " --vim_tenant_name=" + tenant_name
-    if user:
-        onboard_command += " --user=" + user
-    if password:
-        onboard_command += " --password=" + password
-    if config:
-        onboard_command += " --config=" + yaml.safe_dump(config)
-
-    subprocess.check_call(onboard_command, shell=True)
-    return datacenter_id
-
-@pytest.fixture(scope='session')
-def get_datacenter_id(name):
-    ''' Get the id of a datacenter
-    '''
-    onboard_command = \
-        'lxc exec RO --env OPENMANO_TENANT=osm -- openmano datacenter-list {name}'.format(name=name)
-    out = subprocess.check_output(onboard_command, shell=True)
-    assert(out)
-    datacenter_id = out.split()[0]
-    return datacenter_id
diff --git a/test/test_pingpong_osm.py b/test/test_pingpong_osm.py
deleted file mode 100644 (file)
index ca4ba09..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-#   Copyright 2016 RIFT.IO Inc
-#   Copyright 2016 Telefónica Investigación y Desarrollo S.A.U.
-#
-#   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.
-
-#!/usr/bin/env python3
-
-import json
-import logging
-import os
-import pytest
-import requests
-import requests_toolbelt
-import subprocess
-import time
-
-import certs
-
-logger = logging.getLogger(__name__)
-
-def chomp_json(string):
-    return ''.join([line.strip() for line in string.splitlines()])
-
-@pytest.fixture(scope='session')
-def session(request, so_user, so_pass):
-    client_session = requests.session()
-    client_session.auth = (so_user, so_pass)
-    client_session.headers = {
-        "Accept" : "application/vnd.yang.data+json",
-        "Content-Type" : "application/vnd.yang.data+json",
-    }
-    client_session.verify = False
-    _, cert, key = certs.get_bootstrap_cert_and_key()
-    client_session.cert = (cert, key)
-    return client_session
-
-@pytest.fixture(scope='session')
-def rest_endpoint(so_host, so_port):
-    return 'https://{host}:{port}'.format(host=so_host, port=so_port)
-
-def test_so_started(session, rest_endpoint):
-    ''' Get contents of /vcs/info/components and verify all components have started successfully
-    '''
-    uri = "{endpoint}/api/operational/vcs/info/components".format(endpoint=rest_endpoint)
-    response = session.request("GET", uri)
-    vcs_info = json.loads(response.text)
-    for component in vcs_info['rw-base:components']['component_info']:
-        assert component['state'] == 'RUNNING'
-
-def test_configure_vim_account(session, rest_endpoint, vim_type, vim_host, vim_user, vim_tenant, vim_pass):
-    ''' Configure an openstack vim account
-    '''
-    uri = "{endpoint}/api/config/cloud/account".format(
-        endpoint=rest_endpoint,
-    )
-    account = '''
-    {
-        "account":{
-            "name":"vim-0",
-            "account-type":"openstack",
-            "openstack":{
-                "admin":"True",
-                "key": "%s",
-                "secret": "%s",
-                "auth_url": "http://%s:5000/v3/",
-                "tenant": "%s",
-                "mgmt-network": "private"
-            }
-        }
-    }
-    ''' % (vim_user, vim_pass, vim_host, vim_tenant)
-    response = session.request("POST", uri, data=chomp_json(account))
-
-    uri = "{endpoint}/api/operational/cloud/account".format(endpoint=rest_endpoint)
-    response = session.request("GET", uri)
-    assert 'error' not in response.text
-    vim_accounts = json.loads(response.text)
-    assert vim_accounts
-
-    found_account = False
-    for account in vim_accounts['rw-cloud:account']:
-        if account['name'] == 'vim-0':
-            found_account = True
-            break
-    assert found_account == True
-
-
-@pytest.fixture(scope='session')
-def ping_pkg(package_location):
-    '''ping vnfd package location'''
-    return "%s/ping_vnfd.tar.gz" % (package_location)
-
-
-@pytest.fixture(scope='session')
-def pong_pkg(package_location):
-    '''pong vnfd package location'''
-    return "%s/pong_vnfd.tar.gz" % (package_location)
-
-
-@pytest.fixture(scope='session')
-def ping_pong_pkg(package_location):
-    '''ping pong nsd package location'''
-    return "%s/ping_pong_nsd.tar.gz" % (package_location)
-
-
-def test_onboard_pingpong_descriptors(session, so_host, ping_pkg, pong_pkg, ping_pong_pkg, rest_endpoint):
-    ''' Onboard ping_pong descriptors
-    '''
-    onboard_command = 'onboard_pkg -s {host} -u {ping_pkg}'.format(
-        host=so_host,
-        ping_pkg=ping_pkg,
-    )
-    subprocess.check_call(onboard_command, shell=True)
-
-    onboard_command = 'onboard_pkg -s {host} -u {pong_pkg}'.format(
-        host=so_host,
-        pong_pkg=pong_pkg,
-    )
-    subprocess.check_call(onboard_command, shell=True)
-
-    onboard_command = 'onboard_pkg -s {host} -u {ping_pong_pkg}'.format(
-        host=so_host,
-        ping_pong_pkg=ping_pong_pkg,
-    )
-    subprocess.check_call(onboard_command, shell=True)
-
-
-def test_instantiate_ping_pong(session, so_host, rest_endpoint):
-    ''' Instantiate an instance of ping pong from descriptors
-    '''
-    uri = "{endpoint}/api/operational/nsd-catalog".format(endpoint=rest_endpoint)
-    response = session.request("GET", uri)
-    catalog = json.loads(response.text)
-    ping_pong_nsd = None
-    for nsd in catalog['nsd:nsd-catalog']['nsd']:
-        if nsd['name'] == 'ping_pong_nsd':
-            ping_pong_nsd = nsd
-            break
-    assert ping_pong_nsd is not None
-
-    instantiate_command = 'onboard_pkg -s {host} -i instance-0 -d {nsd_id} -c vim-0'.format(
-        host=so_host,
-        nsd_id=ping_pong_nsd['id']
-    )
-    subprocess.check_call(instantiate_command, shell=True)
-
-    def wait_for_ping_pong(instance_name, timeout=600, retry_interval=5):
-        start_time = time.time()
-        while True:
-            uri = "{endpoint}/api/operational/ns-instance-opdata".format(endpoint=rest_endpoint)
-            response = session.request("GET", uri)
-            print(response, response.text)
-            opdata = json.loads(response.text)
-
-            nsr = None
-            for instance in opdata['nsr:ns-instance-opdata']['nsr']:
-                if instance['name-ref'] == instance_name:
-                    nsr = instance
-
-            assert nsr is not None, response.text
-            assert nsr['operational-status'] not in ['failed']
-            assert nsr['config-status'] not in ['failed']
-
-            if nsr['operational-status'] in ['running'] and nsr['config-status'] in ['configured']:
-                break
-
-            time_elapsed = time.time() - start_time
-            time_remaining = timeout - time_elapsed
-            assert time_remaining > 0
-            time.sleep(min(time_remaining, retry_interval))
-
-    wait_for_ping_pong('instance-0')
diff --git a/tools/OVF_converter/Usage.txt b/tools/OVF_converter/Usage.txt
deleted file mode 100644 (file)
index 67671b1..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-##
-# Copyright 2016-2019 VMware Inc.
-# This file is part of ETSI OSM
-# All Rights Reserved.
-#
-# 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact:  osslegalrouting@vmware.com
-##
-
-The following two tools are provided to help simplify VMware based image
-management:
-
-o  ovf_converter - converts libvirt .qcow2 files to VMware .vmdk format.
-o  ovf_uploader  - uploads .ovf and .vmdk files to vCD, similar to
-                      openstack image upload command.
-
-OVF Converter Usage
-===================
-
-This utility can be used for both VMware Integrated Openstack (VIO) or
-vCloud Director (vCD).  It converts libvirt images, such as files that end
-in .qcow2 or .img to VMware .vmdk format.  Both an .ovf and .vmdk file are
-created and can be used as needed.
-
-OVF Uploader Usage
-==================
-
-This utility is only used for vCD, as there is no equivalent CLI that provides
-the ability to upload images into vCD.  It takes the output OVF from the
-converter and uploads both it and the VMDK file to the vCD catalog.
-
-Examples:
-=========
-
-o  Upload a CentOS .qcow2 file to VIO
-
-   $ ovf_converter CentOS-7-x86_64-GenericCloud.qcow2
-   $ openstack image create --public \
-     --file CentOS-7-x86_64-GenericCloud.vmdk \
-     --disk-format vmdk CentOS-7
-
-o  Upload a CentOS .qcow2 file to vCD
-
-   $ ovf_converter CentOS-7-x86_64-GenericCloud.qcow2
-   $ ovf_uploader -u orgadmin -p password -o osm -l https://vcd \
-     CentOS-7-x86_64-GenericCloud.ovf
-
-Both commands suport -h to display help options.
-
diff --git a/tools/OVF_converter/config/disk_controller.yaml b/tools/OVF_converter/config/disk_controller.yaml
deleted file mode 100644 (file)
index b090232..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-##\r
-# Copyright 2016-2017 VMware Inc.\r
-# This file is part of ETSI OSM\r
-# All Rights Reserved.\r
-#\r
-# Licensed under the Apache License, Version 2.0 (the "License"); you may\r
-# not use this file except in compliance with the License. You may obtain\r
-# a copy of the License at\r
-#\r
-#         http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\r
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\r
-# License for the specific language governing permissions and limitations\r
-# under the License.\r
-#\r
-# For those usages not covered by the Apache License, Version 2.0 please\r
-# contact:  osslegalrouting@vmware.com\r
-##\r
\r
----\r
-SATA Controller:\r
-  ResourceType: 20\r
-  ResourceSubTypes: ["vmware.sata.ahci"]\r
-IDE Controller:\r
-  ResourceType: 5\r
-SCSI Controller:\r
-  ResourceType: 6\r
-  ResourceSubTypes: ["VirtualSCSI", "lsilogic", "buslogic", "lsilogicsas"]
\ No newline at end of file
diff --git a/tools/OVF_converter/config/os_type.yaml b/tools/OVF_converter/config/os_type.yaml
deleted file mode 100644 (file)
index 385cd7b..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-##\r
-# Copyright 2016-2017 VMware Inc.\r
-# This file is part of ETSI OSM\r
-# All Rights Reserved.\r
-#\r
-# Licensed under the Apache License, Version 2.0 (the "License"); you may\r
-# not use this file except in compliance with the License. You may obtain\r
-# a copy of the License at\r
-#\r
-#         http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\r
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\r
-# License for the specific language governing permissions and limitations\r
-# under the License.\r
-#\r
-# For those usages not covered by the Apache License, Version 2.0 please\r
-# contact:  osslegalrouting@vmware.com\r
-##\r
-\r
----\r
-'0': Unknown\r
-'1': Other (32-bit)\r
-'2': MACOS\r
-'3': ATTUNIX\r
-'4': DGUX\r
-'5': DECNT\r
-'6': Tru64 UNIX\r
-'7': OpenVMS\r
-'8': HPUX\r
-'9': AIX\r
-'10': MVS\r
-'11': OS400\r
-'12': OS/2\r
-'13': JavaVM\r
-'14': MSDOS\r
-'15': WIN3x\r
-'16': WIN95\r
-'17': WIN98\r
-'18': WINNT\r
-'19': WINCE\r
-'20': NCR3000\r
-'21': NetWare\r
-'22': OSF\r
-'23': DC/OS\r
-'24': Reliant UNIX\r
-'25': SCO UnixWare\r
-'26': SCO OpenServer\r
-'27': Sequent\r
-'28': IRIX\r
-'29': Solaris\r
-'30': SunOS\r
-'31': U6000\r
-'32': ASERIES\r
-'33': HP NonStop OS\r
-'34': HP NonStop OSS\r
-'35': BS2000\r
-'36': LINUX\r
-'37': Lynx\r
-'38': XENIX\r
-'39': VM\r
-'40': Interactive UNIX\r
-'41': BSDUNIX\r
-'42': FreeBSD\r
-'43': NetBSD\r
-'44': GNU Hurd\r
-'45': OS9\r
-'46': MACH Kernel\r
-'47': Inferno\r
-'48': QNX\r
-'49': EPOC\r
-'50': IxWorks\r
-'51': VxWorks\r
-'52': MiNT\r
-'53': BeOS\r
-'54': HP MPE\r
-'55': NextStep\r
-'56': PalmPilot\r
-'57': Rhapsody\r
-'58': Windows 2000\r
-'59': Dedicated\r
-'60': OS/390\r
-'61': VSE\r
-'62': TPF\r
-'63': Windows (R) Me\r
-'64': Caldera Open UNIX\r
-'65': OpenBSD\r
-'66': Not Applicable\r
-'67': Windows XP\r
-'68': z/OS\r
-'69': Microsoft Windows Server 2003\r
-'70': Microsoft Windows Server 2003 64-Bit\r
-'71': Windows XP 64-Bit\r
-'72': Windows XP Embedded\r
-'73': Windows Vista\r
-'74': Windows Vista 64-Bit\r
-'75': Windows Embedded for Point of Service\r
-'76': Microsoft Windows Server 2008\r
-'77': Microsoft Windows Server 2008 64-Bit\r
-'78': FreeBSD 64-Bit\r
-'79': RedHat Enterprise Linux\r
-'80': RedHat Enterprise Linux 64-Bit\r
-'81': Solaris 64-Bit\r
-'82': SUSE\r
-'83': SUSE 64-Bit\r
-'84': SLES\r
-'85': SLES 64-Bit\r
-'86': Novell OES\r
-'87': Novell Linux Desktop\r
-'88': Sun Java Desktop System\r
-'89': Mandriva\r
-'90': Mandriva 64-Bit\r
-'91': TurboLinux\r
-'92': TurboLinux 64-Bit\r
-'93': Ubuntu\r
-'94': Ubuntu 64-Bit\r
-'95': Debian\r
-'96': Debian 64-Bit\r
-'97': Linux 2.4.x\r
-'98': Linux 2.4.x 64-Bit\r
-'99': Linux 2.6.x\r
-'100': Linux 2.6.x 64-Bit\r
-'101': Linux 64-Bit\r
-'102': Other 64-Bit\r
-'103': Microsoft Windows Server 2008 R2\r
-'104': VMware ESXi\r
-'105': Microsoft Windows 7\r
-'106': CentOS 32-bit\r
-'107': CentOS 64-bit\r
-'108': Oracle Linux 32-bit\r
-'109': Oracle Linux 64-bit\r
-'110': eComStation 32-bitx\r
-'111': Microsoft Windows Server 2011\r
-'113': Microsoft Windows Server 2012\r
-'114': Microsoft Windows 8\r
-'115': Microsoft Windows 8 64-bit\r
-'116': Microsoft Windows Server 2012 R2\r
diff --git a/tools/OVF_converter/converter.py b/tools/OVF_converter/converter.py
deleted file mode 100644 (file)
index 8c68947..0000000
+++ /dev/null
@@ -1,587 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# #
-# Copyright 2016-2017 VMware Inc.
-# This file is part of ETSI OSM
-# All Rights Reserved.
-#
-# 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact:  osslegalrouting@vmware.com
-# #
-
-import logging
-import os
-import subprocess
-import yaml
-from lxml import etree as ET
-
-# file paths
-MODULE_DIR = os.path.dirname(__file__)
-OVF_TEMPLATE_PATH = os.path.join(MODULE_DIR,
-                                 "ovf_template/template.xml")
-IDE_CDROM_XML_PATH = os.path.join(MODULE_DIR,
-                                  "ovf_template/ide_cdrom.xml")
-OS_INFO_FILE_PATH = os.path.join(MODULE_DIR,
-                                 "config/os_type.yaml")
-DISK_CONTROLLER_INFO_FILE_PATH = os.path.join(MODULE_DIR,
-                                              "config/disk_controller.yaml")
-
-# Set logger
-LOG_FILE = os.path.join(MODULE_DIR, "logs/ovf_converter.log")
-os.makedirs(os.path.dirname(LOG_FILE), exist_ok=True)
-logger = logging.getLogger(__name__)
-hdlr = logging.FileHandler(LOG_FILE)
-formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
-hdlr.setFormatter(formatter)
-logger.addHandler(hdlr)
-logger.setLevel(10)
-
-__version__ = "1.2"
-__description__ = "OVF Hardware Version 14 compatible"
-
-
-def get_version(*args, **kwargs):
-    """ get version of this application"""
-    version = str(__version__) + " - " + str(__description__)
-    return version
-
-
-# converter class
-class OVFConverter(object):
-    """ Class to convert input image into OVF format """
-
-    def __init__(self, source_img_path, output_location=None, output_ovf_name=None,
-                 memory=None, cpu=None, disk=None, os_type=None,
-                 disk_controller=None, cdrom=None, hwversion=14):
-        """
-            Constructor to initialize object of class OVFConverter
-            Args:
-            source_img_path - absolute path to source image which will get convert into ovf
-            output_location - location where created OVF will be kept. This location
-                              should have write access. If not given file will get
-                              created at source location  (optional)
-            output_ovf_name - name of output ovf.If not given source image name will
-                              be used (optional)
-            memory -          required memory for VM in MB (optional)
-            cpu -             required number of virtual cpus for VM (optional)
-            disk -            required size of disk for VM in GB (optional)
-            os_type-          required operating system type as specified in user document
-                              (default os type other 32 bit) (optional)
-            disk_controller - required disk controller type
-                              (default controller SCSI with lsilogicsas)
-                              (SATA, IDE, Paravirtual, Buslogic, Lsilogic, Lsilogicsas) (optional)
-            hwversion -       VMware ESXi hardware family version (optional)
-
-            Returns:
-                Nothing.
-        """
-        self.logger = logger
-        self.ovf_template_path = OVF_TEMPLATE_PATH
-
-        self.source_img_path = source_img_path
-        self.source_img_filename, file_extension = os.path.splitext(os.path.basename(self.source_img_path))
-        self.source_img_location = os.path.dirname(self.source_img_path)
-        self.source_format = file_extension[1:]
-
-        self.output_format = "ovf"
-        self.output_ovf_name = output_ovf_name.split('.')[0] if output_ovf_name else self.source_img_filename
-        self.output_location = output_location if output_location else "."
-        self.output_ovf_name_ext = self.output_ovf_name + "." + self.output_format
-        self.output_path = os.path.join(self.output_location, self.output_ovf_name_ext)
-
-        self.output_diskimage_format = "vmdk"
-        self.output_diskimage_name = self.source_img_filename + "." + self.output_diskimage_format
-        self.output_diskimage_path = os.path.join(self.output_location, self.output_diskimage_name)
-
-        self.logger.info("Input parameters to Converter: \n ovf_template_path = {}, \n source_img_path = {}, \n"
-                         "source_img_location ={} , \n source_format = {}, \n source_img_filename = {}".format(
-                             self.ovf_template_path,
-                             self.source_img_path, self.source_img_location,
-                             self.source_format, self.source_img_filename))
-
-        self.logger.info("Output parameters to Converter: \n output_format = {}, \n output_ovf_name = {}, \n"
-                         "output_location ={} , \n output_path = {}, \n output_diskimage_name = {} , \n"
-                         " output_diskimage_path = {} ".format(self.output_format, self.output_ovf_name,
-                                                               self.output_location, self.output_path,
-                                                               self.output_diskimage_name, self.output_diskimage_path))
-
-        self.disk_capacity = 1
-        self.disk_populated_size = 0
-
-        self.vm_name = self.output_ovf_name
-        self.memory = str(memory) if memory is not None else None
-        self.cpu = str(cpu) if cpu is not None else None
-        self.os_type = str(os_type).strip() if os_type else None
-        self.cdrom = cdrom
-        self.hwversion = hwversion
-
-        if self.os_type:
-            self.osID, self.osType = self.__get_osType()
-            if self.osID is None or self.osType is None:
-                error_msg = "ERROR: Invalid input can not find OS type {} ".format(self.os_type)
-                self.__raise_exception(error_msg)
-
-        self.disk_controller = str(disk_controller).strip() if disk_controller else None
-
-        if self.disk_controller:
-            self.disk_controller_info = self.__get_diskcontroller()
-
-            if not self.disk_controller_info:
-                error_msg = "ERROR: Invalid input can not find Disk Controller {} ".format(self.disk_controller)
-                self.__raise_exception(error_msg)
-
-        if disk is not None:
-            # convert disk size from GB to bytes
-            self.disk_size = int(disk) * 1024 * 1024 * 1024
-        else:
-            self.disk_size = None
-
-        self.logger.info("Other input parameters to Converter: \n vm_name = {}, \n memory = {}, \n"
-                         "disk_size ={} \n os type = {} \n disk controller = {}".format(
-                             self.vm_name, self.memory, self.disk_size, self.os_type, self.disk_controller))
-
-        # check access for read input location and write output location return none if no access
-        if not os.access(self.source_img_path, os.F_OK):
-            error_msg = "ERROR: Source image file {} not present".format(self.source_img_path)
-            self.__raise_exception(error_msg, exception_type="IO")
-
-        elif not os.access(self.source_img_path, os.R_OK):
-            error_msg = "ERROR: Cannot read source image file {}".format(self.source_img_path)
-            self.__raise_exception(error_msg, exception_type="IO")
-
-        if not os.access(self.output_location, os.W_OK):
-            error_msg = "ERROR: No write access to location {} to write output OVF ".format(self.output_location)
-            self.__raise_exception(error_msg, exception_type="IO")
-
-    def __get_image_info(self):
-        """
-            Private method to get information about source imager.
-            Args  : None
-            Return : True on success else False
-        """
-        try:
-            print("Getting source image information")
-            command = "qemu-img info \t " + self.source_img_path
-            output, error, returncode = self.__execute_command(command)
-
-            if error or returncode:
-                self.logger.error("ERROR: Error occurred while getting information about source image : {} \n "
-                                  "return code : {} ".format(error, returncode))
-                return False
-
-            elif output:
-                self.logger.info("Get Image Info Output : {} \n ".format(output))
-                split_output = output.decode().split("\n")
-                for line in split_output:
-                    line = line.strip()
-                    if "virtual size" in line:
-                        virtual_size_info = line.split(":")[1].split()
-                        if len(virtual_size_info) == 3 and virtual_size_info[2].strip(")") == "bytes":
-                            self.disk_capacity = int(virtual_size_info[1].strip("("))
-                        else:
-                            self.disk_capacity = self.__convert_size(virtual_size_info[0])
-
-                    elif "disk size" in line:
-                        size = line.split(":")[1].split()[0]
-                        self.disk_populated_size = self.__convert_size(size)
-                    elif "file format" in line:
-                        self.source_format = line.split(":")[1]
-
-                self.logger.info("Updated source image virtual disk capacity : {} ,"
-                                 "Updated source image populated size: {}".format(self.disk_capacity,
-                                                                                  self.disk_populated_size))
-                return True
-        except Exception as exp:
-            error_msg = "ERROR: Error occurred while getting information about source image : {}".format(exp)
-            self.logger.error(error_msg)
-            print(error_msg)
-            return False
-
-    def __convert_image(self):
-        """
-            Private method to convert source disk image into .vmdk disk image.
-            Args  : None
-            Return : True on success else False
-        """
-
-        print("Converting source disk image to .vmdk ")
-
-        command = "qemu-img convert -p -f " + self.source_format + " -O " + self.output_diskimage_format + \
-            " -o subformat=streamOptimized " + self.source_img_path + " " + self.output_diskimage_path
-
-        _, error, returncode = self.__execute_command(command, show_output=True)
-
-        if error or returncode:
-            error_msg = "ERROR: Error occurred while converting source disk image into vmdk: {}\n" + \
-                "return code : {} ".format(error, returncode)
-            self.logger.error(error_msg)
-            print(error_msg)
-            return False
-        else:
-            if os.path.isfile(self.output_diskimage_path):
-                self.logger.info("Successfully converted source image {} into {} \n "
-                                 "return code : {} ".format(self.source_img_path,
-                                                            self.output_diskimage_path,
-                                                            returncode))
-                result = self.__make_image_bootable()
-                if result:
-                    self.logger.info("Made {} bootable".format(self.output_diskimage_path))
-                    print("Output VMDK is at: {}".format(self.output_diskimage_path))
-                    return True
-                else:
-                    self.logger.error("Cannot make {} bootable".format(self.output_diskimage_path))
-                    print("ERROR: Fail to convert source image into .vmdk")
-                    return False
-            else:
-                self.logger.error("Converted vmdk disk file {} is not present \n ".format(
-                    self.output_diskimage_path))
-                print("Fail to convert source image into .vmdk")
-                return False
-
-    def __make_image_bootable(self):
-        """
-            Private method to make source disk image bootable.
-            Args  : None
-            Return : True on success else False
-        """
-        command = "printf '\x03' | dd conv=notrunc of=" + self.output_diskimage_path + "\t bs=1 seek=$((0x4))"
-        output, error, returncode = self.__execute_command(command)
-
-        if error and returncode:
-            error_msg = "ERROR:Error occurred while making source disk image bootable : {} \n "\
-                "return code : {} ".format(error, returncode)
-            self.logger.error(error_msg)
-            print(error_msg)
-            return False
-        else:
-            self.logger.info("Make Image Bootable Output : {} ".format(output))
-            return True
-
-    def __edit_ovf_template(self):
-        """
-            Private method to create new OVF file by editing OVF template
-            Args  : None
-            Return : True on success else False
-        """
-        try:
-            print("Creating OVF")
-            # Read OVF template file
-            OVF_tree = ET.parse(self.ovf_template_path)
-            root = OVF_tree.getroot()
-
-            # Collect namespaces
-            nsmap = {k: v for k, v in root.nsmap.items() if k}
-            nsmap["xmlns"] = "http://schemas.dmtf.org/ovf/envelope/1"
-
-            # Edit OVF template
-            references = root.find('xmlns:References', nsmap)
-            if references is not None:
-                file_tag = references.find('xmlns:File', nsmap)
-                if file_tag is not None:
-                    file_tag.attrib['{' + nsmap['ovf'] + '}href'] = self.output_diskimage_name
-
-            disksection = root.find('xmlns:DiskSection', nsmap)
-            if disksection is not None:
-                diak_tag = disksection.find('xmlns:Disk', nsmap)
-                if diak_tag is not None:
-                    if self.disk_size and self.disk_size > self.disk_capacity:
-                        self.disk_capacity = self.disk_size
-
-                    diak_tag.attrib['{' + nsmap['ovf'] + '}capacity'] = str(self.disk_capacity)
-                    diak_tag.attrib['{' + nsmap['ovf'] + '}populatedSize'] = str(self.disk_populated_size)
-
-            virtuasystem = root.find('xmlns:VirtualSystem', nsmap)
-            if virtuasystem is not None:
-                name_tag = virtuasystem.find('xmlns:Name', nsmap)
-                if name_tag is not None:
-                    name_tag.text = self.vm_name
-
-                if self.os_type is not None:
-                    operatingSystemSection = virtuasystem.find('xmlns:OperatingSystemSection', nsmap)
-                    if self.osID and self.osType:
-                        operatingSystemSection.attrib['{' + nsmap['ovf'] + '}id'] = self.osID
-                        os_discription_tag = operatingSystemSection.find('xmlns:Description', nsmap)
-                        os_discription_tag.text = self.osType
-
-                virtualHardwareSection = virtuasystem.find('xmlns:VirtualHardwareSection', nsmap)
-                system = virtualHardwareSection.find('xmlns:System', nsmap)
-                virtualSystemIdentifier = system.find('vssd:VirtualSystemIdentifier', nsmap)
-                if virtualSystemIdentifier is not None:
-                    virtualSystemIdentifier.text = self.vm_name
-                VirtualSystemType = system.find('vssd:VirtualSystemType', nsmap)
-                if VirtualSystemType is not None:
-                    VirtualSystemType.text = "vmx-{}".format(self.hwversion)
-
-                if self.memory is not None or self.cpu is not None or self.disk_controller is not None:
-                    for item in virtualHardwareSection.iterfind('xmlns:Item', nsmap):
-                        description = item.find("rasd:Description", nsmap)
-
-                        if self.cpu is not None:
-                            if description is not None and description.text == "Number of Virtual CPUs":
-                                cpu_item = item.find("rasd:VirtualQuantity", nsmap)
-                                name_item = item.find("rasd:ElementName", nsmap)
-                                if cpu_item is not None:
-                                    cpu_item.text = self.cpu
-                                    name_item.text = self.cpu + " virtual CPU(s)"
-
-                        if self.memory is not None:
-                            if description is not None and description.text == "Memory Size":
-                                mem_item = item.find("rasd:VirtualQuantity", nsmap)
-                                name_item = item.find("rasd:ElementName", nsmap)
-                                if mem_item is not None:
-                                    mem_item.text = self.memory
-                                    name_item.text = self.memory + " MB of memory"
-
-                        if self.disk_controller is not None:
-                            if description is not None and description.text == "SCSI Controller":
-                                if self.disk_controller_info is not None:
-                                    name_item = item.find("rasd:ElementName", nsmap)
-                                    name_item.text = str(self.disk_controller_info["controllerName"]) + "0"
-
-                                    resource_type = item.find("rasd:ResourceType", nsmap)
-                                    resource_type.text = self.disk_controller_info["resourceType"]
-
-                                    description.text = self.disk_controller_info["controllerName"]
-                                    resource_subtype = item.find("rasd:ResourceSubType", nsmap)
-                                    if self.disk_controller_info["controllerName"] == "IDE Controller":
-                                        # Remove resource subtype item
-                                        resource_subtype.getparent().remove(resource_subtype)
-                                    if "resourceSubType" in self.disk_controller_info:
-                                        resource_subtype.text = self.disk_controller_info["resourceSubType"]
-                if self.cdrom:
-                    last_item = list(virtualHardwareSection.iterfind('xmlns:Item', nsmap))[-1]
-                    ide_cdrom_items_etree = ET.parse(IDE_CDROM_XML_PATH)
-                    ide_cdrom_items = list(ide_cdrom_items_etree.iterfind('Item'))
-                    for item in ide_cdrom_items:
-                        last_item.addnext(item)
-
-            # Save output OVF
-            OVF_tree.write(self.output_path, xml_declaration=True, encoding='utf-8',
-                           method="xml")
-
-            if os.path.isfile(self.output_path):
-                logger.info("Successfully written output OVF at {}".format(self.output_path))
-                print("Output OVF is at: {}".format(self.output_path))
-                return self.output_path
-            else:
-                error_msg = "ERROR: Error occurred while creating OVF file"
-                print(error_msg)
-                return False
-
-        except Exception as exp:
-            error_msg = "ERROR: Error occurred while editing OVF template : {}".format(exp)
-            self.logger.error(error_msg)
-            print(error_msg)
-            return False
-
-    def __convert_size(self, size):
-        """
-            Private method to convert disk size from GB,MB to bytes.
-            Args :
-                size  : disk size with prefix 'G' for GB and 'M' for MB
-            Return :  disk size in bytes
-        """
-        byte_size = 0
-        try:
-            if not size:
-                self.logger.error("No size {} to convert in bytes".format(size))
-            else:
-                size = str(size)
-                disk_size = float(size[:-1])
-                input_type = size[-1].strip()
-
-                self.logger.info("Disk size : {} , size type : {} ".format(disk_size, input_type))
-
-                if input_type == "G":
-                    byte_size = disk_size * 1024 * 1024 * 1024
-                elif input_type == "M":
-                    byte_size = disk_size * 1024 * 1024
-
-                self.logger.info("Disk size in bytes: {} ".format(byte_size))
-
-            return int(byte_size)
-
-        except Exception as exp:
-            error_msg = "ERROR:Error occurred while converting disk size in bytes : {}".format(exp)
-            self.logger.error(error_msg)
-            print(error_msg)
-            return False
-
-    def __get_osType(self):
-        """
-            Private method to get OS ID and Type
-            Args :
-                None
-            Return :
-                osID : OS ID
-                osType: OS Type
-        """
-        osID = None
-        osType = None
-        os_info = self.__read_yaml_file(OS_INFO_FILE_PATH)
-
-        try:
-            if self.os_type and os_info:
-                for os_id, os_type in os_info.items():
-                    if self.os_type.lower() == os_type.lower():
-                        osID = os_id
-                        osType = os_type
-                        break
-        except Exception as exp:
-            error_msg = "ERROR:Error occurred while getting OS details : {}".format(exp)
-            self.logger.error(error_msg)
-            print(error_msg)
-
-        return osID, osType
-
-    def __get_diskcontroller(self):
-        """
-            Private method to get details of Disk Controller
-            Args :
-                None
-            Return :
-                disk_controller : dict with details of Disk Controller
-        """
-        disk_controller = {}
-        scsi_subtype = None
-        if self.disk_controller.lower() in ["paravirtual", "lsilogic", "buslogic", "lsilogicsas"]:
-            scsi_subtype = self.disk_controller
-            self.disk_controller = "SCSI"
-
-        disk_controller_info = self.__read_yaml_file(DISK_CONTROLLER_INFO_FILE_PATH)
-        try:
-            if self.disk_controller and disk_controller_info:
-                for key, value in disk_controller_info.items():
-                    if self.disk_controller.lower() in key.lower():
-                        disk_controller['controllerName'] = key
-                        disk_controller['resourceType'] = str(value["ResourceType"])
-                        resourceSubTypes = value["ResourceSubTypes"] if "ResourceSubTypes" in value else None
-                        if key == "SATA Controller":
-                            disk_controller["resourceSubType"] = resourceSubTypes[0]
-                        elif key == "SCSI Controller":
-                            if scsi_subtype:
-                                if scsi_subtype.lower() == "paravirtual":
-                                    scsi_subtype = "VirtualSCSI"
-                                for subtype in resourceSubTypes:
-                                    if scsi_subtype.lower() == subtype.lower():
-                                        disk_controller["resourceSubType"] = subtype
-                                        break
-                                else:
-                                    error_msg = "ERROR: Invalid inputs can not "\
-                                        "find SCSI subtype {}".format(scsi_subtype)
-                                    self.__raise_exception(error_msg)
-
-        except KeyError as exp:
-            error_msg = "ERROR:Error occurred while getting Disk Controller details : {}".format(exp)
-            self.logger.error(error_msg)
-            print(error_msg)
-
-        return disk_controller
-
-    def __read_yaml_file(self, file_path):
-        """
-            Private method to execute command
-            Args :
-                command  : command to execute
-            Return :
-                Dict of yaml data
-        """
-        with open(file_path) as data_file:
-            data = yaml.load(data_file, Loader=yaml.SafeLoader)
-        return data
-
-    def __raise_exception(self, error_msg, exception_type="Generic"):
-        """
-            Private method to execute command
-            Args :
-                command  : command to execute
-            Return :
-               None
-        """
-        if error_msg:
-            self.logger.debug(error_msg)
-            print(error_msg)
-            if exception_type == "Generic":
-                raise Exception(error_msg)
-            elif exception_type == "IO":
-                raise Exception(error_msg)
-
-    def __execute_command(self, command, show_output=False):
-        """
-            Private method to execute command
-            Args :
-                command  : command to execute
-            Return :
-                stdout : output of command
-                stderr: error occurred while executing command if any
-                returncode : return code of command execution
-        """
-        try:
-            self.logger.info("Execute command: {} ".format(command))
-
-            proc = subprocess.Popen(command, stdout=subprocess.PIPE, stdin=subprocess.PIPE,
-                                    stderr=subprocess.PIPE, shell=True, bufsize=1)
-
-            stdout = b''
-            stderr = b''
-
-            while True:
-                output = proc.stdout.read(1)
-                stdout += output
-                if show_output:
-                    print(output.decode(), end='')
-                returncode = proc.poll()
-                if returncode is not None:
-                    for output in proc.stdout.readlines():
-                        stdout += output
-                        if show_output:
-                            print(output.decode(), end='')
-                    break
-
-            for output in proc.stderr.readlines():
-                stderr += output
-
-        except Exception as exp:
-            self.logger.error("Error {} occurred while executing command {} ".format(exp, command))
-
-        return stdout, stderr, returncode
-
-    def create_ovf(self):
-        """
-            Method to convert source image into OVF
-            Args : None
-            Return : True on success else False
-        """
-        # check output format
-        if self.source_format == self.output_format:
-            self.logger.info("Source format is OVF. No need to convert: {} ")
-            return self.source_img_path
-
-        # Get source img properties
-        img_info = self.__get_image_info()
-        if img_info:
-
-            # Create vmdk disk image
-            disk_img = self.__convert_image()
-            if disk_img:
-
-                # Edit OVF tempalte
-                ovf_path = self.__edit_ovf_template()
-                return ovf_path
-        else:
-            self.logger.error("Error in getting image information cannot convert image")
-            raise Exception("Error in getting image information cannot convert image")
-            return False
diff --git a/tools/OVF_converter/install.sh b/tools/OVF_converter/install.sh
deleted file mode 100755 (executable)
index d25c1f6..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/usr/bin/env bash
-
-##
-# Copyright 2016-2017 VMware Inc.
-# This file is part of ETSI OSM
-# All Rights Reserved.
-#
-# 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact:  osslegalrouting@vmware.com
-##
-
-echo '
- ################################################################
- #####             Installing Required Packages             #####
- ################################################################'
-
-# Paths to copy application files
-Install_dir="/usr/local/bin"
-App_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-Converter_App_CLI_path="${App_dir}/ovf_converter_cli.py"
-Converter_Install_CLI_path="${Install_dir}/OVF_converter/ovf_converter_cli.py"
-Uploader_App_CLI_path="${App_dir}/ovf_uploader_cli.py"
-Uploader_Install_CLI_path="${Install_dir}/OVF_converter/ovf_uploader_cli.py"
-Logs_Folder="${Install_dir}/OVF_converter/logs"
-
-#Function to install packages using apt-get
-function install_packages(){
-      [ -x /usr/bin/apt-get ] && apt-get install -y $*
-
-       #check properly installed
-       for PACKAGE in $*
-       do
-           PACKAGE_INSTALLED="no"
-           [ -x /usr/bin/apt-get ] && dpkg -l $PACKAGE            &>> /dev/null && PACKAGE_INSTALLED="yes"
-           if [ "$PACKAGE_INSTALLED" = "no" ]
-           then
-               echo "failed to install package '$PACKAGE'. Revise network connectivity and try again" >&2
-               exit 1
-          fi
-       done
-   }
-
-apt-get update  # To get the latest package lists
-install_packages "libxml2-dev libxslt-dev python-dev python-pip python-lxml python-yaml"
-install_packages "qemu-utils"
-
-#apt-get install <package name> -y
-
-#Move OVF Converter to usr/bin
-cp -R "${App_dir}"   "${Install_dir}"
-
-#Create logs folder and file
-mkdir "${Logs_Folder}"
-
-#Change permission
-chmod -R 777 ${Converter_Install_CLI_path}
-chmod -R 777 ${Uploader_Install_CLI_path}
-chmod -R 777 ${Logs_Folder}
-
-touch "${Install_dir}/ovf_converter"
-echo  "#!/bin/sh" > "${Install_dir}/ovf_converter"
-echo  "python3 ${Converter_Install_CLI_path} \"\$@\"" >> "${Install_dir}/ovf_converter"
-chmod a+x "${Install_dir}/ovf_converter"
-
-touch "${Install_dir}/ovf_uploader"
-echo  "#!/bin/sh" > "${Install_dir}/ovf_uploader"
-echo  "python3 ${Uploader_Install_CLI_path} \"\$@\"" >> "${Install_dir}/ovf_uploader"
-chmod a+x "${Install_dir}/ovf_uploader"
-
-echo "Installation complete.  More information can be found at:"
-echo "  ${Install_dir}/OVF_converter/Usage.txt"
diff --git a/tools/OVF_converter/ovf_converter_cli.py b/tools/OVF_converter/ovf_converter_cli.py
deleted file mode 100644 (file)
index 6caba88..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-##
-# Copyright 2016-2017 VMware Inc.
-# This file is part of ETSI OSM
-# All Rights Reserved.
-#
-# 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact:  osslegalrouting@vmware.com
-##
-
-import argparse
-import yaml
-
-from converter import OVFConverter, get_version, OS_INFO_FILE_PATH
-
-
-def execute_cli():
-
-    """
-        Method to parse CLI arguments and execute commands accordingly
-        Args : None
-        Return : None
-    """
-
-    with open(OS_INFO_FILE_PATH) as data_file:
-        os_info = yaml.load(data_file, Loader=yaml.SafeLoader)
-
-    valid_os_strings = "Valid values for osType are:\n"
-    for os_name in os_info.values():
-        valid_os_strings += os_name + ", "
-
-    valid_os_strings = valid_os_strings[:-2]
-
-    parser = argparse.ArgumentParser(description='OVF converter to convert .qcow2 or raw image into OVF')
-
-    parser.add_argument("-v", "--version", action="version", version=str(get_version()),
-                        help="shows version of OVF Converter tool")
-
-    parser.add_argument("path", action="store",
-                        help="absolute path to source image which will get converted into ovf")
-
-    parser.add_argument("-o", "--output_location", action="store",
-                        help="location where created OVF will be kept. This location "
-                        "should have write access. If not given file will get "
-                        "created at source location  (optional)")
-
-    parser.add_argument("-n", "--ovf_name", action="store",
-                        help="name of output ovf file. If not given source image name will "
-                        " be used (optional)")
-
-    parser.add_argument("-m", "--memory", action="store",
-                        help="required memory for VM in MB (default 1 GB)(optional)")
-
-    parser.add_argument("-c", "--cpu", action="store",
-                        help="required number of virtual cpus for VM (default 1 cpu) (optional)")
-
-    parser.add_argument("-d", "--disk", action="store",
-                        help="required size of disk for VM in GB "
-                        "(default as in source disk img) (optional)")
-
-    parser.add_argument("-s", "--osType", action="store",
-                        help="required operating system type as specified "
-                        "in user document (default os type other 32 bit) (optional) " + valid_os_strings)
-
-    parser.add_argument("-dc", "--disk_Controller", action="store",
-                        help="required disk controller type "
-                        "(default controller SCSI with lsilogicsas) "
-                        "(SATA, IDE, Paravirtual, Buslogic, Lsilogic, Lsilogicsas) (optional)")
-
-    parser.add_argument("--cdrom", action="store_true", default=False,
-                        help="whether to include a cd/dvd device (optional)")
-
-    parser.add_argument("-hw", "--hwversion", action="store", default=14,
-                        help="Virtual hardware version (default 14)")
-
-    args = parser.parse_args()
-
-    if args.path:
-        con = OVFConverter(args.path,
-                           output_location=args.output_location,
-                           output_ovf_name=args.ovf_name,
-                           memory=args.memory,
-                           cpu=args.cpu,
-                           disk=args.disk,
-                           os_type=args.osType,
-                           disk_controller=args.disk_Controller,
-                           cdrom=args.cdrom,
-                           hwversion=args.hwversion,
-                           )
-
-        con.create_ovf()
-
-
-if __name__ == "__main__":
-    execute_cli()
diff --git a/tools/OVF_converter/ovf_template/ide_cdrom.xml b/tools/OVF_converter/ovf_template/ide_cdrom.xml
deleted file mode 100644 (file)
index 431f38a..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--
- Copyright 2016-2019 VMware Inc.
- This file is part of ETSI OSM
- All Rights Reserved.
-
- 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.
-
- For those usages not covered by the Apache License, Version 2.0 please
- contact:  osslegalrouting@vmware.com
--->
-<Items>
-        <Item xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">
-            <rasd:AddressOnParent>0</rasd:AddressOnParent>
-            <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
-            <rasd:Description>CD/DVD Drive</rasd:Description>
-            <rasd:ElementName>CD/DVD Drive 1</rasd:ElementName>
-            <rasd:HostResource/>
-            <rasd:InstanceID>3002</rasd:InstanceID>
-            <rasd:Parent>50</rasd:Parent>
-            <rasd:ResourceType>15</rasd:ResourceType>
-        </Item>
-        <Item xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">
-            <rasd:Address>1</rasd:Address>
-            <rasd:Description>IDE Controller</rasd:Description>
-            <rasd:ElementName>IDE Controller 1</rasd:ElementName>
-            <rasd:InstanceID>50</rasd:InstanceID>
-            <rasd:ResourceType>5</rasd:ResourceType>
-        </Item>
-</Items>
diff --git a/tools/OVF_converter/ovf_template/template.xml b/tools/OVF_converter/ovf_template/template.xml
deleted file mode 100644 (file)
index 6382cef..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright 2016-2019 VMware Inc.
- This file is part of ETSI OSM
- All Rights Reserved.
-
- 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.
-
- For those usages not covered by the Apache License, Version 2.0 please
- contact:  osslegalrouting@vmware.com
--->
-<Envelope xmlns="http://schemas.dmtf.org/ovf/envelope/1" xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vmw="http://www.vmware.com/schema/ovf" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <References>
-     <File ovf:href="disk_img_filename.vmdk" ovf:id="file1" />
-  </References>
-   <DiskSection>
-    <Info>Virtual disk information</Info>
-    <Disk ovf:capacity="1" ovf:capacityAllocationUnits="byte" ovf:diskId="vmdisk1" ovf:fileRef="file1" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" ovf:populatedSize="0"/>
-  </DiskSection>
-
-  <NetworkSection>
-    <Info>List of logical networks used in the package</Info>
-  </NetworkSection>
-
-  <VirtualSystem ovf:id="vm">
-    <Info>A virtual machine</Info>
-    <Name>Virtual machine name</Name>
-
-    <OperatingSystemSection ovf:id="1">
-      <Info>The kind of installed guest operating system</Info>
-      <Description>Other (32-bit)</Description>
-    </OperatingSystemSection>
-
-    <VirtualHardwareSection>
-      <Info>Virtual hardware requirements</Info>
-      <System>
-        <vssd:ElementName>Virtual Hardware Family</vssd:ElementName>
-        <vssd:InstanceID>0</vssd:InstanceID>
-        <vssd:VirtualSystemIdentifier>Test1</vssd:VirtualSystemIdentifier>
-        <vssd:VirtualSystemType>vmx-14</vssd:VirtualSystemType>
-      </System>
-
-      <Item>
-        <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>
-        <rasd:Description>Number of Virtual CPUs</rasd:Description>
-        <rasd:ElementName>1 virtual CPU(s)</rasd:ElementName>
-        <rasd:InstanceID>1</rasd:InstanceID>
-        <rasd:ResourceType>3</rasd:ResourceType>
-        <rasd:VirtualQuantity>1</rasd:VirtualQuantity>
-      </Item>
-      <Item>
-        <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>
-        <rasd:Description>Memory Size</rasd:Description>
-        <rasd:ElementName>1GB of memory</rasd:ElementName>
-        <rasd:InstanceID>2</rasd:InstanceID>
-        <rasd:ResourceType>4</rasd:ResourceType>
-        <rasd:VirtualQuantity>1024</rasd:VirtualQuantity>
-      </Item>
-      <Item>
-        <rasd:Address>0</rasd:Address>
-        <rasd:Description>SCSI Controller</rasd:Description>
-        <rasd:ElementName>scsiController0</rasd:ElementName>
-        <rasd:InstanceID>3</rasd:InstanceID>
-        <rasd:ResourceSubType>lsilogicsas</rasd:ResourceSubType>
-        <rasd:ResourceType>6</rasd:ResourceType>
-      </Item>
-      <Item>
-        <rasd:AddressOnParent>0</rasd:AddressOnParent>
-        <rasd:ElementName>disk0</rasd:ElementName>
-        <rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource>
-        <rasd:InstanceID>4</rasd:InstanceID>
-        <rasd:Parent>3</rasd:Parent>
-        <rasd:ResourceType>17</rasd:ResourceType>
-      </Item>
-      <Item ovf:required="false">
-        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
-        <rasd:ElementName>video</rasd:ElementName>
-        <rasd:InstanceID>5</rasd:InstanceID>
-        <rasd:ResourceType>24</rasd:ResourceType>
-      </Item>
-      <Item ovf:required="false">
-        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
-        <rasd:ElementName>vmci</rasd:ElementName>
-        <rasd:InstanceID>6</rasd:InstanceID>
-        <rasd:ResourceSubType>vmware.vmci</rasd:ResourceSubType>
-        <rasd:ResourceType>1</rasd:ResourceType>
-      </Item>
-      <vmw:Config ovf:required="false" vmw:key="cpuHotAddEnabled" vmw:value="true"/>
-      <vmw:Config ovf:required="false" vmw:key="powerOpInfo.powerOffType" vmw:value="soft"/>
-      <vmw:Config ovf:required="false" vmw:key="powerOpInfo.resetType" vmw:value="soft"/>
-      <vmw:Config ovf:required="false" vmw:key="powerOpInfo.suspendType" vmw:value="soft"/>
-      <vmw:Config ovf:required="false" vmw:key="tools.syncTimeWithHost" vmw:value="true"/>
-      <vmw:Config ovf:required="false" vmw:key="tools.toolsUpgradePolicy" vmw:value="upgradeAtPowerCycle"/>
-    </VirtualHardwareSection>
-
-  </VirtualSystem>
-</Envelope>
diff --git a/tools/OVF_converter/ovf_uploader_cli.py b/tools/OVF_converter/ovf_uploader_cli.py
deleted file mode 100644 (file)
index e487877..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-##
-# Copyright 2019 VMware Inc.
-# This file is part of ETSI OSM
-# All Rights Reserved.
-#
-# 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact:  osslegalrouting@vmware.com
-##
-
-import argparse
-from uploader import OVFUploader, get_version
-
-
-def execute_cli():
-
-    """
-        Method to parse CLI arguments and execute commands accordingly
-        Args : None
-        Return : None
-    """
-    parser = argparse.ArgumentParser(description='Utility to upload an OVF package to vCD')
-
-    parser.add_argument("-v", "--version", action="version", version=str(get_version()),
-                        help="shows version of vCD Uploader tool")
-
-    parser.add_argument("ovf_file", action="store",
-                        help="filename of OVF file to upload to vCD")
-
-    parser.add_argument("-l", "--vcd_url", action="store",
-                        required=True,
-                        help="URL for vCD login (ie: https://vcd.local/")
-
-    parser.add_argument("-u", "--username", action="store",
-                        required=True,
-                        help="Username for vCD login")
-
-    parser.add_argument("-p", "--password", action="store",
-                        required=True,
-                        help="Password for vCD login")
-
-    parser.add_argument("-o", "--orgname", action="store",
-                        required=True,
-                        help="Organization name for vCD login")
-
-    args = parser.parse_args()
-
-    if args.ovf_file:
-        try:
-            uploader = OVFUploader(args.ovf_file,
-                                   vcd_url=args.vcd_url,
-                                   username=args.username,
-                                   password=args.password,
-                                   orgname=args.orgname)
-            uploader.make_catalog()
-            uploader.upload_ovf()
-            uploader.wait_for_task_completion()
-        except Exception as exp:
-            print(exp)
-            exit(1)
-
-
-if __name__ == "__main__":
-    execute_cli()
diff --git a/tools/OVF_converter/readme.txt b/tools/OVF_converter/readme.txt
deleted file mode 100644 (file)
index 1804a1d..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-##
-# Copyright 2016-2019 VMware Inc.
-# This file is part of ETSI OSM
-# All Rights Reserved.
-#
-# 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact:  osslegalrouting@vmware.com
-##
-
-
-This README file explains how to use OVF Converter Tool to generate OVF file from .qcow2, .img (raw) disk images.
-
-CONTENTS OF THIS FILE
-=====================
-This readme file contains the following sections:
-
-o Introduction
-o Tool Requirements
-o Installation
-o Usage
-o Trouble shooting
-o Release History
-
-
-Introduction
-==================
-OVF Converter Tool is a Command Line Interface (CLI) basically designed to generate OVF files from disk image such as
-.qcow2, and .img (raw format) which are other than .vmdk.  Given a path to .qcow2 image this tool can generate .vmdk
-and .ovf files.
-
-The user can optionally specify name and location of ovf file. Also, one can use command line options to give disk
-size (GB), memory (MB), number of cpus, OS type, disk controller required for VM which will get deployed using
-generated OVF.
-
-Generated OVF file can be used to deploy VM in Vmware vSphere or vCloud Director.
-
-Note- Currently this tool supports only Ubuntu platform.
-
-
-Tool Requirements
-==================
-
-This tool requires the following software package:
-o    apt-get package manager
-o    qemu-utils
-o    python 2.7
-o    python-lxml
-o    libxml2-dev
-o    libxslt-dev
-o    python-dev
-o    python-pip
-
-Install.sh script in this folder will install all of these software packages.
-
-
-Installation
-==================
-User needs root privileges to install OVF Generator Tool.
-Follow below setups for installation of OVF Converter Tool.
-1. Make install.sh script in this folder executable by running below command
-   chmod a+x install.sh
-2. Run install.sh script as:
-   ./install.sh
-
-   Sample output -
-        #################################################################
-        #####             Installing Require Packages             #####
-        #################################################################
-        Hit:1 http://us.archive.ubuntu.com/ubuntu xenial InRelease
-        Get:2 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]
-        Get:3 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]
-        Get:4 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB]
-        Fetched 306 kB in 1s (286 kB/s)
-        Reading package lists... Done
-        Reading package lists... Done
-        Building dependency tree
-        Reading state information... Done
-        Note, selecting 'libxslt1-dev' instead of 'libxslt-dev'
-        libxslt1-dev is already the newest version (1.1.28-2.1).
-        python-dev is already the newest version (2.7.11-1).
-        python-lxml is already the newest version (3.5.0-1build1).
-        libxml2-dev is already the newest version (2.9.3+dfsg1-1ubuntu0.1).
-
-        t version (1:2.5+dfsg-5ubuntu10.6).
-        0 upgraded, 0 newly installed, 0 to remove and 72 not upgraded.
-
-        #################################################################
-        #####             Done                                #####
-        #################################################################
-        root@ubuntu:/home/vmware/OVF_converter#
-        root@ubuntu:/home/vmware/OVF_converter#
-
-3. Now tool is installed at /usr/local/bin and available for all users
-4. User can access commands of OVF Generator Tool as:
-    ovf_converter path [output location] [ovf name][memory][cpu][disk][ostype][disk_controller]
-
-
-Usage
-===================
-o    Get version of tool as:
-
-    Command -      ovf_converter -v
-    Sample output -
-                root@ubuntu:/home/vmware/OVF_converter# ovf_converter -v
-                1.0 - Initial Realse
-                root@ubuntu:/home/vmware/OVF_converter#
-
-o    See all command line options of tool as:
-    Command -       ovf_converter -h
-    Sample output -
-                root@ubuntu:/home/vmware/OVF_converter#
-                root@ubuntu:/home/vmware/OVF_converter# ovf_converter -h
-                Usage: ovf_converter_cli.py [-h] [-v] [-o OUTPUT_LOCATION] [-n OVF_NAME]
-                            [-m MEMORY] [-c CPU] [-d DISK] [-s OSTYPE]
-                            [-dc DISK_CONTROLLER] [--cdrom] [-w 14]
-                            path
-
-                OVF converter to convert .qcow2 or raw image into OVF
-
-                positional arguments:
-                  path                  absolute path to source image which will get convert
-                                        into ovf
-
-                optional arguments:
-                  -h, --help            show this help message and exit
-                  -v, --version         shows version of OVF Converter tool
-                  -o OUTPUT_LOCATION, --output_location OUTPUT_LOCATION
-                                        location where created OVF will be kept. This location
-                                        should have write access. If not given file will get
-                                        created at source location (optional)
-                  -n OVF_NAME, --ovf_name OVF_NAME
-                                        name of output ovf file. If not given source image
-                                        name will be used (optional)
-                  -m MEMORY, --memory MEMORY
-                                        required memory for VM in MB (default 1 GB)(optional)
-                  -c CPU, --cpu CPU     required number of virtual cpus for VM (default 1 cpu)
-                                        (optional)
-                  -d DISK, --disk DISK  required size of disk for VM in GB (default as
-                                        in source disk img) (optional)
-                  -s OSTYPE, --osType OSTYPE
-                                        required operating system type as specified in user
-                                        document (default os type other 32 bit) (optional)
-                  -dc DISK_CONTROLLER, --disk_Controller DISK_CONTROLLER
-                                        required disk controller type (default controller SCSI
-                                        with lsilogicsas) (SATA, IDE, Paravirtual, Buslogic,
-                                        lsilogic, lsilogicsas) (optional)
-                  --cdrom               whether to include a cd/dvd device (optional)
-                  -hw VERSION, --hwversion VERSION
-                                        VMware ESXi hardware family version (optional)
-
-
-o    Create OVF file from qcow2 or raw disk image as:
-    Command -     ovf_converter /home/vmware/centos_ovf/CentOS-7-x86_64-GenericCloud-1503.qcow2 -n centos_qcow2.ovf -m 2048 -c 4 -d 10 -s "Centos 32-bit" -dc "SATA"
-    Sample output -
-                root@ubuntu:/home/vmware/OVF_converter# ovf_converter /home/vmware/centos_ovf/CentOS-7-x86_64-GenericCloud-1503.qcow2 -n centos_qcow2.ovf -m 2048 -c 4 -d 10
-                #### Start OVF conversion ####
-                Getting source image information
-                Converting source disk image to .vmdk
-                .....................................................
-                Creating OVF
-                Output OVF is at:  /home/vmware/centos_ovf/centos_qcow2.ovf
-                #### Completed OVF conversion ####
-
-
-Trouble shooting
-==================
-After installation of tool logs will get created at /usr/local/bin/OVF_converter/logs/ovf_converter.log file.
-User can use these logs for debugging or trouble shooting.
-
-
-Release History
-===============
-
-Version 1.0
--------------
-
-Initial release
-
-Version 1.1
--------------
-
-Adds support for cdrom
-
-Version 1.2
--------------
-
-Adds support for hardware version
-Improves progress indicator
diff --git a/tools/OVF_converter/uploader.py b/tools/OVF_converter/uploader.py
deleted file mode 100644 (file)
index 7cb168f..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-# #
-# Copyright 2019 VMware Inc.
-# This file is part of ETSI OSM
-# All Rights Reserved.
-#
-# 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact:  osslegalrouting@vmware.com
-# #
-
-import logging
-from lxml import etree
-import os
-from pyvcloud.vcd.client import BasicLoginCredentials, Client, QueryResultFormat, ResourceType, TaskStatus, ApiVersion
-from pyvcloud.vcd.exceptions import EntityNotFoundException, InternalServerException
-from pyvcloud.vcd.org import Org
-import sys
-import tarfile
-import time
-
-MODULE_DIR = os.path.dirname(__file__)
-
-# Set logger
-LOG_FILE = os.path.join(MODULE_DIR, "logs/ovf_uploader.log")
-os.makedirs(os.path.dirname(LOG_FILE), exist_ok=True)
-logger = logging.getLogger(__name__)
-file_handler = logging.FileHandler(LOG_FILE)
-file_handler.setLevel(logging.DEBUG)
-formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
-file_handler.setFormatter(formatter)
-logger.addHandler(file_handler)
-stdout_handler = logging.StreamHandler(sys.stdout)
-stdout_handler.setLevel(logging.INFO)
-logger.addHandler(stdout_handler)
-logger.setLevel(10)
-logging.captureWarnings(True)
-
-__version__ = "1.0"
-__description__ = "Initial Release"
-
-
-def get_version():
-    """ get version of this application"""
-    version = str(__version__) + " - " + str(__description__)
-    return version
-
-
-def report_progress(bytes_written, total_size):
-    percent_complete = int((bytes_written * 100) / total_size)
-    print("{}% complete  \r".format(percent_complete), end='')
-
-
-class OVFUploader(object):
-    """ Class to convert input image into OVF format """
-
-    def __init__(self, ovf_file, vcd_url=None, username=None, password=None, orgname=None):
-        self.ovf_file = os.path.abspath(ovf_file)
-        self.vcd_url = vcd_url
-        self.username = username
-        self.password = password
-        self.orgname = orgname
-        try:
-            client = Client(self.vcd_url, verify_ssl_certs=False, api_version=ApiVersion.VERSION_32.value,
-                            log_requests=True,
-                            log_headers=True,
-                            log_bodies=True,
-                            log_file=LOG_FILE)
-            # sclient.set_highest_supported_version()
-            client.set_credentials(BasicLoginCredentials(self.username, self.orgname,
-                                                         self.password))
-            logger.info("Logged into {} using version {}".format(self.vcd_url, client.get_api_version()))
-            self.client = client
-            self.org = Org(self.client, resource=self.client.get_org())
-
-        except Exception as exp:
-            problem = Exception("Failed to connect to vCD at {}, org {}, username {}:\n{}".format(
-                self.vcd_url, self.orgname, self.username, exp))
-            logger.error(problem)
-            raise problem
-
-        try:
-            # Retrieve the VM name from the OVF.  We will use this as both the image and catalog name
-            OVF_tree = etree.parse(self.ovf_file)
-            root = OVF_tree.getroot()
-            nsmap = {k: v for k, v in root.nsmap.items() if k}
-            nsmap["xmlns"] = "http://schemas.dmtf.org/ovf/envelope/1"
-
-            virtuasystem = root.find('xmlns:VirtualSystem', nsmap)
-            name_tag = virtuasystem.find('xmlns:Name', nsmap)
-            self.image_name = name_tag.text
-            info_tag = virtuasystem.find('xmlns:Info', nsmap)
-            self.image_description = info_tag.text
-
-            references = root.find('xmlns:References', nsmap)
-            file = references.find('xmlns:File', nsmap)
-            self.vmdk_file = "{}/{}".format(
-                os.path.dirname(self.ovf_file),
-                file.attrib['{http://schemas.dmtf.org/ovf/envelope/1}href'])
-            logger.info("Loaded VM {}: {}".format(self.image_name, self.image_description))
-
-        except Exception as exp:
-            problem = Exception("Failed to fetch VirtualSystem Name element from OVF {}:\n{}".format(
-                self.ovf_file, exp))
-            logger.error(problem)
-            raise problem
-
-    def make_catalog(self):
-        self.catalog_id = None
-        try:
-            for catalog in self.org.list_catalogs():
-                if catalog['name'] == self.image_name:
-                    self.catalog_id = catalog['id']
-            if self.catalog_id is None:
-                logger.info("Creating a new catalog entry {} in vCD".format(self.image_name))
-                result = self.org.create_catalog(self.image_name, self.image_description)
-                if result is None:
-                    raise Exception("Failed to create new catalog entry")
-                self.catalog_id = result.attrib['id'].split(':')[-1]
-                self.org.reload()
-
-            logger.debug("Using catalog {}, id {}".format(self.image_name, self.catalog_id))
-
-        except Exception as exp:
-            problem = Exception("Failed to fetch catalog for {}:\n{} ".format(self.image_name, exp))
-            logger.error(problem)
-            raise problem
-
-    def upload_ovf(self):
-
-        ova_tarfilename, _ = os.path.splitext(self.ovf_file)
-        ova_tarfilename += '.ova'
-        try:
-            # Check if the content already exists:
-            resource_type = ResourceType.CATALOG_ITEM.value
-            q = self.client.get_typed_query(
-                resource_type,
-                query_result_format=QueryResultFormat.ID_RECORDS,
-                equality_filter=('catalogName', self.image_name))
-            for item in list(q.execute()):
-                if item.get('name') == self.image_name:
-                    logger.info("Removing old version from catalog")
-                    try:
-                        self.org.delete_catalog_item(self.image_name, self.image_name)
-                    except InternalServerException as exp:
-                        problem = Exception(
-                            "Cannot delete vAppTemplate {}. Please check in vCD if "
-                            "the content is still being imported into the catalog".format(
-                                self.image_name))
-                        raise problem
-
-            # Create a single OVA bundle
-            ova = tarfile.open(name=ova_tarfilename,
-                               mode='w')
-            ova.add(self.ovf_file, arcname=os.path.basename(self.ovf_file))
-            ova.add(self.vmdk_file, arcname=os.path.basename(self.vmdk_file))
-            ova.close()
-            logger.info("Uploading content to vCD")
-            self.org.upload_ovf(self.image_name,
-                                ova_tarfilename,
-                                item_name=self.image_name,
-                                description=self.image_description,
-                                callback=report_progress)
-        except Exception as exp:
-            problem = Exception("Failed to upload OVF {}:\n{} ".format(self.ovf_file, exp))
-            logger.error(problem)
-            raise problem
-        finally:
-            if os.path.exists(ova_tarfilename):
-                os.remove(ova_tarfilename)
-
-    def wait_for_task_completion(self):
-
-        logger.info("Importing content to vCD")
-        try:
-
-            query = self.client.get_typed_query(
-                query_type_name=ResourceType.TASK.value,
-                qfilter='ownerName==' + self.username + ';(status==queued,status==preRunning,status==running)',
-                query_result_format=QueryResultFormat.REFERENCES)
-
-            upload_task = None
-            tasks = list(query.execute())
-            for task in tasks:
-                if task.get('name') == 'VDC_UPLOAD_OVF_CONTENTS':
-                    upload_task = self.client.get_resource(task.get('href'))
-                    break
-
-            bad_statuses = [
-                TaskStatus.ABORTED,
-                TaskStatus.CANCELED,
-                TaskStatus.ERROR
-            ]
-
-        except Exception as exp:
-            problem = Exception("Failed to import OVF {}:\n{} ".format(self.ovf_file, exp))
-            logger.error(problem)
-            raise problem
-
-        while(True):
-            task_status = upload_task.get('status').lower()
-            if(hasattr(upload_task, 'Progress')):
-                print("{}% complete  \r".format(upload_task.Progress), end='')
-
-            for status in bad_statuses:
-                if task_status == status.value.lower():
-                    problem = Exception(
-                        "vCD failed to import OVF {}:\n{}: {} ".format(self.ovf_file,
-                                                                       task_status,
-                                                                       upload_task.Error.get('Message')))
-                    logger.error(problem)
-                    raise problem
-            if task_status == str(TaskStatus.SUCCESS.value).lower():
-                break
-
-            time.sleep(2)
-            upload_task = self.client.get_resource(upload_task.get('href'))
-
-        logger.info("OVF upload and import complete, content is ready to use")
diff --git a/tools/vmware_ovf_upload.py b/tools/vmware_ovf_upload.py
deleted file mode 100755 (executable)
index 834068d..0000000
+++ /dev/null
@@ -1,329 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# #
-# Copyright 2016-2017 VMware Inc.
-# This file is part of ETSI OSM
-# All Rights Reserved.
-#
-# 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.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact:  osslegalrouting@vmware.com
-# #
-
-import logging
-import os
-from progressbar import Percentage, Bar, ETA, FileTransferSpeed, ProgressBar
-from pyvcloud.vcd.client import BasicLoginCredentials, Client
-from pyvcloud.vcd.org import Org
-import re
-import requests
-import sys
-import time
-from xml.etree import ElementTree as XmlElementTree
-
-API_VERSION = '5.6'
-
-
-class vCloudconfig(object):
-
-    def __init__(self, host=None, user=None, password=None, orgname=None, logger=None):
-        self.url = host
-        self.user = user
-        self.password = password
-        self.org = orgname
-        self.logger = logging.getLogger('vmware_ovf_upload')
-        self.logger.setLevel(10)
-
-    def connect(self):
-        """ Method connect as normal user to vCloud director.
-
-            Returns:
-                The return vca object that letter can be used to connect to vCloud director as admin for VDC
-        """
-
-        try:
-            self.logger.debug("Logging in to a vcd {} as user {}".format(self.org,
-                                                                         self.user))
-            client = Client(self.url, verify_ssl_certs=False)
-            client.set_credentials(BasicLoginCredentials(self.user, self.org, self.password))
-        except Exception:
-            raise Exception("Can't connect to a vCloud director org: "
-                            "{} as user: {}".format(self.org, self.user))
-
-        return client
-
-    def get_catalog_id_from_path(self, catalog_name=None, path=None, progress=False):
-        """
-        Args
-            catalog - catalog name to be created
-            path: - valid path to OVF file.
-            progress - boolean progress bar show progress bar.
-
-        Return: if image uploaded correct method will provide image catalog UUID.
-        """
-        if not path:
-            raise Exception("Image path can't be None.")
-
-        if not os.path.isfile(path):
-            raise Exception("Can't read file. File not found.")
-
-        if not os.access(path, os.R_OK):
-            raise Exception("Can't read file. Check file permission to read.")
-
-        self.logger.debug("get_catalog_id_from_path() client requesting {} ".format(path))
-
-        _, filename = os.path.split(path)
-        _, file_extension = os.path.splitext(path)
-        if file_extension != '.ovf':
-            self.logger.debug("Wrong file extension {} connector support only OVF container.".format(file_extension))
-            raise Exception("Wrong container.  vCloud director supports only OVF.")
-
-        self.logger.debug("File name {} Catalog Name {} file path {} ".format(filename,
-                                                                              catalog_name,
-                                                                              path))
-        try:
-            client = self.connect()
-            if not client:
-                raise Exception("Failed to connect vCD")
-            org = Org(client, resource=client.get_org())
-            catalogs = org.list_catalogs()
-        except Exception as exp:
-            self.logger.debug("Failed get catalogs() with Exception {} ".format(exp))
-            raise Exception("Failed get catalogs() with Exception {} ".format(exp))
-
-        if len(catalogs) == 0:
-            self.logger.info("Creating a new catalog entry {} in vcloud director".format(catalog_name))
-            result = org.create_catalog(catalog_name, catalog_name)
-            if result is None:
-                raise Exception("Failed to create new catalog {} ".format(catalog_name))
-            result = self.upload_ovf(org=org, catalog_name=catalog_name, image_name=filename.split(".")[0],
-                                     media_file_name=path, description='medial_file_name', progress=progress)
-            if not result:
-                raise Exception("Failed to create vApp template for catalog {} ".format(catalog_name))
-            return self.get_catalogid(catalog_name, catalogs)
-        else:
-            for catalog in catalogs:
-                # search for existing catalog if we find same name we return ID
-                if catalog['name'] == catalog_name:
-                    self.logger.debug("Found existing catalog entry for {} "
-                                      "catalog id {}".format(catalog_name,
-                                                             self.get_catalogid(catalog_name, catalogs)))
-                    return self.get_catalogid(catalog_name, catalogs)
-
-        # if we didn't find existing catalog we create a new one and upload image.
-        self.logger.debug("Creating new catalog entry {} - {}".format(catalog_name, catalog_name))
-        result = org.create_catalog(catalog_name, catalog_name)
-        if result is None:
-            raise Exception("Failed to create new catalog {} ".format(catalog_name))
-
-        result = self.upload_ovf(org=org, catalog_name=catalog_name, image_name=filename.split(".")[0],
-                                 media_file_name=path, description='medial_file_name', progress=progress)
-        if not result:
-            raise Exception("Failed create vApp template for catalog {} ".format(catalog_name))
-
-    def get_catalogid(self, catalog_name=None, catalogs=None):
-        """  Method check catalog and return catalog ID in UUID format.
-
-        Args
-            catalog_name: catalog name as string
-            catalogs:  list of catalogs.
-
-        Return: catalogs uuid
-        """
-
-        for catalog in catalogs:
-            if catalog['name'] == catalog_name:
-                catalog_id = catalog['id']
-                return catalog_id
-        return None
-
-    def upload_ovf(self, org=None, catalog_name=None, image_name=None, media_file_name=None,
-                   description='', progress=False, chunk_bytes=128 * 1024):
-        """
-        Uploads a OVF file to a vCloud catalog
-
-        org : organization object
-        catalog_name: (str): The name of the catalog to upload the media.
-        media_file_name: (str): The name of the local media file to upload.
-        return: (bool) True if the media file was successfully uploaded, false otherwise.
-        """
-        client = self.connect()
-        if not client:
-            raise Exception("Failed to connect vCD!")
-
-        os.path.isfile(media_file_name)
-        statinfo = os.stat(media_file_name)
-
-        #  find a catalog entry where we upload OVF.
-        #  create vApp Template and check the status if vCD able to read OVF it will respond with appropirate
-        #  status change.
-        #  if VCD can parse OVF we upload VMDK file
-        try:
-            for catalog in org.list_catalogs():
-                if catalog_name != catalog['name']:
-                    continue
-                catalog_href = "{}/api/catalog/{}/action/upload".format(self.url, catalog['id'])
-                data = """
-                <UploadVAppTemplateParams name="{}" xmlns="http://www.vmware.com/vcloud/v1.5"
-                xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1">
-                <Description>{} vApp Template</Description></UploadVAppTemplateParams>
-                """.format(catalog_name, description)
-
-                if client:
-                    headers = {'Accept': 'application/*+xml;version=' + API_VERSION,
-                               'x-vcloud-authorization': client._session.headers['x-vcloud-authorization']}
-                    headers['Content-Type'] = 'application/vnd.vmware.vcloud.uploadVAppTemplateParams+xml'
-
-                response = requests.post(url=catalog_href,
-                                         headers=headers,
-                                         data=data,
-                                         verify=False)
-                if response.status_code != 201:
-                    self.logger.debug("Failed to create vApp template")
-                    raise Exception("Failed to create vApp template")
-
-                if response.status_code == requests.codes.created:
-                    catalogItem = XmlElementTree.fromstring(response.content)
-                    entity = [child for child in catalogItem if
-                              child.get("type") == "application/vnd.vmware.vcloud.vAppTemplate+xml"][0]
-                    href = entity.get('href')
-                    template = href
-
-                    response = requests.get(url=href,
-                                            headers=headers,
-                                            verify=False)
-                    if response.status_code == requests.codes.ok:
-                        headers['Content-Type'] = 'Content-Type text/xml'
-                        result = re.search('rel="upload:default"\shref="(.*?\/descriptor.ovf)"', response.content)
-                        if result:
-                            transfer_href = result.group(1)
-
-                        response = requests.put(url=transfer_href, headers=headers,
-                                                data=open(media_file_name, 'rb'),
-                                                verify=False)
-
-                        if response.status_code != requests.codes.ok:
-                            self.logger.debug(
-                                "Failed create vApp template for catalog name {} and image {}".format(
-                                    catalog_name,
-                                    media_file_name))
-                            return False
-
-                    # TODO fix this with aync block
-                    time.sleep(5)
-
-                    self.logger.debug("vApp template for catalog name {} and image {}".format(
-                        catalog_name,
-                        media_file_name))
-
-                    # uploading VMDK file
-                    # check status of OVF upload and upload remaining files.
-
-                    response = requests.get(url=template,
-                                            headers=headers,
-                                            verify=False)
-
-                    if response.status_code == requests.codes.ok:
-                        result = re.search('rel="upload:default"\s*href="(.*?vmdk)"', response.content)
-                        if result:
-                            link_href = result.group(1)
-                        # we skip ovf since it already uploaded.
-                        if 'ovf' in link_href:
-                            continue
-                        # The OVF file and VMDK must be in a same directory
-                        head, _ = os.path.split(media_file_name)
-                        file_vmdk = head + '/' + link_href.split("/")[-1]
-                        if not os.path.isfile(file_vmdk):
-                            return False
-                        statinfo = os.stat(file_vmdk)
-                        if statinfo.st_size == 0:
-                            return False
-                        hrefvmdk = link_href
-                        if progress:
-                            widgets = ['Uploading file: ', Percentage(), ' ', Bar(), ' ', ETA(), ' ',
-                                       FileTransferSpeed()]
-                            progress_bar = ProgressBar(widgets=widgets, maxval=statinfo.st_size).start()
-
-                        bytes_transferred = 0
-                        f = open(file_vmdk, 'rb')
-                        while bytes_transferred < statinfo.st_size:
-                            my_bytes = f.read(chunk_bytes)
-                            if len(my_bytes) <= chunk_bytes:
-                                headers['Content-Range'] = 'bytes %s-%s/%s' % (
-                                    bytes_transferred, len(my_bytes) - 1, statinfo.st_size)
-                                headers['Content-Length'] = str(len(my_bytes))
-                                response = requests.put(url=hrefvmdk,
-                                                        headers=headers,
-                                                        data=my_bytes,
-                                                        verify=False)
-                                if response.status_code == requests.codes.ok:
-                                    bytes_transferred += len(my_bytes)
-                                    if progress:
-                                        progress_bar.update(bytes_transferred)
-                                else:
-                                    self.logger.debug(
-                                        'file upload failed with error: [%s] %s' % (response.status_code,
-                                                                                    response.content))
-
-                                    f.close()
-                                    return False
-                        f.close()
-                        if progress:
-                            progress_bar.finish()
-                            time.sleep(60)
-                    return True
-                else:
-                    self.logger.debug("Failed retrieve vApp template for catalog name {} for OVF {}".
-                                      format(catalog_name, media_file_name))
-                    return False
-        except Exception as exp:
-            self.logger.debug("Failed while uploading OVF to catalog {} for OVF file {} with Exception {}"
-                              .format(catalog_name, media_file_name, exp))
-            raise Exception(
-                "Failed while uploading OVF to catalog {} for OVF file {} with Exception {}"
-                .format(catalog_name, media_file_name, exp))
-        self.logger.debug("Failed to retrieve catalog name {} for OVF file {}".format(catalog_name, media_file_name))
-        return False
-
-
-if __name__ == "__main__":
-
-    print("This file is deprecated.  Please use ovf_uplader_cli instead.")
-
-    # vmware vcloud director credentials
-    vcd_hostname = sys.argv[1]
-    vcd_username = sys.argv[2]
-    vcd_password = sys.argv[3]
-    orgname = sys.argv[4]
-    # OVF image path to be upload to vCD
-    ovf_file_path = sys.argv[5]
-
-    logging.basicConfig(filename='ovf_upload.log', level=logging.DEBUG)
-    logger = logging.getLogger(__name__)
-
-    obj = vCloudconfig(vcd_hostname, vcd_username, vcd_password, orgname, logger)
-
-    dirpath, filename = os.path.split(ovf_file_path)
-    filename_name, file_extension = os.path.splitext(filename)
-
-    # Get image name from cirros vnfd
-    cirros_yaml = '../descriptor-packages/vnfd/cirros_vnf/src/cirros_vnfd.yaml'
-    rh = open(cirros_yaml, 'r')
-    match = re.search("image:\s'(.*?)'\n", rh.read())
-    if match:
-        catalog = match.group(1)
-
-    if file_extension == '.ovf':
-        obj.get_catalog_id_from_path(catalog_name=catalog, path=ovf_file_path,
-                                     progress=True)