mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-21 14:50:08 +03:00
Feature #3718: Add hybrid hosts monitoring attr. to onedb upgrade files
This commit is contained in:
parent
3d4bfa63a8
commit
f23493d3c1
@ -202,5 +202,53 @@ module Migrator
|
||||
mv_monitoring(vm_elem, "MEMORY", "MEMORY")
|
||||
mv_monitoring(vm_elem, "NET_RX", "NETRX")
|
||||
mv_monitoring(vm_elem, "NET_TX", "NETTX")
|
||||
|
||||
mv_monitoring(vm_elem, "AZ_AVAILABILITY_SET_NAME", "AZ_AVAILABILITY_SET_NAME")
|
||||
mv_monitoring(vm_elem, "AZ_CLOUD_SERVICE_NAME", "AZ_CLOUD_SERVICE_NAME")
|
||||
mv_monitoring(vm_elem, "AZ_DATA_DISKS", "AZ_DATA_DISKS")
|
||||
mv_monitoring(vm_elem, "AZ_DEPLOYMENT_NAME", "AZ_DEPLOYMENT_NAME")
|
||||
mv_monitoring(vm_elem, "AZ_DISK_NAME", "AZ_DISK_NAME")
|
||||
mv_monitoring(vm_elem, "AZ_HOSTNAME", "AZ_HOSTNAME")
|
||||
mv_monitoring(vm_elem, "AZ_IMAGE", "AZ_IMAGE")
|
||||
mv_monitoring(vm_elem, "AZ_IPADDRESS", "AZ_IPADDRESS")
|
||||
mv_monitoring(vm_elem, "AZ_MEDIA_LINK", "AZ_MEDIA_LINK")
|
||||
mv_monitoring(vm_elem, "AZ_OS_TYPE", "AZ_OS_TYPE")
|
||||
mv_monitoring(vm_elem, "AZ_ROLE_SIZE", "AZ_ROLE_SIZE")
|
||||
mv_monitoring(vm_elem, "AZ_TCP_ENDPOINTS", "AZ_TCP_ENDPOINTS")
|
||||
mv_monitoring(vm_elem, "AZ_UDP_ENDPOINTS", "AZ_UDP_ENDPOINTS")
|
||||
mv_monitoring(vm_elem, "AZ_VIRTUAL_NETWORK_NAME", "AZ_VIRTUAL_NETWORK_NAME")
|
||||
|
||||
mv_monitoring(vm_elem, "SL_CRED_PASSWORD", "SL_CRED_PASSWORD")
|
||||
mv_monitoring(vm_elem, "SL_CRED_USER", "SL_CRED_USER")
|
||||
mv_monitoring(vm_elem, "SL_DOMAIN", "SL_DOMAIN")
|
||||
mv_monitoring(vm_elem, "SL_FULLYQUALIFIEDDOMAINNAME", "SL_FULLYQUALIFIEDDOMAINNAME")
|
||||
mv_monitoring(vm_elem, "SL_GLOBALIDENTIFIER", "SL_GLOBALIDENTIFIER")
|
||||
mv_monitoring(vm_elem, "SL_HOSTNAME", "SL_HOSTNAME")
|
||||
mv_monitoring(vm_elem, "SL_ID", "SL_ID")
|
||||
mv_monitoring(vm_elem, "SL_MAXCPU", "SL_MAXCPU")
|
||||
mv_monitoring(vm_elem, "SL_MAXMEMORY", "SL_MAXMEMORY")
|
||||
mv_monitoring(vm_elem, "SL_PRIMARYBACKENDIPADDRESS", "SL_PRIMARYBACKENDIPADDRESS")
|
||||
mv_monitoring(vm_elem, "SL_PRIMARYIPADDRESS", "SL_PRIMARYIPADDRESS")
|
||||
mv_monitoring(vm_elem, "SL_STARTCPUS", "SL_STARTCPUS")
|
||||
mv_monitoring(vm_elem, "SL_UUID", "SL_UUID")
|
||||
|
||||
mv_monitoring(vm_elem, "AWS_DNS_NAME", "AWS_DNS_NAME")
|
||||
mv_monitoring(vm_elem, "AWS_PRIVATE_DNS_NAME", "AWS_PRIVATE_DNS_NAME")
|
||||
mv_monitoring(vm_elem, "AWS_KEY_NAME", "AWS_KEY_NAME")
|
||||
mv_monitoring(vm_elem, "AWS_AVAILABILITY_ZONE", "AWS_AVAILABILITY_ZONE")
|
||||
mv_monitoring(vm_elem, "AWS_PLATFORM", "AWS_PLATFORM")
|
||||
mv_monitoring(vm_elem, "AWS_VPC_ID", "AWS_VPC_ID")
|
||||
mv_monitoring(vm_elem, "AWS_PRIVATE_IP_ADDRESS", "AWS_PRIVATE_IP_ADDRESS")
|
||||
mv_monitoring(vm_elem, "AWS_IP_ADDRESS", "AWS_IP_ADDRESS")
|
||||
mv_monitoring(vm_elem, "AWS_SUBNET_ID", "AWS_SUBNET_ID")
|
||||
mv_monitoring(vm_elem, "AWS_SECURITY_GROUPS", "AWS_SECURITY_GROUPS")
|
||||
mv_monitoring(vm_elem, "AWS_INSTANCE_TYPE", "AWS_INSTANCE_TYPE")
|
||||
|
||||
mv_monitoring(vm_elem, "ESX_HOST", "ESX_HOST")
|
||||
mv_monitoring(vm_elem, "GUEST_IP", "GUEST_IP")
|
||||
mv_monitoring(vm_elem, "GUEST_STATE", "GUEST_STATE")
|
||||
mv_monitoring(vm_elem, "VMWARETOOLS_RUNNING_STATUS", "VMWARETOOLS_RUNNING_STATUS")
|
||||
mv_monitoring(vm_elem, "VMWARETOOLS_VERSION", "VMWARETOOLS_VERSION")
|
||||
mv_monitoring(vm_elem, "VMWARETOOLS_VERSION_STATUS", "VMWARETOOLS_VERSION_STATUS")
|
||||
end
|
||||
end
|
164
src/onedb/patches/4.14_monitoring.rb
Normal file
164
src/onedb/patches/4.14_monitoring.rb
Normal file
@ -0,0 +1,164 @@
|
||||
# -------------------------------------------------------------------------- #
|
||||
# Copyright 2002-2015, OpenNebula Project (OpenNebula.org), C12G Labs #
|
||||
# #
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
||||
# not use this file except in compliance with the License. You may obtain #
|
||||
# a copy of the License at #
|
||||
# #
|
||||
# http://www.apache.org/licenses/LICENSE-2.0 #
|
||||
# #
|
||||
# Unless required by applicable law or agreed to in writing, software #
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, #
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
|
||||
# See the License for the specific language governing permissions and #
|
||||
# limitations under the License. #
|
||||
#--------------------------------------------------------------------------- #
|
||||
|
||||
if !ONE_LOCATION
|
||||
LOG_LOCATION = "/var/log/one"
|
||||
else
|
||||
LOG_LOCATION = ONE_LOCATION + "/var"
|
||||
end
|
||||
|
||||
LOG = LOG_LOCATION + "/onedb-fsck.log"
|
||||
|
||||
require 'nokogiri'
|
||||
|
||||
module OneDBPatch
|
||||
VERSION = "4.11.80"
|
||||
LOCAL_VERSION = "4.13.80"
|
||||
|
||||
def is_hot_patch(ops)
|
||||
return true
|
||||
end
|
||||
|
||||
def check_db_version(ops)
|
||||
db_version = read_db_version()
|
||||
|
||||
if ( db_version[:version] != VERSION ||
|
||||
db_version[:local_version] != LOCAL_VERSION )
|
||||
|
||||
raise <<-EOT
|
||||
Version mismatch: patch file is for version
|
||||
Shared: #{VERSION}, Local: #{LOCAL_VERSION}
|
||||
|
||||
Current database is version
|
||||
Shared: #{db_version[:version]}, Local: #{db_version[:local_version]}
|
||||
EOT
|
||||
end
|
||||
end
|
||||
|
||||
def patch(ops)
|
||||
|
||||
init_log_time()
|
||||
|
||||
# 3718
|
||||
|
||||
@db.transaction do
|
||||
|
||||
# Move monitoring attributes in VM pool table, only for VMs in DONE
|
||||
|
||||
@db.fetch("SELECT * FROM vm_pool WHERE state=6") do |row|
|
||||
doc = Nokogiri::XML(row[:body],nil,NOKOGIRI_ENCODING){|c| c.default_xml.noblanks}
|
||||
|
||||
update_monitoring(doc.root.at_xpath("/VM"))
|
||||
|
||||
@db[:vm_pool].where(:oid => row[:oid]).update(
|
||||
:body => doc.root.to_s)
|
||||
end
|
||||
end
|
||||
|
||||
log_time()
|
||||
|
||||
# Move monitoring attributes in the history table, only for closed
|
||||
# records
|
||||
|
||||
@db.transaction do
|
||||
@db.fetch("SELECT * FROM history WHERE etime<>0") do |row|
|
||||
doc = Nokogiri::XML(row[:body],nil,NOKOGIRI_ENCODING){|c| c.default_xml.noblanks}
|
||||
|
||||
elem = doc.root.at_xpath("/HISTORY/VM")
|
||||
if !elem.nil?
|
||||
update_monitoring(elem)
|
||||
end
|
||||
|
||||
@db[:history].where(:vid => row[:vid], :seq => row[:seq]).update(
|
||||
:body => doc.root.to_s)
|
||||
end
|
||||
|
||||
log_time()
|
||||
end
|
||||
|
||||
log_time()
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
def mv_monitoring(vm_elem, prev_name, new_name)
|
||||
elem = vm_elem.at_xpath(prev_name)
|
||||
|
||||
if (!elem.nil?)
|
||||
vm_elem.at_xpath("MONITORING").add_child(
|
||||
vm_elem.document.create_element(new_name)).content = elem.text
|
||||
|
||||
elem.remove
|
||||
end
|
||||
end
|
||||
|
||||
def update_monitoring(vm_elem)
|
||||
vm_elem.add_child(vm_elem.document.create_element("MONITORING"))
|
||||
|
||||
mv_monitoring(vm_elem, "CPU", "CPU")
|
||||
mv_monitoring(vm_elem, "MEMORY", "MEMORY")
|
||||
mv_monitoring(vm_elem, "NET_RX", "NETRX")
|
||||
mv_monitoring(vm_elem, "NET_TX", "NETTX")
|
||||
|
||||
mv_monitoring(vm_elem, "AZ_AVAILABILITY_SET_NAME", "AZ_AVAILABILITY_SET_NAME")
|
||||
mv_monitoring(vm_elem, "AZ_CLOUD_SERVICE_NAME", "AZ_CLOUD_SERVICE_NAME")
|
||||
mv_monitoring(vm_elem, "AZ_DATA_DISKS", "AZ_DATA_DISKS")
|
||||
mv_monitoring(vm_elem, "AZ_DEPLOYMENT_NAME", "AZ_DEPLOYMENT_NAME")
|
||||
mv_monitoring(vm_elem, "AZ_DISK_NAME", "AZ_DISK_NAME")
|
||||
mv_monitoring(vm_elem, "AZ_HOSTNAME", "AZ_HOSTNAME")
|
||||
mv_monitoring(vm_elem, "AZ_IMAGE", "AZ_IMAGE")
|
||||
mv_monitoring(vm_elem, "AZ_IPADDRESS", "AZ_IPADDRESS")
|
||||
mv_monitoring(vm_elem, "AZ_MEDIA_LINK", "AZ_MEDIA_LINK")
|
||||
mv_monitoring(vm_elem, "AZ_OS_TYPE", "AZ_OS_TYPE")
|
||||
mv_monitoring(vm_elem, "AZ_ROLE_SIZE", "AZ_ROLE_SIZE")
|
||||
mv_monitoring(vm_elem, "AZ_TCP_ENDPOINTS", "AZ_TCP_ENDPOINTS")
|
||||
mv_monitoring(vm_elem, "AZ_UDP_ENDPOINTS", "AZ_UDP_ENDPOINTS")
|
||||
mv_monitoring(vm_elem, "AZ_VIRTUAL_NETWORK_NAME", "AZ_VIRTUAL_NETWORK_NAME")
|
||||
|
||||
mv_monitoring(vm_elem, "SL_CRED_PASSWORD", "SL_CRED_PASSWORD")
|
||||
mv_monitoring(vm_elem, "SL_CRED_USER", "SL_CRED_USER")
|
||||
mv_monitoring(vm_elem, "SL_DOMAIN", "SL_DOMAIN")
|
||||
mv_monitoring(vm_elem, "SL_FULLYQUALIFIEDDOMAINNAME", "SL_FULLYQUALIFIEDDOMAINNAME")
|
||||
mv_monitoring(vm_elem, "SL_GLOBALIDENTIFIER", "SL_GLOBALIDENTIFIER")
|
||||
mv_monitoring(vm_elem, "SL_HOSTNAME", "SL_HOSTNAME")
|
||||
mv_monitoring(vm_elem, "SL_ID", "SL_ID")
|
||||
mv_monitoring(vm_elem, "SL_MAXCPU", "SL_MAXCPU")
|
||||
mv_monitoring(vm_elem, "SL_MAXMEMORY", "SL_MAXMEMORY")
|
||||
mv_monitoring(vm_elem, "SL_PRIMARYBACKENDIPADDRESS", "SL_PRIMARYBACKENDIPADDRESS")
|
||||
mv_monitoring(vm_elem, "SL_PRIMARYIPADDRESS", "SL_PRIMARYIPADDRESS")
|
||||
mv_monitoring(vm_elem, "SL_STARTCPUS", "SL_STARTCPUS")
|
||||
mv_monitoring(vm_elem, "SL_UUID", "SL_UUID")
|
||||
|
||||
mv_monitoring(vm_elem, "AWS_DNS_NAME", "AWS_DNS_NAME")
|
||||
mv_monitoring(vm_elem, "AWS_PRIVATE_DNS_NAME", "AWS_PRIVATE_DNS_NAME")
|
||||
mv_monitoring(vm_elem, "AWS_KEY_NAME", "AWS_KEY_NAME")
|
||||
mv_monitoring(vm_elem, "AWS_AVAILABILITY_ZONE", "AWS_AVAILABILITY_ZONE")
|
||||
mv_monitoring(vm_elem, "AWS_PLATFORM", "AWS_PLATFORM")
|
||||
mv_monitoring(vm_elem, "AWS_VPC_ID", "AWS_VPC_ID")
|
||||
mv_monitoring(vm_elem, "AWS_PRIVATE_IP_ADDRESS", "AWS_PRIVATE_IP_ADDRESS")
|
||||
mv_monitoring(vm_elem, "AWS_IP_ADDRESS", "AWS_IP_ADDRESS")
|
||||
mv_monitoring(vm_elem, "AWS_SUBNET_ID", "AWS_SUBNET_ID")
|
||||
mv_monitoring(vm_elem, "AWS_SECURITY_GROUPS", "AWS_SECURITY_GROUPS")
|
||||
mv_monitoring(vm_elem, "AWS_INSTANCE_TYPE", "AWS_INSTANCE_TYPE")
|
||||
|
||||
mv_monitoring(vm_elem, "ESX_HOST", "ESX_HOST")
|
||||
mv_monitoring(vm_elem, "GUEST_IP", "GUEST_IP")
|
||||
mv_monitoring(vm_elem, "GUEST_STATE", "GUEST_STATE")
|
||||
mv_monitoring(vm_elem, "VMWARETOOLS_RUNNING_STATUS", "VMWARETOOLS_RUNNING_STATUS")
|
||||
mv_monitoring(vm_elem, "VMWARETOOLS_VERSION", "VMWARETOOLS_VERSION")
|
||||
mv_monitoring(vm_elem, "VMWARETOOLS_VERSION_STATUS", "VMWARETOOLS_VERSION_STATUS")
|
||||
end
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user