def configure_general_environment(self, cluster_context, instances=None):
        LOG.debug('Executing post configure hooks')
        mapr_user_pass = pu.get_mapr_password(cluster_context.cluster)

        if not instances:
            instances = cluster_context.get_instances()

        def set_user_password(instance):
            LOG.debug('Setting password for user "mapr"')
            if self.mapr_user_exists(instance):
                with instance.remote() as r:
                    r.execute_command('echo "%s:%s"|chpasswd' %
                                      ('mapr', mapr_user_pass),
                                      run_as_root=True)
            else:
                LOG.warning(_LW('User "mapr" does not exists'))

        def create_home_mapr(instance):
            target_path = '/home/mapr'
            LOG.debug("Creating home directory for user 'mapr'")
            args = {'path': target_path, 'user': '******', 'group': 'mapr'}
            cmd = ('mkdir -p %(path)s && chown %(user)s:%(group)s %(path)s' %
                   args)
            if self.mapr_user_exists(instance):
                with instance.remote() as r:
                    r.execute_command(cmd, run_as_root=True)
            else:
                LOG.warning(_LW('User "mapr" does not exists'))

        util.execute_on_instances(instances, set_user_password)
        util.execute_on_instances(instances, create_home_mapr)
Exemple #2
0
 def get_ui_info(self, cluster_context):
     # Hue uses credentials of the administrative user (PAM auth)
     return [('HUE', HUE, {
         s.SERVICE_UI: 'http://%s:8888',
         'Username': '******',
         'Password': pu.get_mapr_password(cluster_context.cluster)
     })]
Exemple #3
0
    def configure_general_environment(self, cluster_context, instances=None):
        LOG.debug('Executing post configure hooks')
        mapr_user_pass = pu.get_mapr_password(cluster_context.cluster)

        if not instances:
            instances = cluster_context.get_instances()

        def set_user_password(instance):
            LOG.debug('Setting password for user "%s"' % pu.MAPR_USER_NAME)
            if self.mapr_user_exists(instance):
                with instance.remote() as r:
                    r.execute_command(
                        'echo "%s:%s"|chpasswd' %
                        (pu.MAPR_USER_NAME, mapr_user_pass),
                        run_as_root=True)
            else:
                LOG.warning(_LW('User "mapr" does not exists'))

        def create_home_mapr(instance):
            target_path = '/home/%s' % pu.MAPR_USER_NAME
            LOG.debug("Creating home directory for user '%s'" %
                      pu.MAPR_USER_NAME)
            args = {'path': target_path,
                    'user': pu.MAPR_USER_NAME,
                    'group': _MAPR_GROUP_NAME}
            cmd = ('mkdir -p %(path)s && chown %(user)s:%(group)s %(path)s'
                   % args)
            if self.mapr_user_exists(instance):
                with instance.remote() as r:
                    r.execute_command(cmd, run_as_root=True)
            else:
                LOG.warning(_LW('User "mapr" does not exists'))

        util.execute_on_instances(instances, set_user_password)
        util.execute_on_instances(instances, create_home_mapr)
    def _update_cluster_info(self, cluster_context):
        LOG.debug('Updating UI information.')
        info = {
            'Admin user credentials': {
                'Username': '******',
                'Password': pu.get_mapr_password(cluster_context.cluster)
            }
        }
        for service in cluster_context.cluster_services:
            for title, node_process, ui_info in (
                    service.get_ui_info(cluster_context)):
                removed = cluster_context.removed_instances(node_process)
                instances = cluster_context.get_instances(node_process)
                instances = [i for i in instances if i not in removed]

                if len(instances) == 1:
                    display_name_template = "%(title)s"
                else:
                    display_name_template = "%(title)s %(index)s"

                for index, instance in enumerate(instances, start=1):
                    args = {"title": title, "index": index}
                    display_name = display_name_template % args
                    data = ui_info.copy()
                    data[srvc.SERVICE_UI] = (data[srvc.SERVICE_UI] %
                                             instance.get_ip_or_dns_name())
                    info.update({display_name: data})

        ctx = context.ctx()
        conductor.cluster_update(ctx, cluster_context.cluster, {'info': info})
Exemple #5
0
    def _update_cluster_info(self, cluster_context):
        LOG.debug('Updating UI information.')
        info = {'Admin user credentials': {'Username': pu.MAPR_USER_NAME,
                                           'Password': pu.get_mapr_password
                                           (cluster_context.cluster)}}
        for service in cluster_context.cluster_services:
            for title, node_process, ui_info in (service.get_ui_info
                                                 (cluster_context)):
                removed = cluster_context.removed_instances(node_process)
                instances = cluster_context.get_instances(node_process)
                instances = [i for i in instances if i not in removed]

                if len(instances) == 1:
                    display_name_template = "%(title)s"
                else:
                    display_name_template = "%(title)s %(index)s"

                for index, instance in enumerate(instances, start=1):
                    args = {"title": title, "index": index}
                    display_name = display_name_template % args
                    data = ui_info.copy()
                    data[srvc.SERVICE_UI] = (data[srvc.SERVICE_UI] %
                                             instance.management_ip)
                    info.update({display_name: data})

        ctx = context.ctx()
        conductor.cluster_update(ctx, cluster_context.cluster, {'info': info})
Exemple #6
0
 def get_ui_info(self, cluster_context):
     # MCS uses credentials of the administrative user (PAM auth)
     return [
         (
             "MapR Control System (MCS)",
             WEB_SERVER,
             {
                 s.SERVICE_UI: "https://%s:8443",
                 "Username": pu.MAPR_USER_NAME,
                 "Password": pu.get_mapr_password(cluster_context.cluster),
             },
         )
     ]
Exemple #7
0
 def get_ui_info(self, cluster_context):
     # Hue uses credentials of the administrative user (PAM auth)
     return [('HUE', HUE, {s.SERVICE_UI: 'http://%s:8888',
                           'Username': pu.MAPR_USER_NAME,
                           'Password': pu.get_mapr_password(cluster_context
                                                            .cluster)})]
Exemple #8
0
 def get_ui_info(self, cluster_context):
     # MCS uses credentials of the administrative user (PAM auth)
     return [('MapR Control System (MCS)', WEB_SERVER,
              {s.SERVICE_UI: 'https://%s:8443',
               'Username': pu.MAPR_USER_NAME,
               'Password': pu.get_mapr_password(cluster_context.cluster)})]
Exemple #9
0
 def get_ui_info(self, cluster_context):
     # MCS uses credentials of the administrative user (PAM auth)
     return [('MapR Control System (MCS)', WEB_SERVER,
              {s.SERVICE_UI: 'https://%s:8443',
               'Username': '******',
               'Password': pu.get_mapr_password(cluster_context.cluster)})]