当前位置: 首页>>代码示例>>Python>>正文


Python context.set_current_instance_id函数代码示例

本文整理汇总了Python中sahara.context.set_current_instance_id函数的典型用法代码示例。如果您正苦于以下问题:Python set_current_instance_id函数的具体用法?Python set_current_instance_id怎么用?Python set_current_instance_id使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了set_current_instance_id函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: _provision_cluster

    def _provision_cluster(self, name, cluster_spec, ambari_info,
                           servers, version):
        # TODO(jspeidel): encapsulate in another class

        if servers:
            cpo.add_provisioning_step(
                servers[0].cluster_id,
                _("Provision cluster via Ambari"), len(servers))

        with context.ThreadGroup() as tg:
            for server in servers:
                with context.set_current_instance_id(
                        server.instance['instance_id']):
                    tg.spawn(
                        "hdp-provision-instance-%s" %
                        server.instance.hostname(),
                        server.provision_ambari, ambari_info, cluster_spec)

        handler = self.version_factory.get_version_handler(version)
        ambari_client = handler.get_ambari_client()

        ambari_client.wait_for_host_registrations(len(servers), ambari_info)
        self._set_ambari_credentials(cluster_spec, ambari_info, version)

        ambari_client.provision_cluster(
            cluster_spec, servers, ambari_info, name)

        LOG.info(_LI('Cluster provisioned via Ambari Server: {server_ip}')
                 .format(server_ip=ambari_info.get_address()))
开发者ID:al-indigo,项目名称:sahara,代码行数:29,代码来源:ambariplugin.py

示例2: mount_to_instances

def mount_to_instances(instances):
    if len(instances) == 0:
        return

    use_xfs = _can_use_xfs(instances)

    for instance in instances:
        with context.set_current_instance_id(instance.instance_id):
            devices = _find_instance_devices(instance)

            if devices:
                cpo.add_provisioning_step(
                    instance.cluster_id,
                    _("Mount volumes to {inst_name} instance").format(
                        inst_name=instance.instance_name), len(devices))

                formatted_devices = []
                lock = threading.Lock()
                with context.ThreadGroup() as tg:
                    # Since formating can take several minutes (for large
                    # disks) and can be done in parallel, launch one thread
                    # per disk.
                    for device in devices:
                        tg.spawn('format-device-%s' % device, _format_device,
                                 instance, device, use_xfs, formatted_devices,
                                 lock)

                conductor.instance_update(
                    context.current(), instance,
                    {"storage_devices_number": len(formatted_devices)})
                for idx, dev in enumerate(formatted_devices):
                    _mount_volume_to_node(instance, idx+1, dev, use_xfs)
开发者ID:openstack,项目名称:sahara,代码行数:32,代码来源:volumes.py

示例3: _assign_floating_ips

 def _assign_floating_ips(self, instances):
     for instance in instances:
         with context.set_current_instance_id(instance.instance_id):
             node_group = instance.node_group
             if node_group.floating_ip_pool:
                 networks.assign_floating_ip(instance.instance_id,
                                             node_group.floating_ip_pool)
开发者ID:AllenFromMinneapolis,项目名称:sahara,代码行数:7,代码来源:direct_engine.py

