Search in sources :

Example 6 with InstanceTemplate

use of com.google.cloud.compute.v1.InstanceTemplate in project java-docs-samples by GoogleCloudPlatform.

the class CreateTemplateWithSubnet method createTemplateWithSubnet.

// Create an instance template that uses a provided subnet.
public static void createTemplateWithSubnet(String projectId, String network, String subnetwork, String templateName) throws IOException, ExecutionException, InterruptedException, TimeoutException {
    try (InstanceTemplatesClient instanceTemplatesClient = InstanceTemplatesClient.create();
        GlobalOperationsClient globalOperationsClient = GlobalOperationsClient.create()) {
        AttachedDisk disk = AttachedDisk.newBuilder().setInitializeParams(AttachedDiskInitializeParams.newBuilder().setSourceImage(String.format("projects/%s/global/images/family/%s", "debian-cloud", "debian-11")).setDiskSizeGb(250).build()).setAutoDelete(true).setBoot(true).build();
        InstanceProperties instanceProperties = InstanceProperties.newBuilder().addDisks(disk).setMachineType("e2-standard-4").addNetworkInterfaces(NetworkInterface.newBuilder().setNetwork(network).setSubnetwork(subnetwork).build()).build();
        InstanceTemplate instanceTemplate = InstanceTemplate.newBuilder().setName(templateName).setProperties(instanceProperties).build();
        InsertInstanceTemplateRequest insertInstanceTemplateRequest = InsertInstanceTemplateRequest.newBuilder().setProject(projectId).setInstanceTemplateResource(instanceTemplate).build();
        Operation operation = instanceTemplatesClient.insertCallable().futureCall(insertInstanceTemplateRequest).get(3, TimeUnit.MINUTES);
        Operation response = globalOperationsClient.wait(projectId, operation.getName());
        if (response.hasError()) {
            System.out.println("Template creation from subnet failed ! ! " + response);
            return;
        }
        System.out.printf("Template creation from subnet operation status %s: %s", templateName, response.getStatus());
    }
}
Also used : InstanceProperties(com.google.cloud.compute.v1.InstanceProperties) AttachedDisk(com.google.cloud.compute.v1.AttachedDisk) GlobalOperationsClient(com.google.cloud.compute.v1.GlobalOperationsClient) Operation(com.google.cloud.compute.v1.Operation) InsertInstanceTemplateRequest(com.google.cloud.compute.v1.InsertInstanceTemplateRequest) InstanceTemplatesClient(com.google.cloud.compute.v1.InstanceTemplatesClient) InstanceTemplate(com.google.cloud.compute.v1.InstanceTemplate)

Example 7 with InstanceTemplate

use of com.google.cloud.compute.v1.InstanceTemplate in project java-docs-samples by GoogleCloudPlatform.

the class GetInstanceTemplate method getInstanceTemplate.

// Retrieve an instance template, which you can use to create virtual machine
// (VM) instances and managed instance groups (MIGs).
public static void getInstanceTemplate(String projectId, String templateName) throws IOException {
    try (InstanceTemplatesClient instanceTemplatesClient = InstanceTemplatesClient.create()) {
        GetInstanceTemplateRequest getInstanceTemplateRequest = GetInstanceTemplateRequest.newBuilder().setProject(projectId).setInstanceTemplate(templateName).build();
        InstanceTemplate instanceTemplate = instanceTemplatesClient.get(getInstanceTemplateRequest);
        System.out.println("Instance Template retrieved: " + instanceTemplate.getName());
    }
}
Also used : GetInstanceTemplateRequest(com.google.cloud.compute.v1.GetInstanceTemplateRequest) InstanceTemplatesClient(com.google.cloud.compute.v1.InstanceTemplatesClient) InstanceTemplate(com.google.cloud.compute.v1.InstanceTemplate)

Example 8 with InstanceTemplate

use of com.google.cloud.compute.v1.InstanceTemplate in project java-compute by googleapis.

the class ITSmokeInstancesTest method testResizeGroupToZero.

@Test
public void testResizeGroupToZero() throws IOException, ExecutionException, InterruptedException {
    // We test here: 1)set body field to zero
    // 2)set query param to zero
    List<String> instanceGroupManagersToClean = new ArrayList<>();
    List<String> instanceTemplatesToClean = new ArrayList<>();
    InstanceTemplatesClient instanceTemplatesClient = InstanceTemplatesClient.create();
    InstanceGroupManagersClient instanceGroupManagersClient = InstanceGroupManagersClient.create();
    String templateName = generateRandomName("template");
    String instanceGroupManagerName = generateRandomName("igm");
    Instance instance = insertInstance();
    InstanceTemplate instanceTemplate = InstanceTemplate.newBuilder().setSourceInstance(instance.getSelfLink()).setName(templateName).build();
    Operation insertOperation = instanceTemplatesClient.insertAsync(DEFAULT_PROJECT, instanceTemplate).get();
    instanceTemplatesToClean.add(templateName);
    try {
        InstanceGroupManager instanceGroupManager = InstanceGroupManager.newBuilder().setName(instanceGroupManagerName).setBaseInstanceName("java-gapic").setInstanceTemplate(insertOperation.getTargetLink()).setTargetSize(0).build();
        instanceGroupManagersClient.insertAsync(DEFAULT_PROJECT, DEFAULT_ZONE, instanceGroupManager).get();
        instanceGroupManagersToClean.add(instanceGroupManagerName);
        InstanceGroupManager fetched = instanceGroupManagersClient.get(DEFAULT_PROJECT, DEFAULT_ZONE, instanceGroupManagerName);
        Assert.assertEquals(0, fetched.getTargetSize());
        instanceGroupManagersClient.resizeAsync(DEFAULT_PROJECT, DEFAULT_ZONE, instanceGroupManagerName, 1).get();
        InstanceGroupManager resizedIGM = instanceGroupManagersClient.get(DEFAULT_PROJECT, DEFAULT_ZONE, instanceGroupManagerName);
        Assert.assertEquals(1, resizedIGM.getTargetSize());
        instanceGroupManagersClient.resizeAsync(DEFAULT_PROJECT, DEFAULT_ZONE, instanceGroupManagerName, 0).get();
        InstanceGroupManager instanceGroupManagerResized = instanceGroupManagersClient.get(DEFAULT_PROJECT, DEFAULT_ZONE, instanceGroupManagerName);
        Assert.assertEquals(0, instanceGroupManagerResized.getTargetSize());
    } finally {
        for (String name : instanceGroupManagersToClean) {
            instanceGroupManagersClient.deleteAsync(DEFAULT_PROJECT, DEFAULT_ZONE, name).get();
        }
        for (String name : instanceTemplatesToClean) {
            instanceTemplatesClient.deleteAsync(DEFAULT_PROJECT, name).get();
        }
    }
}
Also used : InstanceGroupManager(com.google.cloud.compute.v1.InstanceGroupManager) InstanceGroupManagersClient(com.google.cloud.compute.v1.InstanceGroupManagersClient) Instance(com.google.cloud.compute.v1.Instance) ArrayList(java.util.ArrayList) Operation(com.google.cloud.compute.v1.Operation) InstanceTemplatesClient(com.google.cloud.compute.v1.InstanceTemplatesClient) InstanceTemplate(com.google.cloud.compute.v1.InstanceTemplate) Test(org.junit.Test)

Aggregations

InstanceTemplate (com.google.cloud.compute.v1.InstanceTemplate)7 InstanceTemplatesClient (com.google.cloud.compute.v1.InstanceTemplatesClient)7 Operation (com.google.cloud.compute.v1.Operation)5 AttachedDisk (com.google.cloud.compute.v1.AttachedDisk)3 GlobalOperationsClient (com.google.cloud.compute.v1.GlobalOperationsClient)3 InsertInstanceTemplateRequest (com.google.cloud.compute.v1.InsertInstanceTemplateRequest)3 Instance (com.google.cloud.compute.v1.Instance)2 ListPagedResponse (com.google.cloud.compute.v1.InstanceTemplatesClient.ListPagedResponse)2 Test (org.junit.Test)2 GetInstanceTemplateRequest (com.google.cloud.compute.v1.GetInstanceTemplateRequest)1 InsertInstanceRequest (com.google.cloud.compute.v1.InsertInstanceRequest)1 InstanceGroupManager (com.google.cloud.compute.v1.InstanceGroupManager)1 InstanceGroupManagersClient (com.google.cloud.compute.v1.InstanceGroupManagersClient)1 InstanceProperties (com.google.cloud.compute.v1.InstanceProperties)1 InstancesClient (com.google.cloud.compute.v1.InstancesClient)1 SourceInstanceParams (com.google.cloud.compute.v1.SourceInstanceParams)1 ArrayList (java.util.ArrayList)1