Merge "Fix oozie installation error" into stable/mitaka
This commit is contained in:
commit
4c8a3d7e15
@ -38,7 +38,6 @@ import sahara.utils.files as files
|
||||
LOG = logging.getLogger(__name__)
|
||||
conductor = conductor.API
|
||||
|
||||
_MAPR_HOME = '/opt/mapr'
|
||||
_JAVA_HOME = '/usr/java/jdk1.7.0_51'
|
||||
_CONFIGURE_SH_TIMEOUT = 600
|
||||
_SET_MODE_CMD = 'maprcli cluster mapreduce set -mode '
|
||||
@ -49,7 +48,6 @@ INSTALL_SCALA_SCRIPT = 'plugins/mapr/resources/install_scala.sh'
|
||||
INSTALL_MYSQL_CLIENT = 'plugins/mapr/resources/install_mysql_client.sh'
|
||||
ADD_MAPR_REPO_SCRIPT = 'plugins/mapr/resources/add_mapr_repo.sh'
|
||||
ADD_SECURITY_REPO_SCRIPT = 'plugins/mapr/resources/add_security_repos.sh'
|
||||
ADD_MAPR_USER = 'plugins/mapr/resources/add_mapr_user.sh'
|
||||
|
||||
SERVICE_INSTALL_PRIORITY = [
|
||||
mng.Management(),
|
||||
@ -69,7 +67,6 @@ class BaseConfigurer(ac.AbstractConfigurer):
|
||||
self._install_mapr_repo(cluster_context, instances)
|
||||
if not cluster_context.is_prebuilt:
|
||||
self._prepare_bare_image(cluster_context, instances)
|
||||
self.configure_general_environment(cluster_context, instances)
|
||||
self._install_services(cluster_context, instances)
|
||||
if cluster_context.is_node_aware:
|
||||
self._configure_topology(cluster_context, instances)
|
||||
@ -77,6 +74,7 @@ class BaseConfigurer(ac.AbstractConfigurer):
|
||||
self._configure_services(cluster_context, instances)
|
||||
self._configure_sh_cluster(cluster_context, instances)
|
||||
self._set_cluster_mode(cluster_context, instances)
|
||||
self._post_configure_services(cluster_context, instances)
|
||||
self._write_config_files(cluster_context, instances)
|
||||
self._configure_environment(cluster_context, instances)
|
||||
self._update_cluster_info(cluster_context)
|
||||
@ -101,14 +99,8 @@ class BaseConfigurer(ac.AbstractConfigurer):
|
||||
service.configure(cluster_context, instances)
|
||||
|
||||
def _install_services(self, cluster_context, instances):
|
||||
step_name_template = _("Install %s service")
|
||||
for service in self._service_install_sequence(cluster_context):
|
||||
# Add own provision step for each service
|
||||
step_name = step_name_template % service.ui_name
|
||||
decorator = el.provision_step(step_name, 0, 1)
|
||||
install_service = decorator(service.install)
|
||||
|
||||
install_service(cluster_context, instances)
|
||||
service.install(cluster_context, instances)
|
||||
|
||||
def _service_install_sequence(self, cluster_context):
|
||||
def key(service):
|
||||
@ -216,6 +208,7 @@ class BaseConfigurer(ac.AbstractConfigurer):
|
||||
LOG.debug("Config files are successfully written")
|
||||
|
||||
def _configure_environment(self, cluster_context, instances):
|
||||
self.configure_general_environment(cluster_context, instances)
|
||||
self._post_install_services(cluster_context, instances)
|
||||
|
||||
def _configure_database(self, cluster_context, instances):
|
||||
@ -260,9 +253,6 @@ class BaseConfigurer(ac.AbstractConfigurer):
|
||||
if not instances:
|
||||
instances = cluster_context.get_instances()
|
||||
|
||||
def create_user(instance):
|
||||
return util.run_script(instance, ADD_MAPR_USER, "root")
|
||||
|
||||
def set_user_password(instance):
|
||||
LOG.debug('Setting password for user "mapr"')
|
||||
if self.mapr_user_exists(instance):
|
||||
@ -284,7 +274,6 @@ class BaseConfigurer(ac.AbstractConfigurer):
|
||||
else:
|
||||
LOG.warning(_LW('User "mapr" does not exists'))
|
||||
|
||||
util.execute_on_instances(instances, create_user)
|
||||
util.execute_on_instances(instances, set_user_password)
|
||||
util.execute_on_instances(instances, create_home_mapr)
|
||||
|
||||
@ -386,3 +375,7 @@ class BaseConfigurer(ac.AbstractConfigurer):
|
||||
for service in cluster_context.cluster_services:
|
||||
service.post_configure_sh(cluster_context, instances)
|
||||
LOG.info(_LI('Post configure.sh hooks successfully executed'))
|
||||
|
||||
def _post_configure_services(self, cluster_context, instances):
|
||||
for service in cluster_context.cluster_services:
|
||||
service.post_configure(cluster_context, instances)
|
||||
|
@ -79,8 +79,17 @@ class Service(object):
|
||||
return self._validation_rules
|
||||
|
||||
def install(self, cluster_context, instances):
|
||||
g.execute_on_instances(instances, self._install_packages_on_instance,
|
||||
cluster_context)
|
||||
service_instances = cluster_context.filter_instances(instances,
|
||||
service=self)
|
||||
|
||||
@el.provision_step(_("Install %s service") % self.ui_name,
|
||||
cluster_context_reference=0, instances_reference=1)
|
||||
def _install(_context, _instances):
|
||||
g.execute_on_instances(_instances,
|
||||
self._install_packages_on_instance,
|
||||
_context)
|
||||
|
||||
_install(cluster_context, service_instances)
|
||||
|
||||
@el.provision_event(instance_reference=1)
|
||||
def _install_packages_on_instance(self, instance, cluster_context):
|
||||
@ -220,3 +229,6 @@ class Service(object):
|
||||
|
||||
def post_configure_sh(self, cluster_context, instances):
|
||||
pass
|
||||
|
||||
def post_configure(self, cluster_context, instances):
|
||||
pass
|
||||
|
@ -1,2 +0,0 @@
|
||||
#!/bin/sh
|
||||
useradd -p `openssl passwd -1 mapr` mapr
|
@ -84,6 +84,22 @@ class Oozie(s.Service):
|
||||
remote.execute_command('chown -R mapr:mapr /opt/mapr/oozie',
|
||||
run_as_root=True)
|
||||
|
||||
def install(self, cluster_context, instances):
|
||||
# oozie requires executed configure.sh
|
||||
pass
|
||||
|
||||
def post_configure(self, cluster_context, instances):
|
||||
super(Oozie, self).install(cluster_context, instances)
|
||||
oozie_instances = cluster_context.filter_instances(instances,
|
||||
service=self)
|
||||
|
||||
for instance in oozie_instances:
|
||||
with instance.remote() as r:
|
||||
r.execute_command(
|
||||
'sudo cp '
|
||||
'/opt/mapr/oozie/oozie-%s/conf/warden.oozie.conf '
|
||||
'/opt/mapr/conf/conf.d' % self.version)
|
||||
|
||||
def post_install(self, cluster_context, instances):
|
||||
oozie_inst = cluster_context.get_instance(OOZIE)
|
||||
oozie_service = cluster_context.get_service(OOZIE)
|
||||
|
Loading…
Reference in New Issue
Block a user