def resource_to_request(module):
    request = {
        u'kind': 'compute#vpnTunnel',
        u'name': module.params.get('name'),
        u'description': module.params.get('description'),
        u'targetVpnGateway': replace_resource_dict(module.params.get(u'target_vpn_gateway', {}), 'selfLink'),
        u'router': replace_resource_dict(module.params.get(u'router', {}), 'selfLink'),
        u'peerIp': module.params.get('peer_ip'),
        u'sharedSecret': module.params.get('shared_secret'),
        u'ikeVersion': module.params.get('ike_version'),
        u'localTrafficSelector': module.params.get('local_traffic_selector'),
        u'remoteTrafficSelector': module.params.get('remote_traffic_selector'),
        u'labels': module.params.get('labels')
    }
    return_vals = {}
    for k, v in request.items():
        if v or v is False:
            return_vals[k] = v

    return return_vals
예제 #2
0
def set_default(module):
    res = {
        'project': module.params['project'],
        'model': replace_resource_dict(module.params['model'], 'name'),
        'name': module.params['name']
    }
    link = "https://ml.googleapis.com/v1/projects/{project}/models/{model}/versions/{name}:setDefault".format(
        **res)

    auth = GcpSession(module, 'mlengine')
    return_if_object(module, auth.post(link))
def ssl_certificates_update(module, request, response):
    auth = GcpSession(module, 'compute')
    auth.post(
        ''.join([
            "https://www.googleapis.com/compute/v1/",
            "projects/{project}/targetHttpsProxies/{name}/setSslCertificates"
        ]).format(**module.params), {
            u'sslCertificates':
            replace_resource_dict(module.params.get('ssl_certificates', []),
                                  'selfLink')
        })
예제 #4
0
def resource_to_request(module):
    request = {
        u'kind':
        'compute#targetHttpsProxy',
        u'description':
        module.params.get('description'),
        u'name':
        module.params.get('name'),
        u'sslCertificates':
        replace_resource_dict(module.params.get('ssl_certificates', []),
                              'selfLink'),
        u'urlMap':
        replace_resource_dict(module.params.get(u'url_map', {}), 'selfLink')
    }
    return_vals = {}
    for k, v in request.items():
        if v:
            return_vals[k] = v

    return return_vals
예제 #5
0
 def _request_for_item(self, item):
     return remove_nones_from_dict({
         u'description':
         item.get('description'),
         u'host':
         item.get('host'),
         u'path':
         item.get('path'),
         u'service':
         replace_resource_dict(item.get(u'service', {}), 'selfLink'),
     })
예제 #6
0
 def _request_for_item(self, item):
     return remove_nones_from_dict({
         u'bucket': replace_resource_dict(item.get(u'bucket', {}), 'name'),
         u'domain': item.get('domain'),
         u'email': item.get('email'),
         u'entity': item.get('entity'),
         u'entityId': item.get('entity_id'),
         u'id': item.get('id'),
         u'projectTeam': BucketProjectTeam(item.get('project_team', {})).to_request(),
         u'role': item.get('role')
     })
예제 #7
0
def topic_pattern(name, module):
    if name is None:
        return

    regex = r"projects/.*/topics/.*"

    if not re.match(regex, name):
        formatted_params = {'project': module.params['project'], 'topic': replace_resource_dict(module.params['topic'], 'name')}
        name = "projects/{project}/topics/{topic}".format(**formatted_params)

    return name
예제 #8
0
 def _request_for_item(self, item):
     return remove_nones_from_dict({
         u'bucket':
         replace_resource_dict(item.get(u'bucket', {}), 'name'),
         u'entity':
         item.get('entity'),
         u'object':
         item.get('object'),
         u'role':
         item.get('role'),
     })
예제 #9
0
    def __init__(self, module):
        self.module = module
        self.current_instances = self.list_instances()
        self.module_instances = []

        # Transform module list of instances (dicts of instance responses) into a list of selfLinks.
        instances = self.module.params.get('instances')
        if instances:
            for instance in instances:
                self.module_instances.append(
                    replace_resource_dict(instance, 'selfLink'))
