Ansible Redis (#173)

<!-- This change is generated by MagicModules. -->
/cc @rambleraptor
This commit is contained in:
The Magician 2019-01-28 12:08:00 -08:00 committed by Alex Stephen
parent 6cbacba697
commit 918acf47d4
6 changed files with 118 additions and 135 deletions

View file

@ -123,7 +123,7 @@ def main():
def collection(module): def collection(module):
res = {'project': module.params['project'], 'managed_zone': replace_resource_dict(module.params['managed_zone'], 'name')} res = {'project': module.params['project'], 'managed_zone': replace_resource_dict(module.params['managed_zone'], 'name')}
return "https://www.googleapis.com/dns/v1/projects/{project}/managedZones/{managed_zone}/rrsets".format(**res) return "https://www.googleapis.com/dns/v1/projects/{project}/managedZones/{managed_zone}/changes".format(**res)
def fetch_list(module, link): def fetch_list(module, link):

View file

@ -123,30 +123,30 @@ notes:
EXAMPLES = ''' EXAMPLES = '''
- name: create a network - name: create a network
gcp_compute_network: gcp_compute_network:
name: network-instance name: "network-instance"
project: "{{ gcp_project }}" project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}" auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}" service_account_file: "{{ gcp_cred_file }}"
state: present state: present
register: network register: network
- name: create a instance - name: create a instance
gcp_redis_instance: gcp_redis_instance:
name: instance37 name: instance37
tier: STANDARD_HA tier: STANDARD_HA
memory_size_gb: 1 memory_size_gb: 1
region: us-central1 region: us-central1
location_id: us-central1-a location_id: us-central1-a
redis_version: REDIS_3_2 redis_version: REDIS_3_2
display_name: Ansible Test Instance display_name: Ansible Test Instance
reserved_ip_range: 192.168.0.0/29 reserved_ip_range: 192.168.0.0/29
labels: labels:
my_key: my_val my_key: my_val
other_key: other_val other_key: other_val
project: test_project project: "test_project"
auth_kind: serviceaccount auth_kind: "serviceaccount"
service_account_file: "/tmp/auth.pem" service_account_file: "/tmp/auth.pem"
state: present state: present
''' '''
RETURN = ''' RETURN = '''
@ -296,7 +296,7 @@ def main():
if fetch: if fetch:
if state == 'present': if state == 'present':
if is_different(module, fetch): if is_different(module, fetch):
update(module, self_link(module), fetch) update(module, self_link(module))
fetch = fetch_resource(module, self_link(module)) fetch = fetch_resource(module, self_link(module))
changed = True changed = True
else: else:
@ -320,25 +320,8 @@ def create(module, link):
return wait_for_operation(module, auth.post(link, resource_to_request(module))) return wait_for_operation(module, auth.post(link, resource_to_request(module)))
def update(module, link, fetch): def update(module, link):
auth = GcpSession(module, 'redis') module.fail_json(msg="Instance cannot be edited")
params = {'updateMask': updateMask(resource_to_request(module), response_to_hash(module, fetch))}
request = resource_to_request(module)
del request['name']
return wait_for_operation(module, auth.patch(link, request, params=params))
def updateMask(request, response):
update_mask = []
if request.get('displayName') != response.get('displayName'):
update_mask.append('displayName')
if request.get('labels') != response.get('labels'):
update_mask.append('labels')
if request.get('redisConfigs') != response.get('redisConfigs'):
update_mask.append('redisConfigs')
if request.get('memorySizeGb') != response.get('memorySizeGb'):
update_mask.append('memorySizeGb')
return ','.join(update_mask)
def delete(module, link): def delete(module, link):
@ -467,7 +450,7 @@ def wait_for_completion(status, op_result, module):
while not status: while not status:
raise_if_errors(op_result, ['error'], module) raise_if_errors(op_result, ['error'], module)
time.sleep(1.0) time.sleep(1.0)
op_result = fetch_resource(module, op_uri, False) op_result = fetch_resource(module, op_uri)
status = navigate_hash(op_result, ['done']) status = navigate_hash(op_result, ['done'])
return op_result return op_result

View file

@ -48,13 +48,12 @@ extends_documentation_fragment: gcp
''' '''
EXAMPLES = ''' EXAMPLES = '''
- name: " a instance facts" - name: a instance facts
gcp_redis_instance_facts: gcp_redis_instance_facts:
region: us-central1 region: us-central1
project: test_project project: test_project
auth_kind: serviceaccount auth_kind: serviceaccount
service_account_file: "/tmp/auth.pem" service_account_file: "/tmp/auth.pem"
state: facts
''' '''
RETURN = ''' RETURN = '''

View file

@ -336,7 +336,7 @@ def wait_for_operation(module, response):
def wait_for_completion(status, op_result, module): def wait_for_completion(status, op_result, module):
op_id = navigate_hash(op_result, ['name']) op_id = navigate_hash(op_result, ['name'])
op_uri = async_op_url(module, {'op_id': op_id}) op_uri = async_op_url(module, {'op_id': op_id})
if not status: while not status:
raise_if_errors(op_result, ['error'], module) raise_if_errors(op_result, ['error'], module)
time.sleep(1.0) time.sleep(1.0)
op_result = fetch_resource(module, op_uri) op_result = fetch_resource(module, op_uri)

View file

@ -1,2 +1,3 @@
--- ---
resource_name: "{{ resource_prefix }}" # defaults file
resource_name: '{{resource_prefix}}'

