예제 #1
0
def test_filter(shutdown_only):
    ray.init()

    @ray.remote
    class Actor:
        def __init__(self):
            self.obj = None

        def ready(self):
            pass

        def put(self):
            self.obj = ray.put(123)

        def getpid(self):
            import os

            return os.getpid()

    """
    Test basic case.
    """
    a = Actor.remote()
    b = Actor.remote()

    ray.get([a.ready.remote(), b.ready.remote()])
    ray.kill(b)

    def verify():
        result = list_actors(filters=[("state", "DEAD")])
        return len(result) == 1

    wait_for_condition(verify)
    """
    Test filter with different types (integer).
    """
    obj_1 = ray.put(123)  # noqa
    ray.get(a.put.remote())
    pid = ray.get(a.getpid.remote())

    def verify():
        # There's only 1 object.
        result = list_objects(
            filters=[("pid", pid), ("reference_type", "LOCAL_REFERENCE")])
        return len(result) == 1

    wait_for_condition(verify)
    """
    Test CLI
    """
    dead_actor_id = list(list_actors(filters=[("state", "DEAD")]))[0]
    alive_actor_id = list(list_actors(filters=[("state", "ALIVE")]))[0]
    runner = CliRunner()
    result = runner.invoke(list_state_cli_group,
                           ["actors", "--filter", "state", "DEAD"])
    assert result.exit_code == 0
    assert dead_actor_id in result.output
    assert alive_actor_id not in result.output
예제 #2
0
def test_limit(shutdown_only):
    ray.init()

    @ray.remote
    class A:
        def ready(self):
            pass

    actors = [A.remote() for _ in range(4)]
    ray.get([actor.ready.remote() for actor in actors])

    output = list_actors(limit=2)
    assert len(output) == 2

    # Make sure the output is deterministic.
    assert output == list_actors(limit=2)
예제 #3
0
파일: state_cli.py 프로젝트: tchordia/ray
def actors(ctx, format: str):
    url = ctx.obj["api_server_url"]
    format = AvailableFormat(format)
    print(
        get_state_api_output_to_print(
            list_actors(api_server_url=url, _explain=_should_explain(format)),
            format=format,
        )
    )
예제 #4
0
파일: test_metrics.py 프로젝트: parasj/ray
def test_actor_summary(serve_instance):
    @serve.deployment
    def f():
        pass

    serve.run(f.bind())
    actors = state_api.list_actors()
    class_names = {actor["class_name"] for actor in actors}
    assert class_names.issuperset(
        {"ServeController", "HTTPProxyActor", "ServeReplica:f"}
    )
예제 #5
0
def actors(ctx, format: str, filter: List[Tuple[str, str]]):
    url = ctx.obj["api_server_url"]
    format = AvailableFormat(format)
    print(
        get_state_api_output_to_print(
            list_actors(
                api_server_url=url,
                filters=filter,
                _explain=_should_explain(format),
            ),
            format=format,
        )
    )
예제 #6
0
def test_list_actors(shutdown_only):
    ray.init()

    @ray.remote
    class A:
        pass

    a = A.remote()  # noqa

    def verify():
        actor_data = list(list_actors().values())[0]
        correct_state = actor_data["state"] == "ALIVE"
        is_id_hex = is_hex(actor_data["actor_id"])
        correct_id = a._actor_id.hex() == actor_data["actor_id"]
        return correct_state and is_id_hex and correct_id

    wait_for_condition(verify)
    print(list_actors())
예제 #7
0
def actors(ctx):
    url = ctx.obj["api_server_url"]
    pprint(list_actors(url))
예제 #8
0
 def verify():
     actor_data = list(list_actors().values())[0]
     correct_state = actor_data["state"] == "ALIVE"
     is_id_hex = is_hex(actor_data["actor_id"])
     correct_id = a._actor_id.hex() == actor_data["actor_id"]
     return correct_state and is_id_hex and correct_id
예제 #9
0
 def verify():
     result = list_actors(filters=[("state", "DEAD")])
     return len(result) == 1
예제 #10
0
파일: state_cli.py 프로젝트: smorad/ray
def actors(ctx, format: str):
    url = ctx.obj["api_server_url"]
    print(
        get_state_api_output_to_print(list_actors(api_server_url=url),
                                      format=AvailableFormat(format)))