yarn-container-log.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /**
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. */
  18. import Ember from 'ember';
  19. import Constants from 'yarn-ui/constants';
  20. export default Ember.Route.extend({
  21. model(param) {
  22. var id = param.node_addr + Constants.PARAM_SEPARATOR + param.container_id +
  23. Constants.PARAM_SEPARATOR + param.filename;
  24. return Ember.RSVP.hash({
  25. containerLog: this.store.findRecord('yarn-container-log', id),
  26. nodeInfo: { id: param.node_id, addr: param.node_addr }
  27. }).then(function(hash) {
  28. // Just return as its success.
  29. return hash;
  30. }, function(reason) {
  31. if (reason.errors && reason.errors[0]) {
  32. // This means HTTP error response was sent by adapter.
  33. return reason;
  34. } else {
  35. // Assume empty response received from server.
  36. return { nodeInfo: { id: param.node_id, addr: param.node_addr },
  37. containerLog: { logs: "", containerID: param.container_id,
  38. logFileName: param.filename}};
  39. }
  40. });
  41. },
  42. afterModel(model) {
  43. // Handle errors and redirect if promise is rejected.
  44. if (model.errors && model.errors[0]) {
  45. if (model.errors[0].status == 404) {
  46. this.replaceWith('/notfound');
  47. } else {
  48. this.replaceWith('/error');
  49. }
  50. }
  51. }
  52. });