Merge branch 'trunk' into branch-3.0-perf
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/366f6ca9 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/366f6ca9 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/366f6ca9 Branch: refs/heads/branch-3.0-perf Commit: 366f6ca9bd8eec1dd03a735a67158956c2426a31 Parents: eaf1fd5 c3150a4 Author: Andrew Onishuk <aonis...@hortonworks.com> Authored: Thu Dec 7 16:02:06 2017 +0200 Committer: Andrew Onishuk <aonis...@hortonworks.com> Committed: Thu Dec 7 16:02:06 2017 +0200 ---------------------------------------------------------------------- .gitignore | 3 + ambari-admin/pom.xml | 2 +- .../app/assets/fonts/Roboto-Regular-webfont.eot | Bin 0 -> 79547 bytes .../app/assets/fonts/Roboto-Regular-webfont.svg | 7606 ++++++ .../app/assets/fonts/Roboto-Regular-webfont.ttf | Bin 0 -> 234464 bytes .../assets/fonts/Roboto-Regular-webfont.woff | Bin 0 -> 105700 bytes .../main/resources/ui/admin-web/app/index.html | 97 +- .../resources/ui/admin-web/app/scripts/app.js | 3 +- .../app/scripts/controllers/AppCtrl.js | 177 + .../app/scripts/controllers/NavbarCtrl.js | 106 - .../app/scripts/controllers/SideNavCtrl.js | 68 + .../ambariViews/CreateViewInstanceCtrl.js | 406 +- .../controllers/ambariViews/ViewsListCtrl.js | 361 +- .../clusters/ClusterInformationCtrl.js | 106 + .../clusters/ClustersManageAccessCtrl.js | 97 - .../controllers/clusters/ExportBlueprintCtrl.js | 58 - .../controllers/clusters/UserAccessListCtrl.js | 351 - .../controllers/groups/GroupsCreateCtrl.js | 65 - .../controllers/groups/GroupsEditCtrl.js | 180 - .../controllers/groups/GroupsListCtrl.js | 106 - .../app/scripts/controllers/mainCtrl.js | 183 - .../stackVersions/StackVersionsEditCtrl.js | 27 +- .../userManagement/GroupCreateCtrl.js | 120 + .../controllers/userManagement/GroupEditCtrl.js | 248 + .../userManagement/GroupsListCtrl.js | 167 + .../userManagement/UserCreateCtrl.js | 113 + .../controllers/userManagement/UserEditCtrl.js | 364 + .../userManagement/UserManagementCtrl.js | 23 + .../controllers/userManagement/UsersListCtrl.js | 177 + .../controllers/users/UsersCreateCtrl.js | 75 - .../scripts/controllers/users/UsersListCtrl.js | 122 - .../scripts/controllers/users/UsersShowCtrl.js | 290 - .../ui/admin-web/app/scripts/i18n.config.js | 49 +- .../ui/admin-web/app/scripts/routes.js | 161 +- .../admin-web/app/scripts/services/Cluster.js | 90 +- .../ui/admin-web/app/scripts/services/Group.js | 144 +- .../app/scripts/services/GroupConstants.js | 38 - .../app/scripts/services/RoleDetailsModal.js | 5 +- .../ui/admin-web/app/scripts/services/Stack.js | 17 +- .../ui/admin-web/app/scripts/services/User.js | 20 +- .../ui/admin-web/app/scripts/services/View.js | 40 +- .../app/scripts/theme/bootstrap-ambari.js | 269 + .../app/styles/cluster-information.css | 58 + .../resources/ui/admin-web/app/styles/main.css | 696 +- .../app/styles/theme/bootstrap-ambari.css | 1518 ++ .../ui/admin-web/app/styles/toggle-switch.css | 72 + .../ui/admin-web/app/styles/top-nav.css | 200 + .../ui/admin-web/app/styles/user-management.css | 43 + .../resources/ui/admin-web/app/styles/views.css | 105 + .../admin-web/app/views/ambariViews/create.html | 204 - .../admin-web/app/views/ambariViews/edit.html | 37 +- .../app/views/ambariViews/listTable.html | 110 - .../app/views/ambariViews/listUrls.html | 117 - .../app/views/ambariViews/modals/create.html | 312 +- .../app/views/ambariViews/modals/edit.html | 138 - .../app/views/ambariViews/viewsList.html | 151 + .../app/views/authentication/main.html | 14 +- .../app/views/clusters/clusterInformation.html | 87 + .../app/views/clusters/exportBlueprint.html | 40 - .../app/views/clusters/manageAccess.html | 63 - .../app/views/clusters/userAccessList.html | 102 - .../ui/admin-web/app/views/groups/create.html | 43 - .../ui/admin-web/app/views/groups/edit.html | 98 - .../ui/admin-web/app/views/groups/list.html | 79 - .../ui/admin-web/app/views/leftNavbar.html | 126 - .../views/loginActivities/homeDirectory.html | 6 +- .../app/views/loginActivities/loginMessage.html | 6 +- .../resources/ui/admin-web/app/views/main.html | 96 - .../app/views/modals/AddVersionModal.html | 14 +- .../app/views/remoteClusters/list.html | 11 +- .../ui/admin-web/app/views/sideNav.html | 99 + .../admin-web/app/views/stackVersions/list.html | 22 +- .../views/stackVersions/stackVersionPage.html | 55 +- .../ui/admin-web/app/views/urls/create.html | 6 +- .../ui/admin-web/app/views/urls/edit.html | 6 +- .../app/views/userManagement/groupEdit.html | 122 + .../app/views/userManagement/groupsList.html | 94 + .../app/views/userManagement/main.html | 36 + .../userManagement/modals/changePassword.html | 46 + .../userManagement/modals/groupCreate.html | 87 + .../views/userManagement/modals/userCreate.html | 152 + .../app/views/userManagement/userEdit.html | 144 + .../app/views/userManagement/usersList.html | 119 + .../ui/admin-web/app/views/users/create.html | 82 - .../ui/admin-web/app/views/users/list.html | 96 - .../app/views/users/modals/changePassword.html | 46 - .../ui/admin-web/app/views/users/show.html | 122 - .../src/main/resources/ui/admin-web/bower.json | 2 +- .../src/main/resources/ui/admin-web/gulpfile.js | 10 +- .../main/resources/ui/admin-web/package.json | 6 +- .../test/unit/controllers/AppCtrl_test.js | 211 + .../controllers/ClusterInformationCtrl_test.js | 102 + .../unit/controllers/CreateViewInstanceCtrl.js | 135 - .../clusters/UserAccessListCtrl_test.js | 820 - .../controllers/groups/GroupsListCtrl_test.js | 129 - .../test/unit/controllers/mainCtrl_test.js | 215 - .../userManagement/GroupsListCtrl_test.js | 129 + .../userManagement/UsersListCtrl_test.js | 344 + .../controllers/users/UsersListCtrl_test.js | 383 - .../test/unit/services/Utility_test.js | 11 +- .../src/main/python/ambari_agent/ActionQueue.py | 5 +- .../src/main/python/ambari_agent/AmbariAgent.py | 3 - .../src/main/python/ambari_agent/Hardware.py | 130 +- .../src/main/python/ambari_agent/Heartbeat.py | 8 +- .../src/main/python/ambari_agent/HostInfo.py | 85 +- .../python/ambari_agent/alerts/base_alert.py | 2 +- .../test/python/ambari_agent/TestAmbariAgent.py | 4 +- .../test/python/ambari_agent/TestHardware.py | 56 +- .../python/ambari_agent/TestRegistration.py | 5 +- .../core/providers/package/__init__.py | 2 +- .../core/providers/package/apt.py | 23 +- .../core/providers/package/yumrpm.py | 85 +- .../core/providers/package/zypper.py | 37 +- .../libraries/functions/__init__.py | 2 +- .../libraries/functions/component_version.py | 9 +- .../libraries/functions/conf_select.py | 58 + .../libraries/functions/copy_tarball.py | 201 +- .../libraries/functions/curl_krb_request.py | 22 +- .../libraries/functions/get_lzo_packages.py | 50 - .../libraries/functions/lzo_utils.py | 93 + .../libraries/functions/package_conditions.py | 14 +- .../libraries/functions/repository_util.py | 79 +- .../libraries/functions/stack_select.py | 3 +- .../libraries/functions/tar_archive.py | 6 +- .../libraries/script/script.py | 3 +- ambari-funtest/pom.xml | 67 - ambari-infra/ambari-infra-manager/pom.xml | 11 + .../infra/job/archive/CompositeFileAction.java | 46 + .../ambari/infra/job/archive/Document.java | 54 + .../infra/job/archive/DocumentDestination.java | 23 + .../archive/DocumentExportConfiguration.java | 118 + .../job/archive/DocumentExportJobListener.java | 35 + .../job/archive/DocumentExportProperties.java | 112 + .../job/archive/DocumentExportStepListener.java | 47 + .../infra/job/archive/DocumentExporter.java | 99 + .../infra/job/archive/DocumentItemReader.java | 135 + .../infra/job/archive/DocumentItemWriter.java | 25 + .../infra/job/archive/DocumentIterator.java | 25 + .../infra/job/archive/DocumentSource.java | 24 + .../ambari/infra/job/archive/FileAction.java | 25 + .../job/archive/LocalDocumentItemWriter.java | 72 + .../ambari/infra/job/archive/S3Properties.java | 64 + .../ambari/infra/job/archive/S3Uploader.java | 51 + .../infra/job/archive/SolrDocumentIterator.java | 90 + .../infra/job/archive/SolrDocumentSource.java | 68 + .../infra/job/archive/SolrQueryBuilder.java | 115 + .../infra/job/archive/SolrQueryProperties.java | 69 + .../infra/job/archive/TarGzCompressor.java | 50 + .../apache/ambari/infra/manager/JobManager.java | 21 +- .../src/main/resources/infra-manager.properties | 12 + .../src/main/resources/log4j2.xml | 2 +- .../infra/job/archive/DocumentExporterTest.java | 147 + .../job/archive/DocumentItemReaderTest.java | 197 + .../archive/LocalDocumentItemWriterTest.java | 98 + .../infra/job/archive/SolrQueryBuilderTest.java | 113 + .../solr/AmbariSolrCloudClientBuilder.java | 4 +- .../solr/commands/CreateCollectionCommand.java | 12 +- .../infra/solr/commands/CreateShardCommand.java | 5 +- .../infra/solr/commands/GetShardsCommand.java | 2 +- ambari-infra/pom.xml | 2 +- ambari-logsearch/README.md | 27 +- .../ambari-logsearch-logfeeder/README.md | 17 +- .../ambari-logsearch-logfeeder/pom.xml | 6 +- .../ambari/logfeeder/filter/FilterKeyValue.java | 4 +- .../ambari/logfeeder/input/InputFile.java | 4 +- .../logfeeder/metrics/LogFeederAMSClient.java | 3 + .../logfeeder/metrics/MetricsManager.java | 8 +- .../src/main/resources/log-samples/.gitignore | 4 + .../log-samples/logs/service_sample.txt | 3 + .../log-samples/shipper-conf/global.config.json | 10 + .../shipper-conf/input.config-sample.json | 31 + .../shipper-conf/output.config-sample.json | 34 + .../src/main/resources/log4j.xml | 4 +- .../src/main/resources/logfeeder.properties | 31 +- .../logfeeder/metrics/MetricsManagerTest.java | 10 +- .../ambari-logsearch-server/.gitignore | 1 + .../ambari-logsearch-server/README.md | 44 +- .../ambari-logsearch-server/pom.xml | 2 +- ambari-logsearch/ambari-logsearch-server/run.sh | 2 +- .../configsets/hadoop_logs/conf/managed-schema | 2 + .../ambari/logsearch/conf/AuthPropsConfig.java | 18 + .../ambari/logsearch/conf/SecurityConfig.java | 6 +- .../ambari/logsearch/solr/SolrConstants.java | 1 + .../solr/model/SolrServiceLogData.java | 17 + .../LogsearchAuthenticationEntryPoint.java | 15 +- .../src/main/resources/logsearch.properties | 54 +- .../ambari-logsearch-web/src/app/app.module.ts | 22 +- .../components/logs-table-component.spec.ts | 61 + .../classes/components/logs-table-component.ts | 51 + .../src/app/classes/filtering.ts | 70 + .../src/app/classes/models/app-state.ts | 15 +- .../src/app/classes/models/audit-log.ts | 2 +- .../src/app/classes/models/node-item.ts | 30 + .../src/app/classes/models/node.ts | 30 - .../src/app/classes/models/store.ts | 18 +- .../src/app/classes/models/tab.ts | 49 + .../classes/queries/audit-logs-query-params.ts | 3 +- .../service-logs-truncated-query-params.ts | 3 +- .../src/app/classes/string.ts | 25 + .../action-menu/action-menu.component.html | 20 + .../action-menu/action-menu.component.less | 27 + .../action-menu/action-menu.component.spec.ts | 47 + .../action-menu/action-menu.component.ts | 105 + .../src/app/components/app.component.html | 4 +- .../src/app/components/app.component.less | 5 +- .../src/app/components/app.component.spec.ts | 4 +- .../src/app/components/app.component.ts | 6 +- .../audit-logs-table.component.html | 54 + .../audit-logs-table.component.less | 21 + .../audit-logs-table.component.spec.ts | 157 + .../audit-logs-table.component.ts | 55 + .../collapsible-panel.component.spec.ts | 14 +- .../date-picker/date-picker.component.spec.ts | 2 + .../date-picker/date-picker.component.ts | 35 +- .../dropdown-button.component.html | 4 +- .../dropdown-button.component.spec.ts | 24 +- .../dropdown-button.component.ts | 55 +- .../dropdown-list/dropdown-list.component.html | 2 +- .../dropdown-list.component.spec.ts | 15 +- .../filter-button.component.spec.ts | 24 +- .../filter-button/filter-button.component.ts | 35 +- .../filter-dropdown.component.spec.ts | 32 +- .../filter-dropdown.component.ts | 22 +- .../filters-panel/filters-panel.component.html | 31 +- .../filters-panel.component.spec.ts | 12 +- .../filters-panel/filters-panel.component.ts | 109 +- .../log-context/log-context.component.spec.ts | 9 +- .../log-level/log-level.component.html | 18 + .../log-level/log-level.component.spec.ts | 73 + .../components/log-level/log-level.component.ts | 52 + .../log-message/log-message.component.html | 24 + .../log-message/log-message.component.less | 69 + .../log-message/log-message.component.spec.ts | 64 + .../log-message/log-message.component.ts | 129 + .../login-form/login-form.component.spec.ts | 7 +- .../login-form/login-form.component.ts | 34 +- .../logs-container.component.html | 56 +- .../logs-container.component.less | 10 +- .../logs-container.component.spec.ts | 13 +- .../logs-container/logs-container.component.ts | 113 +- .../logs-list/logs-list.component.html | 65 - .../logs-list/logs-list.component.less | 109 - .../logs-list/logs-list.component.spec.ts | 95 - .../components/logs-list/logs-list.component.ts | 150 - .../main-container.component.html | 10 +- .../main-container.component.less | 4 - .../main-container.component.spec.ts | 15 +- .../main-container/main-container.component.ts | 51 +- .../menu-button/menu-button.component.html | 17 +- .../menu-button/menu-button.component.less | 22 +- .../menu-button/menu-button.component.spec.ts | 24 +- .../menu-button/menu-button.component.ts | 146 +- .../src/app/components/mixins.less | 7 +- .../pagination-controls.component.html | 15 +- .../pagination-controls.component.spec.ts | 101 + .../pagination-controls.component.ts | 76 +- .../pagination/pagination.component.html | 4 +- .../pagination/pagination.component.spec.ts | 9 +- .../pagination/pagination.component.ts | 12 +- .../search-box/search-box.component.html | 24 +- .../search-box/search-box.component.less | 23 +- .../search-box/search-box.component.ts | 130 +- .../service-logs-table.component.html | 76 + .../service-logs-table.component.less | 97 + .../service-logs-table.component.spec.ts | 126 + .../service-logs-table.component.ts | 135 + .../src/app/components/tabs/tabs.component.html | 25 + .../src/app/components/tabs/tabs.component.less | 22 + .../app/components/tabs/tabs.component.spec.ts | 125 + .../src/app/components/tabs/tabs.component.ts | 48 + .../time-histogram.component.less | 1 + .../time-range-picker.component.html | 9 +- .../time-range-picker.component.spec.ts | 42 +- .../time-range-picker.component.ts | 61 +- .../timezone-picker.component.spec.ts | 24 +- .../components/top-menu/top-menu.component.html | 10 +- .../components/top-menu/top-menu.component.less | 1 + .../components/top-menu/top-menu.component.ts | 86 +- .../src/app/components/variables.less | 7 +- .../ambari-logsearch-web/src/app/mock-data.ts | 7 +- .../src/app/services/auth.service.spec.ts | 133 + .../src/app/services/auth.service.ts | 123 + .../services/component-actions.service.spec.ts | 15 +- .../app/services/component-actions.service.ts | 69 +- .../component-generator.service.spec.ts | 13 +- .../src/app/services/filtering.service.spec.ts | 94 - .../src/app/services/filtering.service.ts | 566 - .../app/services/logs-container.service.spec.ts | 40 +- .../src/app/services/logs-container.service.ts | 834 +- .../src/app/services/mock-api-data.service.ts | 22 + .../app/services/storage/reducers.service.ts | 4 +- .../src/app/services/storage/tabs.service.ts | 33 + .../src/app/services/utils.service.spec.ts | 285 +- .../src/app/services/utils.service.ts | 67 +- .../src/assets/i18n/en.json | 7 +- .../ambari-logsearch-web/webpack.config.js | 15 +- ambari-logsearch/docker/.gitignore | 1 + ambari-logsearch/docker/Dockerfile | 19 +- ambari-logsearch/docker/all.yml | 40 + ambari-logsearch/docker/bin/start.sh | 92 +- ambari-logsearch/docker/docker-compose.yml | 89 + ambari-logsearch/docker/logsearch-docker.sh | 51 +- ambari-logsearch/docker/logsearch-logfeeder.yml | 35 + ambari-logsearch/docker/logsearch-server.yml | 35 + ambari-logsearch/docker/solr.yml | 34 + .../test-config/logfeeder/logfeeder.properties | 2 +- ambari-logsearch/docker/zookeeper.yml | 52 + ambari-logsearch/pom.xml | 3 +- ambari-metrics/ambari-metrics-assembly/pom.xml | 1 - .../ambari-metrics-hadoop-sink/pom.xml | 3 +- .../timeline/HadoopTimelineMetricsSink.java | 6 +- .../timeline/HadoopTimelineMetricsSinkTest.java | 21 +- ambari-project/pom.xml | 52 +- .../docs/security/kerberos/kerberos_service.md | 22 +- ambari-server/pom.xml | 95 +- .../actionmanager/ExecutionCommandWrapper.java | 47 +- .../ambari/server/agent/CommandRepository.java | 85 + .../ambari/server/agent/ExecutionCommand.java | 36 +- .../ambari/server/agent/HeartbeatMonitor.java | 3 +- .../ambari/server/agent/HeartbeatProcessor.java | 70 +- .../agent/stomp/dto/HostRepositories.java | 2 +- .../api/handlers/BaseManagementHandler.java | 8 - .../server/api/handlers/CreateHandler.java | 4 + .../resources/ResourceInstanceFactoryImpl.java | 5 + .../RootServiceComponentResourceDefinition.java | 9 +- .../server/api/services/AmbariMetaInfo.java | 4 +- .../ambari/server/api/services/BaseService.java | 5 +- .../server/api/services/LoggingService.java | 4 + ...iceComponentConfigurationRequestSwagger.java | 43 + ...ceComponentConfigurationResponseSwagger.java | 43 + ...ootServiceComponentConfigurationService.java | 226 + .../server/api/services/RootServiceService.java | 7 + .../api/services/ldap/AmbariConfiguration.java | 46 + .../api/services/ldap/LdapConfigOperation.java | 43 + .../services/ldap/LdapConfigurationRequest.java | 49 + .../services/ldap/LdapConfigurationService.java | 185 + .../api/services/ldap/LdapRequestInfo.java | 61 + .../stackadvisor/StackAdvisorRequest.java | 31 + .../commands/StackAdvisorCommand.java | 77 +- .../ambari/server/checks/CheckDescription.java | 9 + .../checks/DatabaseConsistencyCheckHelper.java | 2 +- .../apache/ambari/server/checks/LZOCheck.java | 80 + .../server/configuration/Configuration.java | 32 + .../controller/ActionExecutionContext.java | 6 +- .../controller/AmbariActionExecutionHelper.java | 73 +- .../AmbariCustomCommandExecutionHelper.java | 37 +- .../server/controller/AmbariHandlerList.java | 5 +- .../AmbariManagementControllerImpl.java | 99 +- .../ambari/server/controller/AmbariServer.java | 6 +- .../server/controller/ControllerModule.java | 3 + .../controller/DeleteIdentityHandler.java | 3 +- .../server/controller/KerberosHelper.java | 21 +- .../server/controller/KerberosHelperImpl.java | 169 +- .../controller/MaintenanceStateHelper.java | 3 +- .../server/controller/RepositoryResponse.java | 23 +- .../controller/ResourceProviderFactory.java | 24 +- .../ambari/server/controller/RootComponent.java | 27 + .../ambari/server/controller/RootService.java | 36 + .../controller/RootServiceResponseFactory.java | 44 +- .../AbstractControllerResourceProvider.java | 2 + .../internal/AbstractPropertyProvider.java | 4 + .../internal/AbstractProviderModule.java | 4 +- .../internal/AbstractResourceProvider.java | 2 +- .../internal/ActionResourceProvider.java | 4 + .../AlertDefinitionResourceProvider.java | 4 + .../internal/AlertGroupResourceProvider.java | 4 + .../internal/AlertResourceProvider.java | 4 + .../internal/AlertTargetResourceProvider.java | 4 + .../internal/ArtifactResourceProvider.java | 4 + .../controller/internal/BaseProvider.java | 6 +- .../BlueprintConfigurationProcessor.java | 2 +- .../internal/BlueprintResourceProvider.java | 7 +- .../internal/ClientConfigResourceProvider.java | 2 + .../internal/ClusterResourceProvider.java | 4 + .../ClusterStackVersionResourceProvider.java | 59 +- ...atibleRepositoryVersionResourceProvider.java | 4 + .../internal/ComponentResourceProvider.java | 4 + .../internal/CredentialResourceProvider.java | 4 + .../internal/DefaultProviderModule.java | 24 +- .../internal/GroupResourceProvider.java | 4 + .../internal/HostComponentResourceProvider.java | 4 + .../HostKerberosIdentityResourceProvider.java | 16 +- .../internal/HostResourceProvider.java | 56 +- .../HostStackVersionResourceProvider.java | 7 +- .../controller/internal/HostStatusHelper.java | 2 +- .../internal/HttpPropertyProvider.java | 2 +- .../internal/JsonHttpPropertyRequest.java | 2 +- .../internal/LdapSyncEventResourceProvider.java | 2 +- .../internal/MemberResourceProvider.java | 4 + .../QuickLinkArtifactResourceProvider.java | 4 + .../RecommendationResourceProvider.java | 4 + .../internal/RepositoryResourceProvider.java | 3 + .../internal/RequestResourceProvider.java | 4 + .../RoleAuthorizationResourceProvider.java | 4 + ...eComponentConfigurationResourceProvider.java | 476 + .../RootServiceComponentPropertyProvider.java | 4 +- .../RootServiceComponentResourceProvider.java | 4 +- .../internal/ServiceResourceProvider.java | 7 +- .../internal/StackAdvisorResourceProvider.java | 13 +- .../internal/StackArtifactResourceProvider.java | 5 + .../internal/StageResourceProvider.java | 4 + .../internal/TaskResourceProvider.java | 4 + .../internal/ThemeArtifactResourceProvider.java | 4 + .../internal/UpgradeItemResourceProvider.java | 4 + .../internal/UpgradeResourceProvider.java | 59 +- .../internal/UserResourceProvider.java | 4 + .../internal/ValidationResourceProvider.java | 4 + .../VersionDefinitionResourceProvider.java | 13 + .../controller/jdbc/JDBCResourceProvider.java | 2 +- .../controller/jmx/JMXPropertyProvider.java | 2 +- .../metrics/MetricsCollectorHAClusterState.java | 2 +- .../metrics/MetricsCollectorHAManager.java | 2 +- .../metrics/MetricsDownsamplingMethod.java | 2 +- .../metrics/MetricsPropertyProvider.java | 2 +- .../metrics/MetricsReportPropertyProvider.java | 2 +- .../metrics/RestMetricsPropertyProvider.java | 2 +- .../ThreadPoolEnabledPropertyProvider.java | 4 + .../ganglia/GangliaPropertyProvider.java | 2 +- .../ganglia/GangliaReportPropertyProvider.java | 2 +- .../metrics/timeline/AMSPropertyProvider.java | 3 + .../timeline/AMSReportPropertyProvider.java | 3 + .../ambari/server/controller/spi/Resource.java | 3 + .../controller/utilities/DatabaseChecker.java | 2 +- .../state/DefaultServiceCalculatedState.java | 2 +- .../state/FlumeServiceCalculatedState.java | 4 + .../state/HBaseServiceCalculatedState.java | 4 + .../state/HDFSServiceCalculatedState.java | 4 + .../state/HiveServiceCalculatedState.java | 4 + .../state/OozieServiceCalculatedState.java | 4 + .../state/YARNServiceCalculatedState.java | 4 + .../events/AmbariConfigurationChangedEvent.java | 36 + .../ambari/server/events/AmbariEvent.java | 10 +- .../ServiceComponentUninstalledEvent.java | 11 +- .../listeners/alerts/AlertReceivedListener.java | 10 +- .../alerts/AlertStateChangedListener.java | 6 +- .../apache/ambari/server/ldap/LdapModule.java | 82 + .../ldap/domain/AmbariLdapConfigKeys.java | 83 + .../ldap/domain/AmbariLdapConfiguration.java | 203 + .../domain/AmbariLdapConfigurationFactory.java | 34 + .../AmbariLdapConfigurationProvider.java | 113 + .../ldap/service/AmbariLdapException.java | 33 + .../server/ldap/service/AmbariLdapFacade.java | 140 + .../server/ldap/service/AttributeDetector.java | 41 + .../service/LdapAttributeDetectionService.java | 40 + .../ldap/service/LdapConfigurationService.java | 60 + .../service/LdapConnectionConfigService.java | 36 + .../ambari/server/ldap/service/LdapFacade.java | 58 + .../DefaultLdapAttributeDetectionService.java | 200 + .../ads/DefaultLdapConfigurationService.java | 213 + .../ads/DefaultLdapConnectionConfigService.java | 113 + .../ads/LdapConnectionTemplateFactory.java | 111 + .../ads/detectors/AttributeDetectorFactory.java | 75 + .../ads/detectors/ChainedAttributeDetector.java | 73 + .../ads/detectors/GroupMemberAttrDetector.java | 65 + .../ads/detectors/GroupNameAttrDetector.java | 70 + .../ads/detectors/GroupObjectClassDetector.java | 73 + .../OccurrenceAndWeightBasedDetector.java | 143 + .../detectors/UserGroupMemberAttrDetector.java | 64 + .../ads/detectors/UserNameAttrDetector.java | 71 + .../ads/detectors/UserObjectClassDetector.java | 69 + .../metadata/AmbariServiceAlertDefinitions.java | 20 +- .../dispatchers/AmbariSNMPDispatcher.java | 10 +- .../ambari/server/orm/DBAccessorImpl.java | 8 +- .../server/orm/dao/AlertDefinitionDAO.java | 7 +- .../ambari/server/orm/dao/AlertDispatchDAO.java | 4 +- .../server/orm/dao/AmbariConfigurationDAO.java | 179 + .../apache/ambari/server/orm/dao/DaoUtils.java | 13 +- .../server/orm/dao/KerberosKeytabDAO.java | 110 + .../server/orm/dao/KerberosPrincipalDAO.java | 7 + .../orm/dao/KerberosPrincipalHostDAO.java | 40 +- .../orm/entities/AmbariConfigurationEntity.java | 112 + .../entities/AmbariConfigurationEntityPK.java | 88 + .../orm/entities/KerberosKeytabEntity.java | 86 + .../entities/KerberosPrincipalHostEntity.java | 57 +- .../entities/KerberosPrincipalHostEntityPK.java | 19 +- .../orm/entities/RemoteAmbariClusterEntity.java | 2 +- .../server/orm/entities/RepositoryEntity.java | 53 +- .../orm/entities/RepositoryVersionEntity.java | 27 + .../AmbariLdapAuthenticationProvider.java | 2 +- .../authorization/RoleAuthorization.java | 95 +- .../security/encryption/CredentialProvider.java | 2 +- .../serveraction/ServerActionExecutor.java | 147 +- .../kerberos/ADKerberosOperationHandler.java | 22 +- .../AbstractPrepareKerberosServerAction.java | 54 +- .../kerberos/CleanupServerAction.java | 14 +- .../server/serveraction/kerberos/Component.java | 13 +- .../ConfigureAmbariIdentitiesServerAction.java | 31 +- .../kerberos/CreateKeytabFilesServerAction.java | 65 +- .../kerberos/CreatePrincipalsServerAction.java | 53 +- .../kerberos/DestroyPrincipalsServerAction.java | 3 +- .../kerberos/IPAKerberosOperationHandler.java | 1067 +- .../kerberos/KDCKerberosOperationHandler.java | 391 + .../kerberos/KerberosIdentityDataFile.java | 2 - .../KerberosIdentityDataFileWriter.java | 9 +- .../kerberos/KerberosOperationHandler.java | 64 +- .../kerberos/KerberosServerAction.java | 48 +- .../kerberos/MITKerberosOperationHandler.java | 406 +- .../PrepareDisableKerberosServerAction.java | 2 +- .../PrepareEnableKerberosServerAction.java | 2 +- .../PrepareKerberosIdentitiesServerAction.java | 8 +- .../stageutils/ResolvedKerberosKeytab.java | 257 + .../upgrades/CreateAndConfigureAction.java | 164 + .../upgrades/FinalizeUpgradeAction.java | 54 +- .../upgrades/PreconfigureKerberosAction.java | 48 +- .../ambari/server/stack/MasterHostResolver.java | 2 +- .../apache/ambari/server/stack/RepoUtil.java | 1 + .../ambari/server/stack/ServiceDirectory.java | 29 + .../ambari/server/stack/ServiceModule.java | 8 + .../ambari/server/stack/StackManager.java | 5 - .../ambari/server/state/ConfigHelper.java | 28 +- .../ambari/server/state/RepositoryInfo.java | 23 +- .../apache/ambari/server/state/ServiceImpl.java | 2 +- .../apache/ambari/server/state/ServiceInfo.java | 16 +- .../ambari/server/state/UpgradeContext.java | 2 +- .../server/state/alert/AlertDefinitionHash.java | 8 +- .../server/state/cluster/ClusterImpl.java | 4 +- .../state/repository/ClusterVersionSummary.java | 3 + .../state/repository/ServiceVersionSummary.java | 11 +- .../state/repository/VersionDefinitionXml.java | 25 +- .../services/AmbariServerAlertService.java | 4 +- .../state/services/MetricsRetrievalService.java | 2 +- .../ambari/server/state/stack/OsFamily.java | 2 +- .../ambari/server/state/stack/RepoTag.java | 34 + .../server/state/stack/RepositoryXml.java | 13 + .../ambari/server/state/stack/UpgradePack.java | 3 + .../state/stack/upgrade/ClusterGrouping.java | 2 + .../stack/upgrade/CreateAndConfigureTask.java | 57 + .../stack/upgrade/RepositoryVersionHelper.java | 357 +- .../ambari/server/state/stack/upgrade/Task.java | 6 +- .../svccomphost/ServiceComponentHostImpl.java | 4 +- .../ambari/server/topology/AmbariContext.java | 3 +- .../ambari/server/topology/Blueprint.java | 2 +- .../server/topology/BlueprintFactory.java | 3 +- .../ambari/server/topology/BlueprintImpl.java | 3 +- .../server/topology/BlueprintValidator.java | 3 +- .../server/topology/BlueprintValidatorImpl.java | 23 +- .../topology/ClusterConfigurationRequest.java | 2 +- .../GPLLicenseNotAcceptedException.java | 28 + .../server/topology/PersistedStateImpl.java | 2 +- .../validators/RequiredPasswordValidator.java | 3 +- .../server/upgrade/AbstractUpgradeCatalog.java | 8 + .../server/upgrade/SchemaUpgradeHelper.java | 30 +- .../ambari/server/upgrade/UpgradeCatalog.java | 6 + .../server/upgrade/UpgradeCatalog260.java | 201 +- .../server/upgrade/UpgradeCatalog261.java | 119 + .../server/upgrade/UpgradeCatalog300.java | 47 +- .../apache/ambari/server/utils/RetryHelper.java | 2 +- .../ambari/server/utils/VersionUtils.java | 46 +- .../server/view/ViewDataMigrationUtility.java | 2 +- .../ambari/server/view/ViewExtractor.java | 2 +- .../apache/ambari/server/view/ViewRegistry.java | 2 +- .../server/view/ViewSubResourceProvider.java | 4 + .../server/view/persistence/DataStoreImpl.java | 2 +- ambari-server/src/main/python/ambari-server.py | 2 + .../python/ambari_server/serverConfiguration.py | 29 + .../main/python/ambari_server/serverSetup.py | 8 +- .../main/python/ambari_server/serverUpgrade.py | 18 +- .../resources/Ambari-DDL-AzureDB-CREATE.sql | 31 +- .../main/resources/Ambari-DDL-Derby-CREATE.sql | 24 +- .../main/resources/Ambari-DDL-MySQL-CREATE.sql | 22 +- .../main/resources/Ambari-DDL-Oracle-CREATE.sql | 22 +- .../resources/Ambari-DDL-Postgres-CREATE.sql | 26 +- .../resources/Ambari-DDL-SQLAnywhere-CREATE.sql | 22 +- .../resources/Ambari-DDL-SQLServer-CREATE.sql | 23 +- .../src/main/resources/META-INF/persistence.xml | 2 + .../ATLAS/0.1.0.2.3/package/scripts/params.py | 2 +- .../ATLAS/0.7.0.3.0/package/scripts/params.py | 2 +- .../DRUID/0.10.1/package/scripts/druid.py | 3 +- .../DRUID/0.10.1/package/scripts/params.py | 5 +- .../DRUID/0.10.1/themes/theme.json | 26 +- .../FALCON/0.5.0.2.1/package/scripts/falcon.py | 11 +- .../HBASE/2.0.0.3.0/service_advisor.py | 12 +- .../common-services/HDFS/2.1.0.2.0/metainfo.xml | 30 - .../HDFS/2.1.0.2.0/package/scripts/hdfs.py | 8 +- .../2.1.0.2.0/package/scripts/install_params.py | 4 - .../2.1.0.2.0/package/scripts/params_linux.py | 5 - .../common-services/HDFS/3.0.0.3.0/metainfo.xml | 30 - .../HDFS/3.0.0.3.0/package/scripts/hdfs.py | 8 +- .../3.0.0.3.0/package/scripts/install_params.py | 4 - .../3.0.0.3.0/package/scripts/params_linux.py | 4 - .../HIVE/0.12.0.2.0/configuration/hive-site.xml | 40 +- .../HIVE/0.12.0.2.0/metainfo.xml | 5 - .../package/alerts/alert_hive_thrift_port.py | 3 +- .../0.12.0.2.0/package/files/startMetastore.sh | 4 +- .../HIVE/0.12.0.2.0/package/scripts/hive.py | 15 +- .../package/scripts/hive_server_interactive.py | 20 +- .../0.12.0.2.0/package/scripts/hive_service.py | 10 +- .../package/scripts/hive_service_interactive.py | 5 +- .../0.12.0.2.0/package/scripts/params_linux.py | 3 +- .../0.12.0.2.0/package/scripts/service_check.py | 6 +- .../package/scripts/webhcat_service.py | 19 +- .../common-services/HIVE/2.1.0.3.0/metainfo.xml | 10 - .../2.1.0.3.0/package/files/startMetastore.sh | 4 +- .../HIVE/2.1.0.3.0/package/scripts/hive.py | 3 + .../2.1.0.3.0/package/scripts/hive_service.py | 8 +- .../package/scripts/hive_service_interactive.py | 5 +- .../2.1.0.3.0/package/scripts/params_linux.py | 10 +- .../2.1.0.3.0/package/scripts/service_check.py | 6 +- .../package/scripts/webhcat_service.py | 19 +- .../1.10.3-10/configuration/kerberos-env.xml | 36 +- .../package/scripts/kerberos_common.py | 7 +- .../1.10.3-30/configuration/kerberos-env.xml | 36 +- .../package/scripts/kerberos_common.py | 7 +- .../LOGSEARCH/0.5.0/metainfo.xml | 6 +- .../1.0.0.2.3/package/scripts/service_check.py | 3 +- .../OOZIE/4.0.0.2.0/package/scripts/oozie.py | 38 +- .../4.0.0.2.0/package/scripts/params_linux.py | 5 +- .../OOZIE/4.2.0.2.3/metainfo.xml | 5 - .../OOZIE/4.2.0.3.0/metainfo.xml | 14 +- .../OOZIE/4.2.0.3.0/package/scripts/oozie.py | 15 +- .../4.2.0.3.0/package/scripts/params_linux.py | 5 +- .../0.5.0.2.3/configuration/kms-site.xml | 26 - .../1.0.0.3.0/configuration/kms-site.xml | 26 - .../scripts/alerts/alert_spark_thrift_port.py | 8 +- .../SPARK/1.2.1/package/scripts/setup_spark.py | 3 +- .../scripts/alerts/alert_spark2_thrift_port.py | 8 +- .../SPARK2/2.0.0/package/scripts/setup_spark.py | 3 +- .../SQOOP/1.4.4.2.0/metainfo.xml | 5 - .../1.4.4.2.0/package/scripts/params_linux.py | 4 +- .../SQOOP/1.4.4.3.0/metainfo.xml | 10 - .../1.4.4.3.0/package/scripts/params_linux.py | 4 +- .../SUPERSET/0.15.0/themes/theme.json | 22 +- .../0.4.0.2.1/package/scripts/params_linux.py | 2 +- .../TEZ/0.4.0.2.1/package/scripts/tez.py | 5 +- .../TEZ/0.9.0.3.0/configuration/tez-site.xml | 4 +- .../0.9.0.3.0/package/scripts/params_linux.py | 2 +- .../TEZ/0.9.0.3.0/package/scripts/tez.py | 4 + .../configuration-mapred/mapred-site.xml | 2 +- .../2.1.0.2.0/package/scripts/params_linux.py | 8 +- .../YARN/2.1.0.2.0/package/scripts/yarn.py | 3 + .../configuration-mapred/mapred-site.xml | 2 +- .../3.0.0.3.0/package/scripts/params_linux.py | 8 +- .../YARN/3.0.0.3.0/package/scripts/yarn.py | 3 + .../ZEPPELIN/0.7.0/package/scripts/master.py | 11 +- .../ZOOKEEPER/3.4.5/metainfo.xml | 1 + .../custom_actions/scripts/install_packages.py | 17 +- .../custom_actions/scripts/ru_execute_tasks.py | 5 +- .../BIGTOP/0.8/services/HIVE/metainfo.xml | 4 - .../BIGTOP/0.8/services/OOZIE/metainfo.xml | 4 - .../2.0.6.GlusterFS/services/HIVE/metainfo.xml | 4 - .../2.0.6.GlusterFS/services/OOZIE/metainfo.xml | 4 - .../HDP/2.0.6/properties/stack_features.json | 20 + .../HDP/2.0.6/properties/stack_packages.json | 109 +- .../stacks/HDP/2.0.6/role_command_order.json | 1 + .../stacks/HDP/2.0.6/services/stack_advisor.py | 35 + .../2.1.GlusterFS/services/HIVE/metainfo.xml | 4 - .../2.1.GlusterFS/services/OOZIE/metainfo.xml | 4 - .../services/HIVE/configuration/hive-site.xml | 2 +- .../stacks/HDP/2.1/services/HIVE/metainfo.xml | 5 - .../stacks/HDP/2.2/services/HDFS/metainfo.xml | 35 - .../services/HIVE/configuration/hive-site.xml | 2 +- .../stacks/HDP/2.2/services/HIVE/metainfo.xml | 10 - .../stacks/HDP/2.2/services/OOZIE/metainfo.xml | 5 - .../stacks/HDP/2.2/services/SQOOP/metainfo.xml | 10 - .../2.2/services/TEZ/configuration/tez-site.xml | 4 +- .../YARN/configuration-mapred/mapred-site.xml | 2 +- .../2.3.GlusterFS/services/HIVE/metainfo.xml | 9 - .../2.3.GlusterFS/services/SQOOP/metainfo.xml | 9 - .../main/resources/stacks/HDP/2.3/metainfo.xml | 2 +- .../stacks/HDP/2.3/services/HDFS/metainfo.xml | 30 - .../stacks/HDP/2.3/services/HIVE/metainfo.xml | 10 - .../stacks/HDP/2.3/upgrades/config-upgrade.xml | 4 +- .../HDP/2.3/upgrades/nonrolling-upgrade-2.6.xml | 1 + .../stacks/HDP/2.3/upgrades/upgrade-2.6.xml | 1 + .../stacks/HDP/2.4/upgrades/config-upgrade.xml | 4 +- .../HDP/2.4/upgrades/nonrolling-upgrade-2.6.xml | 1 + .../stacks/HDP/2.4/upgrades/upgrade-2.6.xml | 1 + .../stacks/HDP/2.5/services/HIVE/metainfo.xml | 10 - .../services/YARN/configuration/yarn-site.xml | 4 +- .../stacks/HDP/2.5/services/YARN/kerberos.json | 12 +- .../stacks/HDP/2.5/services/stack_advisor.py | 2 +- .../stacks/HDP/2.5/upgrades/config-upgrade.xml | 27 +- .../HDP/2.5/upgrades/nonrolling-upgrade-2.6.xml | 24 +- .../stacks/HDP/2.5/upgrades/upgrade-2.6.xml | 46 +- .../resources/stacks/HDP/2.6/repos/repoinfo.xml | 2 +- .../stacks/HDP/2.6/services/FALCON/metainfo.xml | 26 + .../stacks/HDP/2.6/services/OOZIE/metainfo.xml | 37 + .../configuration/spark2-log4j-properties.xml | 56 + .../stacks/HDP/2.6/services/YARN/kerberos.json | 24 +- .../stacks/HDP/2.6/services/stack_advisor.py | 3 + .../stacks/HDP/2.6/upgrades/config-upgrade.xml | 41 +- .../HDP/2.6/upgrades/nonrolling-upgrade-2.6.xml | 18 +- .../stacks/HDP/2.6/upgrades/upgrade-2.6.xml | 9 + .../HDP/3.0/properties/stack_packages.json | 110 +- .../stacks/HDP/3.0/services/HDFS/metainfo.xml | 30 - .../YARN/configuration-mapred/mapred-site.xml | 2 +- .../services/YARN/configuration/yarn-site.xml | 4 +- .../PERF/1.0/configuration/cluster-env.xml | 26 + .../resources/stacks/PERF/1.0/hdp_urlinfo.json | 12 + .../1.0/hooks/before-INSTALL/scripts/hook.py | 7 + .../PERF/1.0/properties/stack_packages.json | 8 + .../stacks/PERF/1.0/repos/repoinfo.xml | 1 + .../FAKEYARN/configuration/yarn-site.xml | 4 +- .../KERBEROS/configuration/kerberos-env.xml | 36 +- .../src/main/resources/stacks/PERF/1.0/vdf.xml | 73 + .../resources/stacks/PERF/2.0/hdp_urlinfo.json | 12 + .../stacks/PERF/2.0/repos/repoinfo.xml | 1 + .../src/main/resources/stacks/PERF/2.0/vdf.xml | 74 + .../src/main/resources/stacks/stack_advisor.py | 9 + .../src/main/resources/upgrade-pack.xsd | 9 +- .../src/main/resources/version_definition.xsd | 23 +- .../ExecutionCommandWrapperTest.java | 15 +- .../server/agent/TestHeartbeatHandler.java | 2 +- .../commands/StackAdvisorCommandTest.java | 212 + .../ambari/server/checks/LZOCheckTest.java | 152 + .../server/checks/UpgradeCheckOrderTest.java | 3 +- .../AmbariCustomCommandExecutionHelperTest.java | 3 +- .../AmbariManagementControllerImplTest.java | 5 +- .../AmbariManagementControllerTest.java | 234 +- .../server/controller/KerberosHelperTest.java | 12 +- .../RootServiceResponseFactoryTest.java | 27 +- .../ClientConfigResourceProviderTest.java | 2 + ...ClusterStackVersionResourceProviderTest.java | 286 + ...ostKerberosIdentityResourceProviderTest.java | 12 +- .../internal/HostResourceProviderTest.java | 6 +- .../RepositoryResourceProviderTest.java | 6 +- ...ponentConfigurationResourceProviderTest.java | 393 + ...ootServiceComponentPropertyProviderTest.java | 15 +- ...ootServiceComponentResourceProviderTest.java | 9 +- .../StackAdvisorResourceProviderTest.java | 97 +- .../internal/UpgradeResourceProviderTest.java | 20 +- .../ValidationResourceProviderTest.java | 4 +- .../utilities/KerberosIdentityCleanerTest.java | 10 +- .../HostVersionOutOfSyncListenerTest.java | 2 +- .../server/ldap/LdapModuleFunctionalTest.java | 149 + .../TestAmbariLdapConfigurationFactory.java | 29 + .../ldap/service/AmbariLdapFacadeTest.java | 215 + ...efaultLdapAttributeDetectionServiceTest.java | 188 + .../DefaultLdapConfigurationServiceTest.java | 221 + .../detectors/GroupMemberAttrDetectorTest.java | 107 + .../metadata/AgentAlertDefinitionsTest.java | 6 +- .../notifications/DispatchFactoryTest.java | 3 +- .../dispatchers/AmbariSNMPDispatcherTest.java | 23 +- .../server/orm/InMemoryDefaultTestModule.java | 2 + .../ambari/server/orm/JdbcPropertyTest.java | 5 +- .../apache/ambari/server/orm/OrmTestHelper.java | 4 +- .../server/orm/dao/AlertDefinitionDAOTest.java | 7 +- .../orm/dao/AmbariConfigurationDAOTest.java | 298 + ...uthenticationProviderForDNWithSpaceTest.java | 35 +- .../AmbariLdapAuthenticationProviderTest.java | 3 +- .../AmbariLocalUserProviderTest.java | 3 +- .../authorization/LdapServerPropertiesTest.java | 5 +- .../ADKerberosOperationHandlerTest.java | 261 +- ...AbstractPrepareKerberosServerActionTest.java | 11 +- ...nfigureAmbariIdentitiesServerActionTest.java | 11 +- .../FinalizeKerberosServerActionTest.java | 5 + .../IPAKerberosOperationHandlerTest.java | 147 +- .../KDCKerberosOperationHandlerTest.java | 168 + .../kerberos/KerberosIdentityDataFileTest.java | 8 +- .../kerberos/KerberosOperationHandlerTest.java | 152 +- .../kerberos/KerberosServerActionTest.java | 137 +- .../MITKerberosOperationHandlerTest.java | 633 +- .../upgrades/CreateAndConfigureActionTest.java | 357 + .../PreconfigureKerberosActionTest.java | 10 + .../ambari/server/stack/ServiceModuleTest.java | 30 + .../server/stack/StackManagerExtensionTest.java | 6 + .../ambari/server/state/ConfigHelperTest.java | 47 + .../state/alerts/AlertReceivedListenerTest.java | 16 +- .../alerts/AlertStateChangedEventTest.java | 4 +- .../state/repository/VersionDefinitionTest.java | 77 +- .../AlertNoticeDispatchServiceTest.java | 53 +- .../upgrade/RepositoryVersionHelperTest.java | 2 +- .../server/topology/BlueprintImplTest.java | 87 +- .../topology/BlueprintValidatorImplTest.java | 10 +- .../server/upgrade/UpgradeCatalog260Test.java | 136 +- .../server/upgrade/UpgradeCatalog300Test.java | 195 +- .../ambari/server/utils/TestVersionUtils.java | 4 + .../src/test/python/TestAmbariServer.py | 11 +- .../configs/install_packages_config.json | 1 + .../install_packages_repository_file.json | 1 + .../custom_actions/test_ru_execute_tasks.py | 6 +- .../stacks/2.0.6/HIVE/test_hive_metastore.py | 8 +- .../stacks/2.0.6/HIVE/test_hive_server.py | 18 +- .../2.0.6/HIVE/test_hive_service_check.py | 2 +- .../stacks/2.0.6/HIVE/test_webhcat_server.py | 4 - .../stacks/2.0.6/common/test_stack_advisor.py | 59 +- .../stacks/2.0.6/configs/repository_file.json | 1 + .../stacks/2.1/FALCON/test_falcon_server.py | 16 +- .../stacks/2.1/HIVE/test_hive_metastore.py | 9 +- .../python/stacks/2.1/TEZ/test_tez_client.py | 2 +- .../stacks/2.2/SPARK/test_job_history_server.py | 12 +- .../stacks/2.2/SPARK/test_spark_client.py | 12 +- .../stacks/2.2/common/test_conf_select.py | 14 +- .../stacks/2.2/configs/oozie-upgrade.json | 3 +- .../2.3/MAHOUT/test_mahout_service_check.py | 4 +- .../2.3/SPARK/test_spark_thrift_server.py | 6 +- .../HIVE/running_withMOTDmsg_andTrailingMsg.txt | 46 + .../stacks/2.5/HIVE/test_hive_server_int.py | 36 +- .../stacks/2.5/common/test_stack_advisor.py | 2 +- .../2.5/configs/ranger-admin-secured.json | 2 - .../stacks/2.5/configs/ranger-kms-secured.json | 2 - .../stacks/2.6/common/test_stack_advisor.py | 11 + .../2.6/configs/ranger-admin-secured.json | 2 - .../PreconfigureActionTest_cluster_config.json | 4 +- .../test_kerberos_descriptor_ranger_kms.json | 286 + .../resources/version_definition_with_tags.xml | 86 + ambari-web/app/assets/test/tests.js | 3 + ambari-web/app/config.js | 1 - .../app/controllers/global/update_controller.js | 2 +- ambari-web/app/controllers/installer.js | 58 +- .../main/admin/kerberos/step1_controller.js | 52 +- .../main/admin/kerberos/step2_controller.js | 2 +- .../main/dashboard/config_history_controller.js | 92 +- .../main/host/bulk_operations_controller.js | 14 +- ambari-web/app/controllers/main/service/item.js | 13 +- .../main/service/reassign/step3_controller.js | 3 + .../main/service/reassign/step4_controller.js | 12 +- .../app/controllers/wizard/step8_controller.js | 12 +- .../app/mappers/components_state_mapper.js | 1 + .../app/mappers/repository_version_mapper.js | 3 +- ambari-web/app/mappers/stack_mapper.js | 3 +- ambari-web/app/messages.js | 31 +- ambari-web/app/mixins/common/serverValidator.js | 41 +- .../main/host/details/actions/check_host.js | 8 +- .../app/mixins/wizard/addSecurityConfigs.js | 7 + .../app/models/alerts/alert_definition.js | 18 +- ambari-web/app/models/client_component.js | 1 + ambari-web/app/models/repository.js | 17 + .../app/models/stack_version/repository.js | 3 +- ambari-web/app/routes/main.js | 1 - ambari-web/app/styles/application.less | 11 +- ambari-web/app/styles/hosts.less | 89 +- .../app/styles/theme/bootstrap-ambari.css | 37 +- ambari-web/app/styles/visualsearch.less | 100 + .../config_recommendation_popup.hbs | 102 +- ambari-web/app/templates/main/alerts.hbs | 19 +- .../alert_definition_summary.hbs | 2 +- .../templates/main/dashboard/config_history.hbs | 23 +- ambari-web/app/templates/main/host.hbs | 26 +- .../templates/main/host/combo_search_box.hbs | 9 +- .../templates/main/service/services/hdfs.hbs | 116 +- .../templates/main/service/services/yarn.hbs | 184 +- ambari-web/app/templates/wizard/step1.hbs | 36 + ambari-web/app/utils/ajax/ajax.js | 4 + ambari-web/app/views.js | 3 + ambari-web/app/views/common/controls_view.js | 9 +- .../config_validation_popup.js | 7 +- ambari-web/app/views/common/search_box_view.js | 165 + ambari-web/app/views/common/table_view.js | 11 + .../upgrade_version_column_view.js | 1 - .../app/views/main/alert_definitions_view.js | 264 - .../alert_definition_summary.js | 2 +- .../app/views/main/alerts/alert_search_box.js | 195 + .../main/dashboard/config_history_search_box.js | 221 + .../views/main/dashboard/config_history_view.js | 101 - .../app/views/main/host/combo_search_box.js | 36 +- .../app/views/main/service/services/yarn.js | 21 +- ambari-web/test/controllers/installer_test.js | 14 +- .../admin/kerberos/step1_controller_test.js | 17 - .../admin/kerberos/step2_controller_test.js | 2 +- .../test/controllers/main/service/item_test.js | 49 +- .../service/reassign/step4_controller_test.js | 9 +- ambari-web/test/init_test.js | 8 + .../test/mixins/common/serverValidator_test.js | 15 +- .../test/views/common/controls_view_test.js | 2 +- .../test/views/common/search_box_view_test.js | 240 + .../views/main/alert_definitions_view_test.js | 152 - .../views/main/alerts/alert_search_box_test.js | 168 + .../dashboard/config_history_search_box_test.js | 207 + .../main/dashboard/config_history_view_test.js | 187 - .../views/main/host/combo_search_box_test.js | 66 +- .../views/main/service/services/yarn_test.js | 22 - .../vendor/scripts/theme/bootstrap-ambari.js | 37 +- .../stacks/ODPi/2.0/services/HIVE/metainfo.xml | 10 - contrib/utils/perf/deploy-gce-perf-cluster.py | 1 + contrib/version-builder/version_builder.py | 13 +- .../resources/ui/app/components/upload-file.js | 38 +- .../files/src/main/resources/ui/bower.json | 4 +- .../src/main/resources/ui/hive-web/bower.json | 4 +- contrib/views/storm/pom.xml | 103 +- .../src/main/resources/images/icon-bolt.png | Bin 2157 -> 0 bytes .../src/main/resources/images/icon-spout.png | Bin 2620 -> 0 bytes .../storm/src/main/resources/images/loader.gif | Bin 15017 -> 0 bytes .../views/storm/src/main/resources/index.html | 45 - .../js/backbone-paginator.min.js | 1325 -- .../main/resources/libs/Backbone/js/Backbone.js | 1920 -- .../libs/Bootstrap/css/bootstrap-editable.css | 663 - .../libs/Bootstrap/css/bootstrap-slider.min.css | 28 - .../libs/Bootstrap/css/bootstrap-switch.min.css | 22 - .../resources/libs/Bootstrap/css/bootstrap.css | 5959 ----- .../fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 288 - .../fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes .../resources/libs/Bootstrap/images/clear.png | Bin 509 -> 0 bytes .../resources/libs/Bootstrap/images/loading.gif | Bin 1849 -> 0 bytes .../libs/Bootstrap/js/bootstrap-editable.min.js | 7 - .../libs/Bootstrap/js/bootstrap-notify.min.js | 1 - .../libs/Bootstrap/js/bootstrap-slider.min.js | 29 - .../libs/Bootstrap/js/bootstrap-switch.min.js | 22 - .../libs/Bootstrap/js/bootstrap.min.js | 7 - .../libs/Font-Awesome/css/font-awesome.min.css | 4 - .../libs/Font-Awesome/fonts/FontAwesome.otf | Bin 109688 -> 0 bytes .../Font-Awesome/fonts/fontawesome-webfont.eot | Bin 70807 -> 0 bytes .../Font-Awesome/fonts/fontawesome-webfont.svg | 655 - .../Font-Awesome/fonts/fontawesome-webfont.ttf | Bin 142072 -> 0 bytes .../Font-Awesome/fonts/fontawesome-webfont.woff | Bin 83588 -> 0 bytes .../fonts/fontawesome-webfont.woff2 | Bin 66624 -> 0 bytes .../resources/libs/Underscore/js/Underscore.js | 1548 -- .../resources/libs/bootbox/js/bootbox.min.js | 6 - .../src/main/resources/libs/d3/js/d3-tip.min.js | 1 - .../src/main/resources/libs/d3/js/d3.min.js | 5 - .../resources/libs/dagre-d3/dagre-d3.min.js | 28 - .../libs/jQuery/js/jquery-2.2.3.min.js | 4 - .../main/resources/libs/jsx/JSXTransformer.js | 15201 ------------ .../storm/src/main/resources/libs/jsx/jsx.js | 75 - .../main/resources/libs/react/js/react-dom.js | 42 - .../libs/react/js/react-with-addons.js | 20775 ----------------- .../resources/libs/require-js/js/require.min.js | 36 - .../main/resources/libs/require-text/js/text.js | 390 - .../scripts/collections/BaseCollection.js | 197 - .../scripts/collections/VNimbusConfigList.js | 52 - .../scripts/collections/VNimbusList.js | 52 - .../scripts/collections/VSupervisorList.js | 52 - .../scripts/collections/VTopologyConfigList.js | 49 - .../scripts/collections/VTopologyList.js | 52 - .../resources/scripts/components/BarChart.jsx | 402 - .../scripts/components/Breadcrumbs.jsx | 50 - .../main/resources/scripts/components/Modal.jsx | 60 - .../scripts/components/RadialChart.jsx | 127 - .../resources/scripts/components/SearchLogs.jsx | 89 - .../main/resources/scripts/components/Table.jsx | 101 - .../scripts/components/TopologyGraph.jsx | 199 - .../scripts/containers/ClusterSummary.jsx | 122 - .../scripts/containers/NimbusConfigSummary.jsx | 103 - .../scripts/containers/NimbusSummary.jsx | 139 - .../scripts/containers/SupervisorSummary.jsx | 155 - .../containers/TopologyConfiguration.jsx | 93 - .../scripts/containers/TopologyDetailGraph.jsx | 66 - .../scripts/containers/TopologyListing.jsx | 188 - .../storm/src/main/resources/scripts/main.js | 98 - .../main/resources/scripts/models/BaseModel.js | 83 - .../main/resources/scripts/models/VCluster.js | 42 - .../main/resources/scripts/models/VNimbus.js | 42 - .../resources/scripts/models/VNimbusConfig.js | 42 - .../resources/scripts/models/VSupervisor.js | 42 - .../main/resources/scripts/models/VTopology.js | 90 - .../resources/scripts/models/VTopologyConfig.js | 34 - .../scripts/modules/Table/PageableTable.jsx | 47 - .../scripts/modules/Table/Pagination.jsx | 161 - .../src/main/resources/scripts/router/Router.js | 123 - .../src/main/resources/scripts/utils/Globals.js | 30 - .../main/resources/scripts/utils/Overrides.js | 30 - .../src/main/resources/scripts/utils/Utils.js | 113 - .../scripts/views/ComponentDetailView.jsx | 534 - .../main/resources/scripts/views/Dashboard.jsx | 65 - .../src/main/resources/scripts/views/Footer.jsx | 48 - .../scripts/views/NimbusSummaryView.jsx | 65 - .../resources/scripts/views/ProfilingView.jsx | 214 - .../resources/scripts/views/RebalanceView.jsx | 223 - .../scripts/views/SupervisorSummaryView.jsx | 65 - .../scripts/views/TopologyDetailView.jsx | 1039 - .../scripts/views/TopologyListingView.jsx | 65 - .../storm/src/main/resources/styles/style.css | 579 - .../views/storm/src/main/resources/ui/.babelrc | 25 + .../src/main/resources/ui/.eslintignore.js | 3 + .../storm/src/main/resources/ui/.eslintrc.js | 58 + .../src/main/resources/ui/app/scripts/app.js | 40 + .../ui/app/scripts/components/BarChart.jsx | 429 + .../ui/app/scripts/components/Breadcrumbs.jsx | 45 + .../app/scripts/components/CommonExpanded.jsx | 30 + .../scripts/components/CommonNotification.jsx | 69 + .../app/scripts/components/CommonPagination.jsx | 56 + .../components/CommonSwitchComponent.jsx | 41 + .../scripts/components/CommonWindowPanel.jsx | 99 + .../scripts/components/CustomToastContainer.jsx | 41 + .../ui/app/scripts/components/Editable.jsx | 127 + .../ui/app/scripts/components/FSModel.jsx | 149 + .../ui/app/scripts/components/FSReactToastr.jsx | 37 + .../ui/app/scripts/components/Footer.jsx | 28 + .../scripts/components/LogLevelComponent.jsx | 236 + .../ui/app/scripts/components/ProfilingView.jsx | 168 + .../ui/app/scripts/components/RadialChart.jsx | 134 + .../scripts/components/RebalanceTopology.jsx | 152 + .../ui/app/scripts/components/SearchLogs.jsx | 84 + .../ui/app/scripts/components/TopologyGraph.jsx | 208 + .../ui/app/scripts/containers/BaseContainer.jsx | 50 + .../app/scripts/containers/ClusterSummary.jsx | 125 + .../scripts/containers/ComponentDetailView.jsx | 714 + .../ui/app/scripts/containers/Dashboard.jsx | 52 + .../scripts/containers/NimbusConfigSummary.jsx | 126 + .../ui/app/scripts/containers/NimbusSummary.jsx | 150 + .../scripts/containers/SupervisorSummary.jsx | 165 + .../scripts/containers/TopologyDetailView.jsx | 862 + .../app/scripts/containers/TopologyListing.jsx | 222 + .../src/main/resources/ui/app/scripts/main.js | 46 + .../ui/app/scripts/rest/TopologyREST.js | 118 + .../resources/ui/app/scripts/routers/routes.jsx | 68 + .../resources/ui/app/scripts/utils/Constants.js | 45 + .../resources/ui/app/scripts/utils/Utils.js | 51 + .../resources/ui/app/styles/css/bootstrap.css | 6757 ++++++ .../ui/app/styles/css/font-awesome.min.css | 4 + .../main/resources/ui/app/styles/css/style.css | 836 + .../resources/ui/app/styles/css/toastr.min.css | 1 + .../ui/app/styles/fonts/fontawesome-webfont.eot | Bin 0 -> 76518 bytes .../ui/app/styles/fonts/fontawesome-webfont.svg | 685 + .../ui/app/styles/fonts/fontawesome-webfont.ttf | Bin 0 -> 152796 bytes .../app/styles/fonts/fontawesome-webfont.woff | Bin 0 -> 90412 bytes .../app/styles/fonts/fontawesome-webfont.woff2 | Bin 0 -> 71896 bytes .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes .../fonts/glyphicons-halflings-regular.svg | 288 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes .../resources/ui/app/styles/img/icon-bolt.png | Bin 0 -> 2157 bytes .../resources/ui/app/styles/img/icon-spout.png | Bin 0 -> 2620 bytes .../main/resources/ui/app/styles/img/loader.gif | Bin 0 -> 15017 bytes .../resources/ui/config/webpack.config.base.js | 101 + .../ui/config/webpack.config.development.js | 64 + .../ui/config/webpack.config.production.js | 131 + .../storm/src/main/resources/ui/dev-server.js | 101 + .../storm/src/main/resources/ui/index.html | 47 + .../storm/src/main/resources/ui/package.json | 110 + .../apache/ambari/view/utils/hdfs/HdfsApi.java | 16 +- .../apache/ambari/view/utils/hdfs/HdfsUtil.java | 17 +- .../ui/app/domain/workflow-importer.js | 3 +- docs/pom.xml | 22 +- pom.xml | 7 +- 1019 files changed, 52897 insertions(+), 69721 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-agent/src/main/python/ambari_agent/ActionQueue.py ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-agent/src/main/python/ambari_agent/HostInfo.py ---------------------------------------------------------------------- diff --cc ambari-agent/src/main/python/ambari_agent/HostInfo.py index e3c70d4,4a752fc..a11f188 --- a/ambari-agent/src/main/python/ambari_agent/HostInfo.py +++ b/ambari-agent/src/main/python/ambari_agent/HostInfo.py @@@ -313,33 -314,35 +315,33 @@@ class HostInfoLinux(HostInfo) logger.exception('Unable to get information about JCE') return None - def register(self, dict, runExpensiveChecks=False, checkJavaProcs=False): - def register(self, metrics, componentsMapped=True, commandsInProgress=True): - """ Return various details about the host - componentsMapped: indicates if any components are mapped to this host - commandsInProgress: indicates if any commands are in progress - """ ++ def register(self, metrics, runExpensiveChecks=False, checkJavaProcs=False): + """ Return various details about the host""" - dict['hostHealth'] = {} + metrics['hostHealth'] = {} - java = [] - self.javaProcs(java) - metrics['hostHealth']['activeJavaProcs'] = java + if checkJavaProcs: + java = [] + self.javaProcs(java) - dict['hostHealth']['activeJavaProcs'] = java ++ metrics['hostHealth']['activeJavaProcs'] = java liveSvcs = [] self.checkLiveServices(self.DEFAULT_LIVE_SERVICES, liveSvcs) - dict['hostHealth']['liveServices'] = liveSvcs + metrics['hostHealth']['liveServices'] = liveSvcs - dict['umask'] = str(self.getUMask()) + metrics['umask'] = str(self.getUMask()) - dict['transparentHugePage'] = self.getTransparentHugePage() - dict['firewallRunning'] = self.checkFirewall() - dict['firewallName'] = self.getFirewallName() - dict['reverseLookup'] = self.checkReverseLookup() - dict['hasUnlimitedJcePolicy'] = self.checkUnlimitedJce() + metrics['transparentHugePage'] = self.getTransparentHugePage() + metrics['firewallRunning'] = self.checkFirewall() + metrics['firewallName'] = self.getFirewallName() + metrics['reverseLookup'] = self.checkReverseLookup() + metrics['hasUnlimitedJcePolicy'] = self.checkUnlimitedJce() # If commands are in progress or components are already mapped to this host # Then do not perform certain expensive host checks - if componentsMapped or commandsInProgress: + if not runExpensiveChecks: - dict['alternatives'] = [] - dict['stackFoldersAndFiles'] = [] - dict['existingUsers'] = [] + metrics['alternatives'] = [] + metrics['stackFoldersAndFiles'] = [] + metrics['existingUsers'] = [] else: etcs = [] @@@ -433,10 -436,12 +435,10 @@@ class HostInfoWindows(HostInfo) code, out, err = run_powershell_script(self.SERVICE_STATUS_CMD.format(serivce_name)) return out, err, code - def register(self, dict, runExpensiveChecks=False): - def register(self, metrics, componentsMapped=True, commandsInProgress=True): ++ def register(self, metrics, runExpensiveChecks=False): """ Return various details about the host - componentsMapped: indicates if any components are mapped to this host - commandsInProgress: indicates if any commands are in progress """ - dict['hostHealth'] = {} + metrics['hostHealth'] = {} java = [] self.javaProcs(java) @@@ -444,18 -449,19 +446,18 @@@ liveSvcs = [] self.checkLiveServices(self.DEFAULT_LIVE_SERVICES, liveSvcs) - dict['hostHealth']['liveServices'] = liveSvcs + metrics['hostHealth']['liveServices'] = liveSvcs - dict['umask'] = str(self.getUMask()) + metrics['umask'] = str(self.getUMask()) - dict['firewallRunning'] = self.checkFirewall() - dict['firewallName'] = self.getFirewallName() - dict['reverseLookup'] = self.checkReverseLookup() + metrics['firewallRunning'] = self.checkFirewall() + metrics['firewallName'] = self.getFirewallName() + metrics['reverseLookup'] = self.checkReverseLookup() - # If commands are in progress or components are already mapped to this host - # Then do not perform certain expensive host checks - if componentsMapped or commandsInProgress: + + if not runExpensiveChecks: - dict['alternatives'] = [] - dict['stackFoldersAndFiles'] = [] - dict['existingUsers'] = [] + metrics['alternatives'] = [] + metrics['stackFoldersAndFiles'] = [] + metrics['existingUsers'] = [] else: existingUsers = [] self.checkUsers(self.DEFAULT_USERS, existingUsers) http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-agent/src/main/python/ambari_agent/alerts/base_alert.py ---------------------------------------------------------------------- diff --cc ambari-agent/src/main/python/ambari_agent/alerts/base_alert.py index eb658be,5c0305e..35aff82 --- a/ambari-agent/src/main/python/ambari_agent/alerts/base_alert.py +++ b/ambari-agent/src/main/python/ambari_agent/alerts/base_alert.py @@@ -484,8 -462,8 +484,8 @@@ class BaseAlert(object) # get the host for dfs.namenode.http-address.c1ha.nn1 and see if it's # this host - value = self._get_configuration_value(key) + value = self._get_configuration_value(configurations, key) - if value is not None and (self.host_name in value or self.public_host_name in value): + if value is not None and (self.host_name.lower() in value.lower() or self.public_host_name.lower() in value.lower()): return AlertUri(uri=value, is_ssl_enabled=is_ssl_enabled) return None http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-common/src/main/python/resource_management/libraries/functions/conf_select.py ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-common/src/main/python/resource_management/libraries/functions/copy_tarball.py ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-common/src/main/python/resource_management/libraries/functions/package_conditions.py ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-common/src/main/python/resource_management/libraries/functions/stack_select.py ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-common/src/main/python/resource_management/libraries/script/script.py ---------------------------------------------------------------------- diff --cc ambari-common/src/main/python/resource_management/libraries/script/script.py index 97e7e50,88e5336..2c45b16 --- a/ambari-common/src/main/python/resource_management/libraries/script/script.py +++ b/ambari-common/src/main/python/resource_management/libraries/script/script.py @@@ -775,10 -776,9 +776,10 @@@ class Script(object) if self.available_packages_in_repos: return self.available_packages_in_repos - pkg_provider = get_provider("Package") + + pkg_provider = get_provider("Package") try: - self.available_packages_in_repos = pkg_provider.get_available_packages_in_repos(self.get_config()['repositoryFile']['repositories']) + self.available_packages_in_repos = pkg_provider.get_available_packages_in_repos(CommandRepository(self.get_config()['repositoryFile'])) except Exception as err: Logger.exception("Unable to load available packages") self.available_packages_in_repos = [] http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-project/pom.xml ---------------------------------------------------------------------- diff --cc ambari-project/pom.xml index d9ad50b,f6e3bc7..a141c4f --- a/ambari-project/pom.xml +++ b/ambari-project/pom.xml @@@ -30,7 -30,8 +30,8 @@@ <solr.version>5.5.2</solr.version> <ambari.dir>${project.parent.basedir}</ambari.dir> <powermock.version>1.6.3</powermock.version> - <jetty.version>8.1.19.v20160209</jetty.version> + <jetty.version>9.4.2.v20170220</jetty.version> + <ldap-api.version>1.0.0</ldap-api.version> <checkstyle.version>6.19</checkstyle.version> <!-- last version that does not require Java 8 --> <swagger.version>1.5.10</swagger.version> <swagger.maven.plugin.version>3.1.4</swagger.maven.plugin.version> http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-server/pom.xml ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ExecutionCommandWrapper.java ---------------------------------------------------------------------- diff --cc ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ExecutionCommandWrapper.java index 1bf67c3,191e86c..7e8e61f --- a/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ExecutionCommandWrapper.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ExecutionCommandWrapper.java @@@ -20,8 -20,8 +20,7 @@@ package org.apache.ambari.server.action import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.HOOKS_FOLDER; import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.SERVICE_PACKAGE_FOLDER; import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.VERSION; - import static org.apache.ambari.server.stack.StackManager.DEFAULT_HOOKS_FOLDER; -import java.util.HashMap; import java.util.Map; import java.util.TreeMap; @@@ -47,6 -52,8 +51,7 @@@ import org.apache.ambari.server.state.S import org.apache.ambari.server.state.UpgradeContext; import org.apache.ambari.server.state.UpgradeContext.UpgradeSummary; import org.apache.ambari.server.state.UpgradeContextFactory; + import org.apache.ambari.server.state.stack.upgrade.RepositoryVersionHelper; -import org.apache.commons.collections.MapUtils; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-server/src/main/java/org/apache/ambari/server/agent/CommandRepository.java ---------------------------------------------------------------------- diff --cc ambari-server/src/main/java/org/apache/ambari/server/agent/CommandRepository.java index aea8ff5,449d2d5..7e0f269 --- a/ambari-server/src/main/java/org/apache/ambari/server/agent/CommandRepository.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/agent/CommandRepository.java @@@ -47,9 -45,23 +49,24 @@@ public class CommandRepository private long m_repoVersionId; @SerializedName("stackName") + @JsonProperty("stackName") private String m_stackName; + @SerializedName("repoFileName") + private String m_repoFileName; + + @SerializedName("feature") + private final CommandRepositoryFeature feature = new CommandRepositoryFeature(); + + /** + * Provides {@link CommandRepository} feature + * + * @return {@link CommandRepositoryFeature} + */ + public CommandRepositoryFeature getFeature(){ + return feature; + } + /** * {@code true} if Ambari believes that this repository has reported back it's * version after distribution. http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatMonitor.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java ---------------------------------------------------------------------- diff --cc ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java index 466b24c,83d2c98..fa69727 --- 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 @@@ -223,18 -227,18 +227,17 @@@ public class HeartbeatProcessor extend * {@link AlertEvent}s for each one. If there is a problem looking up the * cluster, then alerts will not be processed. * - * @param heartbeat - * the heartbeat to process. + * @param heartbeat the heartbeat to process. */ protected void processAlerts(HeartBeat heartbeat) { - if (heartbeat == null) { - return; + if (heartbeat != null) { + processAlerts(heartbeat.getHostname(), heartbeat.getAlerts()); } + } - String hostname = heartbeat.getHostname(); - - if (null != heartbeat.getAlerts()) { - AlertEvent event = new AlertReceivedEvent(heartbeat.getAlerts()); - for (Alert alert : event.getAlerts()) { + public void processAlerts(String hostname, List<Alert> alerts) { + if (alerts != null && !alerts.isEmpty()) { + for (Alert alert : alerts) { if (alert.getHostName() == null) { alert.setHostName(hostname); } @@@ -307,16 -353,16 +311,17 @@@ /** * Process reports of tasks executed on agents + * * @param heartbeat heartbeat to process - * @param now cached current time + * @param now cached current time * @throws AmbariException */ - protected void processCommandReports( - HeartBeat heartbeat, long now) + protected void processCommandReports(HeartBeat heartbeat, long now) throws AmbariException { + processCommandReports(heartbeat.getReports(), heartbeat.getHostname(), now); + } + + protected void processCommandReports(List<CommandReport> reports, String hostName, Long now) throws AmbariException { - String hostname = heartbeat.getHostname(); - List<CommandReport> reports = heartbeat.getReports(); // Cache HostRoleCommand entities because we will need them few times List<Long> taskIds = new ArrayList<>(); @@@ -402,9 -463,11 +414,11 @@@ } } else if (CHECK_KEYTABS.equalsIgnoreCase(customCommand)) { ListKeytabsStructuredOut structuredOut = gson.fromJson(report.getStructuredOut(), ListKeytabsStructuredOut.class); - for (MissingKeytab each : structuredOut.missingKeytabs){ - LOG.info("Missing keytab: {} on host: {} principal: {}", each.keytabFilePath, hostName, each.principal); - kerberosPrincipalHostDAO.remove(each.principal, host.getHostId()); + for (MissingKeytab each : structuredOut.missingKeytabs) { - LOG.info("Missing principal: {} for keytab: {} on host: {}", each.principal, each.keytabFilePath, hostname); ++ LOG.info("Missing principal: {} for keytab: {} on host: {}", each.principal, each.keytabFilePath, hostName); + KerberosPrincipalHostEntity kphe = kerberosPrincipalHostDAO.find(each.principal, host.getHostId(), each.keytabFilePath); + kphe.setDistributed(false); + kerberosPrincipalHostDAO.merge(kphe); } } } http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/dto/HostRepositories.java ---------------------------------------------------------------------- diff --cc ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/dto/HostRepositories.java index a076c66,0000000..37d1146 mode 100644,000000..100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/dto/HostRepositories.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/dto/HostRepositories.java @@@ -1,58 -1,0 +1,58 @@@ +/** + * 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 + * <p/> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p/> + * 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.agent.stomp.dto; + +import java.util.Map; + +import org.apache.ambari.server.agent.CommandRepository; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + - @JsonInclude(JsonInclude.Include.NON_EMPTY) ++@JsonInclude(JsonInclude.Include.NON_NULL) +public class HostRepositories { + + @JsonProperty("commandRepos") + private Map<Long, CommandRepository> repositories; + + @JsonProperty("componentRepos") + private Map<String, Long> componentRepos; + + public HostRepositories(Map<Long, CommandRepository> repositories, Map<String, Long> componentRepos) { + this.repositories = repositories; + this.componentRepos = componentRepos; + } + + public Map<Long, CommandRepository> getRepositories() { + return repositories; + } + + public void setRepositories(Map<Long, CommandRepository> repositories) { + this.repositories = repositories; + } + + public Map<String, Long> getComponentRepos() { + return componentRepos; + } + + public void setComponentRepos(Map<String, Long> componentRepos) { + this.componentRepos = componentRepos; + } +} http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java ---------------------------------------------------------------------- diff --cc ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java index 49679b4,b1eba8f..c69dceb --- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java @@@ -45,9 -42,8 +45,9 @@@ import org.apache.ambari.annotations.Ex import org.apache.ambari.server.AmbariException; import org.apache.ambari.server.ParentObjectNotFoundException; import org.apache.ambari.server.StackAccessException; +import org.apache.ambari.server.agent.CommandRepository; import org.apache.ambari.server.configuration.Configuration; - import org.apache.ambari.server.controller.RootServiceResponseFactory.Services; + import org.apache.ambari.server.controller.RootService; import org.apache.ambari.server.controller.utilities.PropertyHelper; import org.apache.ambari.server.customactions.ActionDefinition; import org.apache.ambari.server.customactions.ActionDefinitionManager; http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-server/src/main/java/org/apache/ambari/server/checks/CheckDescription.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java ---------------------------------------------------------------------- diff --cc ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java index 7a98b7c,c4df0b1..e094fa7 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java @@@ -67,9 -68,9 +68,8 @@@ import org.apache.ambari.server.configu import org.apache.ambari.server.controller.internal.RequestOperationLevel; import org.apache.ambari.server.controller.internal.RequestResourceFilter; import org.apache.ambari.server.controller.spi.Resource; -import org.apache.ambari.server.controller.spi.SystemException; import org.apache.ambari.server.metadata.ActionMetadata; import org.apache.ambari.server.orm.dao.HostRoleCommandDAO; - import org.apache.ambari.server.orm.entities.RepositoryVersionEntity; import org.apache.ambari.server.state.Cluster; import org.apache.ambari.server.state.Clusters; import org.apache.ambari.server.state.CommandScriptDefinition; http://git-wip-us.apache.org/repos/asf/ambari/blob/366f6ca9/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariHandlerList.java ----------------------------------------------------------------------