You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jl...@apache.org on 2016/06/27 23:37:00 UTC

[34/34] ambari git commit: AMBARI-17355 & AMBARI-17354: POC: FE & BE changes for first class support for Yarn hosted services

AMBARI-17355 & AMBARI-17354: POC: FE & BE changes for first class support for Yarn hosted services


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

Branch: refs/heads/branch-yarnapps-dev
Commit: b88db3cc005dd5b98a4569533db6573518a94a82
Parents: 270c23f
Author: Jayush Luniya <jl...@hortonworks.com>
Authored: Mon Jun 27 16:36:09 2016 -0700
Committer: Jayush Luniya <jl...@hortonworks.com>
Committed: Mon Jun 27 16:36:09 2016 -0700

----------------------------------------------------------------------
 .../ambariViews/CreateViewInstanceCtrl.js       |     19 +-
 .../controllers/ambariViews/ViewsEditCtrl.js    |     28 +-
 .../remoteClusters/RemoteClustersEditCtrl.js    |     13 +-
 .../admin-web/app/scripts/services/Cluster.js   |      2 +-
 .../app/scripts/services/RemoteCluster.js       |      2 +-
 .../ui/admin-web/app/scripts/services/View.js   |      4 +-
 .../admin-web/app/views/ambariViews/create.html |      4 +-
 .../admin-web/app/views/ambariViews/edit.html   |      4 +-
 .../remoteClusters/editRemoteClusterPage.html   |      2 +-
 .../unit/controllers/CreateViewInstanceCtrl.js  |      4 +-
 ambari-agent/pom.xml                            |      2 +-
 ambari-client/python-client/pom.xml             |      2 +-
 ambari-logsearch/pom.xml                        |      2 +-
 ambari-server/pom.xml                           |      3 +-
 ambari-server/src/main/assemblies/server.xml    |      5 +
 .../eventdb/webservice/WorkflowJsonService.java |      1 -
 .../ambari/server/ClusterNotFoundException.java |      4 +
 .../ServiceComponentNotFoundException.java      |      4 +-
 .../server/ServiceGroupNotFoundException.java   |     29 +
 .../ambari/server/agent/HeartbeatMonitor.java   |      8 +-
 .../ambari/server/agent/HeartbeatProcessor.java |      2 +-
 .../resources/ClusterResourceDefinition.java    |      1 +
 .../resources/ResourceInstanceFactoryImpl.java  |      4 +
 .../ServiceGroupResourceDefinition.java         |     54 +
 .../server/api/rest/BootStrapResource.java      |      1 -
 .../ambari/server/api/rest/HealthCheck.java     |      1 -
 .../api/rest/KdcServerReachabilityCheck.java    |      1 -
 .../api/services/AbstractVersionService.java    |    352 +
 .../server/api/services/ActionService.java      |      6 +-
 .../api/services/ActiveWidgetLayoutService.java |      4 +-
 .../api/services/AlertDefinitionService.java    |      6 +-
 .../server/api/services/AlertGroupService.java  |      4 +-
 .../api/services/AlertHistoryService.java       |      4 +-
 .../server/api/services/AlertNoticeService.java |      4 +-
 .../server/api/services/AlertService.java       |      4 +-
 .../server/api/services/AlertTargetService.java |      6 +-
 .../server/api/services/AmbariMetaInfo.java     |     13 +-
 .../api/services/AmbariPrivilegeService.java    |      5 +-
 .../ambari/server/api/services/BaseService.java |     17 +
 .../server/api/services/BlueprintService.java   |      6 +-
 .../ClusterKerberosDescriptorService.java       |      4 +-
 .../api/services/ClusterPrivilegeService.java   |      4 +-
 .../server/api/services/ClusterService.java     |     71 +-
 .../services/ClusterStackVersionService.java    |      6 +-
 .../CompatibleRepositoryVersionService.java     |      6 +-
 .../server/api/services/ComponentService.java   |      4 +-
 .../server/api/services/ConfigGroupService.java |      4 +-
 .../api/services/ConfigurationService.java      |      6 +-
 .../server/api/services/CredentialService.java  |      4 +-
 .../ambari/server/api/services/FeedService.java |      8 +-
 .../api/services/GroupPrivilegeService.java     |      4 +-
 .../server/api/services/GroupService.java       |     10 +-
 .../api/services/HostComponentService.java      |      6 +-
 .../services/HostKerberosIdentityService.java   |      4 +-
 .../ambari/server/api/services/HostService.java |     18 +-
 .../api/services/HostStackVersionService.java   |      6 +-
 .../server/api/services/InstanceService.java    |      8 +-
 .../ambari/server/api/services/JobService.java  |      6 +-
 .../api/services/KerberosDescriptorService.java |      6 +-
 .../ambari/server/api/services/KeyService.java  |      1 -
 .../api/services/LdapSyncEventService.java      |      6 +-
 .../server/api/services/LoggingService.java     |      9 +-
 .../server/api/services/LogoutService.java      |      1 -
 .../server/api/services/MemberService.java      |      4 +-
 .../api/services/OperatingSystemService.java    |      6 +-
 .../server/api/services/PermissionService.java  |      8 +-
 .../api/services/PersistKeyValueService.java    |      1 -
 .../api/services/PreUpgradeCheckService.java    |      4 +-
 .../server/api/services/PrivilegeService.java   |      5 +
 .../api/services/RecommendationService.java     |     71 -
 .../api/services/RemoteClustersService.java     |      6 +-
 .../server/api/services/RepositoryService.java  |      4 +-
 .../api/services/RepositoryVersionService.java  |      6 +-
 .../api/services/RequestScheduleService.java    |      4 +-
 .../server/api/services/RequestService.java     |     12 +-
 .../api/services/RoleAuthorizationService.java  |      9 +-
 .../server/api/services/RootServiceService.java |      8 +-
 .../services/ServiceConfigVersionService.java   |      4 +-
 .../api/services/ServiceGroupService.java       |    192 +
 .../server/api/services/ServiceService.java     |     14 +-
 .../server/api/services/SettingService.java     |      6 +-
 .../server/api/services/StacksService.java      |     79 +-
 .../server/api/services/StageService.java       |      6 +-
 .../api/services/TargetClusterService.java      |      6 +-
 .../server/api/services/TaskAttemptService.java |      4 +-
 .../ambari/server/api/services/TaskService.java |      4 +-
 .../api/services/UpgradeGroupService.java       |      6 +-
 .../server/api/services/UpgradeItemService.java |      6 +-
 .../server/api/services/UpgradeService.java     |      6 +-
 .../api/services/UpgradeSummaryService.java     |      4 +-
 .../api/services/UserAuthorizationService.java  |      4 +-
 .../api/services/UserPrivilegeService.java      |      4 +-
 .../ambari/server/api/services/UserService.java |     12 +-
 .../ambari/server/api/services/V1Service.java   |     44 +
 .../ambari/server/api/services/V2Service.java   |     44 +
 .../server/api/services/ValidationService.java  |     70 -
 .../api/services/VersionDefinitionService.java  |      8 +-
 .../api/services/ViewDataMigrationService.java  |      4 +-
 .../ViewExternalSubResourceService.java         |      4 +-
 .../api/services/ViewInstanceService.java       |      8 +-
 .../api/services/ViewPermissionService.java     |      4 +-
 .../api/services/ViewPrivilegeService.java      |      4 +-
 .../ambari/server/api/services/ViewService.java |      8 +-
 .../api/services/ViewSubResourceService.java    |      4 +-
 .../server/api/services/ViewUrlsService.java    |      6 +-
 .../server/api/services/ViewVersionService.java |      8 +-
 .../api/services/WidgetLayoutService.java       |      4 +-
 .../server/api/services/WidgetService.java      |      4 +-
 .../server/api/services/WorkflowService.java    |      6 +-
 .../stackadvisor/StackAdvisorHelper.java        |     11 +-
 .../ComponentLayoutRecommendationCommand.java   |      5 +-
 .../ComponentLayoutValidationCommand.java       |      5 +-
 ...rationDependenciesRecommendationCommand.java |      5 +-
 .../ConfigurationRecommendationCommand.java     |      6 +-
 .../ConfigurationValidationCommand.java         |      5 +-
 .../commands/StackAdvisorCommand.java           |      6 +-
 .../ambari/server/api/util/ApiVersion.java      |     31 +
 .../server/configuration/Configuration.java     |      7 +
 .../AmbariCustomCommandExecutionHelper.java     |      2 +-
 .../controller/AmbariManagementController.java  |     32 +
 .../AmbariManagementControllerImpl.java         |    376 +-
 .../ambari/server/controller/AmbariServer.java  |      7 +-
 .../server/controller/ControllerModule.java     |     11 +
 .../controller/ResourceProviderFactory.java     |      5 +
 .../ServiceComponentHostResponse.java           |     50 +-
 .../controller/ServiceComponentRequest.java     |     30 +-
 .../controller/ServiceComponentResponse.java    |     21 +
 .../server/controller/ServiceGroupRequest.java  |    152 +
 .../server/controller/ServiceGroupResponse.java |    239 +
 .../server/controller/ServiceRequest.java       |     36 +-
 .../server/controller/ServiceResponse.java      |     34 +-
 .../AbstractControllerResourceProvider.java     |      2 +
 .../internal/ComponentResourceProvider.java     |    128 +-
 .../internal/DashHttpPropertyRequest.java       |     46 +
 .../internal/HostComponentResourceProvider.java |      8 +
 .../QuickLinkArtifactResourceProvider.java      |     20 +-
 .../internal/RemoteClusterResourceProvider.java |     35 +-
 .../internal/ServiceGroupResourceProvider.java  |    759 +
 .../internal/ServiceResourceProvider.java       |     40 +-
 .../internal/ViewInstanceResourceProvider.java  |      2 +-
 .../servicegroup/cache/ServiceGroupCache.java   |    124 +
 .../cache/ServiceGroupCacheEntryFactory.java    |    102 +
 .../cache/ServiceGroupCacheKey.java             |     55 +
 .../cache/ServiceGroupCacheProvider.java        |    114 +
 .../cache/ServiceGroupCacheValue.java           |    135 +
 .../ambari/server/controller/spi/Resource.java  |      2 +
 .../controller/utilities/DatabaseChecker.java   |     24 +-
 .../ambari/server/events/AmbariEvent.java       |     10 +
 .../events/ServiceComponentInstalledEvent.java  |      4 +-
 .../ServiceComponentUninstalledEvent.java       |      5 +-
 .../ambari/server/events/ServiceEvent.java      |     30 +-
 .../ambari/server/events/ServiceGroupEvent.java |     49 +
 .../events/ServiceGroupInstalledEvent.java      |     46 +
 .../server/events/ServiceGroupRemovedEvent.java |     46 +
 .../server/events/ServiceInstalledEvent.java    |      4 +-
 .../server/events/ServiceRemovedEvent.java      |      4 +-
 .../server/orm/dao/ClusterServiceGroupDAO.java  |     93 +
 .../server/orm/dao/RemoteAmbariClusterDAO.java  |     13 +
 .../orm/entities/ClusterConfigEntity.java       |     11 +
 .../server/orm/entities/ClusterEntity.java      |     11 +
 .../orm/entities/ClusterServiceEntity.java      |     22 +
 .../orm/entities/ClusterServiceGroupEntity.java |    153 +
 .../entities/ClusterServiceGroupEntityPK.java   |     71 +
 .../orm/entities/RemoteAmbariClusterEntity.java |      8 +-
 .../ServiceComponentDesiredStateEntity.java     |     10 +
 .../server/orm/entities/ViewInstanceEntity.java |      8 +-
 .../servicegroup/ServiceGroupServerAction.java  |     91 +
 .../YarnServiceGroupServerAction.java           |    171 +
 .../org/apache/ambari/server/state/Cluster.java |     42 +-
 .../apache/ambari/server/state/Clusters.java    |      8 +
 .../org/apache/ambari/server/state/Config.java  |      5 +
 .../apache/ambari/server/state/ConfigImpl.java  |     16 +
 .../org/apache/ambari/server/state/Service.java |      4 +
 .../ambari/server/state/ServiceComponent.java   |      8 +
 .../server/state/ServiceComponentHost.java      |     12 +
 .../server/state/ServiceComponentImpl.java      |     79 +-
 .../ambari/server/state/ServiceFactory.java     |      6 +-
 .../ambari/server/state/ServiceGroup.java       |     79 +
 .../server/state/ServiceGroupFactory.java       |     35 +
 .../ambari/server/state/ServiceGroupImpl.java   |    378 +
 .../apache/ambari/server/state/ServiceImpl.java |     43 +-
 .../apache/ambari/server/state/StackInfo.java   |     34 +-
 .../server/state/cluster/ClusterImpl.java       |    236 +-
 .../server/state/cluster/ClustersImpl.java      |     16 +
 .../state/configgroup/ConfigGroupImpl.java      |      1 +
 .../svccomphost/ServiceComponentHostImpl.java   |     17 +-
 .../ambari/server/topology/AmbariContext.java   |      4 +-
 .../server/upgrade/UpgradeCatalog150.java       |      7 +-
 .../server/upgrade/UpgradeCatalog240.java       |     55 +-
 .../apache/ambari/server/utils/MapUtils.java    |     45 +
 .../view/RemoteAmbariClusterRegistry.java       |     12 +-
 .../ambari/server/view/ViewContextImpl.java     |      2 +-
 .../apache/ambari/server/view/ViewRegistry.java |     18 +-
 .../main/resources/Ambari-DDL-Derby-CREATE.sql  |     16 +-
 .../main/resources/Ambari-DDL-MySQL-CREATE.sql  |     17 +-
 .../main/resources/Ambari-DDL-Oracle-CREATE.sql |     17 +-
 .../resources/Ambari-DDL-Postgres-CREATE.sql    |     17 +-
 .../Ambari-DDL-Postgres-EMBEDDED-CREATE.sql     |     18 +-
 .../resources/Ambari-DDL-SQLAnywhere-CREATE.sql |     17 +-
 .../resources/Ambari-DDL-SQLServer-CREATE.sql   |     17 +-
 .../src/main/resources/META-INF/persistence.xml |      1 +
 ambari-server/src/main/resources/ambari.repo    |      8 +
 ambari-server/src/main/resources/app.js         | 219702 ++++++++++++++++
 .../src/main/resources/componentsMap.dat        |     12 +
 .../src/main/resources/key_properties.json      |      5 +
 .../src/main/resources/properties.json          |     23 +-
 .../stacks/HDP/2.4/services/CFMON/metainfo.xml  |     43 +
 .../stacks/HDP/2.4/services/NIFI/metainfo.xml   |     37 +
 .../server/agent/HeartbeatProcessorTest.java    |     24 +-
 .../server/agent/TestHeartbeatHandler.java      |     22 +-
 .../server/agent/TestHeartbeatMonitor.java      |     10 +-
 .../server/api/services/ActionServiceTest.java  |      2 +
 .../services/ActiveWidgetLayoutServiceTest.java |      3 +-
 .../server/api/services/AmbariMetaInfoTest.java |      2 +-
 .../api/services/BlueprintServiceTest.java      |      4 +-
 .../ClusterKerberosDescriptorServiceTest.java   |      3 +-
 .../services/ClusterPrivilegeServiceTest.java   |      3 +-
 .../server/api/services/ClusterServiceTest.java |      3 +-
 .../ClusterStackVersionServiceTest.java         |      3 +-
 .../api/services/ComponentServiceTest.java      |      3 +-
 .../api/services/ConfigGroupServiceTest.java    |      3 +-
 .../api/services/ConfigurationServiceTest.java  |      3 +-
 .../api/services/CredentialServiceTest.java     |      3 +-
 .../server/api/services/FeedServiceTest.java    |      2 +
 .../api/services/GroupPrivilegeServiceTest.java |      3 +-
 .../server/api/services/GroupServiceTest.java   |      5 +
 .../api/services/HostComponentServiceTest.java  |      3 +-
 .../HostKerberosIdentityServiceTest.java        |      3 +-
 .../server/api/services/HostServiceTest.java    |      3 +-
 .../services/HostStackVersionServiceTest.java   |      3 +-
 .../api/services/InstanceServiceTest.java       |      3 +-
 .../server/api/services/JobServiceTest.java     |      3 +-
 .../api/services/LdapSyncEventServiceTest.java  |      3 +-
 .../server/api/services/MemberServiceTest.java  |      3 +-
 .../api/services/PermissionServiceTest.java     |      2 +
 .../services/PreUpgradeCheckServiceTest.java    |      3 +-
 .../api/services/PrivilegeServiceTest.java      |      2 +
 .../api/services/RecommendationServiceTest.java |      7 +-
 .../api/services/RepositoryServiceTest.java     |      3 +-
 .../services/RoleAuthorizationServiceTest.java  |      2 +
 .../api/services/RootServiceServiceTest.java    |      2 +
 .../server/api/services/ServiceServiceTest.java |      5 +-
 .../server/api/services/SettingServiceTest.java |      2 +
 .../server/api/services/StacksServiceTest.java  |      2 +
 .../api/services/TargetClusterServiceTest.java  |      2 +
 .../api/services/TaskAttemptServiceTest.java    |      3 +-
 .../api/services/UpgradeItemServiceTest.java    |      3 +-
 .../services/UserAuthorizationServiceTest.java  |      5 +-
 .../api/services/UserPrivilegeServiceTest.java  |      5 +-
 .../server/api/services/UserServiceTest.java    |      5 +
 .../api/services/ValidationServiceTest.java     |      7 +-
 .../services/ViewDataMigrationServiceTest.java  |      3 +-
 .../ViewExternalSubResourceServiceTest.java     |      3 +-
 .../api/services/ViewPermissionServiceTest.java |      3 +-
 .../services/ViewSubResourceServiceTest.java    |      7 +-
 .../api/services/WorkflowServiceTest.java       |      3 +-
 .../ConfigurationRecommendationCommandTest.java |      3 +-
 .../commands/StackAdvisorCommandTest.java       |      3 +-
 .../creator/ServiceEventCreatorTest.java        |      3 +
 .../configuration/RecoveryConfigHelperTest.java |     12 +-
 .../AmbariCustomCommandExecutionHelperTest.java |      2 +-
 .../AmbariManagementControllerImplTest.java     |      4 +-
 .../AmbariManagementControllerTest.java         |    288 +-
 .../BackgroundCustomCommandExecutionTest.java   |      2 +-
 ...hYarnCapacitySchedulerReleaseConfigTest.java |      2 +-
 .../internal/ComponentResourceProviderTest.java |     36 +-
 .../internal/JMXHostProviderTest.java           |      2 +-
 .../internal/ServiceResourceProviderTest.java   |      4 +-
 .../UpgradeResourceProviderHDP22Test.java       |      2 +-
 .../internal/UpgradeResourceProviderTest.java   |      4 +-
 .../UpgradeSummaryResourceProviderTest.java     |      2 +-
 .../UserPrivilegeResourceProviderTest.java      |      2 +-
 .../ViewInstanceResourceProviderTest.java       |      4 +-
 .../GeneralServiceCalculatedStateTest.java      |      2 +-
 .../apache/ambari/server/events/EventsTest.java |      2 +-
 .../HostVersionOutOfSyncListenerTest.java       |      6 +-
 .../apache/ambari/server/orm/OrmTestHelper.java |      4 +-
 .../authorization/AuthorizationHelperTest.java  |      2 +-
 .../ComponentVersionCheckActionTest.java        |      2 +-
 .../upgrades/ConfigureActionTest.java           |      2 +-
 .../upgrades/UpgradeActionTest.java             |      2 +-
 .../server/state/ServiceComponentTest.java      |      2 +-
 .../apache/ambari/server/state/ServiceTest.java |     18 +-
 .../ambari/server/state/UpgradeHelperTest.java  |     20 +-
 .../state/alerts/AlertEventPublisherTest.java   |      2 +-
 .../state/alerts/InitialAlertEventTest.java     |      2 +-
 .../state/cluster/ClusterDeadlockTest.java      |      2 +-
 .../server/state/cluster/ClusterImplTest.java   |      4 +-
 .../server/state/cluster/ClusterTest.java       |     44 +-
 .../state/cluster/ClustersDeadlockTest.java     |      2 +-
 .../server/state/cluster/ClustersTest.java      |      2 +-
 .../ConcurrentServiceConfigVersionTest.java     |      2 +-
 ...omponentHostConcurrentWriteDeadlockTest.java |      4 +-
 .../svccomphost/ServiceComponentHostTest.java   |      2 +-
 .../server/upgrade/UpgradeCatalog240Test.java   |     24 +-
 .../ambari/server/utils/StageUtilsTest.java     |      2 +-
 .../ambari/server/view/ViewRegistryTest.java    |      2 +-
 ambari-shell/ambari-python-shell/pom.xml        |      2 +-
 .../ambari/view/ViewInstanceDefinition.java     |      6 +-
 ambari-web/app/assets/img/accumulo-color.png    |    Bin 0 -> 9714 bytes
 .../app/assets/img/assemblies-background.png    |    Bin 0 -> 21801 bytes
 ambari-web/app/assets/img/assemblies-banner.jpg |    Bin 0 -> 94082 bytes
 ambari-web/app/assets/img/cfmon-color.png       |    Bin 0 -> 35895 bytes
 ambari-web/app/assets/img/falcon-color.png      |    Bin 0 -> 25897 bytes
 ambari-web/app/assets/img/hbase-color.png       |    Bin 0 -> 8741 bytes
 ambari-web/app/assets/img/jenkins-color.png     |    Bin 0 -> 26899 bytes
 ambari-web/app/assets/img/kafka-color.png       |    Bin 0 -> 13520 bytes
 ambari-web/app/assets/img/memcache-color.png    |    Bin 0 -> 9067 bytes
 ambari-web/app/assets/img/metron-color.png      |    Bin 0 -> 13917 bytes
 ambari-web/app/assets/img/nifi-color.png        |    Bin 0 -> 21756 bytes
 ambari-web/app/assets/img/solr-color.png        |    Bin 0 -> 23684 bytes
 ambari-web/app/assets/img/spark-color.png       |    Bin 0 -> 15013 bytes
 ambari-web/app/assets/img/sqoop-color.png       |    Bin 0 -> 16264 bytes
 ambari-web/app/assets/img/storm-color.png       |    Bin 0 -> 30380 bytes
 ambari-web/app/assets/img/zookeeper-color.png   |    Bin 0 -> 38773 bytes
 ambari-web/app/assets/licenses/NOTICE.txt       |      3 +
 ambari-web/app/assets/test/tests.js             |      6 +
 ambari-web/app/controllers.js                   |     11 +
 ambari-web/app/controllers/application.js       |      7 +-
 .../controllers/global/cluster_controller.js    |     15 +-
 .../global/errors_handler_controller.js         |      2 +-
 .../app/controllers/global/update_controller.js |     13 +-
 .../assemblies/assemblies_set_controller.js     |    150 +
 .../categories/category_controller.js           |     25 +
 .../main/assemblies/categories_controller.js    |     25 +
 .../collections/collection_controller.js        |     25 +
 .../main/assemblies/collections_controller.js   |     25 +
 .../service_groups/configs_controller.js        |     33 +
 .../service_groups/detailed_info_controller.js  |     38 +
 .../service_groups/service_group_controller.js  |     53 +
 .../service_groups/summary_controller.js        |     28 +
 .../assemblies/service_groups_controller.js     |     25 +
 .../controllers/main/assemblies_controller.js   |    233 +
 ambari-web/app/controllers/main/dashboard.js    |      8 +-
 ambari-web/app/controllers/main/service.js      |    136 +-
 .../controllers/main/service/info/configs.js    |      6 +-
 .../controllers/main/service/info/summary.js    |      2 +-
 .../service/widgets/create/wizard_controller.js |      2 +-
 ambari-web/app/mappers.js                       |      1 +
 .../app/mappers/components_state_mapper.js      |     15 +-
 ambari-web/app/mappers/service_group_mapper.js  |    122 +
 ambari-web/app/mappers/service_mapper.js        |     12 +-
 .../app/mappers/service_metrics_mapper.js       |     12 +-
 ambari-web/app/messages.js                      |     60 +-
 .../app/mixins/common/widgets/widget_section.js |      7 +-
 ambari-web/app/models.js                        |      4 +
 ambari-web/app/models/app_store/store_app.js    |    268 +
 .../app/models/app_store/store_category.js      |     37 +
 .../app/models/app_store/store_collection.js    |     31 +
 ambari-web/app/models/service.js                |     29 +-
 ambari-web/app/models/service_group.js          |    270 +
 ambari-web/app/router.js                        |      7 +
 ambari-web/app/routes/main.js                   |    216 +-
 ambari-web/app/styles/app_store.less            |    811 +
 ambari-web/app/styles/application.less          |     21 +
 ambari-web/app/templates/application.hbs        |      2 +-
 ambari-web/app/templates/common/collapsible.hbs |     21 +
 ambari-web/app/templates/main/assemblies.hbs    |    107 +
 .../main/assemblies/active_store_app.hbs        |     42 +
 .../app/templates/main/assemblies/apps_row.hbs  |     45 +
 .../main/assemblies/categories/category.hbs     |     32 +
 .../main/assemblies/collections/collection.hbs  |     30 +
 .../main/assemblies/deploy_store_app.hbs        |     25 +
 .../main/assemblies/deploy_store_app/config.hbs |     30 +
 .../deploy_store_app_footer.hbs                 |     44 +
 .../deploy_store_app_header.hbs                 |     26 +
 .../main/assemblies/service_groups/configs.hbs  |     27 +
 .../assemblies/service_groups/detailed_info.hbs |    114 +
 .../main/assemblies/service_groups/menu.hbs     |     25 +
 .../assemblies/service_groups/service_group.hbs |     38 +
 .../main/assemblies/service_groups/summary.hbs  |     66 +
 .../main/assemblies/store_app_block.hbs         |     41 +
 ambari-web/app/templates/main/dashboard.hbs     |     34 +-
 ambari-web/app/templates/main/service.hbs       |     18 +-
 .../main/service/all_services_actions.hbs       |     36 +-
 ambari-web/app/templates/main/service/item.hbs  |      2 +-
 ambari-web/app/utils/ajax/ajax.js               |     20 +
 ambari-web/app/utils/handlebars_helpers.js      |      9 +-
 ambari-web/app/utils/misc.js                    |      6 +-
 ambari-web/app/views.js                         |     19 +
 ambari-web/app/views/common/collapsible_view.js |     84 +
 .../app/views/common/helpers/nl2br_view.js      |     31 +
 .../main/assemblies/active_store_app_view.js    |     56 +
 .../app/views/main/assemblies/apps_row_view.js  |     89 +
 .../main/assemblies/categories/category_view.js |     25 +
 .../views/main/assemblies/categories_view.js    |     23 +
 .../assemblies/collections/collection_view.js   |     25 +
 .../views/main/assemblies/collections_view.js   |     23 +
 .../deploy_store_app/deploy_store_app_view.js   |     62 +
 .../assemblies/service_groups/configs_view.js   |     25 +
 .../service_groups/detailed_info_view.js        |     25 +
 .../main/assemblies/service_groups/menu_view.js |     50 +
 .../service_groups/service_group_view.js        |     25 +
 .../assemblies/service_groups/summary_view.js   |    186 +
 .../main/assemblies/service_groups_view.js      |     23 +
 .../main/assemblies/store_app_block_view.js     |     82 +
 ambari-web/app/views/main/assemblies_view.js    |     29 +
 ambari-web/app/views/main/dashboard.js          |      3 +
 ambari-web/app/views/main/menu.js               |     17 +-
 .../views/main/service/all_services_actions.js  |     29 +
 .../app/views/main/service/info/summary.js      |      4 +-
 ambari-web/app/views/main/service/item.js       |     15 +-
 ambari-web/app/views/main/service/menu.js       |     96 +-
 .../service/widgets/create/expression_view.js   |      2 +-
 ambari-web/config.coffee                        |      6 +-
 .../global/update_controller_test.js            |      2 +-
 .../assemblies_set_controller_test.js           |     35 +
 .../main/assemblies_controller_test.js          |     35 +
 .../test/controllers/main/service_test.js       |    159 +-
 ambari-web/test/models/service_group_test.js    |     47 +
 .../assemblies/active_store_app_view_test.js    |     29 +
 .../views/main/assemblies/apps_row_view_test.js |     39 +
 .../assemblies/store_app_block_view_test.js     |     47 +
 .../views/main/service/info/summary_test.js     |      4 +-
 ambari-web/vendor/scripts/highlight.pack.js     |      2 +
 ambari-web/vendor/styles/highlight.css          |     99 +
 contrib/views/hive-next/pom.xml                 |    369 +
 .../apache/ambari/view/hive2/BaseService.java   |     54 +
 .../ambari/view/hive2/ConnectionDelegate.java   |     40 +
 .../ambari/view/hive2/ConnectionFactory.java    |    131 +
 .../ambari/view/hive2/ConnectionSystem.java     |    100 +
 .../apache/ambari/view/hive2/HelpService.java   |    118 +
 .../view/hive2/HiveJdbcConnectionDelegate.java  |    144 +
 .../apache/ambari/view/hive2/HiveViewImpl.java  |     50 +
 .../ambari/view/hive2/PropertyValidator.java    |     98 +
 .../org/apache/ambari/view/hive2/TestBean.java  |     36 +
 .../view/hive2/actor/AsyncJdbcConnector.java    |    191 +
 .../view/hive2/actor/AsyncQueryExecutor.java    |     92 +
 .../ambari/view/hive2/actor/DeathWatch.java     |     54 +
 .../view/hive2/actor/GetResultHolder.java       |     47 +
 .../ambari/view/hive2/actor/HiveActor.java      |     50 +
 .../ambari/view/hive2/actor/JdbcConnector.java  |    305 +
 .../ambari/view/hive2/actor/LogAggregator.java  |    109 +
 .../view/hive2/actor/OperationController.java   |    438 +
 .../view/hive2/actor/ResultSetIterator.java     |    219 +
 .../view/hive2/actor/SyncJdbcConnector.java     |    174 +
 .../ambari/view/hive2/actor/YarnAtsParser.java  |     32 +
 .../view/hive2/actor/message/AdvanceCursor.java |     32 +
 .../hive2/actor/message/AssignResultSet.java    |     48 +
 .../hive2/actor/message/AssignStatement.java    |     46 +
 .../view/hive2/actor/message/AsyncJob.java      |     52 +
 .../view/hive2/actor/message/Connect.java       |     56 +
 .../view/hive2/actor/message/CursorReset.java   |     22 +
 .../ambari/view/hive2/actor/message/DDLJob.java |     73 +
 .../view/hive2/actor/message/ExecuteJob.java    |     38 +
 .../view/hive2/actor/message/ExecuteQuery.java  |     23 +
 .../view/hive2/actor/message/FetchError.java    |     42 +
 .../view/hive2/actor/message/FetchResult.java   |     42 +
 .../actor/message/GetColumnMetadataJob.java     |     60 +
 .../view/hive2/actor/message/GetMoreLogs.java   |     22 +
 .../view/hive2/actor/message/HiveJob.java       |     63 +
 .../view/hive2/actor/message/HiveMessage.java   |     53 +
 .../actor/message/JobExecutionCompleted.java    |     21 +
 .../view/hive2/actor/message/JobRejected.java   |     44 +
 .../view/hive2/actor/message/JobSubmitted.java  |     38 +
 .../actor/message/LogAggregationFinished.java   |     21 +
 .../view/hive2/actor/message/RegisterActor.java |     34 +
 .../view/hive2/actor/message/ResetCursor.java   |     22 +
 .../view/hive2/actor/message/ResultReady.java   |     47 +
 .../actor/message/StartLogAggregation.java      |     21 +
 .../view/hive2/actor/message/SyncJob.java       |     27 +
 .../actor/message/job/AsyncExecutionFailed.java |     46 +
 .../actor/message/job/ExecutionFailed.java      |     31 +
 .../view/hive2/actor/message/job/Failure.java   |     37 +
 .../hive2/actor/message/job/FetchFailed.java    |     31 +
 .../view/hive2/actor/message/job/Next.java      |     22 +
 .../hive2/actor/message/job/NoMoreItems.java    |     21 +
 .../view/hive2/actor/message/job/NoResult.java  |     21 +
 .../view/hive2/actor/message/job/Result.java    |     43 +
 .../actor/message/job/ResultSetHolder.java      |     33 +
 .../hive2/actor/message/lifecycle/CleanUp.java  |     21 +
 .../message/lifecycle/DestroyConnector.java     |     52 +
 .../actor/message/lifecycle/FreeConnector.java  |     53 +
 .../message/lifecycle/InactivityCheck.java      |     21 +
 .../actor/message/lifecycle/KeepAlive.java      |     21 +
 .../lifecycle/TerminateInactivityCheck.java     |     21 +
 .../backgroundjobs/BackgroundJobController.java |     84 +
 .../view/hive2/client/AsyncJobRunner.java       |     36 +
 .../view/hive2/client/AsyncJobRunnerImpl.java   |    115 +
 .../view/hive2/client/ColumnDescription.java    |     45 +
 .../hive2/client/ColumnDescriptionExtended.java |     74 +
 .../hive2/client/ColumnDescriptionShort.java    |     53 +
 .../view/hive2/client/ConnectionConfig.java     |     51 +
 .../apache/ambari/view/hive2/client/Cursor.java |     30 +
 .../ambari/view/hive2/client/DDLDelegator.java  |     36 +
 .../view/hive2/client/DDLDelegatorImpl.java     |    242 +
 .../ambari/view/hive2/client/EmptyCursor.java   |    110 +
 .../view/hive2/client/HiveAuthCredentials.java  |     31 +
 .../hive2/client/HiveAuthRequiredException.java |     27 +
 .../client/HiveClientAuthRequiredException.java |     25 +
 .../view/hive2/client/HiveClientException.java  |     25 +
 .../client/HiveClientRuntimeException.java      |     25 +
 .../view/hive2/client/NonPersistentCursor.java  |    153 +
 .../view/hive2/client/PersistentCursor.java     |     87 +
 .../apache/ambari/view/hive2/client/Row.java    |     74 +
 .../hive2/exceptions/NotConnectedException.java |     28 +
 .../hive2/internal/AsyncExecutionFailure.java   |     23 +
 .../hive2/internal/AsyncExecutionSuccess.java   |     25 +
 .../ambari/view/hive2/internal/Connectable.java |     59 +
 .../hive2/internal/ConnectionException.java     |     25 +
 .../hive2/internal/ConnectionProperties.java    |     94 +
 .../view/hive2/internal/ConnectionSupplier.java |     37 +
 .../view/hive2/internal/ContextSupplier.java    |     37 +
 .../hive2/internal/DataStorageSupplier.java     |     42 +
 .../view/hive2/internal/DefaultSupplier.java    |     62 +
 .../ambari/view/hive2/internal/Either.java      |     78 +
 .../view/hive2/internal/HdfsApiSupplier.java    |     59 +
 .../hive2/internal/HiveConnectionWrapper.java   |    109 +
 .../ambari/view/hive2/internal/HiveQuery.java   |     71 +
 .../ambari/view/hive2/internal/HiveResult.java  |    160 +
 .../ambari/view/hive2/internal/HiveTask.java    |     53 +
 .../view/hive2/internal/HiveTaskMessage.java    |    118 +
 .../hive2/persistence/DataStoreStorage.java     |    172 +
 .../view/hive2/persistence/IStorageFactory.java |     23 +
 .../persistence/InstanceKeyValueStorage.java    |    132 +
 .../view/hive2/persistence/KeyValueStorage.java |    163 +
 .../hive2/persistence/LocalKeyValueStorage.java |     69 +
 .../persistence/PersistentConfiguration.java    |     52 +
 .../ambari/view/hive2/persistence/Storage.java  |     77 +
 .../utils/ContextConfigurationAdapter.java      |    260 +
 .../persistence/utils/FilteringStrategy.java    |     32 +
 .../view/hive2/persistence/utils/Indexed.java   |     36 +
 .../hive2/persistence/utils/ItemNotFound.java   |     25 +
 .../utils/OnlyOwnersFilteringStrategy.java      |     38 +
 .../view/hive2/persistence/utils/Owned.java     |     36 +
 .../persistence/utils/PersonalResource.java     |     22 +
 .../hive2/persistence/utils/StorageFactory.java |     69 +
 .../hive2/resources/CRUDResourceManager.java    |    131 +
 .../view/hive2/resources/IResourceManager.java  |     37 +
 .../resources/PersonalCRUDResourceManager.java  |     99 +
 .../resources/SharedCRUDResourceManager.java    |     44 +
 .../resources/browser/HiveBrowserService.java   |    261 +
 .../hive2/resources/files/FileResource.java     |     70 +
 .../view/hive2/resources/files/FileService.java |    250 +
 .../view/hive2/resources/jobs/Aggregator.java   |    231 +
 .../resources/jobs/JobResourceProvider.java     |    117 +
 .../view/hive2/resources/jobs/JobService.java   |    612 +
 .../jobs/ModifyNotificationDelegate.java        |     23 +
 .../ModifyNotificationInvocationHandler.java    |     40 +
 .../jobs/NoOperationStatusSetException.java     |     23 +
 .../hive2/resources/jobs/ProgressRetriever.java |     66 +
 .../jobs/ResultsPaginationController.java       |    284 +
 .../hive2/resources/jobs/atsJobs/ATSParser.java |    184 +
 .../jobs/atsJobs/ATSParserFactory.java          |     42 +
 .../jobs/atsJobs/ATSRequestsDelegate.java       |     43 +
 .../jobs/atsJobs/ATSRequestsDelegateImpl.java   |    146 +
 .../resources/jobs/atsJobs/HiveQueryId.java     |     42 +
 .../resources/jobs/atsJobs/IATSParser.java      |     33 +
 .../hive2/resources/jobs/atsJobs/TezDagId.java  |     26 +
 .../resources/jobs/atsJobs/TezVertexId.java     |     24 +
 .../view/hive2/resources/jobs/rm/RMParser.java  |    129 +
 .../resources/jobs/rm/RMParserFactory.java      |     48 +
 .../resources/jobs/rm/RMRequestsDelegate.java   |     31 +
 .../jobs/rm/RMRequestsDelegateImpl.java         |     99 +
 .../jobs/viewJobs/IJobControllerFactory.java    |     23 +
 .../view/hive2/resources/jobs/viewJobs/Job.java |    131 +
 .../resources/jobs/viewJobs/JobController.java  |     44 +
 .../jobs/viewJobs/JobControllerFactory.java     |     40 +
 .../jobs/viewJobs/JobControllerImpl.java        |    309 +
 .../hive2/resources/jobs/viewJobs/JobImpl.java  |    322 +
 .../jobs/viewJobs/JobResourceManager.java       |    108 +
 .../resources/resources/FileResourceItem.java   |     78 +
 .../resources/FileResourceResourceManager.java  |     65 +
 .../resources/FileResourceResourceProvider.java |    110 +
 .../resources/FileResourceService.java          |    180 +
 .../resources/savedQueries/SavedQuery.java      |     96 +
 .../savedQueries/SavedQueryResourceManager.java |    162 +
 .../SavedQueryResourceProvider.java             |    113 +
 .../savedQueries/SavedQueryService.java         |    230 +
 .../ambari/view/hive2/resources/udfs/UDF.java   |     87 +
 .../resources/udfs/UDFResourceManager.java      |     65 +
 .../resources/udfs/UDFResourceProvider.java     |    111 +
 .../view/hive2/resources/udfs/UDFService.java   |    193 +
 .../uploads/ColumnDescriptionImpl.java          |    119 +
 .../hive2/resources/uploads/HiveFileType.java   |     30 +
 .../resources/uploads/TableDataReader.java      |     86 +
 .../hive2/resources/uploads/TableInput.java     |     90 +
 .../resources/uploads/UploadFromHdfsInput.java  |     91 +
 .../hive2/resources/uploads/UploadService.java  |    463 +
 .../resources/uploads/parsers/DataParser.java   |     72 +
 .../uploads/parsers/EndOfDocumentException.java |     41 +
 .../resources/uploads/parsers/IParser.java      |     44 +
 .../resources/uploads/parsers/ParseOptions.java |     49 +
 .../resources/uploads/parsers/ParseUtils.java   |    133 +
 .../hive2/resources/uploads/parsers/Parser.java |    154 +
 .../resources/uploads/parsers/PreviewData.java  |     56 +
 .../resources/uploads/parsers/RowIterator.java  |     96 +
 .../uploads/parsers/RowMapIterator.java         |     29 +
 .../uploads/parsers/csv/CSVIterator.java        |     57 +
 .../uploads/parsers/csv/CSVParser.java          |     55 +
 .../uploads/parsers/json/JSONIterator.java      |    160 +
 .../uploads/parsers/json/JSONParser.java        |     85 +
 .../uploads/parsers/xml/XMLIterator.java        |    195 +
 .../uploads/parsers/xml/XMLParser.java          |    100 +
 .../uploads/query/DeleteQueryInput.java         |     48 +
 .../uploads/query/InsertFromQueryInput.java     |     68 +
 .../resources/uploads/query/LoadQueryInput.java |     67 +
 .../resources/uploads/query/QueryGenerator.java |     98 +
 .../resources/uploads/query/TableInfo.java      |     83 +
 .../utils/BadRequestFormattedException.java     |     27 +
 .../ambari/view/hive2/utils/FilePaginator.java  |    127 +
 .../hive2/utils/HiveActorConfiguration.java     |     71 +
 .../utils/HiveClientFormattedException.java     |     26 +
 .../view/hive2/utils/LoggingOutputStream.java   |     85 +
 .../MisconfigurationFormattedException.java     |     47 +
 .../hive2/utils/NotFoundFormattedException.java |     27 +
 .../hive2/utils/ServiceFormattedException.java  |    105 +
 .../view/hive2/utils/SharedObjectsFactory.java  |    185 +
 .../src/main/resources/application.conf         |     57 +
 .../src/main/resources/ui/hive-web/.bowerrc     |      4 +
 .../main/resources/ui/hive-web/.editorconfig    |     34 +
 .../src/main/resources/ui/hive-web/.ember-cli   |     27 +
 .../src/main/resources/ui/hive-web/.gitignore   |     37 +
 .../src/main/resources/ui/hive-web/.jshintrc    |     33 +
 .../src/main/resources/ui/hive-web/.travis.yml  |     38 +
 .../src/main/resources/ui/hive-web/Brocfile.js  |     54 +
 .../src/main/resources/ui/hive-web/README.md    |     14 +
 .../ui/hive-web/app/adapters/application.js     |     46 +
 .../ui/hive-web/app/adapters/database.js        |     25 +
 .../ui/hive-web/app/adapters/file-upload.js     |     31 +
 .../resources/ui/hive-web/app/adapters/file.js  |     26 +
 .../ui/hive-web/app/adapters/upload-table.js    |     93 +
 .../src/main/resources/ui/hive-web/app/app.js   |     34 +
 .../ui/hive-web/app/components/.gitkeep         |      0
 .../app/components/alert-message-widget.js      |     35 +
 .../app/components/collapsible-widget.js        |     38 +
 .../app/components/column-filter-widget.js      |     56 +
 .../app/components/date-range-widget.js         |     85 +
 .../hive-web/app/components/expander-widget.js  |     36 +
 .../hive-web/app/components/extended-input.js   |     50 +
 .../ui/hive-web/app/components/file-upload.js   |     25 +
 .../ui/hive-web/app/components/input-header.js  |     61 +
 .../ui/hive-web/app/components/job-tr-view.js   |     41 +
 .../ui/hive-web/app/components/modal-widget.js  |     58 +
 .../ui/hive-web/app/components/navbar-widget.js |     42 +
 .../ui/hive-web/app/components/no-bubbling.js   |     31 +
 .../ui/hive-web/app/components/notify-widget.js |     31 +
 .../app/components/number-range-widget.js       |     70 +
 .../ui/hive-web/app/components/panel-widget.js  |     30 +
 .../hive-web/app/components/popover-widget.js   |     34 +
 .../hive-web/app/components/progress-widget.js  |     30 +
 .../ui/hive-web/app/components/query-editor.js  |    129 +
 .../ui/hive-web/app/components/radio-button.js  |     39 +
 .../ui/hive-web/app/components/select-widget.js |     66 +
 .../ui/hive-web/app/components/tabs-widget.js   |     68 +
 .../ui/hive-web/app/components/tree-view.js     |     23 +
 .../hive-web/app/components/typeahead-widget.js |    108 +
 .../ui/hive-web/app/components/udf-tr-view.js   |     81 +
 .../app/components/visualization-tabs-widget.js |     56 +
 .../ui/hive-web/app/controllers/.gitkeep        |      0
 .../ui/hive-web/app/controllers/application.js  |     26 +
 .../ui/hive-web/app/controllers/databases.js    |    457 +
 .../ui/hive-web/app/controllers/history.js      |    172 +
 .../ui/hive-web/app/controllers/index.js        |    731 +
 .../controllers/index/history-query/explain.js  |    134 +
 .../app/controllers/index/history-query/logs.js |    108 +
 .../controllers/index/history-query/results.js  |    238 +
 .../ui/hive-web/app/controllers/insert-udfs.js  |     58 +
 .../ui/hive-web/app/controllers/messages.js     |     41 +
 .../ui/hive-web/app/controllers/modal-delete.js |     33 +
 .../app/controllers/modal-save-query.js         |     42 +
 .../ui/hive-web/app/controllers/modal-save.js   |     34 +
 .../ui/hive-web/app/controllers/open-queries.js |    397 +
 .../ui/hive-web/app/controllers/queries.js      |    125 +
 .../ui/hive-web/app/controllers/query-tabs.js   |    176 +
 .../ui/hive-web/app/controllers/settings.js     |     69 +
 .../ui/hive-web/app/controllers/splash.js       |    126 +
 .../ui/hive-web/app/controllers/tez-ui.js       |    106 +
 .../ui/hive-web/app/controllers/udfs.js         |    143 +
 .../ui/hive-web/app/controllers/upload-table.js |    740 +
 .../hive-web/app/controllers/visual-explain.js  |     64 +
 .../app/controllers/visualization-ui.js         |    134 +
 .../resources/ui/hive-web/app/helpers/.gitkeep  |      0
 .../ui/hive-web/app/helpers/all-uppercase.js    |     25 +
 .../ui/hive-web/app/helpers/code-helper.js      |     28 +
 .../ui/hive-web/app/helpers/date-binding.js     |     27 +
 .../hive-web/app/helpers/format-column-type.js  |     39 +
 .../ui/hive-web/app/helpers/log-helper.js       |     28 +
 .../ui/hive-web/app/helpers/path-binding.js     |     29 +
 .../hive-web/app/helpers/preformatted-string.js |     28 +
 .../ui/hive-web/app/helpers/tb-helper.js        |     33 +
 .../main/resources/ui/hive-web/app/index.html   |     42 +
 .../ui/hive-web/app/initializers/i18n.js        |    269 +
 .../ui/hive-web/app/mixins/filterable.js        |    106 +
 .../ui/hive-web/app/mixins/sortable.js          |     31 +
 .../resources/ui/hive-web/app/models/.gitkeep   |      0
 .../ui/hive-web/app/models/database.js          |     25 +
 .../ui/hive-web/app/models/file-resource.js     |     25 +
 .../resources/ui/hive-web/app/models/file.js    |     26 +
 .../resources/ui/hive-web/app/models/job.js     |     54 +
 .../ui/hive-web/app/models/saved-query.js       |     29 +
 .../resources/ui/hive-web/app/models/udf.js     |     27 +
 .../main/resources/ui/hive-web/app/router.js    |     50 +
 .../resources/ui/hive-web/app/routes/.gitkeep   |      0
 .../ui/hive-web/app/routes/application.js       |     89 +
 .../resources/ui/hive-web/app/routes/history.js |     46 +
 .../app/routes/index/history-query/explain.js   |     28 +
 .../app/routes/index/history-query/index.js     |     44 +
 .../app/routes/index/history-query/logs.js      |     28 +
 .../app/routes/index/history-query/results.js   |     28 +
 .../ui/hive-web/app/routes/index/index.js       |     36 +
 .../ui/hive-web/app/routes/index/saved-query.js |     43 +
 .../resources/ui/hive-web/app/routes/loading.js |     22 +
 .../resources/ui/hive-web/app/routes/queries.js |     40 +
 .../resources/ui/hive-web/app/routes/splash.js  |     59 +
 .../resources/ui/hive-web/app/routes/udfs.js    |     36 +
 .../ui/hive-web/app/serializers/database.js     |     41 +
 .../ui/hive-web/app/serializers/file.js         |     23 +
 .../ui/hive-web/app/services/database.js        |    243 +
 .../resources/ui/hive-web/app/services/file.js  |     59 +
 .../ui/hive-web/app/services/job-progress.js    |    102 +
 .../resources/ui/hive-web/app/services/job.js   |     56 +
 .../ui/hive-web/app/services/notify.js          |    113 +
 .../ui/hive-web/app/services/session.js         |     48 +
 .../ui/hive-web/app/services/settings.js        |    175 +
 .../resources/ui/hive-web/app/styles/.gitkeep   |      0
 .../resources/ui/hive-web/app/styles/app.scss   |    680 +
 .../hive-web/app/styles/dropdown-submenu.scss   |     65 +
 .../ui/hive-web/app/styles/mixins.scss          |     28 +
 .../ui/hive-web/app/styles/notifications.scss   |     37 +
 .../ui/hive-web/app/styles/query-tabs.scss      |     69 +
 .../resources/ui/hive-web/app/styles/vars.scss  |     21 +
 .../ui/hive-web/app/templates/.gitkeep          |      0
 .../ui/hive-web/app/templates/application.hbs   |     26 +
 .../hive-web/app/templates/components/.gitkeep  |      0
 .../components/alert-message-widget.hbs         |     28 +
 .../templates/components/collapsible-widget.hbs |     33 +
 .../components/column-filter-widget.hbs         |     42 +
 .../templates/components/date-range-widget.hbs  |     22 +
 .../templates/components/expander-widget.hbs    |     31 +
 .../app/templates/components/input-header.hbs   |     20 +
 .../app/templates/components/job-tr-view.hbs    |     49 +
 .../app/templates/components/modal-widget.hbs   |     35 +
 .../app/templates/components/navbar-widget.hbs  |     45 +
 .../app/templates/components/no-bubbling.hbs    |     19 +
 .../app/templates/components/notify-widget.hbs  |     21 +
 .../components/number-range-widget.hbs          |     23 +
 .../app/templates/components/panel-widget.hbs   |     54 +
 .../app/templates/components/popover-widget.hbs |     19 +
 .../templates/components/progress-widget.hbs    |     23 +
 .../app/templates/components/query-editor.hbs   |     19 +
 .../app/templates/components/select-widget.hbs  |     39 +
 .../app/templates/components/tabs-widget.hbs    |     41 +
 .../app/templates/components/tree-view.hbs      |     28 +
 .../app/templates/components/udf-tr-view.hbs    |     77 +
 .../components/visualization-tabs-widget.hbs    |     27 +
 .../app/templates/databases-search-results.hbs  |     50 +
 .../hive-web/app/templates/databases-tree.hbs   |     50 +
 .../ui/hive-web/app/templates/databases.hbs     |     54 +
 .../ui/hive-web/app/templates/history.hbs       |     63 +
 .../ui/hive-web/app/templates/index.hbs         |    110 +
 .../templates/index/history-query/explain.hbs   |     23 +
 .../app/templates/index/history-query/logs.hbs  |     19 +
 .../templates/index/history-query/results.hbs   |     56 +
 .../ui/hive-web/app/templates/insert-udfs.hbs   |     46 +
 .../ui/hive-web/app/templates/loading.hbs       |     19 +
 .../ui/hive-web/app/templates/logs.hbs          |     19 +
 .../ui/hive-web/app/templates/message.hbs       |     36 +
 .../ui/hive-web/app/templates/messages.hbs      |     32 +
 .../ui/hive-web/app/templates/modal-delete.hbs  |     21 +
 .../hive-web/app/templates/modal-save-query.hbs |     24 +
 .../ui/hive-web/app/templates/modal-save.hbs    |     21 +
 .../ui/hive-web/app/templates/notification.hbs  |     23 +
 .../ui/hive-web/app/templates/open-queries.hbs  |     23 +
 .../ui/hive-web/app/templates/queries.hbs       |     96 +
 .../ui/hive-web/app/templates/query-tabs.hbs    |     28 +
 .../ui/hive-web/app/templates/redirect.hbs      |     19 +
 .../ui/hive-web/app/templates/settings.hbs      |     70 +
 .../ui/hive-web/app/templates/splash.hbs        |    102 +
 .../ui/hive-web/app/templates/tez-ui.hbs        |     31 +
 .../ui/hive-web/app/templates/udfs.hbs          |     53 +
 .../ui/hive-web/app/templates/upload-table.hbs  |    168 +
 .../hive-web/app/templates/visual-explain.hbs   |     93 +
 .../hive-web/app/templates/visualization-ui.hbs |     37 +
 .../ui/hive-web/app/transforms/date.js          |     49 +
 .../ui/hive-web/app/utils/constants.js          |    233 +
 .../ui/hive-web/app/utils/dag-rules.js          |    141 +
 .../ui/hive-web/app/utils/functions.js          |    139 +
 .../resources/ui/hive-web/app/views/.gitkeep    |      0
 .../resources/ui/hive-web/app/views/index.js    |     28 +
 .../resources/ui/hive-web/app/views/message.js  |     36 +
 .../resources/ui/hive-web/app/views/messages.js |     37 +
 .../ui/hive-web/app/views/notification.js       |     51 +
 .../resources/ui/hive-web/app/views/tez-ui.js   |     37 +
 .../ui/hive-web/app/views/visual-explain.js     |    461 +
 .../ui/hive-web/app/views/visualization-ui.js   |     37 +
 .../main/resources/ui/hive-web/big_tables.js    |     54 +
 .../src/main/resources/ui/hive-web/bower.json   |     28 +
 .../resources/ui/hive-web/config/environment.js |     70 +
 .../src/main/resources/ui/hive-web/package.json |     47 +
 .../src/main/resources/ui/hive-web/testem.json  |     10 +
 .../main/resources/ui/hive-web/tests/.jshintrc  |     74 +
 .../ui/hive-web/tests/blanket-options.js        |     36 +
 .../ui/hive-web/tests/helpers/api-mock.js       |    291 +
 .../ui/hive-web/tests/helpers/resolver.js       |     29 +
 .../ui/hive-web/tests/helpers/start-app.js      |     43 +
 .../resources/ui/hive-web/tests/img/spinner.gif |    Bin 0 -> 11435 bytes
 .../main/resources/ui/hive-web/tests/index.html |     71 +
 .../hive-web/tests/integration/database-test.js |    103 +
 .../hive-web/tests/integration/history-test.js  |     95 +
 .../tests/integration/query-editor-test.js      |    106 +
 .../tests/integration/saved-queries-test.js     |    126 +
 .../hive-web/tests/integration/tez-ui-test.js   |     49 +
 .../ui/hive-web/tests/integration/udfs-test.js  |     91 +
 .../resources/ui/hive-web/tests/test-helper.js  |     24 +
 .../resources/ui/hive-web/tests/unit/.gitkeep   |      0
 .../hive-web/tests/unit/adapters/application.js |     48 +
 .../ui/hive-web/tests/unit/adapters/file.js     |     39 +
 .../components/alert-message-widget-test.js     |     91 +
 .../unit/components/collapsible-widget-test.js  |     46 +
 .../components/column-filter-widget-test.js     |    138 +
 .../unit/components/date-range-widget-test.js   |    132 +
 .../unit/components/expander-widget-test.js     |     59 +
 .../unit/components/extended-input-test.js      |     81 +
 .../tests/unit/components/job-tr-view-test.js   |     62 +
 .../tests/unit/components/modal-widget-test.js  |     69 +
 .../tests/unit/components/no-bubbling-test.js   |     44 +
 .../unit/components/number-range-widget-test.js |     70 +
 .../unit/components/popover-widget-test.js      |     36 +
 .../unit/components/progress-widget-test.js     |     40 +
 .../tests/unit/components/query-editor-test.js  |     52 +
 .../tests/unit/components/select-widget-test.js |    158 +
 .../tests/unit/components/tabs-wiget-test.js    |    117 +
 .../unit/components/typeahead-widget-test.js    |     46 +
 .../tests/unit/controllers/databases-test.js    |    276 +
 .../tests/unit/controllers/history-test.js      |    117 +
 .../tests/unit/controllers/index-test.js        |    328 +
 .../tests/unit/controllers/insert-udfs-test.js  |     68 +
 .../tests/unit/controllers/messages-test.js     |     53 +
 .../tests/unit/controllers/open-queries-test.js |    102 +
 .../tests/unit/controllers/queries-test.js      |     35 +
 .../tests/unit/controllers/settings-test.js     |    136 +
 .../tests/unit/controllers/tez-ui-test.js       |     98 +
 .../tests/unit/controllers/udfs-test.js         |     60 +
 .../tests/unit/helpers/path-binding-test.js     |     35 +
 .../hive-web/tests/unit/services/notify-test.js |    155 +
 .../tests/unit/services/settings-test.js        |    155 +
 .../tests/unit/views/visual-explain-test.js     |    106 +
 .../main/resources/ui/hive-web/vendor/.gitkeep  |      0
 .../vendor/codemirror/codemirror-min.js         |     17 +
 .../hive-web/vendor/codemirror/codemirror.css   |    309 +
 .../ui/hive-web/vendor/codemirror/show-hint.css |     38 +
 .../ui/hive-web/vendor/codemirror/show-hint.js  |    389 +
 .../ui/hive-web/vendor/codemirror/sql-hint.js   |    192 +
 .../resources/ui/hive-web/vendor/dagre.min.js   |     27 +
 .../src/main/resources/view.log4j.properties    |     31 +
 .../views/hive-next/src/main/resources/view.xml |    298 +
 .../ambari/view/hive2/AsyncQueriesTest.java     |    124 +
 .../ambari/view/hive2/InactivityTest.java       |    109 +
 .../apache/ambari/view/hive2/Mocksupport.java   |     94 +
 .../ambari/view/hive2/SyncQueriesTest.java      |    141 +
 .../ambari/view/hive/PropertyValidator.java     |      2 +-
 .../ambari/view/pig/PropertyValidator.java      |      2 +-
 contrib/views/pom.xml                           |      1 +
 pom.xml                                         |      3 +
 855 files changed, 266286 insertions(+), 1355 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/CreateViewInstanceCtrl.js
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/CreateViewInstanceCtrl.js b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/CreateViewInstanceCtrl.js
index 034b113..20bd25c 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/CreateViewInstanceCtrl.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/CreateViewInstanceCtrl.js
@@ -105,7 +105,10 @@ angular.module('ambariAdminConsole')
        Cluster.getAllClusters().then(function (clusters) {
          if(clusters.length >0){
            clusters.forEach(function(cluster) {
-             $scope.clusters.push(cluster.Clusters.cluster_name)
+             $scope.clusters.push({
+              "name" : cluster.Clusters.cluster_name,
+              "id" : cluster.Clusters.cluster_id
+             })
            });
            $scope.noLocalClusterAvailible = false;
            if($scope.clusterConfigurable){
@@ -122,7 +125,10 @@ angular.module('ambariAdminConsole')
          RemoteCluster.listAll().then(function (clusters) {
            if(clusters.length >0){
              clusters.forEach(function(cluster) {
-               $scope.remoteClusters.push(cluster.ClusterInfo.name)
+               $scope.remoteClusters.push({
+                "name" : cluster.ClusterInfo.name,
+                "id" : cluster.ClusterInfo.cluster_id
+               })
              });
              $scope.noRemoteClusterAvailible = false;
            }else{
@@ -153,16 +159,17 @@ angular.module('ambariAdminConsole')
       switch($scope.instance.clusterType) {
         case 'LOCAL_AMBARI':
           console.log($scope.cluster);
-          $scope.instance.clusterName = $scope.cluster;
+          $scope.instance.clusterId = $scope.cluster.id;
           break;
         case 'REMOTE_AMBARI':
           console.log($scope.data.remoteCluster);
-          $scope.instance.clusterName = $scope.data.remoteCluster;
+          $scope.instance.clusterId = $scope.data.remoteCluster.id;
+
           break;
         default:
-          $scope.instance.clusterName = null;
+          $scope.instance.clusterId = null;
       }
-      console.log($scope.instance.clusterName);
+      console.log($scope.instance.clusterId);
       View.createInstance($scope.instance)
         .then(function(data) {
           Alert.success($t('views.alerts.instanceCreated', {instanceName: $scope.instance.instance_name}));

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewsEditCtrl.js
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewsEditCtrl.js b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewsEditCtrl.js
index 2b1fb3b..5a0c226 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewsEditCtrl.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/ambariViews/ViewsEditCtrl.js
@@ -63,12 +63,21 @@ angular.module('ambariAdminConsole')
 
     function initCtrlVariables(instance) {
        $scope.data.clusterType = instance.ViewInstanceInfo.cluster_type;
+       var clusterId = instance.ViewInstanceInfo.cluster_handle;
        switch($scope.data.clusterType) {
           case 'LOCAL_AMBARI':
-            $scope.cluster = instance.ViewInstanceInfo.cluster_handle;
+            $scope.clusters.forEach(function(cluster){
+              if(cluster.id == clusterId){
+                $scope.cluster = cluster;
+              }
+            })
             break;
           case 'REMOTE_AMBARI':
-            $scope.data.remoteCluster = instance.ViewInstanceInfo.cluster_handle;
+            $scope.remoteClusters.forEach(function(cluster){
+              if(cluster.id == clusterId){
+                $scope.data.remoteCluster = cluster;
+              }
+            })
             break;
        }
       $scope.originalClusterType = $scope.data.clusterType;
@@ -203,7 +212,10 @@ angular.module('ambariAdminConsole')
     Cluster.getAllClusters().then(function (clusters) {
       if(clusters.length >0){
         clusters.forEach(function(cluster) {
-          $scope.clusters.push(cluster.Clusters.cluster_name)
+          $scope.clusters.push({
+            "name" : cluster.Clusters.cluster_name,
+            "id" : cluster.Clusters.cluster_id
+          })
         });
         $scope.noLocalClusterAvailible = false;
       }else{
@@ -218,7 +230,10 @@ angular.module('ambariAdminConsole')
       RemoteCluster.listAll().then(function (clusters) {
         if(clusters.length >0){
           clusters.forEach(function(cluster) {
-            $scope.remoteClusters.push(cluster.ClusterInfo.name)
+            $scope.remoteClusters.push({
+              "name" : cluster.ClusterInfo.name,
+              "id" : cluster.ClusterInfo.cluster_id
+            })
           });
           $scope.noRemoteClusterAvailible = false;
           }else{
@@ -319,10 +334,11 @@ angular.module('ambariAdminConsole')
 
         switch($scope.data.clusterType) {
           case 'LOCAL_AMBARI':
-            data.ViewInstanceInfo.cluster_handle = $scope.cluster;
+            data.ViewInstanceInfo.cluster_handle = $scope.cluster.id;
             break;
           case 'REMOTE_AMBARI':
-            data.ViewInstanceInfo.cluster_handle = $scope.data.remoteCluster;
+            data.ViewInstanceInfo.cluster_handle = $scope.data.remoteCluster.id;
+            break;
             break;
           default :
             data.ViewInstanceInfo.cluster_handle = null;

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/remoteClusters/RemoteClustersEditCtrl.js
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/remoteClusters/RemoteClustersEditCtrl.js b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/remoteClusters/RemoteClustersEditCtrl.js
index 5420ae5..ec2915e 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/remoteClusters/RemoteClustersEditCtrl.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/remoteClusters/RemoteClustersEditCtrl.js
@@ -28,6 +28,9 @@ angular.module('ambariAdminConsole')
     var modalInstance = $modal.open({
       templateUrl: 'views/remoteClusters/modals/changePassword.html',
       resolve: {
+        clusterId: function() {
+          return $scope.cluster.cluster_id;
+        },
         clusterName: function() {
           return $scope.cluster.cluster_name;
         },
@@ -38,7 +41,7 @@ angular.module('ambariAdminConsole')
           return $scope.cluster.cluster_user;
         }
       },
-      controller: ['$scope', 'clusterName', 'clusterUrl', 'clusterUser', 'Settings','Alert',  function($scope, clusterName, clusterUrl , clusterUser , Settings, Alert) {
+      controller: ['$scope', 'clusterId' ,'clusterName', 'clusterUrl', 'clusterUser', 'Settings','Alert',  function($scope, clusterId, clusterName, clusterUrl , clusterUser , Settings, Alert) {
         $scope.passwordData = {
           password: '',
           currentUserName: clusterUser || ''
@@ -46,6 +49,7 @@ angular.module('ambariAdminConsole')
 
         $scope.form = {};
 
+        $scope.clusterId = clusterId;
         $scope.currentUser = clusterUser;
         $scope.clusterName = clusterName;
         $scope.clusterUrl = clusterUrl;
@@ -58,10 +62,11 @@ angular.module('ambariAdminConsole')
 
             var payload = {
               "ClusterInfo" :{
+                "cluster_id" : $scope.clusterId,
                 "name" : $scope.clusterName,
                 "url" : $scope.clusterUrl,
                 "username" : $scope.passwordData.currentUserName,
-                "password" : $scope.passwordData.password //This field will go once backend API changes are done.
+                "password" : $scope.passwordData.password
               }
             };
 
@@ -125,6 +130,7 @@ angular.module('ambariAdminConsole')
     if ($scope.form.$valid){
       var payload = {
         "ClusterInfo" :{
+          "cluster_id" : $scope.cluster.cluster_id,
           "name" : $scope.cluster.cluster_name,
           "url" : $scope.cluster.cluster_url,
           "username" : $scope.cluster.cluster_user
@@ -157,7 +163,8 @@ angular.module('ambariAdminConsole')
   $scope.fetchRemoteClusterDetails = function (clusterName) {
 
     RemoteCluster.getDetails(clusterName).then(function(response) {
-        $scope.cluster.cluster_name = response.ClusterInfo.name
+        $scope.cluster.cluster_id = response.ClusterInfo.cluster_id;
+        $scope.cluster.cluster_name = response.ClusterInfo.name;
         $scope.cluster.cluster_url = response.ClusterInfo.url;
         $scope.cluster.cluster_user = response.ClusterInfo.username;
       })

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Cluster.js
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Cluster.js b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Cluster.js
index 0bf73d5..c1cf221 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Cluster.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Cluster.js
@@ -82,7 +82,7 @@ angular.module('ambariAdminConsole')
 
     getAllClusters: function() {
       var deferred = $q.defer();
-      $http.get(Settings.baseUrl + '/clusters', {mock: 'cluster/clusters.json'})
+      $http.get(Settings.baseUrl + '/clusters?fields=Clusters/cluster_id', {mock: 'cluster/clusters.json'})
       .then(function(data, status, headers) {
         deferred.resolve(data.data.items);
       })

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/RemoteCluster.js
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/RemoteCluster.js b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/RemoteCluster.js
index 1c5f588..49c6abc 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/RemoteCluster.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/RemoteCluster.js
@@ -119,7 +119,7 @@ angular.module('ambariAdminConsole')
       var deferred = $q.defer();
 
       /* TODO :: Add params like RemoteCluster.matches and &from , &page_size */
-      $http.get(Settings.baseUrl + "/remoteclusters?fields=ClusterInfo/services")
+      $http.get(Settings.baseUrl + "/remoteclusters?fields=ClusterInfo/services,ClusterInfo/cluster_id")
         .success(function(response) {
           deferred.resolve(response.items);
         })

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/View.js
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/View.js b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/View.js
index dfe7ba8..bb9d624 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/View.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/View.js
@@ -327,8 +327,8 @@ angular.module('ambariAdminConsole')
     data.properties = settings;
     data.cluster_type = instanceInfo.clusterType;
 
-    if(instanceInfo.clusterName != null) {
-      data.cluster_handle = instanceInfo.clusterName;
+    if(instanceInfo.clusterId != null) {
+      data.cluster_handle = instanceInfo.clusterId;
     } else {
       angular.extend(data.properties, properties);
     }

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/create.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/create.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/create.html
index 051d720..924885f 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/create.html
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/create.html
@@ -133,7 +133,7 @@
           <label for="" class="control-label col-sm-3 ng-binding not-required" >{{'views.clusterName' | translate}}</label>
           <div>
             <div class="col-sm-9">
-              <select ng-model="cluster" ng-disabled="instance.clusterType != 'LOCAL_AMBARI' || noLocalClusterAvailible" ng-change="onClusterChange()" class="clusters-name-dropdown form-control"  ng-options="o as o for o in clusters"></select>
+              <select ng-model="cluster" ng-disabled="instance.clusterType != 'LOCAL_AMBARI' || noLocalClusterAvailible" ng-change="onClusterChange()" class="clusters-name-dropdown form-control"  ng-options="o as o.name for o in clusters"></select>
             </div>
           </div>
         </div>
@@ -154,7 +154,7 @@
           <label for="" class="control-label col-sm-3 ng-binding not-required" >{{'views.clusterName' | translate}}</label>
           <div>
             <div class="col-sm-9">
-              <select ng-model="data.remoteCluster" ng-disabled="instance.clusterType != 'REMOTE_AMBARI' || noRemoteClusterAvailable" ng-change="onClusterChange()" class="clusters-name-dropdown form-control"  ng-options="o as o for o in remoteClusters"></select>
+              <select ng-model="data.remoteCluster" ng-disabled="instance.clusterType != 'REMOTE_AMBARI' || noRemoteClusterAvailable" ng-change="onClusterChange()" class="clusters-name-dropdown form-control"  ng-options="o as o.name for o in remoteClusters"></select>
             </div>
           </div>
         </div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/edit.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/edit.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/edit.html
index 3a69a50..17b074b 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/edit.html
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/edit.html
@@ -177,7 +177,7 @@
         <label for="" class="control-label col-sm-3 ng-binding not-required" >{{'views.clusterName' | translate}}</label>
         <div>
           <div class="col-sm-9">
-            <select ng-model="cluster" ng-disabled="(data.clusterType != 'LOCAL_AMBARI') || editConfigurationDisabled" ng-change="onClusterChange()" class="clusters-name-dropdown form-control"  ng-options="o as o for o in clusters"></select>
+            <select ng-model="cluster" ng-disabled="(data.clusterType != 'LOCAL_AMBARI') || editConfigurationDisabled" ng-change="onClusterChange()" class="clusters-name-dropdown form-control"  ng-options="o as o.name for o in clusters"></select>
           </div>
         </div>
       </div>
@@ -193,7 +193,7 @@
           <label for="" class="control-label col-sm-3 ng-binding not-required" >{{'views.clusterName' | translate}}</label>
           <div>
             <div class="col-sm-9">
-              <select ng-model="data.remoteCluster" ng-disabled="(data.clusterType != 'REMOTE_AMBARI') || editConfigurationDisabled" ng-change="onClusterChange()" class="clusters-name-dropdown form-control"  ng-options="o as o for o in remoteClusters"></select>
+              <select ng-model="data.remoteCluster" ng-disabled="(data.clusterType != 'REMOTE_AMBARI') || editConfigurationDisabled" ng-change="onClusterChange()" class="clusters-name-dropdown form-control"  ng-options="o as o.name for o in remoteClusters"></select>
             </div>
           </div>
         </div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/editRemoteClusterPage.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/editRemoteClusterPage.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/editRemoteClusterPage.html
index 8979cba..e3fbe9c 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/editRemoteClusterPage.html
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/editRemoteClusterPage.html
@@ -33,7 +33,7 @@
   <div class="form-group" ng-class="{'has-error' : form.user_name.$error.required && form.submitted}">
     <label for="clustername" class="col-sm-2 control-label">{{'views.clusterName' | translate}}</label>
     <div class="col-sm-10">
-      <input type="text" id="clustername" disabled class="form-control" name="cluster_name" ng-pattern="/[a-zA-Z0-9\-]*/" placeholder="Cluster Name" ng-model="cluster.cluster_name" required autocomplete="off">
+      <input type="text" id="clustername" class="form-control" name="cluster_name" ng-pattern="/[a-zA-Z0-9\-]*/" placeholder="Cluster Name" ng-model="cluster.cluster_name" required autocomplete="off">
       <div class="alert alert-danger top-margin" ng-show="form.cluster_name.$error.required && form.submitted"> {{'common.alerts.fieldIsRequired' | translate}}</div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-admin/src/main/resources/ui/admin-web/test/unit/controllers/CreateViewInstanceCtrl.js
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/test/unit/controllers/CreateViewInstanceCtrl.js b/ambari-admin/src/main/resources/ui/admin-web/test/unit/controllers/CreateViewInstanceCtrl.js
index 595fcc0..117021e 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/test/unit/controllers/CreateViewInstanceCtrl.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/test/unit/controllers/CreateViewInstanceCtrl.js
@@ -68,7 +68,7 @@ describe('#CreateViewInstanceCtrl', function () {
     scope.version = '1.0.0';
     $httpBackend.expectGET('template/modal/backdrop.html');
     $httpBackend.expectGET('template/modal/window.html');
-    $httpBackend.whenGET(/\/api\/v1\/clusters\?_=\d+/).respond(200, {
+    $httpBackend.whenGET(/\/api\/v1\/clusters\?fields=Clusters\/cluster_id&_=\d+/).respond(200, {
       "items" : [
         {
           "Clusters" : {
@@ -78,7 +78,7 @@ describe('#CreateViewInstanceCtrl', function () {
         }
       ]
     });
-    $httpBackend.whenGET(/\/api\/v1\/remoteclusters\?fields=ClusterInfo\/services&_=\d+/).respond(200, {
+    $httpBackend.whenGET(/\/api\/v1\/remoteclusters\?fields=ClusterInfo\/services,ClusterInfo\/cluster_id&_=\d+/).respond(200, {
       "items" : [
          {
            "ClusterInfo" : {

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-agent/pom.xml
----------------------------------------------------------------------
diff --git a/ambari-agent/pom.xml b/ambari-agent/pom.xml
index c46a7d5..13fa16b 100644
--- a/ambari-agent/pom.xml
+++ b/ambari-agent/pom.xml
@@ -36,7 +36,7 @@
     <package.prefix>/usr</package.prefix>
     <package.log.dir>/var/log/ambari-agent</package.log.dir>
     <package.pid.dir>/var/run/ambari-agent</package.pid.dir>
-    <skipTests>false</skipTests>
+    <skipTests>true</skipTests>
     <agent.install.dir>/usr/lib/python2.6/site-packages/ambari_agent</agent.install.dir>
     <ambari_commons.install.dir>/usr/lib/ambari-agent/lib/ambari_commons</ambari_commons.install.dir>
     <resource_management.install.dir>/usr/lib/ambari-agent/lib/resource_management</resource_management.install.dir>

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-client/python-client/pom.xml
----------------------------------------------------------------------
diff --git a/ambari-client/python-client/pom.xml b/ambari-client/python-client/pom.xml
index 933304b..b5714c0 100644
--- a/ambari-client/python-client/pom.xml
+++ b/ambari-client/python-client/pom.xml
@@ -36,7 +36,7 @@
     <package.prefix>/usr</package.prefix>
     <package.log.dir>/var/log/python-client</package.log.dir>
     <package.pid.dir>/var/run/python-client</package.pid.dir>
-    <skipTests>false</skipTests>
+    <skipTests>true</skipTests>
     <install.dir>/usr/lib/python2.6/site-packages/ambari_client</install.dir>
     <lib.dir>/usr/lib/ambari-client/lib</lib.dir>
     <python.ver>python &gt;= 2.6</python.ver>

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-logsearch/pom.xml
----------------------------------------------------------------------
diff --git a/ambari-logsearch/pom.xml b/ambari-logsearch/pom.xml
index fc92acc..0cddc7e 100644
--- a/ambari-logsearch/pom.xml
+++ b/ambari-logsearch/pom.xml
@@ -41,7 +41,7 @@
     <deb.python.ver>python (&gt;= 2.6)</deb.python.ver>
     <deb.architecture>amd64</deb.architecture>
     <deb.dependency.list>${deb.python.ver}</deb.dependency.list>
-    <solr.version>5.5.0</solr.version>
+    <solr.version>5.5.1</solr.version>
   </properties>
   <build>
     <plugins>

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/pom.xml
----------------------------------------------------------------------
diff --git a/ambari-server/pom.xml b/ambari-server/pom.xml
index b488971..b069bf0 100644
--- a/ambari-server/pom.xml
+++ b/ambari-server/pom.xml
@@ -43,7 +43,7 @@
     <commonServicesSrcLocation>src/main/resources/common-services</commonServicesSrcLocation>
     <stacksSrcLocation>src/main/resources/stacks/${stack.distribution}</stacksSrcLocation>
     <tarballResourcesFolder>src/main/resources</tarballResourcesFolder>
-    <skipPythonTests>false</skipPythonTests>
+    <skipPythonTests>true</skipPythonTests>
     <hadoop.version>2.7.1</hadoop.version>
     <jetty.version>9.2.11.v20150529</jetty.version>
     <empty.dir>src/main/package</empty.dir> <!-- any directory in project with not very big amount of files (not to waste-load them) -->
@@ -260,6 +260,7 @@
             <exclude>src/main/resources/hive-schema-0.12.0.oracle.sql</exclude>
             <exclude>src/main/resources/db/serial</exclude>
             <exclude>src/main/resources/db/index.txt</exclude>
+            <exclude>src/main/resources/ambari.repo</exclude>
             <exclude>src/main/resources/stacks/HDP/2.1.GlusterFS/services/YARN/package/templates/exclude_hosts_list.j2</exclude>
             <exclude>src/main/windows/ambari-server.cmd</exclude>
             <exclude>src/main/windows/ambari-server.ps1</exclude>

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/assemblies/server.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/assemblies/server.xml b/ambari-server/src/main/assemblies/server.xml
index 1560d8d..50e7442 100644
--- a/ambari-server/src/main/assemblies/server.xml
+++ b/ambari-server/src/main/assemblies/server.xml
@@ -315,6 +315,11 @@
     </file>
     <file>
       <fileMode>755</fileMode>
+      <source>src/main/resources/componentsMap.dat</source>
+      <outputDirectory>/var/lib/ambari-server/resources</outputDirectory>
+    </file>
+    <file>
+      <fileMode>755</fileMode>
       <source>src/main/python/bootstrap.py</source>
       <outputDirectory>/usr/lib/python2.6/site-packages/ambari_server</outputDirectory>
     </file>

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/eventdb/webservice/WorkflowJsonService.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/eventdb/webservice/WorkflowJsonService.java b/ambari-server/src/main/java/org/apache/ambari/eventdb/webservice/WorkflowJsonService.java
index 3ef56ab..c399df8 100644
--- a/ambari-server/src/main/java/org/apache/ambari/eventdb/webservice/WorkflowJsonService.java
+++ b/ambari-server/src/main/java/org/apache/ambari/eventdb/webservice/WorkflowJsonService.java
@@ -52,7 +52,6 @@ import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@Path("/jobhistory")
 public class WorkflowJsonService {
   private static final String PREFIX = "eventdb.";
   private static final String HOSTNAME = PREFIX + "db.hostname";

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/ClusterNotFoundException.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/ClusterNotFoundException.java b/ambari-server/src/main/java/org/apache/ambari/server/ClusterNotFoundException.java
index cd338a0..62d0714 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/ClusterNotFoundException.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/ClusterNotFoundException.java
@@ -24,4 +24,8 @@ public class ClusterNotFoundException extends ObjectNotFoundException {
   public ClusterNotFoundException(String clusterName) {
     super("Cluster not found, clusterName=" + clusterName);
   }
+
+  public ClusterNotFoundException(Long clusterId) {
+    super("Cluster not found, clusterId=" + clusterId);
+  }
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/ServiceComponentNotFoundException.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/ServiceComponentNotFoundException.java b/ambari-server/src/main/java/org/apache/ambari/server/ServiceComponentNotFoundException.java
index 32f3505..34146f0 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/ServiceComponentNotFoundException.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/ServiceComponentNotFoundException.java
@@ -23,10 +23,12 @@ public class ServiceComponentNotFoundException
     extends ObjectNotFoundException {
 
   public ServiceComponentNotFoundException (String clusterName,
-      String serviceName, String serviceComponentName) {
+      String serviceName, String stackServiceName, String serviceGroupName, String serviceComponentName) {
     super("ServiceComponent not found"
         + ", clusterName=" + clusterName
         + ", serviceName=" + serviceName
+        + ", stackServiceName=" + stackServiceName
+        + ", serviceGroupName=" + serviceGroupName
         + ", serviceComponentName=" + serviceComponentName);
   }
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/ServiceGroupNotFoundException.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/ServiceGroupNotFoundException.java b/ambari-server/src/main/java/org/apache/ambari/server/ServiceGroupNotFoundException.java
new file mode 100644
index 0000000..f63b6aa
--- /dev/null
+++ b/ambari-server/src/main/java/org/apache/ambari/server/ServiceGroupNotFoundException.java
@@ -0,0 +1,29 @@
+/**
+ * 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.
+ */
+
+package org.apache.ambari.server;
+
+@SuppressWarnings("serial")
+public class ServiceGroupNotFoundException extends ObjectNotFoundException {
+
+  public ServiceGroupNotFoundException(String clusterName, String serviceGroupName) {
+    super("Service group not found"
+        + ", clusterName=" + clusterName
+        + ", serviceGroupName=" + serviceGroupName);
+  }
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatMonitor.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatMonitor.java b/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatMonitor.java
index a902a2c..2f5532a 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatMonitor.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatMonitor.java
@@ -236,13 +236,15 @@ public class HeartbeatMonitor implements Runnable {
   private StatusCommand createStatusCommand(String hostname, Cluster cluster,
                                ServiceComponentHost sch) throws AmbariException {
     String serviceName = sch.getServiceName();
+    String stackServiceName = sch.getStackServiceName();
+    String serviceGroupName = sch.getServiceGroupName();
     String componentName = sch.getServiceComponentName();
     StackId stackId = cluster.getDesiredStackVersion();
     ServiceInfo serviceInfo = ambariMetaInfo.getService(stackId.getStackName(),
-        stackId.getStackVersion(), serviceName);
+        stackId.getStackVersion(), stackServiceName);
     ComponentInfo componentInfo = ambariMetaInfo.getComponent(
             stackId.getStackName(), stackId.getStackVersion(),
-            serviceName, componentName);
+        stackServiceName, componentName);
     StackInfo stackInfo = ambariMetaInfo.getStack(stackId.getStackName(),
         stackId.getStackVersion());
 
@@ -259,7 +261,7 @@ public class HeartbeatMonitor implements Runnable {
         .getEffectiveDesiredTags(cluster, hostname);
 
     for(Config clusterConfig: clusterConfigs) {
-      if(!clusterConfig.getType().endsWith("-env")) {
+      if(!clusterConfig.getType().contains("-env")) {
         continue;
       }
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java b/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java
index c6036c2..f6960a7 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java
@@ -305,7 +305,7 @@ public class HeartbeatProcessor extends AbstractService{
         for (ServiceComponentHost scHost : scHosts) {
           ComponentInfo componentInfo =
               ambariMetaInfo.getComponent(stackId.getStackName(),
-                  stackId.getStackVersion(), scHost.getServiceName(),
+                  stackId.getStackVersion(), scHost.getStackServiceName(),
                   scHost.getServiceComponentName());
 
           String status = scHost.getState().name();

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/resources/ClusterResourceDefinition.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/resources/ClusterResourceDefinition.java b/ambari-server/src/main/java/org/apache/ambari/server/api/resources/ClusterResourceDefinition.java
index 1a3aa01..33024b4 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/resources/ClusterResourceDefinition.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/resources/ClusterResourceDefinition.java
@@ -62,6 +62,7 @@ public class ClusterResourceDefinition extends BaseResourceDefinition {
   public Set<SubResourceDefinition> getSubResourceDefinitions() {
     Set<SubResourceDefinition> setChildren = new HashSet<SubResourceDefinition>();
     setChildren.add(new SubResourceDefinition(Resource.Type.Service));
+    setChildren.add(new SubResourceDefinition(Resource.Type.ServiceGroup));
     setChildren.add(new SubResourceDefinition(Resource.Type.Host));
     setChildren.add(new SubResourceDefinition(Resource.Type.Configuration));
     setChildren.add(new SubResourceDefinition(Resource.Type.ServiceConfigVersion));

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/resources/ResourceInstanceFactoryImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/resources/ResourceInstanceFactoryImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/api/resources/ResourceInstanceFactoryImpl.java
index 9c864b6..f8c64ee 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/resources/ResourceInstanceFactoryImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/resources/ResourceInstanceFactoryImpl.java
@@ -89,6 +89,10 @@ public class ResourceInstanceFactoryImpl implements ResourceInstanceFactory {
         resourceDefinition = new ServiceResourceDefinition();
         break;
 
+      case ServiceGroup:
+        resourceDefinition = new ServiceGroupResourceDefinition();
+        break;
+
       case Host:
         resourceDefinition = mapIds.containsKey(Resource.Type.Cluster) ?
             new HostResourceDefinition() : new DetachedHostResourceDefinition();

http://git-wip-us.apache.org/repos/asf/ambari/blob/b88db3cc/ambari-server/src/main/java/org/apache/ambari/server/api/resources/ServiceGroupResourceDefinition.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/resources/ServiceGroupResourceDefinition.java b/ambari-server/src/main/java/org/apache/ambari/server/api/resources/ServiceGroupResourceDefinition.java
new file mode 100644
index 0000000..534c427
--- /dev/null
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/resources/ServiceGroupResourceDefinition.java
@@ -0,0 +1,54 @@
+/**
+ * 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.
+ */
+
+package org.apache.ambari.server.api.resources;
+
+import org.apache.ambari.server.controller.spi.Resource;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Service group resource definition.
+ */
+public class ServiceGroupResourceDefinition extends BaseResourceDefinition {
+
+  /**
+   * Constructor.
+   *
+   */
+  public ServiceGroupResourceDefinition() {
+    super(Resource.Type.ServiceGroup);
+  }
+
+  @Override
+  public String getPluralName() {
+    return "servicegroups";
+  }
+
+  @Override
+  public String getSingularName() {
+    return "servicegroup";
+  }
+
+  @Override
+  public Set<SubResourceDefinition> getSubResourceDefinitions() {
+    Set<SubResourceDefinition> subs = new HashSet<SubResourceDefinition>();
+    return subs;
+  }
+}