Class: EasyManager::Scaleway
- Inherits:
-
Object
- Object
- EasyManager::Scaleway
- Defined in:
- lib/easymanager/scaleway/main.rb,
lib/easymanager/scaleway/ips.rb,
lib/easymanager/scaleway/config.rb,
lib/easymanager/scaleway/servers.rb
Overview
Scaleway Class with global methods
Defined Under Namespace
Instance Attribute Summary collapse
-
#api_url ⇒ Object
readonly
Returns the value of attribute api_url.
-
#headers ⇒ Object
readonly
Returns the value of attribute headers.
-
#project ⇒ Object
readonly
Returns the value of attribute project.
-
#provider ⇒ Object
readonly
Returns the value of attribute provider.
-
#secret_token ⇒ Object
readonly
Returns the value of attribute secret_token.
-
#zone ⇒ Object
readonly
Returns the value of attribute zone.
Instance Method Summary collapse
- #create(options) ⇒ Object
- #delete(srv) ⇒ Object
- #delete_by_id(id) ⇒ Object
-
#initialize(options) ⇒ Scaleway
constructor
A new instance of Scaleway.
- #list ⇒ Object
- #srv_ready?(srv, ssh) ⇒ Boolean
- #status(srv) ⇒ Object
- #wait_until_ready!(srv, ssh, timeout = 600) ⇒ Object
Constructor Details
#initialize(options) ⇒ Scaleway
Returns a new instance of Scaleway.
12 13 14 15 16 17 18 |
# File 'lib/easymanager/scaleway/main.rb', line 12 def initialize() @secret_token = [:secret_token] @zone = [:zone] @project = [:project] @api_url = 'https://api.scaleway.com/' @headers = { 'X-Auth-Token' => @secret_token, 'Content-Type' => 'application/json' } end |
Instance Attribute Details
#api_url ⇒ Object (readonly)
Returns the value of attribute api_url.
10 11 12 |
# File 'lib/easymanager/scaleway/main.rb', line 10 def api_url @api_url end |
#headers ⇒ Object (readonly)
Returns the value of attribute headers.
10 11 12 |
# File 'lib/easymanager/scaleway/main.rb', line 10 def headers @headers end |
#project ⇒ Object (readonly)
Returns the value of attribute project.
10 11 12 |
# File 'lib/easymanager/scaleway/main.rb', line 10 def project @project end |
#provider ⇒ Object (readonly)
Returns the value of attribute provider.
10 11 12 |
# File 'lib/easymanager/scaleway/main.rb', line 10 def provider @provider end |
#secret_token ⇒ Object (readonly)
Returns the value of attribute secret_token.
10 11 12 |
# File 'lib/easymanager/scaleway/main.rb', line 10 def secret_token @secret_token end |
#zone ⇒ Object (readonly)
Returns the value of attribute zone.
10 11 12 |
# File 'lib/easymanager/scaleway/main.rb', line 10 def zone @zone end |
Instance Method Details
#create(options) ⇒ Object
24 25 26 27 28 29 30 31 32 |
# File 'lib/easymanager/scaleway/main.rb', line 24 def create() srv_type = [:srv_type] || 'DEV1-S' image = [:image] || 'ubuntu-jammy' name_pattern = [:name_pattern] || 'scw-easymanager-__RANDOM__' = [:tags] || [] cloud_init = [:cloud_init] || false Servers.create(self, srv_type, image, name_pattern, , cloud_init) end |
#delete(srv) ⇒ Object
34 35 36 |
# File 'lib/easymanager/scaleway/main.rb', line 34 def delete(srv) Servers.delete(self, srv['id'], srv['public_ip']['id']) end |
#delete_by_id(id) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/easymanager/scaleway/main.rb', line 38 def delete_by_id(id) response = nil servers = list servers.each do |server| next unless server['id'] == id response = delete(server) end response end |
#list ⇒ Object
20 21 22 |
# File 'lib/easymanager/scaleway/main.rb', line 20 def list Servers.list(self) end |
#srv_ready?(srv, ssh) ⇒ Boolean
55 56 57 |
# File 'lib/easymanager/scaleway/main.rb', line 55 def srv_ready?(srv, ssh) Servers.ready?(self, srv, ssh, srv_ready_cmds) end |
#status(srv) ⇒ Object
51 52 53 |
# File 'lib/easymanager/scaleway/main.rb', line 51 def status(srv) Servers.status(self, srv['id']) end |
#wait_until_ready!(srv, ssh, timeout = 600) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/easymanager/scaleway/main.rb', line 59 def wait_until_ready!(srv, ssh, timeout = 600) ready = false start = Time.now loop do ready = srv_ready?(srv, ssh) break if ready || Utilities.elapsed_times(Time.now.to_s, start.to_s) >= timeout sleep(30) end ready end |