@Override public JsonElement serialize(Metadata src, Type typeOfSrc, JsonSerializationContext context) { JsonObject metadataObject = new JsonObject(); metadataObject.add("kind", new JsonPrimitive("compute#metadata")); JsonArray items = new JsonArray(); for (Map.Entry<String, String> entry : src.getItems().entrySet()) { JsonObject object = new JsonObject(); object.addProperty("key", entry.getKey()); object.addProperty("value", entry.getValue()); items.add(object); } metadataObject.add("items", items); if (src.getFingerprint() != null) { metadataObject.addProperty("fingerprint", src.getFingerprint()); } return metadataObject; } }
@Override public JsonElement serialize(Metadata src, Type typeOfSrc, JsonSerializationContext context) { JsonObject metadataObject = new JsonObject(); metadataObject.add("kind", new JsonPrimitive("compute#metadata")); JsonArray items = new JsonArray(); for (Map.Entry<String, String> entry : src.getItems().entrySet()) { JsonObject object = new JsonObject(); object.addProperty("key", entry.getKey()); object.addProperty("value", entry.getValue()); items.add(object); } metadataObject.add("items", items); if (src.getFingerprint() != null) { metadataObject.addProperty("fingerprint", src.getFingerprint()); } return metadataObject; } }
public Builder fromMetadata(Metadata in) { return this.fingerprint(in.getFingerprint()) .items(in.getItems()); } }
public Builder fromMetadata(Metadata in) { return this.fingerprint(in.getFingerprint()) .items(in.getItems()); } }
@Override public void destroyNode(final String name) { SlashEncodedIds slashEncodedIds = SlashEncodedIds.fromSlashEncoded(name); String diskName = null; try { Instance instance = api.getInstanceApiForProject(userProject.get()).getInZone(slashEncodedIds.getFirstId(), slashEncodedIds.getSecondId()); if (instance.getMetadata().getItems().get(GCE_DELETE_BOOT_DISK_METADATA_KEY).equals("true")) { Optional<AttachedDisk> disk = tryFind(instance.getDisks(), new Predicate<AttachedDisk>() { @Override public boolean apply(AttachedDisk input) { return PersistentAttachedDisk.class.isInstance(input) && PersistentAttachedDisk.class.cast(input).isBoot(); } }); if (disk.isPresent()) { diskName = PersistentAttachedDisk.class.cast(disk.get()).getSourceDiskName(); } } } catch (Exception e) { // TODO: what exception actually gets thrown here if the instance doesn't really exist? } waitOperationDone(api.getInstanceApiForProject(userProject.get()).deleteInZone(slashEncodedIds.getFirstId(), slashEncodedIds.getSecondId())); if (diskName != null) { waitOperationDone(api.getDiskApiForProject(userProject.get()).deleteInZone(slashEncodedIds.getFirstId(), diskName)); } }
@Override public void destroyNode(final String name) { SlashEncodedIds slashEncodedIds = SlashEncodedIds.fromSlashEncoded(name); String diskName = null; try { Instance instance = api.getInstanceApiForProject(userProject.get()).getInZone(slashEncodedIds.getFirstId(), slashEncodedIds.getSecondId()); if (instance.getMetadata().getItems().get(GCE_DELETE_BOOT_DISK_METADATA_KEY).equals("true")) { Optional<AttachedDisk> disk = tryFind(instance.getDisks(), new Predicate<AttachedDisk>() { @Override public boolean apply(AttachedDisk input) { return PersistentAttachedDisk.class.isInstance(input) && PersistentAttachedDisk.class.cast(input).isBoot(); } }); if (disk.isPresent()) { diskName = PersistentAttachedDisk.class.cast(disk.get()).getSourceDiskName(); } } } catch (Exception e) { // TODO: what exception actually gets thrown here if the instance doesn't really exist? } waitOperationDone(api.getInstanceApiForProject(userProject.get()).deleteInZone(slashEncodedIds.getFirstId(), slashEncodedIds.getSecondId())); if (diskName != null) { waitOperationDone(api.getDiskApiForProject(userProject.get()).deleteInZone(slashEncodedIds.getFirstId(), diskName)); } }
Instance input = instanceInZone.getInstance(); String group = groupFromMapOrName(input.getMetadata().getItems(), input.getName(), nodeNamingConvention); FluentIterable<String> tags = FluentIterable.from(input.getTags().getItems()); .tags(tags) .uri(input.getSelfLink()) .userMetadata(input.getMetadata().getItems()) .group(group) .privateAddresses(collectPrivateAddresses(input)) .publicAddresses(collectPublicAddresses(input)); if (input.getMetadata().getItems().containsKey(GCE_IMAGE_METADATA_KEY)) { try { URI imageUri = URI.create(input.getMetadata().getItems() .get(GCE_IMAGE_METADATA_KEY));
Instance input = instanceInZone.getInstance(); String group = groupFromMapOrName(input.getMetadata().getItems(), input.getName(), nodeNamingConvention); FluentIterable<String> tags = FluentIterable.from(input.getTags().getItems()) .tags(tags) .uri(input.getSelfLink()) .userMetadata(input.getMetadata().getItems()) .group(group) .privateAddresses(collectPrivateAddresses(input)) .publicAddresses(collectPublicAddresses(input)); if (input.getMetadata().getItems().containsKey(GCE_IMAGE_METADATA_KEY)) { try { URI imageUri = URI.create(input.getMetadata().getItems() .get(GCE_IMAGE_METADATA_KEY));