oneacct-export 0.4.3 → 0.4.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3d05de90f6c075741a02dee7cc02b1ec10633935
4
- data.tar.gz: 232870fe469a478ac67710257be3768da938806d
3
+ metadata.gz: 7c97727a09636b7edebe37a73fd01907ecf90dba
4
+ data.tar.gz: 6611ef8ab87262b8fc76117eacf42278bf422aef
5
5
  SHA512:
6
- metadata.gz: 930ffdb5223cd34c6b0b26929d2be5d321602dad5555cafa73d633611caf7b5874f8f991b0298d129ec869404c14a75b3b7e7752923168755285cd9746f74986
7
- data.tar.gz: 4e17fba48c83dbbf1bcb6c6ffe40b6eaaadf5da82d510767cd2724a62844c3ec6525816719ce525cc37aec78866b8db1273c925624a5d691e11c0ffdba95805d
6
+ metadata.gz: a2ba6173efd943e3bbd01850a089b5135f7ce94fccbb2f7ecc75b67cfda1b0d76d18a88ad29ab8c361c159943ab4cae9f16acaa064b6a4c881aaa87b3fc81e26
7
+ data.tar.gz: 3db730a269e531b8a48667275479e26d587cb12f98ae3a1055461304451458f753316dac4b8bd76cf881a4cdd5a3ea6d7d04a7a60c7dd1030fde38c01b18c7ae
@@ -17,7 +17,7 @@ class OneDataAccessor
17
17
 
18
18
  STATE_DONE = '6'
19
19
  BENCHMARK_TYPE_XPATH = 'TEMPLATE/BENCHMARK_TYPE'
20
- BENCHMARK_VALUES_XPATH = 'TEMPLATE/BENCHMARK_VALUES'
20
+ BENCHMARK_VALUE_XPATH = 'TEMPLATE/BENCHMARK_VALUE'
21
21
 
22
22
  attr_reader :log, :batch_size, :client, :compatibility
23
23
  attr_accessor :start_vm_id
@@ -199,14 +199,14 @@ class OneDataAccessor
199
199
  #
200
200
  # @return [Hash] hosts' IDs and hash with benchmark name and value
201
201
  def benchmark_map
202
- map = {}
202
+ map = Hash.new({})
203
203
  host_pool = OpenNebula::HostPool.new(@client)
204
204
  rc = host_pool.info
205
205
  check_retval(rc, Errors::ResourceRetrievalError)
206
206
 
207
207
  host_pool.each do |host|
208
208
  benchmark = benchmark_values(host)
209
- if benchmark.empty?
209
+ unless benchmark[:benchmark_type]
210
210
  cluster = cluster_for_host(host)
211
211
  benchmark = benchmark_values(cluster) if cluster
212
212
  end
@@ -222,16 +222,7 @@ class OneDataAccessor
222
222
  # @param [OpenNebula::PoolElement] entity
223
223
  # @return [Hash] benchmark type and values in form of hash
224
224
  def benchmark_values(entity)
225
- benchmark_type = entity[BENCHMARK_TYPE_XPATH]
226
- return {} unless benchmark_type
227
-
228
- mixins = {}
229
- benchmark_values = entity[BENCHMARK_VALUES_XPATH]
230
- if benchmark_values
231
- mixins = JSON.parse(benchmark_values, :max_nesting => 1)
232
- end
233
-
234
- { :benchmark_type => benchmark_type, :mixins => mixins }
225
+ { benchmark_type: entity[BENCHMARK_TYPE_XPATH], benchmark_value: entity[BENCHMARK_VALUE_XPATH] }
235
226
  end
236
227
 
237
228
  # Returns object representing a cluster for specified host
@@ -131,7 +131,7 @@ class OneWorker
131
131
  data['disks'] = disk_records(vm)
132
132
  data['number_of_public_ips'] = number_of_public_ips(vm)
133
133
 
