void StatusDataWriter::DumpComments(std::ostream& fp, const Checkable::Ptr& checkable) { Host::Ptr host; Service::Ptr service; tie(host, service) = GetHostService(checkable); for (const Comment::Ptr& comment : checkable->GetComments()) { if (comment->IsExpired()) continue; if (service) fp << "servicecomment {" << "\n" << "\t" << "service_description=" << service->GetShortName() << "\n"; else fp << "hostcomment {" << "\n"; fp << "\t" "host_name=" << host->GetName() << "\n" "\t" "comment_id=" << comment->GetLegacyId() << "\n" "\t" "entry_time=" << comment->GetEntryTime() << "\n" "\t" "entry_type=" << comment->GetEntryType() << "\n" "\t" "persistent=" "1" "\n" "\t" "author=" << comment->GetAuthor() << "\n" "\t" "comment_data=" << comment->GetText() << "\n" "\t" "expires=" << (comment->GetExpireTime() != 0 ? 1 : 0) << "\n" "\t" "expire_time=" << comment->GetExpireTime() << "\n" "\t" "}" "\n" "\n"; } }
Dictionary::Ptr ApiActions::RemoveComment(const ConfigObject::Ptr& object, const Dictionary::Ptr& params) { Checkable::Ptr checkable = dynamic_pointer_cast<Checkable>(object); if (checkable) { std::set<Comment::Ptr> comments = checkable->GetComments(); BOOST_FOREACH(const Comment::Ptr& comment, comments) { Comment::RemoveComment(comment->GetName()); } return ApiActions::CreateResult(200, "Successfully removed all comments for object '" + checkable->GetName() + "'."); }