blob: 8f22af7e0a4d41dc06b1dfe067cfd7588af0f5b3 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.falcon;
import org.apache.commons.lang3.StringUtils;
import org.apache.falcon.entity.v0.SchemaHelper;
import org.apache.falcon.resource.EntitySummaryResult;
import org.apache.falcon.resource.FeedInstanceResult;
import org.apache.falcon.resource.FeedLookupResult;
import org.apache.falcon.resource.InstanceDependencyResult;
import org.apache.falcon.resource.InstancesResult;
import org.apache.falcon.resource.InstancesSummaryResult;
import org.apache.falcon.resource.SchedulableEntityInstanceResult;
import org.apache.falcon.resource.TriageResult;
import java.util.Date;
import java.util.Formatter;
import java.util.Map;
/**
* Helpers for response object to string conversion.
*/
public final class ResponseHelper {
private ResponseHelper() { }
public static String getString(EntitySummaryResult result) {
StringBuilder sb = new StringBuilder();
String toAppend;
sb.append("Consolidated Status: ").append(result.getStatus())
.append("\n");
sb.append("\nEntity Summary Result :\n");
if (result.getEntitySummaries() != null) {
for (EntitySummaryResult.EntitySummary entitySummary : result.getEntitySummaries()) {
toAppend = entitySummary.toString();
sb.append(toAppend).append("\n");
}
}
sb.append("\nAdditional Information:\n");
sb.append("Response: ").append(result.getMessage());
sb.append("Request Id: ").append(result.getRequestId());
return sb.toString();
}
public static String getString(InstancesResult result, String runid) {
StringBuilder sb = new StringBuilder();
String toAppend;
sb.append("Consolidated Status: ").append(result.getStatus())
.append("\n");
sb.append("\nInstances:\n");
sb.append("Instance\t\tCluster\t\tSourceCluster\t\tStatus\t\tRunID\t\t\tLog\n");
sb.append("-----------------------------------------------------------------------------------------------\n");
if (result.getInstances() != null) {
for (InstancesResult.Instance instance : result.getInstances()) {
toAppend =
(instance.getInstance() != null) ? instance.getInstance()
: "-";
sb.append(toAppend).append("\t");
toAppend =
instance.getCluster() != null ? instance.getCluster() : "-";
sb.append(toAppend).append("\t");
toAppend =
instance.getSourceCluster() != null ? instance
.getSourceCluster() : "-";
sb.append(toAppend).append("\t");
toAppend =
(instance.getStatus() != null ? instance.getStatus()
.toString() : "-");
sb.append(toAppend).append("\t");
toAppend = (runid != null ? runid : "latest");
sb.append(toAppend).append("\t");
toAppend =
instance.getLogFile() != null ? instance.getLogFile() : "-";
sb.append(toAppend).append("\n");
if (instance.actions != null) {
sb.append("actions:\n");
for (InstancesResult.InstanceAction action : instance.actions) {
sb.append(" ").append(action.getAction())
.append("\t");
sb.append(action.getStatus()).append("\t")
.append(action.getLogFile()).append("\n");
}
}
}
}
sb.append("\nAdditional Information:\n");
sb.append("Response: ").append(result.getMessage());
sb.append("Request Id: ").append(result.getRequestId());
return sb.toString();
}
public static String getString(FeedInstanceResult result) {
StringBuilder sb = new StringBuilder();
String toAppend;
sb.append("Consolidated Status: ").append(result.getStatus())
.append("\n");
sb.append("\nInstances:\n");
Formatter formatter = new Formatter(sb);
formatter.format("%-16s%-20s%-16s%-16s%-20s%-16s", "Cluster", "Instance", "Status", "Size", "CreationTime",
"Details");
sb.append("\n");
sb.append("-----------------------------------------------------------------------------------------------\n");
if (result.getInstances() != null) {
for (FeedInstanceResult.Instance instance : result.getInstances()) {
formatter.format("%-16s", instance.getCluster() != null ? instance.getCluster() : "-");
formatter.format("%-20s", instance.getInstance() != null ? instance.getInstance() : "-");
formatter.format("%-16s", instance.getStatus() != null ? instance.getStatus() : "-");
formatter.format("%-16s", instance.getSize() != -1 ? instance.getSizeH() : "-");
formatter.format("%-20s", instance.getCreationTime() != 0
? SchemaHelper.formatDateUTC(new Date(instance.getCreationTime())) : "-");
formatter.format("%-16s", StringUtils.isEmpty(instance.getUri()) ? "-" : instance.getUri());
sb.append("\n");
}
}
sb.append("\nAdditional Information:\n");
sb.append("Response: ").append(result.getMessage());
sb.append("Request Id: ").append(result.getRequestId());
return sb.toString();
}
public static String getString(InstancesResult result) {
StringBuilder sb = new StringBuilder();
String toAppend;
sb.append("Consolidated Status: ").append(result.getStatus())
.append("\n");
sb.append("\nInstances:\n");
sb.append("Instance\t\tCluster\t\tSourceCluster\t\tStatus\t\tStart\t\tEnd\t\tDetails\t\t\t\t\tLog\n");
sb.append("-----------------------------------------------------------------------------------------------\n");
if (result.getInstances() != null) {
for (InstancesResult.Instance instance : result.getInstances()) {
toAppend =
instance.getInstance() != null ? instance.getInstance()
: "-";
sb.append(toAppend).append("\t");
toAppend =
instance.getCluster() != null ? instance.getCluster() : "-";
sb.append(toAppend).append("\t");
toAppend =
instance.getSourceCluster() != null ? instance
.getSourceCluster() : "-";
sb.append(toAppend).append("\t");
toAppend =
(instance.getStatus() != null ? instance.getStatus()
.toString() : "-");
sb.append(toAppend).append("\t");
toAppend = instance.getStartTime() != null
? SchemaHelper.formatDateUTC(instance.getStartTime()) : "-";
sb.append(toAppend).append("\t");
toAppend = instance.getEndTime() != null
? SchemaHelper.formatDateUTC(instance.getEndTime()) : "-";
sb.append(toAppend).append("\t");
toAppend = (!StringUtils.isEmpty(instance.getDetails()))
? instance.getDetails() : "-";
sb.append(toAppend).append("\t");
toAppend =
instance.getLogFile() != null ? instance.getLogFile() : "-";
sb.append(toAppend).append("\n");
if (instance.getWfParams() != null) {
InstancesResult.KeyValuePair[] props = instance.getWfParams();
sb.append("Workflow params").append("\n");
for (InstancesResult.KeyValuePair entry : props) {
sb.append(entry.getKey()).append("=")
.append(entry.getValue()).append("\n");
}
sb.append("\n");
}
if (instance.actions != null) {
sb.append("actions:\n");
for (InstancesResult.InstanceAction action : instance.actions) {
sb.append(" ").append(action.getAction()).append("\t");
sb.append(action.getStatus()).append("\t")
.append(action.getLogFile()).append("\n");
}
}
}
}
sb.append("\nAdditional Information:\n");
sb.append("Response: ").append(result.getMessage());
sb.append("Request Id: ").append(result.getRequestId());
return sb.toString();
}
public static String getString(InstancesSummaryResult result) {
StringBuilder sb = new StringBuilder();
String toAppend;
sb.append("Consolidated Status: ").append(result.getStatus())
.append("\n");
sb.append("\nInstances Summary:\n");
if (result.getInstancesSummary() != null) {
for (InstancesSummaryResult.InstanceSummary summary : result
.getInstancesSummary()) {
toAppend =
summary.getCluster() != null ? summary.getCluster() : "-";
sb.append("Cluster: ").append(toAppend).append("\n");
sb.append("Status\t\tCount\n");
sb.append("-------------------------\n");
for (Map.Entry<String, Long> entry : summary.getSummaryMap()
.entrySet()) {
sb.append(entry.getKey()).append("\t\t")
.append(entry.getValue()).append("\n");
}
}
}
sb.append("\nAdditional Information:\n");
sb.append("Response: ").append(result.getMessage());
sb.append("Request Id: ").append(result.getRequestId());
return sb.toString();
}
public static String getString(TriageResult triageResult) {
StringBuilder sb = new StringBuilder();
sb.append(triageResult.toString());
sb.append("\nAdditional Information:\n");
sb.append("Response: ").append(triageResult.getMessage());
sb.append("Request Id: ").append(triageResult.getRequestId());
return sb.toString();
}
public static String getString(FeedLookupResult feedLookupResult) {
StringBuilder sb = new StringBuilder();
String results = feedLookupResult.toString();
if (StringUtils.isEmpty(results)) {
sb.append("No matching feeds found!");
} else {
sb.append(results);
}
sb.append("\n\nResponse: ").append(feedLookupResult.getMessage());
sb.append("\nRequest Id: ").append(feedLookupResult.getRequestId());
return sb.toString();
}
public static String getString(InstanceDependencyResult dependencyResult) {
StringBuilder sb = new StringBuilder();
String results = dependencyResult.toString();
if (StringUtils.isEmpty(results)) {
sb.append("No dependencies found!");
} else {
sb.append(results);
}
sb.append("\n\nResponse: ").append(dependencyResult.getMessage());
sb.append("\nRequest Id: ").append(dependencyResult.getRequestId());
return sb.toString();
}
public static String getString(SchedulableEntityInstanceResult instances) {
StringBuilder sb = new StringBuilder();
String results = instances.toString();
if (StringUtils.isEmpty(results)) {
sb.append("No sla miss found!");
} else {
sb.append(results);
}
sb.append("\n\nResponse: ").append(instances.getMessage());
sb.append("\nRequest Id: ").append(instances.getRequestId());
return sb.toString();
}
}