2018-02-19 11:01:14 +00:00
# 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'
2018-02-20 02:04:17 +00:00
- "error_on_input_validation.msg == 'APIC Error 801: property descr of tn-ansible_test failed validation for value \\'This is an [invalid] description\\''"
2018-02-19 11:01:14 +00:00
- '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"