Track down bug where default section didn't work without SSIDs
(also increase verbosity)
This commit is contained in:
parent
966f5d48ab
commit
c7ab0bcb5d
@ -65,9 +65,13 @@ class SSHConfiger:
|
||||
if ( "ssh_dir" not in self._config.keys() ):
|
||||
self.die("Config file needs key \"ssh_dir\" inside \"config\" section")
|
||||
ssh_dir = self._config["ssh_dir"]
|
||||
self.log("SSH Dir: " + str(ssh_dir))
|
||||
|
||||
# Determine which ssh config file we should use
|
||||
ssh_config_name = self.determine_ssh_config_name()
|
||||
self.log("Determined ssh config name: " + str(ssh_config_name))
|
||||
if not ssh_config_name:
|
||||
self.die("Unable to determine appropriate ssh config name; Quitting")
|
||||
|
||||
# Make paths
|
||||
ssh_config_path_link = os.path.join(ssh_dir, "config")
|
||||
@ -105,29 +109,54 @@ class SSHConfiger:
|
||||
if ( self._action_command != "up" ):
|
||||
return None
|
||||
|
||||
#
|
||||
self.log("Attempting to determine SSH config name")
|
||||
|
||||
# Check each section
|
||||
found_ssh_config_name = None
|
||||
for section_name in self._targets:
|
||||
|
||||
#
|
||||
section = self._targets[section_name]
|
||||
self.log("Examining section: " + str(section_name))
|
||||
|
||||
# Must match at least one interface
|
||||
if ( self._action_interface not in section["adapters"] ):
|
||||
# Don't examine default if anything is picked already
|
||||
if section_name == "default" and found_ssh_config_name:
|
||||
self.log("Skipping default section because we've already found at least one match: " + str(found_ssh_config_name))
|
||||
continue
|
||||
|
||||
#
|
||||
interface_ssid = self.get_interface_ssid(self._action_interface)
|
||||
# Check the interface
|
||||
interface_matched = False
|
||||
if (
|
||||
# Matches, if current interface found in adapters
|
||||
self._action_interface in section["adapters"]
|
||||
|
||||
# Must also match at least one SSID
|
||||
if ( interface_ssid not in section["ssids"] ):
|
||||
# Can also match if we're in section "default"
|
||||
or section_name == "default"
|
||||
):
|
||||
interface_matched = True
|
||||
if not interface_matched:
|
||||
self.log("Section \"" + str(section_name) + "\" didn't match any interfaces; Skipping")
|
||||
continue
|
||||
|
||||
# Grab the SSID this adapter is currently connected to
|
||||
interface_ssid = self.get_interface_ssid(self._action_interface)
|
||||
if not interface_ssid:
|
||||
self.log("Interface \"" + str(interface_ssid) + "\" isn't connected to anything ... ")
|
||||
self.log("Interface \"" + str(self._action_interface) + "\" is currently connected to: \"" + str(interface_ssid) + "\"")
|
||||
|
||||
# Must also match at least one SSID,
|
||||
# OR we're in the default section
|
||||
if interface_ssid not in section["ssids"] and section_name != "default":
|
||||
self.log("Did not find SSID \"" + interface_ssid + "\" in section ssids: " + str(section["ssids"]))
|
||||
continue
|
||||
|
||||
# Found a match!
|
||||
found_ssh_config_name = section["ssh_config_name"]
|
||||
self.log("Found matching ssh config name: " + str(found_ssh_config_name))
|
||||
|
||||
# Didn't find anything? Go default ...
|
||||
if (found_ssh_config_name == None):
|
||||
if (not found_ssh_config_name):
|
||||
if ( "default" in self._targets.keys() ):
|
||||
if ( "ssh_config_name" in self._targets["default"].keys() ):
|
||||
found_ssh_config_name = self._targets["default"]["ssh_config_name"]
|
||||
@ -172,6 +201,7 @@ class SSHConfiger:
|
||||
continue
|
||||
|
||||
#
|
||||
self.log("Parsing config target: \"" + section + "\"")
|
||||
target = {
|
||||
"adapters" : [],
|
||||
"ssids" : []
|
||||
@ -197,6 +227,7 @@ class SSHConfiger:
|
||||
|
||||
#
|
||||
targets[section] = target
|
||||
self.log("Parsed config for config target \"" + section + "\": " + str(target))
|
||||
|
||||
#
|
||||
self._config = config
|
||||
|
Loading…
Reference in New Issue
Block a user