Obsolete Legacy APIs excluding VIM feature

This patch obsoletes Legacy APIs excluding VIM feature.
And this patch mainly contains the following changes:

* Drop the implementation/db of NS and VNFFG functions.
* Remove the implementation that was used only by Legacy VNFM features.
* Remove the following components used only by Legacy features.
  * ceilometer
  * fenix
  * blazar
* Drop the functional test jobs for Legacy features.
* Delete the unnecessary files that were used in Legacy tests.

Implements: blueprint deprecate-legacy-apis
Change-Id: I76ba79f42cf7c3f04c48a87de4ae893f2d53e467
This commit is contained in:
Ayumu Ueha 2024-02-25 15:38:32 +00:00
parent 0ec99497f6
commit f410d66e83
396 changed files with 757 additions and 33206 deletions

View File

@ -63,10 +63,10 @@
- compute1
- job:
name: tacker-functional-devstack-multinode-legacy
name: tacker-functional-devstack-multinode-sol
parent: devstack
description: |
Base multinodes job for devstack-based functional tests
Multinodes job for SOL devstack-based functional tests
nodeset: openstack-4-nodes-jammy
pre-run: playbooks/devstack/pre.yaml
run: playbooks/devstack/run.yaml
@ -82,18 +82,14 @@
- openstack/nova
- openstack/placement
- openstack/aodh
- openstack/blazar
- openstack/blazar-nova
- openstack/horizon
- openstack/barbican
- openstack/heat
- openstack/networking-sfc
- openstack/python-barbicanclient
- openstack/python-blazarclient
- openstack/python-tackerclient
- openstack/tacker
- openstack/tacker-horizon
- x/fenix
vars:
devstack_localrc:
CELLSV2_SETUP: singleconductor
@ -135,8 +131,6 @@
networking-sfc: https://opendev.org/openstack/networking-sfc
aodh: https://opendev.org/openstack/aodh
barbican: https://opendev.org/openstack/barbican
blazar: https://opendev.org/openstack/blazar
fenix: https://opendev.org/x/fenix
devstack_services:
# Core services enabled for this branch.
# This list replaces the test-matrix.
@ -194,7 +188,7 @@
# Tacker services
tacker: true
tacker-conductor: true
tox_envlist: dsvm-functional-legacy
tox_envlist: dsvm-functional-sol
group-vars:
compute:
# Since a VirtualInterfaceCreateException occurs during a test,
@ -218,15 +212,6 @@
TACKER_HOST: "{{ hostvars['controller-tacker']['nodepool']['private_ipv4'] }}"
TACKER_MODE: standalone
IS_ZUUL_FT: True
# NOTES:
# - Without this ugly inline template, we would have to overwrite devstack_localrc
# as a whole in some way. However keeping up with parent jobs' definitions would
# be too costly. E.g., ADMIN_PASSWORD, NETWORK_GATEWAY, etc. Too many variables.
# - The reason we set CEILOMETER_BACKEND=none for compute nodes is that otherwise
# gnocchi setup would run on every compute nodes (esp. multiple asynchronous calls
# of recreate_database() would be disastrous). Unused api servers would also be
# deployed on each compute node.
CEILOMETER_BACKEND: "{% if 'compute' in group_names %}none{% else %}gnocchi{% endif %}"
Q_SERVICE_PLUGIN_CLASSES: "qos,\
networking_sfc.services.flowclassifier.plugin.FlowClassifierPlugin,\
neutron.services.qos.qos_plugin.QoSPlugin,\
@ -246,15 +231,6 @@
# Neutron services
q-ovn-metadata-agent: true
- job:
name: tacker-functional-devstack-multinode-sol
parent: tacker-functional-devstack-multinode-legacy
description: |
Multinodes job for SOL devstack-based functional tests
host-vars:
controller-tacker:
tox_envlist: dsvm-functional-sol
- job:
name: tacker-functional-devstack-multinode-sol-v2
parent: tacker-functional-devstack-multinode-sol
@ -369,7 +345,6 @@
- openstack/octavia
- openstack/placement
- openstack/python-barbicanclient
- openstack/python-blazarclient
- openstack/python-octaviaclient
- openstack/python-tackerclient
- openstack/tacker
@ -561,15 +536,6 @@
vars:
setup_multi_tenant: true
- job:
name: tacker-functional-devstack-multinode-libs-master
parent: tacker-functional-devstack-multinode-legacy
description: |
devstack-based functional tests with libs from the master branch
required-projects:
- openstack/heat-translator
- openstack/tosca-parser
- job:
name: tacker-functional-devstack-multinode-sol-kubernetes-v2
parent: tacker-functional-devstack-multinode-sol-kubernetes
@ -721,7 +687,7 @@
- job:
name: tacker-functional-devstack-enhanced-policy-sol
parent: tacker-functional-devstack-multinode-legacy
parent: tacker-functional-devstack-multinode-sol
description: |
Enhanced policy job for SOL devstack-based functional tests
host-vars:
@ -753,7 +719,7 @@
- job:
name: tacker-functional-devstack-multinode-sol-terraform-v2
parent: tacker-functional-devstack-multinode-legacy
parent: tacker-functional-devstack-multinode-sol
description: |
Multinodes job for SOL Terraform devstack-based functional tests
attempts: 1
@ -770,7 +736,7 @@
- job:
name: tacker-compliance-devstack-multinode-sol
parent: tacker-functional-devstack-multinode-legacy
parent: tacker-functional-devstack-multinode-sol
description: |
Multinodes job for SOL devstack-based compliance tests
host-vars:
@ -787,15 +753,9 @@
- release-notes-jobs-python3
check:
jobs:
- tacker-functional-devstack-multinode-legacy:
# TODO(ueha): Remove the job after Legacy APIs obsolete
voting: false
- tacker-functional-devstack-multinode-sol
- tacker-functional-devstack-multinode-sol-separated-nfvo
- tacker-functional-devstack-multinode-sol-kubernetes
- tacker-functional-devstack-multinode-libs-master:
# TODO(ueha): Remove the job after Legacy APIs obsolete
voting: false
- tacker-functional-devstack-multinode-sol-v2
- tacker-functional-devstack-multinode-sol-separated-nfvo-v2
- tacker-functional-devstack-multinode-sol-v2-individual-vnfc-mgmt

View File

@ -1,53 +0,0 @@
#!/bin/bash
#
# 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 "Deleting network service NS1, NS2"
for ns in NS1 NS2; do
network_service_id=$(openstack ns list | grep $ns | awk '{print $2}')
if [ -n "$network_service_id" ]; then
openstack ns delete $network_service_id
fi
done
sleep 5
echo "Deleting network service descriptor NSD-template"
nsd_id=$(openstack ns descriptor list | grep NSD-template | awk '{print $2}')
if [ -n "$nsd_id" ]; then
openstack ns descriptor delete $nsd_id
fi
echo "Deleting vnf descriptors"
for vnfd_name in sample-tosca-vnfd1 sample-tosca-vnfd2 sample-vnfd1 sample-vnfd2; do
vnfd_id=$(openstack vnf descriptor list | grep $vnfd_name | awk '{print $2}')
if [ -n "$vnfd_id" ]; then
openstack vnf descriptor delete $vnfd_id
fi
done
echo "Deleting http_client and http_server"
for server_name in http_client http_server; do
server_id=$(openstack server list | grep $server_name | awk '{print $2}')
if [ -n "$server_id" ]; then
openstack server delete $server_id
fi
done
sleep 10
echo "Deleting VIM0"
vim_id=$(openstack vim list | grep VIM0 | awk '{print $2}')
if [ -n "$vim_id" ]; then
openstack vim delete $vim_id
fi

View File