예제 #10
0
def service_update(module, request, response):
    auth = GcpSession(module, 'compute')
    auth.post(
        ''.join([
            "https://www.googleapis.com/compute/v1/",
            "projects/{project}/global/targetSslProxies/{name}/setBackendService"
        ]).format(**module.params), {
            u'service':
            replace_resource_dict(module.params.get(u'service', {}),
                                  'selfLink')
        })
예제 #11
0
def response_to_hash(module, response):
    return {
        u'name': name_pattern(module.params.get('name'), module),
        u'topic': topic_pattern(replace_resource_dict(module.params.get(u'topic', {}), 'name'), module),
        u'labels': response.get(u'labels'),
        u'pushConfig': SubscriptionPushconfig(response.get(u'pushConfig', {}), module).from_response(),
        u'ackDeadlineSeconds': response.get(u'ackDeadlineSeconds'),
        u'messageRetentionDuration': response.get(u'messageRetentionDuration'),
        u'retainAckedMessages': response.get(u'retainAckedMessages'),
        u'expirationPolicy': SubscriptionExpirationpolicy(response.get(u'expirationPolicy', {}), module).from_response(),
    }
def url_map_update(module, request, response):
    auth = GcpSession(module, 'compute')
    auth.post(
        ''.join([
            "https://www.googleapis.com/compute/v1/",
            "projects/{project}/targetHttpProxies/{name}/setUrlMap"
        ]).format(**module.params), {
            u'urlMap':
            replace_resource_dict(module.params.get(u'url_map', {}),
                                  'selfLink')
        })
예제 #13
0
def resource_to_request(module):
    request = {
        u'kind':
        'compute#forwardingRule',
        u'description':
        module.params.get('description'),
        u'IPAddress':
        module.params.get('ip_address'),
        u'IPProtocol':
        module.params.get('ip_protocol'),
        u'backendService':
        replace_resource_dict(module.params.get(u'backend_service', {}),
                              'selfLink'),
        u'ipVersion':
        module.params.get('ip_version'),
        u'loadBalancingScheme':
        module.params.get('load_balancing_scheme'),
        u'name':
        module.params.get('name'),
        u'network':
        replace_resource_dict(module.params.get(u'network', {}), 'selfLink'),
        u'portRange':
        module.params.get('port_range'),
        u'ports':
        module.params.get('ports'),
        u'subnetwork':
        replace_resource_dict(module.params.get(u'subnetwork', {}),
                              'selfLink'),
        u'target':
        replace_resource_dict(module.params.get(u'target', {}), 'selfLink'),
        u'allPorts':
        module.params.get('all_ports'),
        u'networkTier':
        module.params.get('network_tier'),
    }
    return_vals = {}
    for k, v in request.items():
        if v or v is False:
            return_vals[k] = v

    return return_vals
예제 #14
0
def resource_to_request(module):
    request = {
        u'kind': 'compute#route',
        u'destRange': module.params.get('dest_range'),
        u'description': module.params.get('description'),
        u'name': module.params.get('name'),
        u'network': replace_resource_dict(module.params.get(u'network', {}), 'selfLink'),
        u'priority': module.params.get('priority'),
        u'tags': module.params.get('tags'),
        u'nextHopGateway': module.params.get('next_hop_gateway'),
        u'nextHopInstance': replace_resource_dict(module.params.get(u'next_hop_instance', {}), 'selfLink'),
        u'nextHopIp': module.params.get('next_hop_ip'),
        u'nextHopVpnTunnel': replace_resource_dict(module.params.get(u'next_hop_vpn_tunnel', {}), 'selfLink'),
        u'nextHopIlb': replace_resource_dict(module.params.get(u'next_hop_ilb', {}), 'selfLink'),
    }
    return_vals = {}
    for k, v in request.items():
        if v or v is False:
            return_vals[k] = v

    return return_vals
예제 #15
0
def response_to_hash(module, response):
    return {
        u'creationTimestamp': response.get(u'creationTimestamp'),
        u'description': response.get(u'description'),
        u'gatewayAddress': response.get(u'gatewayAddress'),
        u'id': response.get(u'id'),
        u'ipCidrRange': response.get(u'ipCidrRange'),
        u'name': response.get(u'name'),
        u'network': replace_resource_dict(module.params.get(u'network', {}), 'selfLink'),
        u'privateIpGoogleAccess': response.get(u'privateIpGoogleAccess'),
        u'region': module.params.get('region')
    }
