@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 testToBuilderIncomplete() { NetworkInterface networkInterface = NetworkInterface.of(NETWORK); assertEquals(networkInterface, networkInterface.toBuilder().build()); networkInterface = NetworkInterface.of(NETWORK.getNetwork()); assertEquals(networkInterface, networkInterface.toBuilder().build()); }
@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 testSetProjectId() { NetworkInterface networkInterface = NetworkInterface.of(NETWORK); compareNetworkInterface( networkInterface, NetworkInterface.of(NetworkId.of("network")).setProjectId("project")); networkInterface = NETWORK_INTERFACE .toBuilder() .setNetwork(NetworkId.of("network")) .setSubnetwork(SubnetworkId.of("region", "subnetwork")) .build(); compareNetworkInterface(NETWORK_INTERFACE, networkInterface.setProjectId("project")); }
@Test public void testToAndFromPb() { NetworkInterface networkInterface = NetworkInterface.fromPb(NETWORK_INTERFACE.toPb()); compareNetworkInterface(NETWORK_INTERFACE, networkInterface); networkInterface = NetworkInterface.of(NETWORK); compareNetworkInterface(networkInterface, NetworkInterface.fromPb(networkInterface.toPb())); }
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 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")); }
@Test public void testOf() { NetworkInterface networkInterface = NetworkInterface.of(NETWORK); assertNull(networkInterface.getName()); assertEquals(NETWORK, networkInterface.getNetwork()); assertNull(networkInterface.getNetworkIp()); assertNull(networkInterface.getSubnetwork()); networkInterface = NetworkInterface.of(NETWORK.getNetwork()); assertNull(networkInterface.getName()); assertNull(networkInterface.getNetwork().getProject()); assertEquals(NETWORK.getNetwork(), networkInterface.getNetwork().getNetwork()); assertNull(networkInterface.getNetworkIp()); assertNull(networkInterface.getSubnetwork()); }