def DELETE(self, request, tenantId, serverId, subscriptionId): try: ruleManager = RuleManager.RuleManager() ruleManager.orionClient = orion_client.orion_client() ruleManager.unsubscribe_to_rule(serverId, subscriptionId) return HttpResponse() except ObjectDoesNotExist as err: return HttpResponse(json.dumps({"itemNotFound": {"code": 404, "message": str(err)}}, indent=4), status=404) except Exception as err: return HttpResponseServerError(json.dumps({"serverFault": {"code": 500, "message": str(err)}}, indent=4))
def GET(self, request, tenantId, serverId, subscriptionId): # Should return the specified rule of server try: ruleManager = RuleManager.RuleManager() ruleManager.orionClient = orion_client.orion_client() rule = ruleManager.get_subscription(tenantId, serverId, subscriptionId) return HttpResponse(json.dumps(vars(rule), cls=DateEncoder, indent=4)) except ObjectDoesNotExist as err: return HttpResponse(json.dumps({"itemNotFound": {"code": 404, "message": str(err)}}, indent=4), status=404) except Exception as err: return HttpResponseServerError(json.dumps({"serverFault": {"code": 500, "message": str(err)}}, indent=4))
def POST(self, request, tenantId, serverId): try: ruleManager = RuleManager.RuleManager() ruleManager.orionClient = orion_client.orion_client() subscriptionId = ruleManager.subscribe_to_rule(tenantId, serverId, request.body) return HttpResponse(json.dumps({"serverId": serverId, "subscriptionId": str(subscriptionId)}, indent=4)) except ObjectDoesNotExist as err: return HttpResponse(json.dumps({"itemNotFound": {"code": 404, "message": str(err)}}, indent=4), status=404) except Conflict as err: return HttpResponse(json.dumps({"conflict": {"code": 409, "message": err.message}}, indent=4), status=409) except ValidationError as err: return HttpResponseBadRequest(json.dumps({"badRequest": {"code": 400, "message": err.messages[0]}}, indent=4)) except Exception as err: return HttpResponseServerError(json.dumps({"serverFault": {"code": 500, "message": str(err)}}, indent=4))