Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

LISA API should be extended with three additional methods: lock, unlock, getLockInfo. Those methods are used by entity which manages application state (AWC) to block any operations (uninstall) on application during it's active state (started, suspended). Lock is performed with id, version of the application, lock owner and lock reason, we are only blocking specific version of application.

...

When LISA's client (DAC Manager, UI) will request to uninstall application which is currently used (locked) by AWC following error will be returned:

Code Block
languagejsonyml
{
  "code": 1009,
  "message": "ERROR_APP_ACTIVE"
}

...

If AWC will try to activate (lock) application during ongoing uninstallation procedure, following error will be returned

Code Block
languagejsonyml
{
  "code": 1010,
  "message": "ERROR_APP_UNINSTALLING"
}

...

API Schema


Code Block
languagejsonyml
titleLISA API Extension JSON-RPC2.0 Schema
collapsetrue
{
  "$schema": "interface.schema.json",
  "jsonrpc": "2.0",
  "info": {
    "title": "Lisa API",
    "class": "Lisa",
    "description": "Lisa JSON-RPC interface",
    "version": "0.0.2"
  },
  "common": {
    "$ref": "common.json"
  },
  "methods": {
    "lock": {
      "summary": "Lock application",
      "description": "Lock and take control over application state until unlock is called",
      "params": {
        "type": "object",
        "properties": {
          "type": {
            "description": "Application type (mime-type)",
            "type": "string",
            "example": "application/vnd.rdk-app.dac.native"
          }, 
          "id": {
            "description": "id of the application, assumed reverse domain name notation, the id should match the [ASMS application id](https://wikiprojects.upc.biz/display/SPARK/ASMS+API+specification)",
            "type": "string",
            "example": "com.libertyglobal.app.awesome"
          },
          "version": {
            "description": "version of the application",
            "type": "string",
            "example": "1.0.0"
          },
          "owner": {
            "description": "Owner of the lock",
            "type": "string",
            "example": "awc"
          },
          "reason": {
            "description": "Reason for the lock",
            "type": "string",
            "example": "active"
          }
        },
        "required": [
          "type",
          "id",
          "version"
        ]
      },
      "result": {
        "type": "object",
        "properties": {
          "handle": {
            "type": "string",
            "example": "a76a9ad56769634dbbc9c54bac15ddb9"
          }
        },
        "required": [
          "handle"
        ]
      },
      "errors": [
        {
          "description": "WrongParams",
          "code": 1001,
          "message": "Request not accepted because of wrong parameters"
        },
        {
          "description": "Initializing",
          "code": 1004,
          "message": " LISA is performing initialization, wait for operationStatus event"
        },
        {
          "code": 1009,
          "message": "ERROR_APP_ACTIVE"
        },
        {
          "code": 1010,
          "message": "ERROR_APP_UNINSTALLING"
        }
      ]
    },
    "unlock": {
      "summary": "Unlock application",
      "description": "Unlock application and make it available to be used by other components",
      "params": {
        "type": "object",
        "properties": {
          "handle": {
            "type": "string",
            "example": "a76a9ad56769634dbbc9c54bac15ddb9"
          }
        },
        "required": [
          "handle"
        ]
      },
      "result": {
        "type": "object",
        "properties": {}
      },
      "errors": [
        {
          "description": "WrongParams",
          "code": 1001,
          "message": "Request not accepted because of wrong parameters"
        },
        {
          "description": "Initializing",
          "code": 1004,
          "message": " LISA is performing initialization, wait for operationStatus event"
        },
        {
          "description": "WrongHandle",
          "code": 1007,
          "message": "The handle is not correct, e.g. the operation has finished."
        }
      ]
    },
    "getLockInfo": {
      "summary": "Get lock details",
      "description": "Returns info about lock owner and lock reason",
      "params": {
        "type": "object",
        "properties": {
          "type": {
            "description": "Application type (mime-type)",
            "type": "string",
            "example": "application/vnd.rdk-app.dac.native"
          },  
          "id": {
            "description": "id of the application, assumed reverse domain name notation, the id should match the [ASMS application id](https://wikiprojects.upc.biz/display/SPARK/ASMS+API+specification)",
            "type": "string",
            "example": "com.libertyglobal.app.awesome"
          },
          "version": {
            "description": "version of the application",
            "type": "string",
            "example": "1.0.0"
          }
        },
        "required": [
          "type",
          "id",
          "version"
        ]
      },
      "result": {
        "type": "object",
        "properties": {
          "owner": {
            "description": "Owner of the lock",
            "type": "string",
            "example": "awc"
          },
          "reason": {
            "description": "Reason for the lock",
            "type": "string",
            "example": "active"
          }
        }
      },
      "errors": [
        {
          "description": "WrongParams",
          "code": 1001,
          "message": "Request not accepted because of wrong parameters"
        },
        {
          "description": "Initializing",
          "code": 1004,
          "message": " LISA is performing initialization, wait for operationStatus event"
        },
        {
          "description": "WrongHandle",
          "code": 1007,
          "message": "The handle is not correct, e.g. the operation has finished."
        }
      ]
    }
  },
  "events": {
    "operationStatus": {
      "summary": "Completion of asynchronous operation.",
      "description": "Notification sent on the completion of asynchronous operation.",
      "params": {
        "type": "object",
        "properties": {
          "handle": {
            "type": "string",
            "example": "4c4712a4141d261ec0ca8f9037950685"
          },
          "operation": {
            "description": "Operation producing the event (Installing, Uninstalling)",
            "type": "string",
            "example": "Installing"
          },
          "type": {
            "description": "Application type (mime-type)",
            "type": "string",
            "example": "application/vnd.rdk-app.dac.native"
          },  
          "id": {
            "description": "id of the application, assumed reverse domain name notation, the id should match the [ASMS application id](https://wikiprojects.upc.biz/display/SPARK/ASMS+API+specification)",
            "type": "string",
            "example": "com.libertyglobal.app.awesome"
          },
          "version": {
            "description": "version of the application",
            "type": "string",
            "example": "1.0.0"
          },
          "status": {
            "description": "Status of the operation (Success, Failed, Progress, Cancelled)",
            "type": "string",
            "example": "Success" 
          },
          "details": {
            "type": "string",
            "example": "Downloaded 2342 KB, unpacked 3233 KB"
          }
        },
        "required": [
          "handle",
          "operation",
          "type",
          "id",
          "version",
          "status"
        ]
      }
    }
  }
}

...