• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python utils.poll_until函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: delete

    def delete(cls, credential, region, volume_id):
        client = cls.get_client(credential, region)

        # Poll until the volume is attached.
        def volume_is_detached():
            try:
                volume = client.volumes.get(volume_id)
                if volume.status != 'in-use':
                    return True
                else:
                    return False
            except nova_exceptions.ClientException as e:
                LOG.debug(e)
                return False
        try:
            # Wait until volume is detached, before issuing delete
            utils.poll_until(volume_is_detached, sleep_time=2,
                             time_out=int(config.Config.get('volume_detach_time_out', 30))) 
        except rd_exceptions.PollTimeOut as pto:
            LOG.error("Timeout waiting for volume to detach: %s" % volume_id)
            
            # Failed waiting for volume to detach, attempt to delete anyway
            try:
                client.volumes.delete(volume_id)
            except nova_exceptions.NotFound, e:
                raise rd_exceptions.NotFound(uuid=volume_id)
            except nova_exceptions.ClientException, e:
                raise rd_exceptions.VolumeDeletionFailure(str(pto))
开发者ID:hpcloud,项目名称:reddwarf_lite,代码行数:28,代码来源:models.py


示例2: resize_volume

 def resize_volume(self, new_size):
     LOG.debug("%s: Resizing volume for instance: %s to %r GB"
               % (greenthread.getcurrent(), self.server.id, new_size))
     self.volume_client.volumes.resize(self.volume_id, int(new_size))
     try:
         utils.poll_until(
             lambda: self.volume_client.volumes.get(self.volume_id),
             lambda volume: volume.status == 'in-use',
             sleep_time=2,
             time_out=CONF.volume_time_out)
         volume = self.volume_client.volumes.get(self.volume_id)
         self.update_db(volume_size=volume.size)
         self.nova_client.volumes.rescan_server_volume(self.server,
                                                       self.volume_id)
         self.guest.resize_fs(self.get_volume_mountpoint())
     except PollTimeOut as pto:
         LOG.error("Timeout trying to rescan or resize the attached volume "
                   "filesystem for volume: %s" % self.volume_id)
     except Exception as e:
         LOG.error(e)
         LOG.error("Error encountered trying to rescan or resize the "
                   "attached volume filesystem for volume: %s"
                   % self.volume_id)
     finally:
         self.update_db(task_status=inst_models.InstanceTasks.NONE)
开发者ID:imsplitbit,项目名称:reddwarf,代码行数:25,代码来源:models.py


示例3: reboot

    def reboot(self):
        try:
            LOG.debug("Instance %s calling stop_mysql..." % self.id)
            self.guest.stop_mysql()
            LOG.debug("Rebooting instance %s" % self.id)
            self.server.reboot()

            # Poll nova until instance is active
            reboot_time_out = int(config.Config.get("reboot_time_out", 60 * 2))

            def update_server_info():
                self._refresh_compute_server_info()
                return self.server.status == 'ACTIVE'
            utils.poll_until(
                update_server_info,
                sleep_time=2,
                time_out=reboot_time_out)

            # Set the status to PAUSED. The guest agent will reset the status
            # when the reboot completes and MySQL is running.
            status = InstanceServiceStatus.find_by(instance_id=self.id)
            status.set_status(inst_models.ServiceStatuses.PAUSED)
            status.save()
            LOG.debug("Successfully rebooted instance %s" % self.id)
        except Exception, e:
            LOG.error("Failed to reboot instance %s: %s" % (self.id, str(e)))
开发者ID:hub-cap,项目名称:reddwarf_lite,代码行数:26,代码来源:models.py


