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)Each model is generated based on API schema and is available after connection initialization.
Instance = connection.Instance# 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()# 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()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)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 = 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)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.