예제 #16
0
def response_to_hash(module, response):
    return {
        u'destRange': response.get(u'destRange'),
        u'name': response.get(u'name'),
        u'network': replace_resource_dict(module.params.get(u'network', {}), 'selfLink'),
        u'priority': module.params.get('priority'),
        u'tags': module.params.get('tags'),
        u'nextHopGateway': module.params.get('next_hop_gateway'),
        u'nextHopInstance': module.params.get('next_hop_instance'),
        u'nextHopIp': module.params.get('next_hop_ip'),
        u'nextHopVpnTunnel': module.params.get('next_hop_vpn_tunnel')
    }
 def _request_for_item(self, item):
     return remove_nones_from_dict({
         u'balancingMode': item.get('balancing_mode'),
         u'capacityScaler': item.get('capacity_scaler'),
         u'description': item.get('description'),
         u'group': replace_resource_dict(item.get(u'group', {}), 'selfLink'),
         u'maxConnections': item.get('max_connections'),
         u'maxConnectionsPerInstance': item.get('max_connections_per_instance'),
         u'maxRate': item.get('max_rate'),
         u'maxRatePerInstance': item.get('max_rate_per_instance'),
         u'maxUtilization': item.get('max_utilization')
     })
예제 #18
0
def response_to_hash(module, response):
    return {
        u'creationTimestamp': response.get(u'creationTimestamp'),
        u'description': response.get(u'description'),
        u'gatewayAddress': module.params.get('gateway_address'),
        u'id': response.get(u'id'),
        u'ipCidrRange': module.params.get('ip_cidr_range'),
        u'name': response.get(u'name'),
        u'network': replace_resource_dict(module.params.get(u'network', {}), 'selfLink'),
        u'privateIpGoogleAccess': response.get(u'privateIpGoogleAccess'),
        u'region': module.params.get('region')
    }
예제 #19
0
def target_update(module, request, response):
    auth = GcpSession(module, 'compute')
    auth.post(
        ''.join([
            "https://www.googleapis.com/compute/v1/",
            "projects/{project}/regions/{region}/forwardingRules/{name}/setTarget"
        ]).format(**module.params),
        {
            u'target':
            replace_resource_dict(module.params.get(u'target', {}), 'selfLink')
        },
    )
예제 #20
0
 def _request_for_item(self, item):
     return remove_nones_from_dict({
         u'balancingMode': item.get('balancing_mode'),
         u'capacityScaler': item.get('capacity_scaler'),
         u'description': item.get('description'),
         u'group': replace_resource_dict(item.get(u'group', {}), 'selfLink'),
         u'maxConnections': item.get('max_connections'),
         u'maxConnectionsPerInstance': item.get('max_connections_per_instance'),
         u'maxRate': item.get('max_rate'),
         u'maxRatePerInstance': item.get('max_rate_per_instance'),
         u'maxUtilization': item.get('max_utilization')
     })
예제 #21
0
def response_to_hash(module, response):
    return {
        u'backupPool': replace_resource_dict(module.params.get(u'backup_pool', {}), 'selfLink'),
        u'creationTimestamp': response.get(u'creationTimestamp'),
        u'description': response.get(u'description'),
        u'failoverRatio': response.get(u'failoverRatio'),
        u'healthCheck': response.get(u'healthCheck'),
        u'id': response.get(u'id'),
        u'instances': response.get(u'instances'),
        u'name': module.params.get('name'),
        u'sessionAffinity': module.params.get('session_affinity')
    }