示例4: _delete_resources

    def _delete_resources(self):
        try:
            self.server.delete()
        except Exception as ex:
            LOG.error("Error during delete compute server %s "
                      % self.server.id)
            LOG.error(ex)
        try:
            dns_support = config.Config.get("reddwarf_dns_support", 'False')
            LOG.debug(_("reddwarf dns support = %s") % dns_support)
            if utils.bool_from_string(dns_support):
                dns_api = create_dns_client(self.context)
                dns_api.delete_instance_entry(instance_id=self.db_info.id)
        except Exception as ex:
            LOG.error("Error during dns entry for instance %s "
                      % self.db_info.id)
            LOG.error(ex)
        # Poll until the server is gone.

        def server_is_finished():
            try:
                server_id = self.db_info.compute_instance_id
                server = self.nova_client.servers.get(server_id)
                if server.status not in ['SHUTDOWN', 'ACTIVE']:
                    msg = "Server %s got into ERROR status during delete " \
                          "of instance %s!" % (server.id, self.id)
                    LOG.error(msg)
                return False
            except nova_exceptions.NotFound:
                return True

        poll_until(server_is_finished, sleep_time=2,
                   time_out=int(config.Config.get('server_delete_time_out')))
开发者ID:hub-cap,项目名称:reddwarf_lite,代码行数:33,代码来源:models.py


示例5: _spawn_with_init_file

    def _spawn_with_init_file(self, temp_file):
        child = pexpect.spawn("sudo mysqld_safe --init-file=%s" %
                              temp_file.name)
        try:
            i = child.expect(['Starting mysqld daemon'])
            if i == 0:
                LOG.info("Starting mysqld daemon")
        except pexpect.TIMEOUT as e:
            LOG.error("wait_and_close_proc failed: %s" % e)
        finally:
            try:
                # There is a race condition here where we kill mysqld before
                # the init file been executed. We need to ensure mysqld is up.
                utils.poll_until(mysql_is_running,
                                 sleep_time=RESET_ROOT_SLEEP_INTERVAL,
                                 time_out=RESET_ROOT_RETRY_TIMEOUT)
            except exception.PollTimeOut:
                raise RestoreError("Reset root password failed: "
                                   "mysqld did not start!")

            LOG.info("Root password reset successfully!")
            LOG.info("Cleaning up the temp mysqld process...")
            child.delayafterclose = 1
            child.delayafterterminate = 1
            child.close(force=True)
            utils.execute_with_timeout("sudo", "killall", "mysqld")
开发者ID:DJohnstone,项目名称:trove,代码行数:26,代码来源:base.py


示例6: _create_dns_entry

    def _create_dns_entry(self):
        LOG.debug("%s: Creating dns entry for instance: %s"
                  % (greenthread.getcurrent(), self.id))
        dns_client = create_dns_client(self.context)
        dns_support = config.Config.get("reddwarf_dns_support", 'False')
        LOG.debug(_("reddwarf dns support = %s") % dns_support)

        nova_client = create_nova_client(self.context)
        if utils.bool_from_string(dns_support):

            def get_server():
                c_id = self.db_info.compute_instance_id
                return nova_client.servers.get(c_id)

            def ip_is_available(server):
                LOG.info("Polling for ip addresses: $%s " % server.addresses)
                if server.addresses != {}:
                    return True
                elif server.addresses == {} and\
                     server.status != InstanceStatus.ERROR:
                    return False
                elif server.addresses == {} and\
                     server.status == InstanceStatus.ERROR:
                    LOG.error(_("Instance IP not available, instance (%s): "
                                "server had status (%s).")
                    % (self.id, server.status))
                    raise ReddwarfError(status=server.status)
            poll_until(get_server, ip_is_available,
                       sleep_time=1, time_out=60 * 2)
            server = nova_client.servers.get(self.db_info.compute_instance_id)
            LOG.info("Creating dns entry...")
            dns_client.create_instance_entry(self.id,
                                             get_ip_address(server.addresses))
开发者ID:rnirmal,项目名称:reddwarf_lite,代码行数:33,代码来源:models.py


