Add test with public dashboards

This change adds a test case deploying the StackLight dashboards on the
public network using a network template.

Change-Id: I47c7482891e79d049b4c5f2941228ccedd574495
This commit is contained in:
Simon Pasquier 2016-08-02 11:08:39 +02:00
parent a914841794
commit 30488d7058
2 changed files with 217 additions and 0 deletions

View File

@ -0,0 +1,157 @@
adv_net_template:
default:
network_assignments:
fuelweb_admin:
ep: br-fw-admin
management:
ep: br-mgmt
private:
ep: br-mesh
public:
ep: br-ex
storage:
ep: br-storage
network_scheme:
admin:
endpoints:
- br-fw-admin
roles:
admin/pxe: br-fw-admin
fw-admin: br-fw-admin
transformations:
- action: add-br
name: br-fw-admin
- action: add-port
bridge: br-fw-admin
name: <% if1 %>
mgmt:
endpoints:
- br-mgmt
roles:
ceilometer/api: br-mgmt
cinder/api: br-mgmt
glance/api: br-mgmt
heat/api: br-mgmt
horizon: br-mgmt
keystone/api: br-mgmt
management: br-mgmt
mgmt/api: br-mgmt
mgmt/corosync: br-mgmt
mgmt/database: br-mgmt
mgmt/memcache: br-mgmt
mgmt/messaging: br-mgmt
mgmt/vip: br-mgmt
mongo/db: br-mgmt
murano/api: br-mgmt
neutron/api: br-mgmt
neutron/private: br-mgmt
nova/api: br-mgmt
nova/migration: br-mgmt
rados_gw_management_vip: br-mgmt
sahara/api: br-mgmt
swift/api: br-mgmt
swift/replication: br-mgmt
elasticsearch: br-mgmt
influxdb_vip: br-mgmt
infrastructure_alerting: br-mgmt
transformations:
- action: add-br
name: br-mgmt
- action: add-port
bridge: br-mgmt
name: <% if3 %>
private:
endpoints:
- br-mesh
roles:
neutron/mesh: br-mesh
transformations:
- action: add-br
name: br-mesh
- action: add-port
bridge: br-mesh
name: <% if4 %>
public:
endpoints:
- br-ex
roles:
ceph/radosgw: br-ex
cinder/api: br-ex
ex: br-ex
neutron/floating: br-floating
public/vip: br-ex
kibana: br-ex
grafana: br-ex
infrastructure_alerting_ui: br-ex
transformations:
- action: add-br
name: br-ex
- action: add-br
name: br-floating
provider: ovs
- action: add-patch
bridges:
- br-floating
- br-ex
mtu: 65000
provider: ovs
- action: add-port
bridge: br-ex
name: <% if2 %>
storage:
endpoints:
- br-storage
roles:
ceph/replication: br-storage
cinder/iscsi: br-storage
storage: br-storage
swift/replication: br-storage
transformations:
- action: add-br
name: br-storage
- action: add-port
bridge: br-storage
name: <% if5 %>
nic_mapping:
default:
# fw-admin
if1: enp0s3
# public
if2: enp0s4
# management
if3: enp0s5
# private
if4: enp0s6
# storage
if5: enp0s7
templates_for_node_role:
# The following roles supports deployments using Neutron with tunneling segmentation
# and Cinder with LVM over iSCSI
cinder:
- admin
- mgmt
- private
- storage
compute:
- admin
- mgmt
- private
- storage
controller:
- admin
- mgmt
- public
- private
- storage
elasticsearch_kibana:
- admin
- mgmt
- public
influxdb_grafana:
- admin
- mgmt
- public
infrastructure_alerting:
- admin
- mgmt
- public

View File

@ -115,3 +115,63 @@ class TestToolchainNetworkTemplates(api.ToolchainApi):
self.env.make_snapshot("deploy_toolchain_with_network_template",
is_make=True)
@test(depends_on_groups=["prepare_slaves_3"],
groups=["deploy_toolchain_with_public_dashboards", "deploy",
"toolchain", "network_templates"])
@log_snapshot_after_test
def deploy_toolchain_with_public_dashboards(self):
"""Deploy a cluster with the LMA Toolchain plugins using the public
network for the dashboards.
Scenario:
1. Upload the LMA Toolchain plugins to the master node
2. Install the plugins
3. Create the cluster using VxLAN segmentation
4. Add 1 node with controller role
5. Add 1 node with compute and cinder roles
6. Add 1 node with plugin roles
7. Upload the custom network template
8. Deploy the cluster
9. Check that LMA Toolchain plugins are running
10. Run OSTF
Duration 60m
Snapshot deploy_toolchain_with_public_dashboards
"""
self.check_run("deploy_toolchain_with_public_dashboards")
self.env.revert_snapshot("ready_with_3_slaves")
self.prepare_plugins()
self.helpers.create_cluster(
name="deploy_toolchain_with_public_dashboards",
settings={
"net_provider": "neutron",
"net_segment_type": settings.NEUTRON_SEGMENT["tun"]
}
)
self.activate_plugins()
nailgun_client = self.helpers.nailgun_client
network_template = self.get_network_template("public_dashboards")
nailgun_client.upload_network_template(
cluster_id=self.helpers.cluster_id,
network_template=network_template)
logger.info("Network template: {0}".format(network_template))
networks = nailgun_client.get_network_groups()
logger.info("Network groups before update: {0}".format(networks))
# Don't update the interfaces when using network templates
self.helpers.deploy_cluster(self.settings.base_nodes,
verify_network=True,
update_interfaces=False)
self.check_plugins_online()
self.helpers.run_ostf()
self.env.make_snapshot("deploy_toolchain_with_public_dashboards",
is_make=True)