8 #include <boost/bind/bind.hpp>
9 #include <boost/assign.hpp>
10 #include <boost/foreach.hpp>
23 using namespace boost::placeholders;
35 vm_name_((*data.match)[1]),
37 context_(data_.session->get_context()) {
42 const std::string client_ctx = data_.session->get_client_context(context_);
44 if ((!data_.session->set_client_context(context_, client_ctx)) ||
47 if (pih_->GetVmVnCfgPort(vm_name_, info)) {
54 std::string
Description()
const {
return "RestServerGetVmCfgTask"; }
89 const std::string& port_id = (*data.
match)[1];
103 const std::string& port_id = (*data.
match)[1];
162 const std::string &vm_uuid = (*data.
match)[1];
176 std::string url = (*data.
match)[0];
177 bool vmi_uuid_presence =
false;
179 std::size_t vmi_uuid_pos = url.find(
"/", pos);
180 if (vmi_uuid_pos != std::string::npos) {
181 vmi_uuid_presence =
true;
183 std::string vm_uuid = url.substr(pos, vmi_uuid_pos);
184 std::string vmi_uuid =
"";
185 if (vmi_uuid_presence) {
186 vmi_uuid = url.substr(vmi_uuid_pos+1, std::string::npos);
216 const std::string& port_id = (*data.
match)[1];
231 const std::string& port_id = (*data.
match)[1];
245 boost::assign::list_of
256 "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"),
261 "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"),
278 "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"),
283 "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"),
288 "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/"
289 "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"),
293 regex(
"/vm-cfg/(.*)"),
297 regex(
"/enable-port/"
298 "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"),
302 regex(
"/disable-port/"
303 "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"),
bool cat_is_agent_mocked() const
uint16_t rest_port() const
PortIpcHandler * port_ipc_handler() const
AgentParam * params() const
static const uint16_t PortIpcVrouterAgentPort()
const std::string & Body() const
http_method GetMethod() const
std::string UrlPath() const
void RegisterHandler(const std::string &path, HttpHandlerFn handler)
bool DisablePort(const string &url, string &err_msg)
bool EnablePort(const string &url, string &err_msg)
bool DeletePort(const string &url, string &err_msg)
bool GetVmVnPort(const std::string &vm_uuid, const std::string &vmi_uuid, std::string &info) const
bool AddVgwFromJson(const std::string &json, std::string &err_msg) const
bool GetPortInfo(const std::string &uuid_str, std::string &info) const
bool AddPortFromJson(const string &json, bool check_port, string &err_msg, bool write_file)
bool DeleteVmVnPort(const boost::uuids::uuid &vmi_uuid, string &err_msg)
bool AddVmVnPort(const std::string &json, bool check_port, std::string &err_msg, bool write_file)
bool DelVgwFromJson(const std::string &json, std::string &err_msg) const
const PortIpcHandler * pih_
DISALLOW_COPY_AND_ASSIGN(RestServerGetVmCfgTask)
const struct RestServer::RESTData & data_
std::string Description() const
Gives a description of the task.
const std::string context_
RestServerGetVmCfgTask(PortIpcHandler *pih, const struct RestServer::RESTData &data)
virtual bool Run()
Code to execute in a task. Returns true if task is completed. Return false to reschedule the task.
virtual ~RestServerGetVmCfgTask()
contrail::regex request_regex
HttpServer * http_server_
void VmVnPortGetHandler(const struct RESTData &)
static const std::vector< HandlerSpecifier > RESTHandlers_
void VmPortEnableHandler(const struct RESTData &data)
friend class RestServerGetVmCfgTask
void VmPortGetHandler(const struct RESTData &)
void GatewayDeleteHandler(const struct RESTData &data)
void VmVnPortPostHandler(const struct RESTData &)
void VmVnPortDeleteHandler(const struct RESTData &)
void VmPortDeleteHandler(const struct RESTData &)
void VmPortDisableHandler(const struct RESTData &data)
void GatewayPostHandler(const struct RESTData &data)
void VmVnPortCfgGetHandler(const struct RESTData &data)
void VmPortPostHandler(const struct RESTData &)
void VmPortSyncHandler(const struct RESTData &data)
void HandleRequest(HttpSession *session, const HttpRequest *request)
The TaskScheduler keeps track of what tasks are currently schedulable. When a task is enqueued it is ...
void Enqueue(Task *task)
Enqueues a task for running. Starts task if all policy rules are met else puts task in waitq....
static TaskScheduler * GetInstance()
Task is a class to describe a computational task within OpenSDN control plane applications....
static void DeleteServer(TcpServer *server)
virtual bool Initialize(unsigned short port)
#define HTTP_WILDCARD_ENTRY
void SendErrorResponse(HttpSession *session, const std::string &error_msg, int status_code, std::string context)
void SendResponse(HttpSession *session, const std::string &msg, int status_code, std::string context)
static bool regex_search(const std::string &input, const regex ®ex)
static bool regex_match(const std::string &input, const regex ®ex)
const boost::smatch * match
const HttpRequest * request