- java.lang.Object
-
- org.snmp4j.tools.console.SnmpCommand
-
- All Implemented Interfaces:
java.lang.Runnable
,java.util.EventListener
,CommandResponder
,TransportListener
public class SnmpCommand extends java.lang.Object implements java.lang.Runnable, CommandResponder, TransportListener
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) class
SnmpCommand.CVSTableListener
(package private) static class
SnmpCommand.FilterPrintStream
class
SnmpCommand.SnmpCommandMessageDispatcher
(package private) class
SnmpCommand.TextTableListener
(package private) class
SnmpCommand.WalkCounts
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
ADDRESS_PARAMETER
private static java.lang.String
ALL_OPTIONS
(package private) OctetString
authoritativeEngineID
(package private) OctetString
authPassphrase
(package private) OID
authProtocol
private static java.lang.String
BULK_OPTIONS
(package private) java.lang.String
command
private static java.lang.String[][]
COMMANDS
(package private) OctetString
community
private static java.lang.String
CONSOLE_OPTIONS
(package private) OctetString
contextEngineID
(package private) OctetString
contextName
private static int
CVS_TABLE
private static int
DEFAULT
(package private) int
engineBootCount
private static java.io.PrintStream
err
private static java.util.ResourceBundle
help
private static int
LISTEN
(package private) OctetString
localEngineID
(package private) OID
lowerBoundIndex
(package private) int
maxSizeResponsePDU
(package private) int
numDispatcherThreads
private static int
OID_FIND
private static java.lang.String
OID_PARAMETER
private static java.lang.String
OIDLIST_PARAMETER
private static int
OP_USM_DH_KEY
private static int
OP_USM_DH_KICKSTART_INIT
private static int
OP_USM_DH_KICKSTART_RUN
private static int
OP_USM_KEY
private static int
OP_USM_USER
protected int
operation
private static java.lang.String
OPT_OID_PARAMETER
private static java.lang.String
OPT_OIDLIST_PARAMETER
private static java.lang.String
OPTIONS
private static java.io.PrintStream
out
private static boolean
packetDumpEnabled
(package private) PDUFactory
pduFactory
(package private) int
pduType
(package private) OctetString
privPassphrase
(package private) OID
privProtocol
(package private) int
retries
private int
returnCode
(package private) OctetString
securityName
(package private) java.util.Map<java.lang.String,java.util.List<java.lang.Object>>
settings
private static boolean
silent
private static int
SMI_DUMP
private static int
SNAPSHOT_CREATION
private static int
SNAPSHOT_DUMP
(package private) java.io.File
snapshotFile
(package private) Snmp
snmp
private static java.lang.String
SNMP_OPTIONS
private static java.lang.String
SNMPV3_ONLY_OPTIONS
private static int
stdoutWidth
(package private) TimeTicks
sysUpTime
private static int
TABLE
private static java.lang.String
TABLE_OPTIONS
private static int[]
tabs
(package private) Target<?>
target
private static int
TIME_BASED_CVS_TABLE
(package private) int
timeout
private static java.lang.String
TLS_OPTIONS
private static java.lang.String
TRAP_OPTIONS
(package private) OID
trapOID
(package private) OID
upperBoundIndex
(package private) boolean
useDenseTableOperation
private static java.lang.String
V3_AUTH_PRIV_PROTOCOL
private static java.lang.String
V3_OPTIONS
(package private) java.util.Vector<VariableBinding>
vbs
(package private) int
version
private static int
WALK
private static java.lang.String
WALK_OPTIONS
-
Constructor Summary
Constructors Constructor Description SnmpCommand(java.lang.String command, java.util.Map<java.lang.String,java.util.List<java.lang.Object>> args)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addUsmUser(Snmp snmp)
private void
assignOptions(java.util.Map<java.lang.String,java.util.List<java.lang.Object>> args)
private void
checkTrapVariables(java.util.List<VariableBinding> vbs, int pduType, OID trapOID, TimeTicks sysUpTime)
private void
createSnapshot(java.util.List<?> snapshot)
private int
dumpSnapshot()
java.lang.String
example(java.lang.String prefix, java.lang.String command)
private static java.lang.String
format(int indentation, java.lang.String s, int tabNo, int firstLineOffset)
private static Address
getAddress(java.lang.String transportAddress)
private static int
getTabPosition(int tabNo)
private byte[]
getUserEngineID()
private static java.util.List<VariableBinding>
getVariableBindings(java.lang.String[] args, int position)
java.lang.String
help(java.lang.String prefix, java.lang.String command, boolean listOptionsDetails, boolean withDescription)
int
listen()
static void
main(java.lang.String[] args)
private void
optionDetailList(int indentation, java.lang.String prefix, java.lang.StringBuffer buf, java.util.SortedMap<java.lang.String,ArgumentParser.ArgumentFormat> soptions)
private java.lang.String
optionList(int indentation, java.lang.String prefix, java.lang.String command)
private java.lang.String
options(int indentation, java.lang.String prefix, java.lang.String command)
private void
parseOIDs(java.util.Map<java.lang.String,java.util.List<java.lang.Object>> args)
protected static void
printReport(PDU response)
static void
printUsage()
protected static void
printVariableBindings(PDU response)
protected static void
printVersion()
void
processMessage(TransportMapping<?> sourceTransport, Address destAddress, byte[] message)
<A extends Address>
voidprocessMessage(TransportMapping<? super A> sourceTransport, A incomingAddress, java.nio.ByteBuffer wholeMessage, TransportStateReference tmStateReference)
Processes an incoming message.<A extends Address>
voidprocessPdu(CommandResponderEvent<A> e)
Process an incoming request, report or notification PDU.void
run()
private java.lang.String[]
selectFormat(java.lang.String command)
PDU
send()
static java.lang.String
spaces(int n)
private static java.lang.String
tab(int offset, int position, int tabNo)
int
table()
private PDU
walk(Snmp snmp, PDU request, Target<?> target, java.util.List<VariableBinding> snapshot)
private static java.lang.String
wrap(int offset, java.lang.String s, int maxLineLength, int firstLineOffset)
-
-
-
Field Detail
-
OPTIONS
private static final java.lang.String OPTIONS
- See Also:
- Constant Field Values
-
CONSOLE_OPTIONS
private static final java.lang.String CONSOLE_OPTIONS
- See Also:
- Constant Field Values
-
V3_AUTH_PRIV_PROTOCOL
private static final java.lang.String V3_AUTH_PRIV_PROTOCOL
- See Also:
- Constant Field Values
-
V3_OPTIONS
private static final java.lang.String V3_OPTIONS
- See Also:
- Constant Field Values
-
TRAP_OPTIONS
private static final java.lang.String TRAP_OPTIONS
- See Also:
- Constant Field Values
-
TLS_OPTIONS
private static final java.lang.String TLS_OPTIONS
- See Also:
- Constant Field Values
-
SNMP_OPTIONS
private static final java.lang.String SNMP_OPTIONS
- See Also:
- Constant Field Values
-
SNMPV3_ONLY_OPTIONS
private static final java.lang.String SNMPV3_ONLY_OPTIONS
- See Also:
- Constant Field Values
-
BULK_OPTIONS
private static final java.lang.String BULK_OPTIONS
- See Also:
- Constant Field Values
-
TABLE_OPTIONS
private static final java.lang.String TABLE_OPTIONS
- See Also:
- Constant Field Values
-
WALK_OPTIONS
private static final java.lang.String WALK_OPTIONS
- See Also:
- Constant Field Values
-
ADDRESS_PARAMETER
private static final java.lang.String ADDRESS_PARAMETER
- See Also:
- Constant Field Values
-
OID_PARAMETER
private static final java.lang.String OID_PARAMETER
- See Also:
- Constant Field Values
-
OPT_OID_PARAMETER
private static final java.lang.String OPT_OID_PARAMETER
- See Also:
- Constant Field Values
-
OIDLIST_PARAMETER
private static final java.lang.String OIDLIST_PARAMETER
- See Also:
- Constant Field Values
-
OPT_OIDLIST_PARAMETER
private static final java.lang.String OPT_OIDLIST_PARAMETER
- See Also:
- Constant Field Values
-
ALL_OPTIONS
private static final java.lang.String ALL_OPTIONS
- See Also:
- Constant Field Values
-
COMMANDS
private static final java.lang.String[][] COMMANDS
-
DEFAULT
private static final int DEFAULT
- See Also:
- Constant Field Values
-
WALK
private static final int WALK
- See Also:
- Constant Field Values
-
LISTEN
private static final int LISTEN
- See Also:
- Constant Field Values
-
TABLE
private static final int TABLE
- See Also:
- Constant Field Values
-
CVS_TABLE
private static final int CVS_TABLE
- See Also:
- Constant Field Values
-
TIME_BASED_CVS_TABLE
private static final int TIME_BASED_CVS_TABLE
- See Also:
- Constant Field Values
-
SNAPSHOT_CREATION
private static final int SNAPSHOT_CREATION
- See Also:
- Constant Field Values
-
SNAPSHOT_DUMP
private static final int SNAPSHOT_DUMP
- See Also:
- Constant Field Values
-
OID_FIND
private static final int OID_FIND
- See Also:
- Constant Field Values
-
SMI_DUMP
private static final int SMI_DUMP
- See Also:
- Constant Field Values
-
OP_USM_USER
private static final int OP_USM_USER
- See Also:
- Constant Field Values
-
OP_USM_KEY
private static final int OP_USM_KEY
- See Also:
- Constant Field Values
-
OP_USM_DH_KEY
private static final int OP_USM_DH_KEY
- See Also:
- Constant Field Values
-
OP_USM_DH_KICKSTART_INIT
private static final int OP_USM_DH_KICKSTART_INIT
- See Also:
- Constant Field Values
-
OP_USM_DH_KICKSTART_RUN
private static final int OP_USM_DH_KICKSTART_RUN
- See Also:
- Constant Field Values
-
packetDumpEnabled
private static boolean packetDumpEnabled
-
target
Target<?> target
-
authProtocol
OID authProtocol
-
privProtocol
OID privProtocol
-
privPassphrase
OctetString privPassphrase
-
authPassphrase
OctetString authPassphrase
-
community
OctetString community
-
authoritativeEngineID
OctetString authoritativeEngineID
-
contextEngineID
OctetString contextEngineID
-
contextName
OctetString contextName
-
securityName
OctetString securityName
-
localEngineID
OctetString localEngineID
-
sysUpTime
TimeTicks sysUpTime
-
trapOID
OID trapOID
-
version
int version
-
engineBootCount
int engineBootCount
-
retries
int retries
-
timeout
int timeout
-
pduType
int pduType
-
maxSizeResponsePDU
int maxSizeResponsePDU
-
vbs
java.util.Vector<VariableBinding> vbs
-
snapshotFile
java.io.File snapshotFile
-
operation
protected int operation
-
numDispatcherThreads
int numDispatcherThreads
-
useDenseTableOperation
boolean useDenseTableOperation
-
stdoutWidth
private static int stdoutWidth
-
lowerBoundIndex
OID lowerBoundIndex
-
upperBoundIndex
OID upperBoundIndex
-
pduFactory
PDUFactory pduFactory
-
snmp
Snmp snmp
-
settings
java.util.Map<java.lang.String,java.util.List<java.lang.Object>> settings
-
command
java.lang.String command
-
err
private static java.io.PrintStream err
-
out
private static java.io.PrintStream out
-
help
private static java.util.ResourceBundle help
-
tabs
private static int[] tabs
-
silent
private static boolean silent
-
returnCode
private int returnCode
-
-
Method Detail
-
assignOptions
private void assignOptions(java.util.Map<java.lang.String,java.util.List<java.lang.Object>> args)
-
parseOIDs
private void parseOIDs(java.util.Map<java.lang.String,java.util.List<java.lang.Object>> args) throws java.lang.IllegalArgumentException
- Throws:
java.lang.IllegalArgumentException
-
addUsmUser
private void addUsmUser(Snmp snmp)
-
help
public java.lang.String help(java.lang.String prefix, java.lang.String command, boolean listOptionsDetails, boolean withDescription)
-
example
public java.lang.String example(java.lang.String prefix, java.lang.String command)
-
optionList
private java.lang.String optionList(int indentation, java.lang.String prefix, java.lang.String command)
-
options
private java.lang.String options(int indentation, java.lang.String prefix, java.lang.String command)
-
optionDetailList
private void optionDetailList(int indentation, java.lang.String prefix, java.lang.StringBuffer buf, java.util.SortedMap<java.lang.String,ArgumentParser.ArgumentFormat> soptions)
-
selectFormat
private java.lang.String[] selectFormat(java.lang.String command)
-
tab
private static java.lang.String tab(int offset, int position, int tabNo)
-
getTabPosition
private static int getTabPosition(int tabNo)
-
format
private static java.lang.String format(int indentation, java.lang.String s, int tabNo, int firstLineOffset)
-
wrap
private static java.lang.String wrap(int offset, java.lang.String s, int maxLineLength, int firstLineOffset)
-
spaces
public static java.lang.String spaces(int n)
-
send
public PDU send() throws java.io.IOException
- Throws:
java.io.IOException
-
checkTrapVariables
private void checkTrapVariables(java.util.List<VariableBinding> vbs, int pduType, OID trapOID, TimeTicks sysUpTime)
-
printReport
protected static void printReport(PDU response)
-
processPdu
public <A extends Address> void processPdu(CommandResponderEvent<A> e)
Description copied from interface:CommandResponder
Process an incoming request, report or notification PDU.- Specified by:
processPdu
in interfaceCommandResponder
- Type Parameters:
A
- type of the peerAddress
.- Parameters:
e
- aCommandResponderEvent
instance containing the PDU to process and some additional information returned by the message processing model that decoded the SNMP message.
-
printVariableBindings
protected static void printVariableBindings(PDU response)
-
table
public int table() throws java.io.IOException
- Throws:
java.io.IOException
-
createSnapshot
private void createSnapshot(java.util.List<?> snapshot)
-
dumpSnapshot
private int dumpSnapshot()
-
walk
private PDU walk(Snmp snmp, PDU request, Target<?> target, java.util.List<VariableBinding> snapshot) throws java.io.IOException
- Throws:
java.io.IOException
-
getVariableBindings
private static java.util.List<VariableBinding> getVariableBindings(java.lang.String[] args, int position)
-
getAddress
private static Address getAddress(java.lang.String transportAddress)
-
listen
public int listen() throws java.io.IOException
- Throws:
java.io.IOException
-
main
public static void main(java.lang.String[] args)
-
run
public void run()
- Specified by:
run
in interfacejava.lang.Runnable
-
getUserEngineID
private byte[] getUserEngineID()
-
printVersion
protected static void printVersion()
-
printUsage
public static void printUsage() throws java.io.IOException
- Throws:
java.io.IOException
-
processMessage
public <A extends Address> void processMessage(TransportMapping<? super A> sourceTransport, A incomingAddress, java.nio.ByteBuffer wholeMessage, TransportStateReference tmStateReference)
Description copied from interface:TransportListener
Processes an incoming message.- Specified by:
processMessage
in interfaceTransportListener
- Type Parameters:
A
- theAddress
type.- Parameters:
sourceTransport
- aTransportMapping
instance denoting the transport that received the message and that will be used to send any responses to this message. ThesourceTransport
has to support theincomingAddress
's implementation class.incomingAddress
- theAddress
from which the message has been received.wholeMessage
- anByteBuffer
containing the received message.tmStateReference
- the transport model state reference as defined by RFC 5590.
-
processMessage
public void processMessage(TransportMapping<?> sourceTransport, Address destAddress, byte[] message)
-
-