View file

@ -15,47 +15,47 @@
# Pre-test setup # Pre-test setup
- name: create a network - name: create a network
gcp_compute_network: gcp_compute_network:
name: network-instance name: "network-instance"
project: "{{ gcp_project }}" project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}" auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}" service_account_file: "{{ gcp_cred_file }}"
state: present state: present
register: network register: network
- name: delete a instance - name: delete a instance
gcp_redis_instance: gcp_redis_instance:
name: instance37 name: instance37
tier: STANDARD_HA tier: STANDARD_HA
memory_size_gb: 1 memory_size_gb: 1
region: us-central1 region: us-central1
location_id: us-central1-a location_id: us-central1-a
redis_version: REDIS_3_2 redis_version: REDIS_3_2
display_name: Ansible Test Instance display_name: Ansible Test Instance
reserved_ip_range: 192.168.0.0/29 reserved_ip_range: 192.168.0.0/29
labels: labels:
my_key: my_val my_key: my_val
other_key: other_val other_key: other_val
project: "{{ gcp_project }}" project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}" auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}" service_account_file: "{{ gcp_cred_file }}"
state: absent state: absent
#---------------------------------------------------------- #----------------------------------------------------------
- name: create a instance - name: create a instance
gcp_redis_instance: gcp_redis_instance:
name: instance37 name: instance37
tier: STANDARD_HA tier: STANDARD_HA
memory_size_gb: 1 memory_size_gb: 1
region: us-central1 region: us-central1
location_id: us-central1-a location_id: us-central1-a
redis_version: REDIS_3_2 redis_version: REDIS_3_2
display_name: Ansible Test Instance display_name: Ansible Test Instance
reserved_ip_range: 192.168.0.0/29 reserved_ip_range: 192.168.0.0/29
labels: labels:
my_key: my_val my_key: my_val
other_key: other_val other_key: other_val
project: "{{ gcp_project }}" project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}" auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}" service_account_file: "{{ gcp_cred_file }}"
state: present state: present
register: result register: result
- name: assert changed is true - name: assert changed is true
assert: assert:
@ -77,21 +77,21 @@
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
- name: create a instance that already exists - name: create a instance that already exists
gcp_redis_instance: gcp_redis_instance:
name: instance37 name: instance37
tier: STANDARD_HA tier: STANDARD_HA
memory_size_gb: 1 memory_size_gb: 1
region: us-central1 region: us-central1
location_id: us-central1-a location_id: us-central1-a
redis_version: REDIS_3_2 redis_version: REDIS_3_2
display_name: Ansible Test Instance display_name: Ansible Test Instance
reserved_ip_range: 192.168.0.0/29 reserved_ip_range: 192.168.0.0/29
labels: labels:
my_key: my_val my_key: my_val
other_key: other_val other_key: other_val
project: "{{ gcp_project }}" project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}" auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}" service_account_file: "{{ gcp_cred_file }}"
state: present state: present
register: result register: result
- name: assert changed is false - name: assert changed is false
assert: assert:
@ -100,21 +100,21 @@
#---------------------------------------------------------- #----------------------------------------------------------
- name: delete a instance - name: delete a instance
gcp_redis_instance: gcp_redis_instance:
name: instance37 name: instance37
tier: STANDARD_HA tier: STANDARD_HA
memory_size_gb: 1 memory_size_gb: 1
region: us-central1 region: us-central1
location_id: us-central1-a location_id: us-central1-a
redis_version: REDIS_3_2 redis_version: REDIS_3_2
display_name: Ansible Test Instance display_name: Ansible Test Instance
reserved_ip_range: 192.168.0.0/29 reserved_ip_range: 192.168.0.0/29
labels: labels:
my_key: my_val my_key: my_val
other_key: other_val other_key: other_val
project: "{{ gcp_project }}" project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}" auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}" service_account_file: "{{ gcp_cred_file }}"
state: absent state: absent
register: result register: result
- name: assert changed is true - name: assert changed is true
assert: assert:
@ -136,21 +136,21 @@
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
- name: delete a instance that does not exist - name: delete a instance that does not exist
gcp_redis_instance: gcp_redis_instance:
name: instance37 name: instance37
tier: STANDARD_HA tier: STANDARD_HA
memory_size_gb: 1 memory_size_gb: 1
region: us-central1 region: us-central1
location_id: us-central1-a location_id: us-central1-a
redis_version: REDIS_3_2 redis_version: REDIS_3_2
display_name: Ansible Test Instance display_name: Ansible Test Instance
reserved_ip_range: 192.168.0.0/29 reserved_ip_range: 192.168.0.0/29
labels: labels:
my_key: my_val my_key: my_val
other_key: other_val other_key: other_val
project: "{{ gcp_project }}" project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}" auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}" service_account_file: "{{ gcp_cred_file }}"
state: absent state: absent
register: result register: result
- name: assert changed is false - name: assert changed is false
assert: assert:
@ -161,10 +161,10 @@
# If errors happen, don't crash the playbook! # If errors happen, don't crash the playbook!
- name: delete a network - name: delete a network
gcp_compute_network: gcp_compute_network:
name: network-instance name: "network-instance"
project: "{{ gcp_project }}" project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}" auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}" service_account_file: "{{ gcp_cred_file }}"
state: absent state: absent
register: network register: network
ignore_errors: true ignore_errors: true