app/models/manageiq/providers/openstack/inventory/collector/target_collection.rb
Cyclomatic complexity for infer_related_vm_ems_refs_db! is too high. [16/11] Open
Open
def infer_related_vm_ems_refs_db!
changed_vms = manager.vms.where(:ems_ref => references(:vms)).includes(:key_pairs, :network_ports, :floating_ips,
:orchestration_stack, :cloud_networks, :cloud_tenant)
changed_vms.each do |vm|
stack = vm.orchestration_stack
- Read upRead up
- Create a ticketCreate a ticket
- Exclude checks
Checks that the cyclomatic complexity of methods is not higher than the configured maximum. The cyclomatic complexity is the number of linearly independent paths through a method. The algorithm counts decision points and adds one.
An if statement (or unless or ?:) increases the complexity by one. An else branch does not, since it doesn't add a decision point. The && operator (or keyword and) can be converted to a nested if statement, and ||/or is shorthand for a sequence of ifs, so they also add one. Loops can be said to have an exit condition, so they add one. Blocks that are calls to builtin iteration methods (e.g. `ary.map{...}) also add one, others are ignored.
def each_child_node(*types) # count begins: 1
unless block_given? # unless: +1
return to_enum(__method__, *types)
children.each do |child| # each{}: +1
next unless child.is_a?(Node) # unless: +1
yield child if types.empty? || # if: +1, ||: +1
types.include?(child.type)
end
self
end # total: 6
Use filter_map
instead. Open
Open
end.compact + references(:floating_ips).collect do |floating_ip_id|
safe_get { network_service.floating_ips.get(floating_ip_id) }
end.compact
- Create a ticketCreate a ticket
- Exclude checks
Use filter_map
instead. Open
Open
@cloud_networks = references(:cloud_networks).collect do |network_id|
safe_get do
network_service.get_network(network_id).body["network"]
rescue Fog::OpenStack::Network::NotFound
nil
- Create a ticketCreate a ticket
- Exclude checks
Use filter_map
instead. Open
Open
@network_routers = references(:network_routers).collect do |router_id|
safe_get { network_service.routers.get(router_id) }
end.compact
- Create a ticketCreate a ticket
- Exclude checks
Use filter_map
instead. Open
Open
@floating_ips = references(:floating_ips_by_address).collect do |floating_ip|
safe_get { network_service.floating_ips.all(:floating_ip_address => floating_ip).first }
end.compact + references(:floating_ips).collect do |floating_ip_id|
- Create a ticketCreate a ticket
- Exclude checks
Use filter_map
instead. Open
Open
targets_by_association(:orchestration_stacks).collect do |target|
get_orchestration_stack(target.manager_ref[:ems_ref], target.options[:tenant_id])
end.compact
- Create a ticketCreate a ticket
- Exclude checks
Use filter_map
instead. Open
Open
references(:vms).collect do |vm_id|
get_vm(vm_id)
end.compact
- Create a ticketCreate a ticket
- Exclude checks
Use filter_map
instead. Open
Open
@flavors = references(:flavors).collect do |flavor_id|
safe_get { compute_service.flavors.get(flavor_id) }
end.compact
- Create a ticketCreate a ticket
- Exclude checks
Use filter_map
instead. Open
Open
vm.cloud_networks.collect(&:ems_ref).compact.each { |ems_ref| add_target!(:cloud_networks, ems_ref) }
- Create a ticketCreate a ticket
- Exclude checks
Use filter_map
instead. Open
Open
vm.network_ports.collect(&:ems_ref).compact.each do |ems_ref|
- Create a ticketCreate a ticket
- Exclude checks
Use filter_map
instead. Open
Open
@images = references(:images).collect do |image_id|
safe_get { image_service.images.get(image_id) }
end.compact
- Create a ticketCreate a ticket
- Exclude checks
Use filter_map
instead. Open
Open
@cloud_volume_snapshots = targets_by_association(:cloud_volume_snapshots).collect do |target|
scoped_get_snapshot(target.manager_ref[:ems_ref], target.options[:tenant_id])
end.compact
- Create a ticketCreate a ticket
- Exclude checks
Use filter_map
instead. Open
Open
vm.key_pairs.collect(&:name).compact.each do |name|
- Create a ticketCreate a ticket
- Exclude checks
Use filter_map
instead. Open
Open
@cloud_volumes = targets_by_association(:cloud_volumes).collect do |target|
scoped_get_volume(target.manager_ref[:ems_ref], target.options[:tenant_id])
end.compact
- Create a ticketCreate a ticket
- Exclude checks
Use filter_map
instead. Open
Open
vm.floating_ips.collect(&:ems_ref).compact.each { |ems_ref| add_target!(:floating_ips, ems_ref) }
- Create a ticketCreate a ticket
- Exclude checks
Use filter_map
instead. Open
Open
vm.cloud_volumes.collect(&:ems_ref).compact.each do |ems_ref|
- Create a ticketCreate a ticket
- Exclude checks
Use filter_map
instead. Open
Open
@tenants = references(:cloud_tenants).collect do |cloud_tenant_id|
memoized_get_tenant(cloud_tenant_id)
end.compact
- Create a ticketCreate a ticket
- Exclude checks