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


Python waiting.wait函数代码示例

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


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

示例1: _prepare_neutron_server_and_env

    def _prepare_neutron_server_and_env(self, net_count):
        """Prepares neutron service network count on dhcp agent
            and prepares env.

        :param net_count: how many networks musth dhcp agent handle
        """
        def _check_neutron_restart():
            try:
                self.os_conn.list_networks()['networks']
            except Exception as e:
                logger.debug(e)
                return False
            return True

        all_controllers = self.env.get_nodes_by_role('controller')
        for controller in all_controllers:
            with controller.ssh() as remote:
                res = self._apply_new_neutron_param_value(remote, net_count)
                error_msg = (
                    'Neutron service restart with new value failed, '
                    'exit code {exit_code},'
                    'stdout {stdout}, stderr {stderr}').format(**res)
                assert 0 == res['exit_code'], error_msg

        wait_msg = "Waiting for neutron is up"
        wait(
            lambda: _check_neutron_restart(),
            timeout_seconds=60 * 3,
            sleep_seconds=(1, 60, 5),
            waiting_for=wait_msg)

        self._prepare_openstack_state()
开发者ID:AlexGromov,项目名称:mos-integration-tests,代码行数:32,代码来源:test_ban_dhcp_agent.py

示例2: clear_l3_agent

    def clear_l3_agent(self, _ip, router_name, node, wait_for_alive=False):
        """Clear L3 agent ban and wait until router moved to this node

        Clear previously banned L3 agent on node wait until router moved
        to this node

        :param _ip: ip of server to to execute clear command
        :param router_name: name of router to wait until it move to node
        :param node: name of node to clear
        :param wait_for_alive:
        """
        router = self.os_conn.neutron.list_routers(
            name=router_name)['routers'][0]
        with self.env.get_ssh_to_node(_ip) as remote:
            remote.execute(
                "pcs resource clear p_neutron-l3-agent {0}".format(node))

        logger.info("Clear L3 agent on node {0}".format(node))

        # wait for l3 agent alive
        if wait_for_alive:
            wait(
                lambda: self.os_conn.get_l3_for_router(
                    router['id'])['agents'][0]['alive'] is True,
                timeout_seconds=60 * 3, waiting_for="L3 agent is alive",
                sleep_seconds=(1, 60)
            )
开发者ID:AlexGromov,项目名称:mos-integration-tests,代码行数:27,代码来源:test_l3_agent.py

示例3: test_predicate_sleeps_coelesce

def test_predicate_sleeps_coelesce(timeline, do_sleep):
    timeline.predicate_sleep = 0.5 if do_sleep else 0
    sleep_seconds = 2
    expected_sleep = sleep_seconds - timeline.predicate_sleep
    timeline.satisfy_after_time = 10
    waiting.wait(timeline.predicate, sleep_seconds=2)
    assert timeline.sleeps_performed == [expected_sleep for i in range(5)]
开发者ID:simudream,项目名称:waiting,代码行数:7,代码来源:test_predicate_sleeps.py

示例4: run_in_split

def run_in_split(self, cmd, resize, background):
    tree = self.i3.get_tree()
    focused = tree.find_focused()
    ws = focused.workspace_of()
    ws.focus()
    ws.split_vertical()
    proc = subproc.popen(cmd, async_=True)
    def focus_changed():
        new_focused = self.i3.get_tree().find_focused()
        return (new_focused != focused and new_focused != ws
                and new_focused.is_window)

    waiting.wait(
            focus_changed,
            timeout_seconds=2,
            sleep_seconds=0.1)
    new = self.i3.get_tree().find_focused()
    assert new != focused
    if resize:
        new.resize_set_ppt(height=resize)
    if background:
        focused.focus()
    status = proc.wait()
    print(status)
    sys.exit(status)
    return status
开发者ID:sergei-dyshel,项目名称:qyron-config,代码行数:26,代码来源:cli.py

示例5: __enter__

 def __enter__(self):
     try:
         waiting.wait(self._try_acquire)
         return self
     except:
         self.__exit__(*sys.exc_info())
         raise
开发者ID:omergertel,项目名称:chords,代码行数:7,代码来源:chord.py

