# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc

from chromiumos.test.api import cros_tool_runner_container_service_pb2 as chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2


class CrosToolRunnerContainerServiceStub(object):
    """Exposes common docker commands as services
    """

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.CreateNetwork = channel.unary_unary(
                '/chromiumos.test.api.CrosToolRunnerContainerService/CreateNetwork',
                request_serializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.CreateNetworkRequest.SerializeToString,
                response_deserializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.CreateNetworkResponse.FromString,
                )
        self.GetNetwork = channel.unary_unary(
                '/chromiumos.test.api.CrosToolRunnerContainerService/GetNetwork',
                request_serializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.GetNetworkRequest.SerializeToString,
                response_deserializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.GetNetworkResponse.FromString,
                )
        self.Shutdown = channel.unary_unary(
                '/chromiumos.test.api.CrosToolRunnerContainerService/Shutdown',
                request_serializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.ShutdownRequest.SerializeToString,
                response_deserializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.ShutdownResponse.FromString,
                )
        self.LoginRegistry = channel.unary_unary(
                '/chromiumos.test.api.CrosToolRunnerContainerService/LoginRegistry',
                request_serializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.LoginRegistryRequest.SerializeToString,
                response_deserializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.LoginRegistryResponse.FromString,
                )
        self.StartContainer = channel.unary_unary(
                '/chromiumos.test.api.CrosToolRunnerContainerService/StartContainer',
                request_serializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.StartContainerRequest.SerializeToString,
                response_deserializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.StartContainerResponse.FromString,
                )
        self.StartTemplatedContainer = channel.unary_unary(
                '/chromiumos.test.api.CrosToolRunnerContainerService/StartTemplatedContainer',
                request_serializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.StartTemplatedContainerRequest.SerializeToString,
                response_deserializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.StartContainerResponse.FromString,
                )
        self.StackCommands = channel.unary_unary(
                '/chromiumos.test.api.CrosToolRunnerContainerService/StackCommands',
                request_serializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.StackCommandsRequest.SerializeToString,
                response_deserializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.StackCommandsResponse.FromString,
                )
        self.GetContainer = channel.unary_unary(
                '/chromiumos.test.api.CrosToolRunnerContainerService/GetContainer',
                request_serializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.GetContainerRequest.SerializeToString,
                response_deserializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.GetContainerResponse.FromString,
                )


class CrosToolRunnerContainerServiceServicer(object):
    """Exposes common docker commands as services
    """

    def CreateNetwork(self, request, context):
        """Creates a docker network
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetNetwork(self, request, context):
        """Retrieves info of a docker network
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Shutdown(self, request, context):
        """Shuts down CTR container service
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def LoginRegistry(self, request, context):
        """Logs in a docker image registry server
        Call LoginRegistry before StartContainer to avoid permission denied errors.
        For login GCR, a client is required to run proper `gcloud auth` command to
        generate a token. For service account, the command is `gcloud auth
        activate-service-account`; for local development, the command is `gcloud
        auth login`.
        Note that the token is short lived for an hour.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StartContainer(self, request, context):
        """Runs a docker container with the provided start command.
        This assumes docker is already authenticated to pull the supplied image.
        The container will run in detached mode (-d); all exposed ports will be
        published to a random port on host (-P); and the container will be removed
        after it stops (--rm).
        StartContainer always returns a success response (for valid requests) as
        detached mode starts a container in the background. Clients may call
        GetContainer to verify the container has successfully started before use.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StartTemplatedContainer(self, request, context):
        """Runs a docker container that has a template implemented. A template
        simplifies the data required in the request, and provides placeholders to
        populate information that is only known at runtime. E.g. dynamically mapped
        port number, IP address of a container.
        A template implementation converts the request to the generic
        StartContainer endpoint, and returns the generic StartContainerResponse.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StackCommands(self, request, context):
        """Executes a stack of commands in order. Only certain commands are supported.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetContainer(self, request, context):
        """Retrieves information of a container
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_CrosToolRunnerContainerServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'CreateNetwork': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateNetwork,
                    request_deserializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.CreateNetworkRequest.FromString,
                    response_serializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.CreateNetworkResponse.SerializeToString,
            ),
            'GetNetwork': grpc.unary_unary_rpc_method_handler(
                    servicer.GetNetwork,
                    request_deserializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.GetNetworkRequest.FromString,
                    response_serializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.GetNetworkResponse.SerializeToString,
            ),
            'Shutdown': grpc.unary_unary_rpc_method_handler(
                    servicer.Shutdown,
                    request_deserializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.ShutdownRequest.FromString,
                    response_serializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.ShutdownResponse.SerializeToString,
            ),
            'LoginRegistry': grpc.unary_unary_rpc_method_handler(
                    servicer.LoginRegistry,
                    request_deserializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.LoginRegistryRequest.FromString,
                    response_serializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.LoginRegistryResponse.SerializeToString,
            ),
            'StartContainer': grpc.unary_unary_rpc_method_handler(
                    servicer.StartContainer,
                    request_deserializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.StartContainerRequest.FromString,
                    response_serializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.StartContainerResponse.SerializeToString,
            ),
            'StartTemplatedContainer': grpc.unary_unary_rpc_method_handler(
                    servicer.StartTemplatedContainer,
                    request_deserializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.StartTemplatedContainerRequest.FromString,
                    response_serializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.StartContainerResponse.SerializeToString,
            ),
            'StackCommands': grpc.unary_unary_rpc_method_handler(
                    servicer.StackCommands,
                    request_deserializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.StackCommandsRequest.FromString,
                    response_serializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.StackCommandsResponse.SerializeToString,
            ),
            'GetContainer': grpc.unary_unary_rpc_method_handler(
                    servicer.GetContainer,
                    request_deserializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.GetContainerRequest.FromString,
                    response_serializer=chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.GetContainerResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'chromiumos.test.api.CrosToolRunnerContainerService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class CrosToolRunnerContainerService(object):
    """Exposes common docker commands as services
    """

    @staticmethod
    def CreateNetwork(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/chromiumos.test.api.CrosToolRunnerContainerService/CreateNetwork',
            chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.CreateNetworkRequest.SerializeToString,
            chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.CreateNetworkResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetNetwork(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/chromiumos.test.api.CrosToolRunnerContainerService/GetNetwork',
            chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.GetNetworkRequest.SerializeToString,
            chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.GetNetworkResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Shutdown(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/chromiumos.test.api.CrosToolRunnerContainerService/Shutdown',
            chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.ShutdownRequest.SerializeToString,
            chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.ShutdownResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def LoginRegistry(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/chromiumos.test.api.CrosToolRunnerContainerService/LoginRegistry',
            chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.LoginRegistryRequest.SerializeToString,
            chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.LoginRegistryResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def StartContainer(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/chromiumos.test.api.CrosToolRunnerContainerService/StartContainer',
            chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.StartContainerRequest.SerializeToString,
            chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.StartContainerResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def StartTemplatedContainer(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/chromiumos.test.api.CrosToolRunnerContainerService/StartTemplatedContainer',
            chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.StartTemplatedContainerRequest.SerializeToString,
            chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.StartContainerResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def StackCommands(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/chromiumos.test.api.CrosToolRunnerContainerService/StackCommands',
            chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.StackCommandsRequest.SerializeToString,
            chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.StackCommandsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetContainer(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/chromiumos.test.api.CrosToolRunnerContainerService/GetContainer',
            chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.GetContainerRequest.SerializeToString,
            chromiumos_dot_test_dot_api_dot_cros__tool__runner__container__service__pb2.GetContainerResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
