More restrictive duplicate and index check
A duplicate is defined by identical connection parameters (host, user, database, port) and these parameters are used for finding an index in the connection store.
This commit is contained in:
parent
abe9f6f66a
commit
f09602d5d3
@ -119,27 +119,6 @@ class ConnectionStore:
|
|||||||
and connection_parameter_dictionary["Host"] == connection_parameter_dictionary_for_check["Host"] \
|
and connection_parameter_dictionary["Host"] == connection_parameter_dictionary_for_check["Host"] \
|
||||||
and connection_parameter_dictionary["Port"] == connection_parameter_dictionary_for_check["Port"]:
|
and connection_parameter_dictionary["Port"] == connection_parameter_dictionary_for_check["Port"]:
|
||||||
|
|
||||||
# If the two dictionaries contain a parameter for loading all databases, check them for their equality.
|
|
||||||
# If they are not equal, the given connection has changed.
|
|
||||||
if "Load All" in connection_parameter_dictionary \
|
|
||||||
and "Load All" in connection_parameter_dictionary_for_check:
|
|
||||||
if connection_parameter_dictionary["Load All"] \
|
|
||||||
!= connection_parameter_dictionary_for_check["Load All"]:
|
|
||||||
return False
|
|
||||||
|
|
||||||
# If only one dictionary has a key for "Load All", there is a change in the connection parameters.
|
|
||||||
elif "Load All" in connection_parameter_dictionary \
|
|
||||||
or "Load All" in connection_parameter_dictionary_for_check:
|
|
||||||
return False
|
|
||||||
|
|
||||||
# If load all in the check dictionary is False and if the databases are not the same, the connection has
|
|
||||||
# changed, because only one database is used. One database is not a universal enter point in this case.
|
|
||||||
if "Load All" in connection_parameter_dictionary_for_check \
|
|
||||||
and connection_parameter_dictionary_for_check["Load All"] is False \
|
|
||||||
and connection_parameter_dictionary["Database"] \
|
|
||||||
!= connection_parameter_dictionary_for_check["Database"]:
|
|
||||||
return False
|
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
# If a duplicate is not found, this else branch is active.
|
# If a duplicate is not found, this else branch is active.
|
||||||
@ -219,10 +198,16 @@ class ConnectionStore:
|
|||||||
|
|
||||||
# Check for every item in the list for a match.
|
# Check for every item in the list for a match.
|
||||||
for index in range(len(self.connection_parameters_yaml)):
|
for index in range(len(self.connection_parameters_yaml)):
|
||||||
|
current_connection_parameters_dictionary = self.connection_parameters_yaml[index]
|
||||||
# If the list of all dictionaries contains the given dictionary, there is a match.
|
# If the list of all dictionaries contains the given dictionary, there is a match.
|
||||||
if self.connection_parameters_yaml[index] == connection_parameters_dictionary_to_check:
|
if current_connection_parameters_dictionary["Host"] == connection_parameters_dictionary_to_check["Host"] \
|
||||||
|
and current_connection_parameters_dictionary["Database"] == \
|
||||||
# Return the current index of the connection.
|
connection_parameters_dictionary_to_check["Database"] \
|
||||||
|
and current_connection_parameters_dictionary["Username"] \
|
||||||
|
== connection_parameters_dictionary_to_check["Username"] and \
|
||||||
|
current_connection_parameters_dictionary["Port"] \
|
||||||
|
== connection_parameters_dictionary_to_check["Port"]:
|
||||||
|
# Return the current index of the connection
|
||||||
return index
|
return index
|
||||||
|
|
||||||
def get_connection_at_index(self, connection_at_index):
|
def get_connection_at_index(self, connection_at_index):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user