Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The main (and most important) portion of Config Push is sending the actual commands provided in the "Commands" set to the devices.

Unimus here works as following:

  1. from the command set, send the next command line to the device, followed by Enter
  2. collect all output, up until a known (recognizable) output occurs
  3. IF device asks if it should continue with output (more info below), answer "Y", GO TO step 2
  4. IF device outputs a question (such as a "[y/n]" question - more info below), stop, GO TO step 1.
  5. IF device asks for a password, or another "secret", stop, GO TO step 1
  6. IF device pages through output ("-- more --"), send pagination key (space for most device types) to proceed to next page, GO TO step 2
  7. IF device asks to confirm end of output, ("press Q to finish"), send the appropriate key to finish output, GO TO step 2
  8. IF a prompt is received, stop, GO TO step 1

As per the description above, pagination ("-- more --"), and output termination which some devices require ("Output finished, press Q to continue") will be handled completely automatically by Unimus.

For step 3, Unimus will automatically answer "Y" to questions like "Show all items?" or "Do you want to show sensitive items?" or "Confirm command...", etc.
For step 4, Unimus recognizes any generic questions asked by devices that end in the "[y/n]" or "(yes/no)" prompts, but also things like "Press enter to config change", etc.
For step 5, usual "Password:" or "Password for..." and similar password prompt are recognized

To make this simple - you can provide the same sequence of commands and key-strokes to Unimus as you would when interacting with the device CLI, and Unimus will properly interact with the device as expected.

Command parsing examples

Push commands:

Code Block
write memory
y

Device output (keys sent by Unimus in green):

Code Block
device> write memory
This may take some time, continue? [y/n] y
..........
device> 

 

For the "y" confirmation, it will be send as "y" and then Enter. You can only send the "y" without enter like this:

Code Block
device> commit
\[0x1A]
y\[no-enter]

Device output (keys sent by Unimus in green):

Debugging failed pushes - "INTERACTION_ERROR" group