示例7: delete_instance

    def delete_instance(self):
        try:
            self.server.delete()
        except Exception as ex:
            LOG.error("Error during delete compute server %s " % self.server.id)
            LOG.error(ex)
        try:
            dns_support = config.Config.get("reddwarf_dns_support", "False")
            LOG.debug(_("reddwarf dns support = %s") % dns_support)
            if utils.bool_from_string(dns_support):
                dns_api = create_dns_client(self.context)
                dns_api.delete_instance_entry(instance_id=self.db_info.id)
        except Exception as ex:
            LOG.error("Error during dns entry for instance %s " % self.db_info.id)
            LOG.error(ex)
        # Poll until the server is gone.
        def server_is_finished():
            try:
                server_id = self.db_info.compute_instance_id
                server = self.nova_client.servers.get(server_id)
                if server.status not in ["SHUTDOWN", "ACTIVE"]:
                    msg = "Server %s got into ERROR status during delete " "of instance %s!" % (server.id, self.id)
                    LOG.error(msg)
                return False
            except nova_exceptions.NotFound:
                return True

        poll_until(server_is_finished, sleep_time=2, time_out=int(config.Config.get("server_delete_time_out")))
        # If time out occurs, the instance task is stuck in DELETING.
        LOG.debug("Setting instance %s to deleted..." % self.id)
        # Delete guest queue.
        guest = self.get_guest()
        guest.delete_queue()
        self.update_db(task_status=InstanceTasks.NONE)
        self.update_db(deleted=True, deleted_at=datetime.now())
开发者ID:pcrews,项目名称:reddwarf_lite,代码行数:35,代码来源:models.py


示例8: test_nova_resize_timeout

    def test_nova_resize_timeout(self):
        self._stop_mysql()
        self.server.resize(NEW_FLAVOR_ID)

        self.mock.StubOutWithMock(utils, 'poll_until')
        utils.poll_until(mox.IgnoreArg(), sleep_time=2, time_out=120)\
            .AndRaise(PollTimeOut)
开发者ID:juicegit,项目名称:reddwarf,代码行数:7,代码来源:instances_resize.py


示例9: poll_until_then_raise

def poll_until_then_raise(event, exception):
    try:
        utils.poll_until(event,
                         sleep_time=RESET_ROOT_SLEEP_INTERVAL,
                         time_out=RESET_ROOT_RETRY_TIMEOUT)
    except exception.PollTimeOut:
        raise exception
开发者ID:pdmars,项目名称:trove,代码行数:7,代码来源:base.py


示例10: test_revert_nova_fails

 def test_revert_nova_fails(self):
     self._stop_mysql()
     self._nova_resizes_successfully()
     self.instance._set_service_status_to_paused()
     self.instance.service_status = ServiceStatuses.PAUSED
     utils.poll_until(mox.IgnoreArg(), sleep_time=2, time_out=120).AndRaise(PollTimeOut)
     self.instance.server.revert_resize()
     self._server_changes_to("ERROR", OLD_FLAVOR_ID)
开发者ID:cp16net,项目名称:reddwarf-1,代码行数:8,代码来源:instances_resize.py


示例11: resize_flavor

    def resize_flavor(self, new_flavor_id, old_memory_size, new_memory_size):
        def resize_status_msg():
            return "instance_id=%s, status=%s, flavor_id=%s, " "dest. flavor id=%s)" % (
                self.db_info.id,
                self.server.status,
                str(self.flavor["id"]),
                str(new_flavor_id),
            )

        try:
            LOG.debug("Instance %s calling stop_mysql..." % self.db_info.id)
            self.guest.stop_mysql()
            try:
                LOG.debug("Instance %s calling Compute resize..." % self.db_info.id)
                self.server.resize(new_flavor_id)

                # Do initial check and confirm the status is appropriate.
                self._refresh_compute_server_info()
                if self.server.status != "RESIZE" and self.server.status != "VERIFY_RESIZE":
                    msg = "Unexpected status after call to resize! : %s"
                    raise ReddwarfError(msg % resize_status_msg())

                # Wait for the flavor to change.
                def update_server_info():
                    self._refresh_compute_server_info()
                    return self.server.status != "RESIZE"

                utils.poll_until(update_server_info, sleep_time=2, time_out=60 * 2)

                # Do check to make sure the status and flavor id are correct.
                if str(self.server.flavor["id"]) != str(new_flavor_id) or self.server.status != "VERIFY_RESIZE":
                    msg = "Assertion failed! flavor_id=%s and not %s"
                    actual_flavor = self.server.flavor["id"]
                    expected_flavor = new_flavor_id
                    raise ReddwarfError(msg % (actual_flavor, expected_flavor))

                # Confirm the resize with Nova.
                LOG.debug("Instance %s calling Compute confirm resize..." % self.db_info.id)
                self.server.confirm_resize()
                # Record the new flavor_id in our database.
                LOG.debug("Updating instance %s to flavor_id %s." % (self.id, new_flavor_id))
                self.update_db(flavor_id=new_flavor_id)
            except PollTimeOut as pto:
                LOG.error("Timeout trying to resize the flavor for instance " " %s" % self.db_info.id)
            except Exception as ex:
                new_memory_size = old_memory_size
                LOG.error("Error during resize compute! Aborting action.")
                LOG.error(ex)
            finally:
                # Tell the guest to restart MySQL with the new RAM size.
                # This is in the finally because we have to call this, or
                # else MySQL could stay turned off on an otherwise usable
                # instance.
                LOG.debug("Instance %s starting mysql..." % self.db_info.id)
                self.guest.start_mysql_with_conf_changes(new_memory_size)
        finally:
            self.update_db(task_status=inst_models.InstanceTasks.NONE)
