unit-hosting 0.3.1 → 0.4.0
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 +4 -4
- data/.coveralls.yml +1 -0
- data/.travis.yml +1 -0
- data/Gemfile +14 -9
- data/README.md +18 -19
- data/Rakefile +3 -11
- data/VERSION +1 -1
- data/lib/unit-hosting.rb +2 -2
- data/lib/unit-hosting/agent.rb +4 -3
- data/lib/unit-hosting/api/base.rb +5 -2
- data/lib/unit-hosting/api/vm.rb +25 -23
- data/lib/unit-hosting/api/vm_group.rb +2 -0
- data/lib/unit-hosting/cache.rb +20 -1
- data/lib/unit-hosting/cli.rb +1 -0
- data/lib/unit-hosting/commands.rb +43 -53
- data/lib/unit-hosting/group.rb +3 -1
- data/spec/spec_helper.rb +50 -0
- data/spec/unit-hosting/agent_spec.rb +119 -0
- data/spec/unit-hosting/api/base_spec.rb +37 -0
- data/spec/unit-hosting/api/vm_group_spec.rb +56 -0
- data/spec/unit-hosting/api/vm_recipe_spec.rb +27 -0
- data/spec/unit-hosting/api/vm_spec.rb +148 -0
- data/spec/unit-hosting/cache_spec.rb +33 -0
- data/spec/unit-hosting/cli_spec.rb +23 -0
- data/spec/unit-hosting/commands_spec.rb +214 -0
- data/spec/unit-hosting/group_spec.rb +64 -0
- data/unit-hosting.gemspec +44 -11
- metadata +140 -19
- data/test/helper.rb +0 -18
- data/test/test_unit-hosting.rb +0 -13
@@ -0,0 +1,33 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'unit-hosting/cache'
|
4
|
+
|
5
|
+
describe UnitHosting::Cache do
|
6
|
+
before{
|
7
|
+
@cache_file = Tempfile.new('cache')
|
8
|
+
@cache_file.close
|
9
|
+
@cache = UnitHosting::Cache.new(@cache_file.path)
|
10
|
+
}
|
11
|
+
after {
|
12
|
+
@cache_file.unlink
|
13
|
+
}
|
14
|
+
describe "#update_group!" do
|
15
|
+
context "when there are three gropus in cache." do
|
16
|
+
before{
|
17
|
+
@group222 = UnitHosting::Group.new("test-sg-222")
|
18
|
+
@cache.transaction { |ps|
|
19
|
+
ps["groups"] = [
|
20
|
+
UnitHosting::Group.new("test-sg-1"),
|
21
|
+
UnitHosting::Group.new("test-sg-2"),
|
22
|
+
UnitHosting::Group.new("test-sg-3"),
|
23
|
+
@group222
|
24
|
+
].extend(UnitHosting::Groups)
|
25
|
+
}
|
26
|
+
}
|
27
|
+
it "update given group" do
|
28
|
+
expect(@group222).to receive(:update)
|
29
|
+
@cache.update_group!(@group222)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'unit-hosting/cli'
|
4
|
+
|
5
|
+
describe UnitHosting::CLI do
|
6
|
+
before {
|
7
|
+
@cli = UnitHosting::CLI.new
|
8
|
+
}
|
9
|
+
describe "#version" do
|
10
|
+
it "print version string" do
|
11
|
+
expect(capture(:stdout) {
|
12
|
+
@cli.version}).to match /\d+\.\d+\.\d+/
|
13
|
+
end
|
14
|
+
end
|
15
|
+
describe "#dispatch" do
|
16
|
+
context "foo:bar" do
|
17
|
+
it "call @commands.foo_bar" do
|
18
|
+
expect(@cli.commands).to receive(:foo_bar).once
|
19
|
+
@cli.dispatch("foo:bar",[])
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,214 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'unit-hosting/commands'
|
4
|
+
describe UnitHosting::Commands do
|
5
|
+
before {
|
6
|
+
@endpoint = "https://example.net"
|
7
|
+
@commands = UnitHosting::Commands.new(@endpoint)
|
8
|
+
@commands.keyname = "rspec-unit-hosting-test"
|
9
|
+
}
|
10
|
+
describe "#login" do
|
11
|
+
before{
|
12
|
+
@commands.agent.stub(:login).and_return(nil)
|
13
|
+
@user1 = { :username =>"test-user-1", :password =>"correct-for-1", :bad_password =>"bad-for-1"}
|
14
|
+
expect(Keystorage).to receive(:set).
|
15
|
+
with(@commands.keyname,@user1[:username],@user1[:password]).once
|
16
|
+
}
|
17
|
+
context "put collect username and password." do
|
18
|
+
before {
|
19
|
+
@commands.agent.stub(:login?).and_return(true)
|
20
|
+
}
|
21
|
+
context "answer collect username and password" do
|
22
|
+
before { }
|
23
|
+
it "returns true." do
|
24
|
+
@commands.stub(:ask) { |question, &details|
|
25
|
+
HighLine::Question.new(question, String, &details)
|
26
|
+
case question
|
27
|
+
when "Enter user: "
|
28
|
+
"test-user-1"
|
29
|
+
when "Enter your password: "
|
30
|
+
"correct-for-1"
|
31
|
+
end
|
32
|
+
}
|
33
|
+
$stderr.should_receive(:puts).with("login OK").once
|
34
|
+
@commands.login
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
context "put bad pair of username and password." do
|
40
|
+
before{
|
41
|
+
@commands.agent.stub(:login?).and_return(false,true)
|
42
|
+
}
|
43
|
+
it "asks username and password again." do
|
44
|
+
$stderr.should_receive(:puts).with("login OK").once
|
45
|
+
$stderr.should_receive(:puts).with("password mismatch").once
|
46
|
+
expect(@commands).to receive(:ask).
|
47
|
+
with("Enter user: ").and_return(@user1[:username]).twice
|
48
|
+
expect(@commands).to receive(:ask).
|
49
|
+
with("Enter your password: ").and_return(@user1[:password]).twice
|
50
|
+
@commands.login
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
describe "#logout" do
|
56
|
+
it "removes Keychain entry." do
|
57
|
+
expect(Keystorage).to receive(:delete).with(@commands.keyname).once
|
58
|
+
@commands.logout
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
describe "#groups" do
|
63
|
+
it "returns groups." do
|
64
|
+
expect(@commands.cache).to receive(:groups).with().once
|
65
|
+
expect($stdout).to receive(:puts).once
|
66
|
+
@commands.groups
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
describe "#group" do
|
71
|
+
it "asks group andreturns group." do
|
72
|
+
expect(@commands).to receive(:ask_group).once
|
73
|
+
@commands.group
|
74
|
+
end
|
75
|
+
end
|
76
|
+
describe "#update" do
|
77
|
+
before{
|
78
|
+
@cache_file = Tempfile.new('cache')
|
79
|
+
@cache_file.close
|
80
|
+
@commands.stub(:cache_file).and_return(@cache_file.path)
|
81
|
+
@commands.stub(:start).and_return true
|
82
|
+
}
|
83
|
+
after {
|
84
|
+
@cache_file.unlink
|
85
|
+
}
|
86
|
+
context "when --all is set" do
|
87
|
+
before{
|
88
|
+
@groups = [].extend(UnitHosting::Groups)
|
89
|
+
(1..10).each { |n|
|
90
|
+
group = UnitHosting::Group.new("test-sg-#{n}")
|
91
|
+
group.key = "dummy-key-#{n}"
|
92
|
+
# group.stub(:update).and_return([])
|
93
|
+
@groups << group
|
94
|
+
}
|
95
|
+
@commands.agent.stub(:groups).and_return(@groups)
|
96
|
+
|
97
|
+
# curl -X POST "https://cloud.unit-hosting.com/xmlrpc"
|
98
|
+
xml = <<XML
|
99
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
100
|
+
<methodResponse>
|
101
|
+
<params>
|
102
|
+
<param><value><array><data>
|
103
|
+
<value><struct>
|
104
|
+
<member><name>instance_id</name><value><string>test-vm-1280</string></value></member>
|
105
|
+
<member><name>display_name</name><value><string>test-server-1</string></value></member>
|
106
|
+
<member><name>api_key</name><value><string>dummy-api-key-00398342190234</string></value></member>
|
107
|
+
<member><name>status</name><value><string>halted</string></value></member>
|
108
|
+
</struct></value>
|
109
|
+
<value><struct>
|
110
|
+
<member><name>instance_id</name><value><string>test-vm-1645</string></value></member>
|
111
|
+
<member><name>display_name</name><value><string>test-server-2</string></value></member>
|
112
|
+
<member><name>api_key</name><value><string/></value></member>
|
113
|
+
<member><name>status</name><value><string>halted</string></value></member>
|
114
|
+
</struct></value>
|
115
|
+
</data></array></value></param>
|
116
|
+
</params>
|
117
|
+
</methodResponse>
|
118
|
+
XML
|
119
|
+
stub_request(:post, "https://cloud.unit-hosting.com/xmlrpc").
|
120
|
+
to_return(:status =>200, :body => xml, :headers => {:content_type =>'text/xml; charset=utf-8'})
|
121
|
+
}
|
122
|
+
it "updates all cache" do
|
123
|
+
@commands.update(true)
|
124
|
+
end
|
125
|
+
end
|
126
|
+
context "when --all is not set" do
|
127
|
+
before {
|
128
|
+
@group = UnitHosting::Group.new("test-sg-9")
|
129
|
+
@group.key = "dummy-key-9"
|
130
|
+
@commands.stub(:ask_group).and_return(@group)
|
131
|
+
}
|
132
|
+
it "updates cache of specified group" do
|
133
|
+
@group.should_receive(:update)
|
134
|
+
@commands.update
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
describe "#start" do
|
140
|
+
context "when still logged in" do
|
141
|
+
before{
|
142
|
+
@commands.agent.stub(:login?).and_return(true)
|
143
|
+
}
|
144
|
+
it "returns true" do
|
145
|
+
expect(@commands.send(:start)).to be_true
|
146
|
+
end
|
147
|
+
end
|
148
|
+
context "failed login" do
|
149
|
+
before{
|
150
|
+
@commands.agent.stub(:login?).and_return(false)
|
151
|
+
@commands.agent.stub(:login).and_return()
|
152
|
+
expect(@commands).to receive(:login)
|
153
|
+
}
|
154
|
+
it "raises LoginError exception." do
|
155
|
+
expect{
|
156
|
+
@commands.send(:start)
|
157
|
+
}.to raise_error(UnitHosting::Commands::LoginError)
|
158
|
+
end
|
159
|
+
end
|
160
|
+
context "when not logged in" do
|
161
|
+
before{
|
162
|
+
@commands.agent.stub(:login?).and_return(false,true)
|
163
|
+
}
|
164
|
+
context "when there is a user-entry in keystorage" do
|
165
|
+
before {
|
166
|
+
Keystorage.stub(:list).and_return(["test-user-1"])
|
167
|
+
Keystorage.stub(:get).with(@commands.keyname,"test-user-1").and_return("test-password-1")
|
168
|
+
}
|
169
|
+
it "try to login by using username" do
|
170
|
+
expect(@commands.agent).to receive(:login).with("test-user-1","test-password-1").once
|
171
|
+
@commands.send(:start)
|
172
|
+
end
|
173
|
+
end
|
174
|
+
context "when there is no user-entry in keystorage" do
|
175
|
+
before {
|
176
|
+
Keystorage.stub(:list).and_return([])
|
177
|
+
}
|
178
|
+
it "asks username" do
|
179
|
+
expect(@commands).to receive(:login)
|
180
|
+
@commands.send(:start)
|
181
|
+
end
|
182
|
+
end
|
183
|
+
#it "returns true" do
|
184
|
+
# expect(@commands.send(:start)).to be_true
|
185
|
+
#end
|
186
|
+
end
|
187
|
+
end
|
188
|
+
describe "#ask_group" do
|
189
|
+
before{
|
190
|
+
@groups = ['test-sg-1','test-sg-2','test-sg-3','test-123'].extend(UnitHosting::Groups)
|
191
|
+
@commands.stub(:ask) { |question, &details|
|
192
|
+
HighLine::Question.new(question, String, &details)
|
193
|
+
"test-sg-2"
|
194
|
+
}
|
195
|
+
}
|
196
|
+
context "when group_id is not given" do
|
197
|
+
it "asks group_id" do
|
198
|
+
groups = [UnitHosting::Group.new('test-sg-1'),
|
199
|
+
UnitHosting::Group.new('test-sg-2'),
|
200
|
+
UnitHosting::Group.new('test-sg-3')].extend(UnitHosting::Groups)
|
201
|
+
expect(capture(:stdout) {
|
202
|
+
expect(@commands.send(:ask_group,nil,groups).instance_id).to eq "test-sg-2"
|
203
|
+
}).to match /test\-sg\-3/
|
204
|
+
|
205
|
+
end
|
206
|
+
end
|
207
|
+
end
|
208
|
+
describe "#cache_file" do
|
209
|
+
it "returns cache file path" do
|
210
|
+
expect(@commands.send(:cache_file,"foo.cache")).to match /foo\.cache$/
|
211
|
+
end
|
212
|
+
end
|
213
|
+
|
214
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'unit-hosting/group'
|
4
|
+
|
5
|
+
describe UnitHosting::Groups do
|
6
|
+
before {
|
7
|
+
@groups = [
|
8
|
+
UnitHosting::Group.new("test-sg-123"),
|
9
|
+
UnitHosting::Group.new("test-sg-789"),
|
10
|
+
].extend(UnitHosting::Groups)
|
11
|
+
}
|
12
|
+
describe "#ids" do
|
13
|
+
it "returns array of instance_id" do
|
14
|
+
expect(@groups.ids).to eq ["test-sg-123","test-sg-789"]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
describe "#tablize" do
|
18
|
+
context "no groups" do
|
19
|
+
before {
|
20
|
+
@groups = [].extend(UnitHosting::Groups)
|
21
|
+
}
|
22
|
+
it "returns 'no groups'" do
|
23
|
+
expect(@groups.tablize).to match /no groups/
|
24
|
+
end
|
25
|
+
end
|
26
|
+
context "have 2 groups" do
|
27
|
+
it "returns table string" do
|
28
|
+
expect(@groups.tablize).to match /test-sg-789/
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe UnitHosting::Group do
|
35
|
+
before {
|
36
|
+
@group = UnitHosting::Group.new("test-sg-123")
|
37
|
+
}
|
38
|
+
describe "#tablize" do
|
39
|
+
context "no vms" do
|
40
|
+
it "returns 'no vms'" do
|
41
|
+
expect(@group.tablize).to match /no vms/
|
42
|
+
end
|
43
|
+
end
|
44
|
+
context "have 2 vms" do
|
45
|
+
before{
|
46
|
+
@group.vms = [
|
47
|
+
{
|
48
|
+
"instance_id" => "test-vm-1",
|
49
|
+
"status" =>"halted",
|
50
|
+
"display_name" =>"test-server-1"
|
51
|
+
},
|
52
|
+
{
|
53
|
+
"instance_id" => "test-vm-2",
|
54
|
+
"status" =>"halted",
|
55
|
+
"display_name" =>"test-server-2"
|
56
|
+
}
|
57
|
+
]
|
58
|
+
}
|
59
|
+
it "returns table string" do
|
60
|
+
expect(@group.tablize).to match /test-server-2/
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
data/unit-hosting.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: unit-hosting 0.
|
5
|
+
# stub: unit-hosting 0.4.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "unit-hosting"
|
9
|
-
s.version = "0.
|
9
|
+
s.version = "0.4.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Yoshihiro TAKAHARA"]
|
14
|
-
s.date = "2014-02-
|
14
|
+
s.date = "2014-02-08"
|
15
15
|
s.description = "This is a command to manage virtual servers on UnitHosting(http://www.unit-hosting.com)."
|
16
16
|
s.email = "y.takahara@gmail.com"
|
17
17
|
s.executables = ["unit-hosting"]
|
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
"README.md"
|
21
21
|
]
|
22
22
|
s.files = [
|
23
|
+
".coveralls.yml",
|
23
24
|
".document",
|
24
25
|
".travis.yml",
|
25
26
|
"Gemfile",
|
@@ -39,8 +40,16 @@ Gem::Specification.new do |s|
|
|
39
40
|
"lib/unit-hosting/cli.rb",
|
40
41
|
"lib/unit-hosting/commands.rb",
|
41
42
|
"lib/unit-hosting/group.rb",
|
42
|
-
"
|
43
|
-
"
|
43
|
+
"spec/spec_helper.rb",
|
44
|
+
"spec/unit-hosting/agent_spec.rb",
|
45
|
+
"spec/unit-hosting/api/base_spec.rb",
|
46
|
+
"spec/unit-hosting/api/vm_group_spec.rb",
|
47
|
+
"spec/unit-hosting/api/vm_recipe_spec.rb",
|
48
|
+
"spec/unit-hosting/api/vm_spec.rb",
|
49
|
+
"spec/unit-hosting/cache_spec.rb",
|
50
|
+
"spec/unit-hosting/cli_spec.rb",
|
51
|
+
"spec/unit-hosting/commands_spec.rb",
|
52
|
+
"spec/unit-hosting/group_spec.rb",
|
44
53
|
"unit-hosting.gemspec"
|
45
54
|
]
|
46
55
|
s.homepage = "http://github.com/tumf/unit-hosting"
|
@@ -54,34 +63,58 @@ Gem::Specification.new do |s|
|
|
54
63
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
55
64
|
s.add_runtime_dependency(%q<mutter>, [">= 0"])
|
56
65
|
s.add_runtime_dependency(%q<keystorage>, ["~> 0.4.13"])
|
57
|
-
s.add_runtime_dependency(%q<mechanize>, [">= 0"])
|
58
66
|
s.add_runtime_dependency(%q<highline>, ["> 1.6"])
|
59
67
|
s.add_runtime_dependency(%q<progressbar>, [">= 0.9.0"])
|
60
68
|
s.add_runtime_dependency(%q<httpclient>, [">= 2.1.6.1"])
|
61
69
|
s.add_runtime_dependency(%q<command-line-utils>, [">= 0.0.1"])
|
62
|
-
s.
|
70
|
+
s.add_runtime_dependency(%q<active_support>, [">= 0"])
|
71
|
+
s.add_runtime_dependency(%q<i18n>, [">= 0"])
|
72
|
+
s.add_runtime_dependency(%q<nokogiri>, ["~> 1.5.9"])
|
73
|
+
s.add_runtime_dependency(%q<mechanize>, ["= 2.6.0"])
|
63
74
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
75
|
+
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
76
|
+
s.add_development_dependency(%q<coveralls>, [">= 0"])
|
77
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
78
|
+
s.add_development_dependency(%q<rake>, [">= 0"])
|
79
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
80
|
+
s.add_development_dependency(%q<webmock>, [">= 0"])
|
64
81
|
else
|
65
82
|
s.add_dependency(%q<mutter>, [">= 0"])
|
66
83
|
s.add_dependency(%q<keystorage>, ["~> 0.4.13"])
|
67
|
-
s.add_dependency(%q<mechanize>, [">= 0"])
|
68
84
|
s.add_dependency(%q<highline>, ["> 1.6"])
|
69
85
|
s.add_dependency(%q<progressbar>, [">= 0.9.0"])
|
70
86
|
s.add_dependency(%q<httpclient>, [">= 2.1.6.1"])
|
71
87
|
s.add_dependency(%q<command-line-utils>, [">= 0.0.1"])
|
72
|
-
s.add_dependency(%q<
|
88
|
+
s.add_dependency(%q<active_support>, [">= 0"])
|
89
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
90
|
+
s.add_dependency(%q<nokogiri>, ["~> 1.5.9"])
|
91
|
+
s.add_dependency(%q<mechanize>, ["= 2.6.0"])
|
73
92
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
93
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
94
|
+
s.add_dependency(%q<coveralls>, [">= 0"])
|
95
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
96
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
97
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
98
|
+
s.add_dependency(%q<webmock>, [">= 0"])
|
74
99
|
end
|
75
100
|
else
|
76
101
|
s.add_dependency(%q<mutter>, [">= 0"])
|
77
102
|
s.add_dependency(%q<keystorage>, ["~> 0.4.13"])
|
78
|
-
s.add_dependency(%q<mechanize>, [">= 0"])
|
79
103
|
s.add_dependency(%q<highline>, ["> 1.6"])
|
80
104
|
s.add_dependency(%q<progressbar>, [">= 0.9.0"])
|
81
105
|
s.add_dependency(%q<httpclient>, [">= 2.1.6.1"])
|
82
106
|
s.add_dependency(%q<command-line-utils>, [">= 0.0.1"])
|
83
|
-
s.add_dependency(%q<
|
107
|
+
s.add_dependency(%q<active_support>, [">= 0"])
|
108
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
109
|
+
s.add_dependency(%q<nokogiri>, ["~> 1.5.9"])
|
110
|
+
s.add_dependency(%q<mechanize>, ["= 2.6.0"])
|
84
111
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
112
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
113
|
+
s.add_dependency(%q<coveralls>, [">= 0"])
|
114
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
115
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
116
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
117
|
+
s.add_dependency(%q<webmock>, [">= 0"])
|
85
118
|
end
|
86
119
|
end
|
87
120
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unit-hosting
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yoshihiro TAKAHARA
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mutter
|
@@ -38,20 +38,6 @@ dependencies:
|
|
38
38
|
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.4.13
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: mechanize
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - '>='
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - '>='
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: highline
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +94,104 @@ dependencies:
|
|
108
94
|
- - '>='
|
109
95
|
- !ruby/object:Gem::Version
|
110
96
|
version: 0.0.1
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: active_support
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: i18n
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: nokogiri
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ~>
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 1.5.9
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ~>
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 1.5.9
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: mechanize
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - '='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 2.6.0
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - '='
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 2.6.0
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: jeweler
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - '>='
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - '>='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: simplecov
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - '>='
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: coveralls
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - '>='
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - '>='
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
111
195
|
- !ruby/object:Gem::Dependency
|
112
196
|
name: bundler
|
113
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,7 +207,35 @@ dependencies:
|
|
123
207
|
- !ruby/object:Gem::Version
|
124
208
|
version: '0'
|
125
209
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
210
|
+
name: rake
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - '>='
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - '>='
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: rspec
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - '>='
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - '>='
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0'
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: webmock
|
127
239
|
requirement: !ruby/object:Gem::Requirement
|
128
240
|
requirements:
|
129
241
|
- - '>='
|
@@ -145,6 +257,7 @@ extra_rdoc_files:
|
|
145
257
|
- LICENSE.txt
|
146
258
|
- README.md
|
147
259
|
files:
|
260
|
+
- .coveralls.yml
|
148
261
|
- .document
|
149
262
|
- .travis.yml
|
150
263
|
- Gemfile
|
@@ -164,8 +277,16 @@ files:
|
|
164
277
|
- lib/unit-hosting/cli.rb
|
165
278
|
- lib/unit-hosting/commands.rb
|
166
279
|
- lib/unit-hosting/group.rb
|
167
|
-
-
|
168
|
-
-
|
280
|
+
- spec/spec_helper.rb
|
281
|
+
- spec/unit-hosting/agent_spec.rb
|
282
|
+
- spec/unit-hosting/api/base_spec.rb
|
283
|
+
- spec/unit-hosting/api/vm_group_spec.rb
|
284
|
+
- spec/unit-hosting/api/vm_recipe_spec.rb
|
285
|
+
- spec/unit-hosting/api/vm_spec.rb
|
286
|
+
- spec/unit-hosting/cache_spec.rb
|
287
|
+
- spec/unit-hosting/cli_spec.rb
|
288
|
+
- spec/unit-hosting/commands_spec.rb
|
289
|
+
- spec/unit-hosting/group_spec.rb
|
169
290
|
- unit-hosting.gemspec
|
170
291
|
homepage: http://github.com/tumf/unit-hosting
|
171
292
|
licenses:
|