Skip to content
This repository has been archived by the owner on Jun 8, 2023. It is now read-only.

Commit

Permalink
Merge pull request #70 from BrettPowell/master
Browse files Browse the repository at this point in the history
Adding support for Memorystore Redis and Memcached
  • Loading branch information
jceresini authored Apr 1, 2021
2 parents 04952c7 + 4012a62 commit d457291
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 0 deletions.
38 changes: 38 additions & 0 deletions rpe/resources/gcp.py
Original file line number Diff line number Diff line change
Expand Up @@ -917,3 +917,41 @@ def _get_request_args(self):
'location': self._resource_data['location'],
'view': 'JOB_VIEW_DESCRIPTION'
}

class GcpRedisInstance(GoogleAPIResource):

service_name = "redis"
resource_path = "projects.locations.instances"
version = "v1"

required_resource_data = ['name', 'project_id', 'location']

resource_type = 'redis.googleapis.com/Instance'

def _get_request_args(self):
return {
'name': 'projects/{}/locations/{}/instances/{}'.format(
self._resource_data['project_id'],
self._resource_data['location'],
self._resource_data['name']
),
}

class GcpMemcacheInstance(GoogleAPIResource):

service_name = "memcache"
resource_path = "projects.locations.instances"
version = "v1"

required_resource_data = ['name', 'project_id', 'location']

resource_type = 'memcache.googleapis.com/Instance'

def _get_request_args(self):
return {
'name': 'projects/{}/locations/{}/instances/{}'.format(
self._resource_data['project_id'],
self._resource_data['location'],
self._resource_data['name']
),
}
22 changes: 22 additions & 0 deletions tests/test_resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@
from rpe.resources.gcp import GcpComputeFirewall
from rpe.resources.gcp import GcpComputeSubnetwork
from rpe.resources.gcp import GcpDataflowJob
from rpe.resources.gcp import GcpRedisInstance
from rpe.resources.gcp import GcpMemcacheInstance

test_project = "my_project"
test_resource_name = "my_resource"
Expand Down Expand Up @@ -244,6 +246,26 @@
resource_type='dataflow.googleapis.com/Job',
name='//dataflow.googleapis.com/projects/my_project/locations/us-central1/jobs/my_resource'
),
ResourceTestCase(
resource_data={
'name': test_resource_name,
'location': 'us-central1',
'project_id': test_project
},
cls=GcpRedisInstance,
resource_type='redis.googleapis.com/Instance',
name='//redis.googleapis.com/projects/my_project/locations/us-central1/instances/my_resource'
),
ResourceTestCase(
resource_data={
'name': test_resource_name,
'location': 'us-central1',
'project_id': test_project
},
cls=GcpMemcacheInstance,
resource_type='memcache.googleapis.com/Instance',
name='//memcache.googleapis.com/projects/my_project/locations/us-central1/instances/my_resource'
),
]


Expand Down
16 changes: 16 additions & 0 deletions tests/test_resources_cai.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@
from rpe.resources.gcp import GcpIamServiceAccount
from rpe.resources.gcp import GcpIamServiceAccountKey
from rpe.resources.gcp import GcpDataflowJob
from rpe.resources.gcp import GcpRedisInstance
from rpe.resources.gcp import GcpMemcacheInstance

client_kwargs = {
'credentials': Credentials(token='')
Expand Down Expand Up @@ -212,6 +214,20 @@
},
resource_cls=GcpDataflowJob
),
CaiTestCase(
data={
"name": "//redis.googleapis.com/projects/test-project/locations/us-central1/instances/test-resource",
"asset_type": "redis.googleapis.com/Instance",
},
resource_cls=GcpRedisInstance
),
CaiTestCase(
data={
"name": "//memcache.googleapis.com/projects/test-project/locations/us-central1/instances/test-resource",
"asset_type": "memcache.googleapis.com/Instance",
},
resource_cls=GcpMemcacheInstance
),
]


Expand Down

0 comments on commit d457291

Please sign in to comment.