@ -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 | |||
# importlib-resources 1.1.0 removed Python 3.5 support | |||
importlib-resources<1.1.0 | |||
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 | |||
os-testr>=0.4.1 | |||
stestr>=2.2.0 | |||
requests>=2.18.4 | |||
charms.reactive | |||
mock>=1.2 | |||
nose>=1.3.7 | |||
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 |