package com.sequenceiq.cloudbreak.cloud.event.resource;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import com.sequenceiq.cloudbreak.cloud.event.CloudPlatformResult;
import com.sequenceiq.cloudbreak.cloud.event.InstancePayload;
import com.sequenceiq.cloudbreak.cloud.model.CloudInstance;
public class RemoveInstanceResult extends CloudPlatformResult<RemoveInstanceRequest> implements InstancePayload {
public RemoveInstanceResult(DownscaleStackResult result, RemoveInstanceRequest request) {
init(result.getStatus(), result.getStatusReason(), result.getErrorDetails(), request);
}
public RemoveInstanceResult(String statusReason, Exception errorDetails, RemoveInstanceRequest request) {
super(statusReason, errorDetails, request);
}
public CloudInstance getCloudInstance() {
List<CloudInstance> instances = getRequest().getInstances();
return instances.isEmpty() ? null : instances.get(0);
}
@Override
public Set<String> getInstanceIds() {
if (getCloudInstance() == null) {
return null;
} else {
List<CloudInstance> instances = getRequest().getInstances();
return instances.stream().map(CloudInstance::getInstanceId).collect(Collectors.toSet());
}
}
}