Repository: ambari Updated Branches: refs/heads/branch-2.5 064aef720 -> d9e5bfc59
AMBARI-20856 Changing Solr port in Ambari Infra fails (mgergely) Change-Id: If0e5f0a7ff0eea89e85dcb061c77484acf7898b8 Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/d9e5bfc5 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/d9e5bfc5 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/d9e5bfc5 Branch: refs/heads/branch-2.5 Commit: d9e5bfc59b0588af99dcdf16c4b5780b50b50ecc Parents: 064aef7 Author: Miklos Gergely <mgerg...@hortonworks.com> Authored: Thu Apr 27 17:01:20 2017 +0200 Committer: Miklos Gergely <mgerg...@hortonworks.com> Committed: Thu Apr 27 17:01:33 2017 +0200 ---------------------------------------------------------------------- .../AMBARI_INFRA/0.1.0/package/scripts/infra_solr.py | 6 +++--- .../AMBARI_INFRA/0.1.0/package/scripts/params.py | 1 + .../AMBARI_INFRA/0.1.0/package/scripts/status_params.py | 6 ++++++ .../src/test/python/stacks/2.4/AMBARI_INFRA/test_infra_solr.py | 3 +++ 4 files changed, 13 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/d9e5bfc5/ambari-server/src/main/resources/common-services/AMBARI_INFRA/0.1.0/package/scripts/infra_solr.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/AMBARI_INFRA/0.1.0/package/scripts/infra_solr.py b/ambari-server/src/main/resources/common-services/AMBARI_INFRA/0.1.0/package/scripts/infra_solr.py index 4a8b9c0..247d82a 100644 --- a/ambari-server/src/main/resources/common-services/AMBARI_INFRA/0.1.0/package/scripts/infra_solr.py +++ b/ambari-server/src/main/resources/common-services/AMBARI_INFRA/0.1.0/package/scripts/infra_solr.py @@ -59,15 +59,15 @@ class InfraSolr(Script): Execute(format('{solr_bindir}/solr stop -all >> {infra_solr_log}'), environment={'SOLR_INCLUDE': format('{infra_solr_conf}/infra-solr-env.sh')}, user=params.infra_solr_user, - only_if=format("test -f {infra_solr_pidfile}") + only_if=format("test -f {prev_infra_solr_pidfile}") ) - File(params.infra_solr_pidfile, + File(params.prev_infra_solr_pidfile, action="delete" ) except: Logger.warning("Could not stop solr:" + str(sys.exc_info()[1]) + "\n Trying to kill it") - self.kill_process(params.infra_solr_pidfile, params.infra_solr_user, params.infra_solr_log_dir) + self.kill_process(params.prev_infra_solr_pidfile, params.infra_solr_user, params.infra_solr_log_dir) def status(self, env): import status_params http://git-wip-us.apache.org/repos/asf/ambari/blob/d9e5bfc5/ambari-server/src/main/resources/common-services/AMBARI_INFRA/0.1.0/package/scripts/params.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/AMBARI_INFRA/0.1.0/package/scripts/params.py b/ambari-server/src/main/resources/common-services/AMBARI_INFRA/0.1.0/package/scripts/params.py index acf420e..6eb3ba8 100644 --- a/ambari-server/src/main/resources/common-services/AMBARI_INFRA/0.1.0/package/scripts/params.py +++ b/ambari-server/src/main/resources/common-services/AMBARI_INFRA/0.1.0/package/scripts/params.py @@ -54,6 +54,7 @@ infra_solr_conf = "/etc/ambari-infra-solr/conf" infra_solr_port = status_params.infra_solr_port infra_solr_piddir = status_params.infra_solr_piddir infra_solr_pidfile = status_params.infra_solr_pidfile +prev_infra_solr_pidfile = status_params.prev_infra_solr_pidfile user_group = config['configurations']['cluster-env']['user_group'] fetch_nonlocal_groups = config['configurations']['cluster-env']["fetch_nonlocal_groups"] http://git-wip-us.apache.org/repos/asf/ambari/blob/d9e5bfc5/ambari-server/src/main/resources/common-services/AMBARI_INFRA/0.1.0/package/scripts/status_params.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/AMBARI_INFRA/0.1.0/package/scripts/status_params.py b/ambari-server/src/main/resources/common-services/AMBARI_INFRA/0.1.0/package/scripts/status_params.py index f51a321..f91a114 100644 --- a/ambari-server/src/main/resources/common-services/AMBARI_INFRA/0.1.0/package/scripts/status_params.py +++ b/ambari-server/src/main/resources/common-services/AMBARI_INFRA/0.1.0/package/scripts/status_params.py @@ -23,6 +23,7 @@ from resource_management.libraries.functions import get_kinit_path from resource_management.libraries.functions.default import default from resource_management.libraries.functions.format import format from resource_management.libraries.script.script import Script +from os import listdir, path config = Script.get_config() @@ -30,5 +31,10 @@ infra_solr_port = default('configurations/infra-solr-env/infra_solr_port', '8886 infra_solr_piddir = default('configurations/infra-solr-env/infra_solr_pid_dir', '/var/run/ambari-infra-solr') infra_solr_pidfile = format("{infra_solr_piddir}/solr-{infra_solr_port}.pid") +prev_infra_solr_pidfile = '' +if path.isdir(infra_solr_piddir): + for file in listdir(infra_solr_piddir): + prev_infra_solr_pidfile = infra_solr_piddir + '/' + file + security_enabled = config['configurations']['cluster-env']['security_enabled'] kinit_path_local = get_kinit_path(default('/configurations/kerberos-env/executable_search_paths', None)) http://git-wip-us.apache.org/repos/asf/ambari/blob/d9e5bfc5/ambari-server/src/test/python/stacks/2.4/AMBARI_INFRA/test_infra_solr.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.4/AMBARI_INFRA/test_infra_solr.py b/ambari-server/src/test/python/stacks/2.4/AMBARI_INFRA/test_infra_solr.py index 2de3fba..87304cd 100644 --- a/ambari-server/src/test/python/stacks/2.4/AMBARI_INFRA/test_infra_solr.py +++ b/ambari-server/src/test/python/stacks/2.4/AMBARI_INFRA/test_infra_solr.py @@ -21,7 +21,10 @@ limitations under the License. from stacks.utils.RMFTestCase import RMFTestCase, Template, InlineTemplate, StaticFile from resource_management.core.exceptions import ComponentIsNotRunning from resource_management.libraries.script.config_dictionary import UnknownConfiguration +from mock.mock import MagicMock, call, patch +@patch("os.listdir", new = MagicMock(return_value=['solr-8886.pid'])) +@patch("os.path.isdir", new = MagicMock(return_value=True)) class TestInfraSolr(RMFTestCase): COMMON_SERVICES_PACKAGE_DIR = "AMBARI_INFRA/0.1.0/package" STACK_VERSION = "2.4"