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.txtEach 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 exitFirst make sure your project has the library installed:
pip install -e git+https://github.com/byteinternet/hypernode-api-python.git@master#egg=hypernode_api_pythonOf 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:
fromhypernode_api_python.clientimportHypernodeAPIPythonclient=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