moto/moto/servicediscovery/responses.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

173 lines
6.4 KiB
Python
Raw Normal View History

"""Handles incoming servicediscovery requests, invokes methods, returns responses."""
import json
from moto.core.responses import BaseResponse
from .models import servicediscovery_backends
class ServiceDiscoveryResponse(BaseResponse):
2022-08-13 09:49:43 +00:00
def __init__(self):
super().__init__(service_name="servicediscovery")
@property
def servicediscovery_backend(self):
"""Return backend instance specific for this region."""
2022-08-13 09:49:43 +00:00
return servicediscovery_backends[self.current_account][self.region]
def list_namespaces(self):
namespaces = self.servicediscovery_backend.list_namespaces()
return 200, {}, json.dumps({"Namespaces": [ns.to_json() for ns in namespaces]})
def create_http_namespace(self):
params = json.loads(self.body)
name = params.get("Name")
creator_request_id = params.get("CreatorRequestId")
description = params.get("Description")
tags = params.get("Tags")
operation_id = self.servicediscovery_backend.create_http_namespace(
name=name,
creator_request_id=creator_request_id,
description=description,
tags=tags,
)
return json.dumps(dict(OperationId=operation_id))
def delete_namespace(self):
params = json.loads(self.body)
namespace_id = params.get("Id")
operation_id = self.servicediscovery_backend.delete_namespace(
namespace_id=namespace_id
)
return json.dumps(dict(OperationId=operation_id))
def list_operations(self):
operations = self.servicediscovery_backend.list_operations()
return (
200,
{},
json.dumps({"Operations": [o.to_json(short=True) for o in operations]}),
)
def get_operation(self):
params = json.loads(self.body)
operation_id = params.get("OperationId")
operation = self.servicediscovery_backend.get_operation(
operation_id=operation_id
)
return json.dumps(dict(Operation=operation.to_json()))
def get_namespace(self):
params = json.loads(self.body)
namespace_id = params.get("Id")
namespace = self.servicediscovery_backend.get_namespace(
namespace_id=namespace_id
)
return json.dumps(dict(Namespace=namespace.to_json()))
def tag_resource(self):
params = json.loads(self.body)
resource_arn = params.get("ResourceARN")
tags = params.get("Tags")
self.servicediscovery_backend.tag_resource(resource_arn=resource_arn, tags=tags)
return json.dumps(dict())
def untag_resource(self):
params = json.loads(self.body)
resource_arn = params.get("ResourceARN")
tag_keys = params.get("TagKeys")
self.servicediscovery_backend.untag_resource(
resource_arn=resource_arn, tag_keys=tag_keys
)
return json.dumps(dict())
def list_tags_for_resource(self):
params = json.loads(self.body)
resource_arn = params.get("ResourceARN")
tags = self.servicediscovery_backend.list_tags_for_resource(
resource_arn=resource_arn
)
return 200, {}, json.dumps(tags)
def create_private_dns_namespace(self):
params = json.loads(self.body)
name = params.get("Name")
creator_request_id = params.get("CreatorRequestId")
description = params.get("Description")
vpc = params.get("Vpc")
tags = params.get("Tags")
properties = params.get("Properties")
operation_id = self.servicediscovery_backend.create_private_dns_namespace(
name=name,
creator_request_id=creator_request_id,
description=description,
vpc=vpc,
tags=tags,
properties=properties,
)
return json.dumps(dict(OperationId=operation_id))
def create_public_dns_namespace(self):
params = json.loads(self.body)
name = params.get("Name")
creator_request_id = params.get("CreatorRequestId")
description = params.get("Description")
tags = params.get("Tags")
properties = params.get("Properties")
operation_id = self.servicediscovery_backend.create_public_dns_namespace(
name=name,
creator_request_id=creator_request_id,
description=description,
tags=tags,
properties=properties,
)
return json.dumps(dict(OperationId=operation_id))
def create_service(self):
params = json.loads(self.body)
name = params.get("Name")
namespace_id = params.get("NamespaceId")
creator_request_id = params.get("CreatorRequestId")
description = params.get("Description")
dns_config = params.get("DnsConfig")
health_check_config = params.get("HealthCheckConfig")
health_check_custom_config = params.get("HealthCheckCustomConfig")
tags = params.get("Tags")
service_type = params.get("Type")
service = self.servicediscovery_backend.create_service(
name=name,
namespace_id=namespace_id,
creator_request_id=creator_request_id,
description=description,
dns_config=dns_config,
health_check_config=health_check_config,
health_check_custom_config=health_check_custom_config,
tags=tags,
service_type=service_type,
)
return json.dumps(dict(Service=service.to_json()))
def get_service(self):
params = json.loads(self.body)
service_id = params.get("Id")
service = self.servicediscovery_backend.get_service(service_id=service_id)
return json.dumps(dict(Service=service.to_json()))
def delete_service(self):
params = json.loads(self.body)
service_id = params.get("Id")
self.servicediscovery_backend.delete_service(service_id=service_id)
return json.dumps(dict())
def list_services(self):
services = self.servicediscovery_backend.list_services()
return json.dumps(dict(Services=[s.to_json() for s in services]))
def update_service(self):
params = json.loads(self.body)
service_id = params.get("Id")
details = params.get("Service")
operation_id = self.servicediscovery_backend.update_service(
service_id=service_id, details=details
)
return json.dumps(dict(OperationId=operation_id))