ACI: Implement encoded query_string (#50358)

This requires urldecode support in Ansible
This commit is contained in:
Dag Wieers 2019-01-04 00:38:57 +01:00 committed by GitHub
parent f45c41ef3e
commit f90ec17465
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 48 additions and 44 deletions

View file

@ -37,6 +37,7 @@ import os
from copy import deepcopy
from ansible.module_utils.parsing.convert_bool import boolean
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible.module_utils.urls import fetch_url
from ansible.module_utils._text import to_bytes
@ -387,13 +388,13 @@ class ACIModule(object):
# TODO: This could be designed to update existing keys
def update_qs(self, params):
''' Append key-value pairs to self.filter_string '''
accepted_params = dict((k, v) for (k, v) in params.items() if v)
accepted_params = dict((k, v) for (k, v) in params.items() if v is not None)
if accepted_params:
if self.filter_string:
self.filter_string += '&'
else:
self.filter_string = '?'
self.filter_string += '&'.join(['%s=%s' % (k, v) for (k, v) in accepted_params.items()])
self.filter_string += urlencode(accepted_params)
# TODO: This could be designed to accept multiple obj_classes and keys
def build_filter(self, obj_class, params):

View file

@ -31,7 +31,7 @@
from copy import deepcopy
from ansible.module_utils.basic import AnsibleModule, json
from ansible.module_utils.six.moves.urllib.parse import urljoin
from ansible.module_utils.six.moves.urllib.parse import urlencode, urljoin
from ansible.module_utils.urls import fetch_url
from ansible.module_utils._text import to_native, to_bytes
@ -79,8 +79,8 @@ def issubset(subset, superset):
def update_qs(params):
''' Append key-value pairs to self.filter_string '''
accepted_params = dict((k, v) for (k, v) in params.items() if v)
return '?' + '&'.join(['%s=%s' % (k, v) for (k, v) in accepted_params.items()])
accepted_params = dict((k, v) for (k, v) in params.items() if v is not None)
return '?' + urlencode(accepted_params)
def msc_argument_spec():