예제 #22
0
def response_to_hash(module, response):
    return {
        u'creationTimestamp': response.get(u'creationTimestamp'),
        u'description': response.get(u'description'),
        u'gatewayAddress': response.get(u'gatewayAddress'),
        u'id': response.get(u'id'),
        u'ipCidrRange': response.get(u'ipCidrRange'),
        u'name': response.get(u'name'),
        u'network': replace_resource_dict(module.params.get(u'network', {}), 'selfLink'),
        u'secondaryIpRanges': SubnetworkSecondaryiprangesArray(response.get(u'secondaryIpRanges', []), module).from_response(),
        u'privateIpGoogleAccess': response.get(u'privateIpGoogleAccess'),
        u'region': module.params.get('region'),
    }
 def _request_for_item(self, item):
     return remove_nones_from_dict({
         u'defaultService':
         replace_resource_dict(item.get(u'default_service', {}),
                               'selfLink'),
         u'description':
         item.get('description'),
         u'name':
         item.get('name'),
         u'pathRules':
         UrlMapPathRulesArray(item.get('path_rules', []),
                              self.module).to_request()
     })
def resource_to_request(module):
    request = {
        u'kind': 'compute#targetVpnGateway',
        u'description': module.params.get('description'),
        u'name': module.params.get('name'),
        u'network': replace_resource_dict(module.params.get(u'network', {}), 'selfLink')
    }
    return_vals = {}
    for k, v in request.items():
        if v:
            return_vals[k] = v

    return return_vals
def self_link(module):
    res = {
        'project':
        module.params['project'],
        'managed_zone':
        replace_resource_dict(module.params['managed_zone'], 'name'),
        'name':
        module.params['name'],
        'type':
        module.params['type']
    }
    return "https://www.googleapis.com/dns/v1/projects/{project}/managedZones/{managed_zone}/rrsets?name={name}&type={type}".format(
        **res)
예제 #26
0
def resource_to_request(module):
    request = {
        u'kind': 'compute#targetHttpProxy',
        u'description': module.params.get('description'),
        u'name': module.params.get('name'),
        u'urlMap': replace_resource_dict(module.params.get(u'url_map', {}), 'selfLink'),
    }
    return_vals = {}
    for k, v in request.items():
        if v or v is False:
            return_vals[k] = v

    return return_vals
예제 #27
0
def resource_to_request(module):
    request = {
        u'kind':
        'compute#targetSslProxy',
        u'description':
        module.params.get('description'),
        u'name':
        module.params.get('name'),
        u'proxyHeader':
        module.params.get('proxy_header'),
        u'service':
        replace_resource_dict(module.params.get(u'service', {}), 'selfLink'),
        u'sslCertificates':
        replace_resource_dict(module.params.get('ssl_certificates', []),
                              'selfLink')
    }
    return_vals = {}
    for k, v in request.items():
        if v or v is False:
            return_vals[k] = v

    return return_vals
예제 #28
0
def node_template_update(module, request, response):
    auth = GcpSession(module, 'compute')
    auth.post(
        ''.join([
            "https://www.googleapis.com/compute/v1/",
            "projects/{project}/zones/{zone}/nodeGroups/{name}/setNodeTemplate"
        ]).format(**module.params),
        {
            u'nodeTemplate':
            replace_resource_dict(module.params.get(u'node_template', {}),
                                  'selfLink')
        },
    )
예제 #29
0
def response_to_hash(module, response):
    return {
        u'name':
        module.params.get('name'),
        u'topic':
        replace_resource_dict(module.params.get(u'topic', {}), 'name'),
        u'labels':
        response.get(u'labels'),
        u'pushConfig':
        SubscriptionPushconfig(response.get(u'pushConfig', {}),
                               module).from_response(),
        u'ackDeadlineSeconds':
        response.get(u'ackDeadlineSeconds'),
    }
def resource_to_request(module):
    request = {
        u'kind': 'storage#bucketAccessControl',
        u'bucket': replace_resource_dict(module.params.get(u'bucket', {}),
                                         'name'),
        u'entity': module.params.get('entity'),
        u'role': module.params.get('role'),
    }
    return_vals = {}
    for k, v in request.items():
        if v or v is False:
            return_vals[k] = v

    return return_vals
def resource_to_request(module):
    request = {
        u'name': module.params.get('name'),
        u'topic': replace_resource_dict(module.params.get(u'topic', {}), 'name'),
        u'pushConfig': SubscriptionPushconfig(module.params.get('push_config', {}), module).to_request(),
        u'ackDeadlineSeconds': module.params.get('ack_deadline_seconds'),
    }
    request = encode_request(request, module)
    return_vals = {}
    for k, v in request.items():
        if v or v is False:
            return_vals[k] = v

    return return_vals
