/** * 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 Ember from 'ember'; import Constants from 'yarn-ui/constants'; import AbstractRoute from './abstract'; export default AbstractRoute.extend({ model(param) { var id = param.container_id + Constants.PARAM_SEPARATOR + param.filename + Constants.PARAM_SEPARATOR + param.cluster_id; return Ember.RSVP.hash({ containerLog: this.store.findRecord('yarn-app-log', id), containerInfo: { id: param.container_id } }).then(function (hash) { // Just return as its success. return hash; }, function (reason) { if (reason.errors && reason.errors[0]) { // This means HTTP error response was sent by adapter. return reason; } else { // Assume empty response received from server. return { containerInfo: { id: param.container_id }, containerLog: { logs: "", containerID: param.container_id, logFileName: param.filename } }; } }); }, afterModel(model) { // Handle errors and redirect if promise is rejected. if (model.errors && model.errors[0]) { if (parseInt(model.errors[0].status) === 404) { this.replaceWith('/notfound'); } else { this.replaceWith('/error'); } } }, unloadAll() { this.store.unloadAll('yarn-app-log'); } });