Migrate Amulet tests to Zaza
This commit is contained in:
parent
873caf6e12
commit
d9c368caf7
|
@ -1,3 +1,5 @@
|
||||||
|
/build/
|
||||||
|
|
||||||
bin
|
bin
|
||||||
.coverage
|
.coverage
|
||||||
.testrepository
|
.testrepository
|
||||||
|
|
|
@ -13,6 +13,9 @@ development and testing, however.
|
||||||
|
|
||||||
```
|
```
|
||||||
tox -e pep8
|
tox -e pep8
|
||||||
tox -e py34 # or py27 or py35
|
tox -e py3
|
||||||
tox -e build
|
tox -e build
|
||||||
|
cd build/builds/neutron-arista
|
||||||
|
export TEST_ARISTA_IMAGE=/tmp/arista-cvx-virt-test.qcow2
|
||||||
|
tox -e func
|
||||||
```
|
```
|
||||||
|
|
|
@ -1,4 +1,10 @@
|
||||||
# Requirements to build the charm
|
# This file is managed centrally by release-tools and should not be modified
|
||||||
|
# within individual charm repos. See the 'global' dir contents for available
|
||||||
|
# choices of *requirements.txt files for OpenStack Charms:
|
||||||
|
# https://github.com/openstack-charmers/release-tools
|
||||||
|
#
|
||||||
|
# Build requirements
|
||||||
charm-tools>=2.4.4
|
charm-tools>=2.4.4
|
||||||
|
# importlib-resources 1.1.0 removed Python 3.5 support
|
||||||
|
importlib-resources<1.1.0
|
||||||
simplejson
|
simplejson
|
||||||
flake8
|
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
# This file is managed centrally by release-tools and should not be modified
|
||||||
|
# within individual charm repos. See the 'global' dir contents for available
|
||||||
|
# choices of *requirements.txt files for OpenStack Charms:
|
||||||
|
# https://github.com/openstack-charmers/release-tools
|
||||||
|
#
|
||||||
|
# Functional Test Requirements (let Zaza's dependencies solve all dependencies here!)
|
||||||
|
git+https://github.com/openstack-charmers/zaza.git#egg=zaza
|
||||||
|
git+https://github.com/openstack-charmers/zaza-openstack-tests.git#egg=zaza.openstack
|
|
@ -1,5 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
sudo add-apt-repository ppa:juju/stable -y
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install amulet python-requests -y
|
|
|
@ -1,35 +0,0 @@
|
||||||
#!/usr/bin/python3
|
|
||||||
|
|
||||||
import amulet
|
|
||||||
import requests
|
|
||||||
import unittest
|
|
||||||
|
|
||||||
|
|
||||||
class TestCharm(unittest.TestCase):
|
|
||||||
def setUp(self):
|
|
||||||
self.d = amulet.Deployment()
|
|
||||||
|
|
||||||
self.d.add('charm-neutron-arista')
|
|
||||||
self.d.expose('charm-neutron-arista')
|
|
||||||
|
|
||||||
self.d.setup(timeout=900)
|
|
||||||
self.d.sentry.wait()
|
|
||||||
|
|
||||||
self.unit = self.d.sentry['charm-neutron-arista'][0]
|
|
||||||
|
|
||||||
def test_service(self):
|
|
||||||
# test we can access over http
|
|
||||||
page = requests.get('http://{}'.format(self.unit.info['public-address']))
|
|
||||||
self.assertEqual(page.status_code, 200)
|
|
||||||
# Now you can use self.d.sentry[SERVICE][UNIT] to address each of the units and perform
|
|
||||||
# more in-depth steps. Each self.d.sentry[SERVICE][UNIT] has the following methods:
|
|
||||||
# - .info - An array of the information of that unit from Juju
|
|
||||||
# - .file(PATH) - Get the details of a file on that unit
|
|
||||||
# - .file_contents(PATH) - Get plain text output of PATH file from that unit
|
|
||||||
# - .directory(PATH) - Get details of directory
|
|
||||||
# - .directory_contents(PATH) - List files and folders in PATH on that unit
|
|
||||||
# - .relation(relation, service:rel) - Get relation data from return service
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
unittest.main()
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
# Overview
|
||||||
|
|
||||||
|
This directory provides Zaza tests to verify basic deployment functionality
|
||||||
|
from the perspective of this charm, its requirements and its features, as
|
||||||
|
exercised in a subset of the full OpenStack deployment test bundle topology.
|
||||||
|
|
||||||
|
For full details on functional testing of OpenStack charms please refer to
|
||||||
|
the [functional testing][charm-guide-functional-testing] section of the
|
||||||
|
OpenStack Charm Guide.
|
||||||
|
|
||||||
|
<!-- LINKS -->
|
||||||
|
|
||||||
|
[charm-guide-functional-testing]: https://docs.openstack.org/charm-guide/latest/testing.html#functional-testing
|
|
@ -0,0 +1,142 @@
|
||||||
|
series: bionic
|
||||||
|
|
||||||
|
applications:
|
||||||
|
|
||||||
|
glance:
|
||||||
|
charm: cs:~openstack-charmers-next/glance
|
||||||
|
num_units: 1
|
||||||
|
|
||||||
|
keystone:
|
||||||
|
charm: cs:~openstack-charmers-next/keystone
|
||||||
|
num_units: 1
|
||||||
|
|
||||||
|
mysql:
|
||||||
|
charm: cs:~openstack-charmers-next/percona-cluster
|
||||||
|
num_units: 1
|
||||||
|
|
||||||
|
neutron-api:
|
||||||
|
# Temporary fork until we refactor neutron-arista:
|
||||||
|
charm: cs:~aurelien-lourot/neutron-api-arista-test-fixture
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
enable-arista: True
|
||||||
|
enable-ml2-dns: False
|
||||||
|
flat-network-providers: default
|
||||||
|
vlan-ranges: default:1000:3000
|
||||||
|
vni-ranges: 1001:2000
|
||||||
|
neutron-security-groups: True
|
||||||
|
overlay-network-type: vxlan
|
||||||
|
use-internal-endpoints: True
|
||||||
|
enable-l3ha: True
|
||||||
|
dhcp-agents-per-network: 2
|
||||||
|
enable-ml2-port-security: True
|
||||||
|
default-tenant-network-type: vlan
|
||||||
|
l2-population: False
|
||||||
|
ipv4-ptr-zone-prefix-size:
|
||||||
|
reverse-dns-lookup: False
|
||||||
|
dns-domain:
|
||||||
|
manage-neutron-plugin-legacy-mode: True
|
||||||
|
|
||||||
|
neutron-openvswitch:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-openvswitch
|
||||||
|
num_units: 0
|
||||||
|
options:
|
||||||
|
prevent-arp-spoofing: True
|
||||||
|
firewall-driver: openvswitch
|
||||||
|
enable-local-dhcp-and-metadata: True
|
||||||
|
bridge-mappings: default:br-data
|
||||||
|
data-port: ens7
|
||||||
|
|
||||||
|
nova-cloud-controller:
|
||||||
|
charm: cs:~openstack-charmers-next/nova-cloud-controller
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
network-manager: Neutron
|
||||||
|
|
||||||
|
neutron-arista:
|
||||||
|
charm: ../../../neutron-arista
|
||||||
|
num_units: 0
|
||||||
|
options:
|
||||||
|
# Fake IP, will be set to arista-virt-test-fixture's IP address on test
|
||||||
|
# setup:
|
||||||
|
eapi-host: 192.0.2.42
|
||||||
|
eapi-username: admin
|
||||||
|
eapi-password: password123
|
||||||
|
api-type: EAPI
|
||||||
|
service-plugins: router
|
||||||
|
|
||||||
|
nova-compute:
|
||||||
|
charm: cs:~openstack-charmers-next/nova-compute
|
||||||
|
num_units: 2
|
||||||
|
constraints: mem=4G cores=4
|
||||||
|
options:
|
||||||
|
config-flags: default_ephemeral_format=ext4
|
||||||
|
enable-live-migration: true
|
||||||
|
enable-resize: true
|
||||||
|
migration-auth-type: ssh
|
||||||
|
|
||||||
|
rabbitmq-server:
|
||||||
|
charm: cs:~openstack-charmers-next/rabbitmq-server
|
||||||
|
num_units: 1
|
||||||
|
|
||||||
|
openstack-dashboard:
|
||||||
|
charm: cs:openstack-dashboard
|
||||||
|
num_units: 1
|
||||||
|
|
||||||
|
lldpd:
|
||||||
|
charm: cs:lldpd
|
||||||
|
options:
|
||||||
|
interfaces-regex: 'en*'
|
||||||
|
short-name: true
|
||||||
|
|
||||||
|
arista-virt-test-fixture:
|
||||||
|
charm: cs:~openstack-charmers-next/arista-virt-test-fixture
|
||||||
|
num_units: 1
|
||||||
|
|
||||||
|
relations:
|
||||||
|
- - nova-compute: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-openvswitch:neutron-plugin-api
|
||||||
|
- neutron-api:neutron-plugin-api
|
||||||
|
- - neutron-api:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - neutron-api:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - glance:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - glance:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-cloud-controller:image-service
|
||||||
|
- glance:image-service
|
||||||
|
- - nova-compute:image-service
|
||||||
|
- glance:image-service
|
||||||
|
- - nova-cloud-controller:cloud-compute
|
||||||
|
- nova-compute:cloud-compute
|
||||||
|
- - nova-cloud-controller:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-compute:neutron-plugin
|
||||||
|
- neutron-openvswitch:neutron-plugin
|
||||||
|
- - neutron-openvswitch:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-cloud-controller:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - nova-cloud-controller:neutron-api
|
||||||
|
- neutron-api:neutron-api
|
||||||
|
- - neutron-api
|
||||||
|
- neutron-arista
|
||||||
|
- - neutron-api:neutron-plugin-api-subordinate
|
||||||
|
- neutron-arista:neutron-plugin-api-subordinate
|
||||||
|
- - openstack-dashboard
|
||||||
|
- mysql
|
||||||
|
- - openstack-dashboard:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - lldpd
|
||||||
|
- nova-compute
|
|
@ -0,0 +1,151 @@
|
||||||
|
series: bionic
|
||||||
|
|
||||||
|
applications:
|
||||||
|
|
||||||
|
glance:
|
||||||
|
charm: cs:~openstack-charmers-next/glance
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
openstack-origin: cloud:bionic-rocky
|
||||||
|
|
||||||
|
keystone:
|
||||||
|
charm: cs:~openstack-charmers-next/keystone
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
openstack-origin: cloud:bionic-rocky
|
||||||
|
|
||||||
|
mysql:
|
||||||
|
charm: cs:~openstack-charmers-next/percona-cluster
|
||||||
|
num_units: 1
|
||||||
|
|
||||||
|
neutron-api:
|
||||||
|
# Temporary fork until we refactor neutron-arista:
|
||||||
|
charm: cs:~aurelien-lourot/neutron-api-arista-test-fixture
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
openstack-origin: cloud:bionic-rocky
|
||||||
|
enable-arista: True
|
||||||
|
enable-ml2-dns: False
|
||||||
|
flat-network-providers: default
|
||||||
|
vlan-ranges: default:1000:3000
|
||||||
|
vni-ranges: 1001:2000
|
||||||
|
neutron-security-groups: True
|
||||||
|
overlay-network-type: vxlan
|
||||||
|
use-internal-endpoints: True
|
||||||
|
enable-l3ha: True
|
||||||
|
dhcp-agents-per-network: 2
|
||||||
|
enable-ml2-port-security: True
|
||||||
|
default-tenant-network-type: vlan
|
||||||
|
l2-population: False
|
||||||
|
ipv4-ptr-zone-prefix-size:
|
||||||
|
reverse-dns-lookup: False
|
||||||
|
dns-domain:
|
||||||
|
manage-neutron-plugin-legacy-mode: True
|
||||||
|
|
||||||
|
neutron-openvswitch:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-openvswitch
|
||||||
|
num_units: 0
|
||||||
|
options:
|
||||||
|
prevent-arp-spoofing: True
|
||||||
|
firewall-driver: openvswitch
|
||||||
|
enable-local-dhcp-and-metadata: True
|
||||||
|
bridge-mappings: default:br-data
|
||||||
|
data-port: ens7
|
||||||
|
|
||||||
|
nova-cloud-controller:
|
||||||
|
charm: cs:~openstack-charmers-next/nova-cloud-controller
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
openstack-origin: cloud:bionic-rocky
|
||||||
|
network-manager: Neutron
|
||||||
|
|
||||||
|
neutron-arista:
|
||||||
|
charm: ../../../neutron-arista
|
||||||
|
num_units: 0
|
||||||
|
options:
|
||||||
|
# Fake IP, will be set to arista-virt-test-fixture's IP address on test
|
||||||
|
# setup:
|
||||||
|
eapi-host: 192.0.2.42
|
||||||
|
eapi-username: admin
|
||||||
|
eapi-password: password123
|
||||||
|
api-type: EAPI
|
||||||
|
service-plugins: router
|
||||||
|
|
||||||
|
nova-compute:
|
||||||
|
charm: cs:~openstack-charmers-next/nova-compute
|
||||||
|
num_units: 2
|
||||||
|
constraints: mem=4G cores=4
|
||||||
|
options:
|
||||||
|
openstack-origin: cloud:bionic-rocky
|
||||||
|
config-flags: default_ephemeral_format=ext4
|
||||||
|
enable-live-migration: true
|
||||||
|
enable-resize: true
|
||||||
|
migration-auth-type: ssh
|
||||||
|
|
||||||
|
rabbitmq-server:
|
||||||
|
charm: cs:~openstack-charmers-next/rabbitmq-server
|
||||||
|
num_units: 1
|
||||||
|
|
||||||
|
openstack-dashboard:
|
||||||
|
charm: cs:openstack-dashboard
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
openstack-origin: cloud:bionic-rocky
|
||||||
|
|
||||||
|
lldpd:
|
||||||
|
charm: cs:lldpd
|
||||||
|
options:
|
||||||
|
interfaces-regex: 'en*'
|
||||||
|
short-name: true
|
||||||
|
|
||||||
|
arista-virt-test-fixture:
|
||||||
|
charm: cs:~openstack-charmers-next/arista-virt-test-fixture
|
||||||
|
num_units: 1
|
||||||
|
|
||||||
|
relations:
|
||||||
|
- - nova-compute: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-openvswitch:neutron-plugin-api
|
||||||
|
- neutron-api:neutron-plugin-api
|
||||||
|
- - neutron-api:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - neutron-api:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - glance:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - glance:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-cloud-controller:image-service
|
||||||
|
- glance:image-service
|
||||||
|
- - nova-compute:image-service
|
||||||
|
- glance:image-service
|
||||||
|
- - nova-cloud-controller:cloud-compute
|
||||||
|
- nova-compute:cloud-compute
|
||||||
|
- - nova-cloud-controller:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-compute:neutron-plugin
|
||||||
|
- neutron-openvswitch:neutron-plugin
|
||||||
|
- - neutron-openvswitch:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-cloud-controller:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - nova-cloud-controller:neutron-api
|
||||||
|
- neutron-api:neutron-api
|
||||||
|
- - neutron-api
|
||||||
|
- neutron-arista
|
||||||
|
- - neutron-api:neutron-plugin-api-subordinate
|
||||||
|
- neutron-arista:neutron-plugin-api-subordinate
|
||||||
|
- - openstack-dashboard
|
||||||
|
- mysql
|
||||||
|
- - openstack-dashboard:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - lldpd
|
||||||
|
- nova-compute
|
|
@ -0,0 +1,4 @@
|
||||||
|
applications:
|
||||||
|
arista-virt-test-fixture:
|
||||||
|
resources:
|
||||||
|
arista-image: '{{ TEST_ARISTA_IMAGE }}'
|
|
@ -0,0 +1,4 @@
|
||||||
|
applications:
|
||||||
|
arista-virt-test-fixture:
|
||||||
|
resources:
|
||||||
|
arista-image: '{{ TEST_ARISTA_IMAGE }}'
|
|
@ -0,0 +1,4 @@
|
||||||
|
applications:
|
||||||
|
arista-virt-test-fixture:
|
||||||
|
resources:
|
||||||
|
arista-image: '{{ TEST_ARISTA_IMAGE }}'
|
|
@ -0,0 +1,151 @@
|
||||||
|
series: xenial
|
||||||
|
|
||||||
|
applications:
|
||||||
|
|
||||||
|
glance:
|
||||||
|
charm: cs:~openstack-charmers-next/glance
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
openstack-origin: cloud:xenial-queens
|
||||||
|
|
||||||
|
keystone:
|
||||||
|
charm: cs:~openstack-charmers-next/keystone
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
openstack-origin: cloud:xenial-queens
|
||||||
|
|
||||||
|
mysql:
|
||||||
|
charm: cs:~openstack-charmers-next/percona-cluster
|
||||||
|
num_units: 1
|
||||||
|
|
||||||
|
neutron-api:
|
||||||
|
# Temporary fork until we refactor neutron-arista:
|
||||||
|
charm: cs:~aurelien-lourot/neutron-api-arista-test-fixture
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
openstack-origin: cloud:xenial-queens
|
||||||
|
enable-arista: True
|
||||||
|
enable-ml2-dns: False
|
||||||
|
flat-network-providers: default
|
||||||
|
vlan-ranges: default:1000:3000
|
||||||
|
vni-ranges: 1001:2000
|
||||||
|
neutron-security-groups: True
|
||||||
|
overlay-network-type: vxlan
|
||||||
|
use-internal-endpoints: True
|
||||||
|
enable-l3ha: True
|
||||||
|
dhcp-agents-per-network: 2
|
||||||
|
enable-ml2-port-security: True
|
||||||
|
default-tenant-network-type: vlan
|
||||||
|
l2-population: False
|
||||||
|
ipv4-ptr-zone-prefix-size:
|
||||||
|
reverse-dns-lookup: False
|
||||||
|
dns-domain:
|
||||||
|
manage-neutron-plugin-legacy-mode: True
|
||||||
|
|
||||||
|
neutron-openvswitch:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-openvswitch
|
||||||
|
num_units: 0
|
||||||
|
options:
|
||||||
|
prevent-arp-spoofing: True
|
||||||
|
firewall-driver: openvswitch
|
||||||
|
enable-local-dhcp-and-metadata: True
|
||||||
|
bridge-mappings: default:br-data
|
||||||
|
data-port: ens7
|
||||||
|
|
||||||
|
nova-cloud-controller:
|
||||||
|
charm: cs:~openstack-charmers-next/nova-cloud-controller
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
openstack-origin: cloud:xenial-queens
|
||||||
|
network-manager: Neutron
|
||||||
|
|
||||||
|
neutron-arista:
|
||||||
|
charm: ../../../neutron-arista
|
||||||
|
num_units: 0
|
||||||
|
options:
|
||||||
|
# Fake IP, will be set to arista-virt-test-fixture's IP address on test
|
||||||
|
# setup:
|
||||||
|
eapi-host: 192.0.2.42
|
||||||
|
eapi-username: admin
|
||||||
|
eapi-password: password123
|
||||||
|
api-type: EAPI
|
||||||
|
service-plugins: router
|
||||||
|
|
||||||
|
nova-compute:
|
||||||
|
charm: cs:~openstack-charmers-next/nova-compute
|
||||||
|
num_units: 2
|
||||||
|
constraints: mem=4G cores=4
|
||||||
|
options:
|
||||||
|
openstack-origin: cloud:xenial-queens
|
||||||
|
config-flags: default_ephemeral_format=ext4
|
||||||
|
enable-live-migration: true
|
||||||
|
enable-resize: true
|
||||||
|
migration-auth-type: ssh
|
||||||
|
|
||||||
|
rabbitmq-server:
|
||||||
|
charm: cs:~openstack-charmers-next/rabbitmq-server
|
||||||
|
num_units: 1
|
||||||
|
|
||||||
|
openstack-dashboard:
|
||||||
|
charm: cs:openstack-dashboard
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
openstack-origin: cloud:xenial-queens
|
||||||
|
|
||||||
|
lldpd:
|
||||||
|
charm: cs:lldpd
|
||||||
|
options:
|
||||||
|
interfaces-regex: 'en*'
|
||||||
|
short-name: true
|
||||||
|
|
||||||
|
arista-virt-test-fixture:
|
||||||
|
charm: cs:~openstack-charmers-next/arista-virt-test-fixture
|
||||||
|
num_units: 1
|
||||||
|
|
||||||
|
relations:
|
||||||
|
- - nova-compute: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-openvswitch:neutron-plugin-api
|
||||||
|
- neutron-api:neutron-plugin-api
|
||||||
|
- - neutron-api:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - neutron-api:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - glance:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - glance:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-cloud-controller:image-service
|
||||||
|
- glance:image-service
|
||||||
|
- - nova-compute:image-service
|
||||||
|
- glance:image-service
|
||||||
|
- - nova-cloud-controller:cloud-compute
|
||||||
|
- nova-compute:cloud-compute
|
||||||
|
- - nova-cloud-controller:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-compute:neutron-plugin
|
||||||
|
- neutron-openvswitch:neutron-plugin
|
||||||
|
- - neutron-openvswitch:amqp
|
||||||
|
- rabbitmq-server:amqp
|
||||||
|
- - nova-cloud-controller:shared-db
|
||||||
|
- mysql:shared-db
|
||||||
|
- - nova-cloud-controller:neutron-api
|
||||||
|
- neutron-api:neutron-api
|
||||||
|
- - neutron-api
|
||||||
|
- neutron-arista
|
||||||
|
- - neutron-api:neutron-plugin-api-subordinate
|
||||||
|
- neutron-arista:neutron-plugin-api-subordinate
|
||||||
|
- - openstack-dashboard
|
||||||
|
- mysql
|
||||||
|
- - openstack-dashboard:identity-service
|
||||||
|
- keystone:identity-service
|
||||||
|
- - lldpd
|
||||||
|
- nova-compute
|
|
@ -0,0 +1,11 @@
|
||||||
|
charm_name: neutron-arista
|
||||||
|
smoke_bundles:
|
||||||
|
- bionic-queens
|
||||||
|
gate_bundles:
|
||||||
|
- xenial-queens
|
||||||
|
- bionic-queens
|
||||||
|
- bionic-rocky
|
||||||
|
configure:
|
||||||
|
- zaza.openstack.charm_tests.neutron_arista.setup.test_fixture
|
||||||
|
tests:
|
||||||
|
- zaza.openstack.charm_tests.neutron_arista.tests.NeutronCreateAristaNetworkTest
|
|
@ -0,0 +1,50 @@
|
||||||
|
# Source charm (with zaza): ./src/tox.ini
|
||||||
|
# This file is managed centrally by release-tools and should not be modified
|
||||||
|
# within individual charm repos. See the 'global' dir contents for available
|
||||||
|
# choices of tox.ini for OpenStack Charms:
|
||||||
|
# https://github.com/openstack-charmers/release-tools
|
||||||
|
|
||||||
|
[tox]
|
||||||
|
envlist = pep8
|
||||||
|
skipsdist = True
|
||||||
|
# NOTE: Avoid build/test env pollution by not enabling sitepackages.
|
||||||
|
sitepackages = False
|
||||||
|
# NOTE: Avoid false positives by not skipping missing interpreters.
|
||||||
|
skip_missing_interpreters = False
|
||||||
|
|
||||||
|
[testenv]
|
||||||
|
setenv = VIRTUAL_ENV={envdir}
|
||||||
|
PYTHONHASHSEED=0
|
||||||
|
whitelist_externals = juju
|
||||||
|
passenv = HOME TERM CS_* OS_* TEST_*
|
||||||
|
deps = -r{toxinidir}/test-requirements.txt
|
||||||
|
install_command =
|
||||||
|
pip install {opts} {packages}
|
||||||
|
|
||||||
|
[testenv:pep8]
|
||||||
|
basepython = python3
|
||||||
|
deps=charm-tools
|
||||||
|
commands = charm-proof
|
||||||
|
|
||||||
|
[testenv:func-noop]
|
||||||
|
basepython = python3
|
||||||
|
commands =
|
||||||
|
functest-run-suite --help
|
||||||
|
|
||||||
|
[testenv:func]
|
||||||
|
basepython = python3
|
||||||
|
commands =
|
||||||
|
functest-run-suite --keep-model
|
||||||
|
|
||||||
|
[testenv:func-smoke]
|
||||||
|
basepython = python3
|
||||||
|
commands =
|
||||||
|
functest-run-suite --keep-model --smoke
|
||||||
|
|
||||||
|
[testenv:func-target]
|
||||||
|
basepython = python3
|
||||||
|
commands =
|
||||||
|
functest-run-suite --keep-model --bundle {posargs}
|
||||||
|
|
||||||
|
[testenv:venv]
|
||||||
|
commands = {posargs}
|
|
@ -1,7 +1,23 @@
|
||||||
# Unit test requirements
|
# This file is managed centrally by release-tools and should not be modified
|
||||||
|
# within individual charm repos. See the 'global' dir contents for available
|
||||||
|
# choices of *requirements.txt files for OpenStack Charms:
|
||||||
|
# https://github.com/openstack-charmers/release-tools
|
||||||
|
#
|
||||||
|
# Lint and unit test requirements
|
||||||
flake8>=2.2.4,<=2.4.1
|
flake8>=2.2.4,<=2.4.1
|
||||||
os-testr>=0.4.1
|
stestr>=2.2.0
|
||||||
|
requests>=2.18.4
|
||||||
charms.reactive
|
charms.reactive
|
||||||
mock>=1.2
|
mock>=1.2
|
||||||
|
nose>=1.3.7
|
||||||
coverage>=3.6
|
coverage>=3.6
|
||||||
git+https://github.com/openstack/charms.openstack#egg=charms.openstack
|
git+https://github.com/openstack/charms.openstack.git#egg=charms.openstack
|
||||||
|
#
|
||||||
|
# Revisit for removal / mock improvement:
|
||||||
|
netifaces # vault
|
||||||
|
psycopg2-binary # vault
|
||||||
|
tenacity # vault
|
||||||
|
pbr # vault
|
||||||
|
cryptography # vault, keystone-saml-mellon
|
||||||
|
lxml # keystone-saml-mellon
|
||||||
|
hvac # vault, barbican-vault
|
||||||
|
|
59
tox.ini
59
tox.ini
|
@ -1,14 +1,25 @@
|
||||||
|
# Source charm: ./tox.ini
|
||||||
|
# This file is managed centrally by release-tools and should not be modified
|
||||||
|
# within individual charm repos. See the 'global' dir contents for available
|
||||||
|
# choices of tox.ini for OpenStack Charms:
|
||||||
|
# https://github.com/openstack-charmers/release-tools
|
||||||
|
|
||||||
[tox]
|
[tox]
|
||||||
skipsdist = True
|
skipsdist = True
|
||||||
envlist = pep8,py3
|
envlist = pep8,py3
|
||||||
|
# NOTE: Avoid build/test env pollution by not enabling sitepackages.
|
||||||
|
sitepackages = False
|
||||||
|
# NOTE: Avoid false positives by not skipping missing interpreters.
|
||||||
|
skip_missing_interpreters = False
|
||||||
|
|
||||||
[testenv]
|
[testenv]
|
||||||
setenv = VIRTUAL_ENV={envdir}
|
setenv = VIRTUAL_ENV={envdir}
|
||||||
PYTHONHASHSEED=0
|
PYTHONHASHSEED=0
|
||||||
TERM=linux
|
TERM=linux
|
||||||
LAYER_PATH={toxinidir}/layers
|
LAYER_PATH={toxinidir}/layers
|
||||||
|
INTERFACE_PATH={toxinidir}/interfaces
|
||||||
JUJU_REPOSITORY={toxinidir}/build
|
JUJU_REPOSITORY={toxinidir}/build
|
||||||
passenv = http_proxy https_proxy INTERFACE_PATH LAYER_PATH
|
passenv = http_proxy https_proxy INTERFACE_PATH LAYER_PATH JUJU_REPOSITORY
|
||||||
install_command =
|
install_command =
|
||||||
pip install {opts} {packages}
|
pip install {opts} {packages}
|
||||||
deps =
|
deps =
|
||||||
|
@ -22,27 +33,65 @@ commands =
|
||||||
[testenv:py3]
|
[testenv:py3]
|
||||||
basepython = python3
|
basepython = python3
|
||||||
deps = -r{toxinidir}/test-requirements.txt
|
deps = -r{toxinidir}/test-requirements.txt
|
||||||
commands = stestr run {posargs}
|
commands = stestr run --slowest {posargs}
|
||||||
|
|
||||||
[testenv:py35]
|
[testenv:py35]
|
||||||
basepython = python3.5
|
basepython = python3.5
|
||||||
deps = -r{toxinidir}/test-requirements.txt
|
deps = -r{toxinidir}/test-requirements.txt
|
||||||
commands = stestr run {posargs}
|
commands = stestr run --slowest {posargs}
|
||||||
|
|
||||||
[testenv:py36]
|
[testenv:py36]
|
||||||
basepython = python3.6
|
basepython = python3.6
|
||||||
deps = -r{toxinidir}/test-requirements.txt
|
deps = -r{toxinidir}/test-requirements.txt
|
||||||
commands = stestr run {posargs}
|
commands = stestr run --slowest {posargs}
|
||||||
|
|
||||||
|
[testenv:py37]
|
||||||
|
basepython = python3.7
|
||||||
|
deps = -r{toxinidir}/test-requirements.txt
|
||||||
|
commands = stestr run --slowest {posargs}
|
||||||
|
|
||||||
|
[testenv:py38]
|
||||||
|
basepython = python3.8
|
||||||
|
deps = -r{toxinidir}/test-requirements.txt
|
||||||
|
commands = stestr run --slowest {posargs}
|
||||||
|
|
||||||
[testenv:pep8]
|
[testenv:pep8]
|
||||||
basepython = python3
|
basepython = python3
|
||||||
deps = -r{toxinidir}/test-requirements.txt
|
deps = -r{toxinidir}/test-requirements.txt
|
||||||
commands = flake8 {posargs} src unit_tests
|
commands = flake8 {posargs} src unit_tests
|
||||||
|
|
||||||
|
[testenv:cover]
|
||||||
|
# Technique based heavily upon
|
||||||
|
# https://github.com/openstack/nova/blob/master/tox.ini
|
||||||
|
basepython = python3
|
||||||
|
deps = -r{toxinidir}/requirements.txt
|
||||||
|
-r{toxinidir}/test-requirements.txt
|
||||||
|
setenv =
|
||||||
|
{[testenv]setenv}
|
||||||
|
PYTHON=coverage run
|
||||||
|
commands =
|
||||||
|
coverage erase
|
||||||
|
stestr run --slowest {posargs}
|
||||||
|
coverage combine
|
||||||
|
coverage html -d cover
|
||||||
|
coverage xml -o cover/coverage.xml
|
||||||
|
coverage report
|
||||||
|
|
||||||
|
[coverage:run]
|
||||||
|
branch = True
|
||||||
|
concurrency = multiprocessing
|
||||||
|
parallel = True
|
||||||
|
source =
|
||||||
|
.
|
||||||
|
omit =
|
||||||
|
.tox/*
|
||||||
|
*/charmhelpers/*
|
||||||
|
unit_tests/*
|
||||||
|
|
||||||
[testenv:venv]
|
[testenv:venv]
|
||||||
basepython = python3
|
basepython = python3
|
||||||
commands = {posargs}
|
commands = {posargs}
|
||||||
|
|
||||||
[flake8]
|
[flake8]
|
||||||
# E402 ignore necessary for path append before sys module import in actions
|
# E402 ignore necessary for path append before sys module import in actions
|
||||||
ignore = E402
|
ignore = E402,W504
|
||||||
|
|
Loading…
Reference in New Issue