def main():
    module = GcpModule(argument_spec=dict(
        instance=dict(required=True, type='dict')))

    if not module.params['scopes']:
        module.params['scopes'] = [
            'https://www.googleapis.com/auth/spanner.admin'
        ]

    return_value = {'resources': fetch_list(module, collection(module))}
    module.exit_json(**return_value)
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            name=dict(required=True, type='str'),
            description=dict(type='str'),
            target_vpn_gateway=dict(type='dict'),
            vpn_gateway=dict(type='dict'),
            vpn_gateway_interface=dict(type='int'),
            peer_external_gateway=dict(type='dict'),
            peer_external_gateway_interface=dict(type='int'),
            peer_gcp_gateway=dict(type='dict'),
            router=dict(type='dict'),
            peer_ip=dict(type='str'),
            shared_secret=dict(required=True, type='str'),
            ike_version=dict(default=2, type='int'),
            local_traffic_selector=dict(type='list', elements='str'),
            remote_traffic_selector=dict(type='list', elements='str'),
            region=dict(required=True, type='str'),
        ),
        mutually_exclusive=[['peer_external_gateway', 'peer_gcp_gateway']],
    )

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#vpnTunnel'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), kind)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module), kind)
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
def main():
    module = GcpModule(argument_spec=dict(
        managed_zone=dict(required=True, type='dict')))

    if not module.params['scopes']:
        module.params['scopes'] = [
            'https://www.googleapis.com/auth/ndev.clouddns.readwrite'
        ]

    return_value = {'resources': fetch_list(module, collection(module))}
    module.exit_json(**return_value)
def main():
    module = GcpModule(argument_spec=dict(
        region=dict(required=True, type='str')))

    if not module.params['scopes']:
        module.params['scopes'] = [
            'https://www.googleapis.com/auth/cloud-platform'
        ]

    return_value = {'resources': fetch_list(module, collection(module))}
    module.exit_json(**return_value)
示例#5
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present',
                       choices=['present', 'absent'],
                       type='str'),
            name=dict(required=True, type='str'),
            description=dict(type='str'),
            accelerator_type=dict(required=True, type='str'),
            tensorflow_version=dict(required=True, type='str'),
            network=dict(type='str'),
            cidr_block=dict(type='str'),
            use_service_networking=dict(type='bool'),
            scheduling_config=dict(
                type='dict',
                options=dict(preemptible=dict(required=True, type='bool'))),
            labels=dict(type='dict'),
            zone=dict(type='str'),
        ),
        mutually_exclusive=[['cidr_block', 'use_service_networking']],
    )

    if not module.params['scopes']:
        module.params['scopes'] = [
            'https://www.googleapis.com/auth/cloud-platform'
        ]

    state = module.params['state']

    fetch = fetch_resource(module, self_link(module))
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), fetch)
                fetch = fetch_resource(module, self_link(module))
                changed = True
        else:
            delete(module, self_link(module))
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, create_link(module))
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
示例#6
0
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        name=dict(required=True, type='str'),
        description=dict(type='str'),
        network=dict(required=True, type='dict'),
        bgp=dict(
            type='dict',
            options=dict(
                asn=dict(required=True, type='int'),
                advertise_mode=dict(default='DEFAULT', type='str'),
                advertised_groups=dict(type='list', elements='str'),
                advertised_ip_ranges=dict(
                    type='list',
                    elements='dict',
                    options=dict(range=dict(required=True, type='str'),
                                 description=dict(type='str'))),
            ),
        ),
        region=dict(required=True, type='str'),
    ))

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#router'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), kind)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module), kind)
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(
                default="present", choices=["present", "absent"], type="str"
            ),
            dest_range=dict(required=True, type="str"),
            description=dict(type="str"),
            name=dict(required=True, type="str"),
            network=dict(required=True, type="dict"),
            priority=dict(type="int"),
            tags=dict(type="list", elements="str"),
            next_hop_gateway=dict(type="str"),
            next_hop_instance=dict(type="dict"),
            next_hop_ip=dict(type="str"),
            next_hop_vpn_tunnel=dict(type="dict"),
            next_hop_ilb=dict(type="dict"),
        )
    )

    if not module.params["scopes"]:
        module.params["scopes"] = ["https://www.googleapis.com/auth/compute"]

    state = module.params["state"]
    kind = "compute#route"

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == "present":
            if is_different(module, fetch):
                update(module, self_link(module), kind)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == "present":
            fetch = create(module, collection(module), kind)
            changed = True
        else:
            fetch = {}

    fetch.update({"changed": changed})

    if "warnings" in fetch:
        fetch["warnings"] = fetch["warnings"][0]["message"]
    module.exit_json(**fetch)
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            name=dict(required=True, type='str'),
            topic=dict(required=True, type='dict'),
            labels=dict(type='dict'),
            push_config=dict(
                type='dict',
                options=dict(
                    oidc_token=dict(type='dict', options=dict(service_account_email=dict(required=True, type='str'), audience=dict(type='str'))),
                    push_endpoint=dict(required=True, type='str'),
                    attributes=dict(type='dict'),
                ),
            ),
            ack_deadline_seconds=dict(type='int'),
            message_retention_duration=dict(default='604800s', type='str'),
            retain_acked_messages=dict(type='bool'),
            expiration_policy=dict(type='dict', options=dict(ttl=dict(required=True, type='str'))),
            dead_letter_policy=dict(type='dict', options=dict(dead_letter_topic=dict(type='str'), max_delivery_attempts=dict(type='int'))),
        )
    )

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/pubsub']

    state = module.params['state']

    fetch = fetch_resource(module, self_link(module))
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), fetch)
                fetch = fetch_resource(module, self_link(module))
                changed = True
        else:
            delete(module, self_link(module))
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, self_link(module))
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        base_instance_name=dict(required=True, type='str'),
        description=dict(type='str'),
        instance_template=dict(required=True, type='dict'),
        name=dict(required=True, type='str'),
        named_ports=dict(type='list',
                         elements='dict',
                         options=dict(name=dict(type='str'),
                                      port=dict(type='int'))),
        target_pools=dict(type='list', elements='dict'),
        target_size=dict(type='int'),
        auto_healing_policies=dict(type='list',
                                   elements='dict',
                                   options=dict(health_check=dict(type='str'),
                                                initial_delay_sec=dict(
                                                    type='int'))),
        region=dict(required=True, type='str'),
    ))

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#instanceGroupManager'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), kind)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module), kind)
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        alternative_location_id=dict(type='str'),
        auth_enabled=dict(type='bool'),
        authorized_network=dict(type='str'),
        connect_mode=dict(default='DIRECT_PEERING', type='str'),
        display_name=dict(type='str'),
        labels=dict(type='dict'),
        redis_configs=dict(type='dict'),
        location_id=dict(type='str'),
        name=dict(required=True, type='str'),
        memory_size_gb=dict(required=True, type='int'),
        redis_version=dict(type='str'),
        reserved_ip_range=dict(type='str'),
        tier=dict(default='BASIC', type='str'),
        transit_encryption_mode=dict(default='DISABLED', type='str'),
        region=dict(required=True, type='str'),
    ))

    if not module.params['scopes']:
        module.params['scopes'] = [
            'https://www.googleapis.com/auth/cloud-platform'
        ]

    state = module.params['state']

    fetch = fetch_resource(module, self_link(module))
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), fetch)
                fetch = fetch_resource(module, self_link(module))
                changed = True
        else:
            delete(module, self_link(module))
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, create_link(module))
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        description=dict(type='str'),
        ip_address=dict(type='str'),
        ip_protocol=dict(type='str'),
        backend_service=dict(type='dict'),
        ip_version=dict(type='str'),
        load_balancing_scheme=dict(type='str'),
        name=dict(required=True, type='str'),
        network=dict(type='dict'),
        port_range=dict(type='str'),
        ports=dict(type='list', elements='str'),
        subnetwork=dict(type='dict'),
        target=dict(type='dict'),
        all_ports=dict(type='bool'),
        network_tier=dict(type='str'),
        service_label=dict(type='str'),
        region=dict(required=True, type='str'),
    ))

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#forwardingRule'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), kind, fetch)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module), kind)
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            description=dict(type='str'),
            disk_size_gb=dict(type='int'),
            family=dict(type='str'),
            guest_os_features=dict(type='list', elements='dict', options=dict(type=dict(required=True, type='str'))),
            image_encryption_key=dict(type='dict', options=dict(raw_key=dict(type='str'))),
            labels=dict(type='dict'),
            licenses=dict(type='list', elements='str'),
            name=dict(required=True, type='str'),
            raw_disk=dict(type='dict', options=dict(container_type=dict(type='str'), sha1_checksum=dict(type='str'), source=dict(required=True, type='str'))),
            source_disk=dict(type='dict'),
            source_disk_encryption_key=dict(type='dict', options=dict(raw_key=dict(type='str'))),
            source_disk_id=dict(type='str'),
            source_image=dict(type='dict'),
            source_snapshot=dict(type='dict'),
            source_type=dict(type='str'),
        )
    )

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#image'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), kind, fetch)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module), kind)
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
示例#13
0
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        description=dict(type='str'),
        name=dict(type='str'),
        named_ports=dict(type='list',
                         elements='dict',
                         options=dict(name=dict(type='str'),
                                      port=dict(type='int'))),
        network=dict(type='dict'),
        region=dict(type='str'),
        subnetwork=dict(type='dict'),
        zone=dict(required=True, type='str'),
        instances=dict(type='list', elements='dict'),
    ))

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#instanceGroup'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), kind)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module), kind)
            changed = True
        else:
            fetch = {}

    if fetch:
        instance = InstanceLogic(module)
        instance.run()
        fetch.update({'instances': instance.list_instances()})
    fetch.update({'changed': changed})

    module.exit_json(**fetch)
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            admin_enabled=dict(default=True, type='bool'),
            interconnect=dict(type='str'),
            description=dict(type='str'),
            mtu=dict(type='str'),
            bandwidth=dict(type='str'),
            edge_availability_domain=dict(type='str'),
            type=dict(type='str'),
            router=dict(required=True, type='dict'),
            name=dict(required=True, type='str'),
            candidate_subnets=dict(type='list', elements='str'),
            vlan_tag8021q=dict(type='int'),
            ipsec_internal_addresses=dict(type='list', elements='dict'),
            encryption=dict(default='NONE', type='str'),
            region=dict(required=True, type='str'),
        )
    )

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#interconnectAttachment'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), kind)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module), kind)
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
def main():
    module = GcpModule(argument_spec=dict(
        filters=dict(type='list', elements='str')))

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    return_value = {
        'resources':
        fetch_list(module, collection(module),
                   query_options(module.params['filters']))
    }
    module.exit_json(**return_value)
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        name=dict(required=True, type='str'),
        health_checks=dict(required=True, type='list', elements='str'),
        backends=dict(type='list',
                      elements='dict',
                      options=dict(description=dict(type='str'),
                                   group=dict(type='str'))),
        description=dict(type='str'),
        protocol=dict(type='str'),
        session_affinity=dict(type='str'),
        region=dict(type='str'),
        timeout_sec=dict(type='int'),
        connection_draining=dict(
            type='dict', options=dict(draining_timeout_sec=dict(type='int'))),
        load_balancing_scheme=dict(default='INTERNAL', type='str'),
    ))

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#backendService'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), kind)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module), kind)
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
示例#17
0
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        description=dict(type='str'),
        name=dict(type='str'),
        node_template=dict(required=True, type='dict'),
        size=dict(required=True, type='int'),
        maintenance_policy=dict(default='DEFAULT', type='str'),
        maintenance_window=dict(type='dict',
                                options=dict(start_time=dict(required=True,
                                                             type='str'))),
        autoscaling_policy=dict(
            type='dict',
            options=dict(mode=dict(required=True, type='str'),
                         min_nodes=dict(type='int'),
                         max_nodes=dict(required=True, type='int'))),
        zone=dict(required=True, type='str'),
    ))

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#NodeGroup'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), kind, fetch)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, create_link(module), kind)
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
示例#18
0
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        name=dict(required=True, type='str'),
        description=dict(type='str'),
        labels=dict(type='dict'),
        source_disk=dict(required=True, type='dict'),
        zone=dict(type='str'),
        snapshot_encryption_key=dict(type='dict',
                                     options=dict(raw_key=dict(type='str'),
                                                  kms_key_name=dict(
                                                      type='str'))),
        source_disk_encryption_key=dict(type='dict',
                                        options=dict(raw_key=dict(type='str'),
                                                     kms_key_name=dict(
                                                         type='str'))),
    ))

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#snapshot'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), kind, fetch)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, create_link(module), kind)
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
示例#19
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            description=dict(type='str'),
            labels=dict(type='dict'),
            licenses=dict(type='list', elements='str'),
            name=dict(required=True, type='str'),
            size_gb=dict(type='int'),
            physical_block_size_bytes=dict(type='int'),
            replica_zones=dict(required=True, type='list', elements='str'),
            type=dict(type='str'),
            region=dict(required=True, type='str'),
            disk_encryption_key=dict(type='dict', no_log=True, options=dict(raw_key=dict(type='str'))),
            source_snapshot=dict(type='dict'),
            source_snapshot_encryption_key=dict(type='dict', no_log=True, options=dict(raw_key=dict(type='str'))),
        )
    )

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#disk'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), kind, fetch)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module), kind)
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
示例#20
0
def main():
    module = GcpModule(argument_spec=dict(
        dns_name=dict(type='list', elements='str')))

    if not module.params['scopes']:
        module.params['scopes'] = [
            'https://www.googleapis.com/auth/ndev.clouddns.readwrite'
        ]

    return_value = {
        'resources':
        fetch_list(module, collection(module), module.params['dns_name'])
    }
    module.exit_json(**return_value)
