blob: 680fe8ccdfeeccaf96aa5aec20763a67e086573a [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.
*/
import DS from 'ember-data';
import Converter from 'yarn-ui/utils/converter';
export default DS.JSONAPISerializer.extend({
internalNormalizeSingleResponse(store, primaryModelClass, payload, id) {
var events = payload.events,
appFinishedEvent = events.findBy('id', 'YARN_APPLICATION_FINISHED'),
startedTime = payload.createdtime,
finishedTime = appFinishedEvent? appFinishedEvent.timestamp : Date.now(),
elapsedTime = finishedTime - startedTime,
diagnostics = payload.info.YARN_APPLICATION_DIAGNOSTICS_INFO,
priority = payload.info.YARN_APPLICATION_PRIORITY;
var fixedPayload = {
id: id,
type: primaryModelClass.modelName,
attributes: {
appName: payload.info.YARN_APPLICATION_NAME,
user: payload.info.YARN_APPLICATION_USER,
queue: "N/A",
state: payload.info.YARN_APPLICATION_STATE,
startTime: Converter.timeStampToDate(startedTime),
elapsedTime: elapsedTime,
finishedTime: Converter.timeStampToDate(finishedTime),
finalStatus: payload.info.YARN_APPLICATION_FINAL_STATUS,
progress: 100,
applicationType: payload.info.YARN_APPLICATION_TYPE,
diagnostics: (diagnostics && diagnostics !== 'null')? diagnostics : '',
amContainerLogs: '',
amHostHttpAddress: '',
logAggregationStatus: '',
unmanagedApplication: payload.info.YARN_APPLICATION_UNMANAGED_APPLICATION || 'N/A',
amNodeLabelExpression: payload.configs.YARN_AM_NODE_LABEL_EXPRESSION,
priority: (priority !== undefined)? priority : 'N/A',
allocatedMB: 0,
allocatedVCores: 0,
runningContainers: 0,
memorySeconds: payload.info.YARN_APPLICATION_MEM_METRIC,
vcoreSeconds: payload.info.YARN_APPLICATION_CPU_METRIC,
preemptedResourceMB: 0,
preemptedResourceVCores: 0,
numNonAMContainerPreempted: 0,
numAMContainerPreempted: 0,
clusterUsagePercentage: 0,
queueUsagePercentage: 0,
currentAppAttemptId: payload.info.YARN_APPLICATION_LATEST_APP_ATTEMPT
}
};
return fixedPayload;
},
normalizeSingleResponse(store, primaryModelClass, payload, id/*, requestType*/) {
var p = this.internalNormalizeSingleResponse(store, primaryModelClass, payload, id);
return {data: p};
}
});