コード例 #1
0
 def execute(self, ws):
     data = self.to_json().encode('utf8')
     log.debug("AuthenticateCommand Sending {}".format(data))
     ws.send(data)
     result = ws.recv()
     log.debug("AuthenticateCommand Response Received {}".format(result))
     if ClientAuthenticateCommand.verify_response(result):
         log.info("Authentication successful")
     else:
         log.error("Bad Authentication response")
コード例 #2
0
 def execute(self, ws):
     data = self.to_json().encode('utf8')
     log.debug("ScheduleJobCommand Sending {}".format(data))
     ws.send(data)
     response = ws.recv()
     log.debug("ScheduleJobCommand Response Received {}".format(response))
     if ClientScheduleJobCommand.verify_response(response):
         log.info("ScheduleJobCommand successful")
     else:
         log.error("Bad ScheduleJobCommand response")
コード例 #3
0
 def download_project():
     conn = httplib.HTTPConnection(config_params.downloadurl)
     conn.request("GET", download_path)
     r1 = conn.getresponse()
     status = r1.status
     if status == 200:
         log.info("Download Project Http status OK: "+ config_params.downloadurl+download_path)
         return r1.read()
     else:
         log.error("Download Project Http status not OK, status is:" + str(status))
コード例 #4
0
def main():
    setup_logging()
    _logger = logging.getLogger('websocket')
    _logger.addHandler(logging.NullHandler())
    config_params = readConfig()
    failure = False
    failure |= test_web_api(config_params.webapirul)
    failure |= test_conversion(config_params)
    if failure:
        mailcontent = "There was an error at converting. Log is:\n" +getlog()
        log.info(SmtpUtility.send(config_params.mailinfo, mailcontent))
コード例 #5
0
    def validate_ziped_project():
        failed = False
        if not os.path.isdir("tmp/"):
            os.makedirs("tmp/")
        file = open("tmp/project.zip","wb")
        file.write(ziped_project)
        file.close()
        myzip = zipfile.ZipFile("tmp/project.zip")
        xml_file_path = myzip.extract("code.xml","tmp/")

        def sortAndStripCodeXml(xml_file_path):
            import xml.etree.ElementTree as ET
            order = 0
            tagsToSort = ["formula", "entry"]

            def getUniqueId(child):
                id = ET.tostring(child)
                return id

            def sortchildrenby(parent, order):
                order += 1
                for child in parent:
                    order += 1
                    order = sortchildrenby(child, order)
                parent[:] = sorted(parent, key=lambda child: getUniqueId(child) if str(child.tag) in tagsToSort else order)
                return order

            tree = ET.parse(xml_file_path)
            root = tree.getroot()
            #remove the build number and other version dependent attributes
            root.find("header").remove(root.find("header").find("applicationBuildNumber"))
            root.find("header").remove(root.find("header").find("applicationVersion"))
            root.find("header").remove(root.find("header").find("catrobatLanguageVersion"))
            root.find("header").remove(root.find("header").find("description"))

            sortchildrenby(root, order)
            result = ""
            for line in ET.tostring(root).split("\n"):
                result += line.strip()+"\n"
            return result

        xml = sortAndStripCodeXml(xml_file_path)
        hash_of_xml_file = hash(xml)
        if hash_of_xml_file == config_params.code_xml_hash:
            log.info("Project hash OK")
        else:
            log.error("Project hash unexpected, has: " + str(hash_of_xml_file)
                      + " but should be: " + str(config_params.code_xml_hash))
            failed = True
        os.remove("tmp/project.zip")
        os.remove("tmp/code.xml")
        return failed
コード例 #6
0
def test_web_api(webapirul):
    conn = None
    failed = True
    try:
        conn = httplib.HTTPConnection(webapirul)
        conn.request("GET", "/")
        r1 = conn.getresponse()
        status = r1.status
        if status == 200:
            log.info("WebApi is up and running")
            failed = False
        else:
            log.error("WebApi Http status not OK, status is:" + str(status))
    except:
        log.error("Could not connect to WebApi:\n" + traceback.format_exc())
    try:
        conn.close()
    except AttributeError:
        log.error("Could not close websocket "+ traceback.format_exc())
    return failed