Tateru Machine Service API

The Tateru Machine Service is a repository of machine metadata and manager routing information.
More information: https://helloreverb.com
Contact Info: hello@helloreverb.com
Version: 0.0.7
Apache 2.0
http://www.apache.org/licenses/LICENSE-2.0.html

Access

Methods

[ Jump to Models ]

Table of Contents

Deploy

Inventory

Deploy

Up
post /v1/machines/{uuid}/boot-installer
makes a machine boot into the Tateru installer environment (bootInstaller)
Calling this action will cause a machine to boot into the Tateru installer environment, possibly by reconfiguring bootup order and doing a network boot.

Path parameters

uuid (required)
Path Parameter — The machine UUID to boot the installer on

Consumes

This API call consumes the following media types via the Content-Type request header:

Request body

body BootInstallerRequest (optional)
Body Parameter

Responses

200

the request succeeded

404

the requested machine was not found

409

the requested machine is already subject to another operation

500

the request failed

Up
get /v1/machines/{uuid}
fetch a known machine (fetchMachine)
Returns one specific active machine object.

Path parameters

uuid (required)
Path Parameter — The machine UUID to fetch

Return type

Machine

Example data

Content-Type: application/json
{
  "serialNumber" : "XYZ1234",
  "installerAddress" : "2001:db8::1234",
  "managedBy" : "http://tateru-vsphere.corp.local:7707/",
  "name" : "VMLNX01",
  "assetTag" : "00203",
  "uuid" : "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "sshPorts" : {
    "installer" : 22
  }
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

list of machine objects Machine

404

the requested machine was not found

Up
post /v1/machines/{uuid}/installer-callback
send an installation callback to notify Tateru that an installer has booted (installerCallback)
When the Tateru installation software has booted it will call this endpoint to provide inventory and address to be reached at. It will be provided with an SSH public key to allow as response.

Path parameters

uuid (required)
Path Parameter — The machine UUID the installer is running on

Consumes

This API call consumes the following media types via the Content-Type request header:

Request body

body CallbackRequest (optional)
Body Parameter

Return type

CallbackResponse

Example data

Content-Type: application/json
{
  "ssh_pub_key" : "ssh-ed25519 AAA[..]AAV user@laptop"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

the request succeeded CallbackResponse

404

the requested machine was not found

Inventory

Up
get /v1/machines/{uuid}
fetch a known machine (fetchMachine)
Returns one specific active machine object.

Path parameters

uuid (required)
Path Parameter — The machine UUID to fetch

Return type

Machine

Example data

Content-Type: application/json
{
  "serialNumber" : "XYZ1234",
  "installerAddress" : "2001:db8::1234",
  "managedBy" : "http://tateru-vsphere.corp.local:7707/",
  "name" : "VMLNX01",
  "assetTag" : "00203",
  "uuid" : "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "sshPorts" : {
    "installer" : 22
  }
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

list of machine objects Machine

404

the requested machine was not found

Up
get /v1/machines
fetches all known machines (fetchMachines)
Returns all currently active machine objects.

Query parameters

alias (optional)
Query Parameter — Filter on known aliases for machines (e.g. name)

Return type

array[Machine]

Example data

Content-Type: application/json
[ {
  "serialNumber" : "XYZ1234",
  "installerAddress" : "2001:db8::1234",
  "managedBy" : "http://tateru-vsphere.corp.local:7707/",
  "name" : "VMLNX01",
  "assetTag" : "00203",
  "uuid" : "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "sshPorts" : {
    "installer" : 22
  }
}, {
  "serialNumber" : "XYZ1234",
  "installerAddress" : "2001:db8::1234",
  "managedBy" : "http://tateru-vsphere.corp.local:7707/",
  "name" : "VMLNX01",
  "assetTag" : "00203",
  "uuid" : "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "sshPorts" : {
    "installer" : 22
  }
} ]

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

list of machine objects

Models

[ Jump to Methods ]

Table of Contents

  1. BootInstallerRequest
  2. CallbackRequest
  3. CallbackResponse
  4. Machine
  5. SSHPorts

BootInstallerRequest Up

nonce
String An arbitary string that is used to offer idempotency.
example: d290f1ff-6c54-4b01-90e6-d723748f0851
ssh_pub_key
String The SSH public key to allow SSH access to the installer environment
example: ssh-ed25519 AAA[..]AAV user@laptop

CallbackRequest Up

serialNumber (optional)
example: XYZ1234
assetTag (optional)
example: 00203
sshPorts

CallbackResponse Up

ssh_pub_key
example: ssh-ed25519 AAA[..]AAV user@laptop

Machine Up

uuid
UUID format: uuid
example: d290f1ee-6c54-4b01-90e6-d701748f0851
serialNumber (optional)
example: XYZ1234
assetTag (optional)
example: 00203
name (optional)
example: VMLNX01
managedBy (optional)
String URL of the manager that is the source of this machine record
example: http://tateru-vsphere.corp.local:7707/
installerAddress (optional)
String Address of the installer if known (populated by installer-callback)
example: 2001:db8::1234
sshPorts (optional)

SSHPorts Up

installer
example: 22