Project

oslo

0.02
No release in over 3 years
OpenStack API Wrapper that rocks!!
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

 Project Readme

Yao

Logo

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

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 cacert,cert and key
  ca_cert "/path/to/my.ca"
  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 # 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 CI'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 # 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