private ApplicationId toApplicationId(String applicationIdString) { try { return ApplicationId.fromSerializedForm(applicationIdString); } catch (IllegalArgumentException e) { throw new BadRequestException(e); } }
/** Create an instance from a serialized value on the form tenant:application:instance:cluster-id */ public static LoadBalancerId fromSerializedForm(String value) { int lastSeparator = value.lastIndexOf(":"); ApplicationId application = ApplicationId.fromSerializedForm(value.substring(0, lastSeparator)); ClusterSpec.Id cluster = ClusterSpec.Id.from(value.substring(lastSeparator + 1)); return new LoadBalancerId(application, cluster); }
@GET @Path("/{applicationId}") @Produces(MediaType.APPLICATION_JSON) public ApplicationServices getInstance(@PathParam("applicationId") String applicationIdString) { ApplicationId applicationId = ApplicationId.fromSerializedForm(applicationIdString); Map<ServiceId, ServiceStatusInfo> services = healthMonitorApi.getServices(applicationId); List<ServiceResource> serviceResources = services.entrySet().stream().map(entry -> { ServiceResource serviceResource = new ServiceResource(); serviceResource.clusterId = entry.getKey().getClusterId(); serviceResource.serviceType = entry.getKey().getServiceType(); serviceResource.configId = entry.getKey().getConfigId(); serviceResource.serviceStatusInfo = entry.getValue(); return serviceResource; }) .sorted(Comparator.comparing(resource -> resource.serviceType.s())) .collect(Collectors.toList()); ApplicationServices applicationServices = new ApplicationServices(); applicationServices.services = serviceResources; return applicationServices; }
public static Flag fromJson(byte[] data) { Inspector inspect = SlimeUtils.jsonToSlime(data).get(); Set<String> hostnames = new LinkedHashSet<>(); inspect.field(hostnamesField).traverse((ArrayTraverser) (i, hostname) -> hostnames.add(hostname.asString())); Set<ApplicationId> applications = new LinkedHashSet<>(); inspect.field(applicationsField).traverse((ArrayTraverser) (i, application) -> { applications.add(ApplicationId.fromSerializedForm(application.asString())); }); return new Flag(FlagId.fromSerializedForm(inspect.field(featureField).asString()), inspect.field(enabledField).asBool(), hostnames, applications); }
private HttpResponse setFlag(String flag, boolean enabled, String dimension, String value) { FlagId flagId = FlagId.fromSerializedForm(flag); switch (dimension) { case "application": nodeRepository.flags().setEnabled(flagId, ApplicationId.fromSerializedForm(value), enabled); break; case "node": nodeRepository.flags().setEnabled(flagId, HostName.from(value), enabled); break; case "": nodeRepository.flags().setEnabled(flagId, enabled); break; default: throw new IllegalArgumentException("Unknown flag dimension '" + dimension + "'"); } return new MessageResponse((enabled ? "Enabled" : "Disabled") + " feature " + flagId + (!value.isEmpty() ? " for " + dimension + " '" + value + "'" : "")); }