예제 #1
0
파일: tasktool.py 프로젝트: chinple/mserver
 def update(self, task, isfinish, tret):
     self.uhandler(task, isfinish, tret)
     try:
         if task['rargs'] and task['rargs'].__contains__("callback"):
             from server.cclient import curl
             curl(task['rargs']['callback'] + "&status=" + task['status'], connTimeout=2)
     except Exception as ex:
         slog.info("%s callback: %s" % (task['key'], ex))
예제 #2
0
    def sendHttpRequest(self,
                        command="POST",
                        url="",
                        header="",
                        body="",
                        bodyArgs="{0},{1}",
                        reqsetting="isRespHeader:true;sslVersion:-1"):
        command = command.upper()
        if bodyArgs != "":
            url = self.__replaceArgStr(url, bodyArgs)
            body = self.__replaceArgStr(body, bodyArgs)
        h = self._toHeaders(header)
        reqsetting = self._toHeaders(reqsetting)

        if command.__contains__("https") or command.__contains__(
                "FORM") or command.__contains__("CURL"):
            command = command.replace("CURL", '')
            resp = self.__curlHttpRequest(
                url, body, command, h,
                tryGet(reqsetting, 'isRespHeader', 'false') == 'true',
                tryGet(reqsetting, 'sslVersion', '-1'))
        else:
            resp = curl(url, body, command=command, logHandler=plog.info, **h)
        try:
            return toJsonObj(resp)
        except:
            return resp
예제 #3
0
파일: logTest.py 프로젝트: wanxi3/mserver
    def testExample(self):
        self.tlog.step("curl request")
        resp = curl(url="http://www.qq.com", body=None, method="GET")
        self.tlog.info(resp)

        self.tlog.step("step to do ...")
        self.tassert.areEqual(1, 2, "check")
예제 #4
0
 def __checkCurl(self, cArgs):
     url, body = cArgs.url, cArgs.body
     from server.cclient import curl
     stsHandler = lambda thid, degree: curl(url.replace("{thid}", str(thid)).replace("{degree}", str(degree)),
         body.replace("{thid}", str(thid)).replace("{degree}", str(degree)) if (body and body != "") else None)
     if self.mode == "debug":
         print(stsHandler(0, 0))
     self.addScenario(stsHandler, cArgs.startThreads, cArgs.maxThreads, cArgs.step, cArgs.expTps)
예제 #5
0
 def _doreport(self, t, s):
     if self.repUrl:
         from server.cclient import curl
         from libs.parser import toJsonStr
         if len(s) > 0:
             curl(self.repUrl,
                  toJsonStr({
                      "t": t,
                      "s": s,
                      'perf': self.isperf,
                      'env': self.env,
                      'span': self.tspan
                  }),
                  connTimeout=.2)
     elif self.repHandle:
         self.repHandle(t, s)
     else:
         print t, s
예제 #6
0
파일: httpTools.py 프로젝트: opama/mserver
    def sendHttpRequest(self,
                        url,
                        command="POST",
                        body="",
                        bodyArgs="",
                        hostPort=""):
        if bodyArgs != "":
            body = self.__replaceArgStr(body, bodyArgs)
        h = {}
        if hostPort != "":
            hosts, path = self.__splitUrl(url)
            h['Host'] = hosts.split(":")[0]
            url = hostPort + path
        resp = curl(url, body, command=command, logHandler=plog.info, **h)

        try:
            return toJsonObj(resp)
        except:
            return resp
