mirror of
				https://github.com/ansible-collections/community.general.git
				synced 2024-09-14 20:13:21 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			191 lines
		
	
	
	
		
			7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			191 lines
		
	
	
	
		
			7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # Test code for the ACI modules
 | |
| # Copyright: (c) 2018, Dag Wieers (@dagwieers) <dag@wieers.com>
 | |
| 
 | |
| # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
 | |
| 
 | |
| 
 | |
| # PROVOKE ERRORS
 | |
| - name: Error on name resolution
 | |
|   aci_rest:
 | |
|     host: foo.bar.cisco.com
 | |
|     username: '{{ aci_username }}'
 | |
|     password: '{{ aci_password }}'
 | |
|     validate_certs: '{{ aci_validate_certs | default(false) }}'
 | |
|     use_ssl: '{{ aci_use_ssl | default(true) }}'
 | |
|     use_proxy: '{{ aci_use_proxy | default(true) }}'
 | |
|     output_level: debug
 | |
|     path: /api/mo/uni.json
 | |
|     method: post
 | |
|     content:
 | |
|       fvTenant:
 | |
|         attributes:
 | |
|           name: ansible_test
 | |
|   ignore_errors: yes
 | |
|   register: error_on_name_resolution
 | |
| 
 | |
| - name: Verify error_on_name_resolution
 | |
|   assert:
 | |
|     that:
 | |
|     - error_on_name_resolution.failed == true
 | |
|     - "error_on_name_resolution.msg == 'Connection failed for https://foo.bar.cisco.com/api/aaaLogin.json. Request failed: <urlopen error [Errno -2] Name or service not known>'"
 | |
|     - "'current' not in error_on_name_resolution"
 | |
|     - "'previous' not in error_on_name_resolution"
 | |
|     - "'sent' not in error_on_name_resolution"
 | |
|     - "'proposed' not in error_on_name_resolution"
 | |
|     - "'filter_string' not in error_on_name_resolution"
 | |
| 
 | |
| - name: Error when required parameter is missing
 | |
|   aci_rest:
 | |
|     host: '{{ aci_hostname }}'
 | |
|     username: '{{ aci_username }}'
 | |
|     password: '{{ aci_password }}'
 | |
|     validate_certs: '{{ aci_validate_certs | default(false) }}'
 | |
|     use_ssl: '{{ aci_use_ssl | default(true) }}'
 | |
|     use_proxy: '{{ aci_use_proxy | default(true) }}'
 | |
|     output_level: debug
 | |
|     method: post
 | |
|     content:
 | |
|       fvTenant:
 | |
|         attributes:
 | |
|           name: ansible_test
 | |
|   ignore_errors: yes
 | |
|   register: error_on_missing_required_param
 | |
| 
 | |
| - name: Verify error_on_missing_required_param
 | |
|   assert:
 | |
|     that:
 | |
|     - error_on_missing_required_param.failed == true
 | |
|     - 'error_on_missing_required_param.msg == "missing required arguments: path"'
 | |
|     - "'current' not in error_on_missing_required_param"
 | |
|     - "'previous' not in error_on_missing_required_param"
 | |
|     - "'sent' not in error_on_missing_required_param"
 | |
|     - "'proposed' not in error_on_missing_required_param"
 | |
|     - "'filter_string' not in error_on_missing_required_param"
 | |
| 
 | |
| - name: Error when attributes are missing
 | |
|   aci_rest:
 | |
|     host: '{{ aci_hostname }}'
 | |
|     username: '{{ aci_username }}'
 | |
|     password: '{{ aci_password }}'
 | |
|     validate_certs: '{{ aci_validate_certs | default(false) }}'
 | |
|     use_ssl: '{{ aci_use_ssl | default(true) }}'
 | |
|     use_proxy: '{{ aci_use_proxy | default(true) }}'
 | |
|     output_level: debug
 | |
|     path: /api/mo/uni/tn-ansible_test.json
 | |
|     method: post
 | |
|     content:
 | |
|       fvTenant:
 | |
|         children:
 | |
|   ignore_errors: yes
 | |
|   register: error_on_missing_attributes
 | |
| 
 | |
| - name: Verify error_on_missing_attributes
 | |
|   assert:
 | |
|     that:
 | |
|     - error_on_missing_attributes.failed == true
 | |
|     - error_on_missing_attributes.method == 'POST'
 | |
|     - "error_on_missing_attributes.msg == 'APIC Error 400: invalid data at line \\'1\\'. Attributes are missing, tag \\'attributes\\' must be specified first, before any other tag'"
 | |
|     - 'error_on_missing_attributes.response == "HTTP Error 400: Bad Request"'
 | |
|     - error_on_missing_attributes.status == 400
 | |
|     - "'current' not in error_on_missing_attributes"
 | |
|     - "'previous' not in error_on_missing_attributes"
 | |
|     - "'sent' not in error_on_missing_attributes"
 | |
|     - "'proposed' not in error_on_missing_attributes"
 | |
|     - "'filter_string' not in error_on_missing_attributes"
 | |