134
- benchmark = search_benchmark(vm, benchmark_map)
134
+ benchmark = benchmark_map[vm['HISTORY_RECORDS/HISTORY[last()]/HID']]
135
135
  data['benchmark_type'] = benchmark[:benchmark_type]
136
136
  data['benchmark_value'] = benchmark[:benchmark_value]
137
137
 
@@ -272,26 +272,6 @@ class OneWorker
272
272
  raise msg
273
273
  end
274
274
 
275
- # Search benchmark type and value virtual machine.
276
- #
277
- # @param [OpenNebula::VirtualMachine] vm virtual machine
278
- # @param [Hash] benchmark_map map of all hosts' benchmarks
279
- #
280
- # @return [Hash] benchmark type and value or both can be nil
281
- def search_benchmark(vm, benchmark_map)
282
- map = benchmark_map[vm['HISTORY_RECORDS/HISTORY[last()]/HID']]
283
-
284
- return {} unless vm['USER_TEMPLATE/OCCI_COMPUTE_MIXINS']
285
- return {} if map.nil? || map.empty?
286
-
287
- occi_compute_mixins = vm['USER_TEMPLATE/OCCI_COMPUTE_MIXINS'].split(/\s+/)
288
- occi_compute_mixins.each do |mixin|
289
- return { :benchmark_type => map[:benchmark_type], :benchmark_value => map[:mixins][mixin] } if map[:mixins].has_key?(mixin)
290
- end
291
-
292
- {}
293
- end
294
-
295
275
  private
296
276
 
297
277
  # Check if IP is public
@@ -1,3 +1,3 @@
1
1
  class OneacctExporter
2
- VERSION = '0.4.3'
2
+ VERSION = '0.4.4'
3
3
  end
@@ -69,6 +69,24 @@ class OneacctOpts
69
69
  options.compatibility = compatibility
70
70
  end
71
71
 
72
+ opts.on('--harden-ssl-security', 'Sets basic SSL options for better security.') do
73
+ OpenSSL::SSL::SSLContext::DEFAULT_PARAMS[:options] |= OpenSSL::SSL::OP_NO_SSLv2
74
+ OpenSSL::SSL::SSLContext::DEFAULT_PARAMS[:options] |= OpenSSL::SSL::OP_NO_SSLv3
75
+ OpenSSL::SSL::SSLContext::DEFAULT_PARAMS[:options] |= OpenSSL::SSL::OP_NO_COMPRESSION
76
+ end
77
+
78
+ opts.on('--ssl-cipher-suite CIPHER_SUITE', 'Sets SSL cipher suite.') do |suite|
79
+ OpenSSL::SSL::SSLContext::DEFAULT_PARAMS[:ciphers] = suite
80
+ end
81
+
82
+ opts.on('--ssl-version VERSION', 'Sets SSL version') do |version|
83
+ OpenSSL::SSL::SSLContext::DEFAULT_PARAMS[:ssl_version] = version
84
+ end
85
+
86
+ opts.on("--skip-ca-check", "Skip server certificate verification [NOT recommended]") do
87
+ silence_warnings { OpenSSL::SSL.const_set(:VERIFY_PEER, OpenSSL::SSL::VERIFY_NONE) }
88
+ end
89
+
72
90
  opts.on_tail('-h', '--help', 'Shows this message') do
73
91
  puts opts
74
92
  exit
@@ -173,4 +191,11 @@ class OneacctOpts
173
191
  end
174
192
  end
175
193
  end
194
+
195
+ def self.silence_warnings
196
+ old_verbose, $VERBOSE = $VERBOSE, nil
197
+ yield
198
+ ensure
199
+ $VERBOSE = old_verbose
200
+ end
176
201
  end
@@ -20,7 +20,7 @@
20
20
  </VNETS>
21
21
  <TEMPLATE>
22
22
  <BENCHMARK_TYPE>bench_type_cluster_1</BENCHMARK_TYPE>
23
- <BENCHMARK_VALUES>{"mixin1": 21.7}</BENCHMARK_VALUES>
23
+ <BENCHMARK_VALUE>21.7</BENCHMARK_VALUE>
24
24
  <RESERVED_CPU><![CDATA[]]></RESERVED_CPU>
25
25
  <RESERVED_MEM><![CDATA[8388608]]></RESERVED_MEM>
26
26
  </TEMPLATE>
@@ -49,7 +49,7 @@
49
49
  <TEMPLATE>
50
50
  <ARCH><![CDATA[x86_64]]></ARCH>
51
51
  <BENCHMARK_TYPE>bench_type_1</BENCHMARK_TYPE>
52
- <BENCHMARK_VALUES>{"mixin1": 36.9}</BENCHMARK_VALUES>
52
+ <BENCHMARK_VALUE>36.9</BENCHMARK_VALUE>
53
53
  <CPUSPEED><![CDATA[1200]]></CPUSPEED>
54
54
  <ERROR><![CDATA[Thu Nov 19 11:56:06 2015 : Error monitoring Host whatever.in.czech.republic.cz (21): -]]></ERROR>
55
55
  <HOSTNAME><![CDATA[whatever.in.czech.republic.cz]]></HOSTNAME>
@@ -450,20 +450,10 @@ describe OneDataAccessor do
450
450
  OpenNebula::XMLElement.new(OpenNebula::XMLElement.build_xml(file, 'CLUSTER'))
451
451
  }
452
452
 
453
- context 'with correct data on a host with one benchmark value' do
453
+ context 'with correct data on a host' do
454
454
  let(:host_filename) { 'one_data_accessor_host_01.xml' }
455
455
  let(:expected) { { '1' => { :benchmark_type => 'bench_type_1',
456
- :mixins => { 'mixin1' => 36.9 } } } }
457
-
458
- it 'creates correct benchmark_map' do
459
- expect(subject.benchmark_map).to eq(expected)
460
- end
461
- end
462
-
463
- context 'with correct data on a host with two benchmark values' do
464
- let(:host_filename) { 'one_data_accessor_host_02.xml' }
465
- let(:expected) { { '2' => { :benchmark_type => 'bench_type_2',
466
- :mixins => { 'mixin1' => 788.6, 'mixin2' => 123.123 } } } }
456
+ :benchmark_value => '36.9' } } }
467
457
 
468
458
  it 'creates correct benchmark_map' do
469
459
  expect(subject.benchmark_map).to eq(expected)
@@ -478,7 +468,7 @@ describe OneDataAccessor do
478
468
  let(:host_filename) { 'one_data_accessor_host_03.xml' }
479
469
  let(:cluster_filename) { 'one_data_accessor_cluster_01.xml' }
480
470
  let(:expected) { { '3' => { :benchmark_type => 'bench_type_cluster_1',
481
- :mixins => { 'mixin1' => 21.7 } } } }
471
+ :benchmark_value => '21.7' } } }
482
472
 
483
473
  it 'creates correct benchmark_map' do
484
474
  expect(subject.benchmark_map).to eq(expected)
@@ -492,7 +482,8 @@ describe OneDataAccessor do
492
482
 
493
483
  let(:host_filename) { 'one_data_accessor_host_04.xml' }
494
484
  let(:cluster_filename) { 'one_data_accessor_cluster_02.xml' }
495
- let(:expected) { { '4' => {} } }
485
+ let(:expected) { { '4' => { :benchmark_type => nil,
486
+ :benchmark_value => nil } } }
496
487
 
497
488
  it 'creates correct benchmark_map' do
498
489
  expect(subject.benchmark_map).to eq(expected)
@@ -501,7 +492,8 @@ describe OneDataAccessor do
501
492
 
502
493
  context 'with no data on a host and without host\'s cluster' do
503
494
  let(:host_filename) { 'one_data_accessor_host_05.xml' }
504
- let(:expected) { { '5' => {} } }
495
+ let(:expected) { { '5' => { :benchmark_type => nil,
496
+ :benchmark_value => nil } } }
505
497
  let(:searched_cluster) { nil }
506
498
 
507
499
  it 'creates correct benchmark_map' do
@@ -213,7 +213,7 @@ describe OneWorker do
213
213
  let(:user_map) { {'120' => '/Dn=FrOm/CN=DN/CN=MaP'} }
214
214
  let(:image_map) { {'31' => 'image_name_from_map'} }
215
215
  let(:cluster_map) { {'100' => 'site-name-from-cluster'}}
216
- let(:benchmark_map) { {'123' => nil} }
216
+ let(:benchmark_map) { {'11' => {}} }
217
217
 
218
218
  context 'with apel specific data' do
219
219
  let(:filename) { 'one_worker_vm_dn01.xml' }
@@ -583,49 +583,4 @@ describe OneWorker do
583
583
  end
584
584
  end
585
585
  end
586
-
587
- describe '.search_benchmark' do
588
- let(:vm) do
589
- xml = File.read("#{GEM_DIR}/mock/#{filename}")
590
- OpenNebula::XMLElement.new(OpenNebula::XMLElement.build_xml(xml, 'VM'))
591
- end
592
-
593
- let(:benchmark_map) do
594
- values1 = { :benchmark_type => 'bench_type_1', :mixins => { 'mixin1' => '34.12' } }
595
- values2 = { :benchmark_type => 'bench_type_2', :mixins => { 'mixin2' => '123.2', 'mixin3' => '129.6' } }
596
- values3 = { }
597
-
598
- benchmark_map = { '19' => values1, '11' => values2, '23' => values3 }
599
- benchmark_map
600
- end
601
-
602
- context 'with empty benchmark_map' do
603
- let(:filename) { 'one_worker_vm_search_benchmark_01.xml' }
604
- let(:benchmark_map) { {} }
605
- let(:expected) { {} }
606
-
607
- it 'returns array with two nil items' do
608
- expect(subject.search_benchmark(vm, benchmark_map)).to eq(expected)
609
- end
610
- end
611
-
612
- context 'with no data for the virtual machine in benchmark_map' do
613
- let(:filename) { 'one_worker_vm_search_benchmark_02.xml' }
614
- let(:expected) { {} }
615
-
616
- it 'returns array with two nil items' do
617
- expect(subject.search_benchmark(vm, benchmark_map)).to eq(expected)
618
- end
619
- end
620
-
621
- context 'with correct data in vm and benchmark_map' do
622
- let(:filename) { 'one_worker_vm_search_benchmark_01.xml' }
623
- let(:expected) { { :benchmark_type => 'bench_type_2', :benchmark_value => '129.6' } }
624
-
625
- it 'returns correct benchmark type and value' do
626
- expect(subject.search_benchmark(vm, benchmark_map)).to eq(expected)
627
- end
628
- end
629
- end
630
-
631
586
  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.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michal Kimle
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-02 00:00:00.000000000 Z
11
+ date: 2016-12-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -220,7 +220,6 @@ files:
220
220
  - mock/one_data_accessor_cluster_01.xml
221
221
  - mock/one_data_accessor_cluster_02.xml
222
222
  - mock/one_data_accessor_host_01.xml
223
- - mock/one_data_accessor_host_02.xml
224
223
  - mock/one_data_accessor_host_03.xml
225
224
  - mock/one_data_accessor_host_04.xml
226
225
  - mock/one_data_accessor_host_05.xml
@@ -274,7 +273,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
274
273
  version: '0'
275
274
  requirements: []
276
275
  rubyforge_project:
277
- rubygems_version: 2.4.6
276
+ rubygems_version: 2.4.8
278
277
  signing_key:
279
278
  specification_version: 4
280
279
  summary: Exporting OpenNebula accounting data.
@@ -1,65 +0,0 @@
1
- <HOST>
2
- <ID>2</ID>
3
- <NAME>whatever.in.czech.republic.cz</NAME>
4
- <STATE>5</STATE>
5
- <IM_MAD><![CDATA[kvm]]></IM_MAD>
6
- <VM_MAD><![CDATA[kvm]]></VM_MAD>
7
- <VN_MAD><![CDATA[802.1Q]]></VN_MAD>
8
- <LAST_MON_TIME>1447930638</LAST_MON_TIME>
9
- <CLUSTER_ID>1</CLUSTER_ID>
10
- <CLUSTER>fedcloud-warg</CLUSTER>
11
- <HOST_SHARE>
12
- <DISK_USAGE>0</DISK_USAGE>
13
- <MEM_USAGE>50331648</MEM_USAGE>
14
- <CPU_USAGE>2000</CPU_USAGE>
15
- <MAX_DISK>19686</MAX_DISK>
16
- <MAX_MEM>57674040</MAX_MEM>
17
- <MAX_CPU>3200</MAX_CPU>
18
- <FREE_DISK>13945</FREE_DISK>
19
- <FREE_MEM>30670728</FREE_MEM>
20
- <FREE_CPU>3196</FREE_CPU>
21
- <USED_DISK>4742</USED_DISK>
22
- <USED_MEM>35391920</USED_MEM>
23
- <USED_CPU>3</USED_CPU>
24
- <RUNNING_VMS>11</RUNNING_VMS>
25
- <DATASTORES>
26
- <DS>
27
- <FREE_MB><![CDATA[3037509]]></FREE_MB>
28
- <ID><![CDATA[101]]></ID>
29
- <TOTAL_MB><![CDATA[3338205]]></TOTAL_MB>
30
- <USED_MB><![CDATA[122933]]></USED_MB>
31
- <VMS_ALLOCATED_MB><![CDATA[122733]]></VMS_ALLOCATED_MB>
32
- <VMS_REQUIRED_MB><![CDATA[130925]]></VMS_REQUIRED_MB>
33
- </DS>
34
- </DATASTORES>
35
- </HOST_SHARE>
36
- <VMS>
37
- <ID>51575</ID>
38
- <ID>53988</ID>
39
- <ID>54035</ID>
40
- <ID>54553</ID>
41
- <ID>55276</ID>
42
- <ID>56251</ID>
43
- <ID>56288</ID>
44
- <ID>56291</ID>
45
- <ID>59948</ID>
46
- <ID>60163</ID>
47
- <ID>60173</ID>
48
- </VMS>
49
- <TEMPLATE>
50
- <ARCH><![CDATA[x86_64]]></ARCH>
51
- <BENCHMARK_TYPE>bench_type_2</BENCHMARK_TYPE>
52
- <BENCHMARK_VALUES>{"mixin1": 788.6, "mixin2": 123.123}</BENCHMARK_VALUES>
53
- <CPUSPEED><![CDATA[1200]]></CPUSPEED>
54
- <ERROR><![CDATA[Thu Nov 19 11:56:06 2015 : Error monitoring Host whatever.in.czech.republic.cz (21): -]]></ERROR>
55
- <HOSTNAME><![CDATA[whatever.in.czech.republic.cz]]></HOSTNAME>
56
- <HYPERVISOR><![CDATA[kvm]]></HYPERVISOR>
57
- <MODELNAME><![CDATA[Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz]]></MODELNAME>
58
- <NETRX><![CDATA[518778988428]]></NETRX>
59
- <NETTX><![CDATA[761175714938]]></NETTX>
60
- <PRIORITY><![CDATA[990]]></PRIORITY>
61
- <RESERVED_CPU><![CDATA[]]></RESERVED_CPU>
62
- <RESERVED_MEM><![CDATA[]]></RESERVED_MEM>
63
- <VERSION><![CDATA[4.10.1]]></VERSION>
64
- </TEMPLATE>
65
- </HOST>