@Override MachineTypeId parse(String... args) throws Exception { String message; if (args.length == 2) { return MachineTypeId.of(args[0], args[1]); } else if (args.length < 2) { message = "Missing required zone and machine type id."; } else { message = "Too many arguments."; } throw new IllegalArgumentException(message); }
static MachineTypeId fromUrl(String url) { Matcher matcher = PATTERN.matcher(url); if (!matcher.matches()) { throw new IllegalArgumentException(url + " is not a valid machine type URL"); } return MachineTypeId.of(matcher.group(1), matcher.group(2), matcher.group(3)); } }
@Override MachineTypeId setProjectId(String projectId) { if (getProject() != null) { return this; } return MachineTypeId.of(projectId, zone, type); }
@Override public MachineType getMachineType(String zone, String machineType, MachineTypeOption... options) { return getMachineType(MachineTypeId.of(zone, machineType), options); }
@Override Tuple<InstanceId, MachineTypeId> parse(String... args) throws Exception { String message; if (args.length == 3) { String zone = args[0]; String instance = args[1]; String machineType = args[2]; return Tuple.of(InstanceId.of(zone, instance), MachineTypeId.of(zone, machineType)); } else if (args.length > 3) { message = "Too many arguments."; } else { message = "Missing required arguments."; } throw new IllegalArgumentException(message); }
@Override InstanceInfo parse(String... args) throws Exception { String message; if (args.length == 5) { String zone = args[0]; String instance = args[1]; InstanceId instanceId = InstanceId.of(zone, instance); MachineTypeId machineTypeId = MachineTypeId.of(zone, args[2]); DiskId diskId = DiskId.of(zone, args[3]); AttachedDisk disk = AttachedDisk.of(PersistentDiskConfiguration.newBuilder(diskId).setBoot(true).build()); NetworkInterface networkInterface = NetworkInterface.of(args[4]); return InstanceInfo.of(instanceId, machineTypeId, disk, networkInterface); } else if (args.length > 5) { message = "Too many arguments."; } else { message = "Missing required arguments."; } throw new IllegalArgumentException(message); }
@Test public void testSetMachineType_Null() { EasyMock.expect( computeRpcMock.setMachineType( INSTANCE_ID.getZone(), INSTANCE_ID.getInstance(), MACHINE_TYPE_ID.getSelfLink(), EMPTY_RPC_OPTIONS)) .andReturn(null); EasyMock.replay(computeRpcMock); compute = options.getService(); assertNull(compute.setMachineType(INSTANCE_ID, MachineTypeId.of("zone", "type"))); }
@Test public void testSetMachineType_Operation() { EasyMock.expect( computeRpcMock.setMachineType( INSTANCE_ID.getZone(), INSTANCE_ID.getInstance(), MACHINE_TYPE_ID.getSelfLink(), EMPTY_RPC_OPTIONS)) .andReturn(zoneOperation.toPb()); EasyMock.replay(computeRpcMock); compute = options.getService(); assertEquals( zoneOperation, compute.setMachineType(INSTANCE_ID, MachineTypeId.of("zone", "type"))); }
@Test public void testMatchesUrl() { assertTrue(MachineTypeId.matchesUrl(MachineTypeId.of(PROJECT, ZONE, TYPE).getSelfLink())); assertFalse(MachineTypeId.matchesUrl("notMatchingUrl")); }
@Test public void testCreateInstance() { EasyMock.expect( computeRpcMock.createInstance( INSTANCE_ID.getZone(), INSTANCE.toPb(), EMPTY_RPC_OPTIONS)) .andReturn(zoneOperation.toPb()); EasyMock.replay(computeRpcMock); compute = options.getService(); InstanceInfo instance = InstanceInfo.of( InstanceId.of("zone", "instance"), MachineTypeId.of("zone", "type"), ATTACHED_DISK, NetworkInterface.of(NetworkId.of("network"))); Operation operation = compute.create(instance); assertEquals(zoneOperation, operation); }
@Test public void testSetMachineTypeWithOptions_Operation() { Capture<Map<ComputeRpc.Option, Object>> capturedOptions = Capture.newInstance(); EasyMock.expect( computeRpcMock.setMachineType( eq(INSTANCE_ID.getZone()), eq(INSTANCE_ID.getInstance()), eq(MACHINE_TYPE_ID.getSelfLink()), capture(capturedOptions))) .andReturn(zoneOperation.toPb()); EasyMock.replay(computeRpcMock); compute = options.getService(); Operation operation = compute.setMachineType( INSTANCE_ID, MachineTypeId.of("zone", "type"), OPERATION_OPTION_FIELDS); String selector = (String) capturedOptions.getValue().get(OPERATION_OPTION_FIELDS.getRpcOption()); assertTrue(selector.contains("selfLink")); assertTrue(selector.contains("id")); assertTrue(selector.contains("description")); assertEquals(23, selector.length()); assertEquals(zoneOperation, operation); }
.setAccessConfigurations(AccessConfig.of(externalIp.getAddress())) .build(); MachineTypeId machineTypeId = MachineTypeId.of("us-central1-a", "n1-standard-1"); InstanceInfo instance = InstanceInfo.of(instanceId, machineTypeId, attachedDisk, networkInterface);
public static void main(String... args) throws InterruptedException, TimeoutException { Compute compute = ComputeOptions.getDefaultInstance().getService(); ImageId imageId = ImageId.of("debian-cloud", "debian-8-jessie-v20160329"); NetworkId networkId = NetworkId.of("default"); AttachedDisk attachedDisk = AttachedDisk.of(AttachedDisk.CreateDiskConfiguration.of(imageId)); NetworkInterface networkInterface = NetworkInterface.of(networkId); InstanceId instanceId = InstanceId.of("us-central1-a", "instance-name"); MachineTypeId machineTypeId = MachineTypeId.of("us-central1-a", "n1-standard-1"); Operation operation = compute.create(InstanceInfo.of(instanceId, machineTypeId, attachedDisk, networkInterface)); operation = operation.waitFor(); if (operation.getErrors() == null) { // use instance Instance instance = compute.getInstance(instanceId); } } }
@Test public void testToAndFromUrl() { MachineTypeId machineTypeId = MachineTypeId.of(PROJECT, ZONE, TYPE); compareMachineTypeId(machineTypeId, MachineTypeId.fromUrl(machineTypeId.getSelfLink())); thrown.expect(IllegalArgumentException.class); thrown.expectMessage("notMatchingUrl is not a valid machine type URL"); MachineTypeId.fromUrl("notMatchingUrl"); }
@Test public void testOf() { MachineTypeId machineTypeId = MachineTypeId.of(PROJECT, ZONE, TYPE); assertEquals(PROJECT, machineTypeId.getProject()); assertEquals(ZONE, machineTypeId.getZone()); assertEquals(TYPE, machineTypeId.getType()); assertEquals(URL, machineTypeId.getSelfLink()); machineTypeId = MachineTypeId.of(ZONE, TYPE); assertNull(machineTypeId.getProject()); assertEquals(ZONE, machineTypeId.getZone()); assertEquals(TYPE, machineTypeId.getType()); }
@Test public void testSetProjectId() { InstanceInfo instance = InstanceInfo.of( InstanceId.of("zone", "instance"), MachineTypeId.of("zone", "type"), AttachedDisk.of(AttachedDisk.PersistentDiskConfiguration.of(DiskId.of("zone", "disk"))), NetworkInterface.of(NetworkId.of("project", "network"))); InstanceInfo instanceWithProject = InstanceInfo.of(INSTANCE_ID, MACHINE_TYPE, ATTACHED_DISK, NETWORK_INTERFACE); compareInstanceInfo(instanceWithProject, instance.setProjectId("project")); }
AttachedDisk.CreateDiskConfiguration.newBuilder(IMAGE_ID).setAutoDelete(true).build()); InstanceInfo instanceInfo = InstanceInfo.newBuilder(instanceId, MachineTypeId.of(ZONE, MACHINE_TYPE)) .setAttachedDisks(disk) .setNetworkInterfaces(networkInterface)
AttachedDisk.CreateDiskConfiguration.newBuilder(IMAGE_ID).setAutoDelete(true).build()); InstanceInfo instanceInfo = InstanceInfo.newBuilder(instanceId, MachineTypeId.of(ZONE, MACHINE_TYPE)) .setAttachedDisks(disk) .setNetworkInterfaces(networkInterface) operation = remoteInstance.setMachineType(MachineTypeId.of(ZONE, "n1-standard-1")); operation.waitFor(); remoteInstance = compute.getInstance(instanceId);
AttachedDisk.CreateDiskConfiguration.newBuilder(IMAGE_ID).setAutoDelete(true).build()); InstanceInfo instanceInfo = InstanceInfo.newBuilder(instanceId, MachineTypeId.of(ZONE, MACHINE_TYPE)) .setAttachedDisks(disk) .setNetworkInterfaces(networkInterface)