Merge "Add tests for gnocchi states and modules"
diff --git a/_modules/runtest/tempest_sections/compute_feature_enabled.py b/_modules/runtest/tempest_sections/compute_feature_enabled.py
index 91eb882..d2b3f9a 100644
--- a/_modules/runtest/tempest_sections/compute_feature_enabled.py
+++ b/_modules/runtest/tempest_sections/compute_feature_enabled.py
@@ -35,6 +35,7 @@
         'suspend',
         'swap_volume',
         'vnc_console',
+        'vnc_server_header',
     ]
 
 
@@ -184,3 +185,7 @@
         #TODO: fix when value is unhardcoded.
         return conditions.BaseRule('*.nova.compute.enabled', 'eq', True,
                             multiple='any').check(self.pillar)
+
+    @property
+    def vnc_server_header(self):
+        return 'nginx'
diff --git a/runtest/files/heat_test_tempate.yml b/runtest/files/heat_test_tempate.yml
new file mode 100644
index 0000000..552fd22
--- /dev/null
+++ b/runtest/files/heat_test_tempate.yml
@@ -0,0 +1,16 @@
+heat_template_version: 2015-10-15
+
+parameters:
+ length:
+   type: number
+   default: 100
+
+resources:
+ random:
+   type: OS::Heat::RandomString
+   properties:
+     length: {get_param: length}
+
+outputs:
+ value:
+   value: {get_attr: [random, value]}
diff --git a/runtest/salttest/modules/openstack/cinderv3.sls b/runtest/salttest/modules/openstack/cinderv3.sls
new file mode 100644
index 0000000..6286b78
--- /dev/null
+++ b/runtest/salttest/modules/openstack/cinderv3.sls
@@ -0,0 +1,57 @@
+{%- set volume_type_name = 'TestVolumeType' %}
+{%- set image_properties = "[{'op':'add', 'path':'/test_property', 'value': 'test'},]" %}
+
+cinderv3_volume_list:
+  module.run:
+    - name: cinderv3.volume_list
+    - kwargs:
+        cloud_name: admin_identity
+
+cinderv3_volume_type_list:
+  module.run:
+    - name: cinderv3.volume_type_list
+    - kwargs:
+        cloud_name: admin_identity
+
+cinderv3_volume_type_create:
+  module.run:
+    - name: cinderv3.volume_type_create
+    - args:
+      - {{ volume_type_name }}
+    - kwargs:
+        cloud_name: admin_identity
+
+cinderv3_keys_volume_type_get:
+  module.run:
+    - name: cinderv3.keys_volume_type_get
+    - args:
+      - {{ volume_type_name }}
+    - kwargs:
+        cloud_name: admin_identity
+    - require:
+      - cinderv3_volume_type_create
+
+cinderv3_keys_volume_type_set:
+  module.run:
+    - name: cinderv3.keys_volume_type_set
+    - args:
+      - {{ volume_type_name }}
+    - kwargs:
+        keys:
+          key1:
+            key: val1
+          key2:
+            key: val2
+        cloud_name: admin_identity
+    - require:
+      - cinderv3_volume_type_create
+
+cinderv3_volume_type_delete:
+  module.run:
+    - name: cinderv3.volume_type_delete
+    - args:
+      - {{ volume_type_name }}
+    - kwargs:
+        cloud_name: admin_identity
+    - require:
+      - cinderv3_volume_type_create
\ No newline at end of file
diff --git a/runtest/salttest/modules/openstack/heatv1.sls b/runtest/salttest/modules/openstack/heatv1.sls
new file mode 100644
index 0000000..f819094
--- /dev/null
+++ b/runtest/salttest/modules/openstack/heatv1.sls
@@ -0,0 +1,50 @@
+create_heatv1_module_resource:
+  file.managed:
+  - name: /srv/heat/env/template/heat_test_tempate.yml
+  - source: salt://runtest/files/heat_test_tempate.yml
+  - template: jinja
+  - makedirs: true
+  - mode: 644
+  - user: root
+  - group: root
+
+heatv1_stack_create:
+  module.run:
+    - name: heatv1.stack_create
+    - kwargs:
+        cloud_name: admin_identity
+        name: TestHeatStack
+        template: heat_test_tempate.yml
+
+heatv1_stack_list:
+  module.run:
+    - name: heatv1.stack_list
+    - kwargs:
+        cloud_name: admin_identity
+
+heatv1_stack_show:
+  module.run:
+    - name: heatv1.stack_show
+    - kwargs:
+        cloud_name: admin_identity
+        name: TestHeatStack
+
+heatv1_stack_update:
+  module.run:
+    - name: heatv1.stack_update
+    - kwargs:
+        cloud_name: admin_identity
+        name: TestHeatStack
+        template: heat_test_tempate.yml
+
+heatv1_stack_delete:
+  module.run:
+    - name: heatv1.stack_delete
+    - kwargs:
+        cloud_name: admin_identity
+        name: TestHeatStack
+
+remove_heatv1_module_resource:
+  file.directory:
+  - name: /srv/heat
+  - clean: True
\ No newline at end of file
diff --git a/runtest/salttest/modules/openstack/init.sls b/runtest/salttest/modules/openstack/init.sls
index f2e0c47..a9d6334 100644
--- a/runtest/salttest/modules/openstack/init.sls
+++ b/runtest/salttest/modules/openstack/init.sls
@@ -4,3 +4,6 @@
 - runtest.salttest.modules.openstack.keystone
 - runtest.salttest.modules.openstack.nova
 - runtest.salttest.modules.openstack.neutron
