Source code for rauc_hawkbit.ddi.cancel_action

# -*- coding: utf-8 -*-

from datetime import datetime
from enum import Enum


# status of the action execution
CancelStatusExecution = Enum('CancelStatusExecution',
                             'closed proceeding canceled scheduled rejected \
                             resumed')

# defined status of the result
CancelStatusResult = Enum('CancelStatusResultFinished',
                          'success failure none')


[docs]class Action(object): """ Represents /{tenant}/controller/v1/{targetid}/cancelAction/{actionId} in HawkBit's DDI API. """ def __init__(self, ddi, action_id): self.ddi = ddi self.action_id = action_id async def __call__(self): """ See http://sp.apps.bosch-iot-cloud.com/documentation/rest-api/rootcontroller-api-guide.html#_get_tenant_controller_v1_targetid_cancelaction_actionid # noqa """ return await self.ddi.get_resource( '/{tenant}/controller/v1/{controllerId}/cancelAction/{actionId}', actionId=self.action_id)
[docs] async def feedback(self, status_execution, status_result, status_details=()): """ See http://sp.apps.bosch-iot-cloud.com/documentation/rest-api/rootcontroller-api-guide.html#_post_tenant_controller_v1_targetid_cancelaction_actionid_feedback # noqa """ assert isinstance(status_execution, CancelStatusExecution), \ 'status_execution must be CancelStatusExecution' assert isinstance(status_result, CancelStatusResult), \ 'status_result must be CancelStatusResult enum' assert isinstance(status_details, (tuple, list)), \ 'status_details must be tuple or list' time = datetime.now().strftime('%Y%m%dT%H%M%S') post_data = { 'id': self.action_id, 'time': time, 'status': { 'result': { 'finished': status_result.name }, 'execution': status_execution.name, 'details': status_details } } return await self.ddi.post_resource( '/{tenant}/controller/v1/{controllerId}/cancelAction/{actionId}/feedback', post_data, actionId=self.action_id)
[docs]class CancelAction(object): """ Represents /{tenant}/controller/v1/{targetid}/cancelAction in HawkBit's DDI API. """ def __init__(self, ddi): self.ddi = ddi def __getitem__(self, key): action_id = key return Action(self.ddi, action_id)