module ALGOSEC_SDK::AreFlowsEqual

A module to determine if a local flow definition is equal to a flow defined on the server

Public Class Methods

are_apps_equal_in_flow(application_names, server_flow_apps) click to toggle source
# File lib/algosec-sdk/helpers/flow_comparisons.rb, line 25
def self.are_apps_equal_in_flow(application_names, server_flow_apps)
  return application_names == [] if server_flow_apps == [ANY_NETWORK_APPLICATION]
  flow_application_names = server_flow_apps.map do |network_application|
    network_application['name']
  end

  Set.new(application_names) == Set.new(flow_application_names)
end
are_dest_equal_in_flow(dest_object_names, server_flow_dests) click to toggle source
# File lib/algosec-sdk/helpers/flow_comparisons.rb, line 15
def self.are_dest_equal_in_flow(dest_object_names, server_flow_dests)
  flow_dest_object_names = Set.new(server_flow_dests.map { |dest| dest['name'] })
  Set.new(dest_object_names) == Set.new(flow_dest_object_names)
end
are_services_equal_in_flow(service_names, server_flow_services) click to toggle source
# File lib/algosec-sdk/helpers/flow_comparisons.rb, line 20
def self.are_services_equal_in_flow(service_names, server_flow_services)
  network_flow_service_names = Set.new(server_flow_services.map { |service| service['name'] })
  Set.new(service_names) == Set.new(network_flow_service_names)
end
are_sources_equal_in_flow(source_object_names, server_flow_sources) click to toggle source
# File lib/algosec-sdk/helpers/flow_comparisons.rb, line 10
def self.are_sources_equal_in_flow(source_object_names, server_flow_sources)
  flow_source_object_names = Set.new(server_flow_sources.map { |source| source['name'] })
  Set.new(source_object_names) == Set.new(flow_source_object_names)
end
are_users_equal_in_flow(network_users, server_flow_users) click to toggle source
# File lib/algosec-sdk/helpers/flow_comparisons.rb, line 34
def self.are_users_equal_in_flow(network_users, server_flow_users)
  return network_users == [] if server_flow_users == [ANY_OBJECT]
  flow_users = server_flow_users.map { |user| user['name'] }
  Set.new(network_users) == Set.new(flow_users)
end
flows_equal?(new_flow, flow_from_server) click to toggle source
# File lib/algosec-sdk/helpers/flow_comparisons.rb, line 40
def self.flows_equal?(new_flow, flow_from_server)
  [
    are_sources_equal_in_flow(new_flow['sources'], flow_from_server['sources']),
    are_dest_equal_in_flow(new_flow['destinations'], flow_from_server['destinations']),
    are_services_equal_in_flow(new_flow['services'], flow_from_server['services']),
    are_apps_equal_in_flow(new_flow.fetch('applications', []), flow_from_server.fetch('networkApplications', [])),
    are_users_equal_in_flow(new_flow.fetch('users', []), flow_from_server.fetch('networkUsers', []))
  ].all?
end