bes  Updated for version 3.20.5
GatewayPathInfoCommand.cc
1 
2 #include "GatewayPathInfoCommand.h"
3 #include "BESDataNames.h"
4 #include "BESDebug.h"
5 #include "BESUtil.h"
6 #include "BESXMLUtils.h"
7 #include "BESSyntaxUserError.h"
8 
9 
10 
11 GatewayPathInfoCommand::GatewayPathInfoCommand(const BESDataHandlerInterface &base_dhi) :
12  BESXMLCommand(base_dhi)
13 {
14 
15 }
16 
24 {
25  string name;
26  string value;
27  map<string, string> props;
28  BESXMLUtils::GetNodeInfo(node, name, value, props);
29  if (name != SHOW_GATEWAY_PATH_INFO_RESPONSE_STR) {
30  string err = "The specified command " + name + " is not a gateway show path info command";
31  throw BESSyntaxUserError(err, __FILE__, __LINE__);
32  }
33 
34  // the action is to show the path info response
35  d_xmlcmd_dhi.action = SHOW_GATEWAY_PATH_INFO_RESPONSE;
36  d_xmlcmd_dhi.data[SHOW_GATEWAY_PATH_INFO_RESPONSE] = SHOW_GATEWAY_PATH_INFO_RESPONSE;
37  d_cmd_log_info = "show gatewayPathInfo";
38 
39  // node is an optional property, so could be empty string
40  d_xmlcmd_dhi.data[CONTAINER] = props["node"];
41  if (!d_xmlcmd_dhi.data[CONTAINER].empty()) {
42  d_cmd_log_info += " for " + d_xmlcmd_dhi.data[CONTAINER];
43  }
44  d_cmd_log_info += ";";
45 
46  BESDEBUG(SPI_DEBUG_KEY, "Built BES Command: '" << d_cmd_log_info << "'"<< endl );
47 
48  // now that we've set the action, go get the response handler for the
49  // action by calling set_response() in our parent class
51 }
52 
59 void GatewayPathInfoCommand::dump(ostream &strm) const
60 {
61  strm << BESIndent::LMarg << "GatewayPathInfoCommand::dump - (" << (void *) this << ")" << endl;
62  BESIndent::Indent();
63  BESXMLCommand::dump(strm);
64  BESIndent::UnIndent();
65 }
66 
68 GatewayPathInfoCommand::CommandBuilder(const BESDataHandlerInterface &base_dhi)
69 {
70  return new GatewayPathInfoCommand(base_dhi);
71 }
72 
BESXMLUtils::GetNodeInfo
static void GetNodeInfo(xmlNode *node, string &name, string &value, map< string, string > &props)
get the name, value if any, and any properties for the specified node
Definition: BESXMLUtils.cc:101
BESXMLCommand::set_response
virtual void set_response()
The request has been parsed, use the command action name to set the response handler.
Definition: BESXMLCommand.cc:58
GatewayPathInfoCommand::parse_request
virtual void parse_request(xmlNode *node)
parse a show command. No properties or children elements
Definition: GatewayPathInfoCommand.cc:23
GatewayPathInfoCommand
Definition: GatewayPathInfoCommand.h:12
GatewayPathInfoCommand::dump
virtual void dump(ostream &strm) const
dumps information about this object
Definition: GatewayPathInfoCommand.cc:59
BESXMLCommand::dump
virtual void dump(ostream &strm) const
dumps information about this object
Definition: BESXMLCommand.cc:114
BESSyntaxUserError
error thrown if there is a user syntax error in the request or any other user error
Definition: BESSyntaxUserError.h:41
BESXMLCommand
Base class for the BES's commands.
Definition: BESXMLCommand.h:63
BESDataHandlerInterface
Structure storing information used by the BES to handle the request.
Definition: BESDataHandlerInterface.h:60