You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sw...@apache.org on 2016/10/21 19:03:21 UTC
[2/3] ambari git commit: Revert "Integrate Druid with Ambari (Nishant
Bangarwa, Slim Bouguerra via Swapan Shridhar)."
http://git-wip-us.apache.org/repos/asf/ambari/blob/f37b518b/ambari-server/src/main/resources/common-services/DRUID/0.9.2/package/scripts/status_params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/DRUID/0.9.2/package/scripts/status_params.py b/ambari-server/src/main/resources/common-services/DRUID/0.9.2/package/scripts/status_params.py
deleted file mode 100644
index ee1d61c..0000000
--- a/ambari-server/src/main/resources/common-services/DRUID/0.9.2/package/scripts/status_params.py
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/env python
-"""
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-"""
-from resource_management.libraries.script.script import Script
-
-config = Script.get_config()
-
-druid_pid_dir = config['configurations']['druid-env']['druid_pid_dir']
http://git-wip-us.apache.org/repos/asf/ambari/blob/f37b518b/ambari-server/src/main/resources/common-services/DRUID/0.9.2/quicklinks/quicklinks.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/DRUID/0.9.2/quicklinks/quicklinks.json b/ambari-server/src/main/resources/common-services/DRUID/0.9.2/quicklinks/quicklinks.json
deleted file mode 100644
index c68b9b9..0000000
--- a/ambari-server/src/main/resources/common-services/DRUID/0.9.2/quicklinks/quicklinks.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "default",
- "description": "default quick links configuration",
- "configuration": {
- "protocol": {
- "type": "HTTP_ONLY"
- },
- "links": [
- {
- "name": "coordinator_console",
- "label": "Druid Coordinator Console",
- "component_name": "DRUID_COORDINATOR",
- "requires_user_name": "false",
- "url": "%@://%@:%@",
- "port": {
- "http_property": "druid.port",
- "http_default_port": "8081",
- "regex": "^(\\d+)$",
- "site": "druid-coordinator"
- }
- },
- {
- "name": "overlord_console",
- "label": "Druid Overlord Console",
- "component_name": "DRUID_OVERLORD",
- "requires_user_name": "false",
- "url": "%@://%@:%@",
- "port": {
- "http_property": "druid.port",
- "http_default_port": "8090",
- "regex": "^(\\d+)$",
- "site": "druid-overlord"
- }
- }
- ]
- }
-}
http://git-wip-us.apache.org/repos/asf/ambari/blob/f37b518b/ambari-server/src/main/resources/common-services/DRUID/0.9.2/themes/theme.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/DRUID/0.9.2/themes/theme.json b/ambari-server/src/main/resources/common-services/DRUID/0.9.2/themes/theme.json
deleted file mode 100644
index f494594..0000000
--- a/ambari-server/src/main/resources/common-services/DRUID/0.9.2/themes/theme.json
+++ /dev/null
@@ -1,120 +0,0 @@
-{
- "name": "default",
- "description": "Default theme for Druid service",
- "configuration": {
- "layouts": [
- {
- "name": "default",
- "tabs": [
- {
- "name": "metadata_storage",
- "display-name": "META DATA STORAGE CONFIG",
- "layout": {
- "tab-columns": "1",
- "tab-rows": "1",
- "sections": [
- {
- "name": "section-metadata-storage",
- "display-name": "",
- "row-index": "0",
- "column-index": "0",
- "row-span": "2",
- "column-span": "1",
- "section-columns": "1",
- "section-rows": "1",
- "subsections": [
- {
- "name": "subsection-metadata-storage-row1-col1",
- "display-name": "META DATA STORAGE",
- "row-index": "0",
- "column-index": "0",
- "row-span": "1",
- "column-span": "1"
- }
- ]
- }
- ]
- }
- }
- ]
- }
- ],
- "placement": {
- "configuration-layout": "default",
- "configs": [
- {
- "config": "druid-common/database_name",
- "subsection-name": "subsection-metadata-storage-row1-col1"
- },
- {
- "config": "druid-common/druid.metadata.storage.type",
- "subsection-name": "subsection-metadata-storage-row1-col1"
- },
- {
- "config": "druid-common/druid.metadata.storage.connector.user",
- "subsection-name": "subsection-metadata-storage-row1-col1"
- },
- {
- "config": "druid-common/druid.metadata.storage.connector.password",
- "subsection-name": "subsection-metadata-storage-row1-col1"
- },
- {
- "config": "druid-common/metastore_hostname",
- "subsection-name": "subsection-metadata-storage-row1-col1"
- },
- {
- "config": "druid-common/druid.metadata.storage.connector.port",
- "subsection-name": "subsection-metadata-storage-row1-col1"
- },
- {
- "config": "druid-common/druid.metadata.storage.connector.connectURI",
- "subsection-name": "subsection-metadata-storage-row1-col1"
- }
- ]
- },
- "widgets": [
- {
- "config": "druid-common/database_name",
- "widget": {
- "type": "text-field"
- }
- },
- {
- "config": "druid-common/druid.metadata.storage.type",
- "widget": {
- "type": "combo"
- }
- },
- {
- "config": "druid-common/druid.metadata.storage.connector.user",
- "widget": {
- "type": "text-field"
- }
- },
- {
- "config": "druid-common/druid.metadata.storage.connector.password",
- "widget": {
- "type": "password"
- }
- },
- {
- "config": "druid-common/metastore_hostname",
- "widget": {
- "type": "text-field"
- }
- },
- {
- "config": "druid-common/druid.metadata.storage.connector.port",
- "widget": {
- "type": "text-field"
- }
- },
- {
- "config": "druid-common/druid.metadata.storage.connector.connectURI",
- "widget": {
- "type": "text-field"
- }
- }
- ]
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/f37b518b/ambari-server/src/main/resources/stacks/HDP/2.6/role_command_order.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.6/role_command_order.json b/ambari-server/src/main/resources/stacks/HDP/2.6/role_command_order.json
deleted file mode 100644
index 66b6ed2..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.6/role_command_order.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "_comment" : "Record format:",
- "_comment" : "blockedRole-blockedCommand: [blockerRole1-blockerCommand1, blockerRole2-blockerCommand2, ...]",
- "general_deps" : {
- "_comment" : "dependencies for all cases",
- "DRUID_HISTORICAL-START" : ["ZOOKEEPER_SERVER-START", "NAMENODE-START", "DATANODE-START", "RESOURCEMANAGER-START", "NODEMANAGER-START"],
- "DRUID_OVERLORD-START" : ["ZOOKEEPER_SERVER-START", "NAMENODE-START", "DATANODE-START", "RESOURCEMANAGER-START", "NODEMANAGER-START"],
- "DRUID_MIDDLEMANAGER-START" : ["ZOOKEEPER_SERVER-START", "NAMENODE-START", "DATANODE-START", "RESOURCEMANAGER-START", "NODEMANAGER-START"],
- "DRUID_BROKER-START" : ["ZOOKEEPER_SERVER-START", "NAMENODE-START", "DATANODE-START", "RESOURCEMANAGER-START", "NODEMANAGER-START"],
- "DRUID_ROUTER-START" : ["ZOOKEEPER_SERVER-START", "NAMENODE-START", "DATANODE-START", "RESOURCEMANAGER-START", "NODEMANAGER-START"],
- "DRUID_COORDINATOR-START" : ["ZOOKEEPER_SERVER-START", "NAMENODE-START", "DATANODE-START", "RESOURCEMANAGER-START", "NODEMANAGER-START"],
- "DRUID_OVERLORD-RESTART" : ["DRUID_HISTORICAL-RESTART"],
- "DRUID_MIDDLEMANAGER-RESTART" : ["DRUID_OVERLORD-RESTART"],
- "DRUID_BROKER-RESTART" : ["DRUID_MIDDLEMANAGER-RESTART"],
- "DRUID_ROUTER-RESTART" : ["DRUID_BROKER-RESTART"],
- "DRUID_COORDINATOR-RESTART" : ["DRUID_ROUTER-RESTART"],
- "DRUID_SERVICE_CHECK-SERVICE_CHECK" : ["DRUID_HISTORICAL-START", "DRUID_COORDINATOR-START", "DRUID_OVERLORD-START", "DRUID_MIDDLEMANAGER-START", "DRUID_BROKER-START", "DRUID_ROUTER-START"]
- }
-}
http://git-wip-us.apache.org/repos/asf/ambari/blob/f37b518b/ambari-server/src/main/resources/stacks/HDP/2.6/services/DRUID/kerberos.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.6/services/DRUID/kerberos.json b/ambari-server/src/main/resources/stacks/HDP/2.6/services/DRUID/kerberos.json
deleted file mode 100644
index 1661285..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.6/services/DRUID/kerberos.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "services": [
- {
- "name": "DRUID",
- "identities": [
- {
- "name": "/spnego"
- },
- {
- "name": "druid",
- "principal": {
- "value": "${druid-env/druid_user}@${realm}",
- "type": "user",
- "configuration": "druid-common/druid.hadoop.security.kerberos.principal",
- "local_username": "${druid-env/druid_user}"
- },
- "keytab": {
- "file": "${keytab_dir}/druid.headless.keytab",
- "owner": {
- "name": "${druid-env/druid_user}",
- "access": "r"
- },
- "group": {
- "name": "${cluster-env/user_group}",
- "access": "r"
- },
- "configuration": "druid-common/druid.hadoop.security.kerberos.keytab"
- }
- },
- {
- "name": "/smokeuser"
- }
- ],
- "components": [
- {
- "name": "DRUID_HISTORICAL",
- "identities": [
- {
- "name": "/druid"
- }
- ]
- },
- {
- "name": "DRUID_BROKER",
- "identities": [
- {
- "name": "/druid"
- }
- ]
- },
- {
- "name": "DRUID_OVERLORD",
- "identities": [
- {
- "name": "/druid"
- }
- ]
- },
- {
- "name": "DRUID_COORDINATOR",
- "identities": [
- {
- "name": "/druid"
- }
- ]
- },
- {
- "name": "DRUID_MIDDLEMANAGER",
- "identities": [
- {
- "name": "/druid"
- }
- ]
- }
- ]
- }
- ]
-}
http://git-wip-us.apache.org/repos/asf/ambari/blob/f37b518b/ambari-server/src/main/resources/stacks/HDP/2.6/services/DRUID/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.6/services/DRUID/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.6/services/DRUID/metainfo.xml
deleted file mode 100644
index 49d09b1..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.6/services/DRUID/metainfo.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<metainfo>
- <schemaVersion>2.0</schemaVersion>
- <services>
- <service>
- <name>DRUID</name>
- <version>0.9.2.2.6</version>
- <extends>common-services/DRUID/0.9.2</extends>
- </service>
- </services>
-</metainfo>
http://git-wip-us.apache.org/repos/asf/ambari/blob/f37b518b/ambari-server/src/main/resources/stacks/HDP/2.6/services/stack_advisor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.6/services/stack_advisor.py b/ambari-server/src/main/resources/stacks/HDP/2.6/services/stack_advisor.py
index 49dd086..1f722dc 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.6/services/stack_advisor.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.6/services/stack_advisor.py
@@ -16,191 +16,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""
-from resource_management.core.logger import Logger
-import json
-from resource_management.libraries.functions import format
-
class HDP26StackAdvisor(HDP25StackAdvisor):
- def __init__(self):
- super(HDP26StackAdvisor, self).__init__()
- Logger.initialize_logger()
-
- def getServiceConfigurationRecommenderDict(self):
- parentRecommendConfDict = super(HDP26StackAdvisor, self).getServiceConfigurationRecommenderDict()
- childRecommendConfDict = {
- "DRUID": self.recommendDruidConfigurations
- }
- parentRecommendConfDict.update(childRecommendConfDict)
- return parentRecommendConfDict
-
- def recommendDruidConfigurations(self, configurations, clusterData, services, hosts):
-
- componentsListList = [service["components"] for service in services["services"]]
- componentsList = [item["StackServiceComponents"] for sublist in componentsListList for item in sublist]
- servicesList = [service["StackServices"]["service_name"] for service in services["services"]]
- putCommonProperty = self.putProperty(configurations, "druid-common", services)
-
- putCommonProperty('druid.zk.service.host', self.getZKHostPortString(services))
- self.recommendDruidMaxMemoryLimitConfigurations(configurations, clusterData, services, hosts)
-
- # recommending the metadata storage uri
- database_name = services['configurations']["druid-common"]["properties"]["database_name"]
- metastore_hostname = services['configurations']["druid-common"]["properties"]["metastore_hostname"]
- database_type = services['configurations']["druid-common"]["properties"]["druid.metadata.storage.type"]
- metadata_storage_port = "1527"
- mysql_extension_name = "io.druid.extensions:mysql-metadata-storage"
- mysql_module_name = "mysql-metadata-storage"
- postgres_module_name = "postgresql-metadata-storage"
- extensions_load_list = services['configurations']['druid-common']['properties']['druid.extensions.loadList']
- extensions_pull_list = services['configurations']['druid-common']['properties']['druid.extensions.pullList']
- putDruidCommonProperty = self.putProperty(configurations, "druid-common", services)
-
- extensions_pull_list = self.removeFromList(extensions_pull_list, mysql_extension_name)
- extensions_load_list = self.removeFromList(extensions_load_list, mysql_module_name)
- extensions_load_list = self.removeFromList(extensions_load_list, postgres_module_name)
-
- if database_type == 'mysql':
- metadata_storage_port = "3306"
- extensions_pull_list = self.addToList(extensions_pull_list, mysql_extension_name)
- extensions_load_list = self.addToList(extensions_load_list, mysql_module_name)
-
- if database_type == 'postgres':
- extensions_load_list = self.addToList(extensions_load_list, postgres_module_name)
- metadata_storage_port = "5432"
-
- putDruidCommonProperty('druid.metadata.storage.connector.port', metadata_storage_port)
- putDruidCommonProperty('druid.metadata.storage.connector.connectURI',
- self.getMetadataConnectionString(database_type).format(metastore_hostname, database_name,
- metadata_storage_port))
- # HDFS is installed
- if "HDFS" in servicesList and "hdfs-site" in services["configurations"]:
- # recommend HDFS as default deep storage
- extensions_load_list = self.addToList(extensions_load_list, "druid-hdfs-storage")
- putCommonProperty("druid.storage.type", "hdfs")
- putCommonProperty("druid.storage.storageDirectory", "/user/druid/data")
- # configure indexer logs configs
- putCommonProperty("druid.indexer.logs.type", "hdfs")
- putCommonProperty("druid.indexer.logs.directory", "/user/druid/logs")
-
- if "KAFKA" in servicesList:
- extensions_load_list = self.addToList(extensions_load_list, "druid-kafka-indexing-service")
-
- putCommonProperty('druid.extensions.loadList', extensions_load_list)
- putCommonProperty('druid.extensions.pullList', extensions_pull_list)
-
- # JVM Configs go to env properties
- putEnvProperty = self.putProperty(configurations, "druid-env", services)
-
- # processing thread pool Config
- for component in ['DRUID_HISTORICAL', 'DRUID_BROKER']:
- component_hosts = self.getHostsWithComponent("DRUID", component, services, hosts)
- nodeType = self.DRUID_COMPONENT_NODE_TYPE_MAP[component]
- putComponentProperty = self.putProperty(configurations, format("druid-{nodeType}"), services)
- if (component_hosts is not None and len(component_hosts) > 0):
- totalAvailableCpu = self.getMinCpu(component_hosts)
- processingThreads = 1
- if totalAvailableCpu > 1:
- processingThreads = totalAvailableCpu - 1
- putComponentProperty('druid.processing.numThreads', processingThreads)
- putComponentProperty('druid.server.http.numThreads', max(10, (totalAvailableCpu * 17) / 16 + 2) + 30)
-
- def getMetadataConnectionString(self, database_type):
- driverDict = {
- 'mysql': 'jdbc:mysql://{0}:{2}/{1}?createDatabaseIfNotExist=true',
- 'derby': 'jdbc:derby://{0}:{2}/{1};create=true',
- 'postgres': 'jdbc:postgresql://{0}:{2}/{1}'
- }
- return driverDict.get(database_type.lower())
-
- def addToList(self, json_list, word):
- desr_list = json.loads(json_list)
- if word not in desr_list:
- desr_list.append(word)
- return json.dumps(desr_list)
-
- def removeFromList(self, json_list, word):
- desr_list = json.loads(json_list)
- if word in desr_list:
- desr_list.remove(word)
- return json.dumps(desr_list)
-
- def recommendDruidMaxMemoryLimitConfigurations(self, configurations, clusterData, services, hosts):
- putEnvPropertyAttribute = self.putPropertyAttribute(configurations, "druid-env")
- for component in ["DRUID_HISTORICAL", "DRUID_MIDDLEMANAGER", "DRUID_BROKER", "DRUID_OVERLORD",
- "DRUID_COORDINATOR"]:
- component_hosts = self.getHostsWithComponent("DRUID", component, services, hosts)
- if component_hosts is not None and len(component_hosts) > 0:
- totalAvailableMem = self.getMinMemory(component_hosts) / 1024 # In MB
- nodeType = self.DRUID_COMPONENT_NODE_TYPE_MAP[component]
- putEnvPropertyAttribute(format('druid.{nodeType}.jvm.heap.memory'), 'maximum',
- max(totalAvailableMem, 1024))
-
- DRUID_COMPONENT_NODE_TYPE_MAP = {
- 'DRUID_BROKER': 'broker',
- 'DRUID_COORDINATOR': 'coordinator',
- 'DRUID_HISTORICAL': 'historical',
- 'DRUID_MIDDLEMANAGER': 'middlemanager',
- 'DRUID_OVERLORD': 'overlord',
- 'DRUID_ROUTER': 'router'
- }
-
- def getMinMemory(self, component_hosts):
- min_ram_kb = 1073741824 # 1 TB
- for host in component_hosts:
- ram_kb = host['Hosts']['total_mem']
- min_ram_kb = min(min_ram_kb, ram_kb)
- return min_ram_kb
-
- def getMinCpu(self, component_hosts):
- min_cpu = 256
- for host in component_hosts:
- cpu_count = host['Hosts']['cpu_count']
- min_cpu = min(min_cpu, cpu_count)
- return min_cpu
-
- def getServiceConfigurationValidators(self):
- parentValidators = super(HDP26StackAdvisor, self).getServiceConfigurationValidators()
- childValidators = {
- "DRUID": {"druid-env": self.validateDruidEnvConfigurations,
- "druid-historical": self.validateDruidHistoricalConfigurations,
- "druid-broker": self.validateDruidBrokerConfigurations}
- }
- self.mergeValidators(parentValidators, childValidators)
- return parentValidators
-
- def validateDruidEnvConfigurations(self, properties, recommendedDefaults, configurations, services, hosts):
- validationItems = []
- # Minimum Direct memory Validation
- envProperties = services['configurations']['druid-env']['properties']
- for nodeType in ['broker', 'historical']:
- properties = services['configurations'][format('druid-{nodeType}')]['properties']
- intermediateBufferSize = int(properties['druid.processing.buffer.sizeBytes']) / (1024 * 1024) # In MBs
- processingThreads = int(properties['druid.processing.numThreads'])
- directMemory = int(envProperties[format('druid.{nodeType}.jvm.direct.memory')])
- if directMemory < (processingThreads + 1) * intermediateBufferSize:
- validationItems.extend(
- {"config-name": format("druid.{nodeType}.jvm.direct.memory"), "item": self.getErrorItem(
- format(
- "Not enough direct memory available for {nodeType} Node."
- "Please adjust druid.{nodeType}.jvm.direct.memory, druid.processing.buffer.sizeBytes, druid.processing.numThreads"
- )
- )
- })
- return self.toConfigurationValidationProblems(validationItems, "druid-env")
-
- def validateDruidHistoricalConfigurations(self, properties, recommendedDefaults, configurations, services, hosts):
- validationItems = [
- {"config-name": "druid.processing.numThreads",
- "item": self.validatorEqualsToRecommendedItem(properties, recommendedDefaults,
- "druid.processing.numThreads")}
- ]
- return self.toConfigurationValidationProblems(validationItems, "druid-historical")
-
- def validateDruidBrokerConfigurations(self, properties, recommendedDefaults, configurations, services, hosts):
- validationItems = [
- {"config-name": "druid.processing.numThreads",
- "item": self.validatorEqualsToRecommendedItem(properties, recommendedDefaults,
- "druid.processing.numThreads")}
- ]
- return self.toConfigurationValidationProblems(validationItems, "druid-broker")
+ pass
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/f37b518b/ambari-server/src/test/python/stacks/2.6/DRUID/test_druid.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.6/DRUID/test_druid.py b/ambari-server/src/test/python/stacks/2.6/DRUID/test_druid.py
deleted file mode 100644
index 2988169..0000000
--- a/ambari-server/src/test/python/stacks/2.6/DRUID/test_druid.py
+++ /dev/null
@@ -1,647 +0,0 @@
-#!/usr/bin/env python
-
-'''
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-'''
-
-import os
-
-from stacks.utils.RMFTestCase import *
-
-from mock.mock import MagicMock, patch
-from resource_management.libraries import functions
-from resource_management.libraries.functions import format
-from resource_management.core.logger import Logger
-
-@patch("resource_management.libraries.Script.get_tmp_dir", new=MagicMock(return_value=('/var/lib/ambari-agent/tmp')))
-@patch.object(functions, "get_stack_version", new=MagicMock(return_value="2.0.0.0-1234"))
-class TestDruid(RMFTestCase):
- COMMON_SERVICES_PACKAGE_DIR = "DRUID/0.9.2/package"
- STACK_VERSION = "2.6"
- DEFAULT_IMMUTABLE_PATHS = ['/apps/hive/warehouse', '/apps/falcon', '/mr-history/done', '/app-logs', '/tmp']
-
- def setUp(self):
- Logger.logger = MagicMock()
- self.testDirectory = os.path.dirname(os.path.abspath(__file__))
- self.num_times_to_iterate = 3
- self.wait_time = 1
-
- def test_configure_overlord(self):
- self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/overlord.py",
- classname="DruidOverlord",
- command="configure",
- config_file=self.get_src_folder() + "/test/python/stacks/2.6/configs/default.json",
- config_overrides = { 'role' : 'DRUID_OVERLORD' },
- stack_version=self.STACK_VERSION,
- target=RMFTestCase.TARGET_COMMON_SERVICES
- )
- self.assert_configure_default('druid-overlord')
- self.assertNoMoreResources()
-
- def test_start_overlord(self):
- self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/overlord.py",
- classname="DruidOverlord",
- command="start",
- config_file=self.get_src_folder() + "/test/python/stacks/2.6/configs/default.json",
- stack_version=self.STACK_VERSION,
- config_overrides = { 'role' : 'DRUID_OVERLORD' },
- target=RMFTestCase.TARGET_COMMON_SERVICES
- )
- self.assert_configure_default('druid-overlord')
- self.assertResourceCalled('Execute', format('source /usr/hdp/current/druid-overlord/conf/druid-env.sh ; /usr/hdp/current/druid-overlord/bin/node.sh overlord start'),
- user='druid'
- )
- self.assertNoMoreResources()
-
- def test_stop_overlord(self):
- self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/overlord.py",
- classname="DruidOverlord",
- command="stop",
- config_file=self.get_src_folder() + "/test/python/stacks/2.6/configs/default.json",
- stack_version=self.STACK_VERSION,
- config_overrides = { 'role' : 'DRUID_OVERLORD' },
- target=RMFTestCase.TARGET_COMMON_SERVICES
- )
- self.assertResourceCalled('Execute', format('source /usr/hdp/current/druid-overlord/conf/druid-env.sh ; /usr/hdp/current/druid-overlord/bin/node.sh overlord stop'),
- user='druid'
- )
- self.assertNoMoreResources()
-
- def test_configure_coordinator(self):
- self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/coordinator.py",
- classname="DruidCoordinator",
- command="configure",
- config_file=self.get_src_folder() + "/test/python/stacks/2.6/configs/default.json",
- config_overrides = { 'role' : 'DRUID_COORDINATOR' },
- stack_version=self.STACK_VERSION,
- target=RMFTestCase.TARGET_COMMON_SERVICES
- )
- self.assert_configure_default('druid-coordinator')
- self.assertNoMoreResources()
-
- def test_start_coordinator(self):
- self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/coordinator.py",
- classname="DruidCoordinator",
- command="start",
- config_file=self.get_src_folder() + "/test/python/stacks/2.6/configs/default.json",
- stack_version=self.STACK_VERSION,
- config_overrides = { 'role' : 'DRUID_COORDINATOR' },
- target=RMFTestCase.TARGET_COMMON_SERVICES
- )
- self.assert_configure_default('druid-coordinator')
- self.assertResourceCalled('Execute', format('source /usr/hdp/current/druid-coordinator/conf/druid-env.sh ; /usr/hdp/current/druid-coordinator/bin/node.sh coordinator start'),
- user='druid'
- )
- self.assertNoMoreResources()
-
- def test_stop_coordinator(self):
- self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/coordinator.py",
- classname="DruidCoordinator",
- command="stop",
- config_file=self.get_src_folder() + "/test/python/stacks/2.6/configs/default.json",
- stack_version=self.STACK_VERSION,
- config_overrides = { 'role' : 'DRUID_COORDINATOR' },
- target=RMFTestCase.TARGET_COMMON_SERVICES
- )
- self.assertResourceCalled('Execute', format('source /usr/hdp/current/druid-coordinator/conf/druid-env.sh ; /usr/hdp/current/druid-coordinator/bin/node.sh coordinator stop'),
- user='druid'
- )
- self.assertNoMoreResources()
-
- def test_configure_broker(self):
- self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/broker.py",
- classname="DruidBroker",
- command="configure",
- config_file=self.get_src_folder() + "/test/python/stacks/2.6/configs/default.json",
- config_overrides = { 'role' : 'DRUID_BROKER' },
- stack_version=self.STACK_VERSION,
- target=RMFTestCase.TARGET_COMMON_SERVICES
- )
- self.assert_configure_default('druid-broker')
- self.assertNoMoreResources()
-
- def test_start_broker(self):
- self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/broker.py",
- classname="DruidBroker",
- command="start",
- config_file=self.get_src_folder() + "/test/python/stacks/2.6/configs/default.json",
- stack_version=self.STACK_VERSION,
- config_overrides = { 'role' : 'DRUID_BROKER' },
- target=RMFTestCase.TARGET_COMMON_SERVICES
- )
- self.assert_configure_default('druid-broker')
- self.assertResourceCalled('Execute', format('source /usr/hdp/current/druid-broker/conf/druid-env.sh ; /usr/hdp/current/druid-broker/bin/node.sh broker start'),
- user='druid'
- )
- self.assertNoMoreResources()
-
- def test_stop_broker(self):
- self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/broker.py",
- classname="DruidBroker",
- command="stop",
- config_file=self.get_src_folder() + "/test/python/stacks/2.6/configs/default.json",
- stack_version=self.STACK_VERSION,
- config_overrides = { 'role' : 'DRUID_BROKER' },
- target=RMFTestCase.TARGET_COMMON_SERVICES
- )
- self.assertResourceCalled('Execute', format('source /usr/hdp/current/druid-broker/conf/druid-env.sh ; /usr/hdp/current/druid-broker/bin/node.sh broker stop'),
- user='druid'
- )
- self.assertNoMoreResources()
-
- def test_configure_router(self):
- self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/router.py",
- classname="DruidRouter",
- command="configure",
- config_file=self.get_src_folder() + "/test/python/stacks/2.6/configs/default.json",
- config_overrides = { 'role' : 'DRUID_ROUTER' },
- stack_version=self.STACK_VERSION,
- target=RMFTestCase.TARGET_COMMON_SERVICES
- )
- self.assert_configure_default('druid-router')
- self.assertNoMoreResources()
-
- def test_start_router(self):
- self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/router.py",
- classname="DruidRouter",
- command="start",
- config_file=self.get_src_folder() + "/test/python/stacks/2.6/configs/default.json",
- stack_version=self.STACK_VERSION,
- config_overrides = { 'role' : 'DRUID_ROUTER' },
- target=RMFTestCase.TARGET_COMMON_SERVICES
- )
- self.assert_configure_default('druid-router')
- self.assertResourceCalled('Execute', format('source /usr/hdp/current/druid-router/conf/druid-env.sh ; /usr/hdp/current/druid-router/bin/node.sh router start'),
- user='druid'
- )
- self.assertNoMoreResources()
-
- def test_stop_router(self):
- self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/router.py",
- classname="DruidRouter",
- command="stop",
- config_file=self.get_src_folder() + "/test/python/stacks/2.6/configs/default.json",
- stack_version=self.STACK_VERSION,
- config_overrides = { 'role' : 'DRUID_ROUTER' },
- target=RMFTestCase.TARGET_COMMON_SERVICES
- )
- self.assertResourceCalled('Execute', format('source /usr/hdp/current/druid-router/conf/druid-env.sh ; /usr/hdp/current/druid-router/bin/node.sh router stop'),
- user='druid'
- )
- self.assertNoMoreResources()
-
- def test_configure_historical(self):
- self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/historical.py",
- classname="DruidHistorical",
- command="configure",
- config_file=self.get_src_folder() + "/test/python/stacks/2.6/configs/default.json",
- config_overrides = { 'role' : 'DRUID_HISTORICAL' },
- stack_version=self.STACK_VERSION,
- target=RMFTestCase.TARGET_COMMON_SERVICES
- )
- self.assert_configure_default('druid-historical')
- self.assertNoMoreResources()
-
- def test_start_historical(self):
- self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/historical.py",
- classname="DruidHistorical",
- command="start",
- config_file=self.get_src_folder() + "/test/python/stacks/2.6/configs/default.json",
- stack_version=self.STACK_VERSION,
- config_overrides = { 'role' : 'DRUID_HISTORICAL' },
- target=RMFTestCase.TARGET_COMMON_SERVICES
- )
- self.assert_configure_default('druid-historical')
- self.assertResourceCalled('Execute', format('source /usr/hdp/current/druid-historical/conf/druid-env.sh ; /usr/hdp/current/druid-historical/bin/node.sh historical start'),
- user='druid'
- )
- self.assertNoMoreResources()
-
- def test_stop_historical(self):
- self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/historical.py",
- classname="DruidHistorical",
- command="stop",
- config_file=self.get_src_folder() + "/test/python/stacks/2.6/configs/default.json",
- stack_version=self.STACK_VERSION,
- config_overrides = { 'role' : 'DRUID_HISTORICAL' },
- target=RMFTestCase.TARGET_COMMON_SERVICES
- )
- self.assertResourceCalled('Execute', format('source /usr/hdp/current/druid-historical/conf/druid-env.sh ; /usr/hdp/current/druid-historical/bin/node.sh historical stop'),
- user='druid'
- )
- self.assertNoMoreResources()
-
- def test_configure_middleManager(self):
- self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/middlemanager.py",
- classname="DruidMiddleManager",
- command="configure",
- config_file=self.get_src_folder() + "/test/python/stacks/2.6/configs/default.json",
- config_overrides = { 'role' : 'DRUID_MIDDLEMANAGER' },
- stack_version=self.STACK_VERSION,
- target=RMFTestCase.TARGET_COMMON_SERVICES
- )
- self.assert_configure_default('druid-middlemanager')
- self.assertNoMoreResources()
-
- def test_start_middleManager(self):
- self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/middlemanager.py",
- classname="DruidMiddleManager",
- command="start",
- config_file=self.get_src_folder() + "/test/python/stacks/2.6/configs/default.json",
- stack_version=self.STACK_VERSION,
- config_overrides = { 'role' : 'DRUID_MIDDLEMANAGER' },
- target=RMFTestCase.TARGET_COMMON_SERVICES
- )
- self.assert_configure_default('druid-middlemanager')
- self.assertResourceCalled('Execute', format('source /usr/hdp/current/druid-middlemanager/conf/druid-env.sh ; /usr/hdp/current/druid-middlemanager/bin/node.sh middleManager start'),
- user='druid'
- )
- self.assertNoMoreResources()
-
- def test_stop_middleManager(self):
- self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/middlemanager.py",
- classname="DruidMiddleManager",
- command="stop",
- config_file=self.get_src_folder() + "/test/python/stacks/2.6/configs/default.json",
- stack_version=self.STACK_VERSION,
- config_overrides = { 'role' : 'DRUID_MIDDLEMANAGER' },
- target=RMFTestCase.TARGET_COMMON_SERVICES
- )
- self.assertResourceCalled('Execute', format('source /usr/hdp/current/druid-middlemanager/conf/druid-env.sh ; /usr/hdp/current/druid-middlemanager/bin/node.sh middleManager stop'),
- user='druid'
- )
- self.assertNoMoreResources()
-
- def assert_configure_default(self, role):
-
- self.assertResourceCalled('Directory', '/var/log/druid',
- mode=0755,
- cd_access='a',
- owner='druid',
- group='hadoop',
- create_parents=True,
- recursive_ownership=True
- )
-
- self.assertResourceCalled('Directory', '/var/run/druid',
- mode=0755,
- cd_access='a',
- owner='druid',
- group='hadoop',
- create_parents=True,
- recursive_ownership=True
- )
-
- self.assertResourceCalled('Directory', format('/usr/hdp/current/{role}/conf/_common'),
- mode=0755,
- cd_access='a',
- owner='druid',
- group='hadoop',
- create_parents=True,
- recursive_ownership=True
- )
-
- self.assertResourceCalled('Directory', format('/usr/hdp/current/{role}/conf/coordinator'),
- mode=0755,
- cd_access='a',
- owner='druid',
- group='hadoop',
- create_parents=True,
- recursive_ownership=True
- )
-
- self.assertResourceCalled('Directory', format('/usr/hdp/current/{role}/conf/broker'),
- mode=0755,
- cd_access='a',
- owner='druid',
- group='hadoop',
- create_parents=True,
- recursive_ownership=True
- )
-
- self.assertResourceCalled('Directory', format('/usr/hdp/current/{role}/conf/middleManager'),
- mode=0755,
- cd_access='a',
- owner='druid',
- group='hadoop',
- create_parents=True,
- recursive_ownership=True
- )
-
- self.assertResourceCalled('Directory', format('/usr/hdp/current/{role}/conf/historical'),
- mode=0755,
- cd_access='a',
- owner='druid',
- group='hadoop',
- create_parents=True,
- recursive_ownership=True
- )
-
- self.assertResourceCalled('Directory', format('/usr/hdp/current/{role}/conf/overlord'),
- mode=0755,
- cd_access='a',
- owner='druid',
- group='hadoop',
- create_parents=True,
- recursive_ownership=True
- )
-
- self.assertResourceCalled('Directory', format('/usr/hdp/current/{role}/conf/router'),
- mode=0755,
- cd_access='a',
- owner='druid',
- group='hadoop',
- create_parents=True,
- recursive_ownership=True
- )
-
- self.assertResourceCalled('Directory', '/apps/druid/segmentCache',
- mode=0755,
- cd_access='a',
- owner='druid',
- group='hadoop',
- create_parents=True,
- recursive_ownership=True
- )
-
- self.assertResourceCalled('File', format('/usr/hdp/current/{role}/conf/druid-env.sh'),
- owner = 'druid',
- content = InlineTemplate(self.getConfig()['configurations']['druid-env']['content'])
- )
- druid_common_config = mutable_config_dict(self.getConfig()['configurations']['druid-common'])
- druid_common_config['druid.host'] = 'c6401.ambari.apache.org'
- druid_common_config['druid.extensions.directory'] = format('/usr/hdp/current/{role}/extensions')
- druid_common_config['druid.extensions.hadoopDependenciesDir'] = format('/usr/hdp/current/{role}/hadoop-dependencies')
- druid_common_config['druid.selectors.indexing.serviceName'] = 'druid/overlord'
- druid_common_config['druid.selectors.coordinator.serviceName'] = 'druid/coordinator'
-
- self.assertResourceCalled('PropertiesFile', 'common.runtime.properties',
- dir=format("/usr/hdp/current/{role}/conf/_common"),
- properties=druid_common_config,
- owner='druid',
- group='hadoop'
- )
-
- self.assertResourceCalled('File', format('/usr/hdp/current/{role}/conf/_common/druid-log4j.xml'),
- mode=0644,
- owner = 'druid',
- group = 'hadoop',
- content = InlineTemplate(self.getConfig()['configurations']['druid-log4j']['content'])
- )
-
- self.assertResourceCalled('File', '/etc/logrotate.d/druid',
- mode=0644,
- owner = 'root',
- group = 'root',
- content = InlineTemplate(self.getConfig()['configurations']['druid-logrotate']['content'])
- )
-
- self.assertResourceCalled('XmlConfig', "core-site.xml",
- conf_dir=format('/usr/hdp/current/{role}/conf/_common'),
- configurations=self.getConfig()['configurations']['core-site'],
- configuration_attributes=self.getConfig()['configuration_attributes']['core-site'],
- owner='druid',
- group='hadoop'
- )
-
- self.assertResourceCalled('XmlConfig', "yarn-site.xml",
- conf_dir=format('/usr/hdp/current/{role}/conf/_common'),
- configurations=self.getConfig()['configurations']['yarn-site'],
- configuration_attributes=self.getConfig()['configuration_attributes']['yarn-site'],
- owner='druid',
- group='hadoop'
- )
-
- self.assertResourceCalled('XmlConfig', "hdfs-site.xml",
- conf_dir=format('/usr/hdp/current/{role}/conf/_common'),
- configurations=self.getConfig()['configurations']['hdfs-site'],
- configuration_attributes=self.getConfig()['configuration_attributes']['hdfs-site'],
- owner='druid',
- group='hadoop'
- )
-
- self.assertResourceCalled('PropertiesFile', "runtime.properties",
- dir=format('/usr/hdp/current/{role}/conf/coordinator'),
- properties=self.getConfig()['configurations']['druid-coordinator'],
- owner='druid',
- group='hadoop'
- )
-
- self.assertResourceCalled('File', format("/usr/hdp/current/{role}/conf/coordinator/jvm.config"),
- owner='druid',
- group='hadoop',
- content=InlineTemplate("-server \n-Xms{{node_heap_memory}}m \n-Xmx{{node_heap_memory}}m \n-XX:MaxDirectMemorySize={{node_direct_memory}}m \n-Dlog4j.configurationFile={{log4j_config_file}} \n-Dlog4j.debug \n{{node_jvm_opts}}",
- node_heap_memory=1024,
- node_direct_memory=2048,
- node_jvm_opts='-Duser.timezone=UTC -Dfile.encoding=UTF-8',
- log4j_config_file=format('/usr/hdp/current/{role}/conf/_common/druid-log4j.xml')
- )
- )
-
- self.assertResourceCalled('PropertiesFile', "runtime.properties",
- dir=format('/usr/hdp/current/{role}/conf/overlord'),
- properties=self.getConfig()['configurations']['druid-overlord'],
- owner='druid',
- group='hadoop'
- )
-
- self.assertResourceCalled('File', format("/usr/hdp/current/{role}/conf/overlord/jvm.config"),
- owner='druid',
- group='hadoop',
- content=InlineTemplate("-server \n-Xms{{node_heap_memory}}m \n-Xmx{{node_heap_memory}}m \n-XX:MaxDirectMemorySize={{node_direct_memory}}m \n-Dlog4j.configurationFile={{log4j_config_file}} \n-Dlog4j.debug \n{{node_jvm_opts}}",
- node_heap_memory=1024,
- node_direct_memory=2048,
- node_jvm_opts='-Duser.timezone=UTC -Dfile.encoding=UTF-8',
- log4j_config_file=format('/usr/hdp/current/{role}/conf/_common/druid-log4j.xml')
- )
- )
-
- self.assertResourceCalled('PropertiesFile', "runtime.properties",
- dir=format('/usr/hdp/current/{role}/conf/historical'),
- properties=self.getConfig()['configurations']['druid-historical'],
- owner='druid',
- group='hadoop'
- )
-
- self.assertResourceCalled('File', format("/usr/hdp/current/{role}/conf/historical/jvm.config"),
- owner='druid',
- group='hadoop',
- content=InlineTemplate("-server \n-Xms{{node_heap_memory}}m \n-Xmx{{node_heap_memory}}m \n-XX:MaxDirectMemorySize={{node_direct_memory}}m \n-Dlog4j.configurationFile={{log4j_config_file}} \n-Dlog4j.debug \n{{node_jvm_opts}}",
- node_heap_memory=1024,
- node_direct_memory=2048,
- node_jvm_opts='-Duser.timezone=UTC -Dfile.encoding=UTF-8',
- log4j_config_file=format('/usr/hdp/current/{role}/conf/_common/druid-log4j.xml')
- )
- )
-
-
- self.assertResourceCalled('PropertiesFile', "runtime.properties",
- dir=format('/usr/hdp/current/{role}/conf/broker'),
- properties=self.getConfig()['configurations']['druid-broker'],
- owner='druid',
- group='hadoop'
- )
-
- self.assertResourceCalled('File', format("/usr/hdp/current/{role}/conf/broker/jvm.config"),
- owner='druid',
- group='hadoop',
- content=InlineTemplate("-server \n-Xms{{node_heap_memory}}m \n-Xmx{{node_heap_memory}}m \n-XX:MaxDirectMemorySize={{node_direct_memory}}m \n-Dlog4j.configurationFile={{log4j_config_file}} \n-Dlog4j.debug \n{{node_jvm_opts}}",
- node_heap_memory=1024,
- node_direct_memory=2048,
- node_jvm_opts='-Duser.timezone=UTC -Dfile.encoding=UTF-8',
- log4j_config_file=format('/usr/hdp/current/{role}/conf/_common/druid-log4j.xml')
- )
- )
-
-
- self.assertResourceCalled('PropertiesFile', "runtime.properties",
- dir=format('/usr/hdp/current/{role}/conf/middleManager'),
- properties=self.getConfig()['configurations']['druid-middlemanager'],
- owner='druid',
- group='hadoop'
- )
-
- self.assertResourceCalled('File', format("/usr/hdp/current/{role}/conf/middleManager/jvm.config"),
- owner='druid',
- group='hadoop',
- content=InlineTemplate("-server \n-Xms{{node_heap_memory}}m \n-Xmx{{node_heap_memory}}m \n-XX:MaxDirectMemorySize={{node_direct_memory}}m \n-Dlog4j.configurationFile={{log4j_config_file}} \n-Dlog4j.debug \n{{node_jvm_opts}}",
- node_heap_memory=1024,
- node_direct_memory=2048,
- node_jvm_opts='-Duser.timezone=UTC -Dfile.encoding=UTF-8',
- log4j_config_file=format('/usr/hdp/current/{role}/conf/_common/druid-log4j.xml')
- )
- )
-
- self.assertResourceCalled('PropertiesFile', "runtime.properties",
- dir=format('/usr/hdp/current/{role}/conf/router'),
- properties=self.getConfig()['configurations']['druid-router'],
- owner='druid',
- group='hadoop'
- )
-
- self.assertResourceCalled('File', format("/usr/hdp/current/{role}/conf/router/jvm.config"),
- owner='druid',
- group='hadoop',
- content=InlineTemplate("-server \n-Xms{{node_heap_memory}}m \n-Xmx{{node_heap_memory}}m \n-XX:MaxDirectMemorySize={{node_direct_memory}}m \n-Dlog4j.configurationFile={{log4j_config_file}} \n-Dlog4j.debug \n{{node_jvm_opts}}",
- node_heap_memory=1024,
- node_direct_memory=2048,
- node_jvm_opts='-Duser.timezone=UTC -Dfile.encoding=UTF-8',
- log4j_config_file=format('/usr/hdp/current/{role}/conf/_common/druid-log4j.xml')
- )
- )
-
- self.assertResourceCalled('HdfsResource', '/user/druid',
- immutable_paths = self.DEFAULT_IMMUTABLE_PATHS,
- security_enabled = False,
- hadoop_bin_dir = '/usr/hdp/current/hadoop-client/bin',
- keytab = UnknownConfigurationMock(),
- default_fs = 'hdfs://c6401.ambari.apache.org:8020',
- hdfs_site = {u'a': u'b'},
- kinit_path_local = '/usr/bin/kinit',
- principal_name = 'missing_principal',
- user = 'hdfs',
- owner = 'druid',
- hadoop_conf_dir = '/usr/hdp/current/hadoop-client/conf',
- type = 'directory',
- action = ['create_on_execute'], hdfs_resource_ignore_file='/var/lib/ambari-agent/data/.hdfs_resource_ignore',
- dfs_type = '',
- recursive_chown=True,
- recursive_chmod=True
- )
-
- self.assertResourceCalled('HdfsResource', '/user/druid/data',
- immutable_paths = self.DEFAULT_IMMUTABLE_PATHS,
- security_enabled = False,
- hadoop_bin_dir = '/usr/hdp/current/hadoop-client/bin',
- keytab = UnknownConfigurationMock(),
- default_fs = 'hdfs://c6401.ambari.apache.org:8020',
- hdfs_site = {u'a': u'b'},
- kinit_path_local = '/usr/bin/kinit',
- principal_name = 'missing_principal',
- user = 'hdfs',
- owner = 'druid',
- hadoop_conf_dir = '/usr/hdp/current/hadoop-client/conf',
- type = 'directory',
- action = ['create_on_execute'], hdfs_resource_ignore_file='/var/lib/ambari-agent/data/.hdfs_resource_ignore',
- dfs_type = '',
- mode=0755
- )
-
- self.assertResourceCalled('HdfsResource', '/tmp/druid-indexing',
- immutable_paths = self.DEFAULT_IMMUTABLE_PATHS,
- security_enabled = False,
- hadoop_bin_dir = '/usr/hdp/current/hadoop-client/bin',
- keytab = UnknownConfigurationMock(),
- default_fs = 'hdfs://c6401.ambari.apache.org:8020',
- hdfs_site = {u'a': u'b'},
- kinit_path_local = '/usr/bin/kinit',
- principal_name = 'missing_principal',
- user = 'hdfs',
- owner = 'druid',
- hadoop_conf_dir = '/usr/hdp/current/hadoop-client/conf',
- type = 'directory',
- action = ['create_on_execute'], hdfs_resource_ignore_file='/var/lib/ambari-agent/data/.hdfs_resource_ignore',
- dfs_type = '',
- mode=0755
- )
-
- self.assertResourceCalled('HdfsResource', '/user/druid/logs',
- immutable_paths = self.DEFAULT_IMMUTABLE_PATHS,
- security_enabled = False,
- hadoop_bin_dir = '/usr/hdp/current/hadoop-client/bin',
- keytab = UnknownConfigurationMock(),
- default_fs = 'hdfs://c6401.ambari.apache.org:8020',
- hdfs_site = {u'a': u'b'},
- kinit_path_local = '/usr/bin/kinit',
- principal_name = 'missing_principal',
- user = 'hdfs',
- owner = 'druid',
- hadoop_conf_dir = '/usr/hdp/current/hadoop-client/conf',
- type = 'directory',
- action = ['create_on_execute'], hdfs_resource_ignore_file='/var/lib/ambari-agent/data/.hdfs_resource_ignore',
- dfs_type = '',
- mode=0755
- )
-
- self.assertResourceCalled('Directory', format('/usr/hdp/current/{role}/extensions'),
- mode=0755,
- cd_access='a',
- owner='druid',
- group='hadoop',
- create_parents=True,
- recursive_ownership=True
- )
-
- self.assertResourceCalled('Directory', format('/usr/hdp/current/{role}/hadoop-dependencies'),
- mode=0755,
- cd_access='a',
- owner='druid',
- group='hadoop',
- create_parents=True,
- recursive_ownership=True
- )
-
- self.assertResourceCalled('Execute', format("source /usr/hdp/current/{role}/conf/druid-env.sh ; java -classpath '/usr/hdp/current/{role}/lib/*' -Ddruid.extensions.loadList=[] -Ddruid.extensions.directory=/usr/hdp/current/{role}/extensions -Ddruid.extensions.hadoopDependenciesDir=/usr/hdp/current/{role}/hadoop-dependencies io.druid.cli.Main tools pull-deps -c mysql-metadata-storage --no-default-hadoop"),
- user='druid'
- )
-
-
-def mutable_config_dict(config):
- rv = {}
- for key, value in config.iteritems():
- rv[key] = value
- return rv
http://git-wip-us.apache.org/repos/asf/ambari/blob/f37b518b/ambari-server/src/test/python/stacks/2.6/common/test_stack_advisor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.6/common/test_stack_advisor.py b/ambari-server/src/test/python/stacks/2.6/common/test_stack_advisor.py
deleted file mode 100644
index 8227d69..0000000
--- a/ambari-server/src/test/python/stacks/2.6/common/test_stack_advisor.py
+++ /dev/null
@@ -1,575 +0,0 @@
-'''
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-'''
-
-import json
-import os
-from unittest import TestCase
-from mock.mock import patch
-
-
-class TestHDP26StackAdvisor(TestCase):
- def setUp(self):
- import imp
- self.maxDiff = None
- self.testDirectory = os.path.dirname(os.path.abspath(__file__))
- stackAdvisorPath = os.path.join(self.testDirectory, '../../../../../main/resources/stacks/stack_advisor.py')
- hdp206StackAdvisorPath = os.path.join(self.testDirectory,
- '../../../../../main/resources/stacks/HDP/2.0.6/services/stack_advisor.py')
- hdp21StackAdvisorPath = os.path.join(self.testDirectory,
- '../../../../../main/resources/stacks/HDP/2.1/services/stack_advisor.py')
- hdp22StackAdvisorPath = os.path.join(self.testDirectory,
- '../../../../../main/resources/stacks/HDP/2.2/services/stack_advisor.py')
- hdp23StackAdvisorPath = os.path.join(self.testDirectory,
- '../../../../../main/resources/stacks/HDP/2.3/services/stack_advisor.py')
- hdp24StackAdvisorPath = os.path.join(self.testDirectory,
- '../../../../../main/resources/stacks/HDP/2.4/services/stack_advisor.py')
- hdp25StackAdvisorPath = os.path.join(self.testDirectory,
- '../../../../../main/resources/stacks/HDP/2.5/services/stack_advisor.py')
- hdp26StackAdvisorPath = os.path.join(self.testDirectory,
- '../../../../../main/resources/stacks/HDP/2.6/services/stack_advisor.py')
- hdp26StackAdvisorClassName = 'HDP26StackAdvisor'
-
- with open(stackAdvisorPath, 'rb') as fp:
- imp.load_module('stack_advisor', fp, stackAdvisorPath, ('.py', 'rb', imp.PY_SOURCE))
- with open(hdp206StackAdvisorPath, 'rb') as fp:
- imp.load_module('stack_advisor_impl', fp, hdp206StackAdvisorPath, ('.py', 'rb', imp.PY_SOURCE))
- with open(hdp21StackAdvisorPath, 'rb') as fp:
- imp.load_module('stack_advisor_impl', fp, hdp21StackAdvisorPath, ('.py', 'rb', imp.PY_SOURCE))
- with open(hdp22StackAdvisorPath, 'rb') as fp:
- imp.load_module('stack_advisor_impl', fp, hdp22StackAdvisorPath, ('.py', 'rb', imp.PY_SOURCE))
- with open(hdp23StackAdvisorPath, 'rb') as fp:
- imp.load_module('stack_advisor_impl', fp, hdp23StackAdvisorPath, ('.py', 'rb', imp.PY_SOURCE))
- with open(hdp24StackAdvisorPath, 'rb') as fp:
- imp.load_module('stack_advisor_impl', fp, hdp24StackAdvisorPath, ('.py', 'rb', imp.PY_SOURCE))
- with open(hdp25StackAdvisorPath, 'rb') as fp:
- imp.load_module('stack_advisor_impl', fp, hdp25StackAdvisorPath, ('.py', 'rb', imp.PY_SOURCE))
- with open(hdp26StackAdvisorPath, 'rb') as fp:
- stack_advisor_impl = imp.load_module('stack_advisor_impl', fp, hdp26StackAdvisorPath,
- ('.py', 'rb', imp.PY_SOURCE))
- clazz = getattr(stack_advisor_impl, hdp26StackAdvisorClassName)
- self.stackAdvisor = clazz()
-
- # substitute method in the instance
- self.get_system_min_uid_real = self.stackAdvisor.get_system_min_uid
- self.stackAdvisor.get_system_min_uid = self.get_system_min_uid_magic
-
- @patch('__builtin__.open')
- @patch('os.path.exists')
- def get_system_min_uid_magic(self, exists_mock, open_mock):
- class MagicFile(object):
- def read(self):
- return """
- #test line UID_MIN 200
- UID_MIN 500
- """
-
- def __exit__(self, exc_type, exc_val, exc_tb):
- pass
-
- def __enter__(self):
- return self
-
- exists_mock.return_value = True
- open_mock.return_value = MagicFile()
- return self.get_system_min_uid_real()
-
- def test_recommendDruidConfigurations_withMysql(self):
- hosts = {
- "items": [
- {
- "Hosts": {
- "cpu_count": 4,
- "total_mem": 50331648,
- "disk_info": [
- {"mountpoint": "/"},
- {"mountpoint": "/dev/shm"},
- {"mountpoint": "/vagrant"},
- {"mountpoint": "/"},
- {"mountpoint": "/dev/shm"},
- {"mountpoint": "/vagrant"}
- ],
- "public_host_name": "c6401.ambari.apache.org",
- "host_name": "c6401.ambari.apache.org"
- },
- }
- ]
- }
-
- services = {
- "Versions": {
- "parent_stack_version": "2.5",
- "stack_name": "HDP",
- "stack_version": "2.6",
- "stack_hierarchy": {
- "stack_name": "HDP",
- "stack_versions": ["2.5", "2.4", "2.3", "2.2", "2.1", "2.0.6"]
- }
- },
- "services": [{
- "StackServices": {
- "service_name": "DRUID",
- },
- "components": [
- {
- "StackServiceComponents": {
- "component_name": "DRUID_COORDINATOR",
- "hostnames": ["c6401.ambari.apache.org"]
- },
- },
- {
- "StackServiceComponents": {
- "component_name": "DRUID_OVERLORD",
- "hostnames": ["c6401.ambari.apache.org"]
- },
- },
- {
- "StackServiceComponents": {
- "component_name": "DRUID_BROKER",
- "hostnames": ["c6401.ambari.apache.org"]
- },
- },
- {
- "StackServiceComponents": {
- "component_name": "DRUID_HISTORICAL",
- "hostnames": ["c6401.ambari.apache.org"]
- },
- },
- {
- "StackServiceComponents": {
- "component_name": "DRUID_MIDDLEMANAGER",
- "hostnames": ["c6401.ambari.apache.org"]
- },
- }
- ]
- }
- ],
- "configurations": {
- "druid-common": {
- "properties": {
- "database_name": "druid",
- "metastore_hostname": "c6401.ambari.apache.org",
- "druid.metadata.storage.type": "mysql",
- "druid.extensions.loadList": "[\"postgresql-metadata-storage\"]",
- "druid.extensions.pullList": "[]"
- }
- }
- }
- }
-
- clusterData = {
- "cpu": 4,
- "mapMemory": 30000,
- "amMemory": 20000,
- "reduceMemory": 20560,
- "containers": 30,
- "ramPerContainer": 512,
- "referenceNodeManagerHost": {
- "total_mem": 10240 * 1024
- }
- }
-
- configurations = {
- }
-
- self.stackAdvisor.recommendDruidConfigurations(configurations, clusterData, services, hosts)
- self.assertEquals(configurations,
- {'druid-historical': {
- 'properties': {'druid.processing.numThreads': '3', 'druid.server.http.numThreads': '40'}},
- 'druid-broker': {
- 'properties': {'druid.processing.numThreads': '3', 'druid.server.http.numThreads': '40'}},
- 'druid-common': {'properties': {'druid.extensions.loadList': '["mysql-metadata-storage"]',
- 'druid.metadata.storage.connector.port': '3306',
- 'druid.metadata.storage.connector.connectURI': 'jdbc:mysql://c6401.ambari.apache.org:3306/druid?createDatabaseIfNotExist=true',
- 'druid.zk.service.host': '',
- 'druid.extensions.pullList': '["io.druid.extensions:mysql-metadata-storage"]'}},
- 'druid-env': {'properties': {},
- 'property_attributes': {'druid.coordinator.jvm.heap.memory': {'maximum': '49152'},
- 'druid.overlord.jvm.heap.memory': {'maximum': '49152'},
- 'druid.middlemanager.jvm.heap.memory': {
- 'maximum': '49152'},
- 'druid.historical.jvm.heap.memory': {'maximum': '49152'},
- 'druid.broker.jvm.heap.memory': {'maximum': '49152'}}}}
- )
-
- def test_recommendDruidConfigurations_WithPostgresql(self):
- hosts = {
- "items": [
- {
- "Hosts": {
- "cpu_count": 4,
- "total_mem": 50331648,
- "disk_info": [
- {"mountpoint": "/"},
- {"mountpoint": "/dev/shm"},
- {"mountpoint": "/vagrant"},
- {"mountpoint": "/"},
- {"mountpoint": "/dev/shm"},
- {"mountpoint": "/vagrant"}
- ],
- "public_host_name": "c6401.ambari.apache.org",
- "host_name": "c6401.ambari.apache.org"
- }
- }
- ]
- }
-
- services = {
- "Versions": {
- "parent_stack_version": "2.5",
- "stack_name": "HDP",
- "stack_version": "2.6",
- "stack_hierarchy": {
- "stack_name": "HDP",
- "stack_versions": ["2.5", "2.4", "2.3", "2.2", "2.1", "2.0.6"]
- }
- },
- "services": [{
- "StackServices": {
- "service_name": "DRUID",
- },
- "components": [
- {
- "StackServiceComponents": {
- "component_name": "DRUID_COORDINATOR",
- "hostnames": ["c6401.ambari.apache.org"]
- },
- },
- {
- "StackServiceComponents": {
- "component_name": "DRUID_OVERLORD",
- "hostnames": ["c6401.ambari.apache.org"]
- },
- },
- {
- "StackServiceComponents": {
- "component_name": "DRUID_BROKER",
- "hostnames": ["c6401.ambari.apache.org"]
- },
- },
- {
- "StackServiceComponents": {
- "component_name": "DRUID_HISTORICAL",
- "hostnames": ["c6401.ambari.apache.org"]
- },
- },
- {
- "StackServiceComponents": {
- "component_name": "DRUID_MIDDLEMANAGER",
- "hostnames": ["c6401.ambari.apache.org"]
- },
- }
- ]
- }
- ],
- "configurations": {
- "druid-common": {
- "properties": {
- "database_name": "druid",
- "metastore_hostname": "c6401.ambari.apache.org",
- "druid.metadata.storage.type": "postgres",
- "druid.extensions.loadList": "[\"mysql-metadata-storage\"]",
- "druid.extensions.pullList": "[]"
- }
- }
- }
- }
-
- clusterData = {
- }
-
- configurations = {
- }
-
- self.stackAdvisor.recommendDruidConfigurations(configurations, clusterData, services, hosts)
- self.assertEquals(configurations,
- {'druid-historical': {
- 'properties': {'druid.processing.numThreads': '3', 'druid.server.http.numThreads': '40'}},
- 'druid-broker': {
- 'properties': {'druid.processing.numThreads': '3', 'druid.server.http.numThreads': '40'}},
- 'druid-common': {'properties': {'druid.extensions.loadList': '["postgresql-metadata-storage"]',
- 'druid.metadata.storage.connector.port': '5432',
- 'druid.metadata.storage.connector.connectURI': 'jdbc:postgresql://c6401.ambari.apache.org:5432/druid',
- 'druid.zk.service.host': '',
- 'druid.extensions.pullList': '[]'}},
- 'druid-env': {'properties': {},
- 'property_attributes': {'druid.coordinator.jvm.heap.memory': {'maximum': '49152'},
- 'druid.overlord.jvm.heap.memory': {'maximum': '49152'},
- 'druid.middlemanager.jvm.heap.memory': {
- 'maximum': '49152'},
- 'druid.historical.jvm.heap.memory': {'maximum': '49152'},
- 'druid.broker.jvm.heap.memory': {'maximum': '49152'}}}}
- )
-
- def test_recommendDruidConfigurations_WithDerby(self):
- hosts = {
- "items": [
- {
- "Hosts": {
- "cpu_count": 4,
- "total_mem": 50331648,
- "disk_info": [
- {"mountpoint": "/"},
- {"mountpoint": "/dev/shm"},
- {"mountpoint": "/vagrant"},
- {"mountpoint": "/"},
- {"mountpoint": "/dev/shm"},
- {"mountpoint": "/vagrant"}
- ],
- "public_host_name": "c6401.ambari.apache.org",
- "host_name": "c6401.ambari.apache.org"
- }
- }
- ]
- }
-
- services = {
- "Versions": {
- "parent_stack_version": "2.5",
- "stack_name": "HDP",
- "stack_version": "2.6",
- "stack_hierarchy": {
- "stack_name": "HDP",
- "stack_versions": ["2.5", "2.4", "2.3", "2.2", "2.1", "2.0.6"]
- }
- },
- "services": [{
- "StackServices": {
- "service_name": "DRUID",
- },
- "components": [
- {
- "StackServiceComponents": {
- "component_name": "DRUID_COORDINATOR",
- "hostnames": ["c6401.ambari.apache.org"]
- },
- },
- {
- "StackServiceComponents": {
- "component_name": "DRUID_OVERLORD",
- "hostnames": ["c6401.ambari.apache.org"]
- },
- },
- {
- "StackServiceComponents": {
- "component_name": "DRUID_BROKER",
- "hostnames": ["c6401.ambari.apache.org"]
- },
- },
- {
- "StackServiceComponents": {
- "component_name": "DRUID_HISTORICAL",
- "hostnames": ["c6401.ambari.apache.org"]
- },
- },
- {
- "StackServiceComponents": {
- "component_name": "DRUID_MIDDLEMANAGER",
- "hostnames": ["c6401.ambari.apache.org"]
- },
- }
- ]
- }
- ],
- "configurations": {
- "druid-common": {
- "properties": {
- "database_name": "druid",
- "metastore_hostname": "c6401.ambari.apache.org",
- "druid.metadata.storage.type": "derby",
- "druid.extensions.loadList": "[\"mysql-metadata-storage\"]",
- "druid.extensions.pullList": "[]"
- }
- }
- }
- }
-
- clusterData = {
- }
-
- configurations = {
- }
-
- self.stackAdvisor.recommendDruidConfigurations(configurations, clusterData, services, hosts)
- self.assertEquals(configurations,
- {'druid-historical': {
- 'properties': {'druid.processing.numThreads': '3', 'druid.server.http.numThreads': '40'}},
- 'druid-broker': {
- 'properties': {'druid.processing.numThreads': '3', 'druid.server.http.numThreads': '40'}},
- 'druid-common': {'properties': {'druid.extensions.loadList': '[]',
- 'druid.metadata.storage.connector.port': '1527',
- 'druid.metadata.storage.connector.connectURI': 'jdbc:derby://c6401.ambari.apache.org:1527/druid;create=true',
- 'druid.zk.service.host': '',
- 'druid.extensions.pullList': '[]'}},
- 'druid-env': {'properties': {},
- 'property_attributes': {'druid.coordinator.jvm.heap.memory': {'maximum': '49152'},
- 'druid.overlord.jvm.heap.memory': {'maximum': '49152'},
- 'druid.middlemanager.jvm.heap.memory': {
- 'maximum': '49152'},
- 'druid.historical.jvm.heap.memory': {'maximum': '49152'},
- 'druid.broker.jvm.heap.memory': {'maximum': '49152'}}}}
- )
-
- def test_recommendDruidConfigurations_heterogeneous_hosts(self):
- hosts = {
- "items": [
- {
- "href": "/api/v1/hosts/c6401.ambari.apache.org",
- "Hosts": {
- "cpu_count": 4,
- "total_mem": 50331648,
- "disk_info": [
- {"mountpoint": "/"},
- {"mountpoint": "/dev/shm"},
- {"mountpoint": "/vagrant"},
- {"mountpoint": "/"},
- {"mountpoint": "/dev/shm"},
- {"mountpoint": "/vagrant"}
- ],
- "public_host_name": "c6401.ambari.apache.org",
- "host_name": "c6401.ambari.apache.org"
- }
- }, {
- "href": "/api/v1/hosts/c6402.ambari.apache.org",
- "Hosts": {
- "cpu_count": 1,
- "total_mem": 1922680,
- "disk_info": [
- {"mountpoint": "/"},
- {"mountpoint": "/dev/shm"},
- {"mountpoint": "/vagrant"},
- {"mountpoint": "/"},
- {"mountpoint": "/dev/shm"},
- {"mountpoint": "/vagrant"}
- ],
- "public_host_name": "c6402.ambari.apache.org",
- "host_name": "c6402.ambari.apache.org"
- }
- },
- {
- "href": "/api/v1/hosts/c6403.ambari.apache.org",
- "Hosts": {
- "cpu_count": 3,
- "total_mem": 3845360,
- "disk_info": [
- {"mountpoint": "/"},
- {"mountpoint": "/dev/shm"},
- {"mountpoint": "/vagrant"},
- {"mountpoint": "/"},
- {"mountpoint": "/dev/shm"},
- {"mountpoint": "/vagrant"}
- ],
- "public_host_name": "c6403.ambari.apache.org",
- "host_name": "c6403.ambari.apache.org"
- }
- }
- ]
- }
-
- services = {
- "Versions": {
- "parent_stack_version": "2.5",
- "stack_name": "HDP",
- "stack_version": "2.6",
- "stack_hierarchy": {
- "stack_name": "HDP",
- "stack_versions": ["2.5", "2.4", "2.3", "2.2", "2.1", "2.0.6"]
- }
- },
- "services": [{
- "StackServices": {
- "service_name": "DRUID",
- },
- "components": [
- {
- "StackServiceComponents": {
- "component_name": "DRUID_COORDINATOR",
- "hostnames": ["c6401.ambari.apache.org"]
- },
- },
- {
- "StackServiceComponents": {
- "component_name": "DRUID_OVERLORD",
- "hostnames": ["c6401.ambari.apache.org"]
- },
- },
- {
- "StackServiceComponents": {
- "component_name": "DRUID_BROKER",
- "hostnames": ["c6402.ambari.apache.org", "c6403.ambari.apache.org"]
- },
- },
- {
- "StackServiceComponents": {
- "component_name": "DRUID_HISTORICAL",
- "hostnames": ["c6401.ambari.apache.org", "c6403.ambari.apache.org"]
- },
- },
- {
- "StackServiceComponents": {
- "component_name": "DRUID_MIDDLEMANAGER",
- "hostnames": ["c6401.ambari.apache.org"]
- },
- }
- ]
- }
- ],
- "configurations": {
- "druid-common": {
- "properties": {
- "database_name": "druid",
- "metastore_hostname": "c6401.ambari.apache.org",
- "druid.metadata.storage.type": "derby",
- "druid.extensions.loadList": "[\"mysql-metadata-storage\"]",
- "druid.extensions.pullList": "[]"
- }
- }
- }
- }
-
- clusterData = {
- }
-
- configurations = {
- }
-
- self.stackAdvisor.recommendDruidConfigurations(configurations, clusterData, services, hosts)
- self.assertEquals(configurations,
- {'druid-historical': {
- 'properties': {'druid.processing.numThreads': '2', 'druid.server.http.numThreads': '40'}},
- 'druid-broker': {
- 'properties': {'druid.processing.numThreads': '1', 'druid.server.http.numThreads': '40'}},
- 'druid-common': {'properties': {'druid.extensions.loadList': '[]',
- 'druid.metadata.storage.connector.port': '1527',
- 'druid.metadata.storage.connector.connectURI': 'jdbc:derby://c6401.ambari.apache.org:1527/druid;create=true',
- 'druid.zk.service.host': '',
- 'druid.extensions.pullList': '[]'}},
- 'druid-env': {'properties': {},
- 'property_attributes': {'druid.coordinator.jvm.heap.memory': {'maximum': '49152'},
- 'druid.overlord.jvm.heap.memory': {'maximum': '49152'},
- 'druid.middlemanager.jvm.heap.memory': {
- 'maximum': '49152'},
- 'druid.historical.jvm.heap.memory': {'maximum': '3755'},
- 'druid.broker.jvm.heap.memory': {'maximum': '1877'}}}}
- )
-
-
-def load_json(self, filename):
- file = os.path.join(self.testDirectory, filename)
- with open(file, 'rb') as f:
- data = json.load(f)
- return data