예제 #7
0
    def httprequest(
            self,
            command="POST",
            url="",
            header="",
            body="",
            bodyArgs="{0},{1}",
            reqsetting="isRespHeader:true;sslVersion:-1;connTimeout:60",
            isjsonresp=True):
        command = command.upper()
        if bodyArgs != "":
            url = self.__replaceArgStr(url, bodyArgs)
            body = self.__replaceArgStr(body, bodyArgs)
        h = self.__toHeaders(header)
        reqsetting = self.__toHeaders(reqsetting)

        if url.startswith("https") or command.__contains__(
                "FORM") or command.__contains__("CURL"):
            if not command.__contains__("CURL"):
                resp = httpscurl(
                    url, body, command, h,
                    tryGet(reqsetting, 'isRespHeader', 'false') == 'true')
            else:
                command = command.replace("CURL", '')
                resp = self.__curlHttpRequest(
                    url, body, command, h,
                    tryGet(reqsetting, 'isRespHeader', 'false') == 'true',
                    tryGet(reqsetting, 'sslVersion', '-1'))
        else:
            resp = curl(url,
                        body,
                        command=command,
                        logHandler=plog.info,
                        connTimeout=int(tryGet(reqsetting, 'connTimeout',
                                               '60')),
                        **h)
        if isjsonresp:
            try:
                return toJsonObj(resp)
            except:
                pass
        return resp
예제 #8
0
    def sendEmail(self, emailProxy, smtpAddr, smtpLogin, sender, receiver):
        if emailProxy == "" or smtpAddr == "" or receiver == "": return

        try:
            receiver = receiver.split(";")
            mimeMail = self.__makeEmail(sender, receiver, self.subject,
                                        self.htmlContent)
            if emailProxy.strip() != "":
                from server.cclient import curl
                from libs.parser import toJsonStr
                slog.info("Sending report: %s -> %s" % (emailProxy, receiver))
                slog.info(
                    curl(
                        "%s/cservice/TestPlanApi/sendMtestEmail" % emailProxy,
                        toJsonStr({
                            "mimeMail": mimeMail.as_string(),
                            "mailto": ";".join(receiver),
                            "mailcc": "",
                            "verify": "mtest"
                        })))
                return

            smtpAccount, smtpPasswd = base64.decodestring(smtpLogin).split("/")
            slog.info("Sending report mail(SMTP %s):\n\t%s -> %s" %
                      (smtpAddr, smtpAccount, receiver))
            smtp = smtpAddr.split(':')
            smtpServer = smtp[0]
            smtpPort = int(ObjOperation.tryGetVal(smtp, 1, 25))

            from smtplib import SMTP
            smtpClient = SMTP(smtpServer, smtpPort)
            try:
                smtpClient.ehlo()
                smtpClient.login(smtpAccount, smtpPasswd)
            except:
                pass
            smtpClient.sendmail(sender, receiver, mimeMail.as_string())
            smtpClient.quit()
        except Exception as ex:
            slog.info(self.htmlContent)
            slog.info("Fail to send mail for: %s" % ex)
예제 #9
0
from server.cclient import curl
from libs.syslog import slog
from threading import Thread
import time

sleepcurl = lambda t : slog.info(curl("http://127.0.0.1:8081/cservice/ServerApi/sleepSeconds?t=%s" % t))

for i in xrange(10240):
    print(i)
    time.sleep(0.01)
    Thread(target=sleepcurl, args=(3600,)).start()

sleepcurl(0)
예제 #10
0
def SampleTest(thid, degree):
    curl("http://127.0.0.1:8081/cservice/ServerApi/sleepSeconds?t=3600")
예제 #11
0
 def getFile(self):
     curl("localhost:8089/file")
예제 #12
0
 def getCservice(self):
     curl("localhost:8089/cservice")
예제 #13
0
 def readFile(self, hostport, path, limit=10240):
     return curl("%s/file/%s?limit=%s" % (hostport, path, limit))
예제 #14
0
 def statFolder(self, hostport, path):
     return toJsonObj(curl("%s/file/%s?type=stat" % (hostport, path)))
예제 #15
0
from server.cclient import curl
from libs.syslog import slog
from threading import Thread
import time

sleepcurl = lambda t: slog.info(
    curl("http://127.0.0.1:8081/cservice/ServerApi/sleepSeconds?t=%s" % t))

for i in xrange(10240):
    print(i)
    time.sleep(0.01)
    Thread(target=sleepcurl, args=(3600, )).start()

sleepcurl(0)