oneacct-export 0.3.0 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -1
  3. data/bin/oneacct-export +15 -3
  4. data/config/conf.yml +1 -0
  5. data/examples/usr/bin/oneacct-export-cron +31 -7
  6. data/lib/data_validators/apel_data_validator.rb +17 -5
  7. data/lib/data_validators/data_validator_helper.rb +1 -0
  8. data/lib/input_validator.rb +5 -0
  9. data/lib/one_data_accessor.rb +62 -10
  10. data/lib/one_worker.rb +89 -10
  11. data/lib/one_writer.rb +3 -1
  12. data/lib/oneacct_exporter.rb +3 -5
  13. data/lib/oneacct_exporter/version.rb +1 -1
  14. data/lib/oneacct_opts.rb +13 -3
  15. data/lib/output_types.rb +3 -3
  16. data/lib/templates/apel-0.2.erb +1 -1
  17. data/lib/templates/apel-0.4.erb +34 -0
  18. data/mock/one_data_accessor_cluster_01.xml +27 -0
  19. data/mock/one_data_accessor_cluster_02.xml +23 -0
  20. data/mock/one_data_accessor_host_01.xml +65 -0
  21. data/mock/one_data_accessor_host_02.xml +66 -0
  22. data/mock/one_data_accessor_host_03.xml +63 -0
  23. data/mock/one_data_accessor_host_04.xml +63 -0
  24. data/mock/one_data_accessor_host_05.xml +63 -0
  25. data/mock/one_worker_vm_number_of_public_ips_01.xml +275 -0
  26. data/mock/one_worker_vm_number_of_public_ips_02.xml +164 -0
  27. data/mock/one_worker_vm_number_of_public_ips_03.xml +189 -0
  28. data/mock/one_worker_vm_search_benchmark_01.xml +175 -0
  29. data/mock/one_worker_vm_search_benchmark_02.xml +175 -0
  30. data/oneacct-export.gemspec +6 -5
  31. data/spec/data_validators/apel_data_validator_spec.rb +72 -0
  32. data/spec/one_data_accessor_spec.rb +114 -43
  33. data/spec/one_worker_spec.rb +148 -18
  34. data/spec/oneacct_exporter_spec.rb +3 -13
  35. data/spec/oneacct_opts_spec.rb +22 -0
  36. data/spec/spec_helper.rb +2 -1
  37. metadata +40 -13
@@ -42,10 +42,7 @@ describe OneacctExporter do
42
42
 
43
43
  context 'with increasing batch number' do
44
44
  before :example do
45
- expect(oda).to receive(:vms).with(0, nil, nil).ordered { [1, 2, 3] }
46
- expect(oda).to receive(:vms).with(1, nil, nil).ordered { [4, 5, 6] }
47
- expect(oda).to receive(:vms).with(2, nil, nil).ordered { [7, 8, 9] }
48
- expect(oda).to receive(:vms).with(3, nil, nil).ordered { nil }
45
+ expect(oda).to receive(:vms).exactly(4).times.and_return([1, 2, 3], [4, 5, 6], [7, 8, 9], nil)
49
46
  end
50
47
 
51
48
  it 'will always finish when there are no more vms to process' do
@@ -56,10 +53,7 @@ describe OneacctExporter do
56
53
  context 'with non-empty batches of vms' do
57
54
  before :example do
58
55
  Sidekiq::Worker.clear_all
59
- allow(oda).to receive(:vms).with(0, nil, nil).ordered { [1, 2, 3] }
60
- allow(oda).to receive(:vms).with(1, nil, nil).ordered { [4, 5, 6] }
61
- allow(oda).to receive(:vms).with(2, nil, nil).ordered { [7, 8, 9] }
62
- allow(oda).to receive(:vms).with(3, nil, nil).ordered { nil }
56
+ allow(oda).to receive(:vms).exactly(4).times.and_return([1, 2, 3], [4, 5, 6], [7, 8, 9], nil)
63
57
  end
64
58
 
65
59
  after :example do
@@ -82,11 +76,7 @@ describe OneacctExporter do
82
76
  context 'with some empty batches of vms' do
83
77
  before :example do
84
78
  Sidekiq::Worker.clear_all
85
- allow(oda).to receive(:vms).with(0, nil, nil).ordered { [1, 2, 3] }
86
- allow(oda).to receive(:vms).with(1, nil, nil).ordered { [] }
87
- allow(oda).to receive(:vms).with(2, nil, nil).ordered { [7, 8, 9] }
88
- allow(oda).to receive(:vms).with(3, nil, nil).ordered { [] }
89
- allow(oda).to receive(:vms).with(4, nil, nil).ordered { nil }
79
+ allow(oda).to receive(:vms).exactly(5).times.and_return([1, 2, 3], [], [7, 8, 9], [], nil)
90
80
  end
