- 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) classSnmpCommand.CVSTableListener(package private) static classSnmpCommand.FilterPrintStreamclassSnmpCommand.SnmpCommandMessageDispatcher(package private) classSnmpCommand.TextTableListener(package private) classSnmpCommand.WalkCounts
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.StringADDRESS_PARAMETERprivate static java.lang.StringALL_OPTIONS(package private) OctetStringauthoritativeEngineID(package private) OctetStringauthPassphrase(package private) OIDauthProtocolprivate static java.lang.StringBULK_OPTIONS(package private) java.lang.Stringcommandprivate static java.lang.String[][]COMMANDS(package private) OctetStringcommunityprivate static java.lang.StringCONSOLE_OPTIONS(package private) OctetStringcontextEngineID(package private) OctetStringcontextNameprivate static intCVS_TABLEprivate static intDEFAULT(package private) intengineBootCountprivate static java.io.PrintStreamerrprivate static java.util.ResourceBundlehelpprivate static intLISTEN(package private) OctetStringlocalEngineID(package private) OIDlowerBoundIndex(package private) intmaxSizeResponsePDU(package private) intnumDispatcherThreadsprivate static intOID_FINDprivate static java.lang.StringOID_PARAMETERprivate static java.lang.StringOIDLIST_PARAMETERprivate static intOP_USM_DH_KEYprivate static intOP_USM_DH_KICKSTART_INITprivate static intOP_USM_DH_KICKSTART_RUNprivate static intOP_USM_KEYprivate static intOP_USM_USERprotected intoperationprivate static java.lang.StringOPT_OID_PARAMETERprivate static java.lang.StringOPT_OIDLIST_PARAMETERprivate static java.lang.StringOPTIONSprivate static java.io.PrintStreamoutprivate static booleanpacketDumpEnabled(package private) PDUFactorypduFactory(package private) intpduType(package private) OctetStringprivPassphrase(package private) OIDprivProtocol(package private) intretriesprivate intreturnCode(package private) OctetStringsecurityName(package private) java.util.Map<java.lang.String,java.util.List<java.lang.Object>>settingsprivate static booleansilentprivate static intSMI_DUMPprivate static intSNAPSHOT_CREATIONprivate static intSNAPSHOT_DUMP(package private) java.io.FilesnapshotFile(package private) Snmpsnmpprivate static java.lang.StringSNMP_OPTIONSprivate static java.lang.StringSNMPV3_ONLY_OPTIONSprivate static intstdoutWidth(package private) TimeTickssysUpTimeprivate static intTABLEprivate static java.lang.StringTABLE_OPTIONSprivate static int[]tabs(package private) Target<?>targetprivate static intTIME_BASED_CVS_TABLE(package private) inttimeoutprivate static java.lang.StringTLS_OPTIONSprivate static java.lang.StringTRAP_OPTIONS(package private) OIDtrapOID(package private) OIDupperBoundIndex(package private) booleanuseDenseTableOperationprivate static java.lang.StringV3_AUTH_PRIV_PROTOCOLprivate static java.lang.StringV3_OPTIONS(package private) java.util.Vector<VariableBinding>vbs(package private) intversionprivate static intWALKprivate static java.lang.StringWALK_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 voidaddUsmUser(Snmp snmp)private voidassignOptions(java.util.Map<java.lang.String,java.util.List<java.lang.Object>> args)private voidcheckTrapVariables(java.util.List<VariableBinding> vbs, int pduType, OID trapOID, TimeTicks sysUpTime)private voidcreateSnapshot(java.util.List<?> snapshot)private intdumpSnapshot()java.lang.Stringexample(java.lang.String prefix, java.lang.String command)private static java.lang.Stringformat(int indentation, java.lang.String s, int tabNo, int firstLineOffset)private static AddressgetAddress(java.lang.String transportAddress)private static intgetTabPosition(int tabNo)private byte[]getUserEngineID()private static java.util.List<VariableBinding>getVariableBindings(java.lang.String[] args, int position)java.lang.Stringhelp(java.lang.String prefix, java.lang.String command, boolean listOptionsDetails, boolean withDescription)intlisten()static voidmain(java.lang.String[] args)private voidoptionDetailList(int indentation, java.lang.String prefix, java.lang.StringBuffer buf, java.util.SortedMap<java.lang.String,ArgumentParser.ArgumentFormat> soptions)private java.lang.StringoptionList(int indentation, java.lang.String prefix, java.lang.String command)private java.lang.Stringoptions(int indentation, java.lang.String prefix, java.lang.String command)private voidparseOIDs(java.util.Map<java.lang.String,java.util.List<java.lang.Object>> args)protected static voidprintReport(PDU response)static voidprintUsage()protected static voidprintVariableBindings(PDU response)protected static voidprintVersion()voidprocessMessage(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.voidrun()private java.lang.String[]selectFormat(java.lang.String command)PDUsend()static java.lang.Stringspaces(int n)private static java.lang.Stringtab(int offset, int position, int tabNo)inttable()private PDUwalk(Snmp snmp, PDU request, Target<?> target, java.util.List<VariableBinding> snapshot)private static java.lang.Stringwrap(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:CommandResponderProcess an incoming request, report or notification PDU.- Specified by:
processPduin interfaceCommandResponder- Type Parameters:
A- type of the peerAddress.- Parameters:
e- aCommandResponderEventinstance 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:
runin 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:TransportListenerProcesses an incoming message.- Specified by:
processMessagein interfaceTransportListener- Type Parameters:
A- theAddresstype.- Parameters:
sourceTransport- aTransportMappinginstance denoting the transport that received the message and that will be used to send any responses to this message. ThesourceTransporthas to support theincomingAddress's implementation class.incomingAddress- theAddressfrom which the message has been received.wholeMessage- anByteBuffercontaining the received message.tmStateReference- the transport model state reference as defined by RFC 5590.
-
processMessage
public void processMessage(TransportMapping<?> sourceTransport, Address destAddress, byte[] message)
-
-