+- runtest.salttest.modules.openstack.neutronv2
+- runtest.salttest.modules.openstack.cinderv3
+- runtest.salttest.modules.openstack.heatv1
diff --git a/runtest/salttest/modules/openstack/neutronv2.sls b/runtest/salttest/modules/openstack/neutronv2.sls
new file mode 100644
index 0000000..eeb5b56
--- /dev/null
+++ b/runtest/salttest/modules/openstack/neutronv2.sls
@@ -0,0 +1,134 @@
+{%- set neutron_test_network = 'NeutronTestNetwork' %}
+{%- set neutron_bulk_test_network = 'NeutronTestBulkNetworks' %}
+{%- set neutron_test_subnet = 'NeutronTestSubnet' %}
+{%- set neutron_test_subnet_pool = 'NeutronTestSubnetPool' %}
+
+neutronv2_network_create:
+  module.run:
+    - name: neutronv2.network_create
+    - kwargs:
+        cloud_name: admin_identity
+        name: {{ neutron_test_network }}
+
+neutronv2_network_bulk_create:
+  module.run:
+    - name: neutronv2.network_bulk_create
+    - kwargs:
+        cloud_name: admin_identity
+        networks:
+          - name: {{ neutron_bulk_test_network }}
+
+neutronv2_subnet_create:
+  module.run:
+    - name: neutronv2.subnet_create
+    - kwargs:
+        cloud_name: admin_identity
+        name: {{ neutron_test_subnet }}
+        ip_version: 4
+        cidr: 192.168.88.0/24
+        network_id: {{ neutron_test_network }}
+
+neutronv2_subnetpool_create:
+  module.run:
+    - name: neutronv2.subnetpool_create
+    - kwargs:
+        cloud_name: admin_identity
+        name: {{ neutron_test_subnet_pool }}
+        prefixes: [203.0.113.0/24]
+
+neutronv2_subnet_list:
+  module.run:
+    - name: neutronv2.subnet_list
+    - kwargs:
+        cloud_name: admin_identity
+
+neutronv2_network_list:
+  module.run:
+    - name: neutronv2.network_list
+    - kwargs:
+        cloud_name: admin_identity
+
+neutronv2_subnetpool_list:
+  module.run:
+    - name: neutronv2.subnetpool_list
+    - kwargs:
+        cloud_name: admin_identity
+
+neutronv2_subnet_get_details:
+  module.run:
+    - name: neutronv2.subnet_get_details
+    - args:
+      - {{ neutron_test_subnet }}
+    - kwargs:
+        cloud_name: admin_identity
+
+neutronv2_subnetpool_get_details:
+  module.run:
+    - name: neutronv2.subnetpool_get_details
+    - args:
+      - {{ neutron_test_subnet_pool }}
+    - kwargs:
+        cloud_name: admin_identity
+
+neutronv2_network_get_details:
+  module.run:
+    - name: neutronv2.network_get_details
+    - kwargs:
+        cloud_name: admin_identity
+        name: {{ neutron_test_network }}
+
+neutronv2_subnet_update:
+  module.run:
+    - name: neutronv2.subnet_update
+    - args:
+      - {{ neutron_test_subnet }}
+    - kwargs:
+        cloud_name: admin_identity
+        description: NeutronTestSubnetDescription
+
+neutronv2_subnetpool_update:
+  module.run:
+    - name: neutronv2.subnetpool_update
+    - args:
+      - {{ neutron_test_subnet_pool }}
+    - kwargs:
+        cloud_name: admin_identity
+        description: NeutronTestSubnetPoolDescription
+
+neutronv2_network_update:
+  module.run:
+    - name: neutronv2.network_update
+    - kwargs:
+        cloud_name: admin_identity
+        name: {{ neutron_test_network }}
+        description: NeutronTestNetworkDescription
+
+neutronv2_subnet_delete:
+  module.run:
+    - name: neutronv2.subnet_delete
+    - args:
+      - {{ neutron_test_subnet }}
+    - kwargs:
+        cloud_name: admin_identity
+
+neutronv2_subnetpool_delete:
+  module.run:
+    - name: neutronv2.subnetpool_delete
+    - args:
+      - {{ neutron_test_subnet_pool }}
+    - kwargs:
+        cloud_name: admin_identity
+
+neutronv2_network_delete:
+  module.run:
+    - name: neutronv2.network_delete
+    - kwargs:
+        cloud_name: admin_identity
+        name: {{ neutron_test_network }}
+
+neutronv2_bulk_network_delete:
+  module.run:
+    - name: neutronv2.network_delete
+    - kwargs:
+        cloud_name: admin_identity
+        name: {{ neutron_bulk_test_network }}
\ No newline at end of file
diff --git a/runtest/salttest/states/openstack/cinderv3.sls b/runtest/salttest/states/openstack/cinderv3.sls
new file mode 100644
index 0000000..96b403f
--- /dev/null
+++ b/runtest/salttest/states/openstack/cinderv3.sls
@@ -0,0 +1,18 @@
+{%- set volume_type_name = 'TestVolumeType' %}
+
+cinderv3_volume_type_present:
+  cinderv3.volume_type_present:
+  - name: {{ volume_type_name }}
+  - cloud_name: admin_identity
+
+cinderv3_volume_type_key_present:
+  cinderv3.volume_type_key_present:
+  - name: {{ volume_type_name }}
+  - key: key1
+  - value: val1
+  - cloud_name: admin_identity
+
+cinderv3_volume_type_absent:
+  cinderv3.volume_type_absent:
+  - name: {{ volume_type_name }}
+  - cloud_name: admin_identity
diff --git a/runtest/salttest/states/openstack/heatv1.sls b/runtest/salttest/states/openstack/heatv1.sls
new file mode 100644
index 0000000..471e4b9
--- /dev/null
+++ b/runtest/salttest/states/openstack/heatv1.sls
@@ -0,0 +1,25 @@
+create_heatv1_state_resource:
+  file.managed:
+  - name: /srv/heat/env/template/heat_test_tempate.yml
+  - source: salt://runtest/files/heat_test_tempate.yml
+  - template: jinja
+  - makedirs: true
+  - mode: 644
+  - user: root
+  - group: root
+
+heatv1_stack_present:
+  heatv1.stack_present:
+   - name: TestHeatStack
+   - cloud_name: admin_identity
+   - template: heat_test_tempate.yml
+
+heatv1_stack_absent:
+  heatv1.stack_absent:
+   - name: TestHeatStack
+   - cloud_name: admin_identity
+
+remove_heatv1_state_resource:
+  file.directory:
+  - name: /srv/heat
+  - clean: True
\ No newline at end of file
diff --git a/runtest/salttest/states/openstack/init.sls b/runtest/salttest/states/openstack/init.sls
index 6a26911..bb70bb0 100644
--- a/runtest/salttest/states/openstack/init.sls
+++ b/runtest/salttest/states/openstack/init.sls
@@ -1,4 +1,7 @@
 include:
 - runtest.salttest.states.openstack.neutron
