Skip to content

Commit

Permalink
Merge pull request #513 from nasark/cloud_database_servers_refresh_su…
Browse files Browse the repository at this point in the history
…pport

Cloud database servers refresh support
  • Loading branch information
agrare committed Jul 14, 2022
2 parents 3110bfa + ed99303 commit 6a16243
Show file tree
Hide file tree
Showing 4 changed files with 91 additions and 19 deletions.
1 change: 1 addition & 0 deletions app/models/manageiq/providers/azure/cloud_manager.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
class ManageIQ::Providers::Azure::CloudManager < ManageIQ::Providers::CloudManager
require_nested :AvailabilityZone
require_nested :CloudDatabase
require_nested :CloudDatabaseServer
require_nested :EventCatcher
require_nested :EventParser
require_nested :Flavor
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
class ManageIQ::Providers::Azure::CloudManager::CloudDatabaseServer < ::CloudDatabaseServer
end
106 changes: 87 additions & 19 deletions app/models/manageiq/providers/azure/inventory/parser/cloud_manager.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ def parse
instances
managed_images
cloud_databases
cloud_database_servers
images if collector.options.get_private_images
market_images if collector.options.get_market_images

Expand Down Expand Up @@ -439,46 +440,104 @@ def cloud_databases
rg_ems_ref = collector.get_resource_group_ems_ref(database)

persister.cloud_databases.build(
:ems_ref => database.id,
:name => "#{server.name}/#{database.name}",
:status => server.properties&.user_visible_state,
:db_engine => "MariaDB #{server.properties&.version}",
:resource_group => persister.resource_groups.lazy_find(rg_ems_ref)
:ems_ref => database.id,
:name => "#{server.name}/#{database.name}",
:status => server.properties&.user_visible_state,
:db_engine => "MariaDB #{server.properties&.version}",
:resource_group => persister.resource_groups.lazy_find(rg_ems_ref),
:cloud_database_server => persister.cloud_database_servers.lazy_find(server.id)
)
end

collector.mysql_databases.each do |server, database|
rg_ems_ref = collector.get_resource_group_ems_ref(database)

persister.cloud_databases.build(
:ems_ref => database.id,
:name => "#{server.name}/#{database.name}",
:status => server.properties&.user_visible_state,
:db_engine => "MySQL #{server.properties&.version}",
:resource_group => persister.resource_groups.lazy_find(rg_ems_ref)
:ems_ref => database.id,
:name => "#{server.name}/#{database.name}",
:status => server.properties&.user_visible_state,
:db_engine => "MySQL #{server.properties&.version}",
:resource_group => persister.resource_groups.lazy_find(rg_ems_ref),
:cloud_database_server => persister.cloud_database_servers.lazy_find(server.id)
)
end

collector.postgresql_databases.each do |server, database|
rg_ems_ref = collector.get_resource_group_ems_ref(database)

persister.cloud_databases.build(
:ems_ref => database.id,
:name => "#{server.name}/#{database.name}",
:status => server.properties&.user_visible_state,
:db_engine => "PostgreSQL #{server.properties&.version}",
:resource_group => persister.resource_groups.lazy_find(rg_ems_ref)
:ems_ref => database.id,
:name => "#{server.name}/#{database.name}",
:status => server.properties&.user_visible_state,
:db_engine => "PostgreSQL #{server.properties&.version}",
:resource_group => persister.resource_groups.lazy_find(rg_ems_ref),
:cloud_database_server => persister.cloud_database_servers.lazy_find(server.id)
)
end

collector.sql_databases.each do |sql_server, sql_database|
rg_ems_ref = collector.get_resource_group_ems_ref(sql_database)

persister.cloud_databases.build(
:ems_ref => sql_database.id,
:name => "#{sql_server.name}/#{sql_database.name}",
:status => sql_database.properties&.status,
:db_engine => "SQL Server #{sql_server.properties&.version}",
:ems_ref => sql_database.id,
:name => "#{sql_server.name}/#{sql_database.name}",
:status => sql_database.properties&.status,
:db_engine => "SQL Server #{sql_server.properties&.version}",
:resource_group => persister.resource_groups.lazy_find(rg_ems_ref),
:cloud_database_server => persister.cloud_database_servers.lazy_find(sql_server.id)
)
end
end

def cloud_database_servers
collector.sql_servers.each do |server|
rg_ems_ref = collector.get_resource_group_ems_ref(server)

persister.cloud_database_servers.build(
:ems_ref => server.id,
:name => server.name,
:server_type => 'SQL',
:status => normalize_cloud_database_server_status(server.properties&.state),
:version => server.properties&.version,
:resource_group => persister.resource_groups.lazy_find(rg_ems_ref)
)
end

collector.mysql_servers.each do |server|
rg_ems_ref = collector.get_resource_group_ems_ref(server)

persister.cloud_database_servers.build(
:ems_ref => server.id,
:name => server.name,
:server_type => 'MySQL',
:status => normalize_cloud_database_server_status(server.properties&.user_visible_state),
:version => server.properties&.version,
:resource_group => persister.resource_groups.lazy_find(rg_ems_ref)
)
end

collector.mariadb_servers.each do |server|
rg_ems_ref = collector.get_resource_group_ems_ref(server)

persister.cloud_database_servers.build(
:ems_ref => server.id,
:name => server.name,
:server_type => 'MariaDB',
:status => normalize_cloud_database_server_status(server.properties&.user_visible_state),
:version => server.properties&.version,
:resource_group => persister.resource_groups.lazy_find(rg_ems_ref)
)
end

collector.postgresql_servers.each do |server|
rg_ems_ref = collector.get_resource_group_ems_ref(server)

persister.cloud_database_servers.build(
:ems_ref => server.id,
:name => server.name,
:server_type => 'PostgreSQL',
:status => normalize_cloud_database_server_status(server.properties&.user_visible_state),
:version => server.properties&.version,
:resource_group => persister.resource_groups.lazy_find(rg_ems_ref)
)
end
Expand Down Expand Up @@ -510,4 +569,13 @@ def build_image_description(image)
# Description is a concatenation of resource group and storage account
"#{image.storage_account.resource_group}/#{image.storage_account.name}"
end

def normalize_cloud_database_server_status(server_status)
case server_status.downcase
when /ready/
"running"
else
"unknown"
end
end
end
1 change: 1 addition & 0 deletions app/models/manageiq/providers/azure/inventory/persister.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ def initialize_inventory_collections
def initialize_cloud_inventory_collections
%i(availability_zones
cloud_databases
cloud_database_servers
disks
flavors
hardwares
Expand Down

0 comments on commit 6a16243

Please sign in to comment.