Class: Tengine::Resource::CLI::Server
- Inherits:
-
Thor
- Object
- Thor
- Tengine::Resource::CLI::Server
- Includes:
- GlobalOptions, Options
- Defined in:
- lib/tengine/resource/cli/server.rb
Instance Method Summary collapse
-
#add(name, *args) ⇒ Object
def add(name, options = {}).
- #list(*args) ⇒ Object
- #remove(name) ⇒ Object
Instance Method Details
#add(name, *args) ⇒ Object
def add(name, options = {})
37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/tengine/resource/cli/server.rb', line 37 def add(name, *args) opts = (args, ) config_mongoid Tengine::Resource::Provider.manual.tap do |provider| server = provider.physical_servers.create!({ name: name, provided_id: name, addresses: opts[:addresses] || {}, properties: opts[:properties] || {} }) $stdout.puts "server created successfully!: #{server.to_json}" end end |
#list(*args) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/tengine/resource/cli/server.rb', line 11 def list(*args) opts = (args, ) config_mongoid require 'text-table' res = [%w[provider virtual? name status addresses created_at updated_at]] = {(opts[:sort] || "name").to_sym => 1} [:name] = 1 # 同じ時刻などのソートキーが決まらない場合を想定して名前もソートキーに入れる Tengine::Resource::Server.all.order_by().each do |server| res << [ server.provider ? server.provider.name : "-", server.is_a?(Tengine::Resource::VirtualServer) ? "virtual" : "physical", server.name, server.status, server.addresses.to_json, server.created_at.iso8601, server.updated_at.iso8601, ] end $stdout.puts res.to_table(:first_row_is_head => true) res end |
#remove(name) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/tengine/resource/cli/server.rb', line 52 def remove(name) config_mongoid Tengine::Resource::Provider.manual.tap do |provider| if server = provider.physical_servers.where({name: name}).first server.destroy $stdout.puts "server was destroyed successfully!: #{name}" else raise "server \"#{name}\" not found under provider \"#{provider.name}\"" end end end |