+- runtest.salttest.states.openstack.neutronv2
 - runtest.salttest.states.openstack.nova
 - runtest.salttest.states.openstack.glancev2
+- runtest.salttest.states.openstack.cinderv3
+- runtest.salttest.states.openstack.heatv1
diff --git a/runtest/salttest/states/openstack/neutronv2.sls b/runtest/salttest/states/openstack/neutronv2.sls
new file mode 100644
index 0000000..a2221a7
--- /dev/null
+++ b/runtest/salttest/states/openstack/neutronv2.sls
@@ -0,0 +1,37 @@
+{%- set neutron_test_network = 'NeutronStateTestNetwork' %}
+{%- set neutron_test_subnet = 'NeutronStateTestSubnet' %}
+{%- set neutron_test_subnet_pool = 'NeutronStateTestSubnetPool' %}
+
+neutronv2_network_present:
+  neutronv2.network_present:
+  - cloud_name: admin_identity
+  - name: {{ neutron_test_network }}
+
+neutronv2_subnet_present:
+  neutronv2.subnet_present:
+  - name: {{ neutron_test_subnet }}
+  - cloud_name: admin_identity
+  - network_id: {{ neutron_test_network }}
+  - ip_version: 4
+  - cidr: 192.168.89.0/24
+
+neutronv2_subnetpool_present:
+  neutronv2.subnetpool_present:
+  - cloud_name: admin_identity
+  - name: {{ neutron_test_subnet_pool }}
+  - prefixes: [203.0.113.0/24]
+
+neutronv2_subnetpool_absent:
+  neutronv2.subnetpool_absent:
+  - cloud_name: admin_identity
+  - name: {{ neutron_test_subnet_pool }}
+
+neutronv2_subnet_absent:
+  neutronv2.subnet_absent:
+  - cloud_name: admin_identity
+  - name: {{ neutron_test_subnet }}
+
+neutronv2_network_absent:
+  neutronv2.network_absent:
+  - cloud_name: admin_identity
+  - name: {{ neutron_test_network }}