package org.rhq.embeddedagent.extension; import org.jboss.as.controller.OperationContext; import org.jboss.as.controller.OperationFailedException; import org.jboss.as.controller.OperationStepHandler; import org.jboss.dmr.ModelNode; import org.jboss.msc.service.ServiceName; import org.jboss.msc.service.ServiceNotFoundException; class AgentSubsystemExecutePromptCommand implements OperationStepHandler { static final AgentSubsystemExecutePromptCommand INSTANCE = new AgentSubsystemExecutePromptCommand(); private AgentSubsystemExecutePromptCommand() { } @Override public void execute(OperationContext opContext, ModelNode model) throws OperationFailedException { try { ServiceName name = AgentService.SERVICE_NAME; AgentService service = (AgentService) opContext.getServiceRegistry(true).getRequiredService(name) .getValue(); String command = model.get(AgentSubsystemDefinition.EXECUTE_PROMPT_COMMAND_PARAM_COMMAND.getName()) .asString(); String results = service.executePromptCommand(command); opContext.getResult().set(results); } catch (ServiceNotFoundException snfe) { throw new OperationFailedException( "Cannot execute prompt command because the embedded agent is not enabled"); } catch (Exception e) { throw new OperationFailedException("Failed to execute prompt command [" + model + "]", e); } opContext.completeStep(); } }