Module: ALGOSEC_SDK::AreFlowsEqual
- Defined in:
- lib/algosec-sdk/helpers/flow_comparisons.rb
Overview
A module to determine if a local flow definition is equal to a flow defined on the server
Class Method Summary collapse
- .are_apps_equal_in_flow(application_names, server_flow_apps) ⇒ Object
- .are_dest_equal_in_flow(dest_object_names, server_flow_dests) ⇒ Object
- .are_services_equal_in_flow(service_names, server_flow_services) ⇒ Object
- .are_sources_equal_in_flow(source_object_names, server_flow_sources) ⇒ Object
- .are_users_equal_in_flow(network_users, server_flow_users) ⇒ Object
- .flows_equal?(new_flow, flow_from_server) ⇒ Boolean
Class Method Details
.are_apps_equal_in_flow(application_names, server_flow_apps) ⇒ Object
25 26 27 28 29 30 31 32 |
# 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) ⇒ Object
15 16 17 18 |
# 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) ⇒ Object
20 21 22 23 |
# 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) ⇒ Object
10 11 12 13 |
# 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) ⇒ Object
34 35 36 37 38 |
# 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) ⇒ Boolean
40 41 42 43 44 45 46 47 48 |
# 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 |