예제 #32
0
 def _request_for_item(self, item):
     return remove_nones_from_dict({
         u'bucket':
         replace_resource_dict(item.get(u'bucket', {}), 'name'),
         u'entity':
         item.get('entity'),
         u'entityId':
         item.get('entity_id'),
         u'projectTeam':
         BucketProjectteam(item.get('project_team', {}),
                           self.module).to_request(),
         u'role':
         item.get('role'),
     })
def resource_to_request(module):
    request = {
        u'name': module.params.get('name'),
        u'topic': replace_resource_dict(module.params.get(u'topic', {}), 'name'),
        u'pushConfig': SubscriPushConfig(module.params.get('push_config', {}), module).to_request(),
        u'ackDeadlineSeconds': module.params.get('ack_deadline_seconds')
    }
    request = encode_request(request, module)
    return_vals = {}
    for k, v in request.items():
        if v:
            return_vals[k] = v

    return return_vals
예제 #34
0
def response_to_hash(module, response):
    return {
        u'id':
        response.get(u'id'),
        u'creationTimestamp':
        response.get(u'creationTimestamp'),
        u'name':
        module.params.get('name'),
        u'description':
        response.get(u'description'),
        u'network':
        replace_resource_dict(module.params.get(u'network', {}), 'selfLink'),
        u'bgp':
        RouterBgp(response.get(u'bgp', {}), module).from_response(),
    }
예제 #35
0
def resource_to_request(module):
    request = {
        u'kind':
        'compute#instanceGroup',
        u'description':
        module.params.get('description'),
        u'name':
        module.params.get('name'),
        u'namedPorts':
        InstanceGroupNamedPortsArray(module.params.get('named_ports', []),
                                     module).to_request(),
        u'network':
        replace_resource_dict(module.params.get(u'network', {}), 'selfLink'),
        u'region':
        region_selflink(module.params.get('region'), module.params),
        u'subnetwork':
        replace_resource_dict(module.params.get(u'subnetwork', {}), 'selfLink')
    }
    return_vals = {}
    for k, v in request.items():
        if v:
            return_vals[k] = v

    return return_vals
def resource_to_request(module):
    request = {
        u'kind': 'dns#resourceRecordSet',
        u'managed_zone': replace_resource_dict(module.params.get(u'managed_zone', {}), 'name'),
        u'name': module.params.get('name'),
        u'type': module.params.get('type'),
        u'ttl': module.params.get('ttl'),
        u'rrdatas': module.params.get('target')
    }
    return_vals = {}
    for k, v in request.items():
        if v:
            return_vals[k] = v

    return return_vals
예제 #37
0
def resource_to_request(module):
    request = {
        u'kind': 'compute#subnetwork',
        u'description': module.params.get('description'),
        u'gatewayAddress': module.params.get('gateway_address'),
        u'ipCidrRange': module.params.get('ip_cidr_range'),
        u'name': module.params.get('name'),
        u'network': replace_resource_dict(module.params.get(u'network', {}), 'selfLink'),
        u'privateIpGoogleAccess': module.params.get('private_ip_google_access'),
        u'region': module.params.get('region')
    }
    return_vals = {}
    for k, v in request.items():
        if v:
            return_vals[k] = v

    return return_vals
예제 #38
0
def resource_to_request(module):
    request = {
        u'kind': 'compute#route',
        u'destRange': module.params.get('dest_range'),
        u'name': module.params.get('name'),
        u'network': replace_resource_dict(module.params.get(u'network', {}), 'selfLink'),
        u'priority': module.params.get('priority'),
        u'tags': module.params.get('tags'),
        u'nextHopGateway': module.params.get('next_hop_gateway'),
        u'nextHopInstance': module.params.get('next_hop_instance'),
        u'nextHopIp': module.params.get('next_hop_ip'),
        u'nextHopVpnTunnel': module.params.get('next_hop_vpn_tunnel')
    }
    return_vals = {}
    for k, v in request.items():
        if v:
            return_vals[k] = v

    return return_vals