Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ package_dir =
packages = find:
python_requires = >=3.6
install_requires =
momento-wire-types==0.6.0
momento-wire-types==0.7.0
build
setuptools
pyjwt
Expand Down
6 changes: 1 addition & 5 deletions src/momento/_cache_service_errors_converter.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,8 @@
grpc.StatusCode.PERMISSION_DENIED: errors.PermissionError,
}

# Till the time MR2 stops returning errors in Enums
__ecache_result_to_error = {
cache_client_types.Bad_Request: errors.CacheValueError,
cache_client_types.Internal_Server_Error: errors.InternalServerError,
cache_client_types.Service_Unavailable: errors.InternalServerError,
cache_client_types.Unauthorized: errors.PermissionError,
cache_client_types.Invalid: errors.InternalServerError,
}


Expand Down
22 changes: 22 additions & 0 deletions src/momento/cache_operation_responses.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,25 @@ def __init__(self, grpc_create_cache_response):
class DeleteCacheResponse:
def __init__(self, grpc_delete_cache_response):
pass


class ListCachesResponse:
def __init__(self, grpc_list_cache_response):
self._next_token = grpc_list_cache_response.next_token if grpc_list_cache_response.next_token != '' else None
self._caches = []
for cache in grpc_list_cache_response.cache:
self._caches.append(CacheInfo(cache))

def next_token(self):
return self._next_token

def caches(self):
return self._caches


class CacheInfo:
def __init__(self, grpc_listed_caches):
self._name = grpc_listed_caches.cache_name

def name(self):
return self._name
11 changes: 10 additions & 1 deletion src/momento/momento.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import grpc
import momento_wire_types.controlclient_pb2_grpc as control_client

from momento_wire_types.controlclient_pb2 import CreateCacheRequest
from momento_wire_types.controlclient_pb2 import CreateCacheRequest, ListCachesRequest
from momento_wire_types.controlclient_pb2 import DeleteCacheRequest
from . import _cache_service_errors_converter
from . import errors
Expand All @@ -10,6 +10,7 @@
from . import _momento_endpoint_resolver
from .cache_operation_responses import CreateCacheResponse
from .cache_operation_responses import DeleteCacheResponse
from .cache_operation_responses import ListCachesResponse


class Momento:
Expand Down Expand Up @@ -61,6 +62,14 @@ def get_cache(self, cache_name, ttl_seconds, create_if_absent=False):
self.create_cache(cache_name)
return cache._connect()

def list_caches(self, next_token=None):
try:
list_caches_request = ListCachesRequest()
list_caches_request.next_token = next_token if next_token is not None else ''
return ListCachesResponse(self._client.ListCaches(list_caches_request))
except Exception as e:
raise _cache_service_errors_converter.convert(e)


def init(auth_token):
return Momento(auth_token)