System and logs

The following resources and requests expose the rc_cube’s system-level API. They enable

  • access to log files (system-wide or component-specific)
  • access to information about the device and run-time statistics such as date, MAC address, clock-time synchronization status, and available resources;
  • management of installed software licenses; and
  • the rc_cube to be updated with a new firmware image.
GET /logs

Get list of available log files.

Template request

GET /api/v1/logs HTTP/1.1

Sample response

HTTP/1.1 200 OK
Content-Type: application/json

[
  {
    "date": 1503060035.0625782,
    "name": "rcsense-api.log",
    "size": 730
  },
  {
    "date": 1503060035.741574,
    "name": "stereo.log",
    "size": 39024
  },
  {
    "date": 1503060044.0475223,
    "name": "camera.log",
    "size": 1091
  }
]
Response Headers:
 
Status Codes:
  • 200 OK – successful operation (returns array of LogInfo)
Referenced Data Models:
 
GET /logs/{log}

Get a log file. Content type of response depends on parameter ‘format’.

Template request

GET /api/v1/logs/<log>?format=<format>&limit=<limit> HTTP/1.1

Sample response

HTTP/1.1 200 OK
Content-Type: application/json

{
  "date": 1581609251.8168414,
  "log": [
    {
      "component": "rc_gev_server",
      "level": "INFO",
      "message": "Application from IP 10.0.1.7 registered with control access.",
      "timestamp": 1581609249.61
    },
    {
      "component": "rc_gev_server",
      "level": "INFO",
      "message": "Application from IP 10.0.1.7 deregistered.",
      "timestamp": 1581609249.739
    },
    {
      "component": "rc_gev_server",
      "level": "INFO",
      "message": "Application from IP 10.0.1.7 registered with control access.",
      "timestamp": 1581609250.94
    },
    {
      "component": "rc_gev_server",
      "level": "INFO",
      "message": "Application from IP 10.0.1.7 deregistered.",
      "timestamp": 1581609251.819
    }
  ],
  "name": "gev.log",
  "size": 42112
}
Parameters:
  • log (string) – name of the log file (required)
Query Parameters:
 
  • format (string) – return log as JSON or raw (one of json, raw; default: json) (optional)
  • limit (integer) – limit to last x lines in JSON format (default: 100) (optional)
Response Headers:
 
Status Codes:
Referenced Data Models:
 
GET /system

Get system information on device.

Template request

GET /api/v1/system HTTP/1.1

Sample response

HTTP/1.1 200 OK
Content-Type: application/json

{
  "firmware": {
    "active_image": {
      "image_version": "rc_cube_v1.1.0"
    },
    "fallback_booted": true,
    "inactive_image": {
      "image_version": "rc_cube_v1.0.0"
    },
    "next_boot_image": "active_image"
  },
  "hostname": "rc-cube-02873515",
  "link_speed": 1000,
  "mac": "00:14:2D:2B:D8:AB",
  "ntp_status": {
    "accuracy": "48 ms",
    "synchronized": true
  },
  "ptp_status": {
    "master_ip": "",
    "offset": 0,
    "offset_dev": 0,
    "offset_mean": 0,
    "state": "off"
  },
  "ready": true,
  "serial": "02873515",
  "time": 1504080462.641875,
  "uptime": 65457.42
}
Response Headers:
 
Status Codes:
  • 200 OK – successful operation (returns SysInfo)
Referenced Data Models:
 
GET /system/license

Get information about licenses installed on device.

Template request

GET /api/v1/system/license HTTP/1.1

Sample response

HTTP/1.1 200 OK
Content-Type: application/json

{
  "components": {
    "hand_eye_calibration": true,
    "rectification": true,
    "stereo": true
  },
  "valid": true
}
Response Headers:
 
Status Codes:
  • 200 OK – successful operation (returns LicenseInfo)
Referenced Data Models:
 
POST /system/license

Update license on device with a license file.

Template request

POST /api/v1/system/license HTTP/1.1
Accept: multipart/form-data
Form Parameters:
 
  • file – license file (required)
Request Headers:
 
  • Accept – multipart/form-data
Status Codes:
GET /system/network

Get current network configuration.

Template request

GET /api/v1/system/network HTTP/1.1

Sample response

HTTP/1.1 200 OK
Content-Type: application/json

{
  "current_method": "DHCP",
  "default_gateway": "10.0.3.254",
  "ip_address": "10.0.1.41",
  "settings": {
    "dhcp_enabled": true,
    "persistent_default_gateway": "",
    "persistent_ip_address": "192.168.0.10",
    "persistent_ip_enabled": false,
    "persistent_subnet_mask": "255.255.255.0"
  },
  "subnet_mask": "255.255.252.0"
}
Response Headers:
 
Status Codes:
  • 200 OK – successful operation (returns NetworkInfo)
Referenced Data Models:
 
GET /system/network/settings

Get current network settings.

Template request

GET /api/v1/system/network/settings HTTP/1.1

Sample response

HTTP/1.1 200 OK
Content-Type: application/json

{
  "dhcp_enabled": true,
  "persistent_default_gateway": "",
  "persistent_ip_address": "192.168.0.10",
  "persistent_ip_enabled": false,
  "persistent_subnet_mask": "255.255.255.0"
}
Response Headers:
 
Status Codes:
  • 200 OK – successful operation (returns NetworkSettings)
Referenced Data Models:
 
PUT /system/network/settings

Set current network settings.

Template request

PUT /api/v1/system/network/settings HTTP/1.1
Accept: application/json

{}

Sample response

HTTP/1.1 200 OK
Content-Type: application/json

{
  "dhcp_enabled": true,
  "persistent_default_gateway": "",
  "persistent_ip_address": "192.168.0.10",
  "persistent_ip_enabled": false,
  "persistent_subnet_mask": "255.255.255.0"
}
Request JSON Object:
 
  • settings (NetworkSettings) – network settings to apply (required)
Request Headers:
 
Response Headers:
 
Status Codes:
  • 200 OK – successful operation (returns NetworkSettings)
  • 400 Bad Request – invalid/missing arguments
  • 403 Forbidden – Changing network settings forbidden because this is locked by a running GigE Vision application.
Referenced Data Models:
 
PUT /system/reboot

Reboot the device.

Template request

PUT /api/v1/system/reboot HTTP/1.1
Status Codes:
  • 200 OK – successful operation
GET /system/rollback

Get information about currently active and inactive firmware/system images on device.

Template request

GET /api/v1/system/rollback HTTP/1.1

Sample response

HTTP/1.1 200 OK
Content-Type: application/json

{
  "active_image": {
    "image_version": "rc_cube_v1.1.0"
  },
  "fallback_booted": false,
  "inactive_image": {
    "image_version": "rc_cube_v1.0.0"
  },
  "next_boot_image": "active_image"
}
Response Headers:
 
Status Codes:
  • 200 OK – successful operation (returns FirmwareInfo)
Referenced Data Models:
 
PUT /system/rollback

Rollback to previous firmware version (inactive system image).

Template request

PUT /api/v1/system/rollback HTTP/1.1
Status Codes:
GET /system/update

Get information about currently active and inactive firmware/system images on device.

Template request

GET /api/v1/system/update HTTP/1.1

Sample response

HTTP/1.1 200 OK
Content-Type: application/json

{
  "active_image": {
    "image_version": "rc_cube_v1.1.0"
  },
  "fallback_booted": false,
  "inactive_image": {
    "image_version": "rc_cube_v1.0.0"
  },
  "next_boot_image": "active_image"
}
Response Headers:
 
Status Codes:
  • 200 OK – successful operation (returns FirmwareInfo)
Referenced Data Models:
 
POST /system/update

Update firmware/system image with a mender artifact. Reboot is required afterwards in order to activate updated firmware version.

Template request

POST /api/v1/system/update HTTP/1.1
Accept: multipart/form-data
Form Parameters:
 
  • file – mender artifact file (required)
Request Headers:
 
  • Accept – multipart/form-data
Status Codes: