Cacholong CLI, manage cloud environments at Cacholong!
Project description
CLI frontend
The API client library for managing various resources.
Getting started
To install this package you need to take a few steps before this works correctly
- Create an virtual environment: python3 -m venv
- Activate the environment: /bin/activate
- Now install the package: pip install cacholong-cloud-cli
- Or upgrade the package: pip install cacholong-cloud-cli --upgrade
Now you can use the command ccloud on the system. Please note, make sure to activate the virtual environment before running the command ccloud.
You will need an API-token. This token can be created using our panel at https://cp.cacholong.eu/#/user/settings/api. You can create an api token within your profile under API.
When running the command ccloud for the first time it will ask you for an API-token.
After that you will be able to run the following command:
ccloud accounts list
This will give you an overview of accounts where you have access to.
Usage
Overview of the possibilities:
ccloud --help
To fetch an overview of the dns-zones for an account:
ccloud dns-zones list --account <account uuid>
Creating a DNS-record:
ccloud dns-records create --dns-zone <dns-zone uuid> \
--name localhost.example.com \
--dns-record-type A \
--content 127.0.0.1 \
--ttl 300
Updating a DNS-record:
ccloud dns-records update <dns-record uuid> \
--content 127.0.0.1
Deleting a DNS-record:
ccloud dns-records delete <dns-record uuid>
Every command includes an option --help which will give an overview of the possibilities.
Advanced usage
Its also possible to create your own command line utility to handle various parts. Here are the same examples as above but now using python.
Fetching DNS-zones
import asyncio
from cacholong_sdk.connection import connection
from cacholong_sdk import ResourceTuple, Inclusion, Filter
from cacholong_sdk import DnsZone, DnsZoneModel, DnsRecord, DnsRecordModel
async def main():
async with connection('https://api.cacholong.eu/api/v1/', 'YOUR-API-TOKEN') as api:
searchfilter = Filter(account="UUID_OF_ACCOUNT")
DnsZoneCtrl = DnsZone(api)
async for zone in DnsZoneCtrl.fetch_all(searchfilter):
print(zone["domain"])
# Execute main function
asyncio.run(main())
Create a DNS-record
import asyncio
from cacholong_sdk.connection import connection
from cacholong_sdk import ResourceTuple, Inclusion, Filter
from cacholong_sdk import DnsZone, DnsZoneModel, DnsRecord, DnsRecordModel
async def main():
async with connection('https://api.cacholong.eu/api/v1/', 'YOUR-API-TOKEN') as api:
DnsRecordCtrl = DnsRecord(api)
dns_record = DNSRecordCtrl.create()
dns_record["dns-zone"] = ResourceTuple("UUID_DNS_ZONE", "dns-zones")
dns_record["name"] = "localhost.example.nl"
dns_record["dns_record_type"] = "A"
dns_record["content"] = "127.0.0.1"
dns_record["ttl"] = 300
await DNSRecordCtrl.store(dns_record)
# Execute main function
asyncio.run(main())
Update a DNS-record
import asyncio
from cacholong_sdk.connection import connection
from cacholong_sdk import ResourceTuple, Inclusion, Filter
from cacholong_sdk import DnsZone, DnsZoneModel, DnsRecord, DnsRecordModel
async def main():
async with connection('https://api.cacholong.eu/api/v1/', 'YOUR-API-TOKEN') as api:
DnsRecordCtrl = DnsRecord(api)
dns_record = await DnsRecordCtrl.fetch("UUID_OF_DNS_RECORD")
dns_record["content"] = "127.0.0.1"
# Be careful: the above change will be applied automatically
# Execute main function
asyncio.run(main())
Delete a DNS-record
import asyncio
from cacholong_sdk.connection import connection
from cacholong_sdk import ResourceTuple, Inclusion, Filter
from cacholong_sdk import DnsZone, DnsZoneModel, DnsRecord, DnsRecordModel
async def main():
async with connection('https://api.cacholong.eu/api/v1/', 'YOUR-API-TOKEN') as api:
DnsRecordCtrl = DnsRecord(api)
await DnsRecordCtrl.destroy("UUID_OF_DNS_RECORD")
# Execute main function
asyncio.run(main())
Support
Questions, feedback, or suggestions? Send us an email at [ccloud-support@cacholong.nl].
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cacholong_cloud_cli-1.3.0.tar.gz.
File metadata
- Download URL: cacholong_cloud_cli-1.3.0.tar.gz
- Upload date:
- Size: 42.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.2 CPython/3.11.13 Linux/6.1.0-42-amd64
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec166ad78b5fecac5e4925ddfaa4b4d906cffb887a2d9345fbc1b9087b8d4719
|
|
| MD5 |
5d68e5a10e7193d16b631859f64a0533
|
|
| BLAKE2b-256 |
6a4c0124018e19aa4839bb0ecbc5475d12500a89ba9b66a30f2afa77cd9ab3d0
|
File details
Details for the file cacholong_cloud_cli-1.3.0-py3-none-any.whl.
File metadata
- Download URL: cacholong_cloud_cli-1.3.0-py3-none-any.whl
- Upload date:
- Size: 86.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.2 CPython/3.11.13 Linux/6.1.0-42-amd64
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2450e91ad6aca4b8b28a8f944942fb35284e89183c4f0cf8598011f3110a306
|
|
| MD5 |
63e6a34fc3151dda5c743e95767e779f
|
|
| BLAKE2b-256 |
a01b2b664155b586ba6f6feae0430641e876c1caccc7b37817f5b7b751a614ad
|