@ -1,60 +0,0 @@
#!/bin/bash
#
# 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.
network_name='net0'
network_id=$(openstack network list | grep $network_name | awk '{print $2}')
if [ -z "$network_id" ]; then
echo "Creating network net0"
openstack network create $network_name --provider-network-type=vxlan --provider-segment 1005
openstack subnet create --network $network_name --subnet-range 10.0.10.0/24 subnet-test
network_id=$(openstack network list | grep $network_name | awk '{print $2}')
fi
echo "Creating HTTP client"
openstack server create --flavor m1.tiny --image cirros-0.5.2-x86_64-disk --nic net-id=$network_id http_client
echo "Creating HTTP server"
openstack server create --flavor m1.tiny --image cirros-0.5.2-x86_64-disk --nic net-id=$network_id http_server
sleep 15
client_ip=$(openstack server list | grep http_client | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+')
network_source_port_id=$(openstack port list | grep $client_ip | awk '{print $2}')
ip_dst=$(openstack server list | grep http_server | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+')
network_dest_port_id=$(openstack port list | grep $ip_dst | awk '{print $2}')
echo "Creating/ Updating ns_param.yaml file"
cat > ../../samples/tosca-templates/vnffg-nsd/ns_param.yaml << EOL
nsd:
vl1_name: net_mgmt
vl2_name: net0
net_src_port_id: ${network_source_port_id}
ip_dest_prefix: ${ip_dst}/24
net_dst_port_id: ${network_dest_port_id}
EOL
vim_default=$(openstack vim list | grep openstack | awk '{print $10}')
if [ "$vim_default" != "True" ]; then
echo "Creating default VIM"
cat > ./vim_config.yaml << EOL
auth_url: $OS_AUTH_URL
username: $OS_USERNAME
password: $OS_PASSWORD
project_name: $OS_PROJECT_NAME
project_domain_name: $OS_PROJECT_DOMAIN_ID
user_domain_name: $OS_USER_DOMAIN_ID
EOL
openstack vim register --config-file vim_config.yaml --is-default VIM0
rm ./vim_config.yaml
fi

View File

@ -1,56 +0,0 @@
#!/bin/bash
#
# 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 "Deleting VNF forwarding graph VNFFG1"
for vnffg in VNFFG1; do
vnffg_id=$(openstack vnf graph list | grep $vnffg | awk '{print $2}')
if [ -n "$vnffg_id" ]; then
openstack vnf graph delete $vnffg_id
fi
done
sleep 5
echo "Deleting VNFs"
for vnf_name in VNF1 VNF2; do
vnf_id=$(openstack vnf list | grep $vnf_name | awk '{print $2}')
if [ -n "$vnf_id" ]; then
openstack vnf delete $vnf_id
fi
done
echo "Deleting VNF descriptors"
for vnfd_name in VNFD1 VNFD2; do
vnfd_id=$(openstack vnf descriptor list | grep $vnfd_name | awk '{print $2}')
if [ -n "$vnfd_id" ]; then
openstack vnf descriptor delete $vnfd_id
fi
done
echo "Deleting http_client and http_server"
for server_name in http_client http_server; do
server_id=$(openstack server list | grep $server_name | awk '{print $2}')
if [ -n "$server_id" ]; then
openstack server delete $server_id
fi
done
sleep 5
echo "Deleting VIM0"
vim_id=$(openstack vim list | grep VIM0 | awk '{print $2}')
if [ -n "$vim_id" ]; then
openstack vim delete $vim_id
fi

View File

@ -1,64 +0,0 @@
#!/bin/bash
#
# 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.
network_name='net0'
network_id=$(openstack network list | grep $network_name | awk '{print $2}')
if [ -z "$network_id" ]; then
echo "Creating network net0"
openstack network create $network_name --provider-network-type=vxlan --provider-segment 1005
openstack subnet create --network $network_name --subnet-range 10.0.10.0/24 subnet-test
network_id=$(openstack network list | grep $network_name | awk '{print $2}')
fi
echo "Creating HTTP client"
openstack server create --flavor m1.tiny --image cirros-0.5.2-x86_64-disk --nic net-id=$network_id http_client
echo "Creating HTTP server"
openstack server create --flavor m1.tiny --image cirros-0.5.2-x86_64-disk --nic net-id=$network_id http_server
sleep 15
ip_src=$(openstack server list | grep http_client | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+')
network_source_port_id=$(openstack port list | grep $ip_src | awk '{print $2}')
ip_dst=$(openstack server list | grep http_server | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+')
network_dest_port_id=$(openstack port list | grep $ip_dst | awk '{print $2}')
echo "Creating/ Updating ns_param.yaml file"
cat > ../../samples/tosca-templates/vnffgd/vnffg-param-file.yaml << EOL
net_src_port_id: ${network_source_port_id}
ip_dst_pre: ${ip_dst}/24
net_dst_port_id: ${network_dest_port_id}
dst_port_range: 80-80
EOL
vim_default=$(openstack vim list | grep openstack | awk '{print $10}')
if [ "$vim_default" != "True" ]; then
echo "Creating default VIM"
cat > ./vim_config.yaml << EOL
auth_url: $OS_AUTH_URL
username: $OS_USERNAME
password: $OS_PASSWORD
project_name: $OS_PROJECT_NAME
project_domain_name: $OS_PROJECT_DOMAIN_ID
user_domain_name: $OS_USER_DOMAIN_ID
EOL
openstack vim register --config-file vim_config.yaml --is-default VIM0
rm ./vim_config.yaml
fi
echo "Create VNF1 and VNF2"
openstack vnf descriptor create --vnfd-file ../../samples/tosca-templates/vnffgd/tosca-vnffg-vnfd1.yaml VNFD1
openstack vnf create --vnfd-name VNFD1 --vim-name VIM0 VNF1
openstack vnf descriptor create --vnfd-file ../../samples/tosca-templates/vnffgd/tosca-vnffg-vnfd2.yaml VNFD2
openstack vnf create --vnfd-name VNFD2 --vim-name VIM0 VNF2

View File

@ -81,8 +81,6 @@ TACKER_NOVA_URL=${TACKER_NOVA_URL:-http://127.0.0.1:8774/v2}
TACKER_NOVA_CA_CERTIFICATES_FILE=${TACKER_NOVA_CA_CERTIFICATES_FILE:-}
TACKER_NOVA_API_INSECURE=${TACKER_NOVA_API_INSECURE:-False}
CEILOMETER_CONF_DIR=/etc/ceilometer
VNF_PACKAGE_CSAR_PATH=${VNF_PACKAGE_CSAR_PATH:=$TACKER_DATA_DIR/vnfpackage}
FILESYSTEM_STORE_DATA_DIR=${FILESYSTEM_STORE_DATA_DIR:=$TACKER_DATA_DIR/csar_files}
GLANCE_DEFAULT_BACKEND=${GLANCE_DEFAULT_BACKEND:=file}
@ -268,12 +266,6 @@ function configure_tacker {
iniset "/$Q_PLUGIN_CONF_FILE" ml2_type_flat flat_networks $PUBLIC_PHYSICAL_NETWORK,$MGMT_PHYS_NET
iniset "/$Q_PLUGIN_CONF_FILE" ovs bridge_mappings $PUBLIC_PHYSICAL_NETWORK:$PUBLIC_BRIDGE,$MGMT_PHYS_NET:$BR_MGMT
# Experimental settings for monitor alarm auth settings,
# Will be changed according to new implementation.
iniset $TACKER_CONF alarm_auth username admin
iniset $TACKER_CONF alarm_auth password "$ADMIN_PASSWORD"
iniset $TACKER_CONF alarm_auth project_name admin
echo "Creating bridge"
sudo ovs-vsctl --may-exist add-br ${BR_MGMT}
fi
@ -365,9 +357,6 @@ function openstack_image_create {
function tacker_check_and_download_images {
local image_url
image_url[0]="http://download.cirros-cloud.net/0.5.2/cirros-0.5.2-x86_64-disk.img"
# Customized image of OpenWRT 15.05.1 that can fix the continuously
# respawning OpenWRT-based VNFs.
image_url[1]="$TACKER_DIR/samples/images/openwrt-x86-kvm_guest-combined-ext4.img.gz"
local image_fname image_name glance_name
local gz_pattern="\.gz$"
@ -379,9 +368,6 @@ function tacker_check_and_download_images {
do
image_fname=`basename "${image_url[$index]}"`
glance_name=${image_fname%.*}
if [[ $glance_name =~ "openwrt" ]]; then
glance_name="OpenWRT"
fi
image_name=`openstack image list | grep "$glance_name" | awk '{print $4}'`
if [[ $image_name == "" ]]; then
if [[ ! -f $FILES/$image_fname || "$(stat -c "%s" $FILES/$image_fname)" = "0" ]]; then
@ -495,11 +481,3 @@ function tacker_setup_default_vim_resources {
--ingress --protocol tcp --dst-port 22 test_secgrp
}
function configure_maintenance_event_types {
local event_definitions_file=$CEILOMETER_CONF_DIR/event_definitions.yaml
local maintenance_events_file=$TACKER_DIR/etc/ceilometer/maintenance_event_types.yaml
echo "Configure maintenance event types to $event_definitions_file"
cat $maintenance_events_file >> $event_definitions_file
}

View File

@ -39,18 +39,9 @@ enable_plugin heat https://opendev.org/openstack/heat master
enable_plugin networking-sfc https://opendev.org/openstack/networking-sfc master
enable_plugin barbican https://opendev.org/openstack/barbican master
# Ceilometer
#CEILOMETER_PIPELINE_INTERVAL=300
CEILOMETER_EVENT_ALARM=True
enable_plugin ceilometer https://opendev.org/openstack/ceilometer master
# Aodh
enable_plugin aodh https://opendev.org/openstack/aodh master
# Blazar
enable_plugin blazar https://github.com/openstack/blazar.git master
# Fenix
enable_plugin fenix https://opendev.org/x/fenix.git master
# Tacker
enable_plugin tacker https://opendev.org/openstack/tacker master

View File

@ -40,17 +40,9 @@ enable_plugin heat https://opendev.org/openstack/heat master
enable_plugin networking-sfc https://opendev.org/openstack/networking-sfc master
enable_plugin barbican https://opendev.org/openstack/barbican master
# Ceilometer
#CEILOMETER_PIPELINE_INTERVAL=300
enable_plugin ceilometer https://opendev.org/openstack/ceilometer master
# Aodh
enable_plugin aodh https://opendev.org/openstack/aodh master
# Blazar
enable_plugin blazar https://github.com/openstack/blazar.git master
# Fenix
enable_plugin fenix https://opendev.org/x/fenix.git master
# Tacker
enable_plugin tacker https://opendev.org/openstack/tacker master

View File

@ -49,11 +49,6 @@ if is_service_enabled tacker; then
tacker_check_and_download_images
echo_summary "Setup default VIM resources"
tacker_setup_default_vim_resources
if is_service_enabled ceilometer; then
echo_summary "Configure maintenance event types"
configure_maintenance_event_types
fi
fi
fi

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

View File

@ -11,13 +11,9 @@ frame "tacker-server" {
}
frame "tacker-conductor" {
component "mgmt-driver" as mgmt {
component "mgmt-driver" {
'component Noop as noop
component OpenWRT as wrt
}
component "monitor-driver" as monitor {
component Ping as ping
component Zabbix as zabbix
component "Vnflcm Mgmt Driver" as mgmt
}
component conductor {
component "Conductor Server" as cond
@ -64,18 +60,5 @@ lcm_driver <-down-> ks_driver
ks_driver <-down-> ks
lcm_driver <-[hidden]down-> mgmt
lcm_driver <-[hidden]down-> monitor
'cond <-down-> mgmt
'cond <-down-> monitor
/'
'cond <-right-> noop
cond <-right-> wrt
wrt <-down-> vm
cond <-down-> ping
ping <-down-> vm
cond <-down-> zabbix
zabbix <-down-> vm
mgmt <-[hidden]down-> monitor
'/
@enduml

View File

@ -0,0 +1,173 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="934px" preserveAspectRatio="none" style="width:1008px;height:934px;background:#FFFFFF;" version="1.1" viewBox="0 0 1008 934" width="1008px" zoomAndPan="magnify"><defs/><g><!--MD5=[b2f4bb23dcf1cc4ab5b737cddde40d6f]
cluster tacker-server--><g id="cluster_tacker-server"><rect fill="none" height="181" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="378" x="506" y="69"/><path d="M624,69 L624,78.2969 L614,88.2969 L506,88.2969 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="108" x="509" y="82.9951">tacker-server</text></g><!--MD5=[4ef80439e1ef409f8f3a0ec422262701]
cluster server--><g id="cluster_server"><rect fill="none" height="114" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="330" x="530" y="112"/><rect fill="none" height="10" style="stroke:#181818;stroke-width:1.0;" width="15" x="840" y="117"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="838" y="119"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="838" y="123"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="52" x="669" y="137.9951">server</text></g><!--MD5=[7bf92410ac0250ea3609588de63b8146]
cluster tacker-conductor--><g id="cluster_tacker-conductor"><rect fill="none" height="406" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="671" x="7" y="274"/><path d="M154,274 L154,283.2969 L144,293.2969 L7,293.2969 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="137" x="10" y="287.9951">tacker-conductor</text></g><!--MD5=[410ee69351307ae5bd2a7be181265a56]
cluster mgmt-driver--><g id="cluster_mgmt-driver"><rect fill="none" height="97" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="206" x="31" y="559"/><rect fill="none" height="10" style="stroke:#181818;stroke-width:1.0;" width="15" x="217" y="564"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="215" y="566"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="215" y="570"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="97" x="85.5" y="584.9951">mgmt-driver</text></g><!--MD5=[14fa2a3c2d4c209700102e0d0b961ff1]
cluster conductor--><g id="cluster_conductor"><rect fill="none" height="203" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="206" x="448" y="317"/><rect fill="none" height="10" style="stroke:#181818;stroke-width:1.0;" width="15" x="634" y="322"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="632" y="324"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="632" y="328"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="81" x="510.5" y="342.9951">conductor</text></g><!--MD5=[b96263a6e3ccc8d9646ad6160c88315b]
cluster infra--><g id="cluster_infra"><rect fill="none" height="97" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="393" x="261" y="559"/><rect fill="none" height="10" style="stroke:#181818;stroke-width:1.0;" width="15" x="634" y="564"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="632" y="566"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="632" y="570"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="89" x="413" y="584.9951">infra-driver</text></g><!--MD5=[e8f3788ad7b97e8de68b4194558bc2a1]
cluster db--><g id="cluster_db"><path d="M702,554 C702,544 846.5,544 846.5,544 C846.5,544 991,544 991,554 L991,646 C991,656 846.5,656 846.5,656 C846.5,656 702,656 702,646 L702,554 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><path d="M702,554 C702,564 846.5,564 846.5,564 C846.5,564 991,564 991,554 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="76" x="808.5" y="578.9951">tacker DB</text></g><!--MD5=[7e36013a18f7cfa28a27b0b0724d505c]
cluster NFV infrastructures--><g id="cluster_NFV infrastructures"><path d="M307.8497,715.6483 C316.3833,700.3905 328.527,701.4589 338.8189,713.6655 C351.7385,693.2148 363.6304,696.3038 376.2137,713.9952 C383.9806,696.4117 395.8377,695.9602 406.6295,711.1914 C418.6242,696.0451 428.8197,699.439 438.9988,713.2229 C447.1825,698.2706 461.435,697.4388 471.7496,710.7541 C479.2678,695.789 492.814,693.5259 503.4364,707.3356 C514.8539,689.0866 532.6066,692.2963 539.2173,711.8815 C546.5662,693.1165 562.0919,692.2852 572.4271,709.0936 C583.9153,696.8767 593.0269,696.5987 600.6654,712.9049 C611.0893,697.598 624.3855,692.9469 636.4102,711.1998 C645.4561,698.8006 658.7826,696.6631 666.3323,712.7703 C674.7585,697.7351 690.2202,697.6528 698.7085,712.7034 C708.9397,694.3748 723.4826,696.2919 734.0647,712.3426 C749.9397,697.6082 761.7531,696.9617 771,719 C774.8289,717.7176 777.0062,718.8642 776.6141,723.2103 C796.8253,733.6443 801.685,752.0383 780.8771,766.5107 C799.1673,778.2811 804.7607,790.5269 785.6763,806.7544 C803.9631,822.2241 803.8957,842.3915 779.8549,852.4713 C799.8221,873.4152 788.6717,891.9502 764,897 C766.7913,895.933 768.008,897.849 767.7082,900.2784 C758.6464,913.8414 743.7041,916.3319 734.4431,900.5039 C725.5615,921.0495 711.2672,917.4913 698.7896,904.3048 C687.5556,918.1947 677.6743,916.7793 668.8899,901.7703 C660.3036,916.1642 648.6787,921.9473 636.5713,905.4546 C625.9389,922.7958 615.5981,922.427 603.8249,906.5801 C593.8801,922.3683 581.867,921.3448 572.4084,906.088 C561.9168,922.9044 550.9816,924.2356 537.5476,909.3207 C528.9111,927.0637 511.583,927.2378 502.7974,909.4666 C492.4044,923.5887 477.1847,919.9024 470.4645,905.3282 C461.7832,919.5106 449.6643,920.3514 441.6796,904.6572 C432.4426,918.6395 417.4943,919.9385 410.0853,902.8013 C399.4842,919.3601 384.7625,919.2721 374.8719,902.0604 C362.3963,916.7418 350.95,917.716 340.65,899.7779 C325.532,916.2524 305.3168,911.0153 299,890 C301.7673,890.6916 301.8654,892.2036 300.6479,894.3907 C279.3417,883.9562 282.906,863.4482 300.5672,852.9378 C275.0379,842.7215 278.7317,821.9734 296.4457,807.8079 C279.1766,794.4925 276.8862,778.6403 298.9988,767.8406 C272.1371,747.5545 277.4017,725.3327 306,712 C308.43,711.9427 309.3543,713.7107 307.8497,715.6483 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="155" x="457.5" y="729.9951">NFV infrastructures</text></g><!--MD5=[7f55565919cad08ec1768968c99e2901]
cluster os--><g id="cluster_os"><polygon fill="none" points="578,765,588,755,747,755,747,863,737,873,578,873,578,765" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="737" x2="747" y1="765" y2="755"/><line style="stroke:#181818;stroke-width:1.0;" x1="578" x2="737" y1="765" y2="765"/><line style="stroke:#181818;stroke-width:1.0;" x1="737" x2="737" y1="765" y2="873"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="85" x="616" y="780.9951">OpenStack</text></g><!--MD5=[a81896ea8627d2fab2c19a6a59e223d0]
cluster ks--><g id="cluster_ks"><polygon fill="none" points="323,765,333,755,538,755,538,863,528,873,323,873,323,765" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="528" x2="538" y1="765" y2="755"/><line style="stroke:#181818;stroke-width:1.0;" x1="323" x2="528" y1="765" y2="765"/><line style="stroke:#181818;stroke-width:1.0;" x1="528" x2="528" y1="765" y2="873"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="93" x="380" y="780.9951">Kubernetes</text></g><!--MD5=[dfb0996127bd4879b498e35905689047]
entity lcm--><g id="elem_lcm"><rect fill="#F1F1F1" height="62.5938" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="131" x="546.5" y="147"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="657.5" y="152"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="655.5" y="154"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="655.5" y="158"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="89" x="561.5" y="179.9951">VNF Lifecycle</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="91" x="561.5" y="196.292">Management</text></g><!--MD5=[7d7cf5c833774a9065472aa9e96876d8]
entity vnfpkgm--><g id="elem_vnfpkgm"><rect fill="#F1F1F1" height="62.5938" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="131" x="712.5" y="147"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="823.5" y="152"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="821.5" y="154"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="821.5" y="158"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="90" x="727.5" y="179.9951">VNF Package</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="91" x="727.5" y="196.292">Management</text></g><!--MD5=[52025288e216a85a7b6b26f1ab881e5a]
entity mgmt--><g id="elem_mgmt"><rect fill="#F1F1F1" height="46.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="173" x="47.5" y="594"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="200.5" y="599"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="198.5" y="601"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="198.5" y="605"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="133" x="62.5" y="626.9951">Vnflcm Mgmt Driver</text></g><!--MD5=[1611d2e703c8690bc3d5266415755a2a]
entity cond--><g id="elem_cond"><rect fill="#F1F1F1" height="46.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="161" x="476.5" y="352"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="617.5" y="357"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="615.5" y="359"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="615.5" y="363"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="121" x="491.5" y="384.9951">Conductor Server</text></g><!--MD5=[1d06afe333bd722f0c528ff04ad54d66]
entity lcm_driver--><g id="elem_lcm_driver"><rect fill="#F1F1F1" height="46.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="173" x="464.5" y="458"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="617.5" y="463"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="615.5" y="465"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="615.5" y="469"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="133" x="479.5" y="490.9951">VNF Lifecycle Driver</text></g><!--MD5=[1e1d4ea3e703282a2b21c9c1bba56490]
entity os_driver--><g id="elem_os_driver"><rect fill="#F1F1F1" height="46.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="160" x="478" y="594"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="618" y="599"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="616" y="601"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="616" y="605"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="120" x="493" y="626.9951">OpenStack Driver</text></g><!--MD5=[0df54a92cd73a43e114bd061c2b00bd7]
entity ks_driver--><g id="elem_ks_driver"><rect fill="#F1F1F1" height="46.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="165" x="277.5" y="594"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="422.5" y="599"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="420.5" y="601"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="420.5" y="605"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="125" x="292.5" y="626.9951">Kubernetes Driver</text></g><!--MD5=[7af1cabe265fe092638a612bf0aa64fa]
entity db_if--><g id="elem_db_if"><rect fill="#F1F1F1" height="46.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="125" x="718.5" y="594"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="823.5" y="599"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="821.5" y="601"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="821.5" y="605"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="85" x="733.5" y="626.9951">DB Interface</text></g><!--MD5=[4cb912dbab4f44d920109ddee8736186]
entity maria--><g id="elem_maria"><rect fill="#F1F1F1" height="46.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="97" x="878.5" y="594"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="955.5" y="599"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="953.5" y="601"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="953.5" y="605"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="57" x="893.5" y="626.9951">MariaDB</text></g><!--MD5=[feb13187a4e12c0f7e43ab86a34517b0]
entity vm--><g id="elem_vm"><polygon fill="#F1F1F1" points="621,813,631,803,723,803,723,839.2969,713,849.2969,621,849.2969,621,813" style="stroke:#181818;stroke-width:0.5;"/><line style="stroke:#181818;stroke-width:0.5;" x1="713" x2="723" y1="813" y2="803"/><line style="stroke:#181818;stroke-width:0.5;" x1="621" x2="713" y1="813" y2="813"/><line style="stroke:#181818;stroke-width:0.5;" x1="713" x2="713" y1="813" y2="849.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="62" x="636" y="835.9951">VNF (VM)</text></g><!--MD5=[c1e3f05984ba1120c8c0eb08c3b56370]
entity container--><g id="elem_container"><polygon fill="#F1F1F1" points="366,813,376,803,514,803,514,839.2969,504,849.2969,366,849.2969,366,813" style="stroke:#181818;stroke-width:0.5;"/><line style="stroke:#181818;stroke-width:0.5;" x1="504" x2="514" y1="813" y2="803"/><line style="stroke:#181818;stroke-width:0.5;" x1="366" x2="504" y1="813" y2="813"/><line style="stroke:#181818;stroke-width:0.5;" x1="504" x2="504" y1="813" y2="849.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="108" x="381" y="835.9951">VNF (Container)</text></g><!--MD5=[4a65e84059005d12693a083370a06717]
entity client--><g id="elem_client"><rect fill="#F1F1F1" height="46.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="125" x="632.5" y="7"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="737.5" y="12"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="735.5" y="14"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="735.5" y="18"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="85" x="647.5" y="39.9951">tacker-client</text></g><!--MD5=[8db5af3cca719067948aa3bf1ae78ac6]
link db_if to maria--><g id="link_db_if_maria"><path d="M848.85,617 C856.96,617 865.06,617 873.17,617 " fill="none" id="db_if-maria" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="878.21,617,869.21,613,873.21,617,869.21,621,878.21,617" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="843.73,617,852.73,621,848.73,617,852.73,613,843.73,617" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[43cd503c39e4bd6286d0c784c2020f9b]
link client to lcm--><g id="link_client_lcm"><path d="M679.82,57.8 C666.35,81.57 646.58,116.46 631.86,142.45 " fill="none" id="client-lcm" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="629.36,146.87,637.2879,141.0263,631.833,142.5244,630.3349,137.0695,629.36,146.87" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="682.39,53.25,674.4767,59.1134,679.9278,57.6017,681.4395,63.0529,682.39,53.25" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[62312b7427b3379f30726866e933d2f1]
link client to vnfpkgm--><g id="link_client_vnfpkgm"><path d="M710.18,57.8 C723.65,81.57 743.42,116.46 758.14,142.45 " fill="none" id="client-vnfpkgm" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="760.64,146.87,759.6651,137.0695,758.167,142.5244,752.7121,141.0263,760.64,146.87" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="707.61,53.25,708.5605,63.0529,710.0722,57.6017,715.5233,59.1134,707.61,53.25" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[f3aa643efed49c2cdb0754d5941029b7]
link lcm to db_if--><g id="link_lcm_db_if"><path d="M630.3,215.07 C638,230.55 646.81,249 654,266 C704.08,384.42 753.01,530.12 772.34,589.21 " fill="none" id="lcm-db_if" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="773.9,593.99,774.9018,584.1922,772.3446,589.2381,767.2987,586.6809,773.9,593.99" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="627.96,210.37,628.4072,220.2087,630.1961,214.8421,635.5626,216.631,627.96,210.37" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[2f40de9eb0b06ca8d87fa0bb8a4468f3]
link vnfpkgm to db_if--><g id="link_vnfpkgm_db_if"><path d="M783.09,215.4 C785.04,230.92 787.04,249.32 788,266 C794.7,382.25 792.62,411.65 788,528 C787.19,548.4 785.33,571.4 783.73,588.77 " fill="none" id="vnfpkgm-db_if" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="783.24,593.97,788.0451,585.3728,783.6965,588.9909,780.0785,584.6424,783.24,593.97" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="782.43,210.25,779.5939,219.6817,783.059,215.2103,787.5304,218.6753,782.43,210.25" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[28a94ae21aed01acaeaba50361e0e5f3]
link lcm to cond--><g id="link_lcm_cond"><path d="M601.81,215.55 C591.05,253.59 574.34,312.68 564.66,346.93 " fill="none" id="lcm-cond" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="563.28,351.79,569.5778,344.2178,564.6404,346.9786,561.8795,342.0412,563.28,351.79" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="603.29,210.32,596.9773,217.8798,601.9202,215.1287,604.6713,220.0715,603.29,210.32" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[a2e28fb29557a29a83e7b67fde3c7f07]
link cond to lcm_driver--><g id="link_cond_lcm_driver"><path d="M555.43,403.19 C554.55,418.53 553.44,437.62 552.56,452.94 " fill="none" id="cond-lcm_driver" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="552.27,457.98,556.8018,449.2357,552.5695,452.989,548.8162,448.7566,552.27,457.98" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="555.73,398.06,551.2231,406.8171,555.4448,403.0519,559.21,407.2735,555.73,398.06" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[a27e2d377de41162c9da00fd99d1f429]
link vnfpkgm to cond--><g id="link_vnfpkgm_cond"><path d="M742.82,213.63 C728.21,227.59 710.97,243.76 695,258 C659.16,289.97 616.7,325.29 588.44,348.46 " fill="none" id="vnfpkgm-cond" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="584.37,351.79,593.8623,349.1638,588.2321,348.6145,588.7814,342.9843,584.37,351.79" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="746.48,210.14,737.2113,213.4704,742.8668,213.5961,742.7411,219.2516,746.48,210.14" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[e1ea5324ab0abd99adea1b10743575ee]
link cond to db_if--><g id="link_cond_db_if"><path d="M590.98,401.66 C610.55,417.09 635.11,437.64 655,458 C697,501 739.21,557.2 762.54,589.68 " fill="none" id="cond-db_if" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="765.57,593.91,763.5906,584.2621,762.6625,589.8423,757.0823,588.9142,765.57,593.91" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="586.63,398.25,591.237,406.9549,590.5621,401.3385,596.1785,400.6636,586.63,398.25" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[49a113382cce3b63d0a2fae9692c1263]
link lcm_driver to db_if--><g id="link_lcm_driver_db_if"><path d="M599.83,506.59 C617.1,515.56 636.57,525.96 654,536 C684.53,553.58 718.23,574.9 743.24,591.11 " fill="none" id="lcm_driver-db_if" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="747.49,593.87,742.1349,585.6043,743.3014,591.1395,737.7661,592.3061,747.49,593.87" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="595.02,504.1,601.1736,511.7898,599.4603,506.3987,604.8514,504.6854,595.02,504.1" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[81e3960ad7b4f82b017bf490c45349a2]
link lcm_driver to os_driver--><g id="link_lcm_driver_os_driver"><path d="M552.42,509.27 C553.64,532.45 555.37,565.58 556.58,588.76 " fill="none" id="lcm_driver-os_driver" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="556.84,593.84,560.3725,584.6464,556.5832,588.8466,552.383,585.0573,556.84,593.84" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="552.16,504.13,548.6289,513.3241,552.4175,509.1234,556.6183,512.912,552.16,504.13" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[7675ad822ae057a4200429760b0f902e]
link os_driver to os--><g id="link_os_driver_os"><path d="M561.69,645.3 C565.43,672.955 571.3725,716.89 576.4463,754.3938 C576.7634,756.7377 577.0771,759.0566 577.3866,761.3448 C577.5414,762.4889 577.6952,763.6253 577.8478,764.7534 C577.886,765.0354 577.924,765.3169 577.9621,765.5979 " fill="none" id="os_driver-os" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="577.9621,765.5979,580.7193,756.1428,577.2917,760.643,572.7915,757.2154,577.9621,765.5979" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="561,640.15,558.2442,649.6054,561.6711,645.1048,566.1718,648.5317,561,640.15" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[d5b1fa3335b03a914642288bc645ea06]
link lcm_driver to ks_driver--><g id="link_lcm_driver_ks_driver"><path d="M507.19,506.74 C492.27,515.57 475.67,525.85 461,536 C436.37,553.04 409.88,574.13 390.21,590.38 " fill="none" id="lcm_driver-ks_driver" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="385.87,593.98,395.3506,591.312,389.7181,590.7875,390.2426,585.155,385.87,593.98" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="511.77,504.05,501.9855,505.1739,507.4625,506.5888,506.0476,512.0659,511.77,504.05" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[cb38b57e89f7003dfbbc78ee90c80e1e]
link ks_driver to ks--><g id="link_ks_driver_ks"><path d="M356.18,645.3 C352.305,672.955 346.15,716.89 340.895,754.3938 " fill="none" id="ks_driver-ks" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="340.895,754.3938,346.1052,746.0359,341.5888,749.4421,338.1826,744.9258,340.895,754.3938" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="356.9,640.15,351.6809,648.5023,356.2009,645.1009,359.6023,649.6209,356.9,640.15" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[5cbdad6cb1ad49ff0416bd24b6da13a7]
link lcm_driver to mgmt--><!--MD5=[508e410c4ede39f6a0741ffb12dc985b]
@startuml
'# Components
component "tacker-client" as client
frame "tacker-server" {
component server {
component "VNF Lifecycle\nManagement" as lcm
component "VNF Package\nManagement" as vnfpkgm
}
}
frame "tacker-conductor" {
component "mgmt-driver" {
'component Noop as noop
component "Vnflcm Mgmt Driver" as mgmt
}
component conductor {
component "Conductor Server" as cond
component "VNF Lifecycle Driver" as lcm_driver
}
component "infra-driver" as infra {
component "OpenStack Driver" as os_driver
component "Kubernetes Driver" as ks_driver
}
}
database "tacker DB" as db {
component "DB Interface" as db_if
component "MariaDB" as maria
db_if <-right-> maria
}
cloud "NFV infrastructures" {
node "OpenStack" as os {
node "VNF (VM)" as vm
}
node "Kubernetes" as ks {
node "VNF (Container)" as container
}
}
'# Relationships
client <-down-> lcm
client <-down-> vnfpkgm
lcm <-down-> db_if
vnfpkgm <-down-> db_if
lcm <-down-> cond
cond <-down-> lcm_driver
vnfpkgm <-down-> cond
cond <-down-> db_if
lcm_driver <-down-> db_if
lcm_driver <-down-> os_driver
os_driver <-down-> os
lcm_driver <-down-> ks_driver
ks_driver <-down-> ks
lcm_driver <-[hidden]down-> mgmt
@enduml
@startuml
component "tacker-client" as client
frame "tacker-server" {
component server {
component "VNF Lifecycle\nManagement" as lcm
component "VNF Package\nManagement" as vnfpkgm
}
}
frame "tacker-conductor" {
component "mgmt-driver" {
component "Vnflcm Mgmt Driver" as mgmt
}
component conductor {
component "Conductor Server" as cond
component "VNF Lifecycle Driver" as lcm_driver
}
component "infra-driver" as infra {
component "OpenStack Driver" as os_driver
component "Kubernetes Driver" as ks_driver
}
}
database "tacker DB" as db {
component "DB Interface" as db_if
component "MariaDB" as maria
db_if <-right-> maria
}
cloud "NFV infrastructures" {
node "OpenStack" as os {
node "VNF (VM)" as vm
}
node "Kubernetes" as ks {
node "VNF (Container)" as container
}
}
client <-down-> lcm
client <-down-> vnfpkgm
lcm <-down-> db_if
vnfpkgm <-down-> db_if
lcm <-down-> cond
cond <-down-> lcm_driver
vnfpkgm <-down-> cond
cond <-down-> db_if
lcm_driver <-down-> db_if
lcm_driver <-down-> os_driver
os_driver <-down-> os
lcm_driver <-down-> ks_driver
ks_driver <-down-> ks
lcm_driver <-[hidden]down-> mgmt
@enduml
PlantUML version 1.2022.7(Mon Aug 22 17:01:30 UTC 2022)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

View File

@ -13,28 +13,10 @@ frame "tacker-server" {
component "NFVOPlugin" as nfvo_plugin
'cond <-down-> vnfm_plugin
}
component "mgmt-driver" as mgmt {
'component Noop as noop
component OpenWRT as wrt
}
component "monitor-driver" as monitor {
component Ping as ping
component Zabbix as zabbix
}
component "infra-driver" as infra {
component "OpenStack Driver" as os_driver
component "Kubernetes Driver" as ks_driver
}
component "vim-driver" as vim {
component "OpenStack Driver" as os_vim
component "Kubernetes Driver" as ks_vim
}
component "policy-action-driver" as policy {
component "AutoHeal" as autoheal
component "AutoScale" as autoscale
component "Respawn" as respawn
component "Log" as log
}
}
frame "tacker-conductor" as cond {
@ -62,7 +44,6 @@ cloud "NFV infrastructures" as nfv_infra {
}
'# Relationships
client <-down-> vnfm
client <-down-> nfvo
vnfm <-down-> vnfm_plugin
@ -71,33 +52,12 @@ nfvo <-down-> nfvo_plugin
vnfm_plugin <-down-> db_vnfm
nfvo_plugin <-down-> db_nfvo
vnfm_plugin <-down-> os_driver
vnfm_plugin <-down-> ks_driver
vnfm_plugin <-down-> policy
vnfm_plugin <-down-> mgmt
vnfm_plugin <-down-> monitor
/'
vnfm_plugin <-down-> autoheal
vnfm_plugin <-down-> autoscale
vnfm_plugin <-down-> respawn
vnfm_plugin <-down-> log
vnfm_plugin <-down-> wrt
vnfm_plugin <-down-> ping
vnfm_plugin <-down-> zabbix
'/
nfvo_plugin <-down-> os_vim
nfvo_plugin <-down-> ks_vim
os_driver <-down-> os
ks_driver <-down-> ks
os_vim <-down-> os
ks_vim <-down-> ks
cond <-[hidden]left-> server
mgmt <-[hidden]down-> monitor
monitor <-[hidden]down-> nfv_infra
@enduml

View File

@ -0,0 +1,168 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="800px" preserveAspectRatio="none" style="width:1124px;height:800px;background:#FFFFFF;" version="1.1" viewBox="0 0 1124 800" width="1124px" zoomAndPan="magnify"><defs/><g><!--MD5=[b2f4bb23dcf1cc4ab5b737cddde40d6f]
cluster tacker-server--><g id="cluster_tacker-server"><rect fill="none" height="477" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="441" x="379" y="69"/><path d="M497,69 L497,78.2969 L487,88.2969 L379,88.2969 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="108" x="382" y="82.9951">tacker-server</text></g><!--MD5=[4ef80439e1ef409f8f3a0ec422262701]
cluster server--><g id="cluster_server"><rect fill="none" height="113" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="248" x="447" y="120"/><rect fill="none" height="10" style="stroke:#181818;stroke-width:1.0;" width="15" x="675" y="125"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="673" y="127"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="673" y="131"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="52" x="545" y="145.9951">server</text></g><!--MD5=[6ad7c0b688d9e902153dd4de2b6da276]
cluster plugin--><g id="cluster_plugin"><rect fill="none" height="97" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="309" x="403" y="289"/><rect fill="none" height="10" style="stroke:#181818;stroke-width:1.0;" width="15" x="692" y="294"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="690" y="296"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="690" y="300"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="48" x="533.5" y="314.9951">plugin</text></g><!--MD5=[104bfd9d1203c33bfb5ee7238b4da5fd]
cluster vim--><g id="cluster_vim"><rect fill="none" height="97" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="393" x="403" y="425"/><rect fill="none" height="10" style="stroke:#181818;stroke-width:1.0;" width="15" x="776" y="430"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="774" y="432"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="774" y="436"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="80" x="559.5" y="450.9951">vim-driver</text></g><!--MD5=[710611cf432e923510fdc86847488e2c]
cluster cond--><g id="cluster_cond"><rect fill="none" height="180" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="266" x="852" y="77"/><path d="M999,77 L999,86.2969 L989,96.2969 L852,96.2969 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="137" x="855" y="90.9951">tacker-conductor</text></g><!--MD5=[14fa2a3c2d4c209700102e0d0b961ff1]
cluster conductor--><g id="cluster_conductor"><rect fill="none" height="97" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1.0;" width="194" x="892" y="128"/><rect fill="none" height="10" style="stroke:#181818;stroke-width:1.0;" width="15" x="1066" y="133"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="1064" y="135"/><rect fill="none" height="2" style="stroke:#181818;stroke-width:1.0;" width="4" x="1064" y="139"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="81" x="948.5" y="153.9951">conductor</text></g><!--MD5=[e8f3788ad7b97e8de68b4194558bc2a1]
cluster db--><g id="cluster_db"><path d="M6,420 C6,410 180.5,410 180.5,410 C180.5,410 355,410 355,420 L355,721 C355,731 180.5,731 180.5,731 C180.5,731 6,731 6,721 L6,420 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><path d="M6,420 C6,430 180.5,430 180.5,430 C180.5,430 355,430 355,420 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="76" x="142.5" y="444.9951">tacker DB</text></g><!--MD5=[c9f065c649f77192c87e0e589cafacf7]
cluster nfv_infra--><g id="cluster_nfv_infra"><path d="M449.8497,581.6483 C458.3833,566.3905 470.527,567.4589 480.8189,579.6655 C493.7385,559.2148 505.6304,562.3038 518.2137,579.9952 C525.9806,562.4117 537.8377,561.9602 548.6295,577.1914 C560.6242,562.0451 570.8197,565.439 580.9988,579.2229 C589.1825,564.2706 603.435,563.4388 613.7496,576.7541 C621.2678,561.789 634.814,559.5259 645.4364,573.3356 C656.8539,555.0866 674.6066,558.2963 681.2173,577.8815 C688.5662,559.1165 704.0919,558.2852 714.4271,575.0936 C725.9153,562.8767 735.0269,562.5987 742.6654,578.9049 C753.0893,563.598 766.3855,558.9469 778.4102,577.1998 C787.4561,564.8006 800.7826,562.6631 808.3323,578.7703 C816.7585,563.7351 832.2202,563.6528 840.7085,578.7034 C850.9397,560.3748 865.4826,562.2919 876.0647,578.3426 C891.9397,563.6082 903.7531,562.9617 913,585 C916.8289,583.7176 919.0062,584.8642 918.6141,589.2103 C938.8253,599.6443 943.685,618.0383 922.8771,632.5107 C941.1673,644.2811 946.7607,656.5269 927.6763,672.7544 C945.9631,688.2241 945.8957,708.3915 921.8549,718.4713 C941.8221,739.4152 930.6717,757.9502 906,763 C908.7913,761.933 910.008,763.849 909.7082,766.2784 C900.6464,779.8414 885.7041,782.3319 876.4431,766.5039 C867.5615,787.0495 853.2672,783.4913 840.7896,770.3048 C829.5556,784.1947 819.6743,782.7793 810.8899,767.7703 C802.3036,782.1642 790.6787,787.9473 778.5713,771.4546 C767.9389,788.7958 757.5981,788.427 745.8249,772.5801 C735.8801,788.3683 723.867,787.3448 714.4084,772.088 C703.9168,788.9044 692.9816,790.2356 679.5476,775.3207 C670.9111,793.0637 653.583,793.2378 644.7974,775.4666 C634.4044,789.5887 619.1847,785.9024 612.4645,771.3282 C603.7832,785.5106 591.6643,786.3514 583.6796,770.6572 C574.4426,784.6395 559.4943,785.9385 552.0853,768.8013 C541.4842,785.3601 526.7625,785.2721 516.8719,768.0604 C504.3963,782.7418 492.95,783.716 482.65,765.7779 C467.532,782.2524 447.3168,777.0153 441,756 C443.7673,756.6916 443.8654,758.2036 442.6479,760.3907 C421.3417,749.9562 424.906,729.4482 442.5672,718.9378 C417.0379,708.7215 420.7317,687.9734 438.4457,673.8079 C421.1766,660.4925 418.8862,644.6403 440.9988,633.8406 C414.1371,613.5545 419.4017,591.3327 448,578 C450.43,577.9427 451.3543,579.7107 449.8497,581.6483 " fill="none" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="155" x="599.5" y="595.9951">NFV infrastructures</text></g><!--MD5=[7f55565919cad08ec1768968c99e2901]
cluster os--><g id="cluster_os"><polygon fill="none" points="720,631,730,621,889,621,889,729,879,739,720,739,720,631" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="879" x2="889" y1="631" y2="621"/><line style="stroke:#181818;stroke-width:1.0;" x1="720" x2="879" y1="631" y2="631"/><line style="stroke:#181818;stroke-width:1.0;" x1="879" x2="879" y1="631" y2="739"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="85" x="758" y="646.9951">OpenStack</text></g><!--MD5=[a81896ea8627d2fab2c19a6a59e223d0]
cluster ks--><g id="cluster_ks"><polygon fill="none" points="465,631,475,621,680,621,680,729,670,739,465,739,465,631" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="670" x2="680" y1="631" y2="621"/><line style="stroke:#181818;stroke-width:1.0;" x1="465" x2="670" y1="631" y2="631"/><line style="stroke:#181818;stroke-width:1.0;" x1="670" x2="670" y1="631" y2="739"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="93" x="522" y="646.9951">Kubernetes</text></g><!--MD5=[764ce7cdcfebcfbe257b920672948601]
entity vnfm--><g id="elem_vnfm"><rect fill="#F1F1F1" height="46.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="75" x="490.5" y="163"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="545.5" y="168"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="543.5" y="170"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="543.5" y="174"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="35" x="505.5" y="195.9951">Vnfm</text></g><!--MD5=[6049a01597386661b8e006843559374f]
entity nfvo--><g id="elem_nfvo"><rect fill="#F1F1F1" height="46.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="70" x="601" y="163"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="651" y="168"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="649" y="170"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="649" y="174"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="30" x="616" y="195.9951">Nfvo</text></g><!--MD5=[6f60fe7827bf82100a1499cf2de5397f]
entity vnfm_plugin--><g id="elem_vnfm_plugin"><rect fill="#F1F1F1" height="46.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="121" x="419.5" y="324"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="520.5" y="329"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="518.5" y="331"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="518.5" y="335"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="81" x="434.5" y="356.9951">VNFMPlugin</text></g><!--MD5=[e66b9c14b92a2bc0f1f9fba1d97ed048]
entity nfvo_plugin--><g id="elem_nfvo_plugin"><rect fill="#F1F1F1" height="46.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="120" x="576" y="324"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="676" y="329"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="674" y="331"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="674" y="335"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="80" x="591" y="356.9951">NFVOPlugin</text></g><!--MD5=[482af39e40fe8ce176102cafc337fa0c]
entity os_vim--><g id="elem_os_vim"><rect fill="#F1F1F1" height="46.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="160" x="620" y="460"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="760" y="465"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="758" y="467"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="758" y="471"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="120" x="635" y="492.9951">OpenStack Driver</text></g><!--MD5=[41bba39302383280e14c2e801ad2847c]
entity ks_vim--><g id="elem_ks_vim"><rect fill="#F1F1F1" height="46.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="165" x="419.5" y="460"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="564.5" y="465"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="562.5" y="467"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="562.5" y="471"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="125" x="434.5" y="492.9951">Kubernetes Driver</text></g><!--MD5=[392dfeaf0bb9a7a29d8d59c18e315c72]
entity Conductor Server--><g id="elem_Conductor Server"><rect fill="#F1F1F1" height="46.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="161" x="908.5" y="163"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="1049.5" y="168"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="1047.5" y="170"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="1047.5" y="174"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="121" x="923.5" y="195.9951">Conductor Server</text></g><!--MD5=[a1d1a3b312770a7130e1b99763ae4353]
entity db_nfvo--><g id="elem_db_nfvo"><rect fill="#F1F1F1" height="46.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="140" x="199" y="460"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="319" y="465"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="317" y="467"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="317" y="471"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="100" x="214" y="492.9951">NFVOPluginDb</text></g><!--MD5=[21d8b7554ac6932f432930ca9efee83e]
entity db_vnfm--><g id="elem_db_vnfm"><rect fill="#F1F1F1" height="46.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="141" x="22.5" y="460"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="143.5" y="465"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="141.5" y="467"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="141.5" y="471"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="101" x="37.5" y="492.9951">VNFMPluginDb</text></g><!--MD5=[4cb912dbab4f44d920109ddee8736186]
entity maria--><g id="elem_maria"><rect fill="#F1F1F1" height="46.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="97" x="132.5" y="669"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="209.5" y="674"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="207.5" y="676"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="207.5" y="680"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="57" x="147.5" y="701.9951">MariaDB</text></g><!--MD5=[feb13187a4e12c0f7e43ab86a34517b0]
entity vm--><g id="elem_vm"><polygon fill="#F1F1F1" points="763,679,773,669,865,669,865,705.2969,855,715.2969,763,715.2969,763,679" style="stroke:#181818;stroke-width:0.5;"/><line style="stroke:#181818;stroke-width:0.5;" x1="855" x2="865" y1="679" y2="669"/><line style="stroke:#181818;stroke-width:0.5;" x1="763" x2="855" y1="679" y2="679"/><line style="stroke:#181818;stroke-width:0.5;" x1="855" x2="855" y1="679" y2="715.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="62" x="778" y="701.9951">VNF (VM)</text></g><!--MD5=[c1e3f05984ba1120c8c0eb08c3b56370]
entity container--><g id="elem_container"><polygon fill="#F1F1F1" points="508,679,518,669,656,669,656,705.2969,646,715.2969,508,715.2969,508,679" style="stroke:#181818;stroke-width:0.5;"/><line style="stroke:#181818;stroke-width:0.5;" x1="646" x2="656" y1="679" y2="669"/><line style="stroke:#181818;stroke-width:0.5;" x1="508" x2="646" y1="679" y2="679"/><line style="stroke:#181818;stroke-width:0.5;" x1="646" x2="646" y1="679" y2="715.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="108" x="523" y="701.9951">VNF (Container)</text></g><!--MD5=[4a65e84059005d12693a083370a06717]
entity client--><g id="elem_client"><rect fill="#F1F1F1" height="46.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="125" x="573.5" y="7"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="678.5" y="12"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="676.5" y="14"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="676.5" y="18"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="85" x="588.5" y="39.9951">tacker-client</text></g><!--MD5=[ad63c54126eb1a3bd9fbc0b3441f167d]
link db_nfvo to maria--><g id="link_db_nfvo_maria"><path d="M257.52,511 C240.65,550.69 209.33,624.36 192.47,664.03 " fill="none" id="db_nfvo-maria" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="190.48,668.69,197.6842,661.9744,192.4375,664.0891,190.3228,658.8424,190.48,668.69" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="259.58,506.15,252.3758,512.8656,257.6225,510.7509,259.7372,515.9976,259.58,506.15" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[c3d28dc8a45b02c29ec7e396d92852c2]
link db_vnfm to maria--><g id="link_db_vnfm_maria"><path d="M104.48,511 C121.35,550.69 152.67,624.36 169.53,664.03 " fill="none" id="db_vnfm-maria" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="171.52,668.69,171.6772,658.8424,169.5625,664.0891,164.3158,661.9744,171.52,668.69" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="102.42,506.15,102.2628,515.9976,104.3775,510.7509,109.6242,512.8656,102.42,506.15" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[d6e018d4ae98ac31585c3ad1a5854e62]
link client to nfvo--><g id="link_client_nfvo"><path d="M636,58.43 C636,86.54 636,129.97 636,157.94 " fill="none" id="client-nfvo" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="636,162.98,640,153.98,636,157.98,632,153.98,636,162.98" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="636,53.06,632,62.06,636,58.06,640,62.06,636,53.06" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[c23d32a409bec3c5005485b773056960]
link vnfm to vnfm_plugin--><g id="link_vnfm_vnfm_plugin"><path d="M519.88,213.9 C511.05,243.14 497.03,289.6 488.18,318.92 " fill="none" id="vnfm-vnfm_plugin" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="486.69,323.82,493.1115,316.3525,488.1294,319.0317,485.4502,314.0495,486.69,323.82" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="521.33,209.11,514.9023,216.5723,519.8867,213.8972,522.5618,218.8815,521.33,209.11" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[e41df77064e8c7010d1b6075eb7337cc]
link nfvo to nfvo_plugin--><g id="link_nfvo_nfvo_plugin"><path d="M636,214.28 C636,243.43 636,289.37 636,318.57 " fill="none" id="nfvo-nfvo_plugin" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="636,323.82,640,314.82,636,318.82,632,314.82,636,323.82" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="636,209.11,632,218.11,636,214.11,640,218.11,636,209.11" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[efc025505ca4784a151779ce67f57315]
link vnfm_plugin to db_vnfm--><g id="link_vnfm_plugin_db_vnfm"><path d="M414.15,349.52 C351.3,353.3 255.43,365.29 181,402 C154.83,414.91 130.74,437.94 114.41,455.99 " fill="none" id="vnfm_plugin-db_vnfm" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="110.83,459.99,119.8076,455.9399,114.1598,456.2601,113.8397,450.6123,110.83,459.99" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="419.37,349.22,410.1559,345.7415,414.3782,349.5061,410.6136,353.7284,419.37,349.22" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[f9293f68eada8d4ce87d728727a5d982]
link nfvo_plugin to db_nfvo--><g id="link_nfvo_plugin_db_nfvo"><path d="M601.77,373.01 C588.71,381.22 573.28,389.4 558,394 C491.94,413.87 469,381.95 403,402 C364.98,413.55 326.55,438.12 300.65,457 " fill="none" id="nfvo_plugin-db_nfvo" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="296.6,459.98,306.2173,457.8568,300.6238,457.0121,301.4686,451.4186,296.6,459.98" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="606.1,370.23,596.3641,371.7171,601.8899,372.9273,600.6797,378.4532,606.1,370.23" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[54b9d58d667c258e54230bc21037c7c9]
link nfvo_plugin to os_vim--><g id="link_nfvo_plugin_os_vim"><path d="M648.72,374.64 C659.9,398.04 676.07,431.89 687.25,455.3 " fill="none" id="nfvo_plugin-os_vim" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="689.42,459.84,689.1487,449.9949,687.2642,455.3286,681.9305,453.4441,689.42,459.84" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="646.57,370.13,646.8413,379.9751,648.7258,374.6414,654.0595,376.5259,646.57,370.13" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[cba735c43583ad6600a2b2eb96c05b12]
link nfvo_plugin to ks_vim--><g id="link_nfvo_plugin_ks_vim"><path d="M610.28,373.72 C586.59,397.41 551.61,432.39 527.87,456.13 " fill="none" id="nfvo_plugin-ks_vim" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="524.16,459.84,533.3524,456.3045,527.6955,456.3045,527.6955,450.6476,524.16,459.84" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="613.87,370.13,604.6776,373.6655,610.3345,373.6655,610.3345,379.3224,613.87,370.13" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[aad349f46b08fb46a88de6c49123a200]
link os_vim to os--><g id="link_os_vim_os"><path d="M703.69,511.3 C707.43,538.955 713.3725,582.89 718.4463,620.3938 C718.7634,622.7377 719.0771,625.0566 719.3866,627.3448 C719.5414,628.4889 719.6952,629.6253 719.8478,630.7534 C719.886,631.0354 719.924,631.3169 719.9621,631.5979 " fill="none" id="os_vim-os" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="719.9621,631.5979,722.7193,622.1428,719.2917,626.643,714.7915,623.2154,719.9621,631.5979" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="703,506.15,700.2442,515.6054,703.6711,511.1048,708.1718,514.5317,703,506.15" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[9e034019b82c863caa8ef0aea6ec64ed]
link ks_vim to ks--><g id="link_ks_vim_ks"><path d="M498.18,511.3 C494.305,538.955 488.15,582.89 482.895,620.3938 " fill="none" id="ks_vim-ks" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="482.895,620.3938,488.1052,612.0359,483.5888,615.4421,480.1826,610.9258,482.895,620.3938" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="498.9,506.15,493.6809,514.5023,498.2009,511.1009,501.6023,515.6209,498.9,506.15" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[27b2df526f2d6f1f7ac9ab4d46dc0cec]
link server to cond--><!--MD5=[b81852c71e75ecc57a217deab855c5b4]
@startuml
'# Components
component "tacker-client" as client
frame "tacker-server" {
component server {
component "Vnfm" as vnfm
component "Nfvo" as nfvo
}
component plugin {
component "VNFMPlugin" as vnfm_plugin
component "NFVOPlugin" as nfvo_plugin
'cond <-down-> vnfm_plugin
}
component "vim-driver" as vim {
component "OpenStack Driver" as os_vim
component "Kubernetes Driver" as ks_vim
}
}
frame "tacker-conductor" as cond {
component conductor {
component "Conductor Server"
}
}
database "tacker DB" as db {
component "NFVOPluginDb" as db_nfvo
component "VNFMPluginDb" as db_vnfm
component "MariaDB" as maria
db_nfvo <-down-> maria
db_vnfm <-down-> maria
}
cloud "NFV infrastructures" as nfv_infra {
node "OpenStack" as os {
node "VNF (VM)" as vm
}
node "Kubernetes" as ks {
node "VNF (Container)" as container
}
'vm -[hidden]up- ks
}
'# Relationships
client <-down-> nfvo
vnfm <-down-> vnfm_plugin
nfvo <-down-> nfvo_plugin
vnfm_plugin <-down-> db_vnfm
nfvo_plugin <-down-> db_nfvo
nfvo_plugin <-down-> os_vim
nfvo_plugin <-down-> ks_vim
os_vim <-down-> os
ks_vim <-down-> ks
cond <-[hidden]left-> server
@enduml
@startuml
component "tacker-client" as client
frame "tacker-server" {
component server {
component "Vnfm" as vnfm
component "Nfvo" as nfvo
}
component plugin {
component "VNFMPlugin" as vnfm_plugin
component "NFVOPlugin" as nfvo_plugin
}
component "vim-driver" as vim {
component "OpenStack Driver" as os_vim
component "Kubernetes Driver" as ks_vim
}
}
frame "tacker-conductor" as cond {
component conductor {
component "Conductor Server"
}
}
database "tacker DB" as db {
component "NFVOPluginDb" as db_nfvo
component "VNFMPluginDb" as db_vnfm
component "MariaDB" as maria
db_nfvo <-down-> maria
db_vnfm <-down-> maria
}
cloud "NFV infrastructures" as nfv_infra {
node "OpenStack" as os {
node "VNF (VM)" as vm
}
node "Kubernetes" as ks {
node "VNF (Container)" as container
}
}
client <-down-> nfvo
vnfm <-down-> vnfm_plugin
nfvo <-down-> nfvo_plugin
vnfm_plugin <-down-> db_vnfm
nfvo_plugin <-down-> db_nfvo
nfvo_plugin <-down-> os_vim
nfvo_plugin <-down-> ks_vim
os_vim <-down-> os
ks_vim <-down-> ks
cond <-[hidden]left-> server
@enduml
PlantUML version 1.2022.7(Mon Aug 22 17:01:30 UTC 2022)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

View File

@ -47,7 +47,7 @@ see `Middleware Architecture`_.
$ vi /etc/tacker/api-paste.ini
[composite:tackerapi_v1_0]
keystone = request_id catch_errors alarm_receiver external_oauth2_token keystonecontext extensions tackerapiapp_v1_0
keystone = request_id catch_errors external_oauth2_token keystonecontext extensions tackerapiapp_v1_0
[composite:vnfpkgmapi_v1]
keystone = request_id catch_errors external_oauth2_token keystonecontext vnfpkgmapp_v1

View File

@ -136,8 +136,8 @@ identity, see `Middleware Architecture`_.
$ vi /etc/tacker/api-paste.ini
[composite:tackerapi_v1_0]
#keystone = request_id catch_errors alarm_receiver authtoken keystonecontext extensions tackerapiapp_v1_0
keystone = request_id catch_errors alarm_receiver oauth2token keystonecontext extensions tackerapiapp_v1_0
#keystone = request_id catch_errors authtoken keystonecontext extensions tackerapiapp_v1_0
keystone = request_id catch_errors oauth2token keystonecontext extensions tackerapiapp_v1_0
[composite:vnfpkgmapi_v1]
#keystone = request_id catch_errors authtoken keystonecontext vnfpkgmapp_v1

View File

@ -233,10 +233,6 @@ Installing Tacker Server
[database]
connection = mysql+pymysql://tacker:<TACKERDB_PASSWORD>@<MYSQL_IP>:3306/tacker?charset=utf8
...
[tacker]
monitor_driver = ping,http_ping
#. Copy the ``tacker.conf`` to ``/etc/tacker/`` directory.

View File

@ -58,7 +58,7 @@ ETSI NFV-SOL Tacker Implementation
Tacker ETSI NFV-SOL based implementation is described as the following:
.. figure:: ../_images/tacker-design-etsi.png
.. figure:: ../_images/tacker-design-etsi.svg
:figwidth: 700 px
:align: left
:width: 700 px
@ -77,12 +77,8 @@ executed in tacker-server with DB queries. The others are redirected to
infra-driver to execute the actual logics for control and management of
virtualised resources.
Tacker also provides configuring and monitoring system for VNF. The
mgmt-driver or monitor-driver can be called by `Conductor Server`. In Ussuri
release, OpenWRT for mgmt-driver and Ping/Zabbix for monitor-driver are
available.
.. TODO(yoshito-ito): add ActionDriver after the implementation.
Tacker also provides configuring system for VNF. The mgmt-driver can be called
by `Conductor Server`.
.. note:: VIM related operations such as "Register VIM" and "Update VIM" are
not defined in ETSI NFV-SOL. Users may need to use legacy Tacker.
@ -92,18 +88,20 @@ Legacy Tacker Implementation
Legacy Tacker implementation is described as the following:
.. figure:: ../_images/tacker-design-legacy.png
.. figure:: ../_images/tacker-design-legacy.svg
:figwidth: 800 px
:align: left
:width: 800 px
When a REST API call is sent to tacker-server, VNFM and NFVO plugins handle
the request and execute connected methods in each plugin. The each plugin
(NFVOPlugin or VNFMPlugin) invokes required driver methods such as
mgmt-driver, monitor-driver, infra-driver, and vim-driver.
the request and execute connected methods in each plugin. The NFVO plugin
invokes required vim-driver methods.
.. TODO(yoshito-ito): check the new fenix driver to add here.
.. note:: Legacy API features other than the VIM feature have been deprecated.
So only Nfvo receives the API from the tacker-client, but Vnfm and
VNFMPlugin remain because they are used by VNF LCM API V1.
.. _NFV-SOL002 : https://portal.etsi.org/webapp/WorkProgram/Report_WorkItem.asp?WKI_ID=49492
.. _NFV-SOL003 : https://portal.etsi.org/webapp/WorkProgram/Report_WorkItem.asp?WKI_ID=49506
.. _NFV-SOL005 : https://portal.etsi.org/webapp/WorkProgram/Report_WorkItem.asp?WKI_ID=50935

View File

@ -370,7 +370,6 @@ The sample script (``kubernetes_mgmt.py``) uses the
...
tacker.tacker.mgmt.drivers =
noop = tacker.vnfm.mgmt_drivers.noop:VnfMgmtNoop
openwrt = tacker.vnfm.mgmt_drivers.openwrt.openwrt:VnfMgmtOpenWRT
vnflcm_noop = tacker.vnfm.mgmt_drivers.vnflcm_noop:VnflcmMgmtNoop
mgmt-drivers-kubernetes = tacker.vnfm.mgmt_drivers.kubernetes_mgmt:KubernetesMgmtDriver
...

View File

@ -344,7 +344,6 @@ of the tacker.
...
tacker.tacker.mgmt.drivers =
noop = tacker.vnfm.mgmt_drivers.noop:VnfMgmtNoop
openwrt = tacker.vnfm.mgmt_drivers.openwrt.openwrt:VnfMgmtOpenWRT
vnflcm_noop = tacker.vnfm.mgmt_drivers.vnflcm_noop:VnflcmMgmtNoop
ansible_driver = tacker.vnfm.mgmt_drivers.ansible.ansible:DeviceMgmtAnsible

View File

@ -1,34 +0,0 @@
- event_type: 'maintenance.scheduled'
traits:
service:
fields: payload.service
allowed_actions:
fields: payload.allowed_actions
instance_ids:
fields: payload.instance_ids
reply_url:
fields: payload.reply_url
state:
fields: payload.state
session_id:
fields: payload.session_id
actions_at:
fields: payload.actions_at
type: datetime
project_id:
fields: payload.project_id
reply_at:
fields: payload.reply_at
type: datetime
metadata:
fields: payload.metadata
- event_type: 'maintenance.host'
traits:
host:
fields: payload.host
project_id:
fields: payload.project_id
session_id:
fields: payload.session_id
state:
fields: payload.state

View File

@ -11,7 +11,6 @@ namespace = oslo.policy
namespace = oslo.reports
namespace = oslo.service.periodic_tasks
namespace = oslo.service.service
namespace = tacker.alarm_receiver
namespace = tacker.auth
namespace = tacker.common.config
namespace = tacker.common.ext_oauth2_auth
@ -21,18 +20,12 @@ namespace = tacker.keymgr
namespace = tacker.nfvo.drivers.vim.kubernetes_driver
namespace = tacker.nfvo.drivers.vim.openstack_driver
namespace = tacker.nfvo.nfvo_plugin
namespace = tacker.plugins.fenix
namespace = tacker.service
namespace = tacker.sol_refactored.common.config
namespace = tacker.vnflcm.vnflcm_driver
namespace = tacker.vnfm.infra_drivers.kubernetes.kubernetes_driver
namespace = tacker.vnfm.infra_drivers.openstack.openstack
namespace = tacker.vnfm.infra_drivers.openstack.translate_template
namespace = tacker.vnfm.mgmt_drivers.openwrt.openwrt
namespace = tacker.vnfm.monitor
namespace = tacker.vnfm.monitor_drivers.ceilometer.ceilometer
namespace = tacker.vnfm.monitor_drivers.http_ping.http_ping
namespace = tacker.vnfm.monitor_drivers.ping.ping
namespace = tacker.vnfm.nfvo_client
namespace = tacker.vnfm.plugin
namespace = tacker.wsgi

View File

@ -18,7 +18,7 @@ use = egg:Paste#urlmap
[composite:tackerapi_v1_0]
use = call:tacker.auth:pipeline_factory
noauth = request_id catch_errors extensions tackerapiapp_v1_0
keystone = request_id catch_errors alarm_receiver authtoken keystonecontext extensions tackerapiapp_v1_0
keystone = request_id catch_errors authtoken keystonecontext extensions tackerapiapp_v1_0
[composite:vnfpkgmapi_v1]
use = call:tacker.auth:pipeline_factory
@ -56,9 +56,6 @@ paste.filter_factory = oslo_middleware:RequestId.factory
[filter:catch_errors]
paste.filter_factory = oslo_middleware:CatchErrors.factory
[filter:alarm_receiver]
paste.filter_factory = tacker.alarm_receiver:AlarmReceiver.factory
[filter:keystonecontext]
paste.filter_factory = tacker.auth:TackerKeystoneContext.factory

View File

@ -0,0 +1,4 @@
---
upgrade:
- |
Legacy APIs excluding VIM feature are obsoleted.

View File

@ -1,13 +1,3 @@
# Currently the plugins which implicitly require db cli to be
# pre-installed when the database is remote (i.e., MYSQL_HOST
# != host-where-it-is-enabled) is only ceilometer. So it'd be
# more accurate to set the outermost 'when' condition like:
#
# when:
# - devstack_plugins['ceilometer'] | default(false)
# - devstack_localrc['DATABASE_TYPE'] is defined
#
# Either is fine so let's dispense with it to keep it simple.
- block:
- name: install mysql client if needed
include_tasks: mysql.yaml

View File

@ -1,53 +0,0 @@
---
version: '2.0'
std.create_vnf:
type: direct
description: |
Create a VNF and waits till VNF is active.
input:
- body
output:
vnf_id: <% $.vnf_id %>
vim_id: <% $.vim_id %>
mgmt_ip_address: <% $.mgmt_ip_address %>
status: <% $.status %>
task-defaults:
on-error:
- delete_vnf
tasks:
create_vnf:
description: Request to create a VNF.
action: tacker.create_vnf body=<% $.body %>
input:
body: <% $.body %>
publish:
vnf_id: <% task(create_vnf).result.vnf.id %>
vim_id: <% task(create_vnf).result.vnf.vim_id %>
mgmt_ip_address: <% task(create_vnf).result.vnf.mgmt_ip_address %>
status: <% task(create_vnf).result.vnf.status %>
on-success:
- wait_vnf_active
wait_vnf_active: