Add runtest tests for Ironicv1 module and state

Change-Id: Ia01f9c8ba4e18b334f5a1f573b715891773f1899
Related-Prod: PROD-21894 (PROD:21894)
diff --git a/runtest/salttest/modules/openstack/ironicv1.sls b/runtest/salttest/modules/openstack/ironicv1.sls
new file mode 100644
index 0000000..e085af6
--- /dev/null
+++ b/runtest/salttest/modules/openstack/ironicv1.sls
@@ -0,0 +1,482 @@
+{%- set Ironic_Test_Node_ID = salt['cmd.run']('cat /proc/sys/kernel/random/uuid') %}
+{%- set Ironic_Test_VIF_ID = salt['cmd.run']('cat /proc/sys/kernel/random/uuid') %}
+{%- set Ironic_Test_PORT_ID = salt['cmd.run']('cat /proc/sys/kernel/random/uuid') %}
+{%- set Ironic_Test_Chassis_ID = salt['cmd.run']('cat /proc/sys/kernel/random/uuid') %}
+{%- set Ironic_Test_Volume_ID = salt['cmd.run']('cat /proc/sys/kernel/random/uuid') %}
+{%- set Ironic_Test_Connector_ID = salt['cmd.run']('cat /proc/sys/kernel/random/uuid') %}
+
+ironicv1_node_create:
+  module.run:
+    - name: ironicv1.node_create
+    - args:
+      - fake
+    - kwargs:
+        name: ironictestnode1
+        cloud_name: admin_identity
+        microversion: "1.16"
+        uuid: {{ Ironic_Test_Node_ID }}
+
+ironicv1_node_list:
+  module.run:
+    - name: ironicv1.node_list
+    - kwargs:
+        cloud_name: admin_identity
+    - require:
+      - ironicv1_node_create
+
+ironicv1_node_update:
+  module.run:
+    - name: ironicv1.node_update
+    - kwargs:
+        cloud_name: admin_identity
+        microversion: "1.16"
+        node_ident: {{ Ironic_Test_Node_ID }}
+        properties:
+          - op: replace
+            path: "/name"
+            value: ironictestnodename2
+    - require:
+      - ironicv1_node_create
+
+ironicv1_node_get_details:
+  module.run:
+    - name: ironicv1.node_get_details
+    - kwargs:
+        cloud_name: admin_identity
+        node_ident: {{ Ironic_Test_Node_ID }}
+    - require:
+      - ironicv1_node_create
+
+ironicv1_node_validate:
+  module.run:
+    - name: ironicv1.node_validate
+    - kwargs:
+        cloud_name: admin_identity
+        node_ident: {{ Ironic_Test_Node_ID }}
+    - require:
+      - ironicv1_node_create
+
+ironicv1_node_maintenance_flag_set:
+  module.run:
+    - name: ironicv1.node_maintenance_flag_set
+    - kwargs:
+        cloud_name: admin_identity
+        node_ident: {{ Ironic_Test_Node_ID }}
+        reason: testreason
+    - require:
+      - ironicv1_node_create
+
+ironicv1_node_maintenance_flag_clear:
+  module.run:
+    - name: ironicv1.node_maintenance_flag_clear
+    - kwargs:
+        cloud_name: admin_identity
+        node_ident: {{ Ironic_Test_Node_ID }}
+    - require:
+      - ironicv1_node_create
+
+ironicv1_node_boot_device_set:
+  module.run:
+    - name: ironicv1.node_boot_device_set
+    - kwargs:
+        cloud_name: admin_identity
+        node_ident: {{ Ironic_Test_Node_ID }}
+        boot_device: pxe
+    - require:
+      - ironicv1_node_create
+
+ironicv1_node_boot_device_get:
+  module.run:
+    - name: ironicv1.node_boot_device_get
+    - kwargs:
+        cloud_name: admin_identity
+        node_ident: {{ Ironic_Test_Node_ID }}
+    - require:
+      - ironicv1_node_create
+
+ironicv1_node_boot_device_get_supported:
+  module.run:
+    - name: ironicv1.node_boot_device_get_supported
+    - kwargs:
+        cloud_name: admin_identity
+        node_ident: {{ Ironic_Test_Node_ID }}
+    - require:
+      - ironicv1_node_create
+
+ironicv1_node_console_get:
+  module.run:
+    - name: ironicv1.node_console_get
+    - kwargs:
+        cloud_name: admin_identity
+        node_ident: {{ Ironic_Test_Node_ID }}
+    - require:
+      - ironicv1_node_create
+
+ironicv1_node_console_start_stop:
+  module.run:
+    - name: ironicv1.node_console_start_stop
+    - kwargs:
+        cloud_name: admin_identity
+        node_ident: {{ Ironic_Test_Node_ID }}
+        enabled: true
+    - require:
+      - ironicv1_node_create
+
+ironicv1_node_power_state_change:
+  module.run:
+    - name: ironicv1.node_power_state_change
+    - kwargs:
+        cloud_name: admin_identity
+        node_ident: {{ Ironic_Test_Node_ID }}
+        target: power off
+    - require:
+      - ironicv1_node_create
+
+ironicv1_node_provision_state_change:
+  module.run:
+    - name: ironicv1.node_provision_state_change
+    - kwargs:
+        cloud_name: admin_identity
+        node_ident: {{ Ironic_Test_Node_ID }}
+        microversion: "1.16"
+        target: manage
+    - require:
+      - ironicv1_node_create
+
+ironicv1_node_raid_config_set:
+  module.run:
+    - name: ironicv1.node_raid_config_set
+    - kwargs:
+        cloud_name: admin_identity
+        node_ident: {{ Ironic_Test_Node_ID }}
+        microversion: "1.16"
+        target_raid_config:
+          logical_disks:
+            - size_gb: 1
+              is_root_volume: true
+              raid_level: "1"
+    - require:
+      - ironicv1_node_create
+
+ironicv1_node_state_summary:
+  module.run:
+    - name: ironicv1.node_state_summary
+    - kwargs:
+        cloud_name: admin_identity
+        node_ident: {{ Ironic_Test_Node_ID }}
+    - require:
+      - ironicv1_node_create
+
+ironicv1_port_create:
+  module.run:
+    - name: ironicv1.port_create
+    - kwargs:
+        cloud_name: admin_identity
+        node_uuid: {{ Ironic_Test_Node_ID }}
+        microversion: "1.34"
+        address: "11:11:11:11:11:11"
+        uuid: {{ Ironic_Test_PORT_ID }}
+        local_link_connection:
+          port_id: {{ Ironic_Test_PORT_ID }}
+          switch_id: 0a:1b:2c:3d:4e:5f
+    - require:
+      - ironicv1_node_create
+
+ironicv1_port_get_details:
+  module.run:
+    - name: ironicv1.port_get_details
+    - kwargs:
+        cloud_name: admin_identity
+        microversion: "1.34"
+        port_id: {{ Ironic_Test_PORT_ID }}
+    - require:
+      - ironicv1_port_create
+
+ironicv1_port_list:
+  module.run:
+    - name: ironicv1.port_list
+    - kwargs:
+        cloud_name: admin_identity
+        node_uuid: {{ Ironic_Test_Node_ID }}
+        microversion: "1.34"
+    - require:
+      - ironicv1_port_create
+
+ironicv1_port_update:
+  module.run:
+    - name: ironicv1.port_update
+    - kwargs:
+        cloud_name: admin_identity
+        port_id: {{ Ironic_Test_PORT_ID }}
+        microversion: "1.34"
+        properties:
+          - path: "/address"
+            value: "22:22:22:22:22:22"
+            op: replace
+    - require:
+      - ironicv1_port_create
+
+ironicv1_port_list_details:
+  module.run:
+    - name: ironicv1.port_list_details
+    - kwargs:
+        cloud_name: admin_identity
+        node_uuid: {{ Ironic_Test_Node_ID }}
+        microversion: "1.34"
+    - require:
+      - ironicv1_port_create
+
+ironicv1_node_vif_attach:
+  module.run:
+    - name: ironicv1.node_vif_attach
+    - kwargs:
+        cloud_name: admin_identity
+        node_ident: {{ Ironic_Test_Node_ID }}
+        microversion: "1.28"
+        id: {{ Ironic_Test_VIF_ID }}
+    - require:
+      - ironicv1_node_create
+
+ironicv1_node_vif_list:
+  module.run:
+    - name: ironicv1.node_vif_list
+    - kwargs:
+        cloud_name: admin_identity
+        node_ident: {{ Ironic_Test_Node_ID }}
+        microversion: "1.28"
+    - require:
+      - ironicv1_node_create
+
+ironicv1_node_vif_detach:
+  module.run:
+    - name: ironicv1.node_vif_detach
+    - kwargs:
+        cloud_name: admin_identity
+        node_ident: {{ Ironic_Test_Node_ID }}
+        vif_ident: {{ Ironic_Test_VIF_ID }}
+        microversion: "1.28"
+    - require:
+      - ironicv1_node_create
+
+ironicv1_driver_list:
+  module.run:
+    - name: ironicv1.driver_list
+    - kwargs:
+        cloud_name: admin_identity
+
+ironicv1_driver_get_details:
+  module.run:
+    - name: ironicv1.driver_get_details
+    - kwargs:
+        cloud_name: admin_identity
+        name: fake
+
+ironicv1_driver_get_properties:
+  module.run:
+    - name: ironicv1.driver_get_properties
+    - kwargs:
+        cloud_name: admin_identity
+        name: fake
+
+ironicv1_driver_get_logical_disk_properties:
+  module.run:
+    - name: ironicv1.driver_get_logical_disk_properties
+    - kwargs:
+        cloud_name: admin_identity
+        name: fake
+        microversion: "1.12"
+
+ironicv1_chassis_create:
+  module.run:
+    - name: ironicv1.chassis_create
+    - kwargs:
+        cloud_name: admin_identity
+        chassis:
+          description: chassisobject
+          uuid: {{ Ironic_Test_Chassis_ID }}
+
+ironicv1_chassis_list:
+  module.run:
+    - name: ironicv1.chassis_list
+    - kwargs:
+        cloud_name: admin_identity
+    - require:
+      - ironicv1_chassis_create
+
+ironicv1_chassis_update:
+  module.run:
+    - name: ironicv1.chassis_update
+    - kwargs:
+        cloud_name: admin_identity
+        chassis_id: {{ Ironic_Test_Chassis_ID }}
+        properties:
+          - op: replace
+            path: "/description"
+            value: "Updated Chassis"
+    - require:
+      - ironicv1_chassis_create
+
+ironicv1_chassis_get_details:
+  module.run:
+    - name: ironicv1.chassis_get_details
+    - kwargs:
+        cloud_name: admin_identity
+        chassis_id: {{ Ironic_Test_Chassis_ID }}
+    - require:
+      - ironicv1_chassis_create
+
+ironicv1_chassis_list_details:
+  module.run:
+    - name: ironicv1.chassis_list_details
+    - kwargs:
+        cloud_name: admin_identity
+    - require:
+      - ironicv1_chassis_create
+
+ironicv1_volume_target_create:
+  module.run:
+    - name: ironicv1.volume_target_create
+    - kwargs:
+        cloud_name: admin_identity
+        microversion: "1.32"
+        node_uuid: {{ Ironic_Test_Node_ID }}
+        volume_type: iscsi
+        boot_index: 0
+        volume_id: {{ Ironic_Test_Volume_ID }}
+        uuid: {{ Ironic_Test_Volume_ID }}
+        properties:
+          access_mode: rw
+
+ironicv1_volume_target_list:
+  module.run:
+    - name: ironicv1.volume_target_list
+    - kwargs:
+        cloud_name: admin_identity
+        microversion: "1.32"
+    - require:
+      - ironicv1_volume_target_create
+
+ironicv1_volume_target_update:
+  module.run:
+    - name: ironicv1.volume_target_update
+    - kwargs:
+        cloud_name: admin_identity
+        microversion: "1.32"
+        target_id: {{ Ironic_Test_Volume_ID }}
+        properties:
+          - op: replace
+            value: 0
+            path: "/boot_index"
+    - require:
+      - ironicv1_volume_target_create
+
+ironicv1_volume_target_get_details:
+  module.run:
+    - name: ironicv1.volume_target_get_details
+    - kwargs:
+        cloud_name: admin_identity
+        microversion: "1.32"
+        target_id: {{ Ironic_Test_Volume_ID }}
+    - require:
+      - ironicv1_volume_target_create
+
+ironicv1_volume_connector_create:
+  module.run:
+    - name: ironicv1.volume_connector_create
+    - kwargs:
+        cloud_name: admin_identity
+        microversion: "1.32"
+        node_uuid: {{ Ironic_Test_Node_ID }}
+        volume_type: iqn
+        connector_id: {{ Ironic_Test_Connector_ID }}
+        uuid: {{ Ironic_Test_Connector_ID }}
+    - require:
+      - ironicv1_node_create
+
+ironicv1_volume_connector_list:
+  module.run:
+    - name: ironicv1.volume_connector_list
+    - kwargs:
+        cloud_name: admin_identity
+        microversion: "1.32"
+    - require:
+      - ironicv1_volume_connector_create
+
+ironicv1_volume_connector_update:
+  module.run:
+    - name: ironicv1.volume_connector_update
+    - kwargs:
+        cloud_name: admin_identity
+        microversion: "1.32"
+        volume_connector_id: {{ Ironic_Test_Connector_ID }}
+        properties:
+          - op: replace
+            value: {{ Ironic_Test_Connector_ID }}
+            path: "/connector_id"
+    - require:
+      - ironicv1_volume_connector_create
+
+ironicv1_volume_connector_get_details:
+  module.run:
+    - name: ironicv1.volume_connector_get_details
+    - kwargs:
+        cloud_name: admin_identity
+        microversion: "1.32"
+        volume_connector_id: {{ Ironic_Test_Connector_ID }}
+    - require:
+      - ironicv1_volume_connector_create
+
+ironicv1_volume_resource_list:
+  module.run:
+    - name: ironicv1.volume_resource_list
+    - kwargs:
+        cloud_name: admin_identity
+        microversion: "1.32"
+
+ironicv1_volume_connector_delete:
+  module.run:
+    - name: ironicv1.volume_connector_delete
+    - kwargs:
+        cloud_name: admin_identity
+        microversion: "1.32"
+        volume_connector_id: {{ Ironic_Test_Connector_ID }}
+    - require:
+      - ironicv1_volume_connector_create
+
+ironicv1_volume_target_delete:
+  module.run:
+    - name: ironicv1.volume_target_delete
+    - kwargs:
+        cloud_name: admin_identity
+        microversion: "1.32"
+        target_id: {{ Ironic_Test_Volume_ID }}
+    - require:
+      - ironicv1_volume_target_create
+
+ironicv1_chassis_delete:
+  module.run:
+    - name: ironicv1.chassis_delete
+    - kwargs:
+        cloud_name: admin_identity
+        chassis_id: {{ Ironic_Test_Chassis_ID }}
+    - require:
+      - ironicv1_chassis_create
+
+ironicv1_port_delete:
+  module.run:
+    - name: ironicv1.port_delete
+    - kwargs:
+        cloud_name: admin_identity
+        microversion: "1.34"
+        port_id: {{ Ironic_Test_PORT_ID }}
+    - require:
+      - ironicv1_port_create
+
+ironicv1_node_delete:
+  module.run:
+    - name: ironicv1.node_delete
+    - kwargs:
+        cloud_name: admin_identity
+        node_ident: {{ Ironic_Test_Node_ID }}
+    - require:
+      - ironicv1_node_create
diff --git a/runtest/salttest/states/openstack/ironicv1.sls b/runtest/salttest/states/openstack/ironicv1.sls
new file mode 100644
index 0000000..ea8b491
--- /dev/null
+++ b/runtest/salttest/states/openstack/ironicv1.sls
@@ -0,0 +1,28 @@
+{%- set Ironic_Test_Node_ID = salt['cmd.run']('cat /proc/sys/kernel/random/uuid') %}
+
+ironicv1_node_present_update:
+  ironicv1.node_present:
+  - name: test
+  - cloud_name: admin_identity
+  - driver: fake
+  - uuid: {{ Ironic_Test_Node_ID }}
+  - extra:
+      a: b
+  - microversion: "1.34"
+
+ironicv1_port_present:
+  ironicv1.port_present:
+  - cloud_name: admin_identity
+  - node: test
+  - address: "11:11:11:11:11:11"
+
+ironicv1_port_absent:
+  ironicv1.port_absent:
+  - cloud_name: admin_identity
+  - node: test
+  - address: "11:11:11:11:11:11"
+
+ironicv1_node_absent:
+  ironicv1.node_absent:
+  - cloud_name: admin_identity
+  - name: test
\ No newline at end of file