Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Net::CLI::Interact::AcUserSContributed Perl DoNet::CLI::Interact::ActionSet(3)

       Net::CLI::Interact::ActionSet - Conversation of Send and	Match Actions

       This class is used internally by	Net::CLI::Interact and it's unlikely
       that an end-user	will need to make use of ActionSet objects directly.
       The interface is	documented here	as a matter of record.

       An ActionSet comprises a	sequence (usefully, two	or more) of Actions
       which describe a	conversation with a connected network device. Actions
       will alternate between type "send" and "match", perhaps not in their
       original	Phrasebook definition, but certainly by	the time they are

       If the first Action is of type "send" then the ActionSet	is a normal
       sequence	of "send a command" then "match	a response", perhaps repeated.
       If the first Action is of type "match" then the ActionSet represents a
       "continuation", which is	the method of dealing with paged output.

       An ActionSet ("match" then "send") which	will be	available for use on
       all commands sent from this ActionSet. An alternative to	explicitly
       describing the Continuation sequence within the Phrasebook.

       A stash for the current Prompt (regular expression reference) which
       Net::CLI::Interact expects to see after each command. This is passed
       into the	constructor and	is used	when padding Match Actions into	the
       ActionSet (see "execute", below).

       Returns a new ActionSet which is	a shallow clone	of the existing	one.
       All the reference based slots will share	data, but you can add (for
       example)	a "current_match" without affecting the	original ActionSet.
       Used when preparing to execute an ActionSet which has been retrieved
       from the	Phrasebook.

       Accepts a list of parameters which will be used when "sprintf" is
       called on each Send Action in the set. You must supply sufficient
       parameters as a list for	all Send Actions in the	set, and they will be
       popped off and stashed with the Action(s) according to how many are

       Allows the Transport to be registered such that when the	ActionSet is
       executed, commands are sent to the registered callback subroutine. May
       be called more than once, and on	execution each of the callbacks	will
       be run, in turn and in order.

       The business end	of this	class, where the sequence of Actions is
       prepared	for execution and then control passed to the Transport.	This
       process is split	into a number of phases:

       Pad "send" with "match"
	   The Phrasebook allows missing out of	the Match statements between
	   Send	statements, when they are expected to be the same as the
	   "current_match".  This phase	inserts	Match statements to restore a
	   complete ActionSet definition.

       Forward "continuation" to "match"
	   In the Phrasebook a user defines a Continuation ("match", then
	   "send") following a Send statement (because it deals	with the
	   response to the sent	command). However they are actually used by
	   the Match, as it's the Match	which captures output.

	   This	phase copies Continuation ActionSets from Send statements to
	   following Match statements in the ActionSet.	It also	performs a
	   similar action using	the "default_continuation" if one is set and
	   there's no existing Continuation configured.

	   Here	the registered callbacks are executed (i.e. data is sent to
	   the Transport).

       Marshall	Responses
	   Finally, responses which are	stashed	in the Match Actions are
	   copied back to the Send actions, as more logically they are
	   responses to	commands sent. The ActionSet is	now ready for access
	   to retrieve the "last_response" from	the device.

       See the following for further interface details:

       o   Net::CLI::Interact::Role::Iterator

perl v5.32.1			  2022-04-02  Net::CLI::Interact::ActionSet(3)


Want to link to this manual page? Use this URL:

home | help