usbunfreeze_daemon 0.1.1 → 0.2.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/config/usbunfreeze.yaml.example +2 -1
- data/lib/usbunfreeze_daemon/server.rb +21 -11
- data/lib/usbunfreeze_daemon/version.rb +1 -1
- data/usbunfreeze_daemon.gemspec +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 725ed494565429b5bbedd0da8452be558a38db42
|
4
|
+
data.tar.gz: 845b3b9a5e9800dc8d7a417cbfa496a360e9867f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5478c8605e039f062954c7676dd86173d8eecef35fcc4143e642a85edbad48901c7472e463fecca8e5b47667bc57de72d922efd17063535d5afcd43e64554334
|
7
|
+
data.tar.gz: 2c17a37668e607b7e6c679d030505ad05dca4df165c3dc3ab1d47471780b353a98757dc5b9d382b49b7059537509f1a24c7c96c41288f324e38a3f672c0866d3
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'settingslogic'
|
2
|
-
require 'aws-sdk
|
2
|
+
require 'aws-sdk'
|
3
3
|
require 'json'
|
4
4
|
|
5
5
|
module UsbunfreezeDaemon
|
@@ -19,20 +19,27 @@ module UsbunfreezeDaemon
|
|
19
19
|
|
20
20
|
@logger.info "Running with executable=#{Settings.exec_command}"
|
21
21
|
|
22
|
-
sqs =
|
23
|
-
|
22
|
+
sqs = Aws::SQS::Client.new(region: Settings.sqs.region,
|
23
|
+
access_key_id: Settings.sqs.access_key_id,
|
24
|
+
secret_access_key: Settings.sqs.secret_access_key)
|
24
25
|
raise 'No SQS object' unless sqs
|
25
26
|
|
26
27
|
@logger.info "Get queue '#{Settings.sqs.queue_name}' ..."
|
27
|
-
q = sqs.
|
28
|
+
q = sqs.get_queue_url(queue_name: Settings.sqs.queue_name)
|
28
29
|
raise 'Cannot get queue' unless q
|
29
|
-
raise 'Queue does not exist' unless q.exists?
|
30
30
|
|
31
|
-
interval = [Settings.sqs.interval.to_i,
|
31
|
+
interval = [Settings.sqs.interval.to_i, 5].max
|
32
32
|
@logger.info "Start polling queue each #{interval} seconds"
|
33
33
|
|
34
|
-
|
35
|
-
|
34
|
+
while true do
|
35
|
+
sleep interval
|
36
|
+
messages = sqs.receive_message(queue_url: q.data.queue_url, wait_time_seconds: interval)
|
37
|
+
if not messages.messages.empty?
|
38
|
+
m = messages.messages.first
|
39
|
+
handle_message m
|
40
|
+
resp = sqs.delete_message(queue_url: q.data.queue_url, receipt_handle: m.receipt_handle)
|
41
|
+
@logger.info "Deleting message returned data: #{resp.data}" unless resp.data
|
42
|
+
end
|
36
43
|
end
|
37
44
|
|
38
45
|
rescue => e
|
@@ -46,11 +53,14 @@ module UsbunfreezeDaemon
|
|
46
53
|
# Handle an incoming SQS message
|
47
54
|
# Wrong message is not fatal error
|
48
55
|
def handle_message m
|
49
|
-
@logger.info "Get a messsage #{m.
|
56
|
+
@logger.info "Get a messsage #{m.message_id}, received at #{Time.now}"
|
50
57
|
@logger.info "Object body: #{m.body}"
|
51
58
|
json = JSON.parse(m.body)
|
52
59
|
action = json['message'].downcase
|
53
|
-
if json['
|
60
|
+
if json['timestamp']
|
61
|
+
@logger.info "Message was sent at #{json['timestamp']}"
|
62
|
+
end
|
63
|
+
if action == 'unfreeze'
|
54
64
|
@logger.info "Launching a command"
|
55
65
|
system(Settings.exec_command)
|
56
66
|
@logger.info "Command execution code: #{$?}"
|
@@ -63,4 +73,4 @@ module UsbunfreezeDaemon
|
|
63
73
|
|
64
74
|
end
|
65
75
|
|
66
|
-
end
|
76
|
+
end
|
data/usbunfreeze_daemon.gemspec
CHANGED
@@ -22,6 +22,6 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
23
23
|
spec.add_runtime_dependency "daemons", "~> 1.1.0"
|
24
24
|
spec.add_runtime_dependency "settingslogic", "~> 2.0.0"
|
25
|
-
spec.add_runtime_dependency "aws-sdk
|
25
|
+
spec.add_runtime_dependency "aws-sdk", "~> 2"
|
26
26
|
spec.add_runtime_dependency "json", "~> 1.8.0"
|
27
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: usbunfreeze_daemon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- theirix
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -67,19 +67,19 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 2.0.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name: aws-sdk
|
70
|
+
name: aws-sdk
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: '2'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: '2'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: json
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|