Search in sources :

Example 1 with Insert

use of com.google.api.services.compute.Compute.Networks.Insert in project cloudbreak by hortonworks.

the class GcpNetworkResourceBuilder method build.

@Override
public CloudResource build(GcpContext context, AuthenticatedContext auth, Network network, Security security, CloudResource resource) throws Exception {
    if (!isExistingNetwork(network)) {
        Compute compute = context.getCompute();
        String projectId = context.getProjectId();
        com.google.api.services.compute.model.Network gcpNetwork = new com.google.api.services.compute.model.Network();
        gcpNetwork.setName(resource.getName());
        gcpNetwork.setAutoCreateSubnetworks(false);
        Insert networkInsert = compute.networks().insert(projectId, gcpNetwork);
        try {
            Operation operation = networkInsert.execute();
            if (operation.getHttpErrorStatusCode() != null) {
                throw new GcpResourceException(operation.getHttpErrorMessage(), resourceType(), resource.getName());
            }
            context.putParameter(NETWORK_NAME, resource.getName());
            return createOperationAwareCloudResource(resource, operation);
        } catch (GoogleJsonResponseException e) {
            throw new GcpResourceException(checkException(e), resourceType(), resource.getName());
        }
    }
    context.putParameter(NETWORK_NAME, resource.getName());
    return new Builder().cloudResource(resource).persistent(false).build();
}
Also used : Builder(com.sequenceiq.cloudbreak.cloud.model.CloudResource.Builder) Operation(com.google.api.services.compute.model.Operation) Insert(com.google.api.services.compute.Compute.Networks.Insert) GoogleJsonResponseException(com.google.api.client.googleapis.json.GoogleJsonResponseException) Compute(com.google.api.services.compute.Compute) GcpStackUtil.isExistingNetwork(com.sequenceiq.cloudbreak.cloud.gcp.util.GcpStackUtil.isExistingNetwork) Network(com.sequenceiq.cloudbreak.cloud.model.Network) GcpResourceException(com.sequenceiq.cloudbreak.cloud.gcp.GcpResourceException)

Aggregations

GoogleJsonResponseException (com.google.api.client.googleapis.json.GoogleJsonResponseException)1 Compute (com.google.api.services.compute.Compute)1 Insert (com.google.api.services.compute.Compute.Networks.Insert)1 Operation (com.google.api.services.compute.model.Operation)1 GcpResourceException (com.sequenceiq.cloudbreak.cloud.gcp.GcpResourceException)1 GcpStackUtil.isExistingNetwork (com.sequenceiq.cloudbreak.cloud.gcp.util.GcpStackUtil.isExistingNetwork)1 Builder (com.sequenceiq.cloudbreak.cloud.model.CloudResource.Builder)1 Network (com.sequenceiq.cloudbreak.cloud.model.Network)1