开发者ID:jcru,项目名称:reddwarf_lite,代码行数:57,代码来源:models.py


示例12: _create_volume

    def _create_volume(self, volume_size):
        LOG.info("Entering create_volume")
        LOG.debug(_("Starting to create the volume for the instance"))

        volume_support = config.Config.get("reddwarf_volume_support", 'False')
        LOG.debug(_("reddwarf volume support = %s") % volume_support)
        if (volume_size is None or
                utils.bool_from_string(volume_support) is False):
            volume_info = {
                'block_device': None,
                'device_path': None,
                'mount_point': None,
                'volumes': None,
            }
            return volume_info

        volume_client = create_nova_volume_client(self.context)
        volume_desc = ("mysql volume for %s" % self.id)
        volume_ref = volume_client.volumes.create(
            volume_size,
            display_name="mysql-%s" % self.id,
            display_description=volume_desc)

        # Record the volume ID in case something goes wrong.
        self.update_db(volume_id=volume_ref.id)

        utils.poll_until(
            lambda: volume_client.volumes.get(volume_ref.id),
            lambda v_ref: v_ref.status in ['available', 'error'],
            sleep_time=2,
            time_out=2 * 60)

        v_ref = volume_client.volumes.get(volume_ref.id)
        if v_ref.status in ['error']:
            raise VolumeCreationFailure()
        LOG.debug(_("Created volume %s") % v_ref)
        # The mapping is in the format:
        # <id>:[<type>]:[<size(GB)>]:[<delete_on_terminate>]
        # setting the delete_on_terminate instance to true=1
        mapping = "%s:%s:%s:%s" % (v_ref.id, '', v_ref.size, 1)
        bdm = config.Config.get('block_device_mapping', 'vdb')
        block_device = {bdm: mapping}
        volumes = [{'id': v_ref.id,
                    'size': v_ref.size}]
        LOG.debug("block_device = %s" % block_device)
        LOG.debug("volume = %s" % volumes)

        device_path = config.Config.get('device_path', '/dev/vdb')
        mount_point = config.Config.get('mount_point', '/var/lib/mysql')
        LOG.debug(_("device_path = %s") % device_path)
        LOG.debug(_("mount_point = %s") % mount_point)

        volume_info = {'block_device': block_device,
                       'device_path': device_path,
                       'mount_point': mount_point,
                       'volumes': volumes}
        return volume_info
开发者ID:hub-cap,项目名称:reddwarf_lite,代码行数:57,代码来源:models.py


示例13: _assert_guest_is_ok

 def _assert_guest_is_ok(self):
     # The guest will never set the status to PAUSED.
     self.instance._set_service_status_to_paused()
     # Now we wait until it sets it to anything at all,
     # so we know it's alive.
     utils.poll_until(
         self._guest_is_awake,
         sleep_time=2,
         time_out=RESIZE_TIME_OUT)
开发者ID:jcru,项目名称:reddwarf,代码行数:9,代码来源:models.py


示例14: _wait_for_nova_action

 def _wait_for_nova_action(self):
     # Wait for the flavor to change.
     def update_server_info():
         self.instance._refresh_compute_server_info()
         return self.instance.server.status != 'RESIZE'
     utils.poll_until(
         update_server_info,
         sleep_time=2,
         time_out=RESIZE_TIME_OUT)
开发者ID:jcru,项目名称:reddwarf,代码行数:9,代码来源:models.py


示例15: test_confirm_resize_fails

 def test_confirm_resize_fails(self):
     self._stop_mysql()
     self._nova_resizes_successfully()
     self.instance._set_service_status_to_paused()
     self.instance.service_status = ServiceStatuses.RUNNING
     utils.poll_until(mox.IgnoreArg(), sleep_time=2, time_out=120)
     self._start_mysql()
     self.server.status = "SHUTDOWN"
     self.instance.server.confirm_resize()
开发者ID:juicegit,项目名称:reddwarf,代码行数:9,代码来源:instances_resize.py


示例16: _wait_for_revert_nova_action

 def _wait_for_revert_nova_action(self):
     # Wait for the server to return to ACTIVE after revert.
     def update_server_info():
         self.instance._refresh_compute_server_info()
         return self.instance.server.status == 'ACTIVE'
     utils.poll_until(
         update_server_info,
         sleep_time=2,
         time_out=REVERT_TIME_OUT)
开发者ID:cp16net,项目名称:reddwarf-1,代码行数:9,代码来源:models.py


示例17: test_successful_migrate

 def test_successful_migrate(self):
     self._stop_mysql()
     self.server.migrate()
     self._server_changes_to("VERIFY_RESIZE", NEW_FLAVOR_ID)
     self.instance._set_service_status_to_paused()
     self.instance.service_status = ServiceStatuses.RUNNING
     utils.poll_until(mox.IgnoreArg(), sleep_time=2, time_out=120)
     self._start_mysql()
     self.instance.server.confirm_resize()
开发者ID:juicegit,项目名称:reddwarf,代码行数:9,代码来源:instances_resize.py


示例18: test_guest_is_not_okay

 def test_guest_is_not_okay(self):
     self._stop_db()
     self._nova_resizes_successfully()
     self.instance._set_service_status_to_paused()
     self.instance.service_status = ServiceStatuses.PAUSED
     utils.poll_until(mox.IgnoreArg(), sleep_time=2, time_out=120)\
         .AndRaise(PollTimeOut)
     self.instance.server.revert_resize()
     self._server_changes_to("ACTIVE", OLD_FLAVOR_ID)
     self.guest.restart()
开发者ID:DJohnstone,项目名称:trove,代码行数:10,代码来源:instances_resize.py


示例19: _server_changes_to

    def _server_changes_to(self, new_status, new_flavor_id):
        def change():
            self.server.status = new_status
            self.instance.server.flavor['id'] = new_flavor_id

        if not self.poll_until_mocked:
            self.mock.StubOutWithMock(utils, "poll_until")
            self.poll_until_mocked = True
        utils.poll_until(mox.IgnoreArg(), sleep_time=2, time_out=120)\
            .WithSideEffects(lambda ignore, sleep_time, time_out: change())
开发者ID:juicegit,项目名称:reddwarf,代码行数:10,代码来源:instances_resize.py


示例20: test_mysql_is_not_okay

 def test_mysql_is_not_okay(self):
     self._stop_mysql()
     self._nova_resizes_successfully()
     self.instance._set_service_status_to_paused()
     self.instance.service_status = ServiceStatuses.SHUTDOWN
     utils.poll_until(mox.IgnoreArg(), sleep_time=2, time_out=120)
     self._start_mysql()
     self.instance.server.revert_resize()
     self._server_changes_to("ACTIVE", OLD_FLAVOR_ID)
     self.guest.restart()
开发者ID:juicegit,项目名称:reddwarf,代码行数:10,代码来源:instances_resize.py



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python models.InstanceServiceStatus类代码示例发布时间:2022-05-26
下一篇:
Python utils.execute_with_timeout函数代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap