| #!/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 import * |
| |
| def setup_conf_dir(name=None): # 'master' or 'tserver' or 'monitor' or 'gc' or 'tracer' or 'client' |
| import params |
| |
| # create the conf directory |
| Directory( params.conf_dir, |
| owner = params.accumulo_user, |
| group = params.user_group, |
| recursive = True |
| ) |
| |
| jarname = "SliderAccumuloUtils.jar" |
| File(format("{params.accumulo_root}/lib/{jarname}"), |
| mode=0644, |
| group=params.user_group, |
| owner=params.accumulo_user, |
| content=StaticFile(jarname) |
| ) |
| |
| # create pid dir |
| Directory( params.pid_dir, |
| owner = params.accumulo_user, |
| group = params.user_group, |
| recursive = True |
| ) |
| |
| # create log dir |
| Directory (params.log_dir, |
| owner = params.accumulo_user, |
| group = params.user_group, |
| recursive = True |
| ) |
| |
| # create a site file for server processes |
| XmlConfig( "accumulo-site.xml", |
| conf_dir = params.conf_dir, |
| configurations = params.config['configurations']['accumulo-site'], |
| owner = params.accumulo_user, |
| group = params.user_group, |
| mode=0600 |
| ) |
| |
| # create env file |
| File(format("{params.conf_dir}/accumulo-env.sh"), |
| mode=0644, |
| group=params.user_group, |
| owner=params.accumulo_user, |
| content=InlineTemplate(params.env_sh_template) |
| ) |
| |
| # create metrics2 properties file |
| accumulo_TemplateConfig('hadoop-metrics2-accumulo.properties') |
| |
| if name == "proxy": |
| # create proxy.properties file |
| PropertiesFile(params.proxy_conf, |
| properties = params.config['configurations']['proxy'], |
| owner = params.accumulo_user, |
| group = params.user_group |
| ) |
| |
| # create host files |
| accumulo_StaticFile( 'masters') |
| accumulo_StaticFile( 'slaves') |
| accumulo_StaticFile( 'monitor') |
| accumulo_StaticFile( 'gc') |
| accumulo_StaticFile( 'tracers') |
| |
| # create log4j.properties files |
| if (params.log4j_props != None): |
| File(format("{params.conf_dir}/log4j.properties"), |
| mode=0644, |
| group=params.user_group, |
| owner=params.accumulo_user, |
| content=params.log4j_props |
| ) |
| else: |
| accumulo_StaticFile("log4j.properties") |
| |
| # create other logging configuration files |
| accumulo_StaticFile("auditLog.xml") |
| accumulo_StaticFile("generic_logger.xml") |
| accumulo_StaticFile("monitor_logger.xml") |
| |
| # create the policy file |
| if 'accumulo-policy' in params.config['configurations']: |
| XmlConfig( "accumulo-policy.xml", |
| configurations = params.config['configurations']['accumulo-policy'], |
| owner = params.accumulo_user, |
| group = params.user_group |
| ) |
| |
| # update configs |
| def update_site_config(configs, name): |
| import params |
| if name in params.config['configurations']['accumulo-site']: |
| configs[name] = params.config['configurations']['accumulo-site'][name] |
| |
| # create file 'name' from template |
| def accumulo_TemplateConfig(name, |
| tag=None |
| ): |
| import params |
| |
| TemplateConfig( format("{params.conf_dir}/{name}"), |
| owner = params.accumulo_user, |
| group = params.user_group, |
| template_tag = tag |
| ) |
| |
| # create static file 'name' |
| def accumulo_StaticFile(name): |
| import params |
| |
| File(format("{params.conf_dir}/{name}"), |
| mode=0644, |
| group=params.user_group, |
| owner=params.accumulo_user, |
| content=StaticFile(name) |
| ) |