mirror of
https://github.com/ansible-collections/google.cloud.git
synced 2025-08-01 19:54: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:
|
||||
description:
|
||||
- The ID of the dataset containing this table.
|
||||
required: false
|
||||
required: true
|
||||
type: str
|
||||
project_id:
|
||||
description:
|
||||
- The ID of the project containing this table.
|
||||
required: false
|
||||
required: true
|
||||
type: str
|
||||
table_id:
|
||||
description:
|
||||
- The ID of the the table.
|
||||
required: false
|
||||
required: true
|
||||
type: str
|
||||
clustering:
|
||||
description:
|
||||
|
@ -181,7 +181,7 @@ options:
|
|||
fields:
|
||||
description:
|
||||
- Describes the nested schema fields if the type property is set to RECORD.
|
||||
elements: str
|
||||
elements: raw
|
||||
required: false
|
||||
type: list
|
||||
mode:
|
||||
|
@ -296,7 +296,7 @@ options:
|
|||
description:
|
||||
- Describes the nested schema fields if the type property is set to
|
||||
RECORD .
|
||||
elements: str
|
||||
elements: raw
|
||||
required: false
|
||||
type: list
|
||||
mode:
|
||||
|
@ -1016,7 +1016,11 @@ def main():
|
|||
module = GcpModule(
|
||||
argument_spec=dict(
|
||||
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'),
|
||||
description=dict(type='str'),
|
||||
friendly_name=dict(type='str'),
|
||||
|
@ -1041,7 +1045,7 @@ def main():
|
|||
elements='dict',
|
||||
options=dict(
|
||||
description=dict(type='str'),
|
||||
fields=dict(type='list', elements='str'),
|
||||
fields=dict(type='list', elements='raw'),
|
||||
mode=dict(type='str'),
|
||||
name=dict(type='str'),
|
||||
type=dict(type='str'),
|
||||
|
@ -1068,7 +1072,7 @@ def main():
|
|||
elements='dict',
|
||||
options=dict(
|
||||
description=dict(type='str'),
|
||||
fields=dict(type='list', elements='str'),
|
||||
fields=dict(type='list', elements='raw'),
|
||||
mode=dict(type='str'),
|
||||
name=dict(type='str'),
|
||||
type=dict(type='str'),
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
---
|
||||
- name: Generated tests
|
||||
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