mirror of
https://github.com/ansible-collections/google.cloud.git
synced 2025-08-02 04:04:30 -07:00
Merge pull request #694 from thekad/feature/nested_bigquery_schema
Feature/nested bigquery schema
This commit is contained in:
commit
79504d54d6
3 changed files with 109 additions and 8 deletions
|
@ -56,17 +56,17 @@ options:
|
||||||
dataset_id:
|
dataset_id:
|
||||||
description:
|
description:
|
||||||
- The ID of the dataset containing this table.
|
- The ID of the dataset containing this table.
|
||||||
required: false
|
required: true
|
||||||
type: str
|
type: str
|
||||||
project_id:
|
project_id:
|
||||||
description:
|
description:
|
||||||
- The ID of the project containing this table.
|
- The ID of the project containing this table.
|
||||||
required: false
|
required: true
|
||||||
type: str
|
type: str
|
||||||
table_id:
|
table_id:
|
||||||
description:
|
description:
|
||||||
- The ID of the the table.
|
- The ID of the the table.
|
||||||
required: false
|
required: true
|
||||||
type: str
|
type: str
|
||||||
clustering:
|
clustering:
|
||||||
description:
|
description:
|
||||||
|
@ -181,7 +181,7 @@ options:
|
||||||
fields:
|
fields:
|
||||||
description:
|
description:
|
||||||
- Describes the nested schema fields if the type property is set to RECORD.
|
- Describes the nested schema fields if the type property is set to RECORD.
|
||||||
elements: str
|
elements: raw
|
||||||
required: false
|
required: false
|
||||||
type: list
|
type: list
|
||||||
mode:
|
mode:
|
||||||
|
@ -296,7 +296,7 @@ options:
|
||||||
description:
|
description:
|
||||||
- Describes the nested schema fields if the type property is set to
|
- Describes the nested schema fields if the type property is set to
|
||||||
RECORD .
|
RECORD .
|
||||||
elements: str
|
elements: raw
|
||||||
required: false
|
required: false
|
||||||
type: list
|
type: list
|
||||||
mode:
|
mode:
|
||||||
|
@ -1016,7 +1016,11 @@ def main():
|
||||||
module = GcpModule(
|
module = GcpModule(
|
||||||
argument_spec=dict(
|
argument_spec=dict(
|
||||||
state=dict(default='present', choices=['present', 'absent'], type='str'),
|
state=dict(default='present', choices=['present', 'absent'], type='str'),
|
||||||
table_reference=dict(type='dict', options=dict(dataset_id=dict(type='str'), project_id=dict(type='str'), table_id=dict(type='str'))),
|
table_reference=dict(type='dict', options=dict(
|
||||||
|
dataset_id=dict(type='str', required=True),
|
||||||
|
project_id=dict(type='str', required=True),
|
||||||
|
table_id=dict(type='str', required=True)
|
||||||
|
)),
|
||||||
clustering=dict(type='list', elements='str'),
|
clustering=dict(type='list', elements='str'),
|
||||||
description=dict(type='str'),
|
description=dict(type='str'),
|
||||||
friendly_name=dict(type='str'),
|
friendly_name=dict(type='str'),
|
||||||
|
@ -1041,7 +1045,7 @@ def main():
|
||||||
elements='dict',
|
elements='dict',
|
||||||
options=dict(
|
options=dict(
|
||||||
description=dict(type='str'),
|
description=dict(type='str'),
|
||||||
fields=dict(type='list', elements='str'),
|
fields=dict(type='list', elements='raw'),
|
||||||
mode=dict(type='str'),
|
mode=dict(type='str'),
|
||||||
name=dict(type='str'),
|
name=dict(type='str'),
|
||||||
type=dict(type='str'),
|
type=dict(type='str'),
|
||||||
|
@ -1068,7 +1072,7 @@ def main():
|
||||||
elements='dict',
|
elements='dict',
|
||||||
options=dict(
|
options=dict(
|
||||||
description=dict(type='str'),
|
description=dict(type='str'),
|
||||||
fields=dict(type='list', elements='str'),
|
fields=dict(type='list', elements='raw'),
|
||||||
mode=dict(type='str'),
|
mode=dict(type='str'),
|
||||||
name=dict(type='str'),
|
name=dict(type='str'),
|
||||||
type=dict(type='str'),
|
type=dict(type='str'),
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
---
|
---
|
||||||
- name: Generated tests
|
- name: Generated tests
|
||||||
ansible.builtin.include_tasks: autogen.yml
|
ansible.builtin.include_tasks: autogen.yml
|
||||||
|
|
||||||
|
- name: Run nested test cases
|
||||||
|
ansible.builtin.include_tasks: nested.yml
|
||||||
|
vars:
|
||||||
|
dataset_name: "{{ resource_name | replace('-', '_') }}_nested"
|
||||||
|
|
|
@ -0,0 +1,92 @@
|
||||||
|
---
|
||||||
|
- name: Run testcases
|
||||||
|
block:
|
||||||
|
- name: create dataset
|
||||||
|
google.cloud.gcp_bigquery_dataset:
|
||||||
|
name: "{{ dataset_name }}"
|
||||||
|
dataset_reference:
|
||||||
|
dataset_id: "{{ dataset_name }}"
|
||||||
|
project: "{{ gcp_project }}"
|
||||||
|
auth_kind: "{{ gcp_cred_kind }}"
|
||||||
|
service_account_file: "{{ gcp_cred_file }}"
|
||||||
|
state: present
|
||||||
|
register: _dataset
|
||||||
|
|
||||||
|
- name: Create table with defined fields
|
||||||
|
google.cloud.gcp_bigquery_table:
|
||||||
|
name: "{{ resource_name }}-fields"
|
||||||
|
dataset: "{{ dataset_name }}"
|
||||||
|
state: present
|
||||||
|
project: "{{ gcp_project }}"
|
||||||
|
auth_kind: "{{ gcp_cred_kind }}"
|
||||||
|
service_account_file: "{{ gcp_cred_file }}"
|
||||||
|
table_reference:
|
||||||
|
dataset_id: "{{ dataset_name }}"
|
||||||
|
project_id: "{{ gcp_project }}"
|
||||||
|
table_id: "{{ resource_name }}-fields"
|
||||||
|
schema:
|
||||||
|
fields:
|
||||||
|
- name: id
|
||||||
|
description: An Integer field
|
||||||
|
type: INTEGER
|
||||||
|
- name: name
|
||||||
|
description: A String field
|
||||||
|
type: STRING
|
||||||
|
|
||||||
|
- name: Create table with nested fields
|
||||||
|
google.cloud.gcp_bigquery_table:
|
||||||
|
name: "{{ resource_name }}-nested"
|
||||||
|
dataset: "{{ dataset_name }}"
|
||||||
|
state: present
|
||||||
|
project: "{{ gcp_project }}"
|
||||||
|
auth_kind: "{{ gcp_cred_kind }}"
|
||||||
|
service_account_file: "{{ gcp_cred_file }}"
|
||||||
|
table_reference:
|
||||||
|
dataset_id: "{{ dataset_name }}"
|
||||||
|
project_id: "{{ gcp_project }}"
|
||||||
|
table_id: "{{ resource_name }}-nested"
|
||||||
|
schema:
|
||||||
|
fields:
|
||||||
|
- name: id
|
||||||
|
description: An Integer field
|
||||||
|
type: INTEGER
|
||||||
|
- name: def
|
||||||
|
description: A Record field
|
||||||
|
type: RECORD
|
||||||
|
fields:
|
||||||
|
- name: id
|
||||||
|
description: A nested Integer field
|
||||||
|
type: INTEGER
|
||||||
|
- name: subdef
|
||||||
|
description: A nested Record field
|
||||||
|
type: RECORD
|
||||||
|
fields:
|
||||||
|
- name: id
|
||||||
|
description: A nested-nested Integer field
|
||||||
|
type: INTEGER
|
||||||
|
- name: desc
|
||||||
|
description: A nested-nested String field
|
||||||
|
type: STRING
|
||||||
|
|
||||||
|
always:
|
||||||
|
- name: Remove tables
|
||||||
|
google.cloud.gcp_bigquery_table:
|
||||||
|
name: "{{ resource_name }}-{{ item }}"
|
||||||
|
dataset: "{{ dataset_name }}"
|
||||||
|
project: "{{ gcp_project }}"
|
||||||
|
auth_kind: "{{ gcp_cred_kind }}"
|
||||||
|
service_account_file: "{{ gcp_cred_file }}"
|
||||||
|
state: absent
|
||||||
|
loop:
|
||||||
|
- fields
|
||||||
|
- nested
|
||||||
|
|
||||||
|
- name: Remove dataset
|
||||||
|
google.cloud.gcp_bigquery_dataset:
|
||||||
|
name: "{{ dataset_name }}"
|
||||||
|
dataset_reference:
|
||||||
|
dataset_id: "{{ dataset_name }}"
|
||||||
|
project: "{{ gcp_project }}"
|
||||||
|
auth_kind: "{{ gcp_cred_kind }}"
|
||||||
|
service_account_file: "{{ gcp_cred_file }}"
|
||||||
|
state: absent
|
Loading…
Add table
Add a link
Reference in a new issue