pec 0.7.7 → 0.7.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 350cb27b8eccbde2325bc58c5990cc4ff6fe60e4
4
- data.tar.gz: 533a29a9be01f3c2cf08034aecc4574673a5711b
3
+ metadata.gz: 1a615c6aea01b3e516f72fc1806e0915730ec4a8
4
+ data.tar.gz: 45adb312f61ef71c5206bb00b2ebca11d6d563ef
5
5
  SHA512:
6
- metadata.gz: ebcaf262a0f6fcf8a298da144df6299f053b4d95d549cc76d514f6229c547382da34b0ffbafe48249d4a0c4759ae4fd8ed0f059e2199f2e846a339c9f5abb203
7
- data.tar.gz: cf7518813e5014a3980f41a4712753e9189de1a82fc8b6d4b898afedaacaf69ad9d17cd856570ccc16a1bfe2a84f79e7889854d6d1e1e144e18a718a455e6080
6
+ metadata.gz: 124c0ca363138d554dcad5fad3248574025c85c96cd1d4ae579481799443fd152e392053deb54c6f288d56f245c5ef26358d9b7f96e72570e7c6adaee16b82da
7
+ data.tar.gz: fc002a6b3b3d6bef233c4638aedc420c793471ac6f21f1000a4f32c9626c6b5589b7b97f2a6f692bcd745d1cbe986034a42fed689057a06eb84372240b088d9a
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # Pec
2
- [![Build Status](https://travis-ci.org/pyama86/pec.svg?branch=master)](https://travis-ci.org/pyama86/pec)
2
+ [![Build Status](https://travis-ci.org/yaocloud/pec.svg?branch=v0.7.7)](https://travis-ci.org/yaocloud/pec)
3
3
  [![Code Climate](https://codeclimate.com/github/pyama86/pec/badges/gpa.svg)](https://codeclimate.com/github/pyama86/pec)
4
4
  [![Test Coverage](https://codeclimate.com/github/pyama86/pec/badges/coverage.svg)](https://codeclimate.com/github/pyama86/pec/coverage)
5
5
 
@@ -20,10 +20,14 @@ create - /user_data/web_server.yaml.sample
20
20
 
21
21
  $ pec up <hostname_regex> <hostname_regex>...
22
22
 
23
- $ pec destroy <hostname_regex> <hostname_regex>...
23
+ $ pec destroy <hostname_regex> <hostname_regex>...
24
+
25
+ $ pec halt <hostname_regex> <hostname_regex>...
24
26
 
25
27
  $ pec status <hostname_regex> <hostname_regex>...
26
28
 
29
+ $ pec list
30
+
27
31
  $ pec config <hostname_regex> <hostname_regex>...
28
32
 
29
33
  ### Configure
data/lib/pec.rb CHANGED
@@ -58,11 +58,41 @@ module Pec
58
58
  self.configure.each do |config|
59
59
  next if hosts.size > 0 && hosts.none? {|name| config.name.match(/^#{name}/)}
60
60
  Pec.init_yao(config.tenant)
61
- server = Yao::Server.list_detail("name" => config.name).first if fetch
61
+ server = fetch_server(config) if fetch
62
62
  yield(server, config)
63
63
  end
64
64
  end
65
65
 
66
+ def self.fetch_server(config)
67
+ server_list(config).find {|s|s.name == config.name}
68
+ end
69
+
70
+ def self.fetch_tenant_by_id(server)
71
+ tenant_list.find {|tenant| tenant.id == server.tenant_id}
72
+ end
73
+
74
+ def self.fetch_tenant_by_name(config)
75
+ tenant_list.find {|tenant| tenant.name == config.tenant}
76
+ end
77
+
78
+ def self.fetch_flavor(server)
79
+ flavor_list(server).find {|f|f.id == server.flavor['id']}
80
+ end
81
+
82
+ def self.server_list(config)
83
+ @_server_list ||= {}
84
+ @_server_list[config.tenant] ||= Yao::Server.list_detail({tenant_id: fetch_tenant_by_name(config).id})
85
+ end
86
+
87
+ def self.tenant_list
88
+ @_tenant_list ||= Yao::Tenant.list
89
+ end
90
+
91
+ def self.flavor_list(server)
92
+ @_flavor_list ||= {}
93
+ @_flavor_list[server.tenant_id] ||= Yao::Flavor.list
94
+ end
95
+
66
96
  def self.check_env
67
97
  %w(
68
98
  OS_AUTH_URL
@@ -4,7 +4,7 @@ module Pec
4
4
 
5
5
  desc 'init', 'create sample config'
6
6
  def init
7
- _sub_command(nil, options)
7
+ _sub_command([], options)
8
8
  end
9
9
 
10
10
  desc 'up [HOSTNAME1, HOSTNAME2, ...]', 'create vm by Pec.yaml'
@@ -18,6 +18,11 @@ module Pec
18
18
  _sub_command(hosts, options)
19
19
  end
20
20
 
21
+ desc "halt [HOSTNAME1, HOSTNAME2, ...]", "halt vm"
22
+ def halt(*hosts)
23
+ _sub_command(hosts, options)
24
+ end
25
+
21
26
  desc "status [HOSTNAME1, HOSTNAME2, ...]", "vm status"
22
27
  def status(*hosts)
23
28
  _sub_command(hosts, options)
@@ -25,7 +30,7 @@ module Pec
25
30
 
26
31
  desc "list", "vm list"
27
32
  def list
28
- _sub_command(nil, options)
33
+ _sub_command([], options)
29
34
  end
30
35
 
31
36
  desc "config [HOSTNAME1, HOSTNAME2, ...]", "show configure"
@@ -3,6 +3,7 @@ module Pec
3
3
  autoload :Base, "pec/command/base"
4
4
  autoload :Up, "pec/command/up"
5
5
  autoload :Destroy, "pec/command/destroy"
6
+ autoload :Halt, "pec/command/halt"
6
7
  autoload :Status, "pec/command/status"
7
8
  autoload :Config, "pec/command/config"
8
9
  autoload :Init, "pec/command/init"
@@ -0,0 +1,16 @@
1
+ module Pec::Command
2
+ class Halt < Base
3
+ @fetch = true
4
+ def self.task(host_name, options, server, config)
5
+ case
6
+ when server.nil?
7
+ Pec::Logger.notice "not be created #{config.name}"
8
+ when server.status != "ACTIVE"
9
+ Pec::Logger.notice "#{config.name} server status is #{server.status} must be ACTIVE"
10
+ else
11
+ Yao::Server.shutoff(server.id)
12
+ Pec::Logger.info "#{config.name} is halted!"
13
+ end
14
+ end
15
+ end
16
+ end
@@ -7,8 +7,8 @@ module Pec::Command
7
7
  " %-35s %-10s %-10s %-10s %-10s %-10s %-35s %-48s",
8
8
  config.name,
9
9
  server.status,
10
- tenant_name(server),
11
- flavor_name(server),
10
+ Pec.fetch_tenant_by_id(server).name,
11
+ Pec.fetch_flavor(server).name,
12
12
  server.availability_zone,
13
13
  server.key_name,
14
14
  server.ext_srv_attr_host,
@@ -22,19 +22,6 @@ module Pec::Command
22
22
  end
23
23
  end
24
24
 
25
- def self.tenant_name(server)
26
- tenant_list.find {|tenant| tenant.id == server.tenant_id}.name
27
- end
28
-
29
- def self.tenant_list
30
- @@_tenant_list ||= Yao::Tenant.list
31
- @@_tenant_list
32
- end
33
-
34
- def self.flavor_name(server)
35
- Yao::Flavor.get(server.flavor['id']).name
36
- end
37
-
38
25
  def self.ip_addresses(server)
39
26
  server.addresses.map do |ethers|
40
27
  ethers[1].map do |ether|
@@ -2,7 +2,8 @@ module Pec::Command
2
2
  class Up < Base
3
3
  @fetch = true
4
4
  def self.task(host_name, options, server, config)
5
- unless server
5
+ case
6
+ when server.nil?
6
7
  Pec::Logger.info "make start #{config.name}"
7
8
 
8
9
  attribute = {name: config.name}
@@ -16,6 +17,9 @@ module Pec::Command
16
17
 
17
18
  Yao::Server.create(attribute)
18
19
  Pec::Logger.info "create success! #{config.name}"
20
+ when server.status == "SHUTOFF"
21
+ Yao::Server.start(server.id)
22
+ Pec::Logger.info "start server: #{config.name}"
19
23
  else
20
24
  Pec::Logger.notice "already server: #{config.name}"
21
25
  end
@@ -1,3 +1,3 @@
1
1
  module Pec
2
- VERSION = "0.7.7"
2
+ VERSION = "0.7.8"
3
3
  end
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
19
  spec.require_paths = ["lib"]
20
20
  spec.add_dependency 'thor', '~> 0.19.1'
21
- spec.add_dependency 'yao', '~> 0.0.6'
21
+ spec.add_dependency 'yao', '~> 0.2.2'
22
22
  spec.add_dependency 'ruby-ip', '~> 0.9.3'
23
23
  spec.add_dependency 'colorator', '~> 0.1'
24
24
  spec.add_development_dependency "bundler"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.7
4
+ version: 0.7.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - kazuhiko yamashita
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-12 00:00:00.000000000 Z
11
+ date: 2015-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.0.6
33
+ version: 0.2.2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.0.6
40
+ version: 0.2.2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: ruby-ip
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -146,6 +146,7 @@ files:
146
146
  - lib/pec/command/base.rb
147
147
  - lib/pec/command/config.rb
148
148
  - lib/pec/command/destroy.rb
149
+ - lib/pec/command/halt.rb
149
150
  - lib/pec/command/init.rb
150
151
  - lib/pec/command/list.rb
151
152
  - lib/pec/command/status.rb