mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-29 18:50:08 +03:00
* Fix local characters for onedb fsck * Fix charset for onedb sqlite2mysql
This commit is contained in:
parent
a9e6e18177
commit
0fc9f457f2
@ -503,7 +503,6 @@ AllCops:
|
||||
- src/onedb/local/5.10.0_to_5.12.0.rb
|
||||
- src/onedb/onedb_live.rb
|
||||
- src/onedb/onedb_backend.rb
|
||||
- src/onedb/sqlite2mysql.rb
|
||||
- src/market_mad/one_market.rb
|
||||
- src/tm_mad/one_tm.rb
|
||||
- src/oca/ruby/opennebula/flow/grammar.rb
|
||||
|
@ -61,11 +61,11 @@ module OneDBFsck
|
||||
query = "SELECT body FROM vm_pool WHERE oid=#{row[:vid]}"
|
||||
|
||||
@db.fetch(query) do |vm_row|
|
||||
vm_doc = nokogiri_doc(vm_row[:body])
|
||||
vm_doc = nokogiri_doc(vm_row[:body], 'vm_pool')
|
||||
etime = vm_doc.root.at_xpath('ETIME').text.to_i
|
||||
end
|
||||
|
||||
history_doc = nokogiri_doc(row[:body])
|
||||
history_doc = nokogiri_doc(row[:body], 'history')
|
||||
|
||||
['RETIME', 'ESTIME', 'EETIME', 'ETIME'].each do |att|
|
||||
elem = history_doc.root.at_xpath(att)
|
||||
@ -91,7 +91,7 @@ module OneDBFsck
|
||||
@db.fetch('SELECT * ' \
|
||||
'FROM history ' \
|
||||
'WHERE etime > 0') do |row|
|
||||
history_doc = nokogiri_doc(row[:body])
|
||||
history_doc = nokogiri_doc(row[:body], 'history')
|
||||
retime = history_doc.root.at_xpath('RETIME')
|
||||
estime = history_doc.root.at_xpath('ESTIME').text.to_i
|
||||
|
||||
@ -123,7 +123,7 @@ module OneDBFsck
|
||||
'(SELECT oid FROM vm_pool WHERE state=3) AND ' \
|
||||
'seq = (SELECT MAX(seq) FROM history AS subhistory ' \
|
||||
'WHERE history.vid=subhistory.vid))') do |row|
|
||||
history_doc = nokogiri_doc(row[:body])
|
||||
history_doc = nokogiri_doc(row[:body], 'history')
|
||||
retime = history_doc.root.at_xpath('RETIME')
|
||||
|
||||
if retime.text.to_i != 0
|
||||
|
@ -86,7 +86,7 @@ module OneDBFsck
|
||||
|
||||
# DATA: FIX: Calculate the host's xml and write them to host_pool_new
|
||||
@db[:host_pool].each do |row|
|
||||
host_doc = nokogiri_doc(row[:body])
|
||||
host_doc = nokogiri_doc(row[:body], 'host_pool')
|
||||
hid = row[:oid]
|
||||
counters_host = counters[:host][hid]
|
||||
|
||||
|
@ -8,7 +8,7 @@ module OneDBFsck
|
||||
@fixes_host_cluster = {}
|
||||
|
||||
@db.fetch('SELECT oid,body FROM network_pool') do |row|
|
||||
doc = nokogiri_doc(row[:body])
|
||||
doc = nokogiri_doc(row[:body], 'network_pool')
|
||||
|
||||
doc.root.xpath('CLUSTERS/ID').each do |e|
|
||||
cluster_id = e.text.to_i
|
||||
@ -33,7 +33,7 @@ module OneDBFsck
|
||||
@fixes_network = {}
|
||||
|
||||
@db[:network_pool].each do |row|
|
||||
doc = nokogiri_doc(row[:body])
|
||||
doc = nokogiri_doc(row[:body], 'network_pool')
|
||||
oid = row[:oid]
|
||||
|
||||
used_leases = doc.root.at_xpath('USED_LEASES').text.to_i
|
||||
@ -76,7 +76,7 @@ module OneDBFsck
|
||||
|
||||
@db.fetch('SELECT cid FROM cluster_network_relation where ' \
|
||||
"oid=#{id}") do |row|
|
||||
doc = nokogiri_doc(body)
|
||||
doc = nokogiri_doc(body, 'cluster_network_relation')
|
||||
clusters = doc.root.at_xpath('CLUSTERS').children
|
||||
|
||||
if clusters.find {|n| n.text == row[:cid].to_s }.nil?
|
||||
@ -108,7 +108,7 @@ module OneDBFsck
|
||||
# Init vnet counters
|
||||
def init_network_counters
|
||||
@db.fetch('SELECT oid,body FROM network_pool') do |row|
|
||||
doc = nokogiri_doc(row[:body])
|
||||
doc = nokogiri_doc(row[:body], 'network_pool')
|
||||
|
||||
ar_leases = {}
|
||||
|
||||
@ -128,7 +128,7 @@ module OneDBFsck
|
||||
query = 'SELECT oid,body,pid FROM network_pool WHERE pid<>-1'
|
||||
|
||||
@db.fetch(query) do |row|
|
||||
doc = nokogiri_doc(row[:body])
|
||||
doc = nokogiri_doc(row[:body], 'network_pool')
|
||||
|
||||
parent_vnet = doc.root.at_xpath('PARENT_NETWORK_ID').text.to_i
|
||||
|
||||
|
@ -201,7 +201,7 @@ module OneDBFsck
|
||||
img_usage = {}
|
||||
|
||||
@db.fetch(query) do |vm_row|
|
||||
vmdoc = nokogiri_doc(vm_row[:body])
|
||||
vmdoc = nokogiri_doc(vm_row[:body], 'vm_pool')
|
||||
|
||||
vmdoc.root.xpath('TEMPLATE/DISK/IMAGE_ID').each do |e|
|
||||
img_usage[e.text] = 0 if img_usage[e.text].nil?
|
||||
@ -259,7 +259,7 @@ module OneDBFsck
|
||||
datastore_usage = {}
|
||||
|
||||
@db.fetch(query) do |vm_row|
|
||||
vmdoc = nokogiri_doc(vm_row[:body])
|
||||
vmdoc = nokogiri_doc(vm_row[:body], 'vm_pool')
|
||||
|
||||
vmdoc.root.xpath('TEMPLATE/DISK').each do |e|
|
||||
type = ''
|
||||
@ -352,7 +352,7 @@ module OneDBFsck
|
||||
vms = resources[:vms]
|
||||
|
||||
@db.fetch(query) do |vm_row|
|
||||
vmdoc = nokogiri_doc(vm_row[:body])
|
||||
vmdoc = nokogiri_doc(vm_row[:body], 'vm_pool')
|
||||
|
||||
vmdoc.root.xpath('TEMPLATE/CPU').each do |e|
|
||||
# truncate to 2 decimals
|
||||
@ -438,7 +438,7 @@ module OneDBFsck
|
||||
vnet_usage = {}
|
||||
|
||||
@db.fetch(queries[0]) do |vm_row|
|
||||
vmdoc = nokogiri_doc(vm_row[:body])
|
||||
vmdoc = nokogiri_doc(vm_row[:body], 'vm_pool')
|
||||
|
||||
vmdoc.root.xpath('TEMPLATE/NIC/NETWORK_ID').each do |e|
|
||||
next if e.text.empty?
|
||||
@ -473,7 +473,7 @@ module OneDBFsck
|
||||
|
||||
# Calculate quotas for reserved networks
|
||||
@db.fetch(queries[2]) do |vnet_row|
|
||||
vnet_doc = nokogiri_doc(vnet_row[:body])
|
||||
vnet_doc = nokogiri_doc(vnet_row[:body], 'network_pool')
|
||||
|
||||
parent_id = vnet_doc.root.xpath('PARENT_NETWORK_ID')
|
||||
parent_id = parent_id.text unless parent_id.nil?
|
||||
|
@ -11,7 +11,7 @@ module OneDBFsck
|
||||
|
||||
# DATA: Aggregate information of the RUNNING vms
|
||||
@db.fetch("SELECT oid,body FROM vm_pool WHERE state<>6") do |row|
|
||||
vm_doc = nokogiri_doc(row[:body])
|
||||
vm_doc = nokogiri_doc(row[:body], 'vm_pool')
|
||||
|
||||
state = vm_doc.root.at_xpath('STATE').text.to_i
|
||||
lcm_state = vm_doc.root.at_xpath('LCM_STATE').text.to_i
|
||||
@ -199,7 +199,7 @@ module OneDBFsck
|
||||
# DATA: search history for VMMMAD and TMMAD to translate
|
||||
@db.fetch("SELECT * FROM history WHERE vid=#{row[:oid]}") do |hrow|
|
||||
# hdoc = Nokogiri::XML(hrow[:body],nil,NOKOGIRI_ENCODING){|c| c.default_xml.noblanks}
|
||||
hdoc = nokogiri_doc(hrow[:body])
|
||||
hdoc = nokogiri_doc(hrow[:body], 'history')
|
||||
|
||||
found = false
|
||||
|
||||
|
@ -5,7 +5,7 @@ module OneDBFsck
|
||||
|
||||
# DATA: Aggregate information of the RUNNING vms
|
||||
@db.fetch("SELECT oid,body FROM vrouter_pool") do |row|
|
||||
vrouter_doc = nokogiri_doc(row[:body])
|
||||
vrouter_doc = nokogiri_doc(row[:body], 'vrouter_pool')
|
||||
|
||||
# DATA: VNets used by this Virtual Router
|
||||
vrouter_doc.root.xpath("TEMPLATE/NIC").each do |nic|
|
||||
|
@ -164,7 +164,7 @@ class OneDBBacKEnd
|
||||
return @db
|
||||
end
|
||||
|
||||
def nokogiri_doc(body, table = nil)
|
||||
def nokogiri_doc(body, table)
|
||||
nk_enconding = NOKOGIRI_ENCODING
|
||||
|
||||
unless table.nil?
|
||||
|
@ -1,3 +1,4 @@
|
||||
# Migrate SQLite Database to MySQL
|
||||
module Sqlite2MySQL
|
||||
|
||||
PROGRESS = 1000
|
||||
@ -5,6 +6,8 @@ module Sqlite2MySQL
|
||||
def convert(sqlite_db)
|
||||
puts "Starting migration from SQLite to MySQL\n"
|
||||
|
||||
dst_encoding = table_to_nk(encoding)
|
||||
|
||||
sqlite_db.tables.each do |table|
|
||||
@db[table].delete
|
||||
|
||||
@ -14,8 +17,12 @@ module Sqlite2MySQL
|
||||
@db.transaction do
|
||||
i=0
|
||||
sqlite_db[table].each do |row|
|
||||
if table.to_s == 'logdb'
|
||||
row[:fed_index] = 2**64-1 if row[:fed_index] >= 2**64
|
||||
if table.to_s == 'logdb' && row[:fed_index] >= 2**64
|
||||
row[:fed_index] = 2**64-1
|
||||
end
|
||||
|
||||
if dst_encoding != 'UTF-8'
|
||||
row.each {|k, v| row[k] = v.force_encoding(dst_encoding) if v.is_a? String }
|
||||
end
|
||||
|
||||
@db[table].insert(row)
|
||||
@ -35,4 +42,5 @@ module Sqlite2MySQL
|
||||
|
||||
puts "\nMigration successful."
|
||||
end
|
||||
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user