You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@eagle.apache.org by ha...@apache.org on 2016/10/19 03:28:04 UTC

[49/50] incubator-eagle git commit: [UI] Improve integeration page

[UI] Improve integeration page

<!--
{% comment %}
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.
{% endcomment %}
-->

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

 - [x] Make sure the PR title is formatted like:
   `[EAGLE-<Jira issue #>] Description of pull request`
 - [x] Make sure tests pass via `mvn clean verify`. (Even better, enable
       Travis-CI on your fork and ensure the whole test matrix passes).
 - [x] Replace `<Jira issue #>` in the title with the actual Jira issue
       number, if there is one.
 - [x] If this contribution is large, please file an Apache
       [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.txt).

---

Author: Hao Chen <ha...@apache.org>

Closes #524 from haoch/ImproveIntegerationPage.


Project: http://git-wip-us.apache.org/repos/asf/incubator-eagle/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-eagle/commit/adc2ba90
Tree: http://git-wip-us.apache.org/repos/asf/incubator-eagle/tree/adc2ba90
Diff: http://git-wip-us.apache.org/repos/asf/incubator-eagle/diff/adc2ba90

Branch: refs/heads/master
Commit: adc2ba900a2d29352e96489ad48addde17bedccf
Parents: c3bde01
Author: Hao Chen <ha...@apache.org>
Authored: Tue Oct 18 19:31:48 2016 +0800
Committer: Hao Chen <ha...@apache.org>
Committed: Tue Oct 18 19:31:48 2016 +0800

----------------------------------------------------------------------
 ...e.alert.app.AlertUnitTopologyAppProvider.xml | 83 +++++++++++---------
 eagle-server/pom.xml                            | 10 +++
 .../app/dev/partials/integration/site.html      | 50 ++++++------
 .../app/dev/public/js/ctrls/integrationCtrl.js  |  8 +-
 eagle-server/ui-build.sh                        |  0
 5 files changed, 87 insertions(+), 64 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/adc2ba90/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/META-INF/providers/org.apache.eagle.alert.app.AlertUnitTopologyAppProvider.xml
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/META-INF/providers/org.apache.eagle.alert.app.AlertUnitTopologyAppProvider.xml b/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/META-INF/providers/org.apache.eagle.alert.app.AlertUnitTopologyAppProvider.xml
index b3e777c..6ef96c7 100644
--- a/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/META-INF/providers/org.apache.eagle.alert.app.AlertUnitTopologyAppProvider.xml
+++ b/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/META-INF/providers/org.apache.eagle.alert.app.AlertUnitTopologyAppProvider.xml
@@ -20,110 +20,123 @@
     <type>AlertUnitTopologyApp</type>
     <name>Alert Unit Topology Application</name>
     <version>0.5.0-incubating</version>
-    <appClass>org.apache.eagle.alert.app.AlertUnitTopologyApp</appClass>
-    <viewPath>/apps/alert</viewPath>
     <configuration>
        <!-- alert topology sizing parameters -->
         <property>
             <name>workers</name>
-            <displayName>workers</displayName>
+            <displayName>Worker Number</displayName>
             <value>1</value>
-            <description>number of topology workers</description>
+            <description>Storm parallelism worker number</description>
+            <required>false</required>
         </property>
         <property>
             <name>topology.numOfSpoutTasks</name>
-            <displayName>topology.numOfSpoutTasks</displayName>
+            <displayName>Source Tasks Number</displayName>
             <value>1</value>
-            <description>number of spout tasks</description>
+            <description>Number of spout tasks</description>
+            <required>false</required>
         </property>
         <property>
             <name>topology.numOfRouterBolts</name>
-            <displayName>topology.numOfRouterBolts</displayName>
+            <displayName>Route Tasks Number</displayName>
             <value>4</value>
-            <description>number of router tasks</description>
+            <description>Number of router tasks</description>
+            <required>false</required>
         </property>
         <property>
             <name>topology.numOfAlertBolts</name>
-            <displayName>topology.numOfAlertBolts</displayName>
+            <displayName>Evaluator Tasks Number</displayName>
             <value>10</value>
-            <description>number of alert tasks</description>
+            <description>Number of alert tasks</description>
+            <required>false</required>
         </property>
         <property>
             <name>topology.numOfPublishTasks</name>
-            <displayName>topology.numOfPublishTasks</displayName>
+            <displayName>Publisher Tasks Number</displayName>
             <value>1</value>
-            <description>number of publish tasks</description>
+            <description>Number of publish tasks</description>
+            <required>false</required>
         </property>
         <property>
             <name>topology.messageTimeoutSecs</name>
-            <displayName>topology.messageTimeoutSecs</displayName>
+            <displayName>Message Timeout Seconds</displayName>
             <value>3600</value>
-            <description>number of tuple timeout in seconds</description>
+            <description>Number of tuple timeout in seconds</description>
+            <required>false</required>
         </property>
 
         <!-- alert spout configuration -->
         <property>
             <name>spout.kafkaBrokerZkQuorum</name>
-            <displayName>spout.kafkaBrokerZkQuorum</displayName>
+            <displayName>Kafka Zookeeper Quorum</displayName>
             <value>localhost:2181</value>
-            <description>zookeeper quorum for spout to consume data</description>
+            <description>Zookeeper quorum of kafka broker for spout to consume data</description>
+            <required>true</required>
         </property>
         <property>
             <name>spout.kafkaBrokerZkBasePath</name>
-            <displayName>spout.kafkaBrokerZkBasePath</displayName>
+            <displayName>Kafka Zookeeper Root</displayName>
             <value>/brokers</value>
-            <description>zk znode path for kafka brokers</description>
+            <description>Zookeeper znode path for kafka brokers</description>
+            <required>false</required>
         </property>
         <property>
             <name>spout.stormKafkaUseSameZkQuorumWithKafkaBroker</name>
-            <displayName>spout.stormKafkaUseSameZkQuorumWithKafkaBroker</displayName>
+            <displayName>Reuse Kafka Zookeeper</displayName>
             <value>true</value>
-            <description>same zookeeper for kafka server and kafka consumer(Storm-Kafka)</description>
+            <description>Use same zookeeper for kafka server and kafka consumer(Storm-Kafka)</description>
+            <required>false</required>
         </property>
         <property>
             <name>spout.stormKafkaTransactionZkPath</name>
-            <displayName>spout.stormKafkaTransactionZkPath</displayName>
+            <displayName>Kafka Transaction ZkPath</displayName>
             <value>/consumers</value>
-            <description>zk path for storm kafka transaction</description>
+            <description>Zookeeper path for storm kafka transaction</description>
+            <required>false</required>
         </property>
         <property>
             <name>spout.stormKafkaEagleConsumer</name>
-            <displayName>spout.stormKafkaEagleConsumer</displayName>
+            <displayName>Kafka Consumer ID</displayName>
             <value>eagle_consumer</value>
-            <description>zookeeper quorum for spout to consume data</description>
+            <description>Zookeeper quorum for spout to consume data</description>
+            <required>true</required>
         </property>
 
         <!-- zk config for alert engine -->
         <property>
             <name>zkConfig.zkQuorum</name>
-            <displayName>zkConfig.zkQuorum</displayName>
+            <displayName>Coordinator Zookeeper Quorum</displayName>
             <value>localhost:2181</value>
-            <description>zk quorum for alert engine</description>
+            <description>Zookeeper quorum for alert engine</description>
+            <required>true</required>
         </property>
         <property>
             <name>zkConfig.zkRoot</name>
-            <displayName>zkConfig.zkRoot</displayName>
+            <displayName>Coordinator Zookeeper Root</displayName>
             <value>/alert</value>
-            <description>zk znode path for alert engine</description>
+            <description>Zookeeper znode path for alert engine</description>
+            <required>false</required>
         </property>
-
         <property>
             <name>metadataService.context</name>
-            <displayName>metadataService.context</displayName>
+            <displayName>Metadata Service Context Path</displayName>
             <value>/rest</value>
-            <description>metadata service context path</description>
+            <description>Metadata service context path</description>
+            <required>false</required>
         </property>
         <property>
             <name>metadataService.host</name>
-            <displayName>metadataService.host</displayName>
+            <displayName>Metadata Service Host</displayName>
             <value>localhost</value>
-            <description>metadata service host</description>
+            <description>Metadata service host</description>
+            <required>true</required>
         </property>
         <property>
             <name>metadataService.port</name>
-            <displayName>metadataService.port</displayName>
+            <displayName>Metadata Service Port</displayName>
             <value>9090</value>
-            <description>metadata service port</description>
+            <description>Metadata service port</description>
+            <required>true</required>
         </property>
     </configuration>
     <docs>

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/adc2ba90/eagle-server/pom.xml
----------------------------------------------------------------------
diff --git a/eagle-server/pom.xml b/eagle-server/pom.xml
index 37ba4f2..07f02ec 100644
--- a/eagle-server/pom.xml
+++ b/eagle-server/pom.xml
@@ -257,6 +257,16 @@
                     <groupId>org.apache.eagle</groupId>
                     <artifactId>eagle-security-oozie-web</artifactId>
                     <version>${project.version}</version>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>org.slf4j</groupId>
+                            <artifactId>slf4j-simple</artifactId>
+                        </exclusion>
+                        <exclusion>
+                            <groupId>org.slf4j</groupId>
+                            <artifactId>slf4j-log4j12</artifactId>
+                        </exclusion>
+                    </exclusions>
                 </dependency>
 
                 <!-- App: hdfs audit log monitoring -->

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/adc2ba90/eagle-server/src/main/webapp/app/dev/partials/integration/site.html
----------------------------------------------------------------------
diff --git a/eagle-server/src/main/webapp/app/dev/partials/integration/site.html b/eagle-server/src/main/webapp/app/dev/partials/integration/site.html
index ce0cddd..5844381 100644
--- a/eagle-server/src/main/webapp/app/dev/partials/integration/site.html
+++ b/eagle-server/src/main/webapp/app/dev/partials/integration/site.html
@@ -17,8 +17,6 @@
   -->
 
 <div class="box-body">
-
-
 	<div class="form-group">
 		<label>Site</label>
 		<input type="text" class="form-control" readonly ng-model="siteName">
@@ -28,7 +26,7 @@
 		<textarea class="form-control" readonly ng-model="site.description" rows="2"></textarea>
 	</div>
 
-	<label>Application</label>
+	<label>Applications</label>
 	<span class="text-danger" ng-if="site.applicationList.length === 0">
 		(<span class="fa fa-exclamation-triangle"></span> Site must install at least one application to start up.)
 	</span>
@@ -84,7 +82,7 @@
 						</button>
 					</div>
 					<div class="btn-group btn-group-xs" ng-if="!app.installed">
-						<button class="btn btn-primary btn-sm" ng-click="installApp(app)">Install Application</button>
+						<button class="btn btn-primary btn-sm" ng-click="installApp(app)">Install</button>
 					</div>
 				</td>
 			</tr>
@@ -106,7 +104,7 @@
 			</div>
 			<div class="modal-body">
 				<ul class="nav nav-tabs">
-					<li><a href="[data-id='intro']" data-toggle="tab" data-id="introTab">Introduction</a></li>
+					<li><a href="[data-id='intro']" data-toggle="tab" data-id="introTab">Summary</a></li>
 					<li><a href="[data-id='install']" data-toggle="tab">Installation</a></li>
 					<li><a href="[data-id='uninstall']" data-toggle="tab">Uninstallation</a></li>
 				</ul>
@@ -207,7 +205,7 @@
 			<div class="modal-body">
 				<ul class="nav nav-tabs">
 					<li><a href="[data-id='guide']" data-toggle="tab" data-id="guideTab">Installation</a></li>
-					<li><a href="[data-id='configuration']" data-toggle="tab" data-id="configTab">Setting</a></li>
+					<li><a href="[data-id='configuration']" data-toggle="tab" data-id="configTab">Settings</a></li>
 				</ul>
 
 				<div class="tab-content">
@@ -231,22 +229,26 @@
 
 					<div class="tab-pane" data-id="configuration">
 						<!-- Environment -->
-						<h3>
+						<h5>
 							<a class="text-primary" data-toggle="collapse" href="[data-id='appEnvironment']" ng-click="collapseCheck()">
 								<span class="fa {{isCollapsed('appEnvironment') ? 'fa-chevron-circle-right' : 'fa-chevron-circle-down'}}"></span>
 								Environment
 							</a>
-						</h3>
+						</h5>
 						<div data-id="appEnvironment" class="collapse in">
 							<div class="form-group">
-								<label>Mode</label>
+								<label>Execution Mode
+									<span class="fa fa-question-circle" uib-tooltip="Application execution mode: LOCAL/CLUSTER"></span>
+								</label>
 								<select class="form-control" ng-model="tmpApp.mode">
-									<option>CLUSTER</option>
-									<option>LOCAL</option>
+									<option value="CLUSTER">Submit as Cluster Mode</option>
+									<option VALUE="LOCAL">Submit as Local Mode</option>
 								</select>
 							</div>
 							<div class="form-group">
-								<label>jar Path</label>
+								<label>Execution File
+									<span class="fa fa-question-circle" uib-tooltip="Full path of Application Jar or Class file on eagle server host"></span>
+								</label>
 								<input type="text" class="form-control" ng-model="tmpApp.jarPath" ng-change="checkJarPath()" />
 							</div>
 						</div>
@@ -254,48 +256,48 @@
 						<hr/>
 
 						<!-- General -->
-						<a class="pull-right" ng-click="configByJSON()">Config By JSON</a>
-						<h3>
+						<a class="pull-right" ng-click="configByJSON()">Import Configs</a>
+						<h5>
 							<a class="text-primary" data-toggle="collapse" href="[data-id='appGeneral']" ng-click="collapseCheck()">
 								<span class="fa {{isCollapsed('appGeneral') ? 'fa-chevron-circle-right' : 'fa-chevron-circle-down'}}"></span>
 								General
 							</a>
