Skip to content

Syncano/syncano-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

209 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Syncano v4.0

Usage examples

Authentication

import syncano

# via email & password
connection = syncano.connect(email='', password='')

# via API key
connection = syncano.connect(api_key='')

# without SSL cert check
connection = syncano.connect(api_key='', verify_ssl=False)

Accessing models / endpoints

Each model is generated based on API schema and is available after connection initialization.

Instance = connection.Instance

Queries

# Get all instances
Instance.please.list()
Instance.please.all()

# Get only two instances
Instance.please.limit(2).list()

# Get raw JSON
Instance.please.raw().list()

# Get instance named syncano
Instance.please.get('syncano')
Instance.please.detail('syncano')

# Update instance named syncano
Instance.please.update('syncano', data={'description': 'new one'})

# Delete instance named syncano
Instance.please.delete('syncano')

# Create instance named test
Instance.please.create(name='test', description='test')

The same queries can be done via connection:

# Get all instances
connection.instances.list()
connection.instances.all()

# Get only two instances
connection.instances.limit(2).list()

# Get raw JSON
connection.instances.raw().list()

Model instance methods

# Create
instance = Instance(name='syncano', description='test')
instance.save()

instance = Instance()
instance.name = 'syncano'
instance.description = 'test'
instance.save()

# Update
instance.description = 'new one'
instance.save()

# Delete
instance.delete()

Related models

Based on HATEOAS links attached to each model ORM is creating relations to all of them.

instance = Instance.please.get('syncano')
instance.admins
instance.admins.raw()
instance.admins.create()
instance.admins.delete(4)

Relations

CodeBoxExecutionTrace is related to instance, codebox and codebox_schedule so model should have few aditional fields:

codebox = CodeBoxExecutionTrace()
codebox.instance_name = 'syncano'
codebox.codebox_id = 1
codebox.schedule_id = 2
codebox.save()

Connection juggling

connection = syncano.connect(email='', password='')
second_connection = syncano.connect(email='', password='')

# ORM
instances = connection.instances.using(second_connection).list()

# Model instance
instance = Instance()
instance.name = 'test'
instance.save(connection=second_connection)

Environmental variables

Some settings can be overwritten via environmental variables e.g:

$ export SYNCANO_LOGLEVEL=DEBUG
$ export SYNCANO_APIROOT='https://127.0.0.1/'
$ export SYNCANO_EMAIL=admin@syncano.com
$ export SYNCANO_PASSWORD=dummy
$ export SYNCANO_APIKEY=dummy123
$ export SYNCANO_INSTANCE=test

DEBUG loglevel will disbale SSL cert check.

About

Python library for http://syncano.com API

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors