Skip to content

Openstex is a client in the elixir language for Openstack compliant APIS.

License

Notifications You must be signed in to change notification settings

stephenmoloney/openstex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Openstex Hex Version Hex docs License Build Status

An elixir client for making requests to Openstack compliant apis.

Supported services

Openstack Service Supported
Identity 2.0 (Keystone) ✔️
Object Storage 1.0 (Swift) ✔️

Features

1. Request modules for generating HTTPipe.Conn.t structs which can subsequently be sent

to the API using a request function.

  • Example - creating a new container
account = Client.Swift.get_account()
conn = Openstex.Swift.V1.create_container("new_container", account)
client.request(conn)

2. Helper modules for

a. One liners for sending queries to the client API.

  • Example - Uploading a file
file_path = Path.join(Path.expand(__DIR__, "priv/test.json")
Client.Swift.upload_file(file_path, server_object, container,

b. Sending more complex queries such as multi-step queries to the client API.

  • Example - Getting all objects in a pseudofolder recursively, [nested: :true] will check for objects recursively in deeper folders.
file_path = Path.join(Path.expand(__DIR__, "priv/test.json")
Client.Swift.list_objects("nested_folder", "new_container", [nested: :true])

3. Adapter modules for

All of the above Adapters provide access to Swift Object Storage services which are (mostly) openstack compliant.

Installation and Getting Started

Adapter Getting started
Ovh Adapter openstex_adapters_ovh
Rackspace Adapter openstex_adapters_rackspace

Tests

  • mix test

Available Services

Tables Version Status
Identity (Keystone) , overview, api v2 ✔️
Identity (Keystone) , overview, api v3
Object Storage (Swift) , overview, api v1 ✔️

Openstack api reference

TODO

  • improve the docs for some of the functions
  • add tests for genserver workings in Openstex.Adapters.Bypass.Keystone
  • add tests for Openstex.Keystone.V2.HelpersTest
  • add tests for Openstex.Swift.V1 with the execution of the HTTPipe.Conn structs with bypass. `

Licence

MIT Licence