oneacct-export 0.4.3 → 0.4.4

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: 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>