bixby-client 0.3.0 → 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/.travis.yml +13 -4
- data/Gemfile +8 -7
- data/Gemfile.lock +23 -22
- data/VERSION +1 -1
- data/bixby-client.gemspec +4 -18
- data/lib/bixby-client/app/commands/run.rb +9 -0
- data/lib/bixby-client/model/base.rb +87 -11
- data/lib/bixby-client/model/check.rb +9 -0
- data/lib/bixby-client/model/host.rb +9 -0
- data/lib/bixby-client/modules/monitoring.rb +20 -0
- data/lib/bixby-client/modules/repository.rb +51 -0
- data/lib/bixby-client/modules.rb +1 -0
- data/test/helper.rb +0 -1
- metadata +3 -72
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 612e1c186d5b8d826adf4c9cb55bc4bc177f60ca
|
|
4
|
+
data.tar.gz: 2f4a93cdfd9cec51393e0cfae0971e14561aa549
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8cf630d2fe55a757490fe7800747ff521dae0359182f6ee6e055d2cc4c9c03aecdf9ae79923ccd6babfb17bc69359ab680bf280327de62327c8309be8505b319
|
|
7
|
+
data.tar.gz: 0b4d499a4ba0907471ba57b04a6eed2bd11124ce41d2df265447ec2c6747caaf8ee337e95733c870cf83a7e1b2e3fc0066d18bc29d7e280089e5c2e2fec202f9
|
data/.travis.yml
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
before_install:
|
|
2
|
+
- "curl -sL https://s3.bixby.io/wad > ~/wad"
|
|
3
|
+
- "chmod +x ~/wad"
|
|
4
|
+
install:
|
|
5
|
+
- "~/wad"
|
|
2
6
|
script: "bundle exec micron test/"
|
|
3
|
-
after_script:
|
|
4
|
-
- "rake coverage"
|
|
5
|
-
- "rake coveralls"
|
|
7
|
+
after_script: "rake coveralls"
|
|
6
8
|
|
|
9
|
+
language: ruby
|
|
7
10
|
rvm:
|
|
8
11
|
- 2.0.0
|
|
9
12
|
- 1.9.3
|
|
@@ -11,3 +14,9 @@ rvm:
|
|
|
11
14
|
branches:
|
|
12
15
|
only:
|
|
13
16
|
- master
|
|
17
|
+
|
|
18
|
+
env:
|
|
19
|
+
global:
|
|
20
|
+
- S3_REGION="us-east-1"
|
|
21
|
+
- S3_BUCKET_NAME="io.bixby.gemcache.wad.client"
|
|
22
|
+
- secure: d9Apjk8ofbfVRmfhFiifnMRQ8HRRX8rusJyqTjs8AbTYK0gHJmmSwGT/GSuBoP8a9IQ0vSjWVNgO9tY94syQnoBMXj+y4SxkunNWYxW8CTBOuOGJUup8tIy7JS0SenSY+kGFtKRH/vqbZs2AMd/iiybQ1osjHKvVEbNf9x9JdKY=
|
data/Gemfile
CHANGED
|
@@ -23,13 +23,6 @@ group :development do
|
|
|
23
23
|
gem "debugger", :platforms => [:mri_19, :mri_20]
|
|
24
24
|
gem "debugger-pry", :require => "debugger/pry", :platforms => [:mri_19, :mri_20]
|
|
25
25
|
|
|
26
|
-
gem "simplecov", :platforms => [:mri_19, :mri_20, :rbx], :git => "https://github.com/chetan/simplecov.git", :branch => "inline_nocov"
|
|
27
|
-
gem "micron", :github => "chetan/micron"
|
|
28
|
-
gem "coveralls", :require => false
|
|
29
|
-
|
|
30
|
-
gem "webmock", :require => false
|
|
31
|
-
gem "mocha", :require => false
|
|
32
|
-
|
|
33
26
|
gem "test_guard", :git => "https://github.com/chetan/test_guard.git"
|
|
34
27
|
gem 'rb-inotify', :require => false
|
|
35
28
|
gem 'rb-fsevent', :require => false
|
|
@@ -37,3 +30,11 @@ group :development do
|
|
|
37
30
|
|
|
38
31
|
end
|
|
39
32
|
|
|
33
|
+
group :test do
|
|
34
|
+
gem "simplecov", :platforms => [:mri_19, :mri_20, :rbx], :git => "https://github.com/chetan/simplecov.git", :branch => "inline_nocov"
|
|
35
|
+
gem "micron", :github => "chetan/micron"
|
|
36
|
+
gem "coveralls", :require => false
|
|
37
|
+
|
|
38
|
+
gem "webmock", :require => false
|
|
39
|
+
gem "mocha", :require => false
|
|
40
|
+
end
|
data/Gemfile.lock
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
GIT
|
|
2
2
|
remote: git://github.com/chetan/micron.git
|
|
3
|
-
revision:
|
|
3
|
+
revision: 9bc1ad8ff5eed579c8f13a7615e8fbc78dbfebd4
|
|
4
4
|
specs:
|
|
5
|
-
micron (0.
|
|
6
|
-
|
|
5
|
+
micron (0.5.0)
|
|
6
|
+
ansi
|
|
7
7
|
easycov
|
|
8
8
|
hitimes
|
|
9
9
|
|
|
10
10
|
GIT
|
|
11
11
|
remote: https://github.com/chetan/api_auth.git
|
|
12
|
-
revision:
|
|
12
|
+
revision: 2440c3a1d23b95977185ce25210c86cbeded7cee
|
|
13
13
|
branch: bixby
|
|
14
14
|
specs:
|
|
15
15
|
api-auth (1.0.3)
|
|
@@ -40,7 +40,7 @@ GIT
|
|
|
40
40
|
|
|
41
41
|
GIT
|
|
42
42
|
remote: https://github.com/chetan/test_guard.git
|
|
43
|
-
revision:
|
|
43
|
+
revision: a2a450c57a77f38d196f23206da03f491ddbca62
|
|
44
44
|
specs:
|
|
45
45
|
test_guard (0.2.1)
|
|
46
46
|
awesome_print
|
|
@@ -54,8 +54,9 @@ GEM
|
|
|
54
54
|
remote: https://rubygems.org/
|
|
55
55
|
specs:
|
|
56
56
|
addressable (2.3.5)
|
|
57
|
+
ansi (1.4.3)
|
|
57
58
|
awesome_print (1.2.0)
|
|
58
|
-
bixby-common (0.4.
|
|
59
|
+
bixby-common (0.4.8)
|
|
59
60
|
api-auth
|
|
60
61
|
faye-websocket
|
|
61
62
|
httpi
|
|
@@ -65,7 +66,7 @@ GEM
|
|
|
65
66
|
builder (3.2.2)
|
|
66
67
|
celluloid (0.15.2)
|
|
67
68
|
timers (~> 1.1.0)
|
|
68
|
-
coderay (1.0
|
|
69
|
+
coderay (1.1.0)
|
|
69
70
|
colorize (0.6.0)
|
|
70
71
|
columnize (0.3.6)
|
|
71
72
|
coveralls (0.7.0)
|
|
@@ -86,7 +87,7 @@ GEM
|
|
|
86
87
|
debugger (~> 1)
|
|
87
88
|
pry (>= 0.9.9)
|
|
88
89
|
debugger-ruby_core_source (1.2.3)
|
|
89
|
-
easycov (0.
|
|
90
|
+
easycov (0.4.0)
|
|
90
91
|
multi_json
|
|
91
92
|
simplecov
|
|
92
93
|
simplecov-console
|
|
@@ -97,7 +98,7 @@ GEM
|
|
|
97
98
|
faye-websocket (0.7.0)
|
|
98
99
|
eventmachine (>= 0.12.0)
|
|
99
100
|
websocket-driver (>= 0.3.0)
|
|
100
|
-
ffi (1.9.
|
|
101
|
+
ffi (1.9.3)
|
|
101
102
|
fuzzy_file_finder (1.0.4)
|
|
102
103
|
git (1.2.6)
|
|
103
104
|
github_api (0.10.1)
|
|
@@ -109,18 +110,18 @@ GEM
|
|
|
109
110
|
oauth2
|
|
110
111
|
growl (1.0.3)
|
|
111
112
|
hashie (2.0.5)
|
|
112
|
-
highline (1.6.
|
|
113
|
+
highline (1.6.20)
|
|
113
114
|
hirb (0.7.1)
|
|
114
115
|
hitimes (1.2.1)
|
|
115
116
|
httpauth (0.2.0)
|
|
116
117
|
httpi (2.1.0)
|
|
117
118
|
rack
|
|
118
119
|
rubyntlm (~> 0.3.2)
|
|
119
|
-
json (1.8.
|
|
120
|
+
json (1.8.1)
|
|
120
121
|
jwt (0.1.8)
|
|
121
122
|
multi_json (>= 1.5)
|
|
122
|
-
listen (2.
|
|
123
|
-
celluloid (>= 0.15.
|
|
123
|
+
listen (2.2.0)
|
|
124
|
+
celluloid (>= 0.15.2)
|
|
124
125
|
rb-fsevent (>= 0.9.3)
|
|
125
126
|
rb-inotify (>= 0.9)
|
|
126
127
|
little-plugger (1.1.3)
|
|
@@ -129,11 +130,11 @@ GEM
|
|
|
129
130
|
multi_json (>= 1.3.6)
|
|
130
131
|
metaclass (0.0.1)
|
|
131
132
|
method_source (0.8.2)
|
|
132
|
-
mime-types (
|
|
133
|
+
mime-types (2.0)
|
|
133
134
|
mixlib-shellout (1.2.0)
|
|
134
135
|
mocha (0.14.0)
|
|
135
136
|
metaclass (~> 0.0.1)
|
|
136
|
-
multi_json (1.8.
|
|
137
|
+
multi_json (1.8.2)
|
|
137
138
|
multi_xml (0.5.5)
|
|
138
139
|
multipart-post (1.2.0)
|
|
139
140
|
nokogiri (1.5.10)
|
|
@@ -144,9 +145,9 @@ GEM
|
|
|
144
145
|
multi_json (~> 1.0)
|
|
145
146
|
multi_xml (~> 0.5)
|
|
146
147
|
rack (~> 1.2)
|
|
147
|
-
oj (2.
|
|
148
|
-
pry (0.9.12.
|
|
149
|
-
coderay (~> 1.0
|
|
148
|
+
oj (2.2.2)
|
|
149
|
+
pry (0.9.12.3)
|
|
150
|
+
coderay (~> 1.0)
|
|
150
151
|
method_source (~> 0.8)
|
|
151
152
|
slop (~> 3.4)
|
|
152
153
|
rack (1.5.2)
|
|
@@ -169,17 +170,17 @@ GEM
|
|
|
169
170
|
hirb
|
|
170
171
|
simplecov
|
|
171
172
|
simplecov-html (0.7.1)
|
|
172
|
-
slop (3.4.
|
|
173
|
+
slop (3.4.7)
|
|
173
174
|
term-ansicolor (1.2.2)
|
|
174
175
|
tins (~> 0.8)
|
|
175
176
|
thor (0.18.1)
|
|
176
177
|
timers (1.1.0)
|
|
177
|
-
tins (0.
|
|
178
|
-
webmock (1.
|
|
178
|
+
tins (0.13.1)
|
|
179
|
+
webmock (1.16.0)
|
|
179
180
|
addressable (>= 2.2.7)
|
|
180
181
|
crack (>= 0.3.2)
|
|
181
182
|
websocket-driver (0.3.0)
|
|
182
|
-
yard (0.8.7.
|
|
183
|
+
yard (0.8.7.3)
|
|
183
184
|
|
|
184
185
|
PLATFORMS
|
|
185
186
|
ruby
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.4.0
|
data/bixby-client.gemspec
CHANGED
|
@@ -2,15 +2,15 @@
|
|
|
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: bixby-client 0.
|
|
5
|
+
# stub: bixby-client 0.4.0 ruby lib
|
|
6
6
|
|
|
7
7
|
Gem::Specification.new do |s|
|
|
8
8
|
s.name = "bixby-client"
|
|
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.authors = ["Chetan Sarva"]
|
|
13
|
-
s.date = "2013-
|
|
13
|
+
s.date = "2013-11-19"
|
|
14
14
|
s.description = "Bixby Client"
|
|
15
15
|
s.email = "chetan@pixelcop.net"
|
|
16
16
|
s.executables = ["bixby"]
|
|
@@ -47,6 +47,7 @@ Gem::Specification.new do |s|
|
|
|
47
47
|
"lib/bixby-client/modules.rb",
|
|
48
48
|
"lib/bixby-client/modules/inventory.rb",
|
|
49
49
|
"lib/bixby-client/modules/metrics.rb",
|
|
50
|
+
"lib/bixby-client/modules/monitoring.rb",
|
|
50
51
|
"lib/bixby-client/modules/repository.rb",
|
|
51
52
|
"lib/bixby-client/patch/shellout.rb",
|
|
52
53
|
"lib/bixby-client/platform_util.rb",
|
|
@@ -99,11 +100,6 @@ Gem::Specification.new do |s|
|
|
|
99
100
|
s.add_development_dependency(%q<pry>, [">= 0"])
|
|
100
101
|
s.add_development_dependency(%q<debugger>, [">= 0"])
|
|
101
102
|
s.add_development_dependency(%q<debugger-pry>, [">= 0"])
|
|
102
|
-
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
|
103
|
-
s.add_development_dependency(%q<micron>, [">= 0"])
|
|
104
|
-
s.add_development_dependency(%q<coveralls>, [">= 0"])
|
|
105
|
-
s.add_development_dependency(%q<webmock>, [">= 0"])
|
|
106
|
-
s.add_development_dependency(%q<mocha>, [">= 0"])
|
|
107
103
|
s.add_development_dependency(%q<test_guard>, [">= 0"])
|
|
108
104
|
s.add_development_dependency(%q<rb-inotify>, [">= 0"])
|
|
109
105
|
s.add_development_dependency(%q<rb-fsevent>, [">= 0"])
|
|
@@ -124,11 +120,6 @@ Gem::Specification.new do |s|
|
|
|
124
120
|
s.add_dependency(%q<pry>, [">= 0"])
|
|
125
121
|
s.add_dependency(%q<debugger>, [">= 0"])
|
|
126
122
|
s.add_dependency(%q<debugger-pry>, [">= 0"])
|
|
127
|
-
s.add_dependency(%q<simplecov>, [">= 0"])
|
|
128
|
-
s.add_dependency(%q<micron>, [">= 0"])
|
|
129
|
-
s.add_dependency(%q<coveralls>, [">= 0"])
|
|
130
|
-
s.add_dependency(%q<webmock>, [">= 0"])
|
|
131
|
-
s.add_dependency(%q<mocha>, [">= 0"])
|
|
132
123
|
s.add_dependency(%q<test_guard>, [">= 0"])
|
|
133
124
|
s.add_dependency(%q<rb-inotify>, [">= 0"])
|
|
134
125
|
s.add_dependency(%q<rb-fsevent>, [">= 0"])
|
|
@@ -150,11 +141,6 @@ Gem::Specification.new do |s|
|
|
|
150
141
|
s.add_dependency(%q<pry>, [">= 0"])
|
|
151
142
|
s.add_dependency(%q<debugger>, [">= 0"])
|
|
152
143
|
s.add_dependency(%q<debugger-pry>, [">= 0"])
|
|
153
|
-
s.add_dependency(%q<simplecov>, [">= 0"])
|
|
154
|
-
s.add_dependency(%q<micron>, [">= 0"])
|
|
155
|
-
s.add_dependency(%q<coveralls>, [">= 0"])
|
|
156
|
-
s.add_dependency(%q<webmock>, [">= 0"])
|
|
157
|
-
s.add_dependency(%q<mocha>, [">= 0"])
|
|
158
144
|
s.add_dependency(%q<test_guard>, [">= 0"])
|
|
159
145
|
s.add_dependency(%q<rb-inotify>, [">= 0"])
|
|
160
146
|
s.add_dependency(%q<rb-fsevent>, [">= 0"])
|
|
@@ -34,8 +34,17 @@ module Bixby
|
|
|
34
34
|
|
|
35
35
|
# Setup the ENV for exec
|
|
36
36
|
def setup_env
|
|
37
|
+
# use the correct ruby bin
|
|
38
|
+
path = ENV["PATH"].dup
|
|
39
|
+
ruby_dir = RbConfig::CONFIG['bindir']
|
|
40
|
+
if !path.include? ruby_dir then
|
|
41
|
+
ENV["PATH"] = "#{ruby_dir}:#{path}"
|
|
42
|
+
end
|
|
43
|
+
|
|
37
44
|
# stick ourselves in RUBYLIB to speedup exec time
|
|
38
45
|
ENV["RUBYLIB"] = File.expand_path("../../../..", __FILE__)
|
|
46
|
+
|
|
47
|
+
# load helper script
|
|
39
48
|
ENV["RUBYOPT"] = '-rbixby-client/script'
|
|
40
49
|
end
|
|
41
50
|
|
|
@@ -5,10 +5,36 @@ module Bixby
|
|
|
5
5
|
|
|
6
6
|
class << self
|
|
7
7
|
|
|
8
|
+
|
|
9
|
+
# Public API methods
|
|
10
|
+
|
|
11
|
+
def list(*args)
|
|
12
|
+
raise NotImplementedError
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def find(id)
|
|
16
|
+
raise NotImplementedError
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def update(id, data)
|
|
20
|
+
raise NotImplementedError
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def destroy(id)
|
|
24
|
+
raise NotImplementedError
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
private
|
|
30
|
+
|
|
31
|
+
# Get the object at the given URL
|
|
32
|
+
#
|
|
33
|
+
# @param [String] url
|
|
34
|
+
#
|
|
35
|
+
# @return [Object] single object or an array of objects
|
|
8
36
|
def get(url)
|
|
9
|
-
req =
|
|
10
|
-
req.headers["Content-Type"] = "application/json"
|
|
11
|
-
req.headers["Accept"] = "application/json" # temp workaround, manager should always return JSON on REST urls
|
|
37
|
+
req = create_req(url)
|
|
12
38
|
Bixby.client.sign_http_request(req)
|
|
13
39
|
res = HTTPI.get(req)
|
|
14
40
|
if res.error? then
|
|
@@ -19,17 +45,68 @@ module Bixby
|
|
|
19
45
|
if data.kind_of? Array then
|
|
20
46
|
return data.map{ |d| self.new(d) }
|
|
21
47
|
else
|
|
22
|
-
return self.new(
|
|
48
|
+
return self.new(data)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Put some data at the given URL (update an object)
|
|
53
|
+
#
|
|
54
|
+
# @param [String] url
|
|
55
|
+
# @param [Hash] data to update
|
|
56
|
+
#
|
|
57
|
+
# @return [Boolean]
|
|
58
|
+
def put(url, data)
|
|
59
|
+
req = create_req(url)
|
|
60
|
+
req.body = MultiJson.dump(data)
|
|
61
|
+
Bixby.client.sign_http_request(req)
|
|
62
|
+
res = HTTPI.put(req)
|
|
63
|
+
if res.error? then
|
|
64
|
+
raise "error" # TODO
|
|
65
|
+
end
|
|
66
|
+
true
|
|
67
|
+
end
|
|
68
|
+
alias_method :patch, :put
|
|
69
|
+
|
|
70
|
+
# Delete the resource at the given URL
|
|
71
|
+
#
|
|
72
|
+
# @param [String] url
|
|
73
|
+
#
|
|
74
|
+
# @return [Boolean]
|
|
75
|
+
def delete(url)
|
|
76
|
+
req = create_req(url)
|
|
77
|
+
Bixby.client.sign_http_request(req)
|
|
78
|
+
res = HTTPI.delete(req)
|
|
79
|
+
if res.error? then
|
|
80
|
+
raise "error" # TODO
|
|
23
81
|
end
|
|
82
|
+
puts res.body
|
|
83
|
+
true
|
|
24
84
|
end
|
|
25
85
|
|
|
86
|
+
# Create a fully qualified API URL
|
|
87
|
+
#
|
|
88
|
+
# @param [String] path or a list of paths
|
|
89
|
+
#
|
|
90
|
+
# @return [String] API URL
|
|
26
91
|
def api_uri(*args)
|
|
27
92
|
if args.first !~ %r{^/rest/} then
|
|
28
|
-
args.unshift "/rest
|
|
93
|
+
args.unshift File.join("/rest", args.shift) # prepend /rest
|
|
29
94
|
end
|
|
30
95
|
URI.join(Bixby.client.manager_uri, *args).to_s
|
|
31
96
|
end
|
|
32
97
|
|
|
98
|
+
# Create a REST request
|
|
99
|
+
#
|
|
100
|
+
# @param [String] url
|
|
101
|
+
#
|
|
102
|
+
# @return [HTTPI::Request]
|
|
103
|
+
def create_req(url)
|
|
104
|
+
req = HTTPI::Request.new(api_uri(url))
|
|
105
|
+
req.headers["Content-Type"] = "application/json"
|
|
106
|
+
req.headers["Accept"] = "application/json" # temp workaround, manager should always return JSON on REST urls
|
|
107
|
+
req
|
|
108
|
+
end
|
|
109
|
+
|
|
33
110
|
end # self
|
|
34
111
|
|
|
35
112
|
def initialize(hash=nil)
|
|
@@ -45,14 +122,13 @@ module Bixby
|
|
|
45
122
|
EOF
|
|
46
123
|
eval(code)
|
|
47
124
|
end
|
|
125
|
+
end
|
|
48
126
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
end
|
|
53
|
-
return nil
|
|
127
|
+
def [](key)
|
|
128
|
+
if self.respond_to?(key.to_sym) then
|
|
129
|
+
return self.send(key.to_sym)
|
|
54
130
|
end
|
|
55
|
-
|
|
131
|
+
return nil
|
|
56
132
|
end
|
|
57
133
|
|
|
58
134
|
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
|
|
2
|
+
module Bixby
|
|
3
|
+
module Monitoring
|
|
4
|
+
|
|
5
|
+
# Update the check configuration for the specified Agent and restart the
|
|
6
|
+
# monitoring daemon.
|
|
7
|
+
#
|
|
8
|
+
# @param [Agent] agent
|
|
9
|
+
#
|
|
10
|
+
# @return [CommandResponse]
|
|
11
|
+
def self.update_check_config(agent)
|
|
12
|
+
if agent.kind_of? Bixby::Model::Agent then
|
|
13
|
+
agent = agent.id
|
|
14
|
+
end
|
|
15
|
+
req = JsonRequest.new("monitoring:update_check_config", [ agent ])
|
|
16
|
+
return Bixby.client.exec_api(req)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end # Monitoring
|
|
20
|
+
end # Bixby
|
|
@@ -32,5 +32,56 @@ module Bixby
|
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
|
|
35
|
+
# Download the given list of files
|
|
36
|
+
#
|
|
37
|
+
# @param [CommandSpec] cmd CommandSpec representing the Bundle to which the files belong
|
|
38
|
+
# @param [Hash] files Hash, returned from #list_files
|
|
39
|
+
#
|
|
40
|
+
# @deprecated Use {#list_files} and {#fetch_file} respectively
|
|
41
|
+
def self.download_files(cmd, files)
|
|
42
|
+
return if files.nil? or files.empty?
|
|
43
|
+
|
|
44
|
+
local_path = cmd.bundle_dir
|
|
45
|
+
digest = cmd.load_digest
|
|
46
|
+
files.each do |f|
|
|
47
|
+
|
|
48
|
+
fetch = true
|
|
49
|
+
if not digest then
|
|
50
|
+
fetch = true
|
|
51
|
+
elsif df = digest["files"].find{ |h| h["file"] == f["file"] } then
|
|
52
|
+
# compare digest w/ stored one if we have it
|
|
53
|
+
fetch = (df["digest"] != f["digest"])
|
|
54
|
+
else
|
|
55
|
+
fetch = true
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
if not fetch then
|
|
59
|
+
debug { "skipping: #{f}" }
|
|
60
|
+
next
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
debug { "fetching: #{f}"}
|
|
64
|
+
|
|
65
|
+
params = cmd.to_hash
|
|
66
|
+
params.delete(:digest)
|
|
67
|
+
|
|
68
|
+
filename = File.join(local_path, f['file'])
|
|
69
|
+
path = File.dirname(filename)
|
|
70
|
+
if not File.exist? path then
|
|
71
|
+
FileUtils.mkdir_p(path)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
req = JsonRequest.new("provisioning:fetch_file", [ params, f['file'] ])
|
|
75
|
+
Bixby.client.exec_api_download(req, filename)
|
|
76
|
+
if f['file'] =~ /^bin/ then
|
|
77
|
+
# correct permissions for executables
|
|
78
|
+
FileUtils.chmod(0755, filename)
|
|
79
|
+
end
|
|
80
|
+
end # files.each
|
|
81
|
+
|
|
82
|
+
cmd.update_digest
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
|
|
35
86
|
end
|
|
36
87
|
end
|
data/lib/bixby-client/modules.rb
CHANGED
data/test/helper.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bixby-client
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Chetan Sarva
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2013-
|
|
11
|
+
date: 2013-11-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bixby-common
|
|
@@ -220,76 +220,6 @@ dependencies:
|
|
|
220
220
|
- - '>='
|
|
221
221
|
- !ruby/object:Gem::Version
|
|
222
222
|
version: '0'
|
|
223
|
-
- !ruby/object:Gem::Dependency
|
|
224
|
-
name: simplecov
|
|
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: micron
|
|
239
|
-
requirement: !ruby/object:Gem::Requirement
|
|
240
|
-
requirements:
|
|
241
|
-
- - '>='
|
|
242
|
-
- !ruby/object:Gem::Version
|
|
243
|
-
version: '0'
|
|
244
|
-
type: :development
|
|
245
|
-
prerelease: false
|
|
246
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
247
|
-
requirements:
|
|
248
|
-
- - '>='
|
|
249
|
-
- !ruby/object:Gem::Version
|
|
250
|
-
version: '0'
|
|
251
|
-
- !ruby/object:Gem::Dependency
|
|
252
|
-
name: coveralls
|
|
253
|
-
requirement: !ruby/object:Gem::Requirement
|
|
254
|
-
requirements:
|
|
255
|
-
- - '>='
|
|
256
|
-
- !ruby/object:Gem::Version
|
|
257
|
-
version: '0'
|
|
258
|
-
type: :development
|
|
259
|
-
prerelease: false
|
|
260
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
261
|
-
requirements:
|
|
262
|
-
- - '>='
|
|
263
|
-
- !ruby/object:Gem::Version
|
|
264
|
-
version: '0'
|
|
265
|
-
- !ruby/object:Gem::Dependency
|
|
266
|
-
name: webmock
|
|
267
|
-
requirement: !ruby/object:Gem::Requirement
|
|
268
|
-
requirements:
|
|
269
|
-
- - '>='
|
|
270
|
-
- !ruby/object:Gem::Version
|
|
271
|
-
version: '0'
|
|
272
|
-
type: :development
|
|
273
|
-
prerelease: false
|
|
274
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
275
|
-
requirements:
|
|
276
|
-
- - '>='
|
|
277
|
-
- !ruby/object:Gem::Version
|
|
278
|
-
version: '0'
|
|
279
|
-
- !ruby/object:Gem::Dependency
|
|
280
|
-
name: mocha
|
|
281
|
-
requirement: !ruby/object:Gem::Requirement
|
|
282
|
-
requirements:
|
|
283
|
-
- - '>='
|
|
284
|
-
- !ruby/object:Gem::Version
|
|
285
|
-
version: '0'
|
|
286
|
-
type: :development
|
|
287
|
-
prerelease: false
|
|
288
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
289
|
-
requirements:
|
|
290
|
-
- - '>='
|
|
291
|
-
- !ruby/object:Gem::Version
|
|
292
|
-
version: '0'
|
|
293
223
|
- !ruby/object:Gem::Dependency
|
|
294
224
|
name: test_guard
|
|
295
225
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -383,6 +313,7 @@ files:
|
|
|
383
313
|
- lib/bixby-client/modules.rb
|
|
384
314
|
- lib/bixby-client/modules/inventory.rb
|
|
385
315
|
- lib/bixby-client/modules/metrics.rb
|
|
316
|
+
- lib/bixby-client/modules/monitoring.rb
|
|
386
317
|
- lib/bixby-client/modules/repository.rb
|
|
387
318
|
- lib/bixby-client/patch/shellout.rb
|
|
388
319
|
- lib/bixby-client/platform_util.rb
|