| 
 | |
| - name: Error when input does not validate
 | |
|   aci_rest:
 | |
|     host: '{{ aci_hostname }}'
 | |
|     username: '{{ aci_username }}'
 | |
|     password: '{{ aci_password }}'
 | |
|     validate_certs: '{{ aci_validate_certs | default(false) }}'
 | |
|     use_ssl: '{{ aci_use_ssl | default(true) }}'
 | |
|     use_proxy: '{{ aci_use_proxy | default(true) }}'
 | |
|     output_level: debug
 | |
|     path: /api/mo/uni.json
 | |
|     method: post
 | |
|     content:
 | |
|       fvTenant:
 | |
|         attributes:
 | |
|           name: ansible_test
 | |
|           descr: This is an [invalid] description
 | |
|   ignore_errors: yes
 | |
|   register: error_on_input_validation
 | |
| 
 | |
| - name: Verify error_on_input_validation
 | |
|   assert:
 | |
|     that:
 | |
|     - error_on_input_validation.failed == true
 | |
|     - error_on_input_validation.method == 'POST'
 | |
|     - "error_on_input_validation.msg == 'APIC Error 801: property descr of tn-ansible_test failed validation for value \\'This is an [invalid] description\\''"
 | |
|     - 'error_on_input_validation.response == "HTTP Error 400: Bad Request"'
 | |
|     - error_on_input_validation.status == 400
 | |
|     - "'current' not in error_on_input_validation"
 | |
|     - "'previous' not in error_on_input_validation"
 | |
|     - "'sent' not in error_on_input_validation"
 | |
|     - "'proposed' not in error_on_input_validation"
 | |
|     - "'filter_string' not in error_on_input_validation"
 | |
| 
 | |
| - name: Error when invalid attributes are used
 | |
|   aci_rest:
 | |
|     host: '{{ aci_hostname }}'
 | |
|     username: '{{ aci_username }}'
 | |
|     password: '{{ aci_password }}'
 | |
|     validate_certs: '{{ aci_validate_certs | default(false) }}'
 | |
|     use_ssl: '{{ aci_use_ssl | default(true) }}'
 | |
|     use_proxy: '{{ aci_use_proxy | default(true) }}'
 | |
|     output_level: debug
 | |
|     path: /api/mo/uni.json
 | |
|     method: post
 | |
|     content:
 | |
|       fvTenant:
 | |
|         attributes:
 | |
|           name: ansible_test
 | |
|           description: This is an "invalid" description
 | |
|   ignore_errors: yes
 | |
|   register: error_on_invalid_attributes
 | |
| 
 | |
| - name: Verify error_on_invalid_attributes
 | |
|   assert:
 | |
|     that:
 | |
|     - error_on_invalid_attributes.failed == true
 | |
|     - error_on_invalid_attributes.method == 'POST'
 | |
|     - "error_on_invalid_attributes.msg == 'APIC Error 400: unknown attribute \\'description\\' in element \\'fvTenant\\''"
 | |
|     - 'error_on_invalid_attributes.response == "HTTP Error 400: Bad Request"'
 | |
|     - error_on_invalid_attributes.status == 400
 | |
|     - "'current' not in error_on_invalid_attributes"
 | |
|     - "'previous' not in error_on_invalid_attributes"
 | |
|     - "'sent' not in error_on_invalid_attributes"
 | |
|     - "'proposed' not in error_on_invalid_attributes"
 | |
|     - "'filter_string' not in error_on_invalid_attributes"
 | |
| 
 | |
| - name: Error on invalid object
 | |
|   aci_rest:
 | |
|     host: '{{ aci_hostname }}'
 | |
|     username: '{{ aci_username }}'
 | |
|     password: '{{ aci_password }}'
 | |
|     validate_certs: '{{ aci_validate_certs | default(false) }}'
 | |
|     use_ssl: '{{ aci_use_ssl | default(true) }}'
 | |
|     use_proxy: '{{ aci_use_proxy | default(true) }}'
 | |
|     output_level: debug
 | |
|     path: /api/mo/uni.json
 | |
|     method: post
 | |
|     content:
 | |
|       fvFoobar:
 | |
|         attributes:
 | |
|           name: ansible_test
 | |
|   ignore_errors: yes
 | |
|   register: error_on_invalid_object
 | |
| 
 | |
| - name: Verify error_on_invalid_object
 | |
|   assert:
 | |
|     that:
 | |
|     - error_on_invalid_object.failed == true
 | |
|     - error_on_invalid_object.method == 'POST'
 | |
|     - "error_on_invalid_object.msg == 'APIC Error 122: unknown managed object class fvFoobar'"
 | |
|     - 'error_on_invalid_object.response == "HTTP Error 400: Bad Request"'
 | |
|     - error_on_invalid_object.status == 400
 | |
|     - "'current' not in error_on_invalid_object"
 | |
|     - "'previous' not in error_on_invalid_object"
 | |
|     - "'sent' not in error_on_invalid_object"
 | |
|     - "'proposed' not in error_on_invalid_object"
 |