Imports
List staged imports
Get a list of staged (in-progress) imports.
Response
200 OK
{
"timestamp": "2016-04-18T11:39:04.368857076-04:00",
"data": [
{
"id": "1",
"user_id": "1",
"created": "2016-04-18T11:39:00.267967449-04:00",
"updated": "2016-04-18T11:39:00.267967449-04:00",
"archive": "20160415113526.gz",
"path": "",
"url": "",
"insecure": false,
"size": 45594
}
]
}
Stage an import from a file upload
Stage an import from a file upload.
Example
Request must have a Content-Type header of multipart/form-data. The
request body must have a form key named file whose contents is the
file upload.
POST /api/v1/imports/
Content-Type: multipart/form-data; boundary=----CBacgHmUVPwTniJL
----CBacgHmUVPwTniJL
Content-Disposition: form-data; name="file"; filename="20160415113526.gz"
Content-Type: application/x-gzip
<file upload contents...>
----CBacgHmUVPwTniJL--
Response
200 OK
{
"timestamp": "2016-04-18T11:43:49.684797726-04:00",
"data": {
"id": "1",
"user_id": "1",
"created": "2016-04-18T11:39:00.267967449-04:00",
"updated": "2016-04-18T11:39:00.267967449-04:00",
"archive": "20160415113526.gz",
"path": "",
"url": "",
"insecure": false,
"size": 45594
}
}
Stage an import from a filesystem path
Stage an import from a filesystem path.
URL Parameters
| Name | Description |
|---|---|
path |
string (required) Filesystem path on CDRouter system |
Example
The path URL parameter must be a filesystem path on the CDRouter
system to an export archive.
POST /api/v1/imports/?path=/tmp/upload.gz
Response
200 OK
{
"timestamp": "2016-04-18T11:43:49.684797726-04:00",
"data": {
"id": "1",
"user_id": "1",
"created": "2016-04-18T11:39:00.267967449-04:00",
"updated": "2016-04-18T11:39:00.267967449-04:00",
"archive": "upload.gz",
"path": "",
"url": "",
"insecure": false,
"size": 45594
}
}
Stage an import from a URL
Stage an import from a URL to another CDRouter system.
URL Parameters
| Name | Description |
|---|---|
url |
string (required) URL to config, package or result on another CDRouter system |
token |
string (optional) If transferring from a CDRouter 10.0 or higher system, this must be a valid API token on the other system |
username |
string (optional) If transferring from a CDRouter 10.0 or higher system, this must be a valid API username on the other system |
password |
string (optional) If transferring from a CDRouter 10.0 or higher system, this must be a valid API password on the other system |
insecure |
boolean (optional) If true, allow connections to other CDRouter systems without valid certs, Default: false |
Example
The url URL parameter must be a URL to a config, package or result
on another CDRouter system and must take the form
http[s]://host/resource/id. A token URL parameter or username
and password URL parameters is required if the other CDRouter system
is running CDRouter 10.0 or higher and does not have Automatic Login
enabled.
Import config 123 from https://other.cdrouter.system using API
token deadbeef.
POST /api/v1/imports/?url=https://other.cdrouter.system/configs/123&token=deadbeef
Import package 456 from https://other.cdrouter.system using API
token deadbeef.
POST /api/v1/imports/?url=https://other.cdrouter.system/packages/456&token=deadbeef
Import result 20160329111012 from https://other.cdrouter.system using API
token deadbeef.
POST /api/v1/imports/?url=https://other.cdrouter.system/results/20160329111012&token=deadbeef
Response
200 OK
{
"timestamp": "2016-04-18T11:43:49.684797726-04:00",
"data": {
"id": "1",
"user_id": "1",
"created": "2016-04-18T11:39:00.267967449-04:00",
"updated": "2016-04-18T11:39:00.267967449-04:00",
"archive": "",
"path": "",
"url": "https://other.cdrouter.system/configs/123",
"insecure": false,
"size": 45
}
}
Get a staged import
Get a staged import.
Response
200 OK
{
"timestamp": "2016-04-18T11:43:49.684797726-04:00",
"data": {
"id": "1",
"user_id": "1",
"created": "2016-04-18T11:39:00.267967449-04:00",
"updated": "2016-04-18T11:39:00.267967449-04:00",
"archive": "20160415113526.gz",
"path": "",
"url": "",
"insecure": false,
"size": 45594
}
}
Response
404 Not Found
{
"error": "no such staged import"
}
Get a staged import’s commit request
Get a commit request for a staged import.
Response
200 OK
For each resource, import is set to true if the resource does not
already exist as indicated by the presence of the existing_id field.
{
"timestamp": "2016-04-18T11:43:49.684797726-04:00",
"data": {
"replace_existing": false,
"configs": {
"default.conf": {
"name": "",
"import": true
}
},
"packages": {
"one": {
"name": "",
"import": false,
"existing_id": "1027"
}
},
"results": {
"20160415113526": {
"import": false,
"existing_id": "20160415113526"
}
},
"tags": null
}
}
Response
404 Not Found
{
"error": "no such staged import"
}
Commit a staged import
Commit a staged import.
Example
The request body must be the staged import’s
commit request. Import a
resource from the staged import by setting its import field to
true. Configs and packages can be renamed on import by setting
their name field to a non-empty string. Setting the top-level
replace_existing to true will import all resources regardless of
whether they already exist or not (as indicated by the presence of the
existing_id field).
Additional tags can be added to imported resources by setting the
top-level tags field to an array of tag names.
POST /api/v1/imports/1/
{
"replace_existing": false,
"configs": {
"default.conf": {
"name": "",
"import": false
}
},
"packages": {
"one": {
"name": "",
"import": false,
"existing_id": "1027"
}
},
"results": {
"20160415113526": {
"import": false,
"existing_id": "20160415113526"
}
},
"tags": [
"one",
"two",
"three"
]
}
Response
200 OK
For each resource that was marked for import, the response field
indicates the result. For a successful import, imported will be
true, id will be the imported resource’s ID and name will be the
imported resource’s name. If a resource was not marked for import,
imported will be false and message will be skipped.
Otherwise, there was an error importing the resource. If the user did
not have sufficient privileges to import the resource, message will
be privileges. If the resource could not be imported because an
existing resource with the same name is locked, message will be
locked. Otherwise the message will contain further information
about the import error.
{
"timestamp": "2016-04-18T12:00:24.760548198-04:00",
"data": {
"replace_existing": false,
"configs": {
"default.conf": {
"name": "default.conf",
"import": false,
"response": {
"imported": false,
"message": "skipped"
}
}
},
"packages": {
"one": {
"name": "one",
"import": true,
"existing_id": "1027",
"response": {
"imported": true,
"id": "1027",
"name": "one"
}
}
},
"results": {
"20160415113526": {
"import": true,
"existing_id": "20160415113526",
"response": {
"imported": true,
"id": "20160415113526",
"name": "20160415113526"
}
}
},
"tags": [
"one",
"two",
"three"
]
}
}
Response
404 Not Found
{
"error": "no such staged import"
}
Delete a staged import
Delete a staged import.
Response
204 No Content