示例6: reset_computes

    def reset_computes(self, hostnames, env_name):

        def get_hipervisors():
            return [x for x in self.os_conn.nova.hypervisors.list()
                    if x.hypervisor_hostname in hostnames]

        node_states = defaultdict(list)

        def is_nodes_started():
            for hypervisor in get_hipervisors():
                state = hypervisor.state
                prev_states = node_states[hypervisor.hypervisor_hostname]
                if len(prev_states) == 0 or state != prev_states[-1]:
                    prev_states.append(state)

            return all(x[-2:] == ['down', 'up'] for x in node_states.values())

        logger.info('Resetting computes {}'.format(hostnames))
        for hostname in hostnames:
            node = self.env.find_node_by_fqdn(hostname)
            devops_node = DevopsClient.get_node_by_mac(env_name=env_name,
                                                       mac=node.data['mac'])
            devops_node.reset()

        wait(is_nodes_started, timeout_seconds=10 * 60)
开发者ID:AlexGromov,项目名称:mos-integration-tests,代码行数:25,代码来源:test_dvr.py

示例7: wait_for_status

 def wait_for_status(self, status, timeout=EVENT_TIMEOUT):
     """Wait status value after transit statuses."""
     self.wait_for_presence()
     with self.cell('status') as cell:
         wait(lambda: cell.value not in self.transit_statuses,
              timeout_seconds=EVENT_TIMEOUT, sleep_seconds=0.1)
         assert cell.value == status
开发者ID:sergeychipiga,项目名称:horizon_autotests,代码行数:7,代码来源:table.py

示例8: check_vm_is_accessible_with_ssh

    def check_vm_is_accessible_with_ssh(self, vm_ip, username=None,
                                        password=None, pkeys=None):
        """Check that instance is accessible with ssh via floating_ip.

        :param vm_ip: floating_ip of instance
        :param username: username to login to instance
        :param password: password to connect to instance
        :param pkeys: private keys to connect to instance
        """
        error_msg = 'Instance with ip {0} is not accessible with ssh.'\
            .format(vm_ip)

        def is_accessible():
            try:
                with self.env.get_ssh_to_vm(
                        vm_ip, username, password, pkeys) as vm_remote:
                    vm_remote.execute("date")
                    return True
            except ssh_exception.SSHException:
                return False
            except ssh_exception.NoValidConnectionsError:
                return False

        wait(is_accessible,
             sleep_seconds=10, timeout_seconds=60,
             waiting_for=error_msg)
开发者ID:AlexGromov,项目名称:mos-integration-tests,代码行数:26,代码来源:base.py

示例9: check_vm_is_available

    def check_vm_is_available(self, vm,
                              username=None, password=None, pkeys=None):
        """Check that instance is available for connect from controller.

        :param vm: instance to ping from it compute node
        :param username: username to login to instance
        :param password: password to connect to instance
        :param pkeys: private keys to connect to instance
        """
        vm = self.os_conn.get_instance_detail(vm)
        srv_host = self.env.find_node_by_fqdn(
            self.os_conn.get_srv_hypervisor_name(vm)).data['ip']

        vm_ip = self.os_conn.get_nova_instance_ips(vm)['floating']

        with self.env.get_ssh_to_node(srv_host) as remote:
            cmd = "ping -c1 {0}".format(vm_ip)

            waiting_for_msg = (
                'Waiting for instance with ip {0} has '
                'connectivity from node with ip {1}.').format(vm_ip, srv_host)

            wait(lambda: remote.execute(cmd)['exit_code'] == 0,
                 sleep_seconds=10, timeout_seconds=3 * 10,
                 waiting_for=waiting_for_msg)
        return self.check_vm_is_accessible_with_ssh(
            vm_ip, username=username, password=password, pkeys=pkeys)
开发者ID:AlexGromov,项目名称:mos-integration-tests,代码行数:27,代码来源:base.py

示例10: assign_floating_ip

    def assign_floating_ip(self, srv, use_neutron=False):
        if use_neutron:
            #   Find external net id for tenant
            nets = self.neutron.list_networks()['networks']
            err_msg = "Active external network not found in nets:{}"
            ext_net_ids = [
                net['id'] for net in nets
                if net['router:external'] and net['status'] == "ACTIVE"]
            assert ext_net_ids, err_msg.format(nets)
            net_id = ext_net_ids[0]
            #   Find instance port
            ports = self.neutron.list_ports(device_id=srv.id)['ports']
            err_msg = "Not found active ports for instance:{}"
            assert ports, err_msg.format(srv.id)
            port = ports[0]
            #   Create floating IP
            body = {'floatingip': {'floating_network_id': net_id,
                                   'port_id': port['id']}}
            flip = self.neutron.create_floatingip(body)
            #   Wait active state for port
            port_id = flip['floatingip']['port_id']
            state = lambda: self.neutron.show_port(port_id)['port']['status']
            wait(lambda: state() == "ACTIVE")
            return flip['floatingip']

        fl_ips_pool = self.nova.floating_ip_pools.list()
        if fl_ips_pool:
            floating_ip = self.nova.floating_ips.create(
                pool=fl_ips_pool[0].name)
            self.nova.servers.add_floating_ip(srv, floating_ip)
            return floating_ip
