docs: def main():
      """Script to upgrade a Cisco ASA."""
      try:
          ip_addr = raw_input("Enter ASA IP address: ")
      except NameError:
          ip_addr = input("Enter ASA IP address: ")
      my_pass = getpass()
      start_time = datetime.now()
      print(">>>> {}".format(start_time))
  
      net_device = {
          "device_type": "cisco_asa",
          "ip": ip_addr,
          "username": "admin",
          "password": my_pass,
          "secret": my_pass,
          "port": 22,
      }
  
      print("\nLogging in to ASA")
      ssh_conn = ConnectHandler(**net_device)
      print()
  
      # ADJUST TO TRANSFER IMAGE FILE
      dest_file_system = "disk0:"
      source_file = "test1.txt"
      dest_file = "test1.txt"
      alt_dest_file = "asa825-59-k8.bin"
  
      with FileTransfer(
          ssh_conn,
          source_file=source_file,
          dest_file=dest_file,
          file_system=dest_file_system,
      ) as scp_transfer:
  
          if not scp_transfer.check_file_exists():
              if not scp_transfer.verify_space_available():
                  raise ValueError("Insufficient space available on remote device")
  
              print("Enabling SCP")
              output = asa_scp_handler(ssh_conn, mode="enable")
              print(output)
  
              print("\nTransferring file\n")
              scp_transfer.transfer_file()
  
              print("Disabling SCP")
              output = asa_scp_handler(ssh_conn, mode="disable")
              print(output)
  
          print("\nVerifying file")
          if scp_transfer.verify_file():
              print("Source and destination MD5 matches")
          else:
              raise ValueError("MD5 failure between source and destination files")
  
      print("\nSending boot commands")
      full_file_name = "{}/{}".format(dest_file_system, alt_dest_file)
      boot_cmd = "boot system {}".format(full_file_name)
      output = ssh_conn.send_config_set([boot_cmd])
      print(output)
  
      print("\nVerifying state")
      output = ssh_conn.send_command("show boot")
      print(output)
  
      # UNCOMMENT TO PERFORM WR MEM AND RELOAD
      # print("\nWrite mem and reload")
      # output = ssh_conn.send_command_expect('write mem')
      # output += ssh_conn.send_command('reload')
      # output += ssh_conn.send_command('y')
      # print(output)
  
      print("\n>>>> {}".format(datetime.now() - start_time))
      print()