Exemplo n.º 1
0
    def __build_start_end_is_allday(event, tzcalendar):
        """
        build start, end and is_allday
        """
        localtz = tz.gettz(settings.TIME_ZONE)
        try:
            start_string = event['start'].get('date', None)
            if start_string:
                # start is type date
                is_allday = True
                date_start = date.fromisoformat(start_string)
                start = datetime(year=date_start.year, month=date_start.month, day=date_start.day, tzinfo=localtz)
                # when start is type date end too
                date_end = date.fromisoformat(event['end'].get('date'))
                end = datetime(year=date_end.year, month=date_end.month, day=date_end.day, tzinfo=localtz)
            else:
                # if start is not type date, the type is datetime
                is_allday = False
                start_string = event['start'].get('dateTime')
                # when start is type datetime end too
                end_string = event['end'].get('dateTime')
                start = datetime.fromisoformat(start_string)
                end = datetime.fromisoformat(end_string)

            tz_event = event['start'].get('timeZone', None)
            tz_event = tz_event if tz_event else tzcalendar
            return start, end, is_allday, tz_event
        except KeyError:
            write_log('Error to convert string start or end to date o datetime, event: '.format(event['id']))
            return []
Exemplo n.º 2
0
 def __scan_files(self, base_dir):
     if osp.exists(self.FILE_LIST_PATH):
         utils.write_log("Load file list from cache: %s", self.FILE_LIST_PATH)
         with open(self.FILE_LIST_PATH) as fp:
             for line in fp:
                 self.file_list.append(line.rstrip())
         return
     for ch in self.SCAN_DIRS:
         dir_path = osp.join(base_dir, ch)
         files = self.__walk_dir(dir_path)
         with open(self.FILE_LIST_PATH, "wb") as fp:
             for fi in files:
                 fp.write((fi + "\n").encode("utf-8"))
         self.file_list += files
Exemplo n.º 3
0
 def statistics(self):
     num = len(self.file_list)
     utils.write_log("Total Files: %d", num)
     java_num = len(list(filter(lambda f: f.endswith(".java"), self.file_list)))
     cpp_num = len(list(filter(lambda f: f.endswith(".c") or f.endswith("h")
                                         or f.endswith("cc") or f.endswith("cpp"), self.file_list)))
     aidl_num = len(list(filter(lambda f: f.endswith(".aidl"), self.file_list)))
     utils.write_log("java files: %d", java_num)
     utils.write_log("cpp files: %d", cpp_num)
     utils.write_log("aidl files: %d", aidl_num)
Exemplo n.º 4
0
 def __init_service_file_mp(self):
     if os.path.exists(self.SERVICE_FILE_PATH):
         utils.write_log("Load service path from cache: %s",
                         self.SERVICE_FILE_PATH)
         self.service_file_mp = utils.load_json(self.SERVICE_FILE_PATH)
         return
     sr_cls = osp.join(CONFIG.DEFAULT_AOSP_PATH,
                       CONFIG.SERVICE_REGISTER_CLS)
     service_manager = get_service_registers(sr_cls)
     from core.JniAPIExtractor import SourceFileScanner
     jni = SourceFileScanner(CONFIG.DEFAULT_AOSP_PATH)
     java_files = jni.get_files(".java")
     for jf in java_files:
         for k, it in service_manager.items():
             cls = it["cls"] + ".java"
             fi = jf.split(os.sep).pop()
             if fi == cls:
                 self.service_file_mp[it["cls"]] = jf
     utils.write_json(self.service_file_mp, self.SERVICE_FILE_PATH)
Exemplo n.º 5
0
def get_events_json(request):
    """
    api  return events between start and end datetime
    parms start an end datetime isoformat
    """
    try:
        start_req = parse(request.GET['start'])
        end_req = parse(request.GET['end'])
    except (KeyError, ValueError):
        write_log('Do not exist or do not have format start or end date')
        return JsonResponse([], safe=False)
    if start_req.tzinfo is None or start_req.tzinfo.utcoffset(
            start_req) is None:
        tz_req = pytz.timezone(request.GET['timeZone'])
        start_req = tz_req.localize(start_req)
        end_req = tz_req.localize(end_req)

    single_events = __process_single_events(start_req, end_req)
    recurring_events = __process_recurring_events(start_req, end_req)

    return JsonResponse(single_events + recurring_events, safe=False)
Exemplo n.º 6
0
        price = curr_price.get_y_from_x(point)
        # print 'curr price is %s' % price
        if point in c_l:
            gom.close_interest(instrument, DIRECTION_TYPE.LONG,
                               c_l.count(point), price, time.time(), point)
            # print 'close long'
            # print 'volumn is %d' % o_s.count(point)
            # exit(0)
        if point in c_s:
            gom.close_interest(instrument, DIRECTION_TYPE.SHORT,
                               c_s.count(point), price, time.time(), point)
            # print 'close short'
            # print 'volumn is %d' % o_s.count(point)
            # exit(0)
        if point in o_l:
            # print 'open long'
            # print 'volumn is %d' % o_l.count(point)
            gom.open_interest(instrument, DIRECTION_TYPE.LONG,
                              o_l.count(point), price, time.time(), point)
        if point in o_s:
            # print 'open short'
            # print 'volumn is %d' % o_s.count(point)
            gom.open_interest(instrument, DIRECTION_TYPE.SHORT,
                              o_s.count(point), price, time.time(), point)

        gom.update_interest(params.inst, DIRECTION_TYPE.LONG, price,
                            time.time(), point)
        gom.update_interest(params.inst, DIRECTION_TYPE.SHORT, price,
                            time.time(), point)
        write_log(gom.get_total(), file_name)
Exemplo n.º 7
0
def update_run(request, run_id):
    """ update the status cards of the runs """

    # ************************* logs for api
    path_file = '/home/gsi/LOGS/api_run.log'
    now = datetime.now()
    api_run = open(path_file, 'a')
    # ***********************************************************************


    data = validate_status(request.query_params.get('status', False))
    value_list = str(run_id).split('.')
    run_card_id = value_list[0]
    card_sequence_id = value_list[1]
    order_card_item_id = value_list[2]
    last = value_list[-1]
    last_but_one = value_list[-2:-1]
    cur_counter = last_but_one[0]
    name_sub_card = '{0}_{1}'.format(order_card_item_id, cur_counter)
    finished = False

    # ***********************************************************************
    api_run.writelines('RUN: {0}\n'.format(run_id))
    api_run.writelines('STATUS: {0}\n'.format(data['status']))
    api_run.writelines('\n\n\n')
    api_run.close()
    # ***********************************************************************

    if data['status']:
        state = data['status']

        try:
            run = Run.objects.get(id=run_card_id)
            sequence = CardSequence.objects.get(id=card_sequence_id)
            card = OrderedCardItem.objects.get(id=order_card_item_id)
            step = RunStep.objects.get(
                parent_run=run,
                card_item=card)
            cur_state = step.state
            run_parallel = False

            # ************************* logs for api
            path_file = '/home/gsi/LOGS/api_status.log'
            now = datetime.now()
            log_file = open(path_file, 'a')
            log_file.writelines(str(now) + '\n')
            log_file.writelines('RUN-{0}:\n'.format(str(run_id)))
            log_file.writelines('STATUS: {0}\n'.format(str(state)))
            # ***********************************************************************

            try:
                if card.run_parallel:
                    run_parallel = True
                    name_sub_card = '{0}_{1}'.format(card.id, cur_counter)
            except Exception, e:
                log_file.writelines('ERROR RUN PARALLEL: {0}\n\n'.format(e))

            # if run_parallel:
            #     new_sub_card_item = SubCardItem.objects.filter(
            #                             run_id=int(run_card_id),
            #                             card_id=int(order_card_item_id),
            #                             state='pending'
            #                         ).order_by('start_date')[:6]

            # ***********************************************************************
            log_file.writelines('RUN PARALLEL: {0}\n'.format(run_parallel))
            # ***********************************************************************

            # for step in steps:
            # Go to the next step only on success state
            if state == 'fail':
                # ***********************************************************************
                log_file.writelines('FAIL state: ' + str(state) + '\n')
                # ***********************************************************************

                params = []

                if run_parallel:
                    sub_card_item = SubCardItem.objects.filter(
                            name=name_sub_card,
                            run_id=int(run_card_id),
                            card_id=int(order_card_item_id)
                    )
                    for n in sub_card_item:
                        n.state = state
                        n.save()

                step.state = state
                step.save()
                run.state = state
                run.save()

                # ***********************************************************************
                # write log file
                # path_file = '/home/gsi/LOGS/api_fail.log'
                # now = datetime.now()
                # api_fail = open(path_file, 'a')
                # api_fail.writelines('{0}\n'.format(now))
                # api_fail.writelines('RUN-{0}:\n'.format(run_card_id))
                # api_fail.writelines('CARDS-{0}:\n'.format(card.id))
                # api_fail.writelines('LAST ==> {0}\n'.format(last))
                # api_fail.writelines('LAST BUT ONE ==> {0}\n'.format(last_but_one[0]))
                # api_fail.writelines('CUR_counter => {0}\n'.format(cur_counter))
                # api_fail.writelines('LAST => {0}\n'.format(last))
                # api_fail.writelines('state ==> {0}\n\n\n'.format(step.state))
                # api_fail.close()
                # ***********************************************************************
            elif state == 'running':
                log_file.writelines('RUNNING state: ' + str(state) + '\n')

                # ***********************************************************************
                # write log file
                path_file = '/home/gsi/LOGS/api_running.log'
                now = datetime.now()
                api_running = open(path_file, 'a')
                api_running.writelines('{0}\n'.format(now))
                api_running.writelines('RUN: {0}:\n'.format(run_id))
                # ***********************************************************************

                if run_parallel:
                    sub_card_item = SubCardItem.objects.filter(
                            name=name_sub_card,
                            run_id=int(run_card_id),
                            card_id=int(order_card_item_id)
                    )
                    for n in sub_card_item:
                        if n.state == 'running':
                            n.state = 'fail'
                            n.save()
                        else:
                            n.state = state
                            n.save()

                run_state = get_state_fail(run, state)
                step_state = get_state_fail(step, state)

                # ***********************************************************************
                # write log file
                # api_running.writelines('LAST ==> {0}\n'.format(last))
                # api_running.writelines('LAST BUT ONE ==> {0}\n'.format(last_but_one[0]))
                # api_running.writelines('CUR_counter => {0}\n'.format(cur_counter))
                api_running.writelines('STATE: {0}\n\n\n'.format(step.state))
                api_running.close()
                # ***********************************************************************
            elif state == 'success':
                next_step, is_last_step = step.get_next_step()
                new_sub_card_item = None
                params = []

                # ********** WRITE LOG *****************************
                log_file.writelines('SUCCESS state: ' + str(state) + '\n')
                # log_file.writelines('get_next_step => {0}\n'.format(step.get_next_step()))
                log_file.writelines('NEXT STEP: {0}\n'.format(next_step))
                log_file.writelines('LAST STEP: {0}\n'.format(is_last_step))
                log_file.writelines('cur_counter: {0}\n'.format(cur_counter))
                log_file.writelines('last: {0}\n'.format(last))
                log_file.writelines('cur_counter & last == {0}\n'.format(cur_counter == last))
                # *************************************************

                if run_parallel:
                    sub_card_item = get_object_or_404(
                            SubCardItem,
                            name=name_sub_card,
                            run_id=int(run_card_id),
                            card_id=int(order_card_item_id)
                    )
                    sub_card_item.state = state
                    sub_card_item.save()

                if next_step:
                    data['next_step'] = next_step.id
                    run_parallel_next_step = next_step.card_item.run_parallel

                    # ********** WRITE LOG *****************************
                    log_file.writelines('NEXT CARD run_parallel => {0}\n'.format(run_parallel_next_step))
                    # *************************************************

                    # CHECK ALL THE SUB CARDS!!!!!!!
                    finished = is_finished(int(run_card_id), int(order_card_item_id), cur_counter, last, run_parallel)

                    # *************************************************
                    log_file.writelines('finished => {0}\n'.format(finished))
                    # *************************************************

                    if finished:
                        step_state = get_state_fail(step, state)

                        if run_parallel_next_step:
                            # next_sub_cards_item = SubCardItem.objects.filter(
                            #         run_id=next_step.parent_run.id,
                            #         card_id=next_step.card_item.id
                            # ).order_by('start_date')
                            # # count = 1
                            #
                            # for n in next_sub_cards_item:
                            #     name_card = '{0}%{1}'.format(n.run_id, n.name)
                            #     params.append(name_card)
                            #
                            # execute_fe_command(params)

                            master_script_name = '{0}_master'.format(next_step.card_item.id)
                            ex_fe_com = Popen(
                                'nohup {0} {1} {2} &'.format(
                                    EXECUTE_FE_COMMAND,
                                    next_step.parent_run.id,
                                    master_script_name
                                ),
                                shell=True,
                            )
                            # *************************************************
                            log_file.writelines('MASTER SCRIPT {0}\n'.format(master_script_name))
                            # *************************************************
                        else:
                            # *************************************************
                            log_file.writelines('next RUN => {0}\n'.format(next_step.parent_run.id))
                            log_file.writelines('card_item.id => {0}\n'.format(next_step.card_item.id))
                            # *************************************************
                            ex_fe_com = Popen(
                                'nohup {0} {1} {2} &'.format(
                                    EXECUTE_FE_COMMAND,
                                    next_step.parent_run.id,
                                    next_step.card_item.id
                                ),
                                shell=True,
                            )

                        # ***********************************************************************
                        # write log file
                        path_file = '/home/gsi/LOGS/api_success_next_step.log'
                        now = datetime.now()
                        log_api_file = open(path_file, 'a')
                        log_api_file.writelines('{0}\n'.format(now))
                        log_api_file.writelines('RUN-{0}:\n'.format(run_card_id))
                        log_api_file.writelines('CARDS-{0}:\n'.format(card.id))
                        log_api_file.writelines('SCRIPTS: \n')
                        log_api_file.writelines('LAST ==> {0}\n'.format(last))
                        log_api_file.writelines('LAST BUT ONE ==> {0}\n'.format(last_but_one[0]))
                        log_file.writelines('CUR_counter => {0}\n'.format(cur_counter))
                        log_file.writelines('LAST => {0}\n'.format(last))
                        log_api_file.writelines('state ==> {0}\n\n\n'.format(step.state))
                        log_api_file.close()
                        # ***********************************************************************
                    # else:
                    #     if new_sub_card_item:
                    #         name_card = '{0}%{1}'.format(
                    #                 new_sub_card_item[0].run_id,
                    #                 new_sub_card_item[0].name)
                    #         params.append(name_card)
                    #         new_sub_card_item[0].state = 'running'
                    #         new_sub_card_item[0].save()
                    #         execute_fe_command(params)

                    log_name = '{0}_{1}.log'.format(value_list[0], value_list[2])
                    path_log = get_path_folder_run(run)
                    # path_log = script['path_runs_logs']
                    write_log(log_name, run, path_log)

                # this end
                if is_last_step:
                    data['is_last_step'] = True
                    finished = is_finished(int(run_card_id), int(order_card_item_id), cur_counter, last, run_parallel)

                    # if new_sub_card_item:
                    #     name_card = '{0}%{1}'.format(
                    #             new_sub_card_item[0].run_id,
                    #             new_sub_card_item[0].name)
                    #     params.append(name_card)
                    #     new_sub_card_item[0].state = 'running'
                    #     new_sub_card_item[0].save()
                    #     execute_fe_command(params)

                    # *************************************************
                    log_file.writelines('Finished Last Step => {0}\n'.format(finished))
                    # *************************************************

                    if finished:
                        if run_parallel:
                            sub_card_item = get_object_or_404(
                                    SubCardItem,
                                    name=name_sub_card,
                                    run_id=int(run_card_id),
                                    card_id=int(order_card_item_id)
                            )

                            sub_card_item.state = 'success'
                            sub_card_item.save()
                        run_state = get_state_fail(run, state)
                        step_state = get_state_fail(step, state)

                        # ***********************************************************************
                        # write log file
                        path_file = '/home/gsi/LOGS/api_success_last_step.log'
                        now = datetime.now()
                        log_api_file = open(path_file, 'a')
                        log_api_file.writelines('{0}\n'.format(now))
                        log_api_file.writelines('RUN-{0}:\n'.format(run_card_id))
                        log_api_file.writelines('CARDS-{0}:\n'.format(card.id))
                        log_api_file.writelines('PARALLEL: {0}\n'.format(run_parallel))
                        log_api_file.writelines('LAST ==> {0}\n'.format(last))
                        log_api_file.writelines('LAST BUT ONE ==> {0}\n'.format(last_but_one[0]))
                        log_file.writelines('CUR_counter => {0}\n'.format(cur_counter))
                        log_file.writelines('LAST => {0}\n'.format(last))
                        log_api_file.writelines('state ==> {0}\n\n\n'.format(step.state))
                        log_api_file.close()
                        # ***********************************************************************

                        # ***********************************************************************
                        log_file.writelines('RUN finished State => {0}\n'.format(run_state))
                        log_file.writelines('Step finished State => {0}\n'.format(step_state))
                        # ***********************************************************************

                    # ***********************************************************************
                    log_file.writelines('RUN last_step State => {0}\n'.format(run.state))
                    log_file.writelines('Step last_step State => {0}\n'.format(step.state))
                    # ***********************************************************************
            else:
                # ***********************************************************************
                log_file.writelines('ELSE: ' + str(state) + '\n')
                # ***********************************************************************

                if run_parallel:
                    sub_card_item = SubCardItem.objects.filter(
                            name=name_sub_card,
                            run_id=int(run_card_id),
                            card_id=int(order_card_item_id)
                    )

                    for n in sub_card_item:
                        n.state = state
                        n.save()

                run_state = get_state_fail(run, state)
                step_state = get_state_fail(step, state)

            # ***********************************************************************
            log_file.writelines('RUN END State => {0}\n'.format(run.state))
            log_file.writelines('Step END State => {0}\n'.format(step.state))
            log_file.writelines('\n\n\n')
            log_file.close()
            # ***********************************************************************
        except Exception, e:
            # ***********************************************************************
            # error for api
            path_file = '/home/gsi/LOGS/api_error.err'
            now = datetime.now()
            log_file1 = open(path_file, 'a')
            log_file1.writelines('ERRROR API-{0}:'.format(run_id) + '\n')
            log_file1.writelines(str(now) + '\n')
            log_file1.writelines('Error Status: {0}\n'.format(str(e)))

            # log_file1.writelines('RUN-{0}:\n'.format(run_card_id))
            # log_file1.writelines('CARDS-{0}:\n'.format(order_card_item_id))
            log_file1.writelines('STATUS: {0}\n'.format(str(state)))

            log_file1.writelines('\n\n\n')
            log_file1.close()