Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,23 +24,23 @@ def parse_ems_event_targets(ems_event)
# there's almost always a tenant id regardless of event type
collect_identity_tenant_references!(target_collection)

target_type = if ems_event.event_type.start_with?("floatingip.")
target_type = case resource_type
when "floatingip"
:floating_ips
elsif ems_event.event_type.start_with?("router.")
when "router"
:network_routers
elsif ems_event.event_type.start_with?("port.")
when "port"
:network_ports
elsif ems_event.event_type.start_with?("network.")
when "network"
:cloud_networks
elsif ems_event.event_type.start_with?("subnet.")
when "subnet"
:cloud_subnets
elsif ems_event.event_type.start_with?("security_group.")
when "security_group"
:security_groups
elsif ems_event.event_type.start_with?("security_group_rule.")
when "security_group_rule"
:firewall_rules
end

resource_id = event_payload['resource_id']
if resource_id
add_target(target_collection, target_type, resource_id)
elsif target_type == :security_groups
Expand Down Expand Up @@ -73,4 +73,12 @@ def add_target(target_collection, association, ref)
def event_payload
@event_payload ||= ManageIQ::Providers::Openstack::EventParserCommon.message_content(ems_event).fetch('payload', {})
end

def resource_type
@resource_type ||= ems_event.event_type.split(".").first
end

def resource_id
@resource_id ||= event_payload.dig(resource_type, "id") || event_payload["resource_id"]
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,33 @@
oslo_message_text = "with#{"out" unless oslo_message} oslo_message"

it "parses network events #{oslo_message_text}" do
payload = {"resource_id" => "network_id_test"}
payload = {
"network" => {
"id" => "network_id_test",
"name" => "network",
"tenant_id" => "tenant_id_test",
"admin_state_up" => true,
"mtu" => 1442,
"status" => "ACTIVE",
"subnets" => [],
"shared" => false,
"project_id" => "project_id_test",
"port_security_enabled" => true,
"router:external" => false,
"provider:network_type" => "geneve",
"provider:physical_network" => nil,
"provider:segmentation_id" => 1160,
"is_default" => false,
"availability_zone_hints" => [],
"availability_zones" => [],
"ipv4_address_scope" => nil,
"ipv6_address_scope" => nil,
"description" => "",
"tags" => [],
"revision_number" => 1
}
}

ems_event = create_ems_event(@manager, "network.create.end", oslo_message, payload)

parsed_targets = described_class.new(ems_event).parse
Expand Down