lxc-query
v1.0.13
Published
A Node.js LXD client which uses your local instance of LXD and "lxc query" to manage your local or remote LXD servers.
Downloads
60
Maintainers
Readme
LXC Query
A Node.js LXD client which uses your local instance of LXD and lxc query
to manage your local or remote LXD servers.
You must be using >= LXD 2.17
Install
Require this package with npm using the following command:
$ npm i lxc-query
Usage
Essentially you can do any LXD operation with the single lxc.query
method, or you can use the helper methods which cover all the LXD endpoints.
Parameters & Call
| Parameter | Type | Description | Default | | ---------- | ------------- | ------------- | ------------- | | remote | string | LXD remote and endpoint | local | | rest method | string | e.g GET, POST, DELETE, PUT, PATCH | GET | | payload | object | json string | Rest json payload | | | mutator | function | Pre-resolve mutation function | |
const lxc = require('lxc-query')
lxc.query('remote:/1.0', 'GET', {}).then(response => {
console.log(response)
})
Express example
Using express you can map the rest calls to the lib as shown below:
const lxc = require('lxc-query')
const express = require('express')
const app = express()
app.all('/*', (req, res) => {
lxc.query(req.url.substr(1), req.method, req.body).then(response => res.json(response))
})
app.listen(3000)
So using the above if you visited http://127.0.0.1:3000/local:/1.0/containers
it would proxy it though to local LXD server, list containers.. You could do this for any rest method or LXD endpoint, with the addition that local:
can be any of your defined remotes!
Check out the LXD RESTapi, for more information.
Contributing
Please see CONTRIBUTING for details.
Developer Support / Sponsor
If you want to show your appreciation, please feel free to make a donation https://www.paypal.me/lcherone, thanks.
Credits
License
The MIT License (MIT). Please see License File for more information.
Links
Check out LXD-UI - A simple easy to use GUI for your local LXD server.