Yet Another OpenStack API wrapper
Ruby
Clone or download
Latest commit a6fd00f Aug 8, 2018
Permalink
Failed to load latest commit information.
lib
test
.gitignore
.rubocop.yml
.travis.yml
CHANGELOG.md
CODE_OF_CONDUCT.md
Gemfile
LICENSE.txt
README.md
Rakefile
yao-logo.png
yao.gemspec

README.md

Yao

Logo

YAO is a Yet Another OpenStack API Wrapper that rocks!! Build Status

Installation

Add this line to your application's Gemfile:

gem 'yao'

And then execute:

$ bundle

Or install it yourself as:

$ gem install yao

Usage

require 'yao'

Yao.configure do
  auth_url    "http://keystone.example.local:8080/v2.0"
  tenant_name "fooproject"
  username    "udzura"
  password    "tonk0tsu-r@men"

  # timeout is optional
  timeout     300

  # If your endpoint requires cert & key
  client_cert "/path/to/my.pem"
  client_key "/path/to/my.key"

  # If you want to change region
  region_name "FukuokaRegion"
end

Yao::Network.list # list up networks...
Yao::Server.list_detail # list up instances...

If you want to override some of endpoints by service, you can do:

Yao.configure do
  auth_url    "http://endpoint.example.com:12345/v2.0"
  tenant_name "example"
  username    "udzura"
  password    "XXXXXXXX"
  endpoints   identity: { public: "http://override-endpoint.example.com:35357/v3.0" }
end

Support policy

YAO supports rubies which are supported by Ruby Core Team. Please look into .travis.yml 's directive.

If you want to use YAO's full functionality, e.g Ruby 2.3 or below, please create an issue or a PR first (PR Recommended ;) ).

Pro tips

You can use a prittier namespace:

# Instead of require-ing 'yao'
require 'yao/is_openstack_client'

OpenStack.configure do
  auth_url    "http://keystone.example.local:8080/v2.0"
  tenant_name "fooproject"
  username    "udzura"
  password    "tonk0tsu-r@men"
end

OpenStack::Server.list_detail # And let's go on

Contributing

  1. Fork it ( https://github.com/yaocloud/yao/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request