def parse_diff_line_sign_object(self, diff_line_str):
        # ex. \x00-# 3 = both\x01
        # split_str_list = ["","# 3 = both\x01"]
        # split_str_list2 = ["# 3 = both",""]

        split_str_list = diff_line_str.split(KEY_END_SIGN)
        if "" in split_str_list:
            split_str_list.remove("")

        for string in split_str_list:
            if KEY_START_SIGN not in string:
                self.add_to_tmp_context(string, KEY_CONTEXT)
            else:

                if KEY_ADDED_SIGN in string:
                    split_str_list2 = string.split(KEY_ADDED_SIGN)
                    result_type = KEY_ADDED
                elif KEY_DELETED_SIGN in string:
                    split_str_list2 = string.split(KEY_DELETED_SIGN)
                    result_type = KEY_DELETED
                else:
                    split_str_list2 = string.split(KEY_CHANGED_SIGN)
                    result_type = KEY_CHANGED

                if split_str_list2[0] is not "":
                    self.add_to_tmp_context(split_str_list2[0], KEY_CONTEXT)
                try:
                    self.add_to_tmp_context(split_str_list2[1], result_type)
                except IndexError:
                    error_log("index out of range, line text: " +
                              diff_line_str)

        self.result_list.sort(key=lambda x: x.get(KEY_INDEX), reverse=False)
 def get_latest_version(self, node_path):
     entries = self.get_path_list_dir(node_path)
     for entry in entries:
         if entry.filename.lower() == 'lastversion.dat':
             last_version_path = node_path + "/" + entry.filename
             last_version = self.get_path_file(last_version_path, COMPARE_FILE_PATH + 'lastversion.dat')
             return last_version
     error_log("can't find lastversion.dat file")
Ejemplo n.º 3
0
 def parse_role_permission_objects(self):
     try:
         data_object = {KEY_ENVIRONMENT: EnvironmentBuilder(id=self.environment_id).get_data(),
                        KEY_FUNCTION_ROLE_PERMISSION: self.parse_function_role_permission_array(self.environment_id)}
         return data_object
     except Exception as e:
         error_log(e)
         traceback.format_exc()
Ejemplo n.º 4
0
def get_post_request_json(request):
    if request.method != REQUEST_POST:
        return HttpResponseBadRequest
    else:
        try:
            request_json = json.loads(request.body.decode())
            return request_json
        except BaseException:
            error_log(traceback.format_exc())
Ejemplo n.º 5
0
def permission_check(request, executor):
    try:
        return executor()
    except PermissionDeniedError:
        data = ResponseBuilder(status_code=PERMISSION_DENIED, message=PERMISSION_DENIED_MESSAGE).get_data()
        return render(request, "permission_denied.html", data)
    except Exception:
        error_log(traceback.format_exc())
        result = ResponseBuilder(status_code=500, message="Internal Server Error").get_data()
        return JsonResponse(result)
 def execute(self):
     try:
         self.delete_files = clear_folder_over_days(
             self.delete_files_path, self.expired_day,
             self.not_removed_files_extension)
     except BaseException as e:
         self.run_task_error = e
         self.tracback = traceback.format_exc()
         error_log(traceback.format_exc())
         raise e
Ejemplo n.º 7
0
def action_error_check(executor):
    try:
        return executor()
    except B2BRulesetNotFoundError:
        result = ResponseBuilder(status_code=RULESET_NOT_FOUND,
                                 message=RULESET_NOT_FOUND_MESSAGE).get_data()
        return JsonResponse(result)
    except Exception:
        error_log(traceback.format_exc())
        result = ResponseBuilder(status_code=500,
                                 message="Internal Server Error").get_data()
        return JsonResponse(result)
def get_environment_dir_list(json_data):
    parser = SelectToDownloadFilterFolderParser(json_data)
    environment = Environment.objects.get(id=parser.environment_id)
    try:
        if environment.name == GIT_NAME:
            dir_connect_obj = SharedStorageGitConnectObject(False)
        else:
            dir_connect_obj = SharedStorageConnectionObject(
                parser.region_id, parser.environment_id, False)
    except Exception:
        error_log(traceback.format_exc())
        raise SharedStorageFTPServerConnectFailError
    list_dir = dir_connect_obj.get_path_list_dir("")
    result_json = SelectToDownloadFilterDirFolderBuilder("folder",
                                                         list_dir).get_data()
    return result_json
def run_scheduler_now(json_data, user):
    try:
        SharedStorageReportPermissionChecker(user)
        scheduler = SharedStorageReportScheduler.objects.get(
            id=json_data.get("id"))
        parser = DBReportSchedulerParser(scheduler)
        result_json = compare_services.compare_shared_storage_folder(
            parser.left_data_center_id, parser.left_environment_id,
            parser.left_folder, parser.right_data_center_id,
            parser.right_environment_id, parser.right_folder, True,
            parser.regional_tag, parser.request_host)
        compare_services.send_shared_storage_compare_result_mail(
            result_json, parser.mail_list)
    except Exception as e:
        error_log(e)
        error_log(traceback.format_exc())
Ejemplo n.º 10
0
    def get_format_time(utc_date_time):
        try:
            if utc_date_time is None:
                return None

            time_zone = CURRENT_TIME_ZONE
            time_format = TIME_FORMAT.get('db_time_format')

            naive_time = get_naive_time(utc_date_time.year, utc_date_time.month, utc_date_time.day,
                                        utc_date_time.hour, utc_date_time.minute, utc_date_time.second)

            local_date_time = utc_to_locale_time(naive_time, time_zone)
            str_time = date_time_to_time(local_date_time, time_format)
            return str_time
        except Exception as e:
            error_log(traceback.format_exc())
            raise e
Ejemplo n.º 11
0
def run_scheduler_now(json_data, user):
    try:
        scheduler = ReportSchedulerInfo.objects.get(id=json_data.get(KEY_ID))
        country_id_list = scheduler.country_list.values(KEY_ID)
        mail_content_type_list = scheduler.mail_content_type_list.values(
            KEY_ID)

        parser = DBReportSchedulerParser(scheduler, country_id_list,
                                         mail_content_type_list)
        base_env = Environment.objects.get(id=parser.base_env_id)
        compare_env = Environment.objects.get(id=parser.compare_env_id)
        RulesetReportPermissionChecker(user, parser.country_list, base_env.id,
                                       compare_env.id)

        for country in parser.country_list:
            country_id = str(country.id)
            if country_id in parser.skip_ruleset_map:
                skipped_rulesets = parser.skip_ruleset_map[country_id]
            else:
                skipped_rulesets = list()
            task = CompareRuleListTask(base_env.id, compare_env.id, country.id,
                                       skipped_rulesets)

            # generate mail content
            result_data = fileManager.load_compare_result_file(
                task.compare_hash_key)
            info_builder = CompareReportInfoBuilder(
                result_data, parser.mail_content_type_list, skipped_rulesets)
            content_json = info_builder.get_data()
            html_content = render_to_string('compare_info_mail_content.html',
                                            content_json)

            if content_json[COMPARE_RESULT_HAS_CHANGES]:
                zip_file_path = generate_report_mail_attachment(task)
                send_report_mail_with_attachment(country.name, base_env.name,
                                                 compare_env.name,
                                                 html_content,
                                                 parser.mail_list,
                                                 zip_file_path)
            else:
                send_report_mail(country.name, base_env.name, compare_env.name,
                                 html_content, parser.mail_list)
    except Exception as e:
        error_log(e)
        error_log(traceback.format_exc())
Ejemplo n.º 12
0
def page_permission_check(request, check_visibility, get_visible_data,
                          executor):
    try:
        check_visibility()
        return executor(get_visible_data())
    except NoAvailableDataError:
        data = ResponseBuilder(status_code=NO_AVAILABLE_DATA,
                               message=NO_AVAILABLE_DATA_MESSAGE).get_data()
        return JsonResponse(data)
    except PermissionDeniedError:
        data = ResponseBuilder(status_code=PERMISSION_DENIED,
                               message=PERMISSION_DENIED_MESSAGE).get_data()
        return render(request, "permission_denied.html", data)
    except Exception:
        error_log(traceback.format_exc())
        result = ResponseBuilder(status_code=500,
                                 message="Internal Server Error").get_data()
        return JsonResponse(result)
    def parse_diff_line_sign_object(self, diff_line_str):
        # ex. \x00-# 3 = both\x01
        # split_str_list = ["","# 3 = both\x01"]
        # split_str_list2 = ["# 3 = both",""]

        index = 0
        split_str_list = diff_line_str.split(KEY_END_SIGN)
        if "" in split_str_list:
            split_str_list.remove("")

        for string in split_str_list:
            if KEY_START_SIGN not in string:
                self.result_list.append(
                    self.build_line_object(KEY_CONTEXT, string, index))
            else:
                if KEY_ADDED_SIGN in string:
                    split_str_list2 = string.split(KEY_ADDED_SIGN)
                    result_type = KEY_ADDED
                elif KEY_DELETED_SIGN in string:
                    split_str_list2 = string.split(KEY_DELETED_SIGN)
                    result_type = KEY_DELETED
                else:
                    split_str_list2 = string.split(KEY_CHANGED_SIGN)
                    result_type = KEY_CHANGED

                self.type = result_type
                if split_str_list2[0] is not "":
                    index = index + 1
                    self.result_list.append(
                        self.build_line_object(KEY_CONTEXT, split_str_list2[0],
                                               index))
                try:
                    self.result_list.append(
                        self.build_line_object(result_type, split_str_list2[1],
                                               index))
                except IndexError:
                    error_log("index out of range, line text: " +
                              diff_line_str)

            index = index + 1
        self.result_list.sort(key=lambda x: x.get(KEY_INDEX), reverse=False)
        if len(self.result_list) > 1:
            self.type = KEY_CHANGED
Ejemplo n.º 14
0
def page_error_check(executor):
    try:
        return executor()
    except B2BRulesetNotFoundError:
        result = ResponseBuilder(status_code=RULESET_NOT_FOUND,
                                 message=RULESET_NOT_FOUND_MESSAGE).get_data()
        return JsonResponse(result)
    except SharedStorageFTPServerConnectFailError:
        result = ResponseBuilder(
            status_code=CANT_CONNECT_FTP_SERVER,
            message=CONNECT_TO_FTP_SERVER_FAIL_MESSAGE).get_data()
        return JsonResponse(result)
    except SharedStorageFolderNotFoundError:
        result = ResponseBuilder(status_code=FOLDER_NOT_EXIST,
                                 message=FOLDER_NOT_EXIST_MESSAGE).get_data()
        return JsonResponse(result)
    except Exception:
        error_log(traceback.format_exc())
        result = ResponseBuilder(status_code=500,
                                 message="Internal Server Error").get_data()
        return JsonResponse(result)
Ejemplo n.º 15
0
def restart_all_scheduler():
    try:
        # clear zip and ruleset file scheduler
        clear_zip_ruleset_task = ClearRulesetArchivedFilesTask()
        clear_ruleset_task = ClearRulesetFilesTask()
        clear_compare_report_task = ClearCompareReportFilesTask()
        clear_ss_tmp_file_task = ClearTmpFilesTask()
        clear_ss_compare_result_task = ClearCompareResultTask()
        info_log(None, "restart clear scheduler")
        scheduler = CustomJobScheduler()
        scheduler.add_hours_job_now(clear_ruleset_task.run_task, 24)
        scheduler.add_hours_job_now(clear_zip_ruleset_task.run_task, 24)
        scheduler.add_hours_job_now(clear_compare_report_task.run_task, 24)
        scheduler.add_hours_job_now(clear_ss_tmp_file_task.run_task, 24)
        scheduler.add_hours_job_now(clear_ss_compare_result_task.run_task, 24)
        info_log(None, "restart clear scheduler success")
        report_scheduler.restart_schedulers()
        sync_scheduler.restart_schedulers()
        shared_storage_report_scheduler.restart_schedulers()
    except BaseException as e:
        error_log(traceback.format_exc())
        raise e