mirror of
https://github.com/ansible-collections/google.cloud.git
synced 2025-07-27 15:11:33 -07:00
WIP: Add interconnect attachments.
This commit is contained in:
parent
0c291d57cd
commit
19b40a3240
3 changed files with 379 additions and 403 deletions
|
@ -18,186 +18,134 @@
|
|||
# ----------------------------------------------------------------------------
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
|
||||
__metaclass__ = type
|
||||
|
||||
################################################################################
|
||||
# Documentation
|
||||
################################################################################
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1', 'status': ["preview"], 'supported_by': 'community'}
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ["preview"],
|
||||
'supported_by': 'community'}
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: gcp_compute_interconnect_attachment_facts
|
||||
description:
|
||||
- Gather facts for GCP InterconnectAttachment
|
||||
- Gather facts for GCP InterconnectAttachment
|
||||
short_description: Gather facts for GCP InterconnectAttachment
|
||||
version_added: 2.8
|
||||
author: Google Inc. (@googlecloudplatform)
|
||||
requirements:
|
||||
- python >= 2.6
|
||||
- requests >= 2.18.4
|
||||
- google-auth >= 1.3.0
|
||||
- python >= 2.6
|
||||
- requests >= 2.18.4
|
||||
- google-auth >= 1.3.0
|
||||
options:
|
||||
filters:
|
||||
description:
|
||||
- A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters.)
|
||||
- Each additional filter in the list will act be added as an AND condition (filter1
|
||||
and filter2) .
|
||||
region:
|
||||
description:
|
||||
- Region where the regional interconnect attachment resides.
|
||||
required: true
|
||||
filters:
|
||||
description:
|
||||
A list of filter value pairs. Available filters are listed here
|
||||
U(https://cloud.google.com/sdk/gcloud/reference/topic/filters).
|
||||
Each additional filter in the list will act be added as an AND condition
|
||||
(filter1 and filter2)
|
||||
region:
|
||||
description:
|
||||
- Region where the regional interconnect attachment resides.
|
||||
required: true
|
||||
extends_documentation_fragment: gcp
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
- name: " a interconnect attachment facts"
|
||||
- name: a interconnect attachment facts
|
||||
gcp_compute_interconnect_attachment_facts:
|
||||
region: us-central1
|
||||
filters:
|
||||
- name = test_object
|
||||
project: test_project
|
||||
auth_kind: serviceaccount
|
||||
service_account_file: "/tmp/auth.pem"
|
||||
state: facts
|
||||
region: us-central1
|
||||
filters:
|
||||
- name = test_object
|
||||
project: test_project
|
||||
auth_kind: serviceaccount
|
||||
service_account_file: "/tmp/auth.pem"
|
||||
'''
|
||||
|
||||
RETURN = '''
|
||||
resources:
|
||||
description: List of resources
|
||||
returned: always
|
||||
type: complex
|
||||
contains:
|
||||
cloudRouterIpAddress:
|
||||
description:
|
||||
- IPv4 address + prefix length to be configured on Cloud Router Interface for
|
||||
this interconnect attachment.
|
||||
returned: success
|
||||
type: str
|
||||
customerRouterIpAddress:
|
||||
description:
|
||||
- IPv4 address + prefix length to be configured on the customer router subinterface
|
||||
for this interconnect attachment.
|
||||
returned: success
|
||||
type: str
|
||||
interconnect:
|
||||
description:
|
||||
- URL of the underlying Interconnect object that this attachment's traffic will
|
||||
traverse through. Required if type is DEDICATED, must not be set if type is
|
||||
PARTNER.
|
||||
returned: success
|
||||
type: str
|
||||
description:
|
||||
description:
|
||||
- An optional description of this resource.
|
||||
returned: success
|
||||
type: str
|
||||
edgeAvailabilityDomain:
|
||||
description:
|
||||
- Desired availability domain for the attachment. Only available for type PARTNER,
|
||||
at creation time. For improved reliability, customers should configure a pair
|
||||
of attachments with one per availability domain. The selected availability
|
||||
domain will be provided to the Partner via the pairing key so that the provisioned
|
||||
circuit will lie in the specified domain. If not specified, the value will
|
||||
default to AVAILABILITY_DOMAIN_ANY.
|
||||
returned: success
|
||||
type: str
|
||||
pairingKey:
|
||||
description:
|
||||
- '[Output only for type PARTNER. Not present for DEDICATED]. The opaque identifier
|
||||
of an PARTNER attachment used to initiate provisioning with a selected partner.
|
||||
Of the form "XXXXX/region/domain" .'
|
||||
returned: success
|
||||
type: str
|
||||
partnerAsn:
|
||||
description:
|
||||
- "[Output only for type PARTNER. Not present for DEDICATED]. Optional BGP ASN
|
||||
for the router that should be supplied by a layer 3 Partner if they configured
|
||||
BGP on behalf of the customer."
|
||||
returned: success
|
||||
type: str
|
||||
privateInterconnectInfo:
|
||||
description:
|
||||
- Information specific to an InterconnectAttachment. This property is populated
|
||||
if the interconnect that this is attached to is of type DEDICATED.
|
||||
returned: success
|
||||
type: complex
|
||||
contains:
|
||||
tag8021q:
|
||||
description:
|
||||
- 802.1q encapsulation tag to be used for traffic between Google and the
|
||||
customer, going to and from this network and region.
|
||||
returned: success
|
||||
type: int
|
||||
type:
|
||||
description:
|
||||
- The type of InterconnectAttachment you wish to create. Defaults to DEDICATED.
|
||||
returned: success
|
||||
type: str
|
||||
state:
|
||||
description:
|
||||
- "[Output Only] The current state of this attachment's functionality."
|
||||
returned: success
|
||||
type: str
|
||||
googleReferenceId:
|
||||
description:
|
||||
- Google reference ID, to be used when raising support tickets with Google or
|
||||
otherwise to debug backend connectivity issues.
|
||||
returned: success
|
||||
type: str
|
||||
router:
|
||||
description:
|
||||
- URL of the cloud router to be used for dynamic routing. This router must be
|
||||
in the same region as this InterconnectAttachment. The InterconnectAttachment
|
||||
will automatically connect the Interconnect to the network & region within
|
||||
which the Cloud Router is configured.
|
||||
returned: success
|
||||
type: dict
|
||||
creationTimestamp:
|
||||
description:
|
||||
- Creation timestamp in RFC3339 text format.
|
||||
returned: success
|
||||
type: str
|
||||
id:
|
||||
description:
|
||||
- The unique identifier for the resource. This identifier is defined by the
|
||||
server.
|
||||
returned: success
|
||||
type: str
|
||||
name:
|
||||
description:
|
||||
- Name of the resource. Provided by the client when the resource is created.
|
||||
The name must be 1-63 characters long, and comply with RFC1035. Specifically,
|
||||
the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
|
||||
which means the first character must be a lowercase letter, and all following
|
||||
characters must be a dash, lowercase letter, or digit, except the last character,
|
||||
which cannot be a dash.
|
||||
returned: success
|
||||
type: str
|
||||
candidateSubnets:
|
||||
description:
|
||||
- Up to 16 candidate prefixes that can be used to restrict the allocation of
|
||||
cloudRouterIpAddress and customerRouterIpAddress for this attachment.
|
||||
- All prefixes must be within link-local address space (169.254.0.0/16) and
|
||||
must be /29 or shorter (/28, /27, etc). Google will attempt to select an unused
|
||||
/29 from the supplied candidate prefix(es). The request will fail if all possible
|
||||
/29s are in use on Google's edge. If not supplied, Google will randomly select
|
||||
an unused /29 from all of link-local space.
|
||||
returned: success
|
||||
type: list
|
||||
vlanTag8021q:
|
||||
description:
|
||||
- The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4094. When using
|
||||
PARTNER type this will be managed upstream.
|
||||
returned: success
|
||||
type: int
|
||||
region:
|
||||
description:
|
||||
- Region where the regional interconnect attachment resides.
|
||||
returned: success
|
||||
type: str
|
||||
items:
|
||||
description: List of items
|
||||
returned: always
|
||||
type: complex
|
||||
contains:
|
||||
cloudRouterIpAddress:
|
||||
description:
|
||||
- IPv4 address + prefix length to be configured on Cloud Router Interface for this
|
||||
interconnect attachment.
|
||||
returned: success
|
||||
type: str
|
||||
customerRouterIpAddress:
|
||||
description:
|
||||
- IPv4 address + prefix length to be configured on the customer router subinterface
|
||||
for this interconnect attachment.
|
||||
returned: success
|
||||
type: str
|
||||
interconnect:
|
||||
description:
|
||||
- URL of the underlying Interconnect object that this attachment's traffic will traverse
|
||||
through.
|
||||
returned: success
|
||||
type: str
|
||||
description:
|
||||
description:
|
||||
- An optional description of this resource. .
|
||||
returned: success
|
||||
type: str
|
||||
privateInterconnectInfo:
|
||||
description:
|
||||
- Information specific to an InterconnectAttachment. This property is populated if
|
||||
the interconnect that this is attached to is of type DEDICATED.
|
||||
returned: success
|
||||
type: complex
|
||||
contains:
|
||||
tag8021q:
|
||||
description:
|
||||
- 802.1q encapsulation tag to be used for traffic between Google and the customer,
|
||||
going to and from this network and region.
|
||||
returned: success
|
||||
type: int
|
||||
googleReferenceId:
|
||||
description:
|
||||
- Google reference ID, to be used when raising support tickets with Google or otherwise
|
||||
to debug backend connectivity issues.
|
||||
returned: success
|
||||
type: str
|
||||
router:
|
||||
description:
|
||||
- URL of the cloud router to be used for dynamic routing. This router must be in the
|
||||
same region as this InterconnectAttachment. The InterconnectAttachment will automatically
|
||||
connect the Interconnect to the network & region within which the Cloud Router is
|
||||
configured.
|
||||
returned: success
|
||||
type: dict
|
||||
creationTimestamp:
|
||||
description:
|
||||
- Creation timestamp in RFC3339 text format.
|
||||
returned: success
|
||||
type: str
|
||||
id:
|
||||
description:
|
||||
- The unique identifier for the resource. This identifier is defined by the server.
|
||||
returned: success
|
||||
type: str
|
||||
name:
|
||||
description:
|
||||
- Name of the resource. Provided by the client when the resource is created. The name
|
||||
must be 1-63 characters long, and comply with RFC1035. Specifically, the name must
|
||||
be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
|
||||
which means the first character must be a lowercase letter, and all following characters
|
||||
must be a dash, lowercase letter, or digit, except the last character, which cannot
|
||||
be a dash.
|
||||
returned: success
|
||||
type: str
|
||||
region:
|
||||
description:
|
||||
- Region where the regional interconnect attachment resides.
|
||||
returned: success
|
||||
type: str
|
||||
'''
|
||||
|
||||
################################################################################
|
||||
|
@ -212,9 +160,14 @@ import json
|
|||
|
||||
|
||||
def main():
|
||||
module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'), region=dict(required=True, type='str')))
|
||||
module = GcpModule(
|
||||
argument_spec=dict(
|
||||
filters=dict(type='list', elements='str'),
|
||||
region=dict(required=True, type='str')
|
||||
)
|
||||
)
|
||||
|
||||
if not module.params['scopes']:
|
||||
if 'scopes' not in module.params:
|
||||
module.params['scopes'] = ['https://www.googleapis.com/auth/compute']
|
||||
|
||||
items = fetch_list(module, collection(module), query_options(module.params['filters']))
|
||||
|
@ -222,7 +175,9 @@ def main():
|
|||
items = items.get('items')
|
||||
else:
|
||||
items = []
|
||||
return_value = {'resources': items}
|
||||
return_value = {
|
||||
'items': items
|
||||
}
|
||||
module.exit_json(**return_value)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue