stephenmoloney / openstex

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

Home Page:https://hexdocs.pm/openstex

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

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

https://hexdocs.pm/openstex

License:MIT License


Languages

Language:Elixir 100.0%