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")
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")
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))
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))
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
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