mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-28 21:31:26 -07:00
parent
c7c3ca1c41
commit
5ad5677b71
80 changed files with 14198 additions and 13862 deletions
|
@ -32,78 +32,83 @@ DOCUMENTATION = '''
|
|||
---
|
||||
module: gcp_compute_network
|
||||
description:
|
||||
- Represents a Network resource.
|
||||
- Your Cloud Platform Console project can contain multiple networks, and each network
|
||||
can have multiple instances attached to it. A network allows you to define a gateway
|
||||
IP and the network range for the instances attached to that network. Every project
|
||||
is provided with a default network with preset configurations and firewall rules.
|
||||
You can choose to customize the default network by adding or removing rules, or
|
||||
you can create new networks in that project. Generally, most users only need one
|
||||
network, although you can have up to five networks per project by default.
|
||||
- A network belongs to only one project, and each instance can only belong to one
|
||||
network. All Compute Engine networks use the IPv4 protocol. Compute Engine currently
|
||||
does not support IPv6. However, Google is a major advocate of IPv6 and it is an
|
||||
important future direction.
|
||||
- Represents a Network resource.
|
||||
- Your Cloud Platform Console project can contain multiple networks, and each network
|
||||
can have multiple instances attached to it. A network allows you to define a gateway
|
||||
IP and the network range for the instances attached to that network. Every project
|
||||
is provided with a default network with preset configurations and firewall rules.
|
||||
You can choose to customize the default network by adding or removing rules, or
|
||||
you can create new networks in that project. Generally, most users only need one
|
||||
network, although you can have up to five networks per project by default.
|
||||
- A network belongs to only one project, and each instance can only belong to one
|
||||
network. All Compute Engine networks use the IPv4 protocol. Compute Engine currently
|
||||
does not support IPv6. However, Google is a major advocate of IPv6 and it is an
|
||||
important future direction.
|
||||
short_description: Creates a GCP Network
|
||||
version_added: 2.6
|
||||
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:
|
||||
state:
|
||||
description:
|
||||
- Whether the given object should exist in GCP
|
||||
choices: ['present', 'absent']
|
||||
default: 'present'
|
||||
state:
|
||||
description:
|
||||
- Whether the given object should exist in GCP
|
||||
choices:
|
||||
- present
|
||||
- absent
|
||||
default: present
|
||||
description:
|
||||
description:
|
||||
- An optional description of this resource. Provide this property when you create
|
||||
the resource.
|
||||
required: false
|
||||
ipv4_range:
|
||||
description:
|
||||
- 'The range of internal addresses that are legal on this network. This range
|
||||
is a CIDR specification, for example: 192.168.0.0/16. Provided by the client
|
||||
when the network is created.'
|
||||
required: false
|
||||
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.
|
||||
required: true
|
||||
auto_create_subnetworks:
|
||||
description:
|
||||
- When set to true, the network is created in "auto subnet mode". When set to
|
||||
false, the network is in "custom subnet mode".
|
||||
- In "auto subnet mode", a newly created network is assigned the default CIDR
|
||||
of 10.128.0.0/9 and it automatically creates one subnetwork per region.
|
||||
required: false
|
||||
type: bool
|
||||
routing_config:
|
||||
description:
|
||||
- The network-level routing configuration for this network. Used by Cloud Router
|
||||
to determine what type of network-wide routing behavior to enforce.
|
||||
required: false
|
||||
version_added: 2.8
|
||||
suboptions:
|
||||
routing_mode:
|
||||
description:
|
||||
- An optional description of this resource. Provide this property when you create
|
||||
the resource.
|
||||
required: false
|
||||
ipv4_range:
|
||||
description:
|
||||
- 'The range of internal addresses that are legal on this network. This range is a
|
||||
CIDR specification, for example: 192.168.0.0/16. Provided by the client when the
|
||||
network is created.'
|
||||
required: false
|
||||
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.
|
||||
- The network-wide routing mode to use. If set to REGIONAL, this network's
|
||||
cloud routers will only advertise routes with subnetworks of this network
|
||||
in the same region as the router. If set to GLOBAL, this network's cloud
|
||||
routers will advertise routes with all subnetworks of this network, across
|
||||
regions.
|
||||
required: true
|
||||
auto_create_subnetworks:
|
||||
description:
|
||||
- When set to true, the network is created in "auto subnet mode". When set to false,
|
||||
the network is in "custom subnet mode".
|
||||
- In "auto subnet mode", a newly created network is assigned the default CIDR of 10.128.0.0/9
|
||||
and it automatically creates one subnetwork per region.
|
||||
required: false
|
||||
type: bool
|
||||
routing_config:
|
||||
description:
|
||||
- The network-level routing configuration for this network. Used by Cloud Router to
|
||||
determine what type of network-wide routing behavior to enforce.
|
||||
required: false
|
||||
version_added: 2.8
|
||||
suboptions:
|
||||
routing_mode:
|
||||
description:
|
||||
- The network-wide routing mode to use. If set to REGIONAL, this network's cloud routers
|
||||
will only advertise routes with subnetworks of this network in the same region as
|
||||
the router. If set to GLOBAL, this network's cloud routers will advertise routes
|
||||
with all subnetworks of this network, across regions.
|
||||
required: true
|
||||
choices: ['REGIONAL', 'GLOBAL']
|
||||
choices:
|
||||
- REGIONAL
|
||||
- GLOBAL
|
||||
extends_documentation_fragment: gcp
|
||||
notes:
|
||||
- "API Reference: U(https://cloud.google.com/compute/docs/reference/rest/v1/networks)"
|
||||
- "Official Documentation: U(https://cloud.google.com/vpc/docs/vpc)"
|
||||
- 'API Reference: U(https://cloud.google.com/compute/docs/reference/rest/v1/networks)'
|
||||
- 'Official Documentation: U(https://cloud.google.com/vpc/docs/vpc)'
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
|
@ -118,74 +123,74 @@ EXAMPLES = '''
|
|||
'''
|
||||
|
||||
RETURN = '''
|
||||
description:
|
||||
description:
|
||||
- An optional description of this resource. Provide this property when you create
|
||||
the resource.
|
||||
returned: success
|
||||
type: str
|
||||
gateway_ipv4:
|
||||
description:
|
||||
- A gateway address for default routing to other networks. This value is read only
|
||||
and is selected by the Google Compute Engine, typically as the first usable address
|
||||
in the IPv4Range.
|
||||
returned: success
|
||||
type: str
|
||||
id:
|
||||
description:
|
||||
- The unique identifier for the resource.
|
||||
returned: success
|
||||
type: int
|
||||
ipv4_range:
|
||||
description:
|
||||
- 'The range of internal addresses that are legal on this network. This range is a
|
||||
CIDR specification, for example: 192.168.0.0/16. Provided by the client when the
|
||||
network is created.'
|
||||
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
|
||||
subnetworks:
|
||||
description:
|
||||
- Server-defined fully-qualified URLs for all subnetworks in this network.
|
||||
returned: success
|
||||
type: list
|
||||
autoCreateSubnetworks:
|
||||
description:
|
||||
- When set to true, the network is created in "auto subnet mode". When set to false,
|
||||
the network is in "custom subnet mode".
|
||||
- In "auto subnet mode", a newly created network is assigned the default CIDR of 10.128.0.0/9
|
||||
and it automatically creates one subnetwork per region.
|
||||
returned: success
|
||||
type: bool
|
||||
creationTimestamp:
|
||||
description:
|
||||
- Creation timestamp in RFC3339 text format.
|
||||
returned: success
|
||||
type: str
|
||||
routingConfig:
|
||||
description:
|
||||
- The network-level routing configuration for this network. Used by Cloud Router to
|
||||
determine what type of network-wide routing behavior to enforce.
|
||||
returned: success
|
||||
type: complex
|
||||
contains:
|
||||
routingMode:
|
||||
description:
|
||||
- The network-wide routing mode to use. If set to REGIONAL, this network's cloud routers
|
||||
will only advertise routes with subnetworks of this network in the same region as
|
||||
the router. If set to GLOBAL, this network's cloud routers will advertise routes
|
||||
with all subnetworks of this network, across regions.
|
||||
returned: success
|
||||
type: str
|
||||
description:
|
||||
description:
|
||||
- An optional description of this resource. Provide this property when you create
|
||||
the resource.
|
||||
returned: success
|
||||
type: str
|
||||
gateway_ipv4:
|
||||
description:
|
||||
- A gateway address for default routing to other networks. This value is read only
|
||||
and is selected by the Google Compute Engine, typically as the first usable address
|
||||
in the IPv4Range.
|
||||
returned: success
|
||||
type: str
|
||||
id:
|
||||
description:
|
||||
- The unique identifier for the resource.
|
||||
returned: success
|
||||
type: int
|
||||
ipv4_range:
|
||||
description:
|
||||
- 'The range of internal addresses that are legal on this network. This range is
|
||||
a CIDR specification, for example: 192.168.0.0/16. Provided by the client when
|
||||
the network is created.'
|
||||
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
|
||||
subnetworks:
|
||||
description:
|
||||
- Server-defined fully-qualified URLs for all subnetworks in this network.
|
||||
returned: success
|
||||
type: list
|
||||
autoCreateSubnetworks:
|
||||
description:
|
||||
- When set to true, the network is created in "auto subnet mode". When set to false,
|
||||
the network is in "custom subnet mode".
|
||||
- In "auto subnet mode", a newly created network is assigned the default CIDR of
|
||||
10.128.0.0/9 and it automatically creates one subnetwork per region.
|
||||
returned: success
|
||||
type: bool
|
||||
creationTimestamp:
|
||||
description:
|
||||
- Creation timestamp in RFC3339 text format.
|
||||
returned: success
|
||||
type: str
|
||||
routingConfig:
|
||||
description:
|
||||
- The network-level routing configuration for this network. Used by Cloud Router
|
||||
to determine what type of network-wide routing behavior to enforce.
|
||||
returned: success
|
||||
type: complex
|
||||
contains:
|
||||
routingMode:
|
||||
description:
|
||||
- The network-wide routing mode to use. If set to REGIONAL, this network's cloud
|
||||
routers will only advertise routes with subnetworks of this network in the
|
||||
same region as the router. If set to GLOBAL, this network's cloud routers
|
||||
will advertise routes with all subnetworks of this network, across regions.
|
||||
returned: success
|
||||
type: str
|
||||
'''
|
||||
|
||||
################################################################################
|
||||
|
@ -273,7 +278,7 @@ def routing_config_update(module, request, response):
|
|||
"projects/{project}/regions/{region}/subnetworks/{name}"
|
||||
]).format(**module.params),
|
||||
{
|
||||
u'routingConfig': NetworkRoutingConfigArray(module.params.get('routing_config', []), module).to_request()
|
||||
u'routingConfig': NetworkRoutingconfigArray(module.params.get('routing_config', []), module).to_request()
|
||||
}
|
||||
)
|
||||
|
||||
|
@ -290,7 +295,7 @@ def resource_to_request(module):
|
|||
u'IPv4Range': module.params.get('ipv4_range'),
|
||||
u'name': module.params.get('name'),
|
||||
u'autoCreateSubnetworks': module.params.get('auto_create_subnetworks'),
|
||||
u'routingConfig': NetworkRoutingConfigArray(module.params.get('routing_config', []), module).to_request()
|
||||
u'routingConfig': NetworkRoutingconfigArray(module.params.get('routing_config', []), module).to_request()
|
||||
}
|
||||
return_vals = {}
|
||||
for k, v in request.items():
|
||||
|
@ -364,7 +369,7 @@ def response_to_hash(module, response):
|
|||
u'subnetworks': response.get(u'subnetworks'),
|
||||
u'autoCreateSubnetworks': module.params.get('auto_create_subnetworks'),
|
||||
u'creationTimestamp': response.get(u'creationTimestamp'),
|
||||
u'routingConfig': NetworkRoutingConfigArray(response.get(u'routingConfig', []), module).from_response()
|
||||
u'routingConfig': NetworkRoutingconfigArray(response.get(u'routingConfig', []), module).from_response()
|
||||
}
|
||||
|
||||
|
||||
|
@ -392,8 +397,6 @@ def wait_for_completion(status, op_result, module):
|
|||
while status != 'DONE':
|
||||
raise_if_errors(op_result, ['error', 'errors'], 'message')
|
||||
time.sleep(1.0)
|
||||
if status not in ['PENDING', 'RUNNING', 'DONE']:
|
||||
module.fail_json(msg="Invalid result %s" % status)
|
||||
op_result = fetch_resource(module, op_uri, 'compute#operation')
|
||||
status = navigate_hash(op_result, ['status'])
|
||||
return op_result
|
||||
|
@ -405,7 +408,7 @@ def raise_if_errors(response, err_path, module):
|
|||
module.fail_json(msg=errors)
|
||||
|
||||
|
||||
class NetworkRoutingConfigArray(object):
|
||||
class NetworkRoutingconfigArray(object):
|
||||
def __init__(self, request, module):
|
||||
self.module = module
|
||||
if request:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue