Add Zaza functional tests
Also change repo URL in layer.yaml, make linter happy and add groovy to the metadata. Change-Id: I09513db77d110fd8acb3bfee7f6d78ae3f053ca3 Co-authored-by: Aurelien Lourot <aurelien.lourot@canonical.com>
This commit is contained in:
parent
cc78ad6bba
commit
70c5d772aa
4
.gitreview
Normal file
4
.gitreview
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
[gerrit]
|
||||||
|
host=review.opendev.org
|
||||||
|
port=29418
|
||||||
|
project=openstack/charm-neutron-api-plugin-ironic.git
|
4
.zuul.yaml
Normal file
4
.zuul.yaml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
- project:
|
||||||
|
templates:
|
||||||
|
- openstack-python3-charm-jobs
|
||||||
|
- openstack-cover-jobs
|
@ -2,7 +2,7 @@ includes:
|
|||||||
- 'layer:openstack'
|
- 'layer:openstack'
|
||||||
- 'interface:neutron-plugin-api-subordinate'
|
- 'interface:neutron-plugin-api-subordinate'
|
||||||
- 'interface:keystone-credentials'
|
- 'interface:keystone-credentials'
|
||||||
repo: https://github.com/gabriel-samfira/charm-neutron-api-plugin-ironic
|
repo: https://opendev.org/openstack/charm-neutron-api-plugin-ironic.git
|
||||||
options:
|
options:
|
||||||
basic:
|
basic:
|
||||||
use_venv: False
|
use_venv: False
|
||||||
|
@ -1,7 +1,3 @@
|
|||||||
from charmhelpers.core.hookenv import (
|
|
||||||
config,
|
|
||||||
log
|
|
||||||
)
|
|
||||||
import charms_openstack.charm as charm
|
import charms_openstack.charm as charm
|
||||||
|
|
||||||
IRONIC_AGENT_CONF = "/etc/neutron/plugins/ml2/ironic_neutron_agent.ini"
|
IRONIC_AGENT_CONF = "/etc/neutron/plugins/ml2/ironic_neutron_agent.ini"
|
||||||
@ -19,11 +15,11 @@ class NeutronIronicAgentCharm(charm.OpenStackCharm):
|
|||||||
release = 'train'
|
release = 'train'
|
||||||
name = 'ironic'
|
name = 'ironic'
|
||||||
group = 'neutron'
|
group = 'neutron'
|
||||||
|
|
||||||
python_version = 3
|
python_version = 3
|
||||||
packages = ['ironic-neutron-agent', 'python3-ironic-neutron-agent']
|
packages = ['ironic-neutron-agent', 'python3-ironic-neutron-agent']
|
||||||
default_service = 'ironic-neutron-agent'
|
default_service = 'ironic-neutron-agent'
|
||||||
services = [default_service,]
|
services = [default_service]
|
||||||
|
|
||||||
restart_map = {
|
restart_map = {
|
||||||
IRONIC_AGENT_CONF: [default_service, ],
|
IRONIC_AGENT_CONF: [default_service, ],
|
||||||
|
@ -10,6 +10,7 @@ subordinate: true
|
|||||||
series:
|
series:
|
||||||
- bionic
|
- bionic
|
||||||
- focal
|
- focal
|
||||||
|
- groovy
|
||||||
provides:
|
provides:
|
||||||
neutron-plugin-api-subordinate:
|
neutron-plugin-api-subordinate:
|
||||||
interface: neutron-plugin-api-subordinate
|
interface: neutron-plugin-api-subordinate
|
||||||
|
@ -1,10 +1,7 @@
|
|||||||
import charms.reactive as reactive
|
import charms.reactive as reactive
|
||||||
import charm.openstack.neutron_ironic as ironic
|
import charm.openstack.neutron_ironic as ironic
|
||||||
|
|
||||||
import json
|
|
||||||
|
|
||||||
from charmhelpers.core.hookenv import (
|
from charmhelpers.core.hookenv import (
|
||||||
config,
|
|
||||||
log,
|
log,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -20,6 +17,7 @@ use_defaults(
|
|||||||
'update-status',
|
'update-status',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@reactive.when('identity-credentials.available')
|
@reactive.when('identity-credentials.available')
|
||||||
def render_stuff(*args):
|
def render_stuff(*args):
|
||||||
with provide_charm_instance() as ironic_charm:
|
with provide_charm_instance() as ironic_charm:
|
||||||
@ -34,7 +32,7 @@ def setup_endpoint(keystone):
|
|||||||
with provide_charm_instance() as charm_class:
|
with provide_charm_instance() as charm_class:
|
||||||
ironic.request_endpoint_information(keystone)
|
ironic.request_endpoint_information(keystone)
|
||||||
charm_class.assess_status()
|
charm_class.assess_status()
|
||||||
|
|
||||||
|
|
||||||
@reactive.when_not('ironic-agent-package.installed')
|
@reactive.when_not('ironic-agent-package.installed')
|
||||||
@reactive.when('neutron-plugin-api-subordinate.available')
|
@reactive.when('neutron-plugin-api-subordinate.available')
|
||||||
|
250
src/tests/bundles/bionic-train.yaml
Normal file
250
src/tests/bundles/bionic-train.yaml
Normal file
@ -0,0 +1,250 @@
|
|||||||
|
options:
|
||||||
|
source: &source cloud:bionic-train/proposed
|
||||||
|
series: bionic
|
||||||
|
local_overlay_enabled: false
|
||||||
|
relations:
|
||||||
|
- - nova-ironic
|
||||||
|
- ironic-api
|
||||||
|
- - ironic-conductor
|
||||||
|
- ironic-api
|
||||||
|
- - neutron-ironic-agent:identity-credentials
|
||||||
|
- keystone
|
||||||
|
- - neutron-ironic-agent
|
||||||
|
- neutron-api
|
||||||
|
- - neutron-openvswitch
|
||||||
|
- neutron-api
|
||||||
|
- - ironic-api:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - ironic-api
|
||||||
|
- keystone
|
||||||
|
- - ironic-api:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - ironic-conductor:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - ironic-conductor
|
||||||
|
- keystone
|
||||||
|
- - ironic-conductor:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - nova-ironic:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-ironic
|
||||||
|
- glance
|
||||||
|
- - nova-ironic
|
||||||
|
- keystone
|
||||||
|
- - nova-ironic
|
||||||
|
- nova-cloud-controller
|
||||||
|
- - neutron-gateway:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - keystone:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - nova-cloud-controller:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - glance:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - neutron-api:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - neutron-api:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - neutron-api:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - neutron-gateway:neutron-plugin-api
|
||||||
|
- neutron-api:neutron-plugin-api
|
||||||
|
- - glance:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - glance:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-cloud-controller:image-service
|
||||||
|
- glance:image-service
|
||||||
|
- - nova-cloud-controller:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-cloud-controller:quantum-network-service
|
||||||
|
- neutron-gateway:quantum-network-service
|
||||||
|
- - nova-cloud-controller:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - nova-cloud-controller:neutron-api
|
||||||
|
- neutron-api:neutron-api
|
||||||
|
- - cinder:image-service
|
||||||
|
- glance:image-service
|
||||||
|
- - cinder:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - cinder:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - cinder:cinder-volume-service
|
||||||
|
- nova-cloud-controller:cinder-volume-service
|
||||||
|
- - cinder:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - placement
|
||||||
|
- mysql
|
||||||
|
- - placement
|
||||||
|
- keystone
|
||||||
|
- - placement
|
||||||
|
- nova-cloud-controller
|
||||||
|
- - ceph-mon:client
|
||||||
|
- nova-ironic:ceph
|
||||||
|
- - ceph-mon:client
|
||||||
|
- glance:ceph
|
||||||
|
- - ceph-radosgw:mon
|
||||||
|
- ceph-mon:radosgw
|
||||||
|
- - ceph-radosgw:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - ceph-osd:mon
|
||||||
|
- ceph-mon:osd
|
||||||
|
- - ceph-radosgw:object-store
|
||||||
|
- glance
|
||||||
|
- - vault:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - vault:certificates
|
||||||
|
- ceph-radosgw
|
||||||
|
- - vault:certificates
|
||||||
|
- cinder
|
||||||
|
- - vault:certificates
|
||||||
|
- glance:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- keystone:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- neutron-api:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- nova-cloud-controller:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- placement:certificates
|
||||||
|
- - vault
|
||||||
|
- ironic-conductor
|
||||||
|
- - vault:certificates
|
||||||
|
- ironic-api:certificates
|
||||||
|
- - ironic-api
|
||||||
|
- hacluster-ironic
|
||||||
|
services:
|
||||||
|
cinder:
|
||||||
|
charm: cs:~openstack-charmers-next/cinder
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
block-device: vdb
|
||||||
|
glance-api-version: 2
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
storage:
|
||||||
|
block-devices: cinder,50G
|
||||||
|
ceph-radosgw:
|
||||||
|
charm: cs:~openstack-charmers-next/ceph-radosgw
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
source: *source
|
||||||
|
namespace-tenants: True
|
||||||
|
ceph-mon:
|
||||||
|
charm: cs:~openstack-charmers-next/ceph-mon
|
||||||
|
num_units: 3
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
expected-osd-count: 3
|
||||||
|
source: *source
|
||||||
|
ceph-osd:
|
||||||
|
charm: cs:~openstack-charmers-next/ceph-osd
|
||||||
|
num_units: 3
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
source: *source
|
||||||
|
storage:
|
||||||
|
osd-devices: 'cinder,30G'
|
||||||
|
glance:
|
||||||
|
charm: cs:~openstack-charmers-next/glance
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
keystone:
|
||||||
|
charm: cs:~openstack-charmers-next/keystone
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
mysql:
|
||||||
|
charm: cs:~openstack-charmers-next/percona-cluster
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=4G
|
||||||
|
options:
|
||||||
|
innodb-buffer-pool-size: 256M
|
||||||
|
max-connections: 1000
|
||||||
|
performance-schema: true
|
||||||
|
neutron-api:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-api
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
flat-network-providers: "physnet1"
|
||||||
|
neutron-security-groups: true
|
||||||
|
openstack-origin: *source
|
||||||
|
manage-neutron-plugin-legacy-mode: false
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
neutron-gateway:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-gateway
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
enable-isolated-metadata: true
|
||||||
|
enable-metadata-network: true
|
||||||
|
bridge-mappings: physnet1:br-ex
|
||||||
|
nova-cloud-controller:
|
||||||
|
charm: cs:~openstack-charmers-next/nova-cloud-controller
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
network-manager: Neutron
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
nova-ironic:
|
||||||
|
charm: cs:~openstack-charmers-next/nova-compute
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
enable-live-migration: false
|
||||||
|
enable-resize: false
|
||||||
|
openstack-origin: *source
|
||||||
|
virt-type: ironic
|
||||||
|
placement:
|
||||||
|
charm: cs:~openstack-charmers-next/placement
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
rabbitmq-server:
|
||||||
|
charm: cs:~openstack-charmers-next/rabbitmq-server
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
hacluster-ironic:
|
||||||
|
charm: cs:~openstack-charmers-next/hacluster
|
||||||
|
num_units: 0
|
||||||
|
ironic-api:
|
||||||
|
charm: cs:~openstack-charmers-next/ironic-api
|
||||||
|
num_units: 3
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
ironic-conductor:
|
||||||
|
charm: cs:~openstack-charmers-next/ironic-conductor
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
max-tftp-block-size: 1418
|
||||||
|
disable-secure-erase: true
|
||||||
|
use-ipxe: true
|
||||||
|
enabled-network-interfaces: "flat, noop"
|
||||||
|
neutron-openvswitch:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-openvswitch
|
||||||
|
num_units: 0
|
||||||
|
options:
|
||||||
|
bridge-mappings: physnet1:br-ex
|
||||||
|
neutron-ironic-agent:
|
||||||
|
charm: ../../../neutron-api-plugin-ironic
|
||||||
|
num_units: 0
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
vault:
|
||||||
|
charm: cs:~openstack-charmers-next/vault
|
||||||
|
num_units: 1
|
250
src/tests/bundles/bionic-ussuri.yaml
Normal file
250
src/tests/bundles/bionic-ussuri.yaml
Normal file
@ -0,0 +1,250 @@
|
|||||||
|
options:
|
||||||
|
source: &source cloud:bionic-ussuri/proposed
|
||||||
|
series: bionic
|
||||||
|
local_overlay_enabled: false
|
||||||
|
relations:
|
||||||
|
- - nova-ironic
|
||||||
|
- ironic-api
|
||||||
|
- - ironic-conductor
|
||||||
|
- ironic-api
|
||||||
|
- - neutron-ironic-agent:identity-credentials
|
||||||
|
- keystone
|
||||||
|
- - neutron-ironic-agent
|
||||||
|
- neutron-api
|
||||||
|
- - neutron-openvswitch
|
||||||
|
- neutron-api
|
||||||
|
- - ironic-api:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - ironic-api
|
||||||
|
- keystone
|
||||||
|
- - ironic-api:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - ironic-conductor:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - ironic-conductor
|
||||||
|
- keystone
|
||||||
|
- - ironic-conductor:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - nova-ironic:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-ironic
|
||||||
|
- glance
|
||||||
|
- - nova-ironic
|
||||||
|
- keystone
|
||||||
|
- - nova-ironic
|
||||||
|
- nova-cloud-controller
|
||||||
|
- - neutron-gateway:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - keystone:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - nova-cloud-controller:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - glance:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - neutron-api:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - neutron-api:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - neutron-api:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - neutron-gateway:neutron-plugin-api
|
||||||
|
- neutron-api:neutron-plugin-api
|
||||||
|
- - glance:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - glance:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-cloud-controller:image-service
|
||||||
|
- glance:image-service
|
||||||
|
- - nova-cloud-controller:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-cloud-controller:quantum-network-service
|
||||||
|
- neutron-gateway:quantum-network-service
|
||||||
|
- - nova-cloud-controller:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - nova-cloud-controller:neutron-api
|
||||||
|
- neutron-api:neutron-api
|
||||||
|
- - cinder:image-service
|
||||||
|
- glance:image-service
|
||||||
|
- - cinder:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - cinder:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - cinder:cinder-volume-service
|
||||||
|
- nova-cloud-controller:cinder-volume-service
|
||||||
|
- - cinder:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - placement
|
||||||
|
- mysql
|
||||||
|
- - placement
|
||||||
|
- keystone
|
||||||
|
- - placement
|
||||||
|
- nova-cloud-controller
|
||||||
|
- - ceph-mon:client
|
||||||
|
- nova-ironic:ceph
|
||||||
|
- - ceph-mon:client
|
||||||
|
- glance:ceph
|
||||||
|
- - ceph-radosgw:mon
|
||||||
|
- ceph-mon:radosgw
|
||||||
|
- - ceph-radosgw:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - ceph-osd:mon
|
||||||
|
- ceph-mon:osd
|
||||||
|
- - ceph-radosgw:object-store
|
||||||
|
- glance
|
||||||
|
- - vault:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - vault:certificates
|
||||||
|
- ceph-radosgw
|
||||||
|
- - vault:certificates
|
||||||
|
- cinder
|
||||||
|
- - vault:certificates
|
||||||
|
- glance:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- keystone:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- neutron-api:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- nova-cloud-controller:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- placement:certificates
|
||||||
|
- - vault
|
||||||
|
- ironic-conductor
|
||||||
|
- - vault:certificates
|
||||||
|
- ironic-api:certificates
|
||||||
|
- - ironic-api
|
||||||
|
- hacluster-ironic
|
||||||
|
services:
|
||||||
|
cinder:
|
||||||
|
charm: cs:~openstack-charmers-next/cinder
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
block-device: vdb
|
||||||
|
glance-api-version: 2
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
storage:
|
||||||
|
block-devices: cinder,50G
|
||||||
|
ceph-radosgw:
|
||||||
|
charm: cs:~openstack-charmers-next/ceph-radosgw
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
source: *source
|
||||||
|
namespace-tenants: True
|
||||||
|
ceph-mon:
|
||||||
|
charm: cs:~openstack-charmers-next/ceph-mon
|
||||||
|
num_units: 3
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
expected-osd-count: 3
|
||||||
|
source: *source
|
||||||
|
ceph-osd:
|
||||||
|
charm: cs:~openstack-charmers-next/ceph-osd
|
||||||
|
num_units: 3
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
source: *source
|
||||||
|
storage:
|
||||||
|
osd-devices: 'cinder,30G'
|
||||||
|
glance:
|
||||||
|
charm: cs:~openstack-charmers-next/glance
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
keystone:
|
||||||
|
charm: cs:~openstack-charmers-next/keystone
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
mysql:
|
||||||
|
charm: cs:~openstack-charmers-next/percona-cluster
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=4G
|
||||||
|
options:
|
||||||
|
innodb-buffer-pool-size: 256M
|
||||||
|
max-connections: 1000
|
||||||
|
performance-schema: true
|
||||||
|
hacluster-ironic:
|
||||||
|
charm: cs:~openstack-charmers-next/hacluster
|
||||||
|
num_units: 0
|
||||||
|
neutron-api:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-api
|
||||||
|
num_units: 3
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
flat-network-providers: "physnet1"
|
||||||
|
neutron-security-groups: true
|
||||||
|
openstack-origin: *source
|
||||||
|
manage-neutron-plugin-legacy-mode: false
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
neutron-gateway:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-gateway
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
enable-isolated-metadata: true
|
||||||
|
enable-metadata-network: true
|
||||||
|
bridge-mappings: physnet1:br-ex
|
||||||
|
nova-cloud-controller:
|
||||||
|
charm: cs:~openstack-charmers-next/nova-cloud-controller
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
network-manager: Neutron
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
nova-ironic:
|
||||||
|
charm: cs:~openstack-charmers-next/nova-compute
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
enable-live-migration: false
|
||||||
|
enable-resize: false
|
||||||
|
openstack-origin: *source
|
||||||
|
virt-type: ironic
|
||||||
|
placement:
|
||||||
|
charm: cs:~openstack-charmers-next/placement
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
rabbitmq-server:
|
||||||
|
charm: cs:~openstack-charmers-next/rabbitmq-server
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
ironic-api:
|
||||||
|
charm: cs:~openstack-charmers-next/ironic-api
|
||||||
|
num_units: 3
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
ironic-conductor:
|
||||||
|
charm: cs:~openstack-charmers-next/ironic-conductor
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
max-tftp-block-size: 1418
|
||||||
|
disable-secure-erase: true
|
||||||
|
use-ipxe: true
|
||||||
|
enabled-network-interfaces: "flat, noop"
|
||||||
|
neutron-openvswitch:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-openvswitch
|
||||||
|
num_units: 0
|
||||||
|
options:
|
||||||
|
bridge-mappings: physnet1:br-ex
|
||||||
|
neutron-ironic-agent:
|
||||||
|
charm: ../../../neutron-api-plugin-ironic
|
||||||
|
num_units: 0
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
vault:
|
||||||
|
charm: cs:~openstack-charmers-next/vault
|
||||||
|
num_units: 1
|
284
src/tests/bundles/focal-ussuri.yaml
Normal file
284
src/tests/bundles/focal-ussuri.yaml
Normal file
@ -0,0 +1,284 @@
|
|||||||
|
options:
|
||||||
|
source: &source distro
|
||||||
|
series: focal
|
||||||
|
local_overlay_enabled: false
|
||||||
|
relations:
|
||||||
|
- - nova-ironic
|
||||||
|
- ironic-api
|
||||||
|
- - ironic-conductor
|
||||||
|
- ironic-api
|
||||||
|
- - neutron-ironic-agent:identity-credentials
|
||||||
|
- keystone
|
||||||
|
- - neutron-ironic-agent
|
||||||
|
- neutron-api
|
||||||
|
- - neutron-openvswitch
|
||||||
|
- neutron-api
|
||||||
|
- - ironic-api:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - ironic-api
|
||||||
|
- keystone
|
||||||
|
- - ironic-api:shared-db
|
||||||
|
- ironic-api-mysql-router:shared-db
|
||||||
|
- - ironic-conductor:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - ironic-conductor
|
||||||
|
- keystone
|
||||||
|
- - ironic-conductor:shared-db
|
||||||
|
- ironic-conductor-mysql-router:shared-db
|
||||||
|
- - nova-ironic:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-ironic
|
||||||
|
- glance
|
||||||
|
- - nova-ironic
|
||||||
|
- keystone
|
||||||
|
- - nova-ironic
|
||||||
|
- nova-cloud-controller
|
||||||
|
- - neutron-gateway:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - keystone:shared-db
|
||||||
|
- keystone-mysql-router:shared-db
|
||||||
|
- - nova-cloud-controller:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - glance:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - neutron-api:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - neutron-api:shared-db
|
||||||
|
- neutron-api-mysql-router:shared-db
|
||||||
|
- - neutron-api:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - neutron-gateway:neutron-plugin-api
|
||||||
|
- neutron-api:neutron-plugin-api
|
||||||
|
- - glance:shared-db
|
||||||
|
- glance-mysql-router:shared-db
|
||||||
|
- - glance:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-cloud-controller:image-service
|
||||||
|
- glance:image-service
|
||||||
|
- - nova-cloud-controller:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-cloud-controller:quantum-network-service
|
||||||
|
- neutron-gateway:quantum-network-service
|
||||||
|
- - nova-cloud-controller:shared-db
|
||||||
|
- nova-cloud-controller-mysql-router:shared-db
|
||||||
|
- - nova-cloud-controller:neutron-api
|
||||||
|
- neutron-api:neutron-api
|
||||||
|
- - cinder:image-service
|
||||||
|
- glance:image-service
|
||||||
|
- - cinder:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - cinder:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - cinder:cinder-volume-service
|
||||||
|
- nova-cloud-controller:cinder-volume-service
|
||||||
|
- - cinder:shared-db
|
||||||
|
- cinder-mysql-router:shared-db
|
||||||
|
- - placement:shared-db
|
||||||
|
- placement-mysql-router:shared-db
|
||||||
|
- - placement
|
||||||
|
- keystone
|
||||||
|
- - placement
|
||||||
|
- nova-cloud-controller
|
||||||
|
- - ceph-mon:client
|
||||||
|
- nova-ironic:ceph
|
||||||
|
- - ceph-mon:client
|
||||||
|
- glance:ceph
|
||||||
|
- - ceph-radosgw:mon
|
||||||
|
- ceph-mon:radosgw
|
||||||
|
- - ceph-radosgw:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - ceph-osd:mon
|
||||||
|
- ceph-mon:osd
|
||||||
|
- - ceph-radosgw:object-store
|
||||||
|
- glance
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- nova-cloud-controller-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- keystone-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- glance-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- neutron-api-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- placement-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- cinder-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- ironic-api-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- ironic-conductor-mysql-router:db-router
|
||||||
|
- - vault-mysql-router:db-router
|
||||||
|
- mysql-innodb-cluster:db-router
|
||||||
|
- - vault:shared-db
|
||||||
|
- vault-mysql-router:shared-db
|
||||||
|
- - vault:certificates
|
||||||
|
- ceph-radosgw
|
||||||
|
- - vault:certificates
|
||||||
|
- cinder
|
||||||
|
- - vault:certificates
|
||||||
|
- glance:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- keystone:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- neutron-api:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- nova-cloud-controller:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- placement:certificates
|
||||||
|
- - vault
|
||||||
|
- ironic-conductor
|
||||||
|
- - vault:certificates
|
||||||
|
- ironic-api:certificates
|
||||||
|
- - ironic-api
|
||||||
|
- hacluster-ironic
|
||||||
|
services:
|
||||||
|
nova-cloud-controller-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
keystone-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
glance-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
neutron-api-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
placement-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
vault-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
cinder-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
ironic-api-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
ironic-conductor-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
mysql-innodb-cluster:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-innodb-cluster
|
||||||
|
num_units: 3
|
||||||
|
constraints: mem=4G
|
||||||
|
options:
|
||||||
|
source: *source
|
||||||
|
cinder:
|
||||||
|
charm: cs:~openstack-charmers-next/cinder
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
block-device: vdb
|
||||||
|
glance-api-version: 2
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
storage:
|
||||||
|
block-devices: cinder,50G
|
||||||
|
ceph-radosgw:
|
||||||
|
charm: cs:~openstack-charmers-next/ceph-radosgw
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
source: *source
|
||||||
|
namespace-tenants: True
|
||||||
|
ceph-mon:
|
||||||
|
charm: cs:~openstack-charmers-next/ceph-mon
|
||||||
|
num_units: 3
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
expected-osd-count: 3
|
||||||
|
source: *source
|
||||||
|
ceph-osd:
|
||||||
|
charm: cs:~openstack-charmers-next/ceph-osd
|
||||||
|
num_units: 3
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
source: *source
|
||||||
|
storage:
|
||||||
|
osd-devices: 'cinder,30G'
|
||||||
|
glance:
|
||||||
|
charm: cs:~openstack-charmers-next/glance
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
keystone:
|
||||||
|
charm: cs:~openstack-charmers-next/keystone
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
neutron-api:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-api
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
flat-network-providers: "physnet1"
|
||||||
|
neutron-security-groups: true
|
||||||
|
openstack-origin: *source
|
||||||
|
manage-neutron-plugin-legacy-mode: false
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
neutron-gateway:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-gateway
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
enable-isolated-metadata: true
|
||||||
|
enable-metadata-network: true
|
||||||
|
bridge-mappings: physnet1:br-ex
|
||||||
|
nova-cloud-controller:
|
||||||
|
charm: cs:~openstack-charmers-next/nova-cloud-controller
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
network-manager: Neutron
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
nova-ironic:
|
||||||
|
charm: cs:~openstack-charmers-next/nova-compute
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
enable-live-migration: false
|
||||||
|
enable-resize: false
|
||||||
|
openstack-origin: *source
|
||||||
|
virt-type: ironic
|
||||||
|
placement:
|
||||||
|
charm: cs:~openstack-charmers-next/placement
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
rabbitmq-server:
|
||||||
|
charm: cs:~openstack-charmers-next/rabbitmq-server
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
hacluster-ironic:
|
||||||
|
charm: cs:~openstack-charmers-next/hacluster
|
||||||
|
num_units: 0
|
||||||
|
ironic-api:
|
||||||
|
charm: cs:~openstack-charmers-next/ironic-api
|
||||||
|
num_units: 3
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
ironic-conductor:
|
||||||
|
charm: cs:~openstack-charmers-next/ironic-conductor
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
max-tftp-block-size: 1418
|
||||||
|
disable-secure-erase: true
|
||||||
|
use-ipxe: true
|
||||||
|
enabled-network-interfaces: "flat, noop"
|
||||||
|
neutron-openvswitch:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-openvswitch
|
||||||
|
num_units: 0
|
||||||
|
options:
|
||||||
|
bridge-mappings: physnet1:br-ex
|
||||||
|
neutron-ironic-agent:
|
||||||
|
charm: ../../../neutron-api-plugin-ironic
|
||||||
|
num_units: 0
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
vault:
|
||||||
|
charm: cs:~openstack-charmers-next/vault
|
||||||
|
num_units: 1
|
284
src/tests/bundles/focal-victoria.yaml
Normal file
284
src/tests/bundles/focal-victoria.yaml
Normal file
@ -0,0 +1,284 @@
|
|||||||
|
options:
|
||||||
|
source: &source cloud:focal-victoria/proposed
|
||||||
|
series: focal
|
||||||
|
local_overlay_enabled: false
|
||||||
|
relations:
|
||||||
|
- - nova-ironic
|
||||||
|
- ironic-api
|
||||||
|
- - ironic-conductor
|
||||||
|
- ironic-api
|
||||||
|
- - neutron-ironic-agent:identity-credentials
|
||||||
|
- keystone
|
||||||
|
- - neutron-ironic-agent
|
||||||
|
- neutron-api
|
||||||
|
- - neutron-openvswitch
|
||||||
|
- neutron-api
|
||||||
|
- - ironic-api:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - ironic-api
|
||||||
|
- keystone
|
||||||
|
- - ironic-api:shared-db
|
||||||
|
- ironic-api-mysql-router:shared-db
|
||||||
|
- - ironic-conductor:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - ironic-conductor
|
||||||
|
- keystone
|
||||||
|
- - ironic-conductor:shared-db
|
||||||
|
- ironic-conductor-mysql-router:shared-db
|
||||||
|
- - nova-ironic:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-ironic
|
||||||
|
- glance
|
||||||
|
- - nova-ironic
|
||||||
|
- keystone
|
||||||
|
- - nova-ironic
|
||||||
|
- nova-cloud-controller
|
||||||
|
- - neutron-gateway:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - keystone:shared-db
|
||||||
|
- keystone-mysql-router:shared-db
|
||||||
|
- - nova-cloud-controller:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - glance:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - neutron-api:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - neutron-api:shared-db
|
||||||
|
- neutron-api-mysql-router:shared-db
|
||||||
|
- - neutron-api:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - neutron-gateway:neutron-plugin-api
|
||||||
|
- neutron-api:neutron-plugin-api
|
||||||
|
- - glance:shared-db
|
||||||
|
- glance-mysql-router:shared-db
|
||||||
|
- - glance:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-cloud-controller:image-service
|
||||||
|
- glance:image-service
|
||||||
|
- - nova-cloud-controller:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-cloud-controller:quantum-network-service
|
||||||
|
- neutron-gateway:quantum-network-service
|
||||||
|
- - nova-cloud-controller:shared-db
|
||||||
|
- nova-cloud-controller-mysql-router:shared-db
|
||||||
|
- - nova-cloud-controller:neutron-api
|
||||||
|
- neutron-api:neutron-api
|
||||||
|
- - cinder:image-service
|
||||||
|
- glance:image-service
|
||||||
|
- - cinder:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - cinder:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - cinder:cinder-volume-service
|
||||||
|
- nova-cloud-controller:cinder-volume-service
|
||||||
|
- - cinder:shared-db
|
||||||
|
- cinder-mysql-router:shared-db
|
||||||
|
- - placement:shared-db
|
||||||
|
- placement-mysql-router:shared-db
|
||||||
|
- - placement
|
||||||
|
- keystone
|
||||||
|
- - placement
|
||||||
|
- nova-cloud-controller
|
||||||
|
- - ceph-mon:client
|
||||||
|
- nova-ironic:ceph
|
||||||
|
- - ceph-mon:client
|
||||||
|
- glance:ceph
|
||||||
|
- - ceph-radosgw:mon
|
||||||
|
- ceph-mon:radosgw
|
||||||
|
- - ceph-radosgw:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - ceph-osd:mon
|
||||||
|
- ceph-mon:osd
|
||||||
|
- - ceph-radosgw:object-store
|
||||||
|
- glance
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- nova-cloud-controller-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- keystone-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- glance-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- neutron-api-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- placement-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- cinder-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- ironic-api-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- ironic-conductor-mysql-router:db-router
|
||||||
|
- - vault-mysql-router:db-router
|
||||||
|
- mysql-innodb-cluster:db-router
|
||||||
|
- - vault:shared-db
|
||||||
|
- vault-mysql-router:shared-db
|
||||||
|
- - vault:certificates
|
||||||
|
- ceph-radosgw
|
||||||
|
- - vault:certificates
|
||||||
|
- cinder
|
||||||
|
- - vault:certificates
|
||||||
|
- glance:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- keystone:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- neutron-api:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- nova-cloud-controller:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- placement:certificates
|
||||||
|
- - vault
|
||||||
|
- ironic-conductor
|
||||||
|
- - vault:certificates
|
||||||
|
- ironic-api:certificates
|
||||||
|
- - ironic-api
|
||||||
|
- hacluster-ironic
|
||||||
|
services:
|
||||||
|
nova-cloud-controller-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
keystone-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
glance-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
neutron-api-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
placement-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
vault-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
cinder-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
ironic-api-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
ironic-conductor-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
mysql-innodb-cluster:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-innodb-cluster
|
||||||
|
num_units: 3
|
||||||
|
constraints: mem=4G
|
||||||
|
options:
|
||||||
|
source: *source
|
||||||
|
cinder:
|
||||||
|
charm: cs:~openstack-charmers-next/cinder
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
block-device: vdb
|
||||||
|
glance-api-version: 2
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
storage:
|
||||||
|
block-devices: cinder,50G
|
||||||
|
ceph-radosgw:
|
||||||
|
charm: cs:~openstack-charmers-next/ceph-radosgw
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
source: *source
|
||||||
|
namespace-tenants: True
|
||||||
|
ceph-mon:
|
||||||
|
charm: cs:~openstack-charmers-next/ceph-mon
|
||||||
|
num_units: 3
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
expected-osd-count: 3
|
||||||
|
source: *source
|
||||||
|
ceph-osd:
|
||||||
|
charm: cs:~openstack-charmers-next/ceph-osd
|
||||||
|
num_units: 3
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
source: *source
|
||||||
|
storage:
|
||||||
|
osd-devices: 'cinder,30G'
|
||||||
|
glance:
|
||||||
|
charm: cs:~openstack-charmers-next/glance
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
keystone:
|
||||||
|
charm: cs:~openstack-charmers-next/keystone
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
neutron-api:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-api
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
flat-network-providers: "physnet1"
|
||||||
|
neutron-security-groups: true
|
||||||
|
openstack-origin: *source
|
||||||
|
manage-neutron-plugin-legacy-mode: false
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
neutron-gateway:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-gateway
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
enable-isolated-metadata: true
|
||||||
|
enable-metadata-network: true
|
||||||
|
bridge-mappings: physnet1:br-ex
|
||||||
|
nova-cloud-controller:
|
||||||
|
charm: cs:~openstack-charmers-next/nova-cloud-controller
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
network-manager: Neutron
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
nova-ironic:
|
||||||
|
charm: cs:~openstack-charmers-next/nova-compute
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
enable-live-migration: false
|
||||||
|
enable-resize: false
|
||||||
|
openstack-origin: *source
|
||||||
|
virt-type: ironic
|
||||||
|
placement:
|
||||||
|
charm: cs:~openstack-charmers-next/placement
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
rabbitmq-server:
|
||||||
|
charm: cs:~openstack-charmers-next/rabbitmq-server
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
hacluster-ironic:
|
||||||
|
charm: cs:~openstack-charmers-next/hacluster
|
||||||
|
num_units: 0
|
||||||
|
ironic-api:
|
||||||
|
charm: cs:~openstack-charmers-next/ironic-api
|
||||||
|
num_units: 3
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
ironic-conductor:
|
||||||
|
charm: cs:~openstack-charmers-next/ironic-conductor
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
max-tftp-block-size: 1418
|
||||||
|
disable-secure-erase: true
|
||||||
|
use-ipxe: true
|
||||||
|
enabled-network-interfaces: "flat, noop"
|
||||||
|
neutron-openvswitch:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-openvswitch
|
||||||
|
num_units: 0
|
||||||
|
options:
|
||||||
|
bridge-mappings: physnet1:br-ex
|
||||||
|
neutron-ironic-agent:
|
||||||
|
charm: ../../../neutron-api-plugin-ironic
|
||||||
|
num_units: 0
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
vault:
|
||||||
|
charm: cs:~openstack-charmers-next/vault
|
||||||
|
num_units: 1
|
284
src/tests/bundles/groovy-victoria.yaml
Normal file
284
src/tests/bundles/groovy-victoria.yaml
Normal file
@ -0,0 +1,284 @@
|
|||||||
|
options:
|
||||||
|
source: &source distro
|
||||||
|
series: groovy
|
||||||
|
local_overlay_enabled: false
|
||||||
|
relations:
|
||||||
|
- - nova-ironic
|
||||||
|
- ironic-api
|
||||||
|
- - ironic-conductor
|
||||||
|
- ironic-api
|
||||||
|
- - neutron-ironic-agent:identity-credentials
|
||||||
|
- keystone
|
||||||
|
- - neutron-ironic-agent
|
||||||
|
- neutron-api
|
||||||
|
- - neutron-openvswitch
|
||||||
|
- neutron-api
|
||||||
|
- - ironic-api:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - ironic-api
|
||||||
|
- keystone
|
||||||
|
- - ironic-api:shared-db
|
||||||
|
- ironic-api-mysql-router:shared-db
|
||||||
|
- - ironic-conductor:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - ironic-conductor
|
||||||
|
- keystone
|
||||||
|
- - ironic-conductor:shared-db
|
||||||
|
- ironic-conductor-mysql-router:shared-db
|
||||||
|
- - nova-ironic:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-ironic
|
||||||
|
- glance
|
||||||
|
- - nova-ironic
|
||||||
|
- keystone
|
||||||
|
- - nova-ironic
|
||||||
|
- nova-cloud-controller
|
||||||
|
- - neutron-gateway:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - keystone:shared-db
|
||||||
|
- keystone-mysql-router:shared-db
|
||||||
|
- - nova-cloud-controller:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - glance:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - neutron-api:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - neutron-api:shared-db
|
||||||
|
- neutron-api-mysql-router:shared-db
|
||||||
|
- - neutron-api:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - neutron-gateway:neutron-plugin-api
|
||||||
|
- neutron-api:neutron-plugin-api
|
||||||
|
- - glance:shared-db
|
||||||
|
- glance-mysql-router:shared-db
|
||||||
|
- - glance:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-cloud-controller:image-service
|
||||||
|
- glance:image-service
|
||||||
|
- - nova-cloud-controller:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-cloud-controller:quantum-network-service
|
||||||
|
- neutron-gateway:quantum-network-service
|
||||||
|
- - nova-cloud-controller:shared-db
|
||||||
|
- nova-cloud-controller-mysql-router:shared-db
|
||||||
|
- - nova-cloud-controller:neutron-api
|
||||||
|
- neutron-api:neutron-api
|
||||||
|
- - cinder:image-service
|
||||||
|
- glance:image-service
|
||||||
|
- - cinder:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - cinder:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - cinder:cinder-volume-service
|
||||||
|
- nova-cloud-controller:cinder-volume-service
|
||||||
|
- - cinder:shared-db
|
||||||
|
- cinder-mysql-router:shared-db
|
||||||
|
- - placement:shared-db
|
||||||
|
- placement-mysql-router:shared-db
|
||||||
|
- - placement
|
||||||
|
- keystone
|
||||||
|
- - placement
|
||||||
|
- nova-cloud-controller
|
||||||
|
- - ceph-mon:client
|
||||||
|
- nova-ironic:ceph
|
||||||
|
- - ceph-mon:client
|
||||||
|
- glance:ceph
|
||||||
|
- - ceph-radosgw:mon
|
||||||
|
- ceph-mon:radosgw
|
||||||
|
- - ceph-radosgw:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - ceph-osd:mon
|
||||||
|
- ceph-mon:osd
|
||||||
|
- - ceph-radosgw:object-store
|
||||||
|
- glance
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- nova-cloud-controller-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- keystone-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- glance-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- neutron-api-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- placement-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- cinder-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- ironic-api-mysql-router:db-router
|
||||||
|
- - mysql-innodb-cluster:db-router
|
||||||
|
- ironic-conductor-mysql-router:db-router
|
||||||
|
- - vault-mysql-router:db-router
|
||||||
|
- mysql-innodb-cluster:db-router
|
||||||
|
- - vault:shared-db
|
||||||
|
- vault-mysql-router:shared-db
|
||||||
|
- - vault:certificates
|
||||||
|
- ceph-radosgw
|
||||||
|
- - vault:certificates
|
||||||
|
- cinder
|
||||||
|
- - vault:certificates
|
||||||
|
- glance:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- keystone:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- neutron-api:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- nova-cloud-controller:certificates
|
||||||
|
- - vault:certificates
|
||||||
|
- placement:certificates
|
||||||
|
- - vault
|
||||||
|
- ironic-conductor
|
||||||
|
- - vault:certificates
|
||||||
|
- ironic-api:certificates
|
||||||
|
- - ironic-api
|
||||||
|
- hacluster-ironic
|
||||||
|
services:
|
||||||
|
nova-cloud-controller-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
keystone-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
glance-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
neutron-api-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
placement-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
vault-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
cinder-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
ironic-api-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
ironic-conductor-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
mysql-innodb-cluster:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-innodb-cluster
|
||||||
|
num_units: 3
|
||||||
|
constraints: mem=4G
|
||||||
|
options:
|
||||||
|
source: *source
|
||||||
|
cinder:
|
||||||
|
charm: cs:~openstack-charmers-next/cinder
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
block-device: vdb
|
||||||
|
glance-api-version: 2
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
storage:
|
||||||
|
block-devices: cinder,50G
|
||||||
|
ceph-radosgw:
|
||||||
|
charm: cs:~openstack-charmers-next/ceph-radosgw
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
source: *source
|
||||||
|
namespace-tenants: True
|
||||||
|
ceph-mon:
|
||||||
|
charm: cs:~openstack-charmers-next/ceph-mon
|
||||||
|
num_units: 3
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
expected-osd-count: 3
|
||||||
|
source: *source
|
||||||
|
ceph-osd:
|
||||||
|
charm: cs:~openstack-charmers-next/ceph-osd
|
||||||
|
num_units: 3
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
source: *source
|
||||||
|
storage:
|
||||||
|
osd-devices: 'cinder,30G'
|
||||||
|
glance:
|
||||||
|
charm: cs:~openstack-charmers-next/glance
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
keystone:
|
||||||
|
charm: cs:~openstack-charmers-next/keystone
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
neutron-api:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-api
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
flat-network-providers: "physnet1"
|
||||||
|
neutron-security-groups: true
|
||||||
|
openstack-origin: *source
|
||||||
|
manage-neutron-plugin-legacy-mode: false
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
neutron-gateway:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-gateway
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
enable-isolated-metadata: true
|
||||||
|
enable-metadata-network: true
|
||||||
|
bridge-mappings: physnet1:br-ex
|
||||||
|
nova-cloud-controller:
|
||||||
|
charm: cs:~openstack-charmers-next/nova-cloud-controller
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
network-manager: Neutron
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
nova-ironic:
|
||||||
|
charm: cs:~openstack-charmers-next/nova-compute
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
enable-live-migration: false
|
||||||
|
enable-resize: false
|
||||||
|
openstack-origin: *source
|
||||||
|
virt-type: ironic
|
||||||
|
placement:
|
||||||
|
charm: cs:~openstack-charmers-next/placement
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
worker-multiplier: 0.25
|
||||||
|
rabbitmq-server:
|
||||||
|
charm: cs:~openstack-charmers-next/rabbitmq-server
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
hacluster-ironic:
|
||||||
|
charm: cs:~openstack-charmers-next/hacluster
|
||||||
|
num_units: 0
|
||||||
|
ironic-api:
|
||||||
|
charm: cs:~openstack-charmers-next/ironic-api
|
||||||
|
num_units: 3
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
ironic-conductor:
|
||||||
|
charm: cs:~openstack-charmers-next/ironic-conductor
|
||||||
|
num_units: 1
|
||||||
|
constraints: mem=2G
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
max-tftp-block-size: 1418
|
||||||
|
disable-secure-erase: true
|
||||||
|
use-ipxe: true
|
||||||
|
enabled-network-interfaces: "flat, noop"
|
||||||
|
neutron-openvswitch:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-openvswitch
|
||||||
|
num_units: 0
|
||||||
|
options:
|
||||||
|
bridge-mappings: physnet1:br-ex
|
||||||
|
neutron-ironic-agent:
|
||||||
|
charm: ../../../neutron-api-plugin-ironic
|
||||||
|
num_units: 0
|
||||||
|
options:
|
||||||
|
openstack-origin: *source
|
||||||
|
vault:
|
||||||
|
charm: cs:~openstack-charmers-next/vault
|
||||||
|
num_units: 1
|
1
src/tests/bundles/overlays/bionic-train.yaml.j2
Symbolic link
1
src/tests/bundles/overlays/bionic-train.yaml.j2
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
ironic.j2
|
1
src/tests/bundles/overlays/bionic-ussuri.yaml.j2
Symbolic link
1
src/tests/bundles/overlays/bionic-ussuri.yaml.j2
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
ironic.j2
|
1
src/tests/bundles/overlays/focal-ussuri.yaml.j2
Symbolic link
1
src/tests/bundles/overlays/focal-ussuri.yaml.j2
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
ironic.j2
|
1
src/tests/bundles/overlays/focal-victoria.yaml.j2
Symbolic link
1
src/tests/bundles/overlays/focal-victoria.yaml.j2
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
ironic.j2
|
1
src/tests/bundles/overlays/groovy-victoria.yaml.j2
Symbolic link
1
src/tests/bundles/overlays/groovy-victoria.yaml.j2
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
ironic.j2
|
4
src/tests/bundles/overlays/ironic.j2
Normal file
4
src/tests/bundles/overlays/ironic.j2
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
applications:
|
||||||
|
ironic-api:
|
||||||
|
options:
|
||||||
|
vip: '{{ OS_VIP00 }}'
|
36
src/tests/tests.yaml
Normal file
36
src/tests/tests.yaml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# NOTE(lourot): this is on purpose, so that some tests like
|
||||||
|
# IronicTest.test_910_pause_resume designed to address ironic-api keep working
|
||||||
|
# here:
|
||||||
|
charm_name: ironic-api
|
||||||
|
|
||||||
|
gate_bundles:
|
||||||
|
- groovy-victoria
|
||||||
|
- focal-victoria
|
||||||
|
- focal-ussuri
|
||||||
|
- bionic-train
|
||||||
|
- bionic-ussuri
|
||||||
|
smoke_bundles:
|
||||||
|
- bionic-ussuri
|
||||||
|
target_deploy_status:
|
||||||
|
vault:
|
||||||
|
workload-status: blocked
|
||||||
|
workload-status-message: Vault needs to be initialized
|
||||||
|
ironic-conductor:
|
||||||
|
workload-status: blocked
|
||||||
|
workload-status-message: invalid enabled-deploy-interfaces config
|
||||||
|
configure:
|
||||||
|
- zaza.openstack.charm_tests.vault.setup.auto_initialize
|
||||||
|
- zaza.openstack.charm_tests.ironic.setup.set_temp_url_secret
|
||||||
|
- zaza.openstack.charm_tests.ironic.setup.add_ironic_deployment_image
|
||||||
|
- zaza.openstack.charm_tests.ironic.setup.add_ironic_os_image
|
||||||
|
- zaza.openstack.charm_tests.ironic.setup.create_bm_flavors
|
||||||
|
# Ironic will require a flat network to test the flat network type. Once a proper
|
||||||
|
# testing environment will be available for Ironic, we will need to add the setup
|
||||||
|
# call to create that flat network
|
||||||
|
#- zaza.openstack.charm_tests.neutron.setup.basic_overcloud_network
|
||||||
|
- zaza.openstack.charm_tests.nova.setup.manage_ssh_key
|
||||||
|
tests:
|
||||||
|
- zaza.openstack.charm_tests.ironic.tests.IronicTest
|
||||||
|
tests_options:
|
||||||
|
force_deploy:
|
||||||
|
- groovy-victoria
|
@ -32,6 +32,7 @@ def _fake_retry(num_retries, base_delay=0, exc_type=Exception):
|
|||||||
return _retry_on_exception_inner_2
|
return _retry_on_exception_inner_2
|
||||||
return _retry_on_exception_inner_1
|
return _retry_on_exception_inner_1
|
||||||
|
|
||||||
|
|
||||||
mock.patch(
|
mock.patch(
|
||||||
'charmhelpers.core.decorators.retry_on_exception',
|
'charmhelpers.core.decorators.retry_on_exception',
|
||||||
_fake_retry).start()
|
_fake_retry).start()
|
||||||
|
@ -36,12 +36,6 @@ class TestHandlers(test_utils.PatchHelper):
|
|||||||
'mechanism_drivers': 'driver1,driver2'
|
'mechanism_drivers': 'driver1,driver2'
|
||||||
}
|
}
|
||||||
|
|
||||||
mocked_config = mock.MagicMock()
|
|
||||||
self.patch_object(handlers, 'config',
|
|
||||||
name='config',
|
|
||||||
new=mocked_config)
|
|
||||||
mocked_config.return_value = 'my_config_value'
|
|
||||||
|
|
||||||
handlers.configure_principal()
|
handlers.configure_principal()
|
||||||
principal_charm.configure_plugin.assert_called_once_with(
|
principal_charm.configure_plugin.assert_called_once_with(
|
||||||
neutron_plugin='ironic',
|
neutron_plugin='ironic',
|
||||||
|
Loading…
Reference in New Issue
Block a user