You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by gn...@apache.org on 2017/01/27 05:57:13 UTC
ambari git commit: AMBARI-19604. Need to perform sanity checks before
starting the oozie view. (Padma Priya N via gauravn7)
Repository: ambari
Updated Branches:
refs/heads/branch-2.5 9c36025a4 -> 5b1f4fc9c
AMBARI-19604. Need to perform sanity checks before starting the oozie view. (Padma Priya N via gauravn7)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/5b1f4fc9
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/5b1f4fc9
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/5b1f4fc9
Branch: refs/heads/branch-2.5
Commit: 5b1f4fc9cfe1e8d25d5f327c7f81689fce2c185c
Parents: 9c36025
Author: Gaurav Nagar <gr...@gmail.com>
Authored: Fri Jan 27 11:26:18 2017 +0530
Committer: Gaurav Nagar <gr...@gmail.com>
Committed: Fri Jan 27 11:26:43 2017 +0530
----------------------------------------------------------------------
.../main/resources/ui/app/controllers/index.js | 39 +++++++++
.../src/main/resources/ui/app/routes/index.js | 90 +++++++++++++++++++-
.../ui/app/templates/design-loading.hbs | 26 ++++++
.../main/resources/ui/app/templates/index.hbs | 74 ++++++++++++++++
.../main/resources/ui/app/templates/loading.hbs | 26 ------
5 files changed, 227 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/5b1f4fc9/contrib/views/wfmanager/src/main/resources/ui/app/controllers/index.js
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/controllers/index.js b/contrib/views/wfmanager/src/main/resources/ui/app/controllers/index.js
new file mode 100644
index 0000000..f4d93ea
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/controllers/index.js
@@ -0,0 +1,39 @@
+/*
+* 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';
+
+export default Ember.Controller.extend({
+ progressWidth : '10%',
+ serviceChecksComplete : false,
+ issues : Ember.A([]),
+ serviceChecks : Ember.A([
+ {'name':'oozie', 'checkCompleted':false, isAvailable : true, 'displayName' : 'Oozie Test', 'errorMessage' : 'Oozie service check failed'},
+ {'name':'hdfs', 'checkCompleted':false, isAvailable : true, 'displayName' : 'HDFS Test', 'errorMessage' : 'HDFS service check failed'},
+ {'name':'homeDir', 'checkCompleted':false, isAvailable : true, 'displayName' : 'User Home Directory Test', 'errorMessage' : 'User home directory not found'}
+ ]),
+ width : Ember.computed('serviceChecks.@each.checkCompleted','serviceChecks.@each.isAvailable', function(){
+ let width = 10;
+ this.get('serviceChecks').forEach((check)=>{
+ if(check.checkCompleted && check.isAvailable){
+ width += 30;
+ }
+ });
+ return Ember.String.htmlSafe(`${width}%`);
+ })
+
+});
http://git-wip-us.apache.org/repos/asf/ambari/blob/5b1f4fc9/contrib/views/wfmanager/src/main/resources/ui/app/routes/index.js
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/routes/index.js b/contrib/views/wfmanager/src/main/resources/ui/app/routes/index.js
index 23609e9..b9ea770 100644
--- a/contrib/views/wfmanager/src/main/resources/ui/app/routes/index.js
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/routes/index.js
@@ -18,7 +18,93 @@
import Ember from 'ember';
export default Ember.Route.extend({
- beforeModel() {
- this.transitionTo('design');
+ afterModel(){
+ let ooziePromise = this.checkOozie();
+ let hdfsPromise = this.checkHdfs();
+ let homeDirPromise = this.checkUserHome();
+ let serviceChecks = this.controllerFor('index').get('serviceChecks');
+ this.controllerFor('index').get('issues').clear();
+ this.processServiceCheckPromise(ooziePromise, serviceChecks.findBy('name', 'oozie'));
+ this.processServiceCheckPromise(hdfsPromise, serviceChecks.findBy('name', 'hdfs'));
+ this.processServiceCheckPromise(homeDirPromise, serviceChecks.findBy('name', 'homeDir'));
+ Promise.all([ooziePromise, hdfsPromise, homeDirPromise]).then(()=>{
+ this.controllerFor('index').set('serviceChecksComplete', true);
+ Ember.run.later(()=>{
+ this.transitionTo('design');
+ }, 2000);
+ }).catch((errors)=>{
+ this.controllerFor('index').set('serviceChecksComplete', true);
+ this.controllerFor('index').set('errors', errors);
+ });
+ },
+ processServiceCheckPromise(promise, serviceCheck){
+ promise.then(()=>{
+ Ember.set(serviceCheck, 'isAvailable', true);
+ }).catch((e)=>{
+ console.error(e);
+ Ember.set(serviceCheck, 'isAvailable', false);
+ }).finally(()=>{
+ Ember.set(serviceCheck, 'checkCompleted', true);
+ });
+ },
+ checkOozie(){
+ return new Ember.RSVP.Promise((resolve, reject) => {
+ var url = Ember.ENV.API_URL + "/v1/admin/configuration";
+ Ember.$.ajax({
+ url: url,
+ method: "GET",
+ dataType: "text",
+ contentType: "text/plain;charset=utf-8",
+ beforeSend: function(request) {
+ request.setRequestHeader("X-Requested-By", "workflow-designer");
+ },
+ success : function(response){
+ resolve(true);
+ },
+ error : function(response){
+ reject(response);
+ }
+ });
+ });
+ },
+ checkHdfs(){
+ return new Ember.RSVP.Promise((resolve, reject) => {
+ var url = Ember.ENV.API_URL + "/hdfsCheck";
+ Ember.$.ajax({
+ url: url,
+ method: "GET",
+ dataType: "text",
+ contentType: "text/plain;charset=utf-8",
+ beforeSend: function(request) {
+ request.setRequestHeader("X-Requested-By", "workflow-designer");
+ },
+ success : function(response){
+ resolve(true);
+ },
+ error : function(response){
+ reject(response);
+ }
+ });
+ });
+ },
+ checkUserHome(){
+ return new Ember.RSVP.Promise((resolve, reject) => {
+ var url = Ember.ENV.API_URL + "/homeDirCheck";
+ Ember.$.ajax({
+ url: url,
+ method: "GET",
+ dataType: "text",
+ contentType: "text/plain;charset=utf-8",
+ beforeSend: function(request) {
+ request.setRequestHeader("X-Requested-By", "workflow-designer");
+ },
+ success : function(response){
+ resolve(true);
+ },
+ error : function(response){
+ reject(response);
+ }
+ });
+ });
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/5b1f4fc9/contrib/views/wfmanager/src/main/resources/ui/app/templates/design-loading.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/design-loading.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/design-loading.hbs
new file mode 100644
index 0000000..9f4fc79
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/design-loading.hbs
@@ -0,0 +1,26 @@
+{{!
+* 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.
+}}
+<style type="text/css">
+.loading-container {
+ position: relative;
+ top: 200px;
+}
+</style>
+<div class='loading-container'>
+ {{spin-spinner lines=13 length=20 width=10}}
+</div>
http://git-wip-us.apache.org/repos/asf/ambari/blob/5b1f4fc9/contrib/views/wfmanager/src/main/resources/ui/app/templates/index.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/index.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/index.hbs
new file mode 100644
index 0000000..d96be85
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/index.hbs
@@ -0,0 +1,74 @@
+{{!
+* 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.
+}}
+<div class="container">
+ {{#if serviceChecksComplete }}
+ {{#if errors}}
+ <h3>Service checks failed.</h3>
+ {{else}}
+ <h3>Service checks completed.</h3>
+ {{/if}}
+ {{else}}
+ <h3>Service checks in progress.</h3>
+ {{/if}}
+ {{#if errors}}
+ <div class="progress active">
+ <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="10" aria-valuemin="0" aria-valuemax="100" style="width:{{width}}">
+ <span class="sr-only">70% Complete</span>
+ </div>
+ </div>
+ {{else}}
+ <div class="progress progress-striped active">
+ <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="10" aria-valuemin="0" aria-valuemax="100" style="width:{{width}}">
+ <span class="sr-only">70% Complete</span>
+ </div>
+ </div>
+ {{/if}}
+ <ul class="list-group">
+ {{#each serviceChecks as |check|}}
+ <li class="list-group-item">
+ <span>
+ {{#if (and check.isAvailable check.checkCompleted)}}
+ <i class="fa fa-check"></i>
+ {{else if (and (not check.isAvailable) check.checkCompleted)}}
+ <i class="fa fa-remove"></i>
+ {{else if (not check.checkCompleted)}}
+ <i class="fa fa-arrow-right"></i>
+ {{/if}}
+ </span>
+ <span>{{check.displayName}}</span>
+ </li>
+ {{/each}}
+ </ul>
+ {{#if errors}}
+ <div class="">
+ <h3>Issues detected</h3>
+ {{#each serviceChecks as |check|}}
+ {{#if (and (not check.isAvailable) check.checkCompleted)}}
+ {{check.errorMessage}} <br>
+ {{/if}}
+ {{/each}}
+ </div>
+ <div class="">
+ {{#link-to 'design' class="backto-dashboard"}}
+ <button type="button" class="btn btn-default pull-right" title="You can continue to Workflow Designer View. But some functionalities may be unavailable.">
+ <i class="fa fa-arrow-right marginright5"></i> Continue
+ </button>
+ {{/link-to}}
+ </div>
+ {{/if}}
+</div>
http://git-wip-us.apache.org/repos/asf/ambari/blob/5b1f4fc9/contrib/views/wfmanager/src/main/resources/ui/app/templates/loading.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/loading.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/loading.hbs
deleted file mode 100644
index 9f4fc79..0000000
--- a/contrib/views/wfmanager/src/main/resources/ui/app/templates/loading.hbs
+++ /dev/null
@@ -1,26 +0,0 @@
-{{!
-* 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.
-}}
-<style type="text/css">
-.loading-container {
- position: relative;
- top: 200px;
-}
-</style>
-<div class='loading-container'>
- {{spin-spinner lines=13 length=20 width=10}}
-</div>