From 05e863781ce6746fabec176d1fc5f7454f2cdd73 Mon Sep 17 00:00:00 2001 From: Mark Beierl Date: Wed, 4 May 2016 22:53:07 -0400 Subject: Add Stats report and Swagger UI Add Swagger web ui at /swagger Add ability to fetch read/write latency status via ReST ui Can now delete where stack was removed from OpenStack but not from the storperf DB Change to use Floating IPs instead of private IP Fix delete bug where there was no dependency on resources in the resource group. JIRA: STORPERF-19 JIRA: STORPERF-20 Change-Id: I0a4b3386789c38d6745906ba896b8ff851dc122f Signed-off-by: Mark Beierl --- storperf/resources/hot/agent-group.yaml | 47 ++++++++++++++++++++++++++++-- storperf/resources/hot/storperf-agent.yaml | 28 +++++++++--------- 2 files changed, 57 insertions(+), 18 deletions(-) (limited to 'storperf/resources') diff --git a/storperf/resources/hot/agent-group.yaml b/storperf/resources/hot/agent-group.yaml index 315ecf3..4a1df8e 100644 --- a/storperf/resources/hot/agent-group.yaml +++ b/storperf/resources/hot/agent-group.yaml @@ -10,13 +10,13 @@ heat_template_version: 2013-05-23 parameters: - agent_network: + public_network: type: string constraints: - custom_constraint: neutron.network flavor: type: string - default: "StorPerf Agent" + default: "m1.small" key_name: type: string default: StorPerf @@ -38,18 +38,59 @@ parameters: resources: slaves: type: OS::Heat::ResourceGroup + depends_on: [storperf_subnet, storperf_network_router_interface, storperf_open_security_group] properties: count: {get_param: agent_count} resource_def: { type: "storperf-agent.yaml", properties: { - agent_network: {get_param: agent_network}, + public_network: {get_param: public_network}, + agent_network: {get_resource: storperf_network}, flavor: {get_param: flavor}, + storperf_open_security_group: {get_resource: storperf_open_security_group}, key_name: {get_param: key_name}, volume_size: {get_param: volume_size} } } + storperf_network: + type: OS::Neutron::Net + properties: + name: storperf-network + + storperf_subnet: + type: OS::Neutron::Subnet + properties: + network_id: { get_resource: storperf_network } + cidr: 172.16.0.0/16 + gateway_ip: 172.16.0.1 + + storperf_network_router: + type: OS::Neutron::Router + properties: + external_gateway_info: + network: { get_param: public_network } + + storperf_network_router_interface: + type: OS::Neutron::RouterInterface + properties: + router_id: { get_resource: storperf_network_router } + subnet_id: { get_resource: storperf_subnet } + + storperf_open_security_group: + type: OS::Neutron::SecurityGroup + properties: + description: An open security group to allow all access to the StorPerf slaves + rules: + - remote_ip_prefix: 0.0.0.0/0 + protocol: tcp + port_range_min: 22 + port_range_max: 22 + - remote_ip_prefix: 0.0.0.0/0 + protocol: icmp + + + outputs: slave_ips: { description: "Slave addresses", diff --git a/storperf/resources/hot/storperf-agent.yaml b/storperf/resources/hot/storperf-agent.yaml index ffda9c4..5d99a26 100644 --- a/storperf/resources/hot/storperf-agent.yaml +++ b/storperf/resources/hot/storperf-agent.yaml @@ -22,6 +22,8 @@ parameters: username: type: string default: storperf + storperf_open_security_group: + type: string volume_size: type: number description: Size of the volume to be created. @@ -33,7 +35,10 @@ parameters: type: string constraints: - custom_constraint: neutron.network - + public_network: + type: string + constraints: + - custom_constraint: neutron.network resources: storperf_agent: @@ -69,20 +74,13 @@ resources: properties: network_id: { get_param: agent_network } security_groups: - - { get_resource: storperf_security_group } + - { get_param: storperf_open_security_group } - storperf_security_group: - type: OS::Neutron::SecurityGroup + storperf_floating_ip: + type: OS::Neutron::FloatingIP properties: - description: Neutron security group rules - name: StorPerf-Security-Group - rules: - - remote_ip_prefix: 0.0.0.0/0 - protocol: tcp - direction: ingress - - remote_ip_prefix: 0.0.0.0/0 - protocol: icmp - direction: ingress + floating_network_id: { get_param: public_network } + port_id: { get_resource: storperf_agent_port } agent_volume: type: OS::Cinder::Volume @@ -97,5 +95,5 @@ resources: outputs: storperf_agent_ip: - description: The IP address of the agent on the StorPerf network - value: { get_attr: [ storperf_agent, first_address ] } \ No newline at end of file + description: The floating IP address of the agent on the public network + value: { get_attr: [ storperf_floating_ip, floating_ip_address ] } \ No newline at end of file -- cgit 1.2.3-korg