示例#21
0
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        description=dict(type='str'),
        ip_cidr_range=dict(required=True, type='str'),
        name=dict(required=True, type='str'),
        network=dict(required=True, type='dict'),
        secondary_ip_ranges=dict(
            type='list',
            elements='dict',
            options=dict(range_name=dict(required=True, type='str'),
                         ip_cidr_range=dict(required=True, type='str'))),
        private_ip_google_access=dict(type='bool'),
        private_ipv6_google_access=dict(type='str'),
        region=dict(required=True, type='str'),
    ))

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#subnetwork'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), kind, fetch)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module), kind)
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
示例#22
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present',
                       choices=['present', 'absent'],
                       type='str'),
            description=dict(type='str'),
            name=dict(type='str'),
            node_affinity_labels=dict(type='dict'),
            node_type=dict(type='str'),
            node_type_flexibility=dict(type='dict',
                                       options=dict(cpus=dict(type='str'),
                                                    memory=dict(type='str'))),
            region=dict(required=True, type='str'),
        ),
        mutually_exclusive=[['node_type', 'node_type_flexibility']],
    )

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#nodeTemplate'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), kind)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module), kind)
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
def main():
    module = GcpModule(argument_spec=dict(
        filters=dict(type="list", elements="str"),
        zone=dict(required=True, type="str"),
    ))

    if not module.params["scopes"]:
        module.params["scopes"] = ["https://www.googleapis.com/auth/compute"]

    return_value = {
        "resources":
        fetch_list(module, collection(module),
                   query_options(module.params["filters"]))
    }
    module.exit_json(**return_value)
示例#24
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            address=dict(type='str'),
            address_type=dict(default='EXTERNAL', type='str'),
            description=dict(type='str'),
            name=dict(required=True, type='str'),
            purpose=dict(type='str'),
            network_tier=dict(type='str'),
            subnetwork=dict(type='dict'),
            network=dict(type='dict'),
            prefix_length=dict(type='int'),
            region=dict(required=True, type='str'),
        )
    )

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#address'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), kind)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module), kind)
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present',
                       choices=['present', 'absent'],
                       type='str'),
            description=dict(type='str'),
            ipv4_range=dict(type='str'),
            name=dict(required=True, type='str'),
            auto_create_subnetworks=dict(type='bool'),
            routing_config=dict(
                type='dict',
                options=dict(routing_mode=dict(required=True, type='str'))),
        ),
        mutually_exclusive=[['auto_create_subnetworks', 'ipv4_range']],
    )

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#network'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), kind, fetch)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module), kind)
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
示例#26
0
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        name=dict(type='str'),
        display_name=dict(type='str'),
        type=dict(type='str'),
        labels=dict(type='dict'),
        clusters=dict(
            type='list',
            elements='dict',
            options=dict(name=dict(type='str'),
                         serve_nodes=dict(type='int'),
                         default_storage_type=dict(type='str'),
                         location=dict(type='str')),
        ),
    ))

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/bigtable']

    state = module.params['state']

    fetch = fetch_resource(module, self_link(module))
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module))
                fetch = fetch_resource(module, self_link(module))
                changed = True
        else:
            delete(module, self_link(module))
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module))
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
示例#27
0
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        dest_range=dict(required=True, type='str'),
        description=dict(type='str'),
        name=dict(required=True, type='str'),
        network=dict(required=True, type='dict'),
        priority=dict(type='int'),
        tags=dict(type='list', elements='str'),
        next_hop_gateway=dict(type='str'),
        next_hop_instance=dict(type='dict'),
        next_hop_ip=dict(type='str'),
        next_hop_vpn_tunnel=dict(type='dict'),
        next_hop_ilb=dict(type='dict'),
    ))

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#route'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), kind)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module), kind)
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
示例#28
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            check_interval_sec=dict(default=5, type='int', aliases=['check_interval_seconds']),
            description=dict(type='str'),
            healthy_threshold=dict(type='int'),
            host=dict(type='str'),
            name=dict(required=True, type='str'),
            port=dict(type='int'),
            request_path=dict(type='str'),
            timeout_sec=dict(type='int', aliases=['timeout_seconds']),
            unhealthy_threshold=dict(type='int'),
        )
    )

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#httpHealthCheck'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), kind)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module), kind)
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
示例#29
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            backup_pool=dict(type='dict'),
            description=dict(type='str'),
            failover_ratio=dict(type='str'),
            health_check=dict(type='dict'),
            instances=dict(type='list', elements='dict'),
            name=dict(required=True, type='str'),
            session_affinity=dict(type='str'),
            region=dict(required=True, type='str'),
        )
    )

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#targetPool'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), kind)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module), kind)
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
示例#30
0
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        name=dict(required=True, type='str'),
        description=dict(type='str'),
        default_version=dict(
            type='dict', options=dict(name=dict(required=True, type='str'))),
        regions=dict(type='list', elements='str'),
        online_prediction_logging=dict(type='bool'),
        online_prediction_console_logging=dict(type='bool'),
        labels=dict(type='dict'),
    ))

    if not module.params['scopes']:
        module.params['scopes'] = [
            'https://www.googleapis.com/auth/cloud-platform'
        ]

    state = module.params['state']

    fetch = fetch_resource(module, self_link(module))
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module))
                fetch = fetch_resource(module, self_link(module))
                changed = True
        else:
            delete(module, self_link(module))
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module))
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)