Activities MQTT Contract

SUBMIT request

Request
ANSIBLE-V1/SUBMIT

Activity Submit request metrics names: (*=required)

  • String PROP_REQUESTER_CLIENT_ID = "requester.client.id"; (*)
  • String PROP_OPERATION_ID = "id"; (*)
  • String PROP_DOWNLOAD_URL = "download.url"; (*)
  • String PROP_DOWNLOAD_BLOCK_SIZE = "download.block.size";
  • String PROP_DOWNLOAD_BLOCK_TIMEOUT = "download.block.timeout";
  • String PROP_DOWNLOAD_BLOCK_DELAY = "download.block.delay";
  • String PROP_DOWNLOAD_NOTIFY_BLOCK_SIZE = "download.notify.block.size";
  • String PROP_DOWNLOAD_TIMEOUT = "download.timeout";
  • String PROP_DOWNLOAD_RESUME = "download.resume"; (default false)
  • String PROP_DOWNLOAD_USERNAME = "download.username";
  • String PROP_DOWNLOAD_PASSWORD = "download.password";
  • String PROP_DOWNLOAD_HASH = "download.hash";
  • String PROP_NOTIFY_LOG_LEVEL = "notify.log.level"; (default INFO)
  • String PROP_RESOURCE_PROPS = "resource.props";

Activity Property names persisted:

  • String NOTIFICATION_PUBLISHER_PID_PROP_NAME = "notification.publisher.pid";
  • String NOTIFICATION_APP_ID = "notification.app.id";
  • String NEXT_EVENT_INDEX_PROP_NAME = "next.event.index";
  • String ID_PROP_NAME = "id";
  • String CLIENT_ID_PROP_NAME = "client.id";
  • String REQUESTOR_CLIENT_ID_PROP_NAME = "requestor.client.id";
  • String NOTIFICATION_LEVEL_PROP_NAME = "notification.level";
  • String STATUS_PROP_NAME = "status";
  • String NOTIFICATION_MESSAGE_BUILDER_PID_PROP_NAME = "notification.message.builder.pid";
  • String PROP_DOWNLOAD_URL = "download.url";
  • String PROP_DOWNLOAD_BLOCK_SIZE = "download.block.size";
  • String PROP_DOWNLOAD_BLOCK_TIMEOUT = "download.block.timeout";
  • String PROP_DOWNLOAD_BLOCK_DELAY = "download.block.delay";
  • String PROP_DOWNLOAD_NOTIFY_BLOCK_SIZE = "download.notify.block.size";
  • String PROP_DOWNLOAD_TIMEOUT = "download.timeout";
  • String PROP_DOWNLOAD_RESUME = "download.resume";
  • String PROP_DOWNLOAD_USERNAME = "download.username";
  • String PROP_DOWNLOAD_PASSWORD = "download.password";
  • String PROP_DOWNLOAD_HASH = "download.hash";
  • String PROP_RESOURCE_PROPS = "resource.props";
  • String RESOURCE_DOWNLOAD_PATH = "download.path";
  • String START_DATE = "start.date";
  • String END_DATE = "end.date";
NotificationLevel {
    TRACE,
    INFO,
    DISABLED;
}

GET Request

Request
ANSIBLE-V1/GET/activities

Response

{
  "activities": [
    {
      "id" : "1234567890",
      "start.date": "{aDate}" 
      "end.date": "{aDate}" 
      "status": WORKING/SUCCESSFUL/FAILED/CANCELLED
      "notificationLevel": INFO/TRACE/DISABLED
      "download.url"
      "download.block.size"
      "download.block.timeout"
      "download.block.delay"
      "download.notify.block.size"
      "download.timeout"
      "download.resume"
      "download.username"
      "download.password"
      "download.hash"
      "resourceProperties" : "
              {dp.version = 1.0.500, "username" = "asd", "password" = "qwe"}
      "
    }
  ]
}

CANCEL request

Request
ANSIBLE-V1/CANCEL

Activity Cancel request metrics names: (*=required)

  • String PROP_OPERATION_ID = "id"; (*)

Notification Message

public class AnsibleKuraNotificationPayload extends KuraPayload {

    public static final String METRIC_ID = "id";
    public static final String METRIC_SEQUENCE = "sequence";
    public static final String METRIC_STATE = "state";
    public static final String METRIC_START = "start";
    public static final String METRIC_PROGRESS = "progress";
    public static final String METRIC_MESSAGE = "message";
    public static final String METRIC_MESSAGE_DETAILS = "details";
}

Considering the NotificationLevel enum defined as follows:

NotificationLevel {
    TRACE,
    INFO,
    DISABLED;
}
  • METRIC_MESSAGE and METRIC_MESSAGE_DETAILS are not added to the notification message if NotificationLevel.DISABLED.
  • METRIC_MESSAGE_DETAILS is not added to the notification message if NotificationLevel.INFO
  • METRIC_MESSAGE and METRIC_MESSAGE_DETAILS are both added to the notification message NotificationLevel.TRACE