0.0
No commit activity in last 3 years
No release in over 3 years
Ruby SDK which wraps the open telekom cloud API
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
~> 3.0

Runtime

>= 0
 Project Readme

Open Telekom Cloud SDK for Ruby

Build Status

This is a small SDK which wraps the Open Telekom Cloud API. It currently supports only a limited amount of functionalities.

Configuration

The only way to currently authenticate with this library is via a user token. To obtain a token the API requires several credentials.

  • IAM username
  • IAM password
  • domainname (can be copied from the "My Credential" screen)
  • project ID (can be copied from the "My Credential" screen)
  • region of the project
Otc::Configuration.configure do |config|
  config.username = "testuser"
  config.password = "test1234"
  config.domainname = "OTC-EU-DE-001"
  config.project = "41234123"
  config.region = "eu-de"
end

General

All responses are wrapped by objects that hold their information via method accessors. Example:

ecs = Otc::ECS.query_one
ecs.name # => "cool-server"

Some information is cached for improved performance using memoization and is therefore not updated on subsequent calls.

Auto Scaling

Querying

Otc::ASGroup.query_all                           # get all auto scaling groups
Otc::ASGroup.query_all(name: "my_scaling_group") # get all auto scaling groups filtered by the given name
Otc::ASGroup.query_one                           # get the first auto scaling group
Otc::ASGroup.query_one(name: "my_scaling_group") # get the first auto scaling group filtered by the given name

# convenience methods
group = Otc::ASGroup.query_one(name: "my_scaling_group") # => #<Otc::ASGroup>
group.instances                                          # get all instances of the auto scaling group

EIP

Querying

Otc::EIP.query_all # get all EIPs

ECS

Querying

Otc::ECS.query_all                    # get all ecs
Otc::ECS.query_all(name: "my_server") # get all ecs filtered by the given name
Otc::ECS.query_one                    # get the first ecs
Otc::ECS.query_one(name: "my_server") # get the first ecs filtered by the given name

# convenience methods
ecs = Otc::ECS.query_one # => #<Otc::ECS>
ecs.public_ip            # => "160.44.232.150"

Known Issues

  • The API uses a limit for nearly every API request but the SDK does not support limits at the moment, so most query_all methods won't return all results.
  • Obtaining the public IP address of an ECS instance is rather cumbersome. There might be a better possibility than comparing the private IP of the ECS instance to the private IP of all EIPs.