Return-Path: X-Original-To: apmail-incubator-mesos-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-mesos-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5D88469A8 for ; Sun, 5 Jun 2011 03:21:09 +0000 (UTC) Received: (qmail 44047 invoked by uid 500); 5 Jun 2011 03:21:09 -0000 Delivered-To: apmail-incubator-mesos-commits-archive@incubator.apache.org Received: (qmail 44028 invoked by uid 500); 5 Jun 2011 03:21:09 -0000 Mailing-List: contact mesos-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: mesos-dev@incubator.apache.org Delivered-To: mailing list mesos-commits@incubator.apache.org Received: (qmail 44021 invoked by uid 99); 5 Jun 2011 03:21:08 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 05 Jun 2011 03:21:08 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 05 Jun 2011 03:21:07 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 9A7092388A67; Sun, 5 Jun 2011 03:20:47 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1131546 - in /incubator/mesos/trunk/src: slave.cpp slave.hpp Date: Sun, 05 Jun 2011 03:20:47 -0000 To: mesos-commits@incubator.apache.org From: benh@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110605032047.9A7092388A67@eris.apache.org> Author: benh Date: Sun Jun 5 03:20:47 2011 New Revision: 1131546 URL: http://svn.apache.org/viewvc?rev=1131546&view=rev Log: Added a URL processor that currently understands nexus:// zoo://,... and zoofile://, where filename contains one ip:port to zooservers per line Modified: incubator/mesos/trunk/src/slave.cpp incubator/mesos/trunk/src/slave.hpp Modified: incubator/mesos/trunk/src/slave.cpp URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/slave.cpp?rev=1131546&r1=1131545&r2=1131546&view=diff ============================================================================== --- incubator/mesos/trunk/src/slave.cpp (original) +++ incubator/mesos/trunk/src/slave.cpp Sun Jun 5 03:20:47 2011 @@ -1,5 +1,7 @@ #include +#include +#include #include "slave.hpp" #include "slave_webui.hpp" #include "isolation_module_factory.hpp" @@ -63,7 +65,7 @@ Slave::Slave(const string &_master, Reso resources(_resources), local(_local), id("-1"), isolationType("process"), isolationModule(NULL), slaveLeaderListener(this, getPID()) { - pair urlPair = parseUrl(_master); + pair urlPair = processUrl(_master); if (urlPair.first == Slave::ZOOURL) { isFT=true; zkserver = urlPair.second; @@ -87,7 +89,7 @@ Slave::Slave(const string &_master, Reso resources(_resources), local(_local), id("-1"), isolationType(_isolationType), isolationModule(NULL), slaveLeaderListener(this, getPID()) { - pair urlPair = parseUrl(_master); + pair urlPair = processUrl(_master); if (urlPair.first == Slave::ZOOURL) { isFT=true; zkserver = urlPair.second; @@ -95,29 +97,54 @@ Slave::Slave(const string &_master, Reso isFT=false; istringstream iss(urlPair.second); if (!(iss >> master)) { - cerr << "Failed to resolve master PID " << urlPair.second << endl; + LOG(ERROR) << "Failed to resolve master PID " << urlPair.second; exit(1); } } else { - cerr << "Failed to parse URL for Nexus master or ZooKeeper servers "; + LOG(ERROR) << "Failed to parse URL for Nexus master or ZooKeeper servers "; exit(1); } } // enum URLType {ZOOURL, NEXUSURL}; -pair Slave::parseUrl(const string &url) { +pair Slave::processUrl(const string &_url) { - // alig: I'd love to replace this with boost string.hpp, which isn't currently third_party - if (url.size()>6 && tolower(url[0])=='z' && tolower(url[1])=='o' && - tolower(url[2])=='o' && url[3]==':' && url[4]=='/' && url[5]=='/') { + string url = _url; + + transform(url.begin(), url.end(), url.begin(), (int (*)(int))toupper); + + if (url.find("ZOO://")==0) { return pair(Slave::ZOOURL, url.substr(6,1024)); - } else if (url.size()>8 && tolower(url[0])=='n' && tolower(url[1])=='e' && - tolower(url[2])=='x' && tolower(url[3])=='u' && tolower(url[4])=='s' && - url[5]==':' && url[6]=='/' && url[7]=='/') { + } else if (url.find("ZOOFILE://")==0) { + string zfname = _url.substr(10,1024); + string zoos=""; + + LOG(INFO)<<"Opening ZooFile: "<(Slave::ZOOURL, zoos); + + } else if (url.find("NEXUS://")==0) { return pair(Slave::NEXUSURL, url.substr(8,1024)); } else + LOG(ERROR)<<"Could not parse master/zoo URL"; return pair(Slave::NONEURL, ""); } Modified: incubator/mesos/trunk/src/slave.hpp URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/slave.hpp?rev=1131546&r1=1131545&r2=1131546&view=diff ============================================================================== --- incubator/mesos/trunk/src/slave.hpp (original) +++ incubator/mesos/trunk/src/slave.hpp Sun Jun 5 03:20:47 2011 @@ -243,7 +243,7 @@ protected: virtual IsolationModule * createIsolationModule(); enum URLType {ZOOURL, NEXUSURL, NONEURL}; - pair parseUrl(const string &url); + pair processUrl(const string &_url); }; }}}