示例4: _scale_cluster_instances

    def _scale_cluster_instances(self, cluster, node_group_id_map):
        ctx = context.ctx()

        aa_group = None
        old_aa_groups = None
        if cluster.anti_affinity:
            aa_group = self._find_aa_server_group(cluster)
            if not aa_group:
                old_aa_groups = self._generate_anti_affinity_groups(cluster)

        instances_to_delete = []
        node_groups_to_enlarge = set()
        node_groups_to_delete = set()

        for node_group in cluster.node_groups:
            new_count = node_group_id_map[node_group.id]

            if new_count < node_group.count:
                instances_to_delete += node_group.instances[new_count:
                                                            node_group.count]
                if new_count == 0:
                    node_groups_to_delete.add(node_group.id)
            elif new_count > node_group.count:
                node_groups_to_enlarge.add(node_group.id)
                if node_group.count == 0 and node_group.auto_security_group:
                    self._create_auto_security_group(node_group)

        if instances_to_delete:
            cluster = c_u.change_cluster_status(
                cluster, c_u.CLUSTER_STATUS_DELETING_INSTANCES)

            for instance in instances_to_delete:
                with context.set_current_instance_id(instance.instance_id):
                    self._shutdown_instance(instance)

        self._await_deleted(cluster, instances_to_delete)
        for ng in cluster.node_groups:
            if ng.id in node_groups_to_delete:
                self._delete_auto_security_group(ng)

        cluster = conductor.cluster_get(ctx, cluster)
        instances_to_add = []
        if node_groups_to_enlarge:

            cpo.add_provisioning_step(
                cluster.id, _("Add instances"),
                self._count_instances_to_scale(
                    node_groups_to_enlarge, node_group_id_map, cluster))

            cluster = c_u.change_cluster_status(
                cluster, c_u.CLUSTER_STATUS_ADDING_INSTANCES)
            for ng in cluster.node_groups:
                if ng.id in node_groups_to_enlarge:
                    count = node_group_id_map[ng.id]
                    for idx in six.moves.xrange(ng.count + 1, count + 1):
                        instance_id = self._start_instance(
                            cluster, ng, idx, aa_group, old_aa_groups)
                        instances_to_add.append(instance_id)

        return instances_to_add
开发者ID:crobby,项目名称:sahara,代码行数:60,代码来源:direct_engine.py

示例5: _await_networks

    def _await_networks(self, cluster, instances):
        if not instances:
            return

        cpo.add_provisioning_step(cluster.id, _("Assign IPs"), len(instances))

        ips_assigned = set()
        self._ips_assign(ips_assigned, cluster, instances)

        LOG.info(
            _LI("All instances have IPs assigned"))

        cluster = conductor.cluster_get(context.ctx(), cluster)
        instances = g.get_instances(cluster, ips_assigned)

        cpo.add_provisioning_step(
            cluster.id, _("Wait for instance accessibility"), len(instances))

        with context.ThreadGroup() as tg:
            for instance in instances:
                with context.set_current_instance_id(instance.instance_id):
                    tg.spawn("wait-for-ssh-%s" % instance.instance_name,
                             self._wait_until_accessible, instance)

        LOG.info(_LI("All instances are accessible"))
开发者ID:AllenFromMinneapolis,项目名称:sahara,代码行数:25,代码来源:engine.py

示例6: _add_hosts_and_components

    def _add_hosts_and_components(
            self, cluster_spec, servers, ambari_info, name):

        add_host_url = 'http://{0}/api/v1/clusters/{1}/hosts/{2}'
        add_host_component_url = ('http://{0}/api/v1/clusters/{1}'
                                  '/hosts/{2}/host_components/{3}')
        for host in servers:
            with context.set_current_instance_id(host.instance['instance_id']):
                hostname = host.instance.fqdn().lower()
                result = self._post(
                    add_host_url.format(ambari_info.get_address(), name,
                                        hostname), ambari_info)
                if result.status_code != 201:
                    LOG.error(
                        _LE('Create host command failed. {result}').format(
                            result=result.text))
                    raise ex.HadoopProvisionError(
                        _('Failed to add host: %s') % result.text)

                node_group_name = host.node_group.name
                # TODO(jspeidel): ensure that node group exists
                node_group = cluster_spec.node_groups[node_group_name]
                for component in node_group.components:
                    # don't add any AMBARI components
                    if component.find('AMBARI') != 0:
                        result = self._post(add_host_component_url.format(
                            ambari_info.get_address(), name, hostname,
                            component), ambari_info)
                        if result.status_code != 201:
                            LOG.error(
                                _LE('Create host_component command failed. '
                                    '{result}').format(result=result.text))
                            raise ex.HadoopProvisionError(
                                _('Failed to add host component: %s')
                                % result.text)
开发者ID:AlexanderYAPPO,项目名称:sahara,代码行数:35,代码来源:versionhandler.py

示例7: _shutdown_instances

    def _shutdown_instances(self, cluster):
        for node_group in cluster.node_groups:
            for instance in node_group.instances:
                with context.set_current_instance_id(instance.instance_id):
                    self._shutdown_instance(instance)

            self._await_deleted(cluster, node_group.instances)
            self._delete_auto_security_group(node_group)
开发者ID:AllenFromMinneapolis,项目名称:sahara,代码行数:8,代码来源:direct_engine.py

