Please note: this project is still in its early stages and the API may be subject to change.
git clone https://github.com/byteinternet/hypernode-api-python.git
cd hypernode-api-python
python3 -m venv venv
. venv/bin/activate
pip install -r requirements/development.txt
Each Hypernode has an API token associated with it, you can use that to talk to the API directly. You can find the token in /etc/hypernode/hypernode_api_token
. For API tokens with special permissions please contact [email protected]. Not all functionality in the API is currently generally available but if you'd like to start automating and have an interesting use-case we'd love to hear from you.
In the bin/
directory you'll find entry points to interact with the API directly from the commandline.
See for example:
$ export PYTHONPATH=.
$ ./bin/get_slas --help
usage: get_slas [-h]
List all available SLAs.
Example:
$ ./bin/get_slas
[
{
"id": 123,
"code": "sla-standard",
"name": "SLA Standard",
"price": 1234,
"billing_period": 1,
"billing_period_unit": "month"
},
...
]
optional arguments:
-h, --help show this help message and exit
First make sure your project has the library installed:
pip install -e git+https://github.com/byteinternet/hypernode-api-python.git@master#egg=hypernode_api_python
Of course you might want to put that in a requirements.txt
file in your project instead of installing it manually.
Alternatively, you can also install the hypernode-api-python library from PyPI:
$ python3 -m venv venv
$ . venv/bin/activate
$ pip install hypernode-api-python
$ pip freeze | grep hypernode-api-python
hypernode-api-python==0.0.6
Then to use the API client you can test out an example request in your Python repl:
from hypernode_api_python.client import HypernodeAPIPython
client = HypernodeAPIPython(token='yoursecrettoken')
response = client.get_app_flavor('yourhypernodeappname')
response.json()
{'name': '2CPU/8GB/60GB (Falcon S 202202)', 'redis_size': '1024'}
Using the Hypernode-API you can automate all kinds of cool things like configuring settings:
client.set_app_setting('yourhypernodeappname', 'php_version', '8.1').json()
{'name': 'yourhypernodeappname', 'type': 'persistent', 'php_version': '8.1', ...}
You can even perform acts of cloud automation, like scaling to the first next larger plan:
client.xgrade(
'yourhypernodeappname',
data={
'product': client.get_next_best_plan_for_app_or_404(
'yourhypernodeappname'
).json()['code']
}
)
To run the unit tests you can use tox
:
tox -r
- The official Hypernode API PHP Client
- The official Hypernode Deploy tool
- The official Hypernode Docker image