91
81
 
92
82
  after :example do
@@ -58,6 +58,28 @@ describe OneacctOpts do
58
58
  end
59
59
 
60
60
  describe '#check_options_restrictions' do
61
+ context 'with both time range start and time period specified' do
62
+ before :example do
63
+ options.records_from = Time.now
64
+ options.records_for = 'week'
65
+ end
66
+
67
+ it 'fails with ArgumentError' do
68
+ expect { OneacctOpts.check_options_restrictions(options) }.to raise_error(ArgumentError)
69
+ end
70
+ end
71
+
72
+ context 'with both time range end and time period specified' do
73
+ before :example do
74
+ options.records_to = Time.now
75
+ options.records_for = 'week'
76
+ end
77
+
78
+ it 'fails with ArgumentError' do
79
+ expect { OneacctOpts.check_options_restrictions(options) }.to raise_error(ArgumentError)
80
+ end
81
+ end
82
+
61
83
  context 'with wrong time range' do
62
84
  before :example do
63
85
  options.records_from = (Time.new + 1000)
@@ -9,6 +9,7 @@ require 'one_writer'
9
9
  require 'redis_conf'
10
10
  require 'one_data_accessor'
11
11
  require 'oneacct_exporter'
12
+ require 'oneacct_exporter/version'
12
13
  require 'sidekiq/testing'
13
14
  require 'oneacct_opts'
14
15
  require 'data_validators/data_validator'
@@ -25,4 +26,4 @@ RSpec.configure do |config|
25
26
  config.color = true
26
27
  config.tty = true
27
28
  config.order = 'random'
28
- end
29
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oneacct-export
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michal Kimle
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-20 00:00:00.000000000 Z
11
+ date: 2016-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,28 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '10.4'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '10.4'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 3.0.0
47
+ version: '3.3'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 3.0.0
54
+ version: '3.3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: fuubar
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.9.0
75
+ version: '0.10'
76
76
  type: :development
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: 0.9.0
82
+ version: '0.10'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rubygems-tasks
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -114,28 +114,28 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 1.6.0
117
+ version: '1.6'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 1.6.0
124
+ version: '1.6'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: sidekiq
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 3.2.6
131
+ version: '3.4'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 3.2.6
138
+ version: '3.4'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: settingslogic
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +150,20 @@ dependencies:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: 2.0.9
153
+ - !ruby/object:Gem::Dependency
154
+ name: chronic_duration
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '0.10'
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '0.10'
153
167
  description: 'Exporting OpenNebula accounting data. '
154
168
  email:
155
169
  - kimle.michal@gmail.com
@@ -200,8 +214,16 @@ files:
200
214
  - lib/settings.rb
201
215
  - lib/sidekiq_conf.rb
202
216
  - lib/templates/apel-0.2.erb
217
+ - lib/templates/apel-0.4.erb
203
218
  - lib/templates/logstash-0.1.erb
204
219
  - lib/templates/pbs-0.1.erb
220
+ - mock/one_data_accessor_cluster_01.xml
221
+ - mock/one_data_accessor_cluster_02.xml
222
+ - mock/one_data_accessor_host_01.xml
223
+ - mock/one_data_accessor_host_02.xml
224
+ - mock/one_data_accessor_host_03.xml
225
+ - mock/one_data_accessor_host_04.xml
226
+ - mock/one_data_accessor_host_05.xml
205
227
  - mock/one_worker_vm_dn01.xml
206
228
  - mock/one_worker_vm_dn02.xml
207
229
  - mock/one_worker_vm_empty_disk_records.xml
@@ -212,6 +234,11 @@ files:
212
234
  - mock/one_worker_vm_image_name04.xml
213
235
  - mock/one_worker_vm_image_name05.xml
214
236
  - mock/one_worker_vm_image_name06.xml
237
+ - mock/one_worker_vm_number_of_public_ips_01.xml
238
+ - mock/one_worker_vm_number_of_public_ips_02.xml
239
+ - mock/one_worker_vm_number_of_public_ips_03.xml
240
+ - mock/one_worker_vm_search_benchmark_01.xml
241
+ - mock/one_worker_vm_search_benchmark_02.xml
215
242
  - mock/one_writer_testfile
216
243
  - oneacct-export.gemspec
217
244
  - spec/data_validators/apel_data_validator_spec.rb
@@ -247,7 +274,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
247
274
  version: '0'
248
275
  requirements: []
249
276
  rubyforge_project:
250
- rubygems_version: 2.4.4
277
+ rubygems_version: 2.4.6
251
278
  signing_key:
252
279
  specification_version: 4
253
280
  summary: Exporting OpenNebula accounting data.