开发者ID:AlexGromov,项目名称:mos-integration-tests,代码行数:31,代码来源:os_actions.py

示例11: go_to

    def go_to(self, item_names):
        """Go to page via navigate menu.

        Arguments:
            - item_names: list of items of navigate menu.
        """
        container = self
        last_name = item_names[-1]

        for item_name in item_names:
            item = ui.UI(
                By.XPATH, './li/a[contains(., "{}")]'.format(item_name))
            item.container = container

            if item_name == last_name:
                item.click()
                break

            sub_menu = ui.Block(
                By.XPATH,
                ('./li/ul[contains(@class, "collapse") and preceding-sibling'
                 '::a[contains(., "{}")]]'.format(item_name)))
            sub_menu.container = container

            if not _is_expanded(sub_menu):
                item.click()
                wait(lambda: _is_expanded(sub_menu),
                     timeout_seconds=10, sleep_seconds=0.1)

            container = sub_menu
开发者ID:sergeychipiga,项目名称:horizon_autotests,代码行数:30,代码来源:navigate_menu.py

示例12: test_set_image_disk_and_ram_size

    def test_set_image_disk_and_ram_size(self, horizon, create_image):
        """Verify that image limits has influence to flavor choice."""
        ram_size = 1024
        disk_size = 4

        image_name = next(generate_ids('image', length=20))
        create_image(image_name, min_disk=disk_size, min_ram=ram_size)

        with horizon.page_images as page:
            page.table_images.row(
                name=image_name).dropdown_menu.item_default.click()

            with page.form_launch_instance as form:
                form.item_flavor.click()
                wait(lambda: form.tab_flavor.table_available_flavors.rows,
                     timeout_seconds=30, sleep_seconds=0.1)

                for row in form.tab_flavor.table_available_flavors.rows:

                    ram_cell = row.cell('ram')
                    if get_size(ram_cell.value, to='mb') < ram_size:
                        assert ram_cell.label_alert.is_present
                    else:
                        assert not ram_cell.label_alert.is_present

                    disk_cell = row.cell('root_disk')
                    if get_size(disk_cell.value, to='gb') < disk_size:
                        assert disk_cell.label_alert.is_present
                    else:
                        assert not disk_cell.label_alert.is_present
                form.cancel()
开发者ID:sergeychipiga,项目名称:horizon_autotests,代码行数:31,代码来源:test_images.py

示例13: test_nexted_stop_iteration_preserve_traceback

def test_nexted_stop_iteration_preserve_traceback():
    expected_exception = StopIteration('foo')

    def predicate():
        raise expected_exception

    with pytest.raises(StopIteration) as ex:
        waiting.wait(predicate, timeout_seconds=0)
    assert '        raise expected_exception' in ex.traceback[-1].statement.lines
开发者ID:vmalloc,项目名称:waiting,代码行数:9,代码来源:test_waiting.py

示例14: test_nexted_stop_iteration_preserve_exception

def test_nexted_stop_iteration_preserve_exception():
    expected_exception = StopIteration('foo')

    def predicate():
        raise expected_exception

    with pytest.raises(StopIteration) as ex:
        waiting.wait(predicate, timeout_seconds=0)
    assert ex.value is expected_exception
开发者ID:vmalloc,项目名称:waiting,代码行数:9,代码来源:test_waiting.py

示例15: test_wait_any_satisfied_on_start

def test_wait_any_satisfied_on_start(predicates, forge, timeline):
    for index, p in enumerate(predicates):
        works = (index == 2)
        p().and_return(works)
        if works:
            break
    forge.replay()
    waiting.wait(waiting.ANY(predicates))
    assert timeline.virtual_time == 0
开发者ID:vmalloc,项目名称:waiting,代码行数:9,代码来源:test_waiting.py


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