cloudblocks 0.0.12c → 0.0.12d
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.
- data/bin/{quartz → cb-agent} +52 -28
- metadata +4 -4
data/bin/{quartz → cb-agent}
RENAMED
@@ -34,13 +34,18 @@ public
|
|
34
34
|
|
35
35
|
def start
|
36
36
|
begin
|
37
|
-
@log.info "Starting
|
38
|
-
puts "Starting
|
37
|
+
@log.info "Starting the CloudBlocks Agent"
|
38
|
+
puts "Starting the CloudBlocks Agent"
|
39
39
|
|
40
40
|
pid = get_pid
|
41
41
|
if pid != 0
|
42
|
-
|
43
|
-
|
42
|
+
#check if the process is actually running
|
43
|
+
if pid_process_running?(pid)
|
44
|
+
warn "The CloudBlocks Agent is already running. Use stop command to stop it or --help for more info"
|
45
|
+
exit -1
|
46
|
+
else
|
47
|
+
File.delete(@pid_full)
|
48
|
+
end
|
44
49
|
end
|
45
50
|
|
46
51
|
check_version
|
@@ -64,7 +69,7 @@ def start
|
|
64
69
|
Process.detach(pid)
|
65
70
|
rescue => exc
|
66
71
|
Process.kill('TERM', pid)
|
67
|
-
warn "Cannot start
|
72
|
+
warn "Cannot start the CloudBlocks Agent: #{exc.message}"
|
68
73
|
end
|
69
74
|
else
|
70
75
|
run
|
@@ -75,7 +80,7 @@ end
|
|
75
80
|
|
76
81
|
def stop
|
77
82
|
pid = get_pid
|
78
|
-
@log.info "Stopping
|
83
|
+
@log.info "Stopping the CloudBlocks Agent"
|
79
84
|
begin
|
80
85
|
@quartz.status(2, @version, plugin_meta_data)
|
81
86
|
EM.stop
|
@@ -88,15 +93,15 @@ def stop
|
|
88
93
|
rescue
|
89
94
|
end
|
90
95
|
File.delete(@pid_full)
|
91
|
-
puts "
|
96
|
+
puts "The CloudBlocks Agent was stopped"
|
92
97
|
else
|
93
|
-
warn "
|
98
|
+
warn "Did nothing - The CloudBlocks Agent was not running"
|
94
99
|
exit -1
|
95
100
|
end
|
96
101
|
end
|
97
102
|
|
98
103
|
def register
|
99
|
-
puts "Registering
|
104
|
+
puts "Registering the CloudBlocks Agent with #{@url} and API Key #{@api_key}"
|
100
105
|
os_name = RUBY_PLATFORM
|
101
106
|
os_id = os_name.include?('darwin') ? 5 : 1
|
102
107
|
agent = { :agent_type_id => os_id, :agent_name => Socket.gethostname, :agent_timezone => Time.new.zone, :extra => os_name}
|
@@ -113,7 +118,7 @@ def register
|
|
113
118
|
end
|
114
119
|
|
115
120
|
def unregister
|
116
|
-
puts "Unregister
|
121
|
+
puts "Unregister the CloudBlocks Agent #{@agent_id} with #{@url}"
|
117
122
|
@agent_id = ""
|
118
123
|
@quartz.unregister(@agent_id)
|
119
124
|
save_config
|
@@ -226,10 +231,10 @@ def check_version
|
|
226
231
|
result = @quartz.check_version
|
227
232
|
if result['ok']
|
228
233
|
latest = result['latest']
|
229
|
-
@log.warn 'A newer version of
|
234
|
+
@log.warn 'A newer version of the CloudBlocks Agent is available. Please update the cloudblocks gem. See http://help.cloudblocks.co for more info' if latest > @version
|
230
235
|
end
|
231
236
|
rescue => exc
|
232
|
-
warn "Cannot connect to the server"
|
237
|
+
warn "Cannot connect to the CloudBlocks server"
|
233
238
|
exit -1
|
234
239
|
end
|
235
240
|
end
|
@@ -270,25 +275,38 @@ def get_pid
|
|
270
275
|
file = File.new(@pid_full, "r")
|
271
276
|
pid = file.read
|
272
277
|
file.close
|
273
|
-
|
274
278
|
pid
|
275
279
|
else
|
276
280
|
0
|
277
281
|
end
|
278
282
|
end
|
279
283
|
|
284
|
+
def pid_process_running?(pid)
|
285
|
+
begin
|
286
|
+
pid_number = pid.to_i
|
287
|
+
Process.getpgid(pid_number)
|
288
|
+
true
|
289
|
+
rescue Errno::ESRCH
|
290
|
+
false
|
291
|
+
end
|
292
|
+
end
|
293
|
+
|
280
294
|
public
|
281
295
|
|
282
296
|
@version = 1
|
283
297
|
str_version = "0.0.#{@version}"
|
284
298
|
|
285
299
|
config_file = 'cloudblocks.yaml'
|
286
|
-
@pid_file = '
|
287
|
-
@log_file = '
|
300
|
+
@pid_file = 'cb-agent.pid'
|
301
|
+
@log_file = 'cb-agent.log'
|
288
302
|
@config_dir = File.join(File.expand_path('~'), '.cloudblocks')
|
289
303
|
@config_full = File.join(@config_dir, config_file)
|
290
|
-
|
291
|
-
@
|
304
|
+
|
305
|
+
@cb_tmp_dir = '/tmp/cloudblocks'
|
306
|
+
Dir.mkdir(@cb_tmp_dir) if !File.exists?(@cb_tmp_dir)
|
307
|
+
|
308
|
+
@pid_full = File.join(@cb_tmp_dir, @pid_file)
|
309
|
+
@log_full = File.join(@cb_tmp_dir, @log_file)
|
292
310
|
|
293
311
|
@api_key = ''
|
294
312
|
@faye_url = 'https://sockets.cloudblocks.co/push/'
|
@@ -303,10 +321,10 @@ command = nil
|
|
303
321
|
@realtime = true
|
304
322
|
OptionParser.new do |opts|
|
305
323
|
opts.banner = <<-EOF
|
306
|
-
|
324
|
+
CloudBlocks Agent. v#{str_version} (c) 2012 CloudBlocks
|
307
325
|
For more information please visit http://cloudblocks.co
|
308
326
|
|
309
|
-
Usage:
|
327
|
+
Usage: cb-agent [register|unregister|start|stop] [options]
|
310
328
|
|
311
329
|
Options:
|
312
330
|
EOF
|
@@ -328,7 +346,7 @@ EOF
|
|
328
346
|
@pid_full = v
|
329
347
|
end
|
330
348
|
|
331
|
-
opts.on('-l', '--log LOG', '
|
349
|
+
opts.on('-l', '--log LOG', 'Full log file path') do |v|
|
332
350
|
@log_full = v
|
333
351
|
end
|
334
352
|
|
@@ -362,10 +380,10 @@ EOF
|
|
362
380
|
puts <<-EOF
|
363
381
|
|
364
382
|
Commands:
|
365
|
-
register Register the
|
366
|
-
start Starts
|
367
|
-
stop Stops
|
368
|
-
unregister
|
383
|
+
register Register the CloudBlocks Agent
|
384
|
+
start Starts the CloudBlocks Agent as a deamon
|
385
|
+
stop Stops the CloudBlocks Agent daemon
|
386
|
+
unregister Unregisters the CloudBlocks Agent
|
369
387
|
|
370
388
|
EOF
|
371
389
|
exit 0
|
@@ -392,7 +410,7 @@ end
|
|
392
410
|
|
393
411
|
# still no api key, we need to get it
|
394
412
|
if @api_key.empty?
|
395
|
-
puts 'CloudBlocks
|
413
|
+
puts 'CloudBlocks Agent'
|
396
414
|
@api_key = ask('Please enter your API key. (you can find it at https://cloudblocks.co/me): ')
|
397
415
|
if @api_key.length != 32
|
398
416
|
puts 'Invalid API key'
|
@@ -416,7 +434,7 @@ if @agent_id.empty?
|
|
416
434
|
@quartz = CloudQuartz.new(:api_key => @api_key, :url => @url, :secret_key => @secret_key)
|
417
435
|
register
|
418
436
|
|
419
|
-
q = ask("Start the agent as daemon? ") { |q| q.default = "Y" }
|
437
|
+
q = ask("Start the agent as a daemon? ") { |q| q.default = "Y" }
|
420
438
|
if q.chomp.downcase != 'n'
|
421
439
|
@quartz = CloudQuartz.new(:api_key => @api_key, :url => @url, :agent_id => @agent_id, :secret_key => @secret_key)
|
422
440
|
start
|
@@ -429,7 +447,13 @@ if @agent_id.empty?
|
|
429
447
|
end
|
430
448
|
|
431
449
|
if command.nil? || command.empty?
|
432
|
-
|
450
|
+
pid = get_pid
|
451
|
+
#check if the process is actually running
|
452
|
+
if pid != 0 && pid_process_running?(pid)
|
453
|
+
puts "The CloudBlocks Agent is currently running. Use the stop command to stop it or --help for more info"
|
454
|
+
exit -1
|
455
|
+
end
|
456
|
+
puts 'The CloudBlocks Agent is currently not running. Use the start command to start it or --help for more information'
|
433
457
|
exit -1
|
434
458
|
end
|
435
459
|
|
@@ -439,7 +463,7 @@ unless commands.include?(command)
|
|
439
463
|
end
|
440
464
|
|
441
465
|
if (@agent_id.nil? || @agent_id.empty? || @agent_id.empty? || @secret_key.empty?) && command != 'register'
|
442
|
-
puts 'No Agent id found. Have you registered it yet? Use --help for more information'
|
466
|
+
puts 'No CloudBlocks Agent id found. Have you registered it yet? Use --help for more information'
|
443
467
|
exit -1
|
444
468
|
end
|
445
469
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloudblocks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.12d
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -140,10 +140,10 @@ dependencies:
|
|
140
140
|
- !ruby/object:Gem::Version
|
141
141
|
version: 1.6.11
|
142
142
|
description: See http://cloudblocks.co for more info
|
143
|
-
email: hello@
|
143
|
+
email: hello@thecloudblocks.com
|
144
144
|
executables:
|
145
145
|
- chief
|
146
|
-
-
|
146
|
+
- cb-agent
|
147
147
|
extensions: []
|
148
148
|
extra_rdoc_files: []
|
149
149
|
files:
|
@@ -161,7 +161,7 @@ files:
|
|
161
161
|
- lib/plugins/tester.rb
|
162
162
|
- lib/plugins/webget.rb
|
163
163
|
- bin/chief
|
164
|
-
- bin/
|
164
|
+
- bin/cb-agent
|
165
165
|
homepage: http://cloudblocks.co
|
166
166
|
licenses: []
|
167
167
|
post_install_message:
|