rest-ftp-daemon 0.306.1 → 0.306.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 372111b2b2e4ff339dd45950692792e665189752
4
- data.tar.gz: 951510fba629f42100adc30c231918fad393c19c
3
+ metadata.gz: e3ba09263b0e0f9b574f05b07e686181872696be
4
+ data.tar.gz: cb8d3c93c629c8fe885ae561c0a65bcfcca49115
5
5
  SHA512:
6
- metadata.gz: d0fb55a01ba93e20345e929c3f21191aa43de48934a243f2f007bfb6ec518f360930f543220d8071e8c1bb88932e6f89a932cde241b0abd7e85a4d2e24cf0b64
7
- data.tar.gz: eba0e1863549d8de14877bc095324594e8aa217f17c6589b6fdd1763821226673782767680890a4aae6a56f8f16fa64211308ee5d26b83b97a2a4081a2e54625
6
+ metadata.gz: 020c5dc65568a55a968cf2d1dffd5a85807df9ee204fda3843dd3ba837b3696da9baef16efde60914f980ef1895eb6e6b66f9e46e27b3f4fa66f394ed1e3c71f
7
+ data.tar.gz: e7fbfb2d4e4fa68aa75d51d87aa631dd698ee6275222d94dcfcedf5f4b2370662f1d6a2bc478390b562ca812cdc59c8c322507510e4c25f1c1f6e03b1e4d6e22
data/Gemfile.lock CHANGED
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rest-ftp-daemon (0.306.1)
4
+ rest-ftp-daemon (0.306.3)
5
+ activesupport (~> 4.2)
5
6
  api-auth
6
- bmc-daemon-lib (~> 0.2)
7
+ bmc-daemon-lib (~> 0.3.1)
7
8
  double-bag-ftps
8
9
  facter
9
10
  get_process_mem
@@ -22,13 +23,14 @@ GEM
22
23
  remote: http://rubygems.org/
23
24
  specs:
24
25
  CFPropertyList (2.2.8)
25
- activesupport (5.0.0)
26
- concurrent-ruby (~> 1.0, >= 1.0.2)
26
+ activesupport (4.2.7.1)
27
27
  i18n (~> 0.7)
28
+ json (~> 1.7, >= 1.7.7)
28
29
  minitest (~> 5.1)
30
+ thread_safe (~> 0.3, >= 0.3.4)
29
31
  tzinfo (~> 1.1)
30
32
  addressable (2.4.0)
31
- api-auth (2.0.0)
33
+ api-auth (2.0.1)
32
34
  ast (2.3.0)
33
35
  astrolabe (1.3.1)
34
36
  parser (~> 2.2)
@@ -36,7 +38,7 @@ GEM
36
38
  descendants_tracker (~> 0.0.4)
37
39
  ice_nine (~> 0.11.0)
38
40
  thread_safe (~> 0.3, >= 0.3.1)
39
- bmc-daemon-lib (0.2.0)
41
+ bmc-daemon-lib (0.3.2)
40
42
  chamber (~> 2.9)
41
43
  builder (3.2.2)
42
44
  chamber (2.9.0)
@@ -45,14 +47,13 @@ GEM
45
47
  coderay (1.1.1)
46
48
  coercible (1.0.0)
47
49
  descendants_tracker (~> 0.0.1)
48
- concurrent-ruby (1.0.2)
49
- daemons (1.2.3)
50
+ daemons (1.2.4)
50
51
  descendants_tracker (0.0.4)
51
52
  thread_safe (~> 0.3, >= 0.3.1)
52
53
  diff-lcs (1.2.5)
53
54
  domain_name (0.5.20160615)
54
55
  unf (>= 0.0.5, < 1.0.0)
55
- double-bag-ftps (0.1.2)
56
+ double-bag-ftps (0.1.3)
56
57
  enumerable-lazy (0.0.1)
57
58
  equalizer (0.0.11)
