You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by mr...@apache.org on 2018/01/23 22:42:29 UTC
[ambari] 01/02: Merge branch 'trunk' into
branch-feature-AMBARI-14714
This is an automated email from the ASF dual-hosted git repository.
mradhakrishnan pushed a commit to branch branch-feature-AMBARI-14714
in repository https://gitbox.apache.org/repos/asf/ambari.git
commit d2aee2ef3b93e98168670ba5bcfff8c6b0270fae
Merge: 4ec01a1 2de9543
Author: Madhuvanthi Radhakrishnan <mr...@hortonworks.com>
AuthorDate: Tue Jan 23 13:49:34 2018 -0800
Merge branch 'trunk' into branch-feature-AMBARI-14714
.github/PULL_REQUEST_TEMPLATE.md | 10 +
.../src/main/resources/ui/admin-web/app/index.html | 9 +-
.../main/resources/ui/admin-web/app/scripts/app.js | 2 +-
.../app/scripts/controllers/SideNavCtrl.js | 6 +-
.../controllers/ambariViews/ViewsListCtrl.js | 220 +-
.../remoteClusters/RemoteClustersListCtrl.js | 110 +-
.../stackVersions/StackVersionsCreateCtrl.js | 28 +-
.../stackVersions/StackVersionsEditCtrl.js | 4 +-
.../stackVersions/StackVersionsListCtrl.js | 192 +-
.../controllers/userManagement/GroupsListCtrl.js | 92 +-
.../controllers/userManagement/UsersListCtrl.js | 132 +-
.../app/scripts/directives/comboSearch.js | 501 +
.../ui/admin-web/app/scripts/services/Cluster.js | 3 +-
.../ui/admin-web/app/scripts/services/Filters.js | 84 +
.../ui/admin-web/app/scripts/services/Group.js | 11 +-
.../admin-web/app/scripts/services/Pagination.js | 59 +
.../app/scripts/services/RemoteCluster.js | 10 +-
.../ui/admin-web/app/scripts/services/Stack.js | 34 +-
.../ui/admin-web/app/scripts/services/User.js | 22 +-
.../admin-web/app/styles/cluster-information.css | 29 +-
.../ui/admin-web/app/styles/combo-search.css | 164 +
.../resources/ui/admin-web/app/styles/main.css | 45 +
.../ui/admin-web/app/styles/user-management.css | 4 +
.../ui/admin-web/app/views/ambariViews/edit.html | 8 +-
.../admin-web/app/views/ambariViews/viewsList.html | 52 +-
.../app/views/clusters/clusterInformation.html | 8 +-
.../app/views/directives/comboSearch.html | 63 +
.../app/views/directives/editableList.html | 2 +-
.../app/views/modals/AddRepositoryModal.html | 2 +-
.../app/views/modals/RoleDetailsModal.html | 2 +-
.../admin-web/app/views/remoteClusters/list.html | 37 +-
.../ui/admin-web/app/views/stackVersions/list.html | 40 +-
.../app/views/stackVersions/stackVersionPage.html | 4 +-
.../app/views/userManagement/groupEdit.html | 14 +-
.../app/views/userManagement/groupsList.html | 55 +-
.../userManagement/modals/changePassword.html | 2 +-
.../views/userManagement/modals/groupCreate.html | 2 +-
.../views/userManagement/modals/userCreate.html | 3 +-
.../app/views/userManagement/userEdit.html | 18 +-
.../app/views/userManagement/usersList.html | 65 +-
.../src/main/resources/ui/admin-web/package.json | 4 +-
.../controllers/ambariViews/ViewsListCtrl_test.js | 111 +
.../userManagement/GroupsListCtrl_test.js | 100 +-
.../userManagement/UsersListCtrl_test.js | 306 -
.../test/unit/directives/comboSearch_test.js | 362 +
.../admin-web/test/unit/services/Filters_test.js | 161 +
.../test/unit/services/Pagination_test.js | 72 +
.../src/main/python/ambari_agent/ActionQueue.py | 21 +-
.../main/python/ambari_agent/CommandStatusDict.py | 2 +-
.../src/main/python/ambari_agent/Controller.py | 25 +-
.../ambari_agent/CustomServiceOrchestrator.py | 4 +-
.../src/main/python/ambari_agent/DataCleaner.py | 4 +-
.../src/main/python/ambari_agent/Heartbeat.py | 17 +-
.../src/main/python/ambari_agent/LiveStatus.py | 3 +-
.../src/main/python/ambari_agent/PythonExecutor.py | 15 +-
.../ambari_agent/PythonReflectiveExecutor.py | 3 +-
.../main/python/ambari_agent/RecoveryManager.py | 17 +-
.../python/ambari_agent/StatusCommandsExecutor.py | 3 +-
.../main/python/ambari_agent/alerts/ams_alert.py | 12 +-
.../main/python/ambari_agent/alerts/base_alert.py | 47 +-
.../python/ambari_agent/alerts/metric_alert.py | 6 +-
.../main/python/ambari_agent/alerts/port_alert.py | 4 +-
.../main/python/ambari_agent/alerts/web_alert.py | 6 +-
.../src/main/python/ambari_agent/security.py | 8 +-
.../src/test/python/ambari_agent/TestController.py | 8 +-
.../ambari_agent/examples/ControllerTester.py | 6 +-
.../src/main/python/ambari_commons/inet_utils.py | 46 +
.../python/ambari_commons/kerberos/__init__.py | 19 +
.../ambari_commons/kerberos/kerberos_common.py | 168 +
.../main/python/ambari_commons/kerberos/utils.py | 109 +
.../src/main/python/ambari_commons/os_check.py | 2 +
.../core/providers/package/__init__.py | 15 +
.../core/providers/package/yumrpm.py | 121 +-
.../libraries/functions/conf_select.py | 7 +
.../libraries/functions/constants.py | 11 +-
.../libraries/functions/lzo_utils.py | 6 +-
.../libraries/functions/setup_atlas_hook.py | 11 +-
.../libraries/functions/setup_ranger_plugin_xml.py | 14 +-
.../libraries/providers/hdfs_resource.py | 2 +
ambari-infra/ambari-infra-assembly/pom.xml | 43 +-
.../src/main/package/deb/manager/postinst | 9 +-
.../src/main/package/deb/manager/postrm | 8 +
.../src/main/package/rpm/manager/postinstall.sh | 11 +-
.../src/main/package/rpm/manager/postremove.sh | 23 +
ambari-infra/ambari-infra-manager-it/pom.xml | 167 +
.../java/org/apache/ambari/infra/InfraClient.java | 114 +
.../apache/ambari/infra/InfraManagerStories.java | 108 +
.../ambari/infra/OffsetDateTimeConverter.java | 39 +
.../ambari/infra/steps/AbstractInfraSteps.java | 256 +
.../apache/ambari/infra/steps/ExportJobsSteps.java | 199 +
.../src/test/resources/log4j.properties | 16 +
.../test/resources/stories/infra_api_tests.story | 57 +
ambari-infra/ambari-infra-manager/.gitignore | 5 +-
ambari-infra/ambari-infra-manager/build.xml | 11 +-
.../ambari-infra-manager/docker/Dockerfile | 6 +-
.../ambari-infra-manager/docker/bin/start.sh | 2 +-
.../ambari-infra-manager/docker/docker-compose.yml | 102 +
.../docker/infra-manager-docker-compose.sh | 124 +
ambari-infra/ambari-infra-manager/pom.xml | 44 +-
.../java/org/apache/ambari/infra/InfraManager.java | 2 +-
.../apache/ambari/infra/job/CloseableIterator.java | 24 +
.../org/apache/ambari/infra/job/JobProperties.java | 47 +
.../apache/ambari/infra/job/JobPropertyMap.java | 57 +
.../org/apache/ambari/infra/job/ObjectSource.java | 23 +
.../org/apache/ambari/infra/job/PropertyMap.java | 25 +
.../org/apache/ambari/infra/job/SolrDAOBase.java | 65 +
.../infra/job/archive/AbstractFileAction.java | 38 +
.../infra/job/archive/CompositeFileAction.java | 3 +-
.../apache/ambari/infra/job/archive/Document.java | 3 +-
.../archive/DocumentArchivingConfiguration.java | 176 +
.../job/archive/DocumentArchivingProperties.java | 264 +
.../job/archive/DocumentArchivingPropertyMap.java | 44 +
.../job/archive/DocumentExportConfiguration.java | 118 -
.../job/archive/DocumentExportJobListener.java | 35 -
.../job/archive/DocumentExportProperties.java | 112 -
.../job/archive/DocumentExportStepListener.java | 47 -
.../infra/job/archive/DocumentItemReader.java | 8 +-
.../ambari/infra/job/archive/DocumentIterator.java | 25 -
.../ambari/infra/job/archive/DocumentSource.java | 24 -
.../ambari/infra/job/archive/DocumentWiper.java | 23 +
.../infra/job/archive/ExportDestination.java | 25 +
.../infra/job/archive/FileNameSuffixFormatter.java | 63 +
.../ambari/infra/job/archive/HdfsUploader.java | 55 +
.../infra/job/archive/ItemWriterListener.java | 23 +
.../infra/job/archive/LocalDocumentItemWriter.java | 23 +-
.../infra/job/archive/LocalItemWriterListener.java | 36 +
.../ambari/infra/job/archive/S3Properties.java | 64 +-
.../ambari/infra/job/archive/S3Uploader.java | 25 +-
.../apache/ambari/infra/job/archive/SolrDAO.java | 68 +
.../infra/job/archive/SolrDocumentIterator.java | 6 +-
.../infra/job/archive/SolrDocumentSource.java | 57 +-
.../infra/job/archive/SolrParametrizedString.java | 77 +
.../ambari/infra/job/archive/SolrProperties.java | 117 +
.../ambari/infra/job/archive/SolrQueryBuilder.java | 59 +-
.../infra/job/archive/SolrQueryProperties.java | 40 +-
.../ambari/infra/job/archive/TarGzCompressor.java | 4 +-
.../infra/job/archive/WriteCompletedEvent.java | 45 +
.../deleting/DocumentDeletingConfiguration.java | 93 +
.../job/deleting/DocumentDeletingProperties.java | 77 +
.../job/deleting/DocumentDeletingPropertyMap.java | 44 +
.../infra/job/deleting/DocumentWiperTasklet.java | 49 +
.../infra/model/JobExecutionRestartRequest.java | 10 +
.../src/main/resources/infra-manager-env.sh | 24 +-
.../src/main/resources/infra-manager.properties | 58 +-
.../src/main/resources/infraManager.sh | 258 +-
.../apache/ambari/infra/job/JobPropertiesTest.java | 56 +
.../infra/job/archive/DocumentItemReaderTest.java | 8 +-
.../job/archive/FileNameSuffixFormatterTest.java | 58 +
.../job/archive/LocalDocumentItemWriterTest.java | 27 +-
.../job/archive/SolrParametrizedStringTest.java | 57 +
.../infra/job/archive/SolrPropertiesTest.java | 54 +
.../infra/job/archive/SolrQueryBuilderTest.java | 55 +-
.../infra/job/archive/SolrQueryPropertiesTest.java | 54 +
.../vagrant-infra-manager.properties.sample | 37 +
ambari-infra/pom.xml | 6 +-
ambari-logsearch/ambari-logsearch-assembly/pom.xml | 117 +-
.../src/main/package/deb/logfeeder/postinst | 22 +
.../src/main/package/deb/logfeeder/postrm | 6 +
.../src/main/package/deb/logfeeder/posttrm | 15 -
.../src/main/package/deb/logfeeder/preinst | 13 +
.../src/main/package/deb/portal/postinst | 19 +
.../src/main/package/deb/portal/postrm | 6 +
.../src/main/package/deb/portal/preinst | 13 +
.../src/main/package/rpm/logfeeder/postinstall.sh | 40 +
.../src/main/package/rpm/logfeeder/postremove.sh | 23 +
.../main/package/rpm/logfeeder/postremove.sh~HEAD | 21 +
.../main/package/rpm/logfeeder/postremove.sh~trunk | 21 +
.../src/main/package/rpm/logfeeder/preinstall.sh | 28 +
.../src/main/package/rpm/portal/postinstall.sh | 37 +
.../src/main/package/rpm/portal/postremove.sh | 23 +
.../src/main/package/rpm/portal/postremove.sh~HEAD | 21 +
.../main/package/rpm/portal/postremove.sh~trunk | 21 +
.../src/main/package/rpm/portal/preinstall.sh | 28 +
.../config/api/LogSearchConfigFactory.java | 49 +-
.../config/api/LogSearchConfigLogFeeder.java | 3 +-
.../api/model/inputconfig/CustomDescriptor.java | 31 +
.../model/inputconfig/InputCustomDescriptor.java | 22 +
.../api/model/inputconfig/MapCustomDescriptor.java | 22 +
.../model/inputconfig/impl/InputAdapter.java | 4 +-
.../impl/InputCustomDescriptorImpl.java | 71 +
.../inputconfig/impl/InputDescriptorImpl.java | 2 +
.../inputconfig/impl/MapCustomDescriptorImpl.java | 81 +
.../inputconfig/impl/PostMapValuesAdapter.java | 12 +-
.../ambari-logsearch-logfeeder-plugin-api/pom.xml | 76 +
.../ambari/logfeeder/plugin/common/AliasUtil.java | 129 +
.../ambari/logfeeder/plugin/common/ConfigItem.java | 191 +
.../plugin/common/LogFeederProperties.java | 32 +
.../ambari/logfeeder/plugin/common/MetricData.java | 37 +
.../ambari/logfeeder/plugin/filter/Filter.java | 187 +
.../logfeeder/plugin/filter/mapper/Mapper.java | 74 +
.../ambari/logfeeder/plugin/input/Input.java | 340 +
.../ambari/logfeeder/plugin/input/InputMarker.java | 29 +
.../logfeeder/plugin/input/cache/LRUCache.java | 99 +
.../logfeeder/plugin/manager/BlockManager.java | 35 +
.../logfeeder/plugin/manager/InputManager.java | 46 +
.../logfeeder/plugin/manager/OutputManager.java | 43 +
.../ambari/logfeeder/plugin/output/Output.java | 132 +
.../ambari-logsearch-logfeeder/.gitignore | 1 +
.../ambari-logsearch-logfeeder/README.md | 4 +-
.../ambari-logsearch-logfeeder/build.properties | 18 -
.../ambari-logsearch-logfeeder/build.xml | 28 +-
.../ambari-logsearch-logfeeder/pom.xml | 79 +-
ambari-logsearch/ambari-logsearch-logfeeder/run.sh | 4 +-
.../org/apache/ambari/logfeeder/LogFeeder.java | 180 +-
.../ambari/logfeeder/LogFeederCommandLine.java | 81 +-
.../ambari/logfeeder/common/ConfigBlock.java | 153 -
.../ambari/logfeeder/common/ConfigHandler.java | 161 +-
.../apache/ambari/logfeeder/common/ConfigItem.java | 97 -
.../logfeeder/common/LogEntryParseTester.java | 54 +-
.../logfeeder/common/LogFeederConstants.java | 50 +
.../ambari/logfeeder/conf/ApplicationConfig.java | 110 +
.../ambari/logfeeder/conf/InputSimulateConfig.java | 154 +
.../ambari/logfeeder/conf/LogEntryCacheConfig.java | 118 +
.../ambari/logfeeder/conf/LogFeederProps.java | 227 +
.../logfeeder/conf/LogFeederSecurityConfig.java | 191 +
.../logfeeder/conf/MetricsCollectorConfig.java | 113 +
.../org/apache/ambari/logfeeder/filter/Filter.java | 188 -
.../apache/ambari/logfeeder/filter/FilterGrok.java | 53 +-
.../apache/ambari/logfeeder/filter/FilterJSON.java | 24 +-
.../ambari/logfeeder/filter/FilterKeyValue.java | 41 +-
.../ambari/logfeeder/input/AbstractInputFile.java | 326 -
.../org/apache/ambari/logfeeder/input/Input.java | 352 -
.../logfeeder/input/InputConfigUploader.java | 92 +-
.../apache/ambari/logfeeder/input/InputFile.java | 277 +-
.../ambari/logfeeder/input/InputFileMarker.java | 60 +
.../ambari/logfeeder/input/InputManager.java | 422 -
.../ambari/logfeeder/input/InputManagerImpl.java | 444 +
.../apache/ambari/logfeeder/input/InputMarker.java | 40 -
.../apache/ambari/logfeeder/input/InputS3File.java | 61 +-
.../ambari/logfeeder/input/InputSimulate.java | 121 +-
.../ambari/logfeeder/input/cache/LRUCache.java | 99 -
.../logfeeder/input/file/FileCheckInHelper.java | 93 +
.../logfeeder/input/file/ProcessFileHelper.java | 143 +
.../input/file/ResumeLineNumberHelper.java | 91 +
.../ambari/logfeeder/input/reader/GZIPReader.java | 4 +-
.../input/reader/LogsearchReaderFactory.java | 4 +-
.../logfeeder/loglevelfilter/FilterLogData.java | 73 -
.../loglevelfilter/LogLevelFilterHandler.java | 113 +-
.../org/apache/ambari/logfeeder/mapper/Mapper.java | 45 -
.../ambari/logfeeder/mapper/MapperAnonymize.java | 11 +-
.../apache/ambari/logfeeder/mapper/MapperDate.java | 32 +-
.../ambari/logfeeder/mapper/MapperFieldCopy.java | 8 +-
.../ambari/logfeeder/mapper/MapperFieldName.java | 10 +-
.../ambari/logfeeder/mapper/MapperFieldValue.java | 10 +-
.../logfeeder/metrics/LogFeederAMSClient.java | 22 +-
.../ambari/logfeeder/metrics/MetricData.java | 46 -
.../ambari/logfeeder/metrics/MetricsManager.java | 17 +-
.../ambari/logfeeder/metrics/StatsLogger.java | 84 +
.../org/apache/ambari/logfeeder/output/Output.java | 137 -
.../apache/ambari/logfeeder/output/OutputData.java | 4 +-
.../ambari/logfeeder/output/OutputDevNull.java | 48 +-
.../apache/ambari/logfeeder/output/OutputFile.java | 56 +-
.../ambari/logfeeder/output/OutputHDFSFile.java | 47 +-
.../ambari/logfeeder/output/OutputKafka.java | 55 +-
.../ambari/logfeeder/output/OutputLineFilter.java | 4 +-
.../ambari/logfeeder/output/OutputManager.java | 258 -
.../ambari/logfeeder/output/OutputManagerImpl.java | 293 +
.../ambari/logfeeder/output/OutputS3File.java | 38 +-
.../apache/ambari/logfeeder/output/OutputSolr.java | 62 +-
.../logfeeder/output/S3OutputConfiguration.java | 12 +-
.../apache/ambari/logfeeder/output/S3Uploader.java | 1 -
.../ambari/logfeeder/output/spool/LogSpooler.java | 13 +-
.../apache/ambari/logfeeder/util/AliasUtil.java | 114 -
.../logfeeder/util/LogFeederPropertiesUtil.java | 498 -
.../ambari/logfeeder/util/LogFeederUtil.java | 37 +-
.../org/apache/ambari/logfeeder/util/SSLUtil.java | 134 -
.../src/main/package/deb/control/control | 22 -
.../src/main/package/deb/control/postinst | 15 -
.../src/main/package/deb/control/postrm | 15 -
.../src/main/package/deb/control/preinst | 15 -
.../src/main/package/deb/control/prerm | 15 -
.../shipper-conf/input.config-sample.json | 2 +-
.../src/main/resources/log4j.xml | 15 +-
.../src/main/resources/logfeeder.properties | 21 +-
.../src/main/scripts/logfeeder-env.sh | 40 +
.../src/main/scripts/logfeeder-env.sh~HEAD | 40 +
.../src/main/scripts/logfeeder-env.sh~trunk | 40 +
.../src/main/scripts/logfeeder.sh | 291 +
.../src/main/scripts/run.sh | 103 -
.../ambari/logfeeder/filter/FilterGrokTest.java | 29 +-
.../ambari/logfeeder/filter/FilterJSONTest.java | 21 +-
.../logfeeder/filter/FilterKeyValueTest.java | 23 +-
.../ambari/logfeeder/input/InputFileTest.java | 57 +-
.../ambari/logfeeder/input/InputManagerTest.java | 37 +-
.../ambari/logfeeder/input/cache/LRUCacheTest.java | 1 +
.../logfeeder/logconfig/LogConfigHandlerTest.java | 148 -
.../logfeeder/metrics/MetricsManagerTest.java | 9 +-
.../ambari/logfeeder/output/OutputKafkaTest.java | 13 +-
.../logfeeder/output/OutputLineFilterTest.java | 4 +-
.../ambari/logfeeder/output/OutputManagerTest.java | 67 +-
.../ambari/logfeeder/output/OutputS3FileTest.java | 110 +-
.../ambari/logfeeder/output/OutputSolrTest.java | 177 -
ambari-logsearch/ambari-logsearch-server/README.md | 2 +-
ambari-logsearch/ambari-logsearch-server/build.xml | 36 +-
ambari-logsearch/ambari-logsearch-server/pom.xml | 11 -
ambari-logsearch/ambari-logsearch-server/run.sh | 2 +-
.../org/apache/ambari/logsearch/LogSearch.java | 2 +-
.../src/main/scripts/logsearch-env.sh | 40 +
.../src/main/scripts/logsearch-env.sh~HEAD | 40 +
.../src/main/scripts/logsearch-env.sh~trunk | 40 +
.../src/main/scripts/logsearch.sh | 273 +
.../src/main/scripts/run.sh | 99 -
.../src/main/scripts/stop.sh | 44 -
...chExternalServerAuthenticationProviderTest.java | 1 -
ambari-logsearch/ambari-logsearch-web/package.json | 6 +-
.../ambari-logsearch-web/src/app/app.module.ts | 30 +-
.../classes/components/graph/graph.component.less | 49 +
.../classes/components/graph/graph.component.ts | 457 +
.../components/graph/time-graph.component.less | 48 +
.../components/graph/time-graph.component.ts | 250 +
.../{ => logs-table}/logs-table-component.spec.ts | 0
.../{ => logs-table}/logs-table-component.ts | 0
.../src/app/classes/filtering.ts | 2 +-
.../ambari-logsearch-web/src/app/classes/graph.ts | 66 +
.../src/app/classes/histogram-options.ts | 36 -
.../src/app/classes/models/store.ts | 1 +
.../src/app/classes/models/tab.ts | 7 +-
.../ambari-logsearch-web/src/app/classes/object.ts | 19 +
.../queries/audit-logs-graph-query-params.spec.ts | 203 +
.../queries/audit-logs-graph-query-params.ts | 69 +
.../app/classes/queries/audit-logs-query-params.ts | 19 +-
.../audit-logs-top-resources-query-params.ts | 23 +
.../service-logs-histogram-query-params.spec.ts | 203 -
.../queries/service-logs-histogram-query-params.ts | 50 +-
.../classes/queries/service-logs-query-params.ts | 4 +-
.../src/app/classes/service-injector.ts | 23 +
.../src/app/components/app.component.html | 11 +-
.../src/app/components/app.component.less | 4 +-
.../audit-logs-entries.component.html | 36 +
.../audit-logs-entries.component.spec.ts | 113 +
.../audit-logs-entries.component.ts | 133 +
.../audit-logs-table.component.spec.ts | 7 +-
.../audit-logs-table/audit-logs-table.component.ts | 2 +-
.../collapsible-panel.component.html | 8 +-
.../collapsible-panel.component.spec.ts | 4 +-
.../collapsible-panel.component.ts | 8 +-
.../context-menu/context-menu.component.html | 19 +
.../context-menu/context-menu.component.less | 21 +
.../context-menu/context-menu.component.spec.ts | 123 +
.../context-menu/context-menu.component.ts | 72 +
.../dropdown-button.component.spec.ts | 17 +-
.../dropdown-button/dropdown-button.component.ts | 6 +-
.../dropdown-list/dropdown-list.component.html | 3 +-
.../dropdown-list/dropdown-list.component.less | 24 +-
.../dropdown-list/dropdown-list.component.spec.ts | 7 +-
.../filter-button/filter-button.component.spec.ts | 17 +-
.../filter-button/filter-button.component.ts | 7 +-
.../filter-dropdown.component.spec.ts | 17 +-
.../filter-dropdown/filter-dropdown.component.ts | 5 +-
.../filters-panel/filters-panel.component.html | 5 +-
.../filters-panel/filters-panel.component.spec.ts | 7 +-
.../filters-panel/filters-panel.component.ts | 30 +-
.../graph-legend-item.component.html | 19 +
.../graph-legend-item.component.less | 27 +
.../graph-legend-item.component.spec.ts | 42 +
.../graph-legend-item.component.ts | 37 +
.../graph-legend/graph-legend.component.html | 19 +
.../graph-legend/graph-legend.component.spec.ts | 50 +
.../graph-legend/graph-legend.component.ts | 32 +
.../graph-tooltip/graph-tooltip.component.html | 22 +
.../graph-tooltip/graph-tooltip.component.less | 69 +
.../graph-tooltip/graph-tooltip.component.spec.ts | 50 +
.../graph-tooltip/graph-tooltip.component.ts | 36 +
.../horizontal-histogram.component.html | 22 +
.../horizontal-histogram.component.less | 22 +
.../horizontal-histogram.component.spec.ts | 61 +
.../horizontal-histogram.component.ts | 114 +
.../log-context/log-context.component.spec.ts | 7 +-
.../log-message/log-message.component.html | 2 +-
.../log-message/log-message.component.less | 27 +-
.../log-message/log-message.component.spec.ts | 14 +
.../log-message/log-message.component.ts | 24 +-
.../logs-container/logs-container.component.html | 36 +-
.../logs-container/logs-container.component.less | 23 +-
.../logs-container.component.spec.ts | 7 +-
.../logs-container/logs-container.component.ts | 71 +-
.../main-container/main-container.component.html | 1 -
.../main-container/main-container.component.less | 1 -
.../main-container/main-container.component.ts | 5 +-
.../menu-button/menu-button.component.spec.ts | 17 +-
.../menu-button/menu-button.component.ts | 6 +-
.../src/app/components/mixins.less | 35 +-
.../search-box/search-box.component.html | 28 +-
.../search-box/search-box.component.less | 30 +-
.../search-box/search-box.component.spec.ts | 79 +
.../components/search-box/search-box.component.ts | 215 +-
.../service-logs-table.component.html | 188 +-
.../service-logs-table.component.less | 216 +-
.../service-logs-table.component.spec.ts | 24 +-
.../service-logs-table.component.ts | 200 +-
.../src/app/components/tabs/tabs.component.spec.ts | 4 -
.../src/app/components/tabs/tabs.component.ts | 1 +
.../time-histogram/time-histogram.component.html | 21 +-
.../time-histogram/time-histogram.component.less | 23 +-
.../time-histogram.component.spec.ts | 157 +-
.../time-histogram/time-histogram.component.ts | 230 +-
.../time-line-graph/time-line-graph.component.html | 27 +
.../time-line-graph/time-line-graph.component.less | 42 +
.../time-line-graph.component.spec.ts | 69 +
.../time-line-graph/time-line-graph.component.ts | 111 +
.../time-range-picker.component.spec.ts | 7 +-
.../timezone-picker.component.spec.ts | 7 +-
.../components/top-menu/top-menu.component.spec.ts | 3 +
.../app/components/top-menu/top-menu.component.ts | 3 +-
.../src/app/components/variables.less | 10 +
.../ambari-logsearch-web/src/app/mock-data.ts | 174 +-
.../app/services/component-actions.service.spec.ts | 7 +-
.../src/app/services/component-actions.service.ts | 10 +-
.../services/component-generator.service.spec.ts | 7 +-
.../src/app/services/http-client.service.ts | 44 +-
.../app/services/logs-container.service.spec.ts | 7 +-
.../src/app/services/logs-container.service.ts | 159 +-
.../storage/audit-logs-graph-data.service.ts | 32 +
.../src/app/services/storage/reducers.service.ts | 2 +
.../src/app/services/utils.service.spec.ts | 117 +
.../src/app/services/utils.service.ts | 12 +
.../ambari-logsearch-web/src/assets/i18n/en.json | 26 +-
.../ambari-logsearch-web/src/styles.less | 4 +
.../src/vendor/css/bootstrap-logsearch.min.css | 2 +-
.../src/vendor/js/bootstrap-logsearch.min.js | 2 +-
ambari-logsearch/ambari-logsearch-web/yarn.lock | 20 +-
ambari-logsearch/docker/Dockerfile | 6 +-
ambari-logsearch/docker/all.yml | 6 +-
ambari-logsearch/docker/bin/start.sh | 37 +-
ambari-logsearch/docker/docker-compose.yml | 2 -
ambari-logsearch/docker/logsearch-logfeeder.yml | 1 -
ambari-logsearch/docker/logsearch-server.yml | 1 -
.../docker/test-config/logfeeder/logfeeder-env.sh | 5 +-
.../test-config/logfeeder/logfeeder.properties | 2 +-
.../docker/test-config/logsearch/logsearch-env.sh | 5 +-
.../logsearch/logsearch-https.properties | 4 +-
.../test-config/logsearch/logsearch.properties | 4 +-
ambari-logsearch/pom.xml | 1 +
ambari-project/pom.xml | 2 +-
ambari-server/docs/api/generated/index.html | 30360 +++++++++++--------
ambari-server/docs/api/generated/swagger.json | 4906 +--
.../docs/api/v1/authentication-source-create.md | 86 +
.../docs/api/v1/authentication-source-delete.md | 49 +
.../docs/api/v1/authentication-source-get.md | 93 +
.../docs/api/v1/authentication-source-list.md | 116 +
.../docs/api/v1/authentication-source-resources.md | 117 +
.../docs/api/v1/authentication-source-update.md | 104 +
ambari-server/docs/api/v1/index.md | 12 +
ambari-server/docs/api/v1/user-create.md | 107 +
ambari-server/docs/api/v1/user-delete.md | 48 +
ambari-server/docs/api/v1/user-get.md | 97 +
ambari-server/docs/api/v1/user-list.md | 98 +
ambari-server/docs/api/v1/user-resources.md | 175 +
ambari-server/docs/api/v1/user-update.md | 115 +
ambari-server/docs/configuration/index.md | 11 +-
ambari-server/pom.xml | 1 -
ambari-server/sbin/ambari-server | 1 -
.../ambari/server/agent/ExecutionCommand.java | 37 +-
.../ambari/server/agent/HeartBeatHandler.java | 122 +-
.../ambari/server/agent/HeartbeatProcessor.java | 33 +-
.../ambari/server/alerts/JmxServerSideAlert.java | 98 +
.../org/apache/ambari/server/alerts/Threshold.java | 73 +
.../ambari/server/api/AmbariErrorHandler.java | 2 +-
.../api/resources/ResourceInstanceFactoryImpl.java | 4 +
.../api/resources/UserResourceDefinition.java | 1 +
.../ambari/server/api/services/AmbariMetaInfo.java | 126 +-
.../ambari/server/api/services/BaseService.java | 1 -
.../RootServiceComponentConfiguration.java | 73 +
.../users/UserAuthenticationSourceService.java | 223 +
.../server/api/services/users/UserService.java | 132 +-
.../ambari/server/audit/event/LoginAuditEvent.java | 20 +
.../checks/RequiredServicesInRepositoryCheck.java | 18 +-
.../configuration/ComponentSSLConfiguration.java | 4 +-
.../ambari/server/configuration/Configuration.java | 596 +-
.../configuration/ConfigurationPropertyType.java | 22 +
.../LdapUsernameCollisionHandlingBehavior.java | 29 +
.../controller/AmbariManagementController.java | 39 -
.../controller/AmbariManagementControllerImpl.java | 219 +-
.../ambari/server/controller/AmbariServer.java | 32 +-
.../ambari/server/controller/ControllerModule.java | 7 +
.../server/controller/DeleteIdentityHandler.java | 5 +-
.../ambari/server/controller/KerberosHelper.java | 2 +-
.../server/controller/KerberosHelperImpl.java | 1113 +-
.../server/controller/ResourceProviderFactory.java | 24 +-
.../controller/StackServiceComponentResponse.java | 10 +
.../UserAuthenticationSourceRequest.java | 82 +
...erAuthenticationSourceRequestCreateSwagger.java | 40 +
...erAuthenticationSourceRequestUpdateSwagger.java | 40 +
.../UserAuthenticationSourceResponse.java | 127 +
.../ambari/server/controller/UserRequest.java | 50 +-
.../controller/UserRequestCreateUserSwagger.java | 49 +
.../controller/UserRequestCreateUsersSwagger.java | 52 +
.../controller/UserRequestUpdateUserSwagger.java | 52 +
.../ambari/server/controller/UserResponse.java | 87 +-
.../AbstractAuthorizedResourceProvider.java | 12 +-
.../AbstractControllerResourceProvider.java | 83 +-
.../internal/AbstractDRResourceProvider.java | 9 +-
.../internal/AbstractResourceProvider.java | 2 +-
.../internal/ActionResourceProvider.java | 34 +-
.../ActiveWidgetLayoutResourceProvider.java | 4 +-
.../internal/AlertDefinitionResourceProvider.java | 2 +-
.../internal/AlertGroupResourceProvider.java | 2 +-
.../internal/AlertHistoryResourceProvider.java | 2 +-
.../internal/AlertNoticeResourceProvider.java | 2 +-
.../controller/internal/AlertResourceProvider.java | 2 +-
.../internal/AlertTargetResourceProvider.java | 2 +-
.../internal/AmbariPrivilegeResourceProvider.java | 36 +-
.../internal/AmbariServerConfigurationHandler.java | 102 +-
.../internal/AmbariServerConfigurationUtils.java | 78 +
.../AmbariServerLDAPConfigurationHandler.java | 9 +-
.../internal/BlueprintResourceProvider.java | 37 +-
.../controller/internal/CalculatedStatus.java | 7 +-
.../internal/ClientConfigResourceProvider.java | 33 +-
.../ClusterKerberosDescriptorResourceProvider.java | 2 +-
.../internal/ClusterPrivilegeResourceProvider.java | 31 +-
.../internal/ClusterResourceProvider.java | 23 +-
.../ClusterStackVersionResourceProvider.java | 16 +-
.../internal/ConfigGroupResourceProvider.java | 39 +-
.../internal/ConfigurationResourceProvider.java | 2 +-
.../internal/CredentialResourceProvider.java | 2 +-
.../controller/internal/DefaultProviderModule.java | 17 +-
.../internal/ExtensionLinkResourceProvider.java | 33 +-
.../internal/ExtensionResourceProvider.java | 27 +-
.../internal/ExtensionVersionResourceProvider.java | 32 +-
.../controller/internal/FeedResourceProvider.java | 41 +-
.../internal/GroupPrivilegeResourceProvider.java | 42 +-
.../controller/internal/GroupResourceProvider.java | 32 +-
.../HostComponentProcessResourceProvider.java | 38 +-
.../internal/HostComponentResourceProvider.java | 84 +-
.../HostKerberosIdentityResourceProvider.java | 17 +-
.../controller/internal/HostResourceProvider.java | 53 +-
.../internal/HostStackVersionResourceProvider.java | 2 +-
.../internal/InstanceResourceProvider.java | 35 +-
.../controller/internal/JobResourceProvider.java | 57 +-
.../KerberosDescriptorResourceProvider.java | 20 +-
.../internal/LdapSyncEventResourceProvider.java | 47 +-
.../internal/LoggingResourceProvider.java | 9 +-
.../internal/MemberResourceProvider.java | 29 +-
.../internal/OperatingSystemResourceProvider.java | 2 +-
.../internal/OverriddenMetricsHostProvider.java | 101 +
.../internal/PermissionResourceProvider.java | 25 +-
.../internal/PrivilegeResourceProvider.java | 2 +-
.../QuickLinkArtifactResourceProvider.java | 2 +-
.../internal/ReadOnlyResourceProvider.java | 7 -
.../internal/RecommendationResourceProvider.java | 65 +-
.../internal/RemoteClusterResourceProvider.java | 28 +-
.../internal/RepositoryResourceProvider.java | 14 +-
.../internal/RequestResourceProvider.java | 52 +-
.../internal/RequestScheduleResourceProvider.java | 55 +-
.../RoleAuthorizationResourceProvider.java | 2 +-
.../RootServiceComponentConfigurationHandler.java | 7 +-
...viceComponentConfigurationResourceProvider.java | 20 +-
.../RootServiceComponentResourceProvider.java | 31 +-
.../RootServiceHostComponentResourceProvider.java | 34 +-
.../internal/RootServiceResourceProvider.java | 26 +-
.../controller/internal/ScaleClusterRequest.java | 17 +-
.../ServiceConfigVersionResourceProvider.java | 2 +-
.../internal/SettingResourceProvider.java | 2 +-
.../ambari/server/controller/internal/Stack.java | 14 +
.../internal/StackAdvisorResourceProvider.java | 7 +-
.../internal/StackArtifactResourceProvider.java | 2 +-
...ackConfigurationDependencyResourceProvider.java | 40 +-
.../StackConfigurationResourceProvider.java | 42 +-
.../internal/StackDefinedPropertyProvider.java | 9 +-
.../internal/StackDependencyResourceProvider.java | 41 +-
.../StackLevelConfigurationResourceProvider.java | 40 +-
.../controller/internal/StackResourceProvider.java | 28 +-
.../StackServiceComponentResourceProvider.java | 59 +-
.../internal/StackServiceResourceProvider.java | 45 +-
.../internal/StackVersionResourceProvider.java | 5 +-
.../controller/internal/StageResourceProvider.java | 2 +-
.../internal/TargetClusterResourceProvider.java | 31 +-
.../internal/TaskAttemptResourceProvider.java | 53 +-
.../controller/internal/TaskResourceProvider.java | 27 +-
.../internal/ThemeArtifactResourceProvider.java | 2 +-
.../internal/UpgradeGroupResourceProvider.java | 2 +-
.../internal/UpgradeItemResourceProvider.java | 2 +-
.../internal/UpgradeResourceProvider.java | 29 +-
.../internal/UpgradeSummaryResourceProvider.java | 2 +-
.../UserAuthenticationSourceResourceProvider.java | 417 +
.../UserAuthorizationResourceProvider.java | 2 +-
.../internal/UserPrivilegeResourceProvider.java | 59 +-
.../controller/internal/UserResourceProvider.java | 501 +-
.../internal/ValidationResourceProvider.java | 86 +-
.../VersionDefinitionResourceProvider.java | 2 +-
.../internal/ViewInstanceResourceProvider.java | 55 +-
.../internal/ViewPermissionResourceProvider.java | 29 +-
.../internal/ViewPrivilegeResourceProvider.java | 36 +-
.../controller/internal/ViewResourceProvider.java | 19 +-
.../internal/ViewURLResourceProvider.java | 25 +-
.../internal/ViewVersionResourceProvider.java | 45 +-
.../internal/WidgetLayoutResourceProvider.java | 2 +-
.../internal/WidgetResourceProvider.java | 2 +-
.../internal/WorkflowResourceProvider.java | 54 +-
.../server/controller/jmx/JMXMetricHolder.java | 64 +
.../controller/metrics/MetricHostProvider.java | 9 +
.../timeline/AMSComponentPropertyProvider.java | 4 +-
.../ambari/server/controller/spi/Resource.java | 2 +
.../controller/utilities/PropertyHelper.java | 6 +-
.../apache/ambari/server/events/AmbariEvent.java | 7 +-
.../ambari/server/events/JpaInitializedEvent.java | 34 +
.../upgrade/HostVersionOutOfSyncListener.java | 24 +
.../ldap/domain/AmbariLdapConfiguration.java | 176 +-
.../ldap/domain/AmbariLdapConfigurationKeys.java | 121 +-
.../service/AmbariLdapConfigurationProvider.java | 29 +-
.../metrics/system/impl/AmbariMetricSinkImpl.java | 2 -
.../server/orm/AmbariLocalSessionInterceptor.java | 2 +-
.../org/apache/ambari/server/orm/DBAccessor.java | 29 +
.../apache/ambari/server/orm/DBAccessorImpl.java | 3 +
.../ambari/server/orm/GuiceJpaInitializer.java | 8 +-
.../ambari/server/orm/dao/HostVersionDAO.java | 15 +
.../ambari/server/orm/dao/KerberosKeytabDAO.java | 154 +-
.../server/orm/dao/KerberosKeytabPrincipalDAO.java | 309 +
.../server/orm/dao/KerberosPrincipalDAO.java | 9 -
.../server/orm/dao/KerberosPrincipalHostDAO.java | 252 -
.../server/orm/dao/UserAuthenticationDAO.java | 116 +
.../org/apache/ambari/server/orm/dao/UserDAO.java | 95 +-
.../orm/entities/AmbariConfigurationEntity.java | 2 +-
.../orm/entities/HostGroupComponentEntityPK.java | 4 +-
.../server/orm/entities/HostVersionEntity.java | 5 +
.../server/orm/entities/KerberosKeytabEntity.java | 152 +-
.../entities/KerberosKeytabPrincipalEntity.java | 236 +
.../KerberosKeytabServiceMappingEntity.java | 88 +
.../orm/entities/KerberosPrincipalEntity.java | 25 -
.../orm/entities/KerberosPrincipalHostEntity.java | 213 -
.../entities/KerberosPrincipalHostEntityPK.java | 115 -
.../orm/entities/RepositoryVersionEntity.java | 5 +
.../orm/entities/TopologyHostRequestEntity.java | 27 +
.../orm/entities/UserAuthenticationEntity.java | 189 +
.../ambari/server/orm/entities/UserEntity.java | 253 +-
.../authentication/AccountDisabledException.java | 27 +
.../AmbariAuthenticationEventHandler.java | 64 +
.../AmbariAuthenticationEventHandlerImpl.java | 168 +
.../AmbariAuthenticationException.java | 56 +
.../authentication/AmbariAuthenticationFilter.java | 10 +
.../AmbariAuthenticationProvider.java | 117 +
.../AmbariBasicAuthenticationFilter.java | 97 +-
.../AmbariJWTAuthenticationFilter.java | 140 -
.../AmbariLocalAuthenticationProvider.java | 113 +
.../authentication/AmbariUserAuthentication.java | 79 +
.../AuthenticationMethodNotAllowedException.java | 65 +
...nvalidUsernamePasswordCombinationException.java | 40 +
.../TooManyLoginFailuresException.java | 27 +
.../authentication/UserNotFoundException.java | 43 +
.../jwt/AmbariJwtAuthenticationFilter.java | 419 +
.../jwt/AmbariJwtAuthenticationProvider.java | 136 +
.../jwt/JwtAuthenticationProperties.java | 87 +
.../authentication/jwt/JwtAuthenticationToken.java | 55 +
.../AmbariAuthToLocalUserDetailsService.java | 163 +-
.../AmbariKerberosAuthenticationFilter.java | 76 +-
.../AmbariKerberosAuthenticationProperties.java | 26 +-
.../pam/AmbariPamAuthenticationProvider.java | 302 +
.../pam/PamAuthenticationFactory.java | 21 +-
.../authorization/AmbariAuthentication.java | 229 -
.../authorization/AmbariAuthorizationFilter.java | 4 +-
.../AmbariLdapAuthenticationProvider.java | 183 +-
.../AmbariLdapAuthoritiesPopulator.java | 5 +-
.../authorization/AmbariLdapBindAuthenticator.java | 13 +-
.../authorization/AmbariLocalUserProvider.java | 107 -
.../AmbariPamAuthenticationProvider.java | 252 -
.../authorization/AmbariUserAuthentication.java | 76 -
.../AmbariUserAuthorizationFilter.java | 12 +-
.../authorization/AuthenticationMethod.java | 37 +
.../authorization/AuthorizationHelper.java | 4 +-
...nvalidUsernamePasswordCombinationException.java | 34 -
.../authorization/LdapServerProperties.java | 99 +-
.../authorization/PamAuthenticationException.java | 36 -
.../ambari/server/security/authorization/User.java | 61 +-
.../authorization/UserAuthenticationType.java | 26 +
.../server/security/authorization/UserType.java | 25 -
.../server/security/authorization/Users.java | 1259 +-
.../AmbariInternalAuthenticationProvider.java | 4 +-
.../AuthenticationJwtUserNotFoundException.java | 43 -
.../authorization/jwt/JwtAuthentication.java | 34 -
.../authorization/jwt/JwtAuthenticationFilter.java | 423 -
.../jwt/JwtAuthenticationProperties.java | 87 -
.../security/ldap/AmbariLdapDataPopulator.java | 91 +-
.../ambari/server/security/ldap/LdapBatchDto.java | 32 +-
.../AbstractPrepareKerberosServerAction.java | 31 +-
.../serveraction/kerberos/CleanupServerAction.java | 6 +-
.../ConfigureAmbariIdentitiesServerAction.java | 143 +-
.../kerberos/CreateKeytabFilesServerAction.java | 112 +-
.../kerberos/CreatePrincipalsServerAction.java | 47 +-
.../kerberos/DestroyPrincipalsServerAction.java | 62 +-
.../kerberos/FinalizeKerberosServerAction.java | 24 +-
.../kerberos/KerberosOperationHandler.java | 14 +-
.../kerberos/KerberosServerAction.java | 291 +-
.../PrepareEnableKerberosServerAction.java | 16 +-
.../PrepareKerberosIdentitiesServerAction.java | 9 -
.../stageutils/KerberosKeytabController.java | 213 +
.../stageutils/ResolvedKerberosKeytab.java | 117 +-
.../stageutils/ResolvedKerberosPrincipal.java | 169 +
.../serveraction/upgrades/ConfigureAction.java | 51 +-
.../upgrades/PreconfigureKerberosAction.java | 12 +-
.../java/org/apache/ambari/server/state/Alert.java | 1 +
.../org/apache/ambari/server/state/Cluster.java | 9 +
.../apache/ambari/server/state/ComponentInfo.java | 15 +
.../apache/ambari/server/state/ConfigHelper.java | 5 +
.../apache/ambari/server/state/UpgradeContext.java | 14 +
.../ambari/server/state/alert/AlertDefinition.java | 13 +
.../server/state/alert/AlertDefinitionFactory.java | 31 +-
.../apache/ambari/server/state/alert/AlertUri.java | 41 +
.../ambari/server/state/alert/MetricSource.java | 66 +-
.../ambari/server/state/alert/Reporting.java | 38 +
.../ambari/server/state/alert/ScriptSource.java | 4 +
.../ambari/server/state/alert/ServerSource.java | 15 +
.../ambari/server/state/cluster/ClusterImpl.java | 51 +-
.../ambari/server/state/cluster/ClustersImpl.java | 8 +-
.../ambari/server/state/quicklinks/Host.java | 75 +
.../ambari/server/state/quicklinks/Link.java | 13 +
.../state/repository/VersionDefinitionXml.java | 59 +-
.../state/services/AmbariServerAlertService.java | 7 +-
.../state/services/MetricsRetrievalService.java | 8 +-
.../server/state/stack/MetricDefinition.java | 9 +-
.../state/stack/upgrade/ClusterGrouping.java | 9 +
.../state/stack/upgrade/StageWrapperBuilder.java | 10 +-
.../ambari/server/state/stack/upgrade/Task.java | 7 +
.../ambari/server/topology/AmbariContext.java | 7 +-
.../server/topology/AsyncCallableService.java | 16 +-
.../ambari/server/topology/HostOfferResponse.java | 23 +-
.../apache/ambari/server/topology/HostRequest.java | 52 +-
.../ambari/server/topology/LogicalRequest.java | 44 +
.../ambari/server/topology/PersistedState.java | 5 +
.../ambari/server/topology/PersistedStateImpl.java | 11 +
.../ambari/server/topology/TopologyManager.java | 59 +-
.../server/topology/tasks/TopologyHostTask.java | 4 +
.../ambari/server/topology/tasks/TopologyTask.java | 20 +-
.../upgrade/AbstractFinalUpgradeCatalog.java | 58 +
.../ambari/server/upgrade/FinalUpgradeCatalog.java | 28 +-
.../ambari/server/upgrade/SchemaUpgradeHelper.java | 2 +
.../server/upgrade/UpdateAlertScriptPaths.java | 48 +
.../ambari/server/upgrade/UpgradeCatalog252.java | 7 +-
.../ambari/server/upgrade/UpgradeCatalog260.java | 3 +
.../ambari/server/upgrade/UpgradeCatalog262.java | 70 +
.../ambari/server/upgrade/UpgradeCatalog300.java | 486 +
.../apache/ambari/server/utils/PasswordUtils.java | 183 +
ambari-server/src/main/python/ambari-server.py | 6 +-
.../python/ambari_server/dbConfiguration_linux.py | 26 +-
.../main/python/ambari_server/kerberos_setup.py | 2 -
.../src/main/resources/Ambari-DDL-Derby-CREATE.sql | 69 +-
.../src/main/resources/Ambari-DDL-MySQL-CREATE.sql | 70 +-
.../main/resources/Ambari-DDL-Oracle-CREATE.sql | 70 +-
.../main/resources/Ambari-DDL-Postgres-CREATE.sql | 69 +-
.../resources/Ambari-DDL-SQLAnywhere-CREATE.sql | 69 +-
.../main/resources/Ambari-DDL-SQLServer-CREATE.sql | 71 +-
.../src/main/resources/META-INF/persistence.xml | 4 +-
.../HBASE/0.96.0.2.0/package/scripts/hbase.py | 26 +-
.../HBASE/2.0.0.3.0/package/scripts/hbase.py | 39 +-
.../2.0.0.3.0/package/scripts/status_params.py | 2 +-
.../common-services/HDFS/2.1.0.2.0/metainfo.xml | 1 +
.../common-services/HDFS/3.0.0.3.0/metainfo.xml | 1 +
.../3.0.0.3.0/package/scripts/status_params.py | 2 +-
.../HIVE/0.12.0.2.0/configuration/hive-env.xml | 1 +
.../HIVE/0.12.0.2.0/package/scripts/hive.py | 10 +-
.../0.12.0.2.0/package/scripts/params_linux.py | 2 +
.../HIVE/2.1.0.3.0/configuration/hive-env.xml | 1 +
.../HIVE/2.1.0.3.0/package/scripts/hive.py | 10 +-
.../HIVE/2.1.0.3.0/package/scripts/params_linux.py | 1 +
.../package/scripts/setup_ranger_kafka.py | 14 +-
.../KAFKA/0.10.0/configuration/kafka-broker.xml | 2 +-
.../KAFKA/0.8.1/package/scripts/params.py | 6 +-
.../0.8.1/package/scripts/setup_ranger_kafka.py | 15 +-
.../1.10.3-10/configuration/kerberos-env.xml | 4 +-
.../KERBEROS/1.10.3-10/configuration/krb5-conf.xml | 11 +
.../1.10.3-10/package/scripts/kerberos_client.py | 57 +-
.../1.10.3-10/package/scripts/kerberos_common.py | 493 -
.../KERBEROS/1.10.3-10/package/scripts/params.py | 6 +-
.../1.10.3-10/package/scripts/service_check.py | 32 +-
.../KERBEROS/1.10.3-10/package/scripts/utils.py | 105 -
.../KERBEROS/1.10.3-10/properties/krb5_conf.j2 | 3 +
.../1.10.3-30/configuration/kerberos-env.xml | 4 +-
.../KERBEROS/1.10.3-30/configuration/krb5-conf.xml | 11 +
.../1.10.3-30/package/scripts/kerberos_client.py | 57 +-
.../1.10.3-30/package/scripts/kerberos_common.py | 493 -
.../KERBEROS/1.10.3-30/package/scripts/params.py | 7 +-
.../1.10.3-30/package/scripts/service_check.py | 32 +-
.../KERBEROS/1.10.3-30/package/scripts/utils.py | 105 -
.../KERBEROS/1.10.3-30/properties/krb5_conf.j2 | 3 +
.../0.5.0.2.2/package/scripts/setup_ranger_knox.py | 16 +-
.../0.5.0.3.0/package/scripts/setup_ranger_knox.py | 16 +-
.../0.5.0/configuration/logfeeder-env.xml | 2 +-
.../0.5.0/configuration/logfeeder-properties.xml | 2 +-
.../0.5.0/configuration/logsearch-env.xml | 6 +-
.../LOGSEARCH/0.5.0/package/scripts/logfeeder.py | 7 +-
.../LOGSEARCH/0.5.0/package/scripts/logsearch.py | 8 +-
.../0.5.0/package/scripts/logsearch_common.py | 54 -
.../LOGSEARCH/0.5.0/package/scripts/params.py | 8 +-
.../0.5.0/package/scripts/setup_logfeeder.py | 2 +-
.../0.5.0/package/scripts/setup_logsearch.py | 2 +-
.../LOGSEARCH/0.5.0/properties/logfeeder-env.sh.j2 | 5 +-
.../LOGSEARCH/0.5.0/properties/logsearch-env.sh.j2 | 5 +-
.../MAHOUT/1.0.0.2.3/package/scripts/mahout.py | 12 +-
.../OOZIE/4.0.0.2.0/configuration/oozie-env.xml | 1 +
.../package/scripts/oozie_server_upgrade.py | 24 +-
.../OOZIE/4.2.0.3.0/configuration/oozie-env.xml | 1 +
.../package/scripts/oozie_server_upgrade.py | 50 +-
.../PIG/0.12.0.2.0/package/scripts/pig.py | 16 +-
.../PIG/0.16.1.3.0/package/scripts/pig.py | 16 +-
.../RANGER/0.4.0/package/scripts/params.py | 4 +-
.../RANGER/0.4.0/package/scripts/ranger_admin.py | 10 +-
.../0.4.0/package/scripts/setup_ranger_xml.py | 19 +-
.../RANGER_KMS/0.5.0.2.3/package/scripts/kms.py | 13 +-
.../0.5.0.2.3/package/scripts/kms_server.py | 6 +-
.../common-services/SPARK/1.2.1/alerts.json | 2 +-
.../SPARK/1.2.1/package/scripts/livy_service.py | 24 +-
.../SPARK/1.2.1/package/scripts/params.py | 2 +
.../SPARK/1.2.1/package/scripts/setup_spark.py | 20 +-
.../SPARK/2.2.0/package/scripts/livy_service.py | 24 +-
.../SPARK/2.2.0/package/scripts/params.py | 2 +
.../SPARK/2.2.0/package/scripts/setup_spark.py | 25 +-
.../common-services/SPARK2/2.0.0/alerts.json | 2 +-
.../SPARK2/2.0.0/package/scripts/livy2_service.py | 24 +-
.../SPARK2/2.0.0/package/scripts/params.py | 2 +
.../SPARK2/2.0.0/package/scripts/setup_livy2.py | 2 +
.../SPARK2/2.0.0/package/scripts/setup_spark.py | 22 +-
.../0.9.1/package/scripts/setup_ranger_storm.py | 15 +-
.../STORM/1.0.1.3.0/configuration/storm-site.xml | 2 +-
.../package/scripts/setup_ranger_storm.py | 15 +-
.../STORM/1.0.1.3.0/service_advisor.py | 1 +
.../STORM/1.0.1/configuration/storm-site.xml | 2 +-
.../common-services/SUPERSET/0.15.0/metainfo.xml | 2 +-
.../2.1.0.2.0/configuration-mapred/mapred-site.xml | 2 +-
.../YARN/2.1.0.2.0/package/scripts/params_linux.py | 46 +-
.../YARN/2.1.0.2.0/package/scripts/yarn.py | 4 +-
.../3.0.0.3.0/configuration-mapred/mapred-site.xml | 2 +-
.../common-services/YARN/3.0.0.3.0/kerberos.json | 4 +-
.../YARN/3.0.0.3.0/package/scripts/params_linux.py | 47 +-
.../YARN/3.0.0.3.0/package/scripts/yarn.py | 4 +-
.../package/scripts/interpreter_json_template.py | 154 +-
.../0.7.0/package/scripts/livy2_config_template.py | 112 -
.../ZEPPELIN/0.7.0/package/scripts/master.py | 109 +-
.../package/scripts/spark2_config_template.py | 84 -
.../custom_actions/scripts/install_packages.py | 59 +-
.../stack-hooks/after-INSTALL/scripts/params.py | 2 +-
.../HDP/2.0.6/properties/stack_features.json | 6 +
.../HDP/2.0.6/properties/stack_packages.json | 143 +-
.../2.2/services/TEZ/configuration/tez-site.xml | 4 +-
.../YARN/configuration-mapred/mapred-site.xml | 2 +-
.../2.3/services/HIVE/configuration/hive-env.xml | 1 +
.../2.3/services/OOZIE/configuration/oozie-env.xml | 1 +
.../stacks/HDP/2.3/services/stack_advisor.py | 9 +-
.../2.5/services/YARN/configuration/yarn-site.xml | 4 +-
.../stacks/HDP/2.5/services/stack_advisor.py | 1 +
.../2.6/services/TEZ/configuration/tez-site.xml | 8 +
.../stacks/HDP/2.6/upgrades/config-upgrade.xml | 8 +-
.../HDP/2.6/upgrades/nonrolling-upgrade-2.6.xml | 2 +-
.../stacks/HDP/2.6/upgrades/upgrade-2.6.xml | 2 +-
.../stacks/HDP/3.0/properties/stack_features.json | 6 +
.../stacks/HDP/3.0/properties/stack_packages.json | 20 +-
.../3.0/services/YARN/configuration/yarn-site.xml | 4 +-
.../KERBEROS/configuration/kerberos-env.xml | 4 +-
.../services/KERBEROS/configuration/krb5-conf.xml | 11 +
.../services/KERBEROS/package/scripts/params.py | 2 +
.../1.0/services/KERBEROS/properties/krb5_conf.j2 | 3 +
ambari-server/src/main/resources/upgrade-pack.xsd | 1 +
.../resources/webapp/WEB-INF/spring-security.xml | 13 +-
ambari-server/src/main/windows/ambari-server.ps1 | 2 -
.../actionmanager/ExecutionCommandWrapperTest.java | 5 +
.../ambari/server/agent/TestHeartbeatHandler.java | 79 +-
.../apache/ambari/server/alerts/ThresholdTest.java | 90 +
.../api/query/render/MinimalRendererTest.java | 6 +
.../api/resources/UserResourceDefinitionTest.java | 13 +-
.../server/api/services/AmbariMetaInfoTest.java | 91 +-
.../ambari/server/audit/LoginAuditEventTest.java | 36 +-
.../RequiredServicesInRepositoryCheckTest.java | 6 +-
.../server/configuration/ConfigurationTest.java | 225 +-
.../AmbariCustomCommandExecutionHelperTest.java | 46 +
.../AmbariManagementControllerImplTest.java | 46 +-
.../controller/AmbariManagementControllerTest.java | 73 -
.../server/controller/KerberosHelperTest.java | 47 +-
.../controller/RootServiceResponseFactoryTest.java | 145 +-
.../AbstractControllerResourceProviderTest.java | 10 +-
.../internal/AbstractDRResourceProviderTest.java | 2 -
.../AbstractPrivilegeResourceProviderTest.java | 38 -
.../internal/AbstractResourceProviderTest.java | 26 +-
.../internal/ActionResourceProviderTest.java | 4 -
.../ActiveWidgetLayoutResourceProviderTest.java | 6 +-
.../AlertDefinitionResourceProviderTest.java | 4 +-
.../internal/BlueprintResourceProviderTest.java | 21 +-
.../internal/ClientConfigResourceProviderTest.java | 10 -
.../internal/ClusterControllerImplTest.java | 14 +-
...sterKerberosDescriptorResourceProviderTest.java | 17 -
.../internal/ClusterResourceProviderTest.java | 14 -
.../ClusterStackVersionResourceProviderTest.java | 12 +-
.../internal/ConfigGroupResourceProviderTest.java | 2 -
.../ConfigurationResourceProviderTest.java | 6 -
.../internal/CredentialResourceProviderTest.java | 23 -
.../internal/ExtensionResourceProviderTest.java | 2 -
.../internal/FeedResourceProviderTest.java | 29 +-
.../GroupPrivilegeResourceProviderTest.java | 46 +-
.../internal/GroupResourceProviderTest.java | 8 -
.../HostComponentProcessResourceProviderTest.java | 2 -
.../HostComponentResourceProviderTest.java | 49 +-
.../HostKerberosIdentityResourceProviderTest.java | 15 +-
.../internal/HostResourceProviderTest.java | 53 +-
.../HostStackVersionResourceProviderTest.java | 14 +-
.../internal/InstanceResourceProviderTest.java | 29 +-
.../controller/internal/JMXHostProviderTest.java | 5 +-
.../internal/JobResourceProviderTest.java | 37 +-
.../KerberosDescriptorResourceProviderTest.java | 6 +-
.../internal/MemberResourceProviderTest.java | 25 +-
.../OverriddenMetricsHostProviderTest.java | 95 +
.../internal/RepositoryResourceProviderTest.java | 2 +
.../RepositoryVersionResourceProviderTest.java | 5 +-
.../controller/internal/RequestImplTest.java | 7 -
.../internal/RequestResourceProviderTest.java | 265 +-
.../RequestScheduleResourceProviderTest.java | 2 -
...ComponentConfigurationResourceProviderTest.java | 192 +-
.../RootServiceComponentResourceProviderTest.java | 2 -
...otServiceHostComponentResourceProviderTest.java | 2 -
.../internal/RootServiceResourceProviderTest.java | 2 -
.../internal/ScaleClusterRequestTest.java | 38 +-
.../internal/StackAdvisorResourceProviderTest.java | 12 +-
.../StackArtifactResourceProviderTest.java | 2 -
...onfigurationDependencyResourceProviderTest.java | 2 -
.../StackConfigurationResourceProviderTest.java | 4 -
.../StackDependencyResourceProviderTest.java | 5 +-
...tackLevelConfigurationResourceProviderTest.java | 4 -
.../internal/StackResourceProviderTest.java | 2 -
.../internal/StackServiceResourceProviderTest.java | 4 -
.../TargetClusterResourceProviderTest.java | 28 +-
.../internal/TaskAttemptResourceProviderTest.java | 2 +-
.../internal/TaskResourceProviderTest.java | 22 +-
.../internal/TestIvoryProviderModule.java | 6 +-
.../internal/UpgradeResourceProviderTest.java | 4 +-
...erAuthenticationSourceResourceProviderTest.java | 448 +
.../UserPrivilegeResourceProviderTest.java | 109 +-
.../internal/UserResourceProviderDBTest.java | 438 +-
.../internal/UserResourceProviderTest.java | 749 +-
.../internal/ValidationResourceProviderTest.java | 3 +-
.../VersionDefinitionResourceProviderTest.java | 2 +-
.../internal/WorkflowResourceProviderTest.java | 30 +-
.../server/controller/jmx/JMXMetricHolderTest.java | 75 +
.../server/ldap/AmbariLdapConfigurationTest.java | 143 +
.../ambari/server/orm/DBAccessorImplTest.java | 30 +
.../apache/ambari/server/orm/OrmTestHelper.java | 10 +-
.../ambari/server/orm/dao/HostVersionDAOTest.java | 12 +
.../apache/ambari/server/orm/dao/UserDAOTest.java | 53 +-
.../org/apache/ambari/server/orm/db/DDLTests.java | 2 +-
.../server/security/SecurityHelperImplTest.java | 7 +-
.../server/security/TestAuthenticationFactory.java | 26 +-
.../AbstractAuthenticationProviderTest.java | 217 +
.../AmbariBasicAuthenticationFilterTest.java | 136 +-
.../AmbariJWTAuthenticationFilterTest.java | 191 -
.../AmbariLocalAuthenticationProviderTest.java | 90 +
.../jwt/AmbariJwtAuthenticationFilterTest.java | 493 +
.../jwt/JwtAuthenticationPropertiesTest.java | 51 +
.../AmbariAuthToLocalUserDetailsServiceTest.java | 33 +-
.../AmbariKerberosAuthenticationFilterTest.java | 183 +-
...AmbariKerberosAuthenticationPropertiesTest.java | 16 -
.../pam/AmbariPamAuthenticationProviderTest.java | 285 +
.../authorization/AmbariAuthenticationTest.java | 334 -
.../AmbariAuthorizationFilterTest.java | 5 +-
...AmbariAuthorizationProviderDisableUserTest.java | 99 -
...apAuthenticationProviderForDNWithSpaceTest.java | 34 +-
...AuthenticationProviderForDuplicateUserTest.java | 21 +-
.../AmbariLdapAuthenticationProviderTest.java | 54 +-
.../AmbariLdapBindAuthenticatorTest.java | 91 +-
.../authorization/AmbariLocalUserProviderTest.java | 166 -
.../AmbariPamAuthenticationProviderTest.java | 151 -
.../AmbariUserAuthenticationFilterTest.java | 20 +-
.../authorization/AuthorizationHelperTest.java | 24 +-
.../authorization/AuthorizationTestModule.java | 3 +-
.../AuthorizationTestModuleForLdapDNWithSpace.java | 5 +-
.../authorization/LdapServerPropertiesTest.java | 20 +-
.../TestAmbariLdapAuthoritiesPopulator.java | 4 +-
.../server/security/authorization/TestUsers.java | 320 +-
.../server/security/authorization/UsersTest.java | 17 +-
.../jwt/JwtAuthenticationFilterTest.java | 373 -
.../jwt/JwtAuthenticationPropertiesTest.java | 51 -
.../security/ldap/AmbariLdapDataPopulatorTest.java | 331 +-
.../server/security/ldap/LdapPerformanceTest.java | 28 +-
.../kerberos/ADKerberosOperationHandlerTest.java | 15 +-
.../ConfigureAmbariIdentitiesServerActionTest.java | 36 +-
.../kerberos/FinalizeKerberosServerActionTest.java | 5 +-
.../kerberos/IPAKerberosOperationHandlerTest.java | 19 +-
.../kerberos/KerberosOperationHandlerTest.java | 16 +
.../kerberos/KerberosServerActionTest.java | 26 +-
.../kerberos/MITKerberosOperationHandlerTest.java | 19 +-
.../upgrades/PreconfigureKerberosActionTest.java | 16 +-
.../stack/QuickLinksConfigurationModuleTest.java | 3 +
.../ambari/server/state/UpgradeHelperTest.java | 14 +-
.../ambari/server/state/alert/AlertUriTest.java | 60 +
.../ambari/server/state/alert/JmxInfoTest.java | 85 +
.../ambari/server/state/cluster/ClusterTest.java | 4 +
.../state/repository/VersionDefinitionTest.java | 55 +
.../state/stack/ConfigUpgradeValidityTest.java | 41 +-
.../ambari/server/topology/AmbariContextTest.java | 5 +-
.../server/topology/AsyncCallableServiceTest.java | 29 +-
.../ambari/server/topology/BlueprintImplTest.java | 26 +-
.../server/topology/ConfigureClusterTaskTest.java | 2 +-
.../server/topology/TopologyManagerTest.java | 7 +
.../server/upgrade/UpgradeCatalog260Test.java | 1 +
.../server/upgrade/UpgradeCatalog300Test.java | 362 +-
.../ambari/server/utils/PasswordUtilsTest.java | 126 +
ambari-server/src/test/python/TestAmbariServer.py | 4 +-
.../python/stacks/2.0.6/OOZIE/test_oozie_server.py | 24 +-
.../hooks/after-INSTALL/test_after_install.py | 8 +-
.../stacks/2.2/KERBEROS/test_kerberos_client.py | 2 +-
.../python/stacks/2.3/common/test_stack_advisor.py | 17 +
.../python/stacks/2.4/LOGSEARCH/test_logfeeder.py | 34 +-
.../python/stacks/2.4/LOGSEARCH/test_logsearch.py | 31 +-
.../test/python/stacks/2.4/configs/default.json | 2 +-
.../python/stacks/2.5/SPARK/test_spark_livy.py | 3 +-
.../python/stacks/2.5/common/test_stack_advisor.py | 1 +
.../2.6/KAFKA/test_kafka_broker_other_sasl.py | 16 +
.../python/stacks/2.6/RANGER/test_ranger_admin.py | 10 +-
.../python/stacks/2.6/SPARK2/test_spark_livy2.py | 5 +-
.../2.6/ZEPPELIN/interpreter_json_generated.py | 8 +-
.../stacks/2.6/ZEPPELIN/test_zeppelin_070.py | 47 +
.../test/python/stacks/2.6/configs/default.json | 2 +
.../stacks/2.6/configs/secure_kafka_sasl_ssl.json | 632 +
ambari-server/src/test/resources/ambari.properties | 4 +-
.../resources/child_quicklinks_to_override.json | 4 +
.../HDP/2.2.0/upgrades/upgrade_test_conditions.xml | 22 +-
ambari-web/app/assets/img/install-box.svg | 28 +
ambari-web/app/assets/test/tests.js | 3 +-
ambari-web/app/controllers/installer.js | 44 +-
.../hawq/addStandby/step3_controller.js | 3 +-
.../main/admin/kerberos/step1_controller.js | 105 +-
.../main/admin/kerberos/step2_controller.js | 4 +-
.../main/admin/kerberos/wizard_controller.js | 18 +-
.../main/admin/stack_and_upgrade_controller.js | 3 +-
.../main/host/bulk_operations_controller.js | 369 +-
ambari-web/app/controllers/main/host/details.js | 46 +-
.../app/controllers/main/service/info/configs.js | 41 +-
.../app/controllers/main/service/info/metric.js | 13 +
ambari-web/app/controllers/main/service/item.js | 33 +-
.../app/controllers/wizard/step3_controller.js | 2 +-
.../app/controllers/wizard/step4_controller.js | 128 +-
.../app/controllers/wizard/step6_controller.js | 12 -
.../app/controllers/wizard/step8_controller.js | 10 +-
ambari-web/app/data/db_properties_info.js | 15 +-
ambari-web/app/mappers/stack_service_mapper.js | 4 +
ambari-web/app/messages.js | 74 +-
.../mixins/common/configs/configs_comparator.js | 5 +-
.../app/mixins/common/configs/configs_loader.js | 8 +-
.../app/mixins/common/widgets/widget_mixin.js | 1 +
.../configs/component_actions_by_configs.js | 4 +-
ambari-web/app/models/configs/config_group.js | 8 +
ambari-web/app/models/host_component.js | 6 +
ambari-web/app/models/repository.js | 3 +-
ambari-web/app/models/stack_service.js | 103 +
ambari-web/app/models/stack_service_component.js | 33 +
ambari-web/app/styles/application.less | 321 +-
ambari-web/app/styles/bootstrap_overrides.less | 6 +-
ambari-web/app/styles/common.less | 2 +
ambari-web/app/styles/config_history_flow.less | 414 -
ambari-web/app/styles/config_versions_control.less | 148 +
.../app/styles/enhanced_service_dashboard.less | 31 +-
ambari-web/app/styles/hosts.less | 5 +
ambari-web/app/styles/modal_popups.less | 27 +-
ambari-web/app/styles/service_configurations.less | 297 +
ambari-web/app/styles/theme/bootstrap-ambari.css | 7 +-
ambari-web/app/styles/widgets.less | 14 +-
ambari-web/app/styles/wizard.less | 54 +-
ambari-web/app/templates.js | 2 +
ambari-web/app/templates/application.hbs | 135 +-
.../templates/common/assign_master_components.hbs | 24 +-
.../templates/common/configs/compare_property.hbs | 38 -
.../common/configs/config_history_dropdown_row.hbs | 24 -
.../common/configs/config_history_flow.hbs | 148 -
.../common/configs/config_versions_control.hbs | 42 +
.../common/configs/config_versions_dropdown.hbs | 69 +
.../common/configs/configs_comparison_cell.hbs | 26 +
.../common/configs/configs_comparison_row.hbs | 79 +
.../app/templates/common/configs/controls.hbs | 12 +-
.../templates/common/configs/service_config.hbs | 125 +-
.../common/configs/service_config_category.hbs | 120 +-
.../configs/service_config_layout_tab_compare.hbs | 80 +
.../common/configs/service_config_wizard.hbs | 8 +-
.../comparison/config_widget_comparison.hbs | 37 -
.../templates/common/configs/widgets/controls.hbs | 15 -
.../templates/common/filter_combo_cleanable.hbs | 7 +-
.../app/templates/common/host_progress_popup.hbs | 115 +-
.../common/modal_popups/widget_browser_footer.hbs | 1 -
.../app/templates/common/widget/gauge_widget.hbs | 2 +-
.../app/templates/common/widget/graph_widget.hbs | 2 +-
.../app/templates/common/widget/number_widget.hbs | 2 +-
.../templates/common/widget/template_widget.hbs | 2 +-
.../app/templates/main/admin/kerberos/step1.hbs | 14 +-
.../main/alerts/alert_notifications_popup.hbs | 30 +-
.../app/templates/main/dashboard/widgets.hbs | 2 +-
.../main/host/bulk_add_delete_confirm_popup.hbs | 40 +
.../app/templates/main/host/configs_service.hbs | 2 +-
.../main/host/delete_hosts_dry_run_popup.hbs | 32 -
.../app/templates/main/host/delete_hosts_popup.hbs | 21 +-
.../main/host/delete_hosts_result_popup.hbs | 4 +-
.../app/templates/main/service/info/configs.hbs | 2 +-
.../app/templates/main/service/menu_item.hbs | 8 +-
ambari-web/app/templates/wizard/step3.hbs | 12 +-
ambari-web/app/templates/wizard/step4.hbs | 58 +-
ambari-web/app/templates/wizard/step6.hbs | 30 +-
.../templates/wizard/step6/step6_issues_popup.hbs | 43 -
ambari-web/app/utils/ajax/ajax.js | 36 +-
ambari-web/app/views.js | 6 +-
.../views/common/assign_master_components_view.js | 4 +-
ambari-web/app/views/common/breadcrumbs_view.js | 4 +-
.../views/common/configs/compare_property_view.js | 25 -
.../views/common/configs/config_history_flow.js | 644 -
.../common/configs/config_versions_control_view.js | 224 +
.../configs/config_versions_dropdown_view.js | 63 +
.../common/configs/overriddenPropertyRow_view.js | 31 -
.../service_config_layout_tab_compare_view.js | 41 +
.../views/common/configs/service_config_view.js | 69 +
.../configs/service_configs_by_category_view.js | 17 +-
.../configs/widgets/combo_config_widget_view.js | 8 +
.../comparison/config_widget_comparison_view.js | 23 -
ambari-web/app/views/common/controls_view.js | 7 +-
.../app/views/common/filter_combo_cleanable.js | 6 +-
.../common/form/manage_credentials_form_view.js | 3 +-
.../views/common/host_progress_popup_body_view.js | 12 +
.../common/modal_popups/confirmation_popup.js | 11 +-
.../app/views/common/quick_view_link_view.js | 64 +-
.../stack_upgrade/upgrade_version_column_view.js | 11 +-
ambari-web/app/views/main/host/details.js | 4 +
ambari-web/app/views/main/menu.js | 4 +
ambari-web/app/views/main/service/item.js | 4 +
.../main/service/widgets/create/wizard_view.js | 2 +-
.../nameNode/step3_controller_test.js | 23 +-
.../kerberos/kerberos_wizard_controler_test.js | 8 +-
.../main/admin/kerberos/step2_controller_test.js | 2 +-
.../test/controllers/main/host/details_test.js | 23 +-
ambari-web/test/controllers/wizard/step4_test.js | 45 +-
ambari-web/test/controllers/wizard/step8_test.js | 41 +-
.../common/configs/configs_comparator_test.js | 5 -
ambari-web/test/utils/date/timezone_test.js | 2 +-
.../test/views/common/breadcrumbs_view_test.js | 5 +
.../test/views/common/chart/linear_time_test.js | 10 +-
.../common/configs/config_history_flow_test.js | 756 -
.../configs/config_versions_control_view_test.js | 151 +
.../configs/config_versions_dropdown_view_test.js | 82 +
.../common/configs/overriddenProperty_view_test.js | 42 -
.../common/configs/service_config_view_test.js | 52 +-
.../service_configs_by_category_view_test.js | 18 +-
ambari-web/test/views/common/controls_view_test.js | 64 +-
.../common/host_progress_popup_body_view_test.js | 99 +-
.../test/views/common/quick_link_view_test.js | 15 +-
.../management-packs/isilon-onefs-mpack/.gitignore | 1 +
.../management-packs/isilon-onefs-mpack/pom.xml | 133 +
.../src/main/assemblies/isilon-onefs-mpack.xml | 40 +
.../addon-services/ONEFS/1.0.0/alerts.json | 122 +
.../ONEFS/1.0.0/configuration/core-site.xml | 100 +
.../ONEFS/1.0.0/configuration/hadoop-env.xml | 404 +
.../ONEFS/1.0.0/configuration/hdfs-site.xml | 65 +
.../ONEFS/1.0.0/configuration/onefs.xml | 30 +
.../addon-services/ONEFS/1.0.0/kerberos.json | 73 +
.../addon-services/ONEFS/1.0.0/metainfo.xml | 111 +
.../addon-services/ONEFS/1.0.0/metrics.json | 230 +
.../ONEFS/1.0.0/package/scripts/__init__.py | 20 +
.../ONEFS/1.0.0/package/scripts/onefs_client.py | 63 +
.../ONEFS/1.0.0/package/scripts/params.py | 29 +
.../ONEFS/1.0.0/package/scripts/params_linux.py | 70 +
.../ONEFS/1.0.0/package/scripts/params_windows.py | 83 +
.../ONEFS/1.0.0/package/scripts/service_check.py | 59 +
.../ONEFS/1.0.0}/package/scripts/status_params.py | 0
.../ONEFS/1.0.0/quicklinks/quicklinks.json | 31 +
.../addon-services/ONEFS/1.0.0/service_advisor.py | 122 +
.../addon-services/ONEFS/1.0.0/themes/theme.json | 60 +
.../addon-services/ONEFS/1.0.0/widgets.json | 141 +
.../src/main/resources/mpack.json | 28 +
.../src/test/python/TestServiceAdvisor.py | 67 +
.../src/test/python/unitTests.py | 132 +
.../ODPi/2.0/services/YARN/package/scripts/yarn.py | 4 +-
.../view/commons/hdfs/FileOperationService.java | 4 +-
.../resources/ui/app/services/file-operation.js | 2 +-
dev-support/build-ambari.sh | 58 +
docs/pom.xml | 2 +-
docs/src/site/apt/index.apt | 2 +-
docs/src/site/apt/whats-new.apt | 14 +-
docs/src/site/site.xml | 16 +-
pom.xml | 1 +
1167 files changed, 63757 insertions(+), 38510 deletions(-)
diff --cc ambari-logsearch/ambari-logsearch-web/src/app/services/logs-container.service.ts
index 26bad11,baa3972..403cbac
--- a/ambari-logsearch/ambari-logsearch-web/src/app/services/logs-container.service.ts
+++ b/ambari-logsearch/ambari-logsearch-web/src/app/services/logs-container.service.ts
@@@ -46,8 -46,8 +46,9 @@@ import
FilterCondition, TimeUnitListItem, SortingListItem, SearchBoxParameter, SearchBoxParameterTriggered
} from '@app/classes/filtering';
import {ListItem} from '@app/classes/list-item';
+ import {HomogeneousObject} from '@app/classes/object';
import {LogsType, ScrollType, SortingType} from '@app/classes/string';
+
import {Tab} from '@app/classes/models/tab';
import {LogField} from '@app/classes/models/log-field';
import {AuditLog} from '@app/classes/models/audit-log';
diff --cc ambari-server/src/main/java/org/apache/ambari/server/agent/HeartBeatHandler.java
index daff89f,2b82fe3..2aabdc0
--- a/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartBeatHandler.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartBeatHandler.java
@@@ -26,8 -26,8 +26,9 @@@ import java.io.File
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
+ import java.util.Collection;
import java.util.HashMap;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@@ -106,14 -107,10 +109,11 @@@ public class HeartBeatHandler
@Inject
private RecoveryConfigHelper recoveryConfigHelper;
- /**
- * KerberosIdentityDataFileReaderFactory used to create KerberosIdentityDataFileReader instances
- */
@Inject
- private KerberosIdentityDataFileReaderFactory kerberosIdentityDataFileReaderFactory;
+ private KerberosKeytabController kerberosKeytabController;
private Map<String, Long> hostResponseIds = new ConcurrentHashMap<>();
+ private Set<String> refreshCacheForHosts = new ConcurrentHashSet<>();
private Map<String, HeartBeatResponse> hostResponses = new ConcurrentHashMap<>();
diff --cc ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
index 007ec32,af0b700..f5abc6c
--- 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
@@@ -34,9 -34,9 +34,10 @@@ import java.util.HashSet
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+ import java.util.Objects;
import java.util.Scanner;
import java.util.Set;
+import java.util.stream.Collectors;
import javax.xml.bind.JAXBException;
@@@ -155,9 -142,8 +159,9 @@@ public class AmbariMetaInfo
private File serverVersionFile;
private File commonWidgetsDescriptorFile;
private File customActionRoot;
+ private File mpacksV2Staging;
private String commonKerberosDescriptorFileLocation;
- private Map<String, VersionDefinitionXml> versionDefinitions = null;
+ Map<String, VersionDefinitionXml> versionDefinitions = null;
@Inject
diff --cc ambari-server/src/main/java/org/apache/ambari/server/api/services/BaseService.java
index eedd415,b14ffa7..fec7025
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/BaseService.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/BaseService.java
@@@ -49,47 -49,47 +49,46 @@@ import org.slf4j.LoggerFactory
public abstract class BaseService {
public final static MediaType MEDIA_TYPE_TEXT_CSV_TYPE = new MediaType("text", "csv");
- public static final String MSG_SUCCESSFUL_OPERATION = "Successful operation";
- public static final String MSG_REQUEST_ACCEPTED = "Request is accepted, but not completely processed yet";
- public static final String MSG_INVALID_ARGUMENTS = "Invalid arguments";
- public static final String MSG_INVALID_REQUEST = "Invalid request";
- public static final String MSG_CLUSTER_NOT_FOUND = "Cluster not found";
- public static final String MSG_CLUSTER_OR_HOST_NOT_FOUND = "Cluster or host not found";
- public static final String MSG_NOT_AUTHENTICATED = "Not authenticated";
- public static final String MSG_PERMISSION_DENIED = "Not permitted to perform the operation";
- public static final String MSG_SERVER_ERROR = "Internal server error";
- public static final String MSG_RESOURCE_ALREADY_EXISTS = "The requested resource already exists.";
- public static final String MSG_RESOURCE_NOT_FOUND = "The requested resource doesn't exist.";
-
- public static final String QUERY_FIELDS = "fields";
- public static final String QUERY_FILTER_DESCRIPTION = "Filter fields in the response (identifier fields are mandatory)";
- public static final String QUERY_SORT = "sortBy";
- public static final String QUERY_SORT_DESCRIPTION = "Sort resources in result by (asc | desc)";
- public static final String QUERY_PAGE_SIZE = "page_size";
- public static final String QUERY_PAGE_SIZE_DESCRIPTION = "The number of resources to be returned for the paged response.";
- public static final String DEFAULT_PAGE_SIZE = "10";
- public static final String QUERY_FROM = "from";
- public static final String QUERY_FROM_DESCRIPTION = "The starting page resource (inclusive). \"start\" is also accepted.";
- public static final String QUERY_FROM_VALUES = "range[0, infinity]";
- public static final String DEFAULT_FROM = "0";
- public static final String QUERY_TO = "to";
- public static final String QUERY_TO_DESCRIPTION = "The ending page resource (inclusive). \"end\" is also accepted.";
- public static final String QUERY_TO_TYPE = "integer";
- public static final String QUERY_TO_VALUES = "range[1, infinity]";
- public static final String QUERY_PREDICATE = "{predicate}";
- public static final String QUERY_PREDICATE_DESCRIPTION = "The predicate to filter resources by. Omitting the predicate will " +
+ protected static final String MSG_SUCCESSFUL_OPERATION = "Successful operation";
+ protected static final String MSG_REQUEST_ACCEPTED = "Request is accepted, but not completely processed yet";
+ protected static final String MSG_INVALID_ARGUMENTS = "Invalid arguments";
+ protected static final String MSG_INVALID_REQUEST = "Invalid request";
+ protected static final String MSG_CLUSTER_NOT_FOUND = "Cluster not found";
+ protected static final String MSG_CLUSTER_OR_HOST_NOT_FOUND = "Cluster or host not found";
+ protected static final String MSG_NOT_AUTHENTICATED = "Not authenticated";
+ protected static final String MSG_PERMISSION_DENIED = "Not permitted to perform the operation";
+ protected static final String MSG_SERVER_ERROR = "Internal server error";
+ protected static final String MSG_RESOURCE_ALREADY_EXISTS = "The requested resource already exists.";
+ protected static final String MSG_RESOURCE_NOT_FOUND = "The requested resource doesn't exist.";
+
+ protected static final String QUERY_FIELDS = "fields";
+ protected static final String QUERY_FILTER_DESCRIPTION = "Filter fields in the response (identifier fields are mandatory)";
+ protected static final String QUERY_SORT = "sortBy";
+ protected static final String QUERY_SORT_DESCRIPTION = "Sort resources in result by (asc | desc)";
+ protected static final String QUERY_PAGE_SIZE = "page_size";
+ protected static final String QUERY_PAGE_SIZE_DESCRIPTION = "The number of resources to be returned for the paged response.";
+ protected static final String DEFAULT_PAGE_SIZE = "10";
+ protected static final String QUERY_FROM = "from";
+ protected static final String QUERY_FROM_DESCRIPTION = "The starting page resource (inclusive). \"start\" is also accepted.";
+ protected static final String QUERY_FROM_VALUES = "range[0, infinity]";
+ protected static final String DEFAULT_FROM = "0";
+ protected static final String QUERY_TO = "to";
+ protected static final String QUERY_TO_DESCRIPTION = "The ending page resource (inclusive). \"end\" is also accepted.";
+ protected static final String QUERY_TO_TYPE = "integer";
+ protected static final String QUERY_TO_VALUES = "range[1, infinity]";
+ protected static final String QUERY_PREDICATE = "{predicate}";
+ protected static final String QUERY_PREDICATE_DESCRIPTION = "The predicate to filter resources by. Omitting the predicate will " +
"match all resources.";
- public static final String RESPONSE_CONTAINER_LIST = "List";
+ protected static final String RESPONSE_CONTAINER_LIST = "List";
- public static final String DATA_TYPE_INT = "integer";
- public static final String DATA_TYPE_STRING = "string";
+ protected static final String DATA_TYPE_INT = "integer";
+ protected static final String DATA_TYPE_STRING = "string";
- public static final String PARAM_TYPE_QUERY = "query";
- public static final String PARAM_TYPE_BODY = "body";
-
- public static final String FIELDS_SEPARATOR = ", ";
+ protected static final String PARAM_TYPE_QUERY = "query";
+ protected static final String PARAM_TYPE_BODY = "body";
+ protected static final String FIELDS_SEPARATOR = ", ";
-
private final static Logger LOG = LoggerFactory.getLogger(BaseService.class);
/**
diff --cc ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java
index c2bf783,45dc638..2064c0e
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java
@@@ -127,18 -116,9 +127,9 @@@ public interface AmbariManagementContro
* @return config created
*/
Config createConfig(Cluster cluster, StackId stackId, String type, Map<String, String> properties,
- String versionTag, Map<String, Map<String, String>> propertiesAttributes);
+ String versionTag, Map<String, Map<String, String>> propertiesAttributes, Long serviceId);
/**
- * Creates users.
- *
- * @param requests the request objects which define the user.
- *
- * @throws AmbariException when the user cannot be created.
- */
- void createUsers(Set<UserRequest> requests) throws AmbariException;
-
- /**
* Creates groups.
*
* @param requests the request objects which define the groups.
diff --cc ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
index 8bd2f0c,b6fc0d1..7989fe7
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
@@@ -902,8 -801,9 +900,7 @@@ public class AmbariManagementController
// If the config type is for a service, then allow a user with SERVICE_MODIFY_CONFIGS to
// update, else ensure the user has CLUSTER_MODIFY_CONFIGS
- String service = cluster.getServiceByConfigType(configType);
-
-
+ Service service = cluster.getServiceByConfigType(configType);
-
// Get the changes so that the user's intention can be determined. For example, maybe
// the user wants to change the run-as user for a service or maybe the the cluster-wide
// recovery mode setting.
@@@ -3261,8 -3010,14 +3180,14 @@@
continue;
}
+ if (StringUtils.isBlank(stage.getHostParamsStage())) {
+ RepositoryVersionEntity repositoryVersion = component.getDesiredRepositoryVersion();
+ stage.setHostParamsStage(StageUtils.getGson().toJson(
+ customCommandExecutionHelper.createDefaultHostParams(cluster, repositoryVersion.getStackId())));
+ }
+
customCommandExecutionHelper.addServiceCheckAction(stage, clientHost, smokeTestRole,
- nowTimestamp, serviceName, componentName, null, false, false);
+ nowTimestamp, service.getServiceGroupName(), service.getName(), componentName, null, false, false);
}
RoleCommandOrder rco = getRoleCommandOrder(cluster);
diff --cc ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
index 95bc525,c0e9692..d6147a2
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
@@@ -93,7 -92,7 +93,8 @@@ import org.apache.ambari.server.orm.dao
import org.apache.ambari.server.orm.dao.UserDAO;
import org.apache.ambari.server.orm.dao.ViewInstanceDAO;
import org.apache.ambari.server.orm.entities.MetainfoEntity;
+import org.apache.ambari.server.registry.RegistryAdvisor;
+ import org.apache.ambari.server.orm.entities.UserEntity;
import org.apache.ambari.server.resources.ResourceManager;
import org.apache.ambari.server.resources.api.rest.GetResource;
import org.apache.ambari.server.scheduler.ExecutionScheduleManager;
diff --cc ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java
index f2ff181,d6db799..b99fcf1
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java
@@@ -74,11 -73,10 +74,13 @@@ import org.apache.ambari.server.control
import org.apache.ambari.server.controller.internal.MemberResourceProvider;
import org.apache.ambari.server.controller.internal.RepositoryVersionResourceProvider;
import org.apache.ambari.server.controller.internal.RootServiceComponentConfigurationResourceProvider;
+import org.apache.ambari.server.controller.internal.ServiceDependencyResourceProvider;
+import org.apache.ambari.server.controller.internal.ServiceGroupDependencyResourceProvider;
+import org.apache.ambari.server.controller.internal.ServiceGroupResourceProvider;
import org.apache.ambari.server.controller.internal.ServiceResourceProvider;
import org.apache.ambari.server.controller.internal.UpgradeResourceProvider;
+ import org.apache.ambari.server.controller.internal.UserAuthenticationSourceResourceProvider;
+ import org.apache.ambari.server.controller.internal.UserResourceProvider;
import org.apache.ambari.server.controller.internal.ViewInstanceResourceProvider;
import org.apache.ambari.server.controller.logging.LoggingRequestHelperFactory;
import org.apache.ambari.server.controller.logging.LoggingRequestHelperFactoryImpl;
diff --cc ambari-server/src/main/java/org/apache/ambari/server/controller/DeleteIdentityHandler.java
index 01ddf5b,9837d70..19df6cd
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/DeleteIdentityHandler.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/DeleteIdentityHandler.java
@@@ -45,9 -45,9 +45,10 @@@ import org.apache.ambari.server.servera
import org.apache.ambari.server.serveraction.kerberos.KDCType;
import org.apache.ambari.server.serveraction.kerberos.KerberosOperationHandler;
import org.apache.ambari.server.serveraction.kerberos.KerberosServerAction;
+ import org.apache.ambari.server.serveraction.kerberos.stageutils.ResolvedKerberosPrincipal;
import org.apache.ambari.server.state.Cluster;
import org.apache.ambari.server.state.Config;
+import org.apache.ambari.server.state.Service;
import org.apache.ambari.server.state.StackId;
import org.apache.ambari.server.state.kerberos.KerberosDescriptor;
import org.apache.ambari.server.state.svccomphost.ServiceComponentHostServerActionEvent;
diff --cc ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractControllerResourceProvider.java
index f98dbf2,15006b0..212a372
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractControllerResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractControllerResourceProvider.java
@@@ -189,21 -162,7 +172,21 @@@ public abstract class AbstractControlle
case Upgrade:
return resourceProviderFactory.getUpgradeResourceProvider(managementController);
case Stack:
- return new StackResourceProvider(propertyIds, keyPropertyIds, managementController);
+ return new StackResourceProvider(managementController);
+ case Registry:
+ return new RegistryResourceProvider(managementController);
+ case RegistryRecommendation:
+ return new RegistryRecommendationResourceProvider(managementController);
+ case RegistryValidation:
+ return new RegistryValidationResourceProvider(managementController);
+ case RegistryScenario:
+ return new RegistryScenarioResourceProvider(managementController);
+ case RegistryMpack:
+ return new RegistryMpackResourceProvider(managementController);
+ case RegistryMpackVersion:
+ return new RegistryMpackVersionResourceProvider(managementController);
+ case Mpack:
+ return new MpackResourceProvider(managementController);
case StackVersion:
return new StackVersionResourceProvider(managementController);
case ClusterStackVersion:
@@@ -211,27 -170,25 +194,27 @@@
case HostStackVersion:
return new HostStackVersionResourceProvider(managementController);
case StackService:
- return new StackServiceResourceProvider(propertyIds, keyPropertyIds, managementController);
+ return new StackServiceResourceProvider(managementController);
case StackServiceComponent:
- return new StackServiceComponentResourceProvider(propertyIds, keyPropertyIds, managementController);
+ return new StackServiceComponentResourceProvider(managementController);
case StackConfiguration:
- return new StackConfigurationResourceProvider(propertyIds, keyPropertyIds, managementController);
+ return new StackConfigurationResourceProvider(managementController);
+ case RootStackSetting:
+ return new RootStackSettingsResourceProvider(managementController);
case StackConfigurationDependency:
- return new StackConfigurationDependencyResourceProvider(propertyIds, keyPropertyIds, managementController);
+ return new StackConfigurationDependencyResourceProvider(managementController);
case StackLevelConfiguration:
- return new StackLevelConfigurationResourceProvider(propertyIds, keyPropertyIds, managementController);
+ return new StackLevelConfigurationResourceProvider(managementController);
case ExtensionLink:
- return new ExtensionLinkResourceProvider(propertyIds, keyPropertyIds, managementController);
+ return new ExtensionLinkResourceProvider(managementController);
case Extension:
- return new ExtensionResourceProvider(propertyIds, keyPropertyIds, managementController);
+ return new ExtensionResourceProvider(managementController);
case ExtensionVersion:
- return new ExtensionVersionResourceProvider(propertyIds, keyPropertyIds, managementController);
+ return new ExtensionVersionResourceProvider(managementController);
case RootService:
- return new RootServiceResourceProvider(propertyIds, keyPropertyIds, managementController);
+ return new RootServiceResourceProvider(managementController);
case RootServiceComponent:
- return new RootServiceComponentResourceProvider(propertyIds, keyPropertyIds, managementController);
+ return new RootServiceComponentResourceProvider(managementController);
case RootServiceComponentConfiguration:
return resourceProviderFactory.getRootServiceHostComponentConfigurationResourceProvider();
case RootServiceHostComponent:
diff --cc ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractResourceProvider.java
index 21a70ca,40e1b2d..810f191
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractResourceProvider.java
@@@ -61,7 -61,7 +61,7 @@@ public abstract class AbstractResourceP
/**
* Key property mapping by resource type.
*/
-- private final Map<Resource.Type, String> keyPropertyIds;
++ protected final Map<Resource.Type, String> keyPropertyIds;
/**
* Observers of this observable resource provider.
diff --cc ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProvider.java
index af014b7,dcafdea..fdbb034
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProvider.java
@@@ -123,12 -125,24 +125,25 @@@ public class ClientConfigResourceProvid
private final Gson gson;
- private static Set<String> pkPropertyIds =
- new HashSet<>(Arrays.asList(new String[]{
+ /**
+ * The key property ids for a ClientConfig resource.
+ */
+ private static Map<Resource.Type, String> keyPropertyIds = ImmutableMap.<Resource.Type, String>builder()
+ .put(Resource.Type.Cluster, COMPONENT_CLUSTER_NAME_PROPERTY_ID)
+ .put(Resource.Type.Service, COMPONENT_SERVICE_NAME_PROPERTY_ID)
+ .put(Resource.Type.Component, COMPONENT_COMPONENT_NAME_PROPERTY_ID)
+ .put(Resource.Type.Host, HOST_COMPONENT_HOST_NAME_PROPERTY_ID)
+ .build();
+
+ /**
+ * The property ids for a ClientConfig resource.
+ */
+ private static Set<String> propertyIds = Sets.newHashSet(
COMPONENT_CLUSTER_NAME_PROPERTY_ID,
+ COMPONENT_SERVICE_GROUP_NAME_PROPERTY_ID,
COMPONENT_SERVICE_NAME_PROPERTY_ID,
- COMPONENT_COMPONENT_NAME_PROPERTY_ID}));
+ COMPONENT_COMPONENT_NAME_PROPERTY_ID,
+ HOST_COMPONENT_HOST_NAME_PROPERTY_ID);
private MaintenanceStateHelper maintenanceStateHelper;
private static final Logger LOG = LoggerFactory.getLogger(ClientConfigResourceProvider.class);
diff --cc ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java
index 435ac4d,e1bef2a..8facd21
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java
@@@ -87,39 -85,78 +88,69 @@@ public class HostComponentResourceProvi
// ----- Property ID constants ---------------------------------------------
// Host Components
+ public static final String HOST_COMPONENT_CLUSTER_ID_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "cluster_id";
+ public static final String HOST_COMPONENT_CLUSTER_NAME_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "cluster_name";
+ public static final String HOST_COMPONENT_SERVICE_GROUP_ID_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "service_group_id";
+ public static final String HOST_COMPONENT_SERVICE_GROUP_NAME_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "service_group_name";
+ public static final String HOST_COMPONENT_SERVICE_ID_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "service_id";
+ public static final String HOST_COMPONENT_SERVICE_NAME_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "service_name";
+ public static final String HOST_COMPONENT_SERVICE_TYPE_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "service_type";
+ public static final String HOST_COMPONENT_HOST_COMPONENT_ID_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "id";
+ public static final String HOST_COMPONENT_COMPONENT_NAME_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "component_name";
+ public static final String HOST_COMPONENT_DISPLAY_NAME_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "display_name";
+ public static final String HOST_COMPONENT_HOST_NAME_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "host_name";
+ public static final String HOST_COMPONENT_PUBLIC_HOST_NAME_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "public_host_name";
+ public static final String HOST_COMPONENT_STATE_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "state";
+ public static final String HOST_COMPONENT_DESIRED_STATE_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "desired_state";
+ public static final String HOST_COMPONENT_VERSION_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "version";
+ public static final String HOST_COMPONENT_DESIRED_STACK_ID_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "desired_stack_id";
+ public static final String HOST_COMPONENT_DESIRED_REPOSITORY_VERSION = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "desired_repository_version";
+ public static final String HOST_COMPONENT_ACTUAL_CONFIGS_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "actual_configs";
+ public static final String HOST_COMPONENT_STALE_CONFIGS_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "stale_configs";
+ public static final String HOST_COMPONENT_RELOAD_CONFIGS_PROPERTY_ID = PropertyHelper.getPropertyId("HostRoles", "reload_configs");
+ public static final String HOST_COMPONENT_DESIRED_ADMIN_STATE_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "desired_admin_state";
+ public static final String HOST_COMPONENT_MAINTENANCE_STATE_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "maintenance_state";
+ public static final String HOST_COMPONENT_UPGRADE_STATE_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "upgrade_state";
+ public static final String HOST_COMPONENT_ROLE_ID
+ = PropertyHelper.getPropertyId("HostRoles", "role_id");
- public static final String HOST_COMPONENT_CLUSTER_NAME_PROPERTY_ID
- = PropertyHelper.getPropertyId("HostRoles", "cluster_name");
- public static final String HOST_COMPONENT_SERVICE_NAME_PROPERTY_ID
- = PropertyHelper.getPropertyId("HostRoles", "service_name");
- public static final String HOST_COMPONENT_COMPONENT_NAME_PROPERTY_ID
- = PropertyHelper.getPropertyId("HostRoles", "component_name");
- public static final String HOST_COMPONENT_DISPLAY_NAME_PROPERTY_ID
- = PropertyHelper.getPropertyId("HostRoles", "display_name");
- public static final String HOST_COMPONENT_HOST_NAME_PROPERTY_ID
- = PropertyHelper.getPropertyId("HostRoles", "host_name");
- public static final String HOST_COMPONENT_PUBLIC_HOST_NAME_PROPERTY_ID
- = PropertyHelper.getPropertyId("HostRoles", "public_host_name");
- public static final String HOST_COMPONENT_STATE_PROPERTY_ID
- = PropertyHelper.getPropertyId("HostRoles", "state");
- public static final String HOST_COMPONENT_DESIRED_STATE_PROPERTY_ID
- = PropertyHelper.getPropertyId("HostRoles", "desired_state");
- public static final String HOST_COMPONENT_VERSION_PROPERTY_ID
- = PropertyHelper.getPropertyId("HostRoles", "version");
- public static final String HOST_COMPONENT_DESIRED_STACK_ID_PROPERTY_ID
- = PropertyHelper.getPropertyId("HostRoles", "desired_stack_id");
- public static final String HOST_COMPONENT_DESIRED_REPOSITORY_VERSION
- = PropertyHelper.getPropertyId("HostRoles", "desired_repository_version");
- public static final String HOST_COMPONENT_ACTUAL_CONFIGS_PROPERTY_ID
- = PropertyHelper.getPropertyId("HostRoles", "actual_configs");
- public static final String HOST_COMPONENT_STALE_CONFIGS_PROPERTY_ID
- = PropertyHelper.getPropertyId("HostRoles", "stale_configs");
- public static final String HOST_COMPONENT_RELOAD_CONFIGS_PROPERTY_ID
- = PropertyHelper.getPropertyId("HostRoles", "reload_configs");
- public static final String HOST_COMPONENT_DESIRED_ADMIN_STATE_PROPERTY_ID
- = PropertyHelper.getPropertyId("HostRoles", "desired_admin_state");
- public static final String HOST_COMPONENT_MAINTENANCE_STATE_PROPERTY_ID
- = "HostRoles/maintenance_state";
- public static final String HOST_COMPONENT_UPGRADE_STATE_PROPERTY_ID = "HostRoles/upgrade_state";
//Parameters from the predicate
private static final String QUERY_PARAMETERS_RUN_SMOKE_TEST_ID = "params/run_smoke_test";
- private static Set<String> pkPropertyIds =
- new HashSet<>(Arrays.asList(new String[]{
+
+ /**
+ * The key property ids for a HostComponent resource.
+ */
+ public static Map<Resource.Type, String> keyPropertyIds = ImmutableMap.<Resource.Type, String>builder()
+ .put(Resource.Type.Cluster, HOST_COMPONENT_CLUSTER_NAME_PROPERTY_ID)
+ .put(Resource.Type.Host, HOST_COMPONENT_HOST_NAME_PROPERTY_ID)
+ .put(Resource.Type.HostComponent, HOST_COMPONENT_COMPONENT_NAME_PROPERTY_ID)
+ .put(Resource.Type.Component, HOST_COMPONENT_COMPONENT_NAME_PROPERTY_ID)
+ .build();
+
+ /**
+ * The property ids for a HostComponent resource.
+ */
+ protected static Set<String> propertyIds = Sets.newHashSet(
+ HOST_COMPONENT_ROLE_ID,
HOST_COMPONENT_CLUSTER_NAME_PROPERTY_ID,
+ HOST_COMPONENT_SERVICE_GROUP_NAME_PROPERTY_ID,
HOST_COMPONENT_SERVICE_NAME_PROPERTY_ID,
HOST_COMPONENT_COMPONENT_NAME_PROPERTY_ID,
- HOST_COMPONENT_HOST_NAME_PROPERTY_ID}));
+ HOST_COMPONENT_DISPLAY_NAME_PROPERTY_ID,
+ HOST_COMPONENT_HOST_NAME_PROPERTY_ID,
+ HOST_COMPONENT_PUBLIC_HOST_NAME_PROPERTY_ID,
+ HOST_COMPONENT_STATE_PROPERTY_ID,
+ HOST_COMPONENT_DESIRED_STATE_PROPERTY_ID,
+ HOST_COMPONENT_VERSION_PROPERTY_ID,
+ HOST_COMPONENT_DESIRED_STACK_ID_PROPERTY_ID,
+ HOST_COMPONENT_DESIRED_REPOSITORY_VERSION,
+ HOST_COMPONENT_ACTUAL_CONFIGS_PROPERTY_ID,
+ HOST_COMPONENT_STALE_CONFIGS_PROPERTY_ID,
+ HOST_COMPONENT_RELOAD_CONFIGS_PROPERTY_ID,
+ HOST_COMPONENT_DESIRED_ADMIN_STATE_PROPERTY_ID,
+ HOST_COMPONENT_MAINTENANCE_STATE_PROPERTY_ID,
+ HOST_COMPONENT_UPGRADE_STATE_PROPERTY_ID,
+ QUERY_PARAMETERS_RUN_SMOKE_TEST_ID);
/**
* maintenance state helper
diff --cc ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentConfigurationResourceProvider.java
index 5a6dff4,543cf94..1f54429
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentConfigurationResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RootServiceComponentConfigurationResourceProvider.java
@@@ -84,14 -81,10 +87,14 @@@ public class RootServiceComponentConfig
}
@Inject
+ private AmbariEventPublisher publisher;
+
+ @Inject
private RootServiceComponentConfigurationHandlerFactory rootServiceComponentConfigurationHandlerFactory;
+
public RootServiceComponentConfigurationResourceProvider() {
- super(PROPERTIES, PK_PROPERTY_MAP);
+ super(Resource.Type.RootServiceComponentConfiguration, PROPERTIES, PK_PROPERTY_MAP);
Set<RoleAuthorization> authorizations = EnumSet.of(RoleAuthorization.AMBARI_MANAGE_CONFIGURATION);
setRequiredCreateAuthorizations(authorizations);
diff --cc ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackVersionResourceProvider.java
index 0633628,f2e6d1a..bdc5855
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackVersionResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackVersionResourceProvider.java
@@@ -36,72 -34,57 +36,73 @@@ import org.apache.ambari.server.control
import org.apache.ambari.server.controller.spi.Predicate;
import org.apache.ambari.server.controller.spi.Request;
import org.apache.ambari.server.controller.spi.Resource;
-import org.apache.ambari.server.controller.spi.Resource.Type;
import org.apache.ambari.server.controller.spi.SystemException;
import org.apache.ambari.server.controller.spi.UnsupportedPropertyException;
+import org.apache.ambari.server.controller.utilities.PredicateHelper;
import org.apache.ambari.server.controller.utilities.PropertyHelper;
+import org.apache.ambari.server.orm.dao.StackDAO;
+import org.apache.ambari.server.orm.entities.StackEntity;
+
+import com.google.inject.Inject;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Sets;
+
@StaticallyInject
public class StackVersionResourceProvider extends ReadOnlyResourceProvider {
-
- public static final String STACK_VERSION_PROPERTY_ID = PropertyHelper.getPropertyId("Versions", "stack_version");
- public static final String STACK_NAME_PROPERTY_ID = PropertyHelper.getPropertyId("Versions", "stack_name");
- public static final String STACK_MIN_VERSION_PROPERTY_ID = PropertyHelper.getPropertyId("Versions", "min_upgrade_version");
- public static final String STACK_ACTIVE_PROPERTY_ID = PropertyHelper.getPropertyId("Versions", "active");
- public static final String STACK_VALID_PROPERTY_ID = PropertyHelper.getPropertyId("Versions", "valid");
- public static final String STACK_ERROR_SET = PropertyHelper.getPropertyId("Versions", "stack-errors");
- public static final String STACK_CONFIG_TYPES = PropertyHelper.getPropertyId("Versions", "config_types");
- public static final String STACK_PARENT_PROPERTY_ID = PropertyHelper.getPropertyId("Versions", "parent_stack_version");
- public static final String UPGRADE_PACKS_PROPERTY_ID = PropertyHelper.getPropertyId("Versions", "upgrade_packs");
- public static final String STACK_MIN_JDK = PropertyHelper.getPropertyId("Versions", "min_jdk");
- public static final String STACK_MAX_JDK = PropertyHelper.getPropertyId("Versions", "max_jdk");
+ public static final String RESPONSE_KEY = "Versions";
+ public static final String ALL_PROPERTIES = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "*";
+ public static final String STACK_VERSION_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "stack_version";
+ public static final String STACK_NAME_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "stack_name";
+ public static final String STACK_MIN_VERSION_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "min_upgrade_version";
+ public static final String STACK_ACTIVE_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "active";
+ public static final String STACK_VALID_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "valid";
+ public static final String STACK_ERROR_SET = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP +"stack-errors";
+ public static final String STACK_CONFIG_TYPES = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "config_types";
+ public static final String STACK_PARENT_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "parent_stack_version";
+ public static final String UPGRADE_PACKS_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "upgrade_packs";
+ public static final String STACK_MIN_JDK = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "min_jdk";
+ public static final String STACK_MAX_JDK = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "max_jdk";
+ public static final String MPACK_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "mpack_id";
+
+ public static final Set<String> PROPERTY_IDS = new HashSet<>();
+
+ @Inject
+ protected static StackDAO stackDAO;
+
+ private static Set<String> pkPropertyIds = new HashSet<>(
+ Arrays.asList(new String[]{STACK_NAME_PROPERTY_ID, STACK_VERSION_PROPERTY_ID, MPACK_ID}));
/**
- * The key property ids for a StackVersion resource.
+ * The key property ids for a mpack resource.
*/
- protected static Map<Resource.Type, String> keyPropertyIds = ImmutableMap.<Resource.Type, String>builder()
- .put(Type.Stack, STACK_NAME_PROPERTY_ID)
- .put(Type.StackVersion, STACK_VERSION_PROPERTY_ID)
- .build();
+ public static final Map<Resource.Type, String> KEY_PROPERTY_IDS = new HashMap<>();
+
+ static {
+ // properties
+ PROPERTY_IDS.add(MPACK_ID);
+ PROPERTY_IDS.add(STACK_VERSION_PROPERTY_ID);
+ PROPERTY_IDS.add(STACK_NAME_PROPERTY_ID);
+ PROPERTY_IDS.add(STACK_MIN_VERSION_PROPERTY_ID);
+ PROPERTY_IDS.add(STACK_ACTIVE_PROPERTY_ID);
+ PROPERTY_IDS.add(STACK_VALID_PROPERTY_ID);
+ PROPERTY_IDS.add(STACK_ERROR_SET);
+ PROPERTY_IDS.add(STACK_CONFIG_TYPES);
+ PROPERTY_IDS.add(STACK_PARENT_PROPERTY_ID);
+ PROPERTY_IDS.add(UPGRADE_PACKS_PROPERTY_ID);
+ PROPERTY_IDS.add(STACK_MIN_JDK);
+ PROPERTY_IDS.add(STACK_MAX_JDK);
+
+ // keys
+ KEY_PROPERTY_IDS.put(Resource.Type.Mpack, MPACK_ID);
+ KEY_PROPERTY_IDS.put(Resource.Type.Stack, STACK_NAME_PROPERTY_ID);
+ KEY_PROPERTY_IDS.put(Resource.Type.StackVersion, STACK_VERSION_PROPERTY_ID);
- /**
- * The property ids for a StackVersion resource.
- */
- protected static Set<String> propertyIds = Sets.newHashSet(
- STACK_VERSION_PROPERTY_ID,
- STACK_NAME_PROPERTY_ID,
- STACK_MIN_VERSION_PROPERTY_ID,
- STACK_ACTIVE_PROPERTY_ID,
- STACK_VALID_PROPERTY_ID,
- STACK_ERROR_SET,
- STACK_CONFIG_TYPES,
- STACK_PARENT_PROPERTY_ID,
- UPGRADE_PACKS_PROPERTY_ID,
- STACK_MIN_JDK,
- STACK_MAX_JDK);
-
- protected StackVersionResourceProvider(AmbariManagementController managementController) {
- super(Type.StackVersion, propertyIds, keyPropertyIds, managementController);
}
+ StackVersionResourceProvider(AmbariManagementController controller) {
- super(PROPERTY_IDS, KEY_PROPERTY_IDS, controller);
++ super(Resource.Type.StackVersion, PROPERTY_IDS, KEY_PROPERTY_IDS, controller);
+ }
+
+
@Override
public Set<Resource> getResources(Request request, Predicate predicate)
throws SystemException, UnsupportedPropertyException,
diff --cc ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/HostVersionOutOfSyncListener.java
index b4a1529,4b3e42a..5f61c7d
--- a/ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/HostVersionOutOfSyncListener.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/HostVersionOutOfSyncListener.java
@@@ -128,14 -128,20 +128,22 @@@ public class HostVersionOutOfSyncListen
// We perform check per-stack version, because component may be not versionAdvertised in current
// stack, but become versionAdvertised in some future (installed, but not yet upgraded to) stack
String serviceName = event.getServiceName();
+ String serviceType = event.getServiceType();
String componentName = event.getComponentName();
+
+ // Skip lookup if stack does not contain the component
+ if (!ami.get().isValidServiceComponent(hostStackId.getStackName(),
+ hostStackId.getStackVersion(), serviceName, componentName)) {
+ LOG.debug("Component not found is host stack, stack={}, version={}, service={}, component={}",
+ hostStackId.getStackName(), hostStackId.getStackVersion(), serviceName, componentName);
+ continue;
+ }
ComponentInfo component = ami.get().getComponent(hostStackId.getStackName(),
- hostStackId.getStackVersion(), serviceName, componentName);
+ hostStackId.getStackVersion(), serviceType, componentName);
if (!component.isVersionAdvertised()) {
- RepositoryVersionState state = checkAllHostComponents(hostStackId, hostVersionEntity.getHostEntity());
+ RepositoryVersionState state = checkAllHostComponents(hostStackId, serviceName, serviceType,
+ hostVersionEntity.getHostEntity());
if (null != state) {
hostVersionEntity.setState(state);
hostVersionDAO.get().merge(hostVersionEntity);
@@@ -218,8 -223,16 +226,16 @@@
Collection<HostComponentDesiredStateEntity> hostComponents = host.getHostComponentDesiredStateEntities();
for (HostComponentDesiredStateEntity hostComponent : hostComponents) {
+ // Skip lookup if stack does not contain the component
+ if (!ami.get().isValidServiceComponent(stackId.getStackName(),
+ stackId.getStackVersion(), hostComponent.getServiceName(), hostComponent.getComponentName())) {
+ LOG.debug("Component not found is host stack, stack={}, version={}, service={}, component={}",
+ stackId.getStackName(), stackId.getStackVersion(),
+ hostComponent.getServiceName(), hostComponent.getComponentName());
+ continue;
+ }
ComponentInfo ci = ami.get().getComponent(stackId.getStackName(), stackId.getStackVersion(),
- hostComponent.getServiceName(), hostComponent.getComponentName());
+ stackServiceName, hostComponent.getComponentName());
if (ci.isVersionAdvertised()) {
return null;
@@@ -259,10 -273,19 +275,18 @@@
// We perform check per-stack version, because component may be not versionAdvertised in current
// stack, but become versionAdvertised in some future (installed, but not yet upgraded to) stack
boolean hasChangedComponentsWithVersions = false;
- String serviceName = event.getServiceName();
for (ServiceComponent comp : affectedHosts.get(hostName)) {
String componentName = comp.getName();
+
+ // Skip lookup if stack does not contain the component
+ if (!ami.get().isValidServiceComponent(repositoryVersion.getStackName(),
+ repositoryVersion.getStackVersion(), serviceName, componentName)) {
+ LOG.debug("Component not found is host stack, stack={}, version={}, service={}, component={}",
+ repositoryVersion.getStackName(), repositoryVersion.getStackVersion(), serviceName, componentName);
+ continue;
+ }
ComponentInfo component = ami.get().getComponent(repositoryVersion.getStackName(),
- repositoryVersion.getStackVersion(), serviceName, componentName);
+ repositoryVersion.getStackVersion(), comp.getServiceType(), componentName);
if (component.isVersionAdvertised()) {
hasChangedComponentsWithVersions = true;
}
diff --cc ambari-server/src/main/java/org/apache/ambari/server/state/Cluster.java
index d12e8cd,62226af..8ec5c3a
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/Cluster.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/Cluster.java
@@@ -901,9 -666,20 +901,18 @@@ public interface Cluster
* maps are not modified.
* <p/>
*
- * @param commandParams
- * the command parameter map to supplement (not {@code null}).
- * @param roleParams
- * the role parameter map to supplement (not {@code null}).
+ * @param commandParams the command parameter map to supplement (not {@code null}).
+ * @param roleParams the role parameter map to supplement (not {@code null}).
*/
void addSuspendedUpgradeParameters(Map<String, String> commandParams,
- Map<String, String> roleParams);
+ Map<String, String> roleParams);
+
+ /**
+ * Gets a mapping of service to component/version for every installed
+ * component in the cluster which advertises a version and for which the
+ * repository has been resolved.
+ *
+ * @return a mapping of service to component version, or an empty map.
+ */
+ Map<String, Map<String, String>> getComponentVersionMap();
}
diff --cc ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
index a811c5e,2f3afd6..4ab3a3d
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
@@@ -1885,7 -1336,7 +1888,8 @@@ public class ClusterImpl implements Clu
try {
refresh();
deleteAllServices();
+ deleteAllServiceGroups();
+ resetHostVersions();
refresh(); // update one-to-many clusterServiceEntities
removeEntities();
@@@ -1905,9 -1356,17 +1909,18 @@@
clusterDAO.removeByPK(clusterId);
}
+ //TODO this needs to be reworked to support multiple instance of same service
+ private void resetHostVersions() {
+ for (HostVersionEntity hostVersionEntity : hostVersionDAO.findByCluster(getClusterName())) {
+ if (!hostVersionEntity.getState().equals(RepositoryVersionState.NOT_REQUIRED)) {
+ hostVersionEntity.setState(RepositoryVersionState.NOT_REQUIRED);
+ hostVersionDAO.merge(hostVersionEntity);
+ }
+ }
+ }
+
@Override
- public ServiceConfigVersionResponse addDesiredConfig(String user, Set<Config> configs) {
+ public ServiceConfigVersionResponse addDesiredConfig(String user, Set<Config> configs) throws AmbariException {
return addDesiredConfig(user, configs, null);
}
@@@ -2125,49 -1581,41 +2138,53 @@@
return response;
}
+ //TODO this needs to be reworked to support multiple instance of same service
@Override
- public String getServiceForConfigTypes(Collection<String> configTypes) {
- List<String> serviceNames = configTypes.stream()
- .map(this::getServiceByConfigType)
- .filter(Objects::nonNull)
- .collect(toList());
- boolean allTheSame = new HashSet<>(serviceNames).size() <= 1;
- if (!allTheSame) {
- throw new IllegalArgumentException(String.format(
- "Config types: %s should belong to a single installed service. But they belong to: %s", configTypes, serviceNames));
+ public Long getServiceForConfigTypes(Collection<String> configTypes) {
+ //debug
+ LOG.info("Looking for service for config types {}", configTypes);
+ List<Long> resultingServiceIds = new ArrayList<>();
+
+ for (Long serviceId : serviceConfigTypes.keySet()) {
+ Set<String> configTypesForServiceId = serviceConfigTypes.get(serviceId);
+ if (configTypesForServiceId.containsAll(configTypes)) {
+ resultingServiceIds.add(serviceId);
+ }
+ }
+ if (resultingServiceIds.isEmpty()) {
+ LOG.warn("Can't find serviceIds for {}, there is a problem if there's no cluster-env", configTypes);
+ return null;
+ } else {
+ LOG.info("Service {} returning", getServiceOrNull(resultingServiceIds.get(0)));
}
- return serviceNames.isEmpty() ? null : serviceNames.get(0);
- }
- public List<String> serviceNameByConfigType(String configType) {
- return serviceConfigTypes.entries().stream()
- .filter(entry -> StringUtils.equals(entry.getValue(), configType))
- .map(entry -> entry.getKey())
- .collect(toList());
+ //TODO this needs to be reworked to support multiple instance of same service
+ return resultingServiceIds.get(0);
}
+ //TODO this needs to be reworked to support multiple instance of same service
@Override
- public String getServiceByConfigType(String configType) {
- return serviceNameByConfigType(configType).stream()
- .filter(this::isServiceInstalled)
- .findFirst()
- .orElse(null);
+ public Service getServiceByConfigType(String configType) {
+ List<Long> resultingServiceIds = new ArrayList<>();
+ for (Long serviceId : serviceConfigTypes.keySet()) {
+ if (serviceConfigTypes.get(serviceId).contains(configType)) {
+ resultingServiceIds.add(serviceId);
+ }
+ }
+ if (resultingServiceIds.isEmpty()) {
+ LOG.warn("Can't find service for {}", configType);
+ return null;
+ }
+ //TODO this needs to be reworked to support multiple instance of same service
+ return getServiceOrNull(resultingServiceIds.get(0));
}
+ private boolean isServiceInstalled(String serviceName) {
+ return services.get(serviceName) != null;
+ }
+
@Override
- public ServiceConfigVersionResponse setServiceConfigVersion(String serviceName, Long version, String user, String note) throws AmbariException {
+ public ServiceConfigVersionResponse setServiceConfigVersion(Long serviceId, Long version, String user, String note) throws AmbariException {
if (null == user) {
throw new NullPointerException("User must be specified.");
}
@@@ -2434,30 -1892,9 +2451,29 @@@
return convertToServiceConfigVersionResponse(serviceConfigEntityClone);
}
+ //TODO this needs to be reworked to support multiple instance of same service
@Transactional
- ServiceConfigVersionResponse applyConfigs(Set<Config> configs, String user, String serviceConfigVersionNote) {
- String serviceName = getServiceForConfigTypes(configs.stream().map(Config::getType).collect(toList()));
+ ServiceConfigVersionResponse applyConfigs(Set<Config> configs, String user, String serviceConfigVersionNote) throws AmbariException {
+ Long resultingServiceId = null;
+ for (Config config : configs) {
+ for (Long serviceId : serviceConfigTypes.keySet()) {
+ if (serviceConfigTypes.get(serviceId).contains(config.getType())) {
+ if (resultingServiceId == null) {
+ resultingServiceId = serviceId;
+ break;
+ } else if (!resultingServiceId.equals(serviceId)) {
+ String error = String.format("Updating configs for multiple services by a " +
+ "single API request isn't supported. Conflicting services %s and %s for %s",
+ getService(serviceId).getName(), getService(resultingServiceId).getName(), config.getType());
+ IllegalArgumentException exception = new IllegalArgumentException(error);
+ LOG.error(error + ", config version not created for {}", getService(resultingServiceId).getName());
+ throw exception;
+ } else {
+ break;
+ }
+ }
+ }
+ }
-
// update the selected flag for every config type
ClusterEntity clusterEntity = getClusterEntity();
Collection<ClusterConfigEntity> clusterConfigs = clusterEntity.getClusterConfigEntities();
diff --cc ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql
index b5ae330,0e940ae..f8260ef
--- a/ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql
@@@ -1168,18 -1087,10 +1195,20 @@@ CREATE INDEX idx_alert_notice_state on
-- In order for the first ID to be 1, must initialize the ambari_sequences table with a sequence_value of 0.
-- BEGIN;
INSERT INTO ambari_sequences (sequence_name, sequence_value)
+ SELECT 'kkp_id_seq', 0 FROM SYSIBM.SYSDUMMY1
+ UNION ALL
SELECT 'cluster_id_seq', 1 FROM SYSIBM.SYSDUMMY1
UNION ALL
+ SELECT 'cluster_setting_id_seq', 1 FROM SYSIBM.SYSDUMMY1
+ UNION ALL
+ SELECT 'service_group_id_seq', 1 FROM SYSIBM.SYSDUMMY1
+ UNION ALL
+ SELECT 'service_group_dependency_id_seq', 1 FROM SYSIBM.SYSDUMMY1
+ UNION ALL
+ SELECT 'service_dependency_id_seq', 1 FROM SYSIBM.SYSDUMMY1
+ UNION ALL
+ SELECT 'service_id_seq', 1 FROM SYSIBM.SYSDUMMY1
+ UNION ALL
SELECT 'host_id_seq', 0 FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT 'user_id_seq', 2 FROM SYSIBM.SYSDUMMY1
diff --cc ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
index 0d2d0dc,da14dcb..b7807bc
--- a/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
@@@ -1181,12 -1104,8 +1211,13 @@@ CREATE INDEX idx_alert_notice_state on
-- In order for the first ID to be 1, must initialize the ambari_sequences table with a sequence_value of 0.
INSERT INTO ambari_sequences(sequence_name, sequence_value) VALUES
+ ('kkp_id_seq', 0),
('cluster_id_seq', 1),
+ ('cluster_setting_id_seq', 1),
+ ('service_group_id_seq', 1),
+ ('service_dependency_id_seq', 1),
+ ('service_group_dependency_id_seq', 1),
+ ('service_id_seq', 1),
('host_id_seq', 0),
('host_role_command_id_seq', 1),
('user_id_seq', 2),
diff --cc ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
index c954cd3,d5cf42a..c4d94d4
--- a/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
@@@ -1158,14 -1082,11 +1188,16 @@@ CREATE INDEX idx_alert_group_name on al
CREATE INDEX idx_alert_notice_state on alert_notice(notify_state);
---------inserting some data-----------
+ INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('kkp_id_seq', 0);
-- In order for the first ID to be 1, must initialize the ambari_sequences table with a sequence_value of 0.
INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('host_role_command_id_seq', 0);
+INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('cluster_setting_id_seq', 1);
+INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('service_group_id_seq', 1);
+INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('service_dependency_id_seq', 1);
+INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('service_group_dependency_id_seq', 1);
+INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('service_id_seq', 1);
INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('user_id_seq', 1);
+ INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('user_authentication_id_seq', 1);
INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('group_id_seq', 0);
INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('member_id_seq', 0);
INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('cluster_id_seq', 0);
diff --cc ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
index e8850e3,f2b3da3..6044262
--- a/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
@@@ -1131,14 -1085,11 +1162,16 @@@ CREATE INDEX idx_alert_notice_state on
-- In order for the first ID to be 1, must initialize the ambari_sequences table with a sequence_value of 0.
BEGIN;
INSERT INTO ambari_sequences (sequence_name, sequence_value) VALUES
+ ('kkp_id_seq', 0),
('cluster_id_seq', 1),
+ ('cluster_setting_id_seq', 1),
+ ('service_group_id_seq', 1),
+ ('service_group_dependency_id_seq', 1),
+ ('service_id_seq', 1),
+ ('service_dependency_id_seq', 1),
('host_id_seq', 0),
('user_id_seq', 2),
+ ('user_authentication_id_seq', 2),
('group_id_seq', 1),
('member_id_seq', 1),
('host_role_command_id_seq', 1),
diff --cc ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql
index cbd5aaf,a62a7d2..b9a4f0e
--- a/ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql
@@@ -1157,13 -1080,9 +1187,14 @@@ CREATE INDEX idx_alert_history_state o
CREATE INDEX idx_alert_group_name on alert_group(group_name);
CREATE INDEX idx_alert_notice_state on alert_notice(notify_state);
+ INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('kkp_id_seq', 0);
-- In order for the first ID to be 1, must initialize the ambari_sequences table with a sequence_value of 0.
INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('cluster_id_seq', 1);
+INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('cluster_setting_id_seq', 1);
+INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('service_group_id_seq', 1);
+INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('service_dependency_id_seq', 1);
+INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('service_group_dependency_id_seq', 1);
+INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('service_id_seq', 1);
INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('host_id_seq', 0);
INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('host_role_command_id_seq', 1);
INSERT INTO ambari_sequences(sequence_name, sequence_value) values ('user_id_seq', 2);
diff --cc ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql
index ad83318,d84cd70..fe9e987
--- a/ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql
@@@ -1185,14 -1108,11 +1215,16 @@@ CREATE INDEX idx_alert_notice_state on
BEGIN TRANSACTION
INSERT INTO ambari_sequences (sequence_name, [sequence_value])
VALUES
+ ('kkp_id_seq', 0),
('cluster_id_seq', 1),
+ ('cluster_setting_id_seq', 1),
+ ('service_group_id_seq', 1),
+ ('service_dependency_id_seq', 1),
+ ('service_group_dependency_id_seq', 1),
+ ('service_id_seq', 1),
('host_id_seq', 0),
('user_id_seq', 2),
+ ('user_authentication_id_seq', 2),
('group_id_seq', 1),
('member_id_seq', 1),
('host_role_command_id_seq', 1),
diff --cc ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
index 8c44632,b7d977e..6cd1504
--- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
@@@ -1721,10 -1715,10 +1720,10 @@@ public class AmbariMetaInfoTest
RepositoryVersionEntity repositoryVersion = ormHelper.getOrCreateRepositoryVersion(
cluster.getCurrentStackVersion(), repoVersion);
-
- cluster.addService("HDFS", repositoryVersion);
+ ServiceGroup sg = cluster.addServiceGroup("core");
+ cluster.addService(sg, "HDFS", "HDFS", repositoryVersion);
- metaInfo.reconcileAlertDefinitions(clusters);
+ metaInfo.reconcileAlertDefinitions(clusters, false);
AlertDefinitionDAO dao = injector.getInstance(AlertDefinitionDAO.class);
List<AlertDefinitionEntity> definitions = dao.findAll(clusterId);
diff --cc ambari-server/src/test/java/org/apache/ambari/server/controller/KerberosHelperTest.java
index 462b917,1bee291..1f869f9
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/KerberosHelperTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/KerberosHelperTest.java
@@@ -80,8 -79,9 +80,10 @@@ import org.apache.ambari.server.mpack.M
import org.apache.ambari.server.orm.DBAccessor;
import org.apache.ambari.server.orm.dao.ArtifactDAO;
import org.apache.ambari.server.orm.dao.HostRoleCommandDAO;
+ import org.apache.ambari.server.orm.dao.KerberosKeytabPrincipalDAO;
import org.apache.ambari.server.orm.dao.KerberosPrincipalDAO;
+import org.apache.ambari.server.resources.RootLevelSettingsManagerFactory;
+ import org.apache.ambari.server.orm.entities.KerberosKeytabPrincipalEntity;
import org.apache.ambari.server.security.SecurityHelper;
import org.apache.ambari.server.security.credential.PrincipalKeyCredential;
import org.apache.ambari.server.security.encryption.CredentialStoreService;
@@@ -260,10 -261,9 +263,11 @@@ public class KerberosHelperTest extend
bind(AuditLogger.class).toInstance(createNiceMock(AuditLogger.class));
bind(ArtifactDAO.class).toInstance(createNiceMock(ArtifactDAO.class));
bind(KerberosPrincipalDAO.class).toInstance(createNiceMock(KerberosPrincipalDAO.class));
+ bind(KerberosKeytabPrincipalDAO.class).toInstance(createNiceMock(KerberosKeytabPrincipalDAO.class));
bind(RoleCommandOrderProvider.class).to(CachedRoleCommandOrderProvider.class);
bind(HostRoleCommandFactory.class).to(HostRoleCommandFactoryImpl.class);
+ bind(MpackManagerFactory.class).toInstance(createNiceMock(MpackManagerFactory.class));
+ bind(RootLevelSettingsManagerFactory.class).toInstance(createNiceMock(RootLevelSettingsManagerFactory.class));
requestStaticInjection(KerberosChecker.class);
}
diff --cc ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProviderTest.java
index 1cd553c,c5994c5..a17e94f
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProviderTest.java
@@@ -216,11 -210,9 +212,9 @@@ public class ClientConfigResourceProvid
ResourceProvider provider = AbstractControllerResourceProvider.getResourceProvider(
type,
- PropertyHelper.getPropertyIds(type),
- PropertyHelper.getKeyPropertyIds(type),
managementController);
- String clusterName = "C1";
+ String clusterName = "c1";
String serviceName = "PIG";
String componentName = "PIG";
String displayName = "Pig Client";
diff --cc ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostComponentResourceProviderTest.java
index 622dd7f,650dc78..f0337bb
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostComponentResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostComponentResourceProviderTest.java
@@@ -114,12 -109,11 +112,11 @@@ public class HostComponentResourceProvi
AbstractControllerResourceProvider.init(resourceProviderFactory);
- managementController.createHostComponents(
- AbstractResourceProviderTest.Matcher.getHostComponentRequestSet(
- "Cluster100", "Service100", "Component100", "Host100", null, null));
+ ServiceComponentHostRequest request = new ServiceComponentHostRequest("Cluster100", SERVICE_GROUP_NAME, "Service100", "Component100", "Host100", null);
+ Set<ServiceComponentHostRequest> expectedRequests = Collections.singleton(request);
+ expect(managementController.createHostComponents(eq(expectedRequests))).andReturn(null).once();
- expect(resourceProviderFactory.getHostComponentResourceProvider(EasyMock.anyObject(),
- EasyMock.anyObject(),
+ expect(resourceProviderFactory.getHostComponentResourceProvider(
eq(managementController))).
andReturn(hostComponentResourceProvider).anyTimes();
@@@ -456,13 -442,12 +447,11 @@@
Injector injector = createNiceMock(Injector.class);
HostComponentResourceProvider provider =
- new HostComponentResourceProvider(PropertyHelper.getPropertyIds(type),
- PropertyHelper.getKeyPropertyIds(type),
- managementController, injector);
+ new HostComponentResourceProvider(managementController, injector);
// set expectations
- expect(managementController.deleteHostComponents(
- AbstractResourceProviderTest.Matcher.getHostComponentRequestSet(
- null, null, "Component100", "Host100", null, null))).andReturn(deleteStatusMetaData);
+ ServiceComponentHostRequest request = new ServiceComponentHostRequest(null, null, null, "Component100", "Host100", null);
+ expect(managementController.deleteHostComponents(Collections.singleton(request))).andReturn(deleteStatusMetaData);
// replay
replay(managementController, deleteStatusMetaData);
diff --cc ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProviderTest.java
index 9ad233f,670c187..0ea3a56
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProviderTest.java
@@@ -232,10 -229,10 +230,10 @@@ public class HostStackVersionResourcePr
expect(managementController.getAmbariMetaInfo()).andReturn(ambariMetaInfo).anyTimes();
expect(managementController.getActionManager()).andReturn(actionManager).anyTimes();
expect(managementController.getJdkResourceUrl()).andReturn("/JdkResourceUrl").anyTimes();
- expect(managementController.getPackagesForServiceHost(anyObject(ServiceInfo.class),
+ expect(managementController.getPackagesForStackServiceHost(anyObject(StackInfo.class),anyObject(ServiceInfo.class),
EasyMock.anyObject(), anyObject(String.class))).andReturn(packages).anyTimes();
- expect(resourceProviderFactory.getHostResourceProvider(EasyMock.anyObject(), EasyMock.anyObject(),
+ expect(resourceProviderFactory.getHostResourceProvider(
eq(managementController))).andReturn(csvResourceProvider).anyTimes();
expect(clusters.getCluster(anyObject(String.class))).andReturn(cluster);
@@@ -330,10 -323,10 +326,10 @@@
expect(managementController.getAmbariMetaInfo()).andReturn(ambariMetaInfo).anyTimes();
expect(managementController.getActionManager()).andReturn(actionManager).anyTimes();
expect(managementController.getJdkResourceUrl()).andReturn("/JdkResourceUrl").anyTimes();
- expect(managementController.getPackagesForServiceHost(anyObject(ServiceInfo.class),
+ expect(managementController.getPackagesForStackServiceHost(anyObject(StackInfo.class),anyObject(ServiceInfo.class),
anyObject(Map.class), anyObject(String.class))).andReturn(packages).anyTimes();
- expect(resourceProviderFactory.getHostResourceProvider(anyObject(Set.class), anyObject(Map.class),
+ expect(resourceProviderFactory.getHostResourceProvider(
eq(managementController))).andReturn(csvResourceProvider).anyTimes();
expect(clusters.getCluster(anyObject(String.class))).andReturn(cluster);
@@@ -429,10 -419,10 +423,10 @@@
expect(managementController.getAmbariMetaInfo()).andReturn(ambariMetaInfo).anyTimes();
expect(managementController.getActionManager()).andReturn(actionManager).anyTimes();
expect(managementController.getJdkResourceUrl()).andReturn("/JdkResourceUrl").anyTimes();
- expect(managementController.getPackagesForServiceHost(anyObject(ServiceInfo.class),
+ expect(managementController.getPackagesForStackServiceHost(anyObject(StackInfo.class),anyObject(ServiceInfo.class),
EasyMock.anyObject(), anyObject(String.class))).andReturn(packages).anyTimes();
- expect(resourceProviderFactory.getHostResourceProvider(EasyMock.anyObject(), EasyMock.anyObject(),
+ expect(resourceProviderFactory.getHostResourceProvider(
eq(managementController))).andReturn(csvResourceProvider).anyTimes();
expect(clusters.getCluster(anyObject(String.class))).andReturn(cluster);
diff --cc ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserResourceProviderTest.java
index 4ce9352,aaddda2..a34bf23
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserResourceProviderTest.java
@@@ -18,14 -18,21 +18,22 @@@
package org.apache.ambari.server.controller.internal;
++import org.apache.ambari.server.security.authorization.Users;
+ import static org.easymock.EasyMock.anyObject;
+ import static org.easymock.EasyMock.capture;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.expectLastCall;
+ import static org.easymock.EasyMock.getCurrentArguments;
+ import static org.easymock.EasyMock.newCapture;
+ import java.util.ArrayList;
import java.util.Arrays;
+ import java.util.Calendar;
import java.util.Collections;
+ import java.util.Date;
+ import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
- import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@@ -53,12 -65,25 +66,29 @@@ import org.apache.ambari.server.hooks.H
import org.apache.ambari.server.hooks.HookService;
import org.apache.ambari.server.metadata.CachedRoleCommandOrderProvider;
import org.apache.ambari.server.metadata.RoleCommandOrderProvider;
+import org.apache.ambari.server.mpack.MpackManagerFactory;
import org.apache.ambari.server.orm.DBAccessor;
+ import org.apache.ambari.server.orm.dao.GroupDAO;
import org.apache.ambari.server.orm.dao.HostRoleCommandDAO;
+import org.apache.ambari.server.registry.RegistryFactory;
+import org.apache.ambari.server.registry.RegistryManager;
+import org.apache.ambari.server.resources.RootLevelSettingsManagerFactory;
+ import org.apache.ambari.server.orm.dao.MemberDAO;
+ import org.apache.ambari.server.orm.dao.PermissionDAO;
+ import org.apache.ambari.server.orm.dao.PrincipalDAO;
+ import org.apache.ambari.server.orm.dao.PrincipalTypeDAO;
+ import org.apache.ambari.server.orm.dao.PrivilegeDAO;
+ import org.apache.ambari.server.orm.dao.ResourceDAO;
+ import org.apache.ambari.server.orm.dao.UserAuthenticationDAO;
+ import org.apache.ambari.server.orm.dao.UserDAO;
+ import org.apache.ambari.server.orm.entities.MemberEntity;
+ import org.apache.ambari.server.orm.entities.PermissionEntity;
+ import org.apache.ambari.server.orm.entities.PrincipalEntity;
+ import org.apache.ambari.server.orm.entities.PrincipalTypeEntity;
+ import org.apache.ambari.server.orm.entities.PrivilegeEntity;
+ import org.apache.ambari.server.orm.entities.ResourceEntity;
+ import org.apache.ambari.server.orm.entities.UserAuthenticationEntity;
+ import org.apache.ambari.server.orm.entities.UserEntity;
import org.apache.ambari.server.scheduler.ExecutionScheduler;
import org.apache.ambari.server.security.TestAuthenticationFactory;
import org.apache.ambari.server.security.authorization.AuthorizationException;
@@@ -236,40 -389,43 +396,50 @@@ public class UserResourceProviderTest e
install(new FactoryModuleBuilder().build(UpgradeContextFactory.class));
install(new FactoryModuleBuilder().build(RoleGraphFactory.class));
- bind(EntityManager.class).toInstance(createNiceMock(EntityManager.class));
- bind(DBAccessor.class).toInstance(createNiceMock(DBAccessor.class));
- bind(ActionDBAccessor.class).toInstance(createNiceMock(ActionDBAccessor.class));
- bind(ExecutionScheduler.class).toInstance(createNiceMock(ExecutionScheduler.class));
- bind(OsFamily.class).toInstance(createNiceMock(OsFamily.class));
+ bind(EntityManager.class).toInstance(createMock(EntityManager.class));
+ bind(DBAccessor.class).toInstance(createMock(DBAccessor.class));
+ bind(ActionDBAccessor.class).toInstance(createMock(ActionDBAccessor.class));
+ bind(ExecutionScheduler.class).toInstance(createMock(ExecutionScheduler.class));
+ bind(OsFamily.class).toInstance(createMock(OsFamily.class));
bind(AmbariMetaInfo.class).toInstance(createMock(AmbariMetaInfo.class));
- bind(ActionManager.class).toInstance(createNiceMock(ActionManager.class));
- bind(RequestFactory.class).toInstance(createNiceMock(RequestFactory.class));
- bind(RequestExecutionFactory.class).toInstance(createNiceMock(RequestExecutionFactory.class));
- bind(StageFactory.class).toInstance(createNiceMock(StageFactory.class));
- bind(Clusters.class).toInstance(createNiceMock(Clusters.class));
- bind(AbstractRootServiceResponseFactory.class).toInstance(createNiceMock(AbstractRootServiceResponseFactory.class));
+ bind(ActionManager.class).toInstance(createMock(ActionManager.class));
+ bind(RequestFactory.class).toInstance(createMock(RequestFactory.class));
+ bind(RequestExecutionFactory.class).toInstance(createMock(RequestExecutionFactory.class));
+ bind(StageFactory.class).toInstance(createMock(StageFactory.class));
+ bind(Clusters.class).toInstance(createMock(Clusters.class));
+ bind(AbstractRootServiceResponseFactory.class).toInstance(createMock(AbstractRootServiceResponseFactory.class));
- bind(StackManagerFactory.class).toInstance(createMock(StackManagerFactory.class));
+ bind(StackManagerFactory.class).toInstance(createNiceMock(StackManagerFactory.class));
- bind(ConfigFactory.class).toInstance(createNiceMock(ConfigFactory.class));
- bind(ConfigGroupFactory.class).toInstance(createNiceMock(ConfigGroupFactory.class));
+ bind(ConfigFactory.class).toInstance(createMock(ConfigFactory.class));
+ bind(ConfigGroupFactory.class).toInstance(createMock(ConfigGroupFactory.class));
+ bind(ServiceGroupFactory.class).toInstance(createNiceMock(ServiceGroupFactory.class));
- bind(ServiceFactory.class).toInstance(createNiceMock(ServiceFactory.class));
- bind(ServiceComponentFactory.class).toInstance(createNiceMock(ServiceComponentFactory.class));
- bind(ServiceComponentHostFactory.class).toInstance(createNiceMock(ServiceComponentHostFactory.class));
- bind(PasswordEncoder.class).toInstance(createNiceMock(PasswordEncoder.class));
- bind(KerberosHelper.class).toInstance(createNiceMock(KerberosHelper.class));
+ bind(ServiceFactory.class).toInstance(createMock(ServiceFactory.class));
+ bind(ServiceComponentFactory.class).toInstance(createMock(ServiceComponentFactory.class));
+ bind(ServiceComponentHostFactory.class).toInstance(createMock(ServiceComponentHostFactory.class));
+ bind(PasswordEncoder.class).toInstance(createMock(PasswordEncoder.class));
+ bind(KerberosHelper.class).toInstance(createMock(KerberosHelper.class));
+ bind(Users.class).toInstance(createMock(Users.class));
- bind(AmbariManagementController.class).to(AmbariManagementControllerImpl.class);
+ bind(AmbariManagementController.class).toInstance(createMock(AmbariManagementController.class));
bind(RoleCommandOrderProvider.class).to(CachedRoleCommandOrderProvider.class);
bind(CredentialStoreService.class).to(CredentialStoreServiceImpl.class);
bind(HostRoleCommandDAO.class).toInstance(createMock(HostRoleCommandDAO.class));
bind(HookService.class).toInstance(createMock(HookService.class));
bind(HookContextFactory.class).toInstance(createMock(HookContextFactory.class));
bind(HostRoleCommandFactory.class).to(HostRoleCommandFactoryImpl.class);
+ bind(MpackManagerFactory.class).toInstance(createNiceMock(MpackManagerFactory.class));
+ bind(RegistryFactory.class).toInstance(createNiceMock(RegistryFactory.class));
+ bind(RegistryManager.class).toInstance(createNiceMock(RegistryManager.class));
+ bind(RootLevelSettingsManagerFactory.class).toInstance(createNiceMock(RootLevelSettingsManagerFactory.class));
+ bind(ClusterSettingFactory.class).toInstance(createNiceMock(ClusterSettingFactory.class));
+ bind(UserDAO.class).toInstance(createMock(UserDAO.class));
+
+ bind(UserAuthenticationDAO.class).toInstance(createMock(UserAuthenticationDAO.class));
+ bind(GroupDAO.class).toInstance(createMock(GroupDAO.class));
+ bind(MemberDAO.class).toInstance(createMock(MemberDAO.class));
+ bind(PrincipalDAO.class).toInstance(createMock(PrincipalDAO.class));
+ bind(PermissionDAO.class).toInstance(createMock(PermissionDAO.class));
+ bind(PrivilegeDAO.class).toInstance(createMock(PrivilegeDAO.class));
+ bind(ResourceDAO.class).toInstance(createMock(ResourceDAO.class));
+ bind(PrincipalTypeDAO.class).toInstance(createMock(PrincipalTypeDAO.class));
}
});
}
diff --cc ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterTest.java
index 96348b5,8b37f72..e6c71f4
--- a/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterTest.java
@@@ -1381,9 -1385,10 +1383,10 @@@ public class ClusterTest
public void testAllServiceConfigVersionsWithConfigGroups() throws Exception {
// Given
createDefaultCluster();
+ c1.addService("HDFS", helper.getOrCreateRepositoryVersion(new StackId("HDP", "0.1"), "0.1"));
Config hdfsSiteConfigV1 = configFactory.createNew(c1, "hdfs-site", "version1",
- ImmutableMap.of("p1", "v1"), ImmutableMap.of());
+ ImmutableMap.of("p1", "v1"), new HashMap<>());
ServiceConfigVersionResponse hdfsSiteConfigResponseV1 = c1.addDesiredConfig("admin", Collections.singleton(hdfsSiteConfigV1));
List<ConfigurationResponse> configResponsesDefaultGroup = Collections.singletonList(
@@@ -1430,9 -1445,10 +1433,10 @@@
public void testAllServiceConfigVersionsWithDeletedConfigGroups() throws Exception {
// Given
createDefaultCluster();
+ c1.addService("HDFS", helper.getOrCreateRepositoryVersion(new StackId("HDP", "0.1"), "0.1"));
Config hdfsSiteConfigV1 = configFactory.createNew(c1, "hdfs-site", "version1",
- ImmutableMap.of("p1", "v1"), ImmutableMap.of());
+ ImmutableMap.of("p1", "v1"), new HashMap<>());
ServiceConfigVersionResponse hdfsSiteConfigResponseV1 = c1.addDesiredConfig("admin", Collections.singleton(hdfsSiteConfigV1));
List<ConfigurationResponse> configResponsesDefaultGroup = Collections.singletonList(
diff --cc ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog300Test.java
index 8b7f5c5,6dbc9fa..5109d8d
--- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog300Test.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog300Test.java
@@@ -23,9 -28,37 +28,38 @@@ import static org.apache.ambari.server.
import static org.apache.ambari.server.upgrade.UpgradeCatalog300.AMBARI_CONFIGURATION_TABLE;
import static org.apache.ambari.server.upgrade.UpgradeCatalog300.COMPONENT_DESIRED_STATE_TABLE;
import static org.apache.ambari.server.upgrade.UpgradeCatalog300.COMPONENT_STATE_TABLE;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.MEMBERS_GROUP_ID_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.MEMBERS_MEMBER_ID_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.MEMBERS_TABLE;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.MEMBERS_USER_ID_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.REQUEST_DISPLAY_STATUS_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.REQUEST_TABLE;
import static org.apache.ambari.server.upgrade.UpgradeCatalog300.SECURITY_STATE_COLUMN;
import static org.apache.ambari.server.upgrade.UpgradeCatalog300.SERVICE_DESIRED_STATE_TABLE;
+import static org.easymock.EasyMock.anyLong;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.STAGE_DISPLAY_STATUS_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.STAGE_STATUS_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.STAGE_TABLE;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.UNIQUE_USERS_0_INDEX;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.USERS_CONSECUTIVE_FAILURES_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.USERS_DISPLAY_NAME_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.USERS_LDAP_USER_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.USERS_LOCAL_USERNAME_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.USERS_TABLE;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.USERS_USER_ID_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.USERS_USER_NAME_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.USERS_USER_PASSWORD_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.USERS_USER_TYPE_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.USERS_VERSION_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.USER_AUTHENTICATION_AUTHENTICATION_KEY_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.USER_AUTHENTICATION_AUTHENTICATION_TYPE_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.USER_AUTHENTICATION_CREATE_TIME_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.USER_AUTHENTICATION_PRIMARY_KEY;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.USER_AUTHENTICATION_TABLE;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.USER_AUTHENTICATION_UPDATE_TIME_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.USER_AUTHENTICATION_USER_AUTHENTICATION_ID_COLUMN;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.USER_AUTHENTICATION_USER_AUTHENTICATION_USERS_FOREIGN_KEY;
+ import static org.apache.ambari.server.upgrade.UpgradeCatalog300.USER_AUTHENTICATION_USER_ID_COLUMN;
import static org.easymock.EasyMock.anyObject;
import static org.easymock.EasyMock.anyString;
import static org.easymock.EasyMock.capture;
--
To stop receiving notification emails like this one, please contact
mradhakrishnan@apache.org.