Create an account on the CloudCIX Platform - Register
Retrieve your CloudCIX Memebr API Key - Under the My Membership tab in the sidebar, click on Member Details - The API Key be available at the top of the form
pip3 install -U "cloudcix>=5.0.0"
# File my_project/my_settings.py
CLOUDCIX_API_URL="https://legacyapi.api.cloudcix.com/"
CLOUDCIX_API_V2_URL="https://api.cloudcix.com/"
CLOUDCIX_API_VERSION="5.0"
CLOUDCIX_API_USERNAME="user@example.com" # Email Address registered in Prerequisites
CLOUDCIX_API_PASSWORD="" # Password for email registered
CLOUDCIX_API_KEY="" # CloudCIX Memebr API Key
# File my_project/script.py
import os
os.environ.setdefault('CLOUDCIX_SETTINGS_MODULE', 'my_settings')
# NOTE: environ variables must be set before importing cloudcix
from cloudcix.api.membership import Membership
from cloudcix.api.compute import Compute
# Get a util function to get a session using the credentials in your settings file
from cloudcix.auth import get_admin_token
# ================================================================= #
# Get CloudCIX Token #
# ================================================================= #
token = get_admin_token()
params = {'limit': 10, 'page': 0}
# ================================================================= #
# List Compute Projects #
# ================================================================= #
response = Compute.project.list(token=token, params=params)
# Print out the json of the response data
print(response.json()) # {'content': [...], '_metadata': {...}}
from cloudcix.rcc import comms_http, CONNECTION_ERROR
CLOUDCIX_API_SUCCESS_CODES = [200, 201, 204]
def success(response, payload_number): # Error check function
if response['channel_code'] == CONNECTION_ERROR:
print(f'{payload_number}: {response["channel_message"]}')
print(f'{payload_number}: {response["channel_error"]}')
return False
elif response['payload_code'] not in CLOUDCIX_API_SUCCESS_CODES:
print(f'{payload_number}: {response["payload_message"]}')
print(f'{payload_number}: {response["payload_error"]}')
return False
else:
return True
membership_url = 'https://membership.api.cloudcix.com/'
compute_url = 'https://compute.api.cloudcix.com/'
# ================================================================= #
# Get CloudCIX Token #
# ================================================================= #
# auth/login/
data = {
'email': '', # Email Address registered in Prerequisites
'password': '', # Password for account registered in Prerequisites
'api_key': '', # CloudCIX Memebr API Key
}
# response = requests.post(f'{membership_url}auth/login/', data=data)
response = comms_http(
url=f'{membership_url}auth/login/',
method='POST',
payload=data,
)
if not success(response, 1): # False
exit()
token = response['payload_message']['token'] # Valid for two hours
headers = {'X-Auth-Token': token} # Add token to headers
# ================================================================= #
# List Compute Projects #
# ================================================================= #
# response = requests.get(f'{compute_url}project/', headers=headers)
response = comms_http(
url=f'{compute_url}project/',
method='GET',
headers=headers,
)
if not success(response, 2): # False
exit()
projects = response['payload_message']['content']
for project in projects:
print(project['name'])