58
59
  eventmachine (1.2.0.1)
@@ -60,7 +61,7 @@ GEM
60
61
  CFPropertyList (~> 2.2.6)
61
62
  ffi (1.9.14)
62
63
  get_process_mem (0.2.1)
63
- grape (0.16.2)
64
+ grape (0.17.0)
64
65
  activesupport
65
66
  builder
66
67
  hashie (>= 2.1.0)
@@ -76,7 +77,7 @@ GEM
76
77
  haml (4.0.7)
77
78
  tilt
78
79
  hashie (3.4.4)
79
- http (2.0.2)
80
+ http (2.0.3)
80
81
  addressable (~> 2.3)
81
82
  http-cookie (~> 1.0)
82
83
  http-form_data (~> 1.0.1)
@@ -99,7 +100,7 @@ GEM
99
100
  net-ssh (>= 2.6.5)
100
101
  net-ssh (3.2.0)
101
102
  netrc (0.11.0)
102
- newrelic_rpm (3.16.0.318)
103
+ newrelic_rpm (3.16.1.320)
103
104
  parser (2.3.1.2)
104
105
  ast (~> 2.2)
105
106
  powerpack (0.1.1)
@@ -120,7 +121,7 @@ GEM
120
121
  rspec-core (~> 3.5.0)
121
122
  rspec-expectations (~> 3.5.0)
122
123
  rspec-mocks (~> 3.5.0)
123
- rspec-core (3.5.1)
124
+ rspec-core (3.5.2)
124
125
  rspec-support (~> 3.5.0)
125
126
  rspec-expectations (3.5.0)
126
127
  diff-lcs (>= 1.2.0, < 2.0)
@@ -171,4 +172,4 @@ DEPENDENCIES
171
172
  rubocop (~> 0.32.0)
172
173
 
173
174
  BUNDLED WITH
174
- 1.11.2
175
+ 1.12.5
data/README.md CHANGED
@@ -293,7 +293,7 @@ TODO for this document
293
293
  Debian install preparation
294
294
  ------------------------------------------------------------------------------------
295
295
 
296
- This project is available as a rubygem, requires Ruby 2.2 and RubyGems installed.
296
+ This project is available as a rubygem, requires Ruby 2.2.2 and RubyGems installed.
297
297
 
298
298
  #### Using rbenv and ruby-build
299
299
 
@@ -330,8 +330,8 @@ Use a dedicated user for the daemon, switch to this user and enable rbenv
330
330
  Install the right ruby version and activate it
331
331
 
332
332
  ```
333
- # rbenv install 2.2.0
334
- # rbenv local 2.2.0
333
+ # rbenv install 2.2.2
334
+ # rbenv local 2.2.2
335
335
  # rbenv rehash
336
336
  ```
337
337
 
data/config.ru CHANGED
@@ -12,6 +12,7 @@ $counters = RestFtpDaemon::Counters.new
12
12
 
13
13
  # Initialize workers
14
14
  $pool = RestFtpDaemon::WorkerPool.new
15
+ $pool.start!
15
16
 
16
17
  # Rack authent
17
18
  unless Conf[:adminpwd].nil?
data/defaults.yml CHANGED
@@ -58,6 +58,8 @@ newrelic:
58
58
  logs:
59
59
  path: "/tmp/"
60
60
 
61
+ default: "rftpd-environment.log"
62
+
61
63
  thin: "rftpd-environment-thin.log"
62
64
  newrelic: "rftpd-environment-newrelic.log"
63
65
  queue: "rftpd-environment-core.log"
@@ -3,8 +3,8 @@ module RestFtpDaemon
3
3
 
4
4
  def self.sample
5
5
  # Check validity of globals
6
- return log_error "Metrics.sample: invalid WorkerPool" unless $pool.is_a? RestFtpDaemon::WorkerPool
7
- return log_error "Metrics.sample: invalid JobQueue" unless $queue.is_a? RestFtpDaemon::JobQueue
6
+ return unless $pool.is_a? RestFtpDaemon::WorkerPool
7
+ return unless $queue.is_a? RestFtpDaemon::JobQueue
8
8
 
9
9
  # Prepare external deps
10
10
  mem = GetProcessMem.new
@@ -17,7 +17,7 @@ body, table tr td, .fixed {
17
17
  display: inline-block;
18
18
  background-color: #fefefe;
19
19
  padding: 0 3px;
20
- margin: 0 2px;
20
+ margin: 0 1px;
21
21
  border: 1px solid silver;
22
22
  border-radius: 0.25em;
23
23
  cursor: pointer;
@@ -24,7 +24,7 @@
24
24
 
25
25
  - unless alive
26
26
  - trclass = "danger"
27
- - status = "DEAD"
27
+ - status = "UNREACHABLE"
28
28
 
29
29
  %tr{class: trclass.to_s}
30
30
  %td= wid
@@ -19,12 +19,38 @@ module RestFtpDaemon
19
19
  @mutex = Mutex.new
20
20
 
21
21
  # Identifiers generator
22
- @last_worker_id = 0
22
+ @seqno = 0
23
+ end
24
+
25
+ def start!
26
+ # Read configuration or initialize with empty hash
27
+ pools = Conf.at[:pools]
28
+ pools = {} unless pools.is_a? Hash
29
+
30
+ # Minimum one worker on DEFAULT_POOL
31
+ if !(pools.is_a? Hash)
32
+ log_error "create_threads: one JobWorker is the minimum (#{pools.inspect}"
33
+ end
34
+ log_info "WorkerPool creating all workers with #{pools.to_hash.inspect}"
23
35
 
24
- # Create worker threads
25
- create_threads
36
+ # Start ConchitaWorker and ReporterWorker
37
+ create_thread ConchitaWorker, :conchita
38
+ create_thread ReporterWorker, :reporter
39
+
40
+ # Start JobWorkers threads, ensure we have at least one worker in default pool
41
+ pools[DEFAULT_POOL] ||= 1
42
+ pools.each do |pool, count|
43
+ count.times do
44
+ my_wid = next_wid()
45
+ create_thread TransferWorker, my_wid, pool
46
+ end
47
+ end
48
+
49
+ rescue StandardError => ex
50
+ log_error "EXCEPTION: #{ex.message}", ex.backtrace
26
51
  end
27
52
 
53
+
28
54
  def worker_variables
29
55
  vars = {}
30
56
  @workers.collect do |wid, worker|
@@ -53,42 +79,15 @@ module RestFtpDaemon
53
79
  vars
54
80
  end
55
81
 
56
- def next_worker_id
82
+ def next_wid
57
83
  @mutex.synchronize do
58
- @last_worker_id += 1
84
+ @seqno += 1
59
85
  end
60
- "w#{@last_worker_id}"
61
- end
62
-
63
- def create_threads
64
- # Read configuration or initialize with empty hash
65
- pools = Conf.at[:pools]
66
- pools = {} unless pools.is_a? Hash
67
-
68
- # Minimum one worker on DEFAULT_POOL
69
- if !(pools.is_a? Hash)
70
- log_error "create_threads: one JobWorker is the minimum (#{pools.inspect}"
71
- end
72
- log_info "WorkerPool creating all workers with #{pools.to_hash.inspect}"
73
-
74
- # Start ConchitaWorker and ReporterWorker
75
- create_thread :conchita, ConchitaWorker
76
- create_thread :reporter, ReporterWorker
77
-
78
- # Start JobWorkers threads, ensure we have at least one worker in default pool
79
- pools[DEFAULT_POOL] ||= 1
80
- pools.each do |pool, count|
81
- count.times do
82
- wid = next_worker_id
83
- create_thread(wid, TransferWorker, pool)
84
- end
85
- end
86
-
87
- rescue StandardError => ex
88
- log_error "EXCEPTION: #{ex.message}", ex.backtrace
86
+ "w#{@seqno}"
89
87
  end
90
88
 
91
- def create_thread wid, klass, pool = nil
89
+ def create_thread klass, wid, pool = nil
90
+ # def create_thread wid, klass, pool = nil
92
91
  # Spawn thread and add it to my index
93
92
  log_info "spawning #{klass.name} wid[#{wid}] pool[#{pool}]"
94
93
  @workers[wid] = Thread.new do
@@ -13,7 +13,9 @@ module RestFtpDaemon
13
13
  @report_newrelic = Conf.newrelic_enabled?
14
14
 
15
15
  # Check that everything is OK
16
- return "invalid timer" unless @config[:timer].to_i > 0
16
+ return "invalid timer" unless @config[:timer].to_i > 0
17
+ # return "invalid WorkerPool" unless $pool.is_a? RestFtpDaemon::WorkerPool
18
+ # return "invalid JobQueue" unless $queue.is_a? RestFtpDaemon::JobQueue
17
19
  return false
18
20
  end
19
21
 
@@ -40,6 +42,12 @@ module RestFtpDaemon
40
42
  # Get common metrics and dump them to logs
41
43
  log_debug "begin metrics sample"
42
44
  metrics = Metrics.sample
45
+
46
+ # Skip following if no valid metrics collected
47
+ unless metrics.is_a? Hash
48
+ log_error "unable to collect metrics"
49
+ return
50
+ end
43
51
  log_info "collected metrics (newrelic: #{@report_newrelic})", metrics
44
52
 
45
53
  # Transpose metrics to NewRelic metrics
@@ -47,6 +55,7 @@ module RestFtpDaemon
47
55
  end
48
56
 
49
57
  def report_newrelic metrics
58
+
50
59
  metrics_newrelic = {}
51
60
  metrics.each do |group, pairs|
52
61
  pairs.each do |key, value|
@@ -2,7 +2,7 @@
2
2
  Gem::Specification.new do |spec|
3
3
 
4
4
  # Project version
5
- spec.version = "0.306.1"
5
+ spec.version = "0.306.3"
6
6
 
7
7
  # Project description
8
8
  spec.name = "rest-ftp-daemon"
@@ -33,9 +33,10 @@ Gem::Specification.new do |spec|
33
33
  spec.add_development_dependency "http"
34
34
 
35
35
  # Runtime dependencies
36
- spec.add_runtime_dependency "bmc-daemon-lib", "~> 0.2"
36
+ spec.add_runtime_dependency "bmc-daemon-lib", "~> 0.3.1"
37
37
  spec.add_runtime_dependency "json", "~> 1.8"
38
38
  spec.add_runtime_dependency "thin", "~> 1.7"
39
+ spec.add_runtime_dependency "activesupport", "~> 4.2"
39
40
  spec.add_runtime_dependency "grape"
40
41
  spec.add_runtime_dependency "grape-entity"
41
42
  spec.add_runtime_dependency "settingslogic"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rest-ftp-daemon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.306.1
4
+ version: 0.306.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bruno MEDICI
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-25 00:00:00.000000000 Z
11
+ date: 2016-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0.2'
103
+ version: 0.3.1
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0.2'
110
+ version: 0.3.1
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: json
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: '1.7'
139
+ - !ruby/object:Gem::Dependency
140
+ name: activesupport
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '4.2'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '4.2'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: grape
141
155
  requirement: !ruby/object:Gem::Requirement
@@ -394,7 +408,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
394
408
  version: '0'
395
409
  requirements: []
396
410
  rubyforge_project:
397
- rubygems_version: 2.6.6
411
+ rubygems_version: 2.4.5
398
412
  signing_key:
399
413
  specification_version: 4
400
414
  summary: RESTful FTP client daemon