示例8: _rollback_cluster_scaling

    def _rollback_cluster_scaling(self, cluster, instances, ex):
        """Attempt to rollback cluster scaling."""

        for i in instances:
            with context.set_current_instance_id(i.instance_id):
                self._shutdown_instance(i)

        cluster = conductor.cluster_get(context.ctx(), cluster)
        g.clean_cluster_from_empty_ng(cluster)
开发者ID:AllenFromMinneapolis,项目名称:sahara,代码行数:9,代码来源:direct_engine.py

示例9: _disable_repos_on_inst

def _disable_repos_on_inst(instance):
    with context.set_current_instance_id(instance_id=instance.instance_id):
        with instance.remote() as r:
            tmp_name = "/tmp/yum.repos.d-%s" % instance.instance_id[:8]
            sudo = functools.partial(r.execute_command, run_as_root=True)
            # moving to other folder
            sudo("mv /etc/yum.repos.d/ {fold_name}".format(
                fold_name=tmp_name))
            sudo("mkdir /etc/yum.repos.d")
开发者ID:Imperat,项目名称:sahara,代码行数:9,代码来源:deploy.py

示例10: configure_instances

def configure_instances(pctx, instances):
    if len(instances) == 0:
        return

    cpo.add_provisioning_step(instances[0].cluster_id, _("Configure instances"), len(instances))

    for instance in instances:
        with context.set_current_instance_id(instance.instance_id):
            _configure_instance(pctx, instance)
开发者ID:uladz,项目名称:sahara,代码行数:9,代码来源:config.py

示例11: _ips_assign

 def _ips_assign(self, ips_assigned, cluster, instances):
     if not cluster_utils.check_cluster_exists(cluster):
         return True
     for instance in instances:
         if instance.id not in ips_assigned:
             with context.set_current_instance_id(instance.instance_id):
                 if networks.init_instances_ips(instance):
                     ips_assigned.add(instance.id)
                     cpo.add_successful_event(instance)
     return len(ips_assigned) == len(instances)
开发者ID:openstack,项目名称:sahara,代码行数:10,代码来源:engine.py

示例12: _check_active

 def _check_active(self, active_ids, cluster, instances):
     if not g.check_cluster_exists(cluster):
         return True
     for instance in instances:
         if instance.id not in active_ids:
             with context.set_current_instance_id(instance.instance_id):
                 if self._check_if_active(instance):
                     active_ids.add(instance.id)
                     cpo.add_successful_event(instance)
     return len(instances) == len(active_ids)
开发者ID:AllenFromMinneapolis,项目名称:sahara,代码行数:10,代码来源:direct_engine.py

示例13: install_swift_integration

    def install_swift_integration(self, servers):
        if servers:
            cpo.add_provisioning_step(
                servers[0].cluster_id, _("Install Swift integration"),
                len(servers))

        for server in servers:
            with context.set_current_instance_id(
                    server.instance['instance_id']):
                server.install_swift_integration()
开发者ID:AlexanderYAPPO,项目名称:sahara,代码行数:10,代码来源:versionhandler.py

示例14: _start_oozie

    def _start_oozie(self, cluster, oozie):
        nn_instance = vu.get_namenode(cluster)

        with remote.get_remote(oozie) as r:
            with context.set_current_instance_id(oozie.instance_id):
                if c_helper.is_mysql_enable(cluster):
                    run.mysql_start(r)
                    run.oozie_create_db(r)
                run.oozie_share_lib(r, nn_instance.hostname())
                run.start_oozie(r)
                LOG.info(_LI("Oozie service has been started"))
开发者ID:metasensus,项目名称:sahara,代码行数:11,代码来源:versionhandler.py

示例15: _check_deleted

    def _check_deleted(self, deleted_ids, cluster, instances):
        if not g.check_cluster_exists(cluster):
            return True

        for instance in instances:
            if instance.id not in deleted_ids:
                with context.set_current_instance_id(instance.instance_id):
                    if self._check_if_deleted(instance):
                        LOG.debug("Instance is deleted")
                        deleted_ids.add(instance.id)
                        cpo.add_successful_event(instance)
        return len(deleted_ids) == len(instances)
开发者ID:AllenFromMinneapolis,项目名称:sahara,代码行数:12,代码来源:direct_engine.py


注:本文中的sahara.context.set_current_instance_id函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。