IBM Cloud Python SDK
Project description
IBM Cloud Python SDK
ibmcloud-python-sdk
aims to talk to IBM Cloud. To do this, it requires a configuration file. ibmcloud-python-sdk
favours clouds.yaml
file, but can also use environment variables (see below). An example:
---
clouds:
default: demo-acc
demo-acc:
profile: demo
description: Credentials from my IBM Cloud demo account
key: XxX1234567890XxX
region: us-south
version: 2021-06-15
generation: 2
cis_username: 000000_sponge.bob@sink.com
cis_apikey: abc123def456ghi789klm0n
prod-acc:
profile: prod
description: Credentials from my IBM Cloud production account
key: zZz1234567890zZz
region: us-south
version: 2021-06-15
generation: 2
cis_username: 999999_sponge.bob@sink.com
cis_apikey: @@abc123def456ghi789klm0n@@
The clouds.yaml
file will be searched at first into ~/.ibmcloud
directory but this behavior could be overrided by an environment variable.
Environment variables
Variable | Description | Example | Mandatory |
---|---|---|---|
IC_CONFIG_FILE |
Absolute path to the clouds.yaml file |
~/vault/ibm.yaml |
[ ] |
IC_CONFIG_NAME |
Name of the default cloud configuration | demo |
[ ] |
IC_REGION |
Region were to connect | us-south |
[x] |
IC_VERSION |
Requests the version of the API | 2021-06-15 |
[x] |
IC_GENERATION |
The infrastructure generation for the request | 2 |
[x] |
IC_SDK_CONFIG_FILE |
Absolute path to the sdk.yaml file |
~/.config/ibmcloud/sdk.yaml |
[ ] |
IC_API_KEY |
API key created via the IBM Cloud IAM system | XxX1234567890XxX |
[x] |
SL_USERNAME |
SoftLayer user | goldyfruit |
[ ] |
SL_API_KEY |
SoftLayer API key | abc123def456ghi789klm0n |
[ ] |
Documentation
Documentation for the IBM Cloud Python SDK is available here.
IBM Cloud Python SDK leverages existing Python SDKs such as:
Supported features
Only VPC Gen 2 is supported by this SDK.
Service | Feature |
---|---|
CIS | Baremetal, Object Storage |
DNS | Public Zone, Private Zone |
EM | Get Account, Get Enterprise |
IAM | Policies, Roles |
POWER | Power System |
RESOURCE | Binding, Group, Instance, Key |
VPC | ACL, FIP, Gateway, Geo, Image, Instance, Key, Load Balancer, Security, Subnet, Volume, VPC, VPN |
Installation
Install from PyPi via pip
:
python -m venv ~/virtualenvs/ibmcloud-python-sdk
source ~/virtualenvs/ibmcloud-python-sdk/bin/activate
pip install ibmcloud-python-sdk
Or you can install from source:
cd ~/Git
git clone https://github.com/goldyfruit/ibmcloud-python-sdk.git
python -m venv ~/virtualenvs/ibmcloud-python-sdk
source ~/virtualenvs/ibmcloud-python-sdk/bin/activate
cd ~/Git/ibmcloud-python-sdk
pip install .
We recommend to use Python virtual environment to install the SDK.
Caching
The SDK has caching capability (memcached
only for now) to improve the HTTP requests speed. To enable this mechanisim please configure the SDK properly using ~/.ibmcloud/sdk.yaml
file.
---
sdk:
cache_ttl: 60
memcached:
- 127.0.0.1:11211
Muttiple cache servers could be configured as well.
---
sdk:
cache_ttl: 60
memcached:
- 127.0.0.1:11211
- 127.0.0.1:11212
- 127.0.0.1:11213
An easy way to deploy memcached
server is to use container.
Podman
podman run -dt -p 11211:11211 --name memcached -d memcached
Docker
sudo docker run -dt -p 11211:11211 --name memcached -d memcached
Examples
A list of examples on how to use this SDK can be found at here.
List VPCs
from ibmcloud_python_sdk.vpc import vpc as ic
vpc = ic.Vpc()
vpc.get_vpc("ibmcloud-vpc-baby")
Create a VPC instance
from ibmcloud_python_sdk.vpc import vpc as icv
from ibmcloud_python_sdk.resource import resource_group as icr
import sys
# Variables
vpc_name = 'ibmcloud-vpc-baby'
resource_group_name = 'ibmcloud-resource-group-baby'
# Intentiate classes
vpc = icv.Vpc()
rg = icr.ResourceGroup()
# Retrieve resource group ID and check for error
resource_group_info = rg.get_resource_group(resource_group_name)
if 'errors' in resource_group_info:
print(resource_group_info['errors'])
sys.exit()
# Create the VPC based on variable and resource group ID
response = vpc.create_vpc(
name=vpc_name,
resource_group=resource_group_info['id'],
address_prefix_management='auto',
classic_access=True
)
# Check for error during the VPC creation process
if 'errors' in response:
print(response['errors'])
else:
print(response)
FAQ
CRN
orHREF
could not be used as ID to retrieve resourcesPATCH
method (update) is not yet supported which means a resource cannot be updated
Copyright
See the bundled LICENSE file for more information.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file ibmcloud-python-sdk-1.1.2.tar.gz
.
File metadata
- Download URL: ibmcloud-python-sdk-1.1.2.tar.gz
- Upload date:
- Size: 77.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43d25a60ff0ef57bb946f8df9dfec8c11bd7d7eadb2b81ea0a72962111d657d3 |
|
MD5 | d78b146094c171fa8e91a3ead44711f8 |
|
BLAKE2b-256 | 5e9a7f6ae2eec653d79fabd39519232f99792bc33fb6c0c95f6128ae95f973b3 |