-						</h3>
+						</h5>
 						<div data-id="appGeneral" class="collapse in">
 							<span class="text-muted" ng-if="generalFields.length === 0">N/A</span>
 							<div class="form-group" ng-class="{'has-warning': !tmpApp.configuration[field.name]}" ng-repeat="field in generalFields track by $index">
 								<label>
 									{{field.displayName || field.name}}
-									<span class="fa fa-question-circle" ng-if="field.description" uib-tooltip="[ {{field.name}} ] {{field.description}}"></span>
+									<span class="fa fa-question-circle" ng-if="field.description" uib-tooltip="{{field.description}} ({{field.name}})"></span>
 								</label>
 								<input type="text" class="form-control" placeholder="{{field.description}}" ng-model="tmpApp.configuration[field.name]" />
 							</div>
 						</div>
 
 						<!-- Advanced -->
-						<h3>
+						<h5>
 							<a class="text-primary" data-toggle="collapse" href="[data-id='appAdvanced']" ng-click="collapseCheck()">
 								<span class="fa {{isCollapsed('appAdvanced') ? 'fa-chevron-circle-right' : 'fa-chevron-circle-down'}}"></span>
 								Advanced
 							</a>
-						</h3>
+						</h5>
 						<div data-id="appAdvanced" class="collapse in">
 							<span class="text-muted" ng-if="advancedFields.length === 0">N/A</span>
 							<div class="form-group" ng-repeat="field in advancedFields track by $index">
 								<label>
 									{{field.displayName || field.name}}
-									<span class="fa fa-question-circle" ng-if="field.description" uib-tooltip="[ {{field.name}} ] {{field.description}}"></span>
+									<span class="fa fa-question-circle" ng-if="field.description" uib-tooltip="{{field.description}} ({{field.name}})"></span>
 								</label>
 								<input type="text" class="form-control" placeholder="{{field.description}}" ng-model="tmpApp.configuration[field.name]" />
 							</div>
 						</div>
 
-						<h3>
+						<h5>
 							<a class="text-primary" data-toggle="collapse" href="[data-id='appCustomize']" ng-click="collapseCheck()">
 								<span class="fa {{isCollapsed('appCustomize') ? 'fa-chevron-circle-right' : 'fa-chevron-circle-down'}}"></span>
-								Customize
+								Custom
 							</a>
-						</h3>
+						</h5>
 						<div data-id="appCustomize" class="collapse in">
 							<div class="form-group" ng-class="{'has-warning': !tmpApp.configuration[field.name]}" ng-repeat="field in customizeFields track by $index">
 								<label>
@@ -304,10 +306,8 @@
 								</label>
 								<input type="text" class="form-control" placeholder="{{field.description}}" ng-model="tmpApp.configuration[field.name]" />
 							</div>
-							<a ng-click="newField()">+ New Field</a>
+							<a ng-click="newField()">+ Add Property</a>
 						</div>
-
-
 					</div>
 				</div>
 			</div>

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/adc2ba90/eagle-server/src/main/webapp/app/dev/public/js/ctrls/integrationCtrl.js
----------------------------------------------------------------------
diff --git a/eagle-server/src/main/webapp/app/dev/public/js/ctrls/integrationCtrl.js b/eagle-server/src/main/webapp/app/dev/public/js/ctrls/integrationCtrl.js
index a26810c..988064c 100644
--- a/eagle-server/src/main/webapp/app/dev/public/js/ctrls/integrationCtrl.js
+++ b/eagle-server/src/main/webapp/app/dev/public/js/ctrls/integrationCtrl.js
@@ -150,20 +150,20 @@
 		// =================== Fields ===================
 		$scope.newField = function () {
 			UI.fieldConfirm({
-				title: "New Field"
+				title: "New Property"
 			}, null, [{
 				field: "name",
-				name: "Field Name"
+				name: "Property Name"
 			}, {
 				field: "value",
-				name: "Field Value",
+				name: "Property Value",
 				optional: true
 			}])(function (entity, closeFunc, unlock) {
 				var fullList = $scope.generalFields.concat($scope.advancedFields).concat($scope.customizeFields);
 				if(common.array.find(entity.name, fullList, "field")) {
 					$.dialog({
 						title: "OPS",
-						content: "Field already exist!"
+						content: "Property already exist!"
 					});
 
 					unlock();

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/adc2ba90/eagle-server/ui-build.sh
----------------------------------------------------------------------
diff --git a/eagle-server/ui-build.sh b/eagle-server/ui-build.sh
old mode 100644
new mode 100755