1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

fix for special case of last element of url (#43354)

* fix for special case of last element of url

* improved version

* fixed mistake

* adding appropriate test

* fix problem

* just fixed task name
This commit is contained in:
Zim Kalinowski 2018-07-31 16:31:08 +08:00 committed by GitHub
parent c344a94846
commit c8fcbdef71
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 59 additions and 16 deletions

View file

@ -210,6 +210,7 @@ class AzureRMResource(AzureRMModuleBase):
self.status_code.append(204) self.status_code.append(204)
if self.url is None: if self.url is None:
orphan = None
rargs = dict() rargs = dict()
rargs['subscription'] = self.subscription_id rargs['subscription'] = self.subscription_id
rargs['resource_group'] = self.resource_group rargs['resource_group'] = self.resource_group
@ -217,16 +218,27 @@ class AzureRMResource(AzureRMModuleBase):
rargs['namespace'] = "Microsoft." + self.provider rargs['namespace'] = "Microsoft." + self.provider
else: else:
rargs['namespace'] = self.provider rargs['namespace'] = self.provider
rargs['type'] = self.resource_type
rargs['name'] = self.resource_name
for i in range(len(self.subresource)): if self.resource_type is not None and self.resource_name is not None:
rargs['child_namespace_' + str(i + 1)] = self.subresource[i].get('namespace', None) rargs['type'] = self.resource_type
rargs['child_type_' + str(i + 1)] = self.subresource[i].get('type', None) rargs['name'] = self.resource_name
rargs['child_name_' + str(i + 1)] = self.subresource[i].get('name', None) for i in range(len(self.subresource)):
resource_ns = self.subresource[i].get('namespace', None)
resource_type = self.subresource[i].get('type', None)
resource_name = self.subresource[i].get('name', None)
if resource_type is not None and resource_name is not None:
rargs['child_namespace_' + str(i + 1)] = resource_ns
rargs['child_type_' + str(i + 1)] = resource_type
rargs['child_name_' + str(i + 1)] = resource_name
else:
orphan = resource_type
else:
orphan = self.resource_type
self.url = resource_id(**rargs) self.url = resource_id(**rargs)
if orphan is not None:
self.url += '/' + orphan
query_parameters = {} query_parameters = {}
query_parameters['api-version'] = self.api_version query_parameters['api-version'] = self.api_version

View file

@ -152,6 +152,7 @@ class AzureRMResourceFacts(AzureRMModuleBase):
base_url=self._cloud_environment.endpoints.resource_manager) base_url=self._cloud_environment.endpoints.resource_manager)
if self.url is None: if self.url is None:
orphan = None
rargs = dict() rargs = dict()
rargs['subscription'] = self.subscription_id rargs['subscription'] = self.subscription_id
rargs['resource_group'] = self.resource_group rargs['resource_group'] = self.resource_group
@ -159,19 +160,27 @@ class AzureRMResourceFacts(AzureRMModuleBase):
rargs['namespace'] = "Microsoft." + self.provider rargs['namespace'] = "Microsoft." + self.provider
else: else:
rargs['namespace'] = self.provider rargs['namespace'] = self.provider
rargs['type'] = self.resource_type
rargs['name'] = self.resource_name
for i in range(len(self.subresource)): if self.resource_type is not None and self.resource_name is not None:
rargs['child_namespace_' + str(i + 1)] = self.subresource[i].get('namespace', None) rargs['type'] = self.resource_type
rargs['child_type_' + str(i + 1)] = self.subresource[i].get('type', None) rargs['name'] = self.resource_name
rargs['child_name_' + str(i + 1)] = self.subresource[i].get('name', None) for i in range(len(self.subresource)):
resource_ns = self.subresource[i].get('namespace', None)
resource_type = self.subresource[i].get('type', None)
resource_name = self.subresource[i].get('name', None)
if resource_type is not None and resource_name is not None:
rargs['child_namespace_' + str(i + 1)] = resource_ns
rargs['child_type_' + str(i + 1)] = resource_type
rargs['child_name_' + str(i + 1)] = resource_name
else:
orphan = resource_type
else:
orphan = self.resource_type
self.url = resource_id(**rargs) self.url = resource_id(**rargs)
# this is to fix a problem with resource_id implementation, when resource_name is not specified if orphan is not None:
if self.resource_type is not None and self.resource_name is None: self.url += '/' + orphan
self.url += '/' + self.resource_type
self.results['url'] = self.url self.results['url'] = self.url

View file

@ -1,6 +1,7 @@
- name: Prepare random number - name: Prepare random number
set_fact: set_fact:
nsgname: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}" nsgname: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
storageaccountname: "stacc{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
run_once: yes run_once: yes
- name: Call REST API - name: Call REST API
@ -54,7 +55,6 @@
assert: assert:
that: output.changed that: output.changed
- name: Try to get information about account - name: Try to get information about account
azure_rm_resource_facts: azure_rm_resource_facts:
api_version: '2018-02-01' api_version: '2018-02-01'
@ -63,3 +63,25 @@
resource_type: networksecuritygroups resource_type: networksecuritygroups
resource_name: "{{ nsgname }}" resource_name: "{{ nsgname }}"
register: output register: output
- name: Create storage account for Registry
azure_rm_storageaccount:
resource_group: "{{ resource_group }}"
name: "{{ storageaccountname }}"
type: Standard_LRS
- name: Try to storage keys -- special case when subresource part has no name
azure_rm_resource:
resource_group: "{{ resource_group }}"
provider: storage
resource_type: storageAccounts
resource_name: "{{ storageaccountname }}"
subresource:
- type: listkeys
api_version: '2018-03-01-preview'
method: POST
register: keys
- name: Assert that key was returned
assert:
that: keys['response']['keys'][0]['value'] | length > 0