Class RemoteAdminCommand
- Direct Known Subclasses:
ServerRemoteAdminCommand
Arguments to the command are supplied using a ParameterMap passed to the executeCommand method. ParameterMap is a MultiMap where each key can have multiple values, although this class only supports a single value for each option. Operands for the command are stored as the option named "DEFAULT" and can have multiple values.
Before a command can be executed, the metadata for the command (in the form of a CommandModel) is required. The getCommandModel method will fetch the metadata from the server, save it, and return it. If the CommandModel for a command is known independently (e.g., stored in a local cache, or known a priori), it can be set using the setCommandModel method. If the metadata isn't known when the exectureCommand method is called, it will fetch the metadata from the server before executing the command.
Any files returned by the command will be stored in the current directory. The setFileOutputDirectory method can be used to control where returned files are saved.
This implementation is now in retention period. All content was migrated to RemoteRestAdminCommand. This implementation will be removed just after all necessary changes and tests will be done.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionRemoteAdminCommand(String name, String host, int port) RemoteAdminCommand(String name, String host, int port, boolean secure, String user, char[] password, Logger logger) RemoteAdminCommand(String name, String host, int port, boolean secure, String user, char[] password, Logger logger, String scope, String authToken, boolean prohibitDirectoryUploads) Construct a new remote command object. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddAdditionalHeaders(URLConnection urlConnection) Adds any headers needed for the current environment to the admin request.protected AuthenticationInfoReturns the username/password authenticaiton information to use in building the outbound HTTP connection.executeCommand(org.glassfish.api.admin.ParameterMap opts) Run the command using the specified arguments.protected voidFetch the command metadata from the remote server.After a successful command execution, the attributes returned by the command are saved.protected Stringorg.glassfish.api.admin.CommandModelGet the CommandModel for the command from the server.protected StringBuilderGet the URI for executing the command.protected StringgetFromEnvironment(String name) Subclasses can override to supply parameter values from environment.protected HttpConnectorAddressgetHttpConnectorAddress(String host, int port, boolean shouldUseSecure) Provides an HttpConnectorAddress for use in connecting to the desired admin listener.static intgetUsage()Get the usage text.headers()Return a modifiable list of headers to be added to the request.booleanIf command model was load from local cache.protected voidprocessHeaders(URLConnection urlConnection) Process any headers needed from the reply to the admin request.protected StringReturn the error message to be used in the AuthenticationException.protected booleanretryUsingSecureConnection(String host, int port) Called when a non-secure connection attempt fails and it appears that the server requires a secure connection.voidsetCommandModel(org.glassfish.api.admin.CommandModel commandModel) Set the CommandModel used by this command.voidsetConnectTimeout(int connectTimeout) Set the connect timeout for the URLConnection.voidSet the directory in which any returned files will be stored.voidsetInteractive(boolean state) Set the interactive mode for the command.voidsetOmitCache(boolean omitCache) Omit localAdminCacheto process command metadata.voidsetReadTimeout(int readTimeout) Set the read timeout for the URLConnection.voidsetResponseFormatType(String responseFormatType) Set the response type used in requests to the server.voidsetUserOut(OutputStream userOut) If set, the raw response from the command is written to the specified stream.protected booleanReturn true if we're successful in collecting new information (and thus the caller should try the request again).
-
Field Details
-
COMMAND_MODEL_MATCH_HEADER
- See Also:
-
output
-
name
-
host
-
port
protected int port -
secure
protected boolean secure -
user
-
password
protected char[] password -
logger
-
scope
-
authToken
-
prohibitDirectoryUploads
protected boolean prohibitDirectoryUploads -
options
protected org.glassfish.api.admin.ParameterMap options -
operands
-
-
Constructor Details
-
RemoteAdminCommand
public RemoteAdminCommand(String name, String host, int port) throws org.glassfish.api.admin.CommandException - Throws:
org.glassfish.api.admin.CommandException
-
RemoteAdminCommand
public RemoteAdminCommand(String name, String host, int port, boolean secure, String user, char[] password, Logger logger) throws org.glassfish.api.admin.CommandException - Throws:
org.glassfish.api.admin.CommandException
-
RemoteAdminCommand
public RemoteAdminCommand(String name, String host, int port, boolean secure, String user, char[] password, Logger logger, String scope, String authToken, boolean prohibitDirectoryUploads) throws org.glassfish.api.admin.CommandException Construct a new remote command object. The command and arguments are supplied later using the execute method in the superclass.- Throws:
org.glassfish.api.admin.CommandException
-
-
Method Details
-
setResponseFormatType
Set the response type used in requests to the server. The response type is sent in the User-Agent HTTP header and tells the server what format of response to produce. -
setUserOut
If set, the raw response from the command is written to the specified stream. -
setCommandModel
public void setCommandModel(org.glassfish.api.admin.CommandModel commandModel) Set the CommandModel used by this command. Normally the CommandModel will be fetched from the server using the getCommandModel method, which will also save the CommandModel for further use. If the CommandModel is known in advance, it can be set with this method and avoid the call to the server. -
setReadTimeout
public void setReadTimeout(int readTimeout) Set the read timeout for the URLConnection. -
getReadTimeout
public static int getReadTimeout() -
setConnectTimeout
public void setConnectTimeout(int connectTimeout) Set the connect timeout for the URLConnection. -
setInteractive
public void setInteractive(boolean state) Set the interactive mode for the command. By default, the command is interactive. -
setOmitCache
public void setOmitCache(boolean omitCache) Omit localAdminCacheto process command metadata. Iftrueit will download the metadata from remote server.
Default value isfalse -
getCommandModel
public org.glassfish.api.admin.CommandModel getCommandModel() throws org.glassfish.api.admin.CommandExceptionGet the CommandModel for the command from the server. If the CommandModel hasn't been set, it's fetched from the server.- Returns:
- the model for the command
- Throws:
org.glassfish.api.admin.CommandException- if the server can't be contacted
-
isCommandModelFromCache
public boolean isCommandModelFromCache()If command model was load from local cache. -
setFileOutputDirectory
Set the directory in which any returned files will be stored. The default is the user's home directory. -
headers
Return a modifiable list of headers to be added to the request. -
executeCommand
public String executeCommand(org.glassfish.api.admin.ParameterMap opts) throws org.glassfish.api.admin.CommandException Run the command using the specified arguments. Return the output of the command.- Throws:
org.glassfish.api.admin.CommandException
-
getAttributes
After a successful command execution, the attributes returned by the command are saved. This method returns those saved attributes. -
updateAuthentication
protected boolean updateAuthentication()Return true if we're successful in collecting new information (and thus the caller should try the request again). Subclasses can override to (e.g.) collect updated authentication information by prompting the user. The implementation in this class returns false, indicating that the authentication information was not updated. -
getFromEnvironment
Subclasses can override to supply parameter values from environment. The implementation in this class returns null, indicating that the name is not available in the environment. -
retryUsingSecureConnection
Called when a non-secure connection attempt fails and it appears that the server requires a secure connection. Subclasses can override to indicate that the connection should The implementation in this class returns false, indicating that the connection should not be retried. -
reportAuthenticationException
Return the error message to be used in the AuthenticationException. Subclasses can override to provide a more detailed message, for example, indicating the source of the password that failed. The implementation in this class returns a default error message. -
getCommandURI
Get the URI for executing the command. -
getHttpConnectorAddress
protected HttpConnectorAddress getHttpConnectorAddress(String host, int port, boolean shouldUseSecure) Provides an HttpConnectorAddress for use in connecting to the desired admin listener.This implementation works for true admin clients and will not work correctly for commands submitted to instances from inside the DAS. (That is done from the implementation in ServerRemoteAdminCommand which extends this class.)
This code constructs the HttpConnectorAddress in a way that uses either no SSLSocketFactory (if security is off) or uses an SSLSocketFactory linked to the asadmin truststore.
- Parameters:
host- the host name to which the connection should be madeport- the admin port on that hostshouldUseSecure- whether SSL should be used to connect or not- Returns:
-
addAdditionalHeaders
Adds any headers needed for the current environment to the admin request.- Parameters:
urlConnection-
-
processHeaders
Process any headers needed from the reply to the admin request. Subclasses can override this method to handle processing headers in the command's reply.- Parameters:
urlConnection-
-
authenticationInfo
Returns the username/password authenticaiton information to use in building the outbound HTTP connection.- Returns:
- the username/password auth. information to send with the request
-
getUsage
Get the usage text. If we got usage information from the server, use it.- Returns:
- usage text
-
fetchCommandModel
protected void fetchCommandModel() throws org.glassfish.api.admin.CommandExceptionFetch the command metadata from the remote server.- Throws:
org.glassfish.api.admin.CommandException
-
getCanonicalHost
-