Skip to main content

Outscale Gateway python SDK

Project description

Project Graduated

Outscale Python SDK

This python SDK helps you to perform actions on Outscale API.

You will need to have an Outscale account, please visit Outscale website.

Installation

You can install the pre-built python package through this command:

$ pip install osc-sdk-python

Building

To build the package yourself:

$ make package

You can then install it with:

$ pip install dist/osc_sdk_python-0.26.0-py3-none-any.whl

Configuration & Credentials

When you use the cli you can choose a profile. Profiles can be set with environment variables or in a file. It checks environment variables before loading the file.

In the file, you can set a default profile, naming default. It will be used if you don't precise profile in command line.

Environment variables

$ export OSC_ACCESS_KEY=<ACCESS_KEY>
$ export OSC_SECRET_KEY=<SECRET_KEY>
$ # optional
$ export OSC_REGION=<REGION> (default: eu-west-2)

Credentials files

$ cat ~/.osc/config.json
{
    "default": {
        "access_key": "<ACCESS_KEY>",
        "secret_key": "<SECRET_KEY>",
        "region": "<REGION>"
    },
    "profile_1": {
        "access_key": "<ACCESS_KEY>",
        "secret_key": "<SECRET_KEY>",
        "region": "<REGION>"
    },
    "profile_2": {
        "access_key": "<ACCESS_KEY>",
        "secret_key": "<SECRET_KEY>",
        "region": "<REGION>"
    }
}

Notes:

  • if ~/.osc/config.json is not found, ~/.oapi_credentials will be used
  • Environment variables have priority over Credentials files.

Basic Authentication

You can also use osc-sdk-python with basic authentication mechanism using your account's email and password. Note that some calls may be blocked with this method. More details in authentication documentation.

Example:

gw = Gateway(email="your@email.com", password="youAccountPassword")
keys = gw.ReadAccessKeys()

Example

A simple example which prints all your Virtual Machine and Volume ids.

from osc_sdk_python import Gateway

if __name__ == '__main__':
    gw = Gateway()

    print("your virtual machines:")
    for vm in gw.ReadVms()["Vms"]:
        print(vm["VmId"])

    print("\nyour volumes:")
    for volume in gw.ReadVolumes()["Volumes"]:
        print(volume["VolumeId"])

Usage example, check Outscale API documentation for more details.

from osc_sdk_python import Gateway

if __name__ == '__main__':
    gw = Gateway(**{'profile': 'profile_1'})

    # Calls with api Action as method
    result = gw.ReadSecurityGroups(Filters={'SecurityGroupNames': ['default']})
    result = gw.CreateVms(ImageId='ami-3e158364', VmType='tinav4.c2r4')

    # Or raw calls:
    result = gw.raw('ReadVms')
    result = gw.raw('CreateVms', ImageId='ami-xx', BlockDeviceMappings=[{'/dev/sda1': {'Size': 10}}], SecurityGroupIds=['sg-aaa', 'sg-bbb'], Wrong='wrong')

Another example with logs

from osc_sdk_python import *

if __name__ == '__main__':
    gw = Gateway(**{'profile': 'profile_1'})

    # what can contain LOG_KEEP_ONLY_LAST_REQ or LOG_ALL
    # here we pront log in memory, in standard output and in satndard error
    gw.log.config(type=LOG_MEMORY | LOG_STDIO | LOG_STDERR, what=LOG_KEEP_ONLY_LAST_REQ)
    # Or raw calls:
    result = gw.raw('ReadVms')

    last_request = gw.log.str()
    print(last_request)

Known Issues

UTF-8

Some people my encounter some issue with utf-8 which looks like this

Problem reading ()osc_sdk_python/osc-api/outscale.yaml:'ascii' codec can't decode byte 0xe2 in position 14856: ordinal not in range(128)

To avoid this issue, configure you locals as follow:

LC_ALL=en_US.UTF-8

if you don't want your locals to be set system wide you can proceed as follow:

LC_ALL=en_US.UTF-8 pip install osc-sdk-python

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

osc_sdk_python-0.26.0.tar.gz (73.0 kB view details)

Uploaded Source

Built Distribution

osc_sdk_python-0.26.0-py3-none-any.whl (73.5 kB view details)

Uploaded Python 3

File details

Details for the file osc_sdk_python-0.26.0.tar.gz.

File metadata

  • Download URL: osc_sdk_python-0.26.0.tar.gz
  • Upload date:
  • Size: 73.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for osc_sdk_python-0.26.0.tar.gz
Algorithm Hash digest
SHA256 7438f621d72f8f727ad762e3b5468ac728c7330d33d41e1f47ea140204881c7a
MD5 d633842deae39aabec18f1e677920b24
BLAKE2b-256 e2c49a031b5b6ec6213c0a70e5cbf4b8e880f58a2b29fb454e5e04bf67d6d4e8

See more details on using hashes here.

File details

Details for the file osc_sdk_python-0.26.0-py3-none-any.whl.

File metadata

File hashes

Hashes for osc_sdk_python-0.26.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3c602a690f7e57e3c01f529109d822eaafc1111cca354dcd1aa2b8d5b703c9dc
MD5 802357d93b18ec64cde8552b800232d5
BLAKE2b-256 2775428b2a881bb48ed82e39ea68326a93af5e4a87bef00105ff8931b51e3b27

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page