示例#1
0
def spec_filter(request):
    try:
        app = request.GET.get('name')
        default_boxs = standard_filter.obtain_default_boxes(app)
        ACCESS_LOGS.info('app=' + app + 'default_boxs=' + str(default_boxs))
        temp = []
        release_attrs = []
        for default_item in default_boxs:
            if default_item in ['version', 'cpu_type', 'board_type']:
                for release_attr in default_boxs[default_item]:
                    if release_attr == 'hsrp':
                        temp += default_boxs[default_item][release_attr]
                    else:
                        if release_attr not in release_attrs:
                            release_attrs.append(release_attr)
                        temp.append(release_attr)
                        temp += default_boxs[default_item][release_attr]
                default_boxs[default_item] = copy.deepcopy(temp)
                temp = []
        boxs = {
            'defaultts': default_boxs,
            'extra': standard_filter.obtain_extra_keywords(app),
            'release_attr': release_attrs
        }
        ACCESS_LOGS.info('boxs=' + str(boxs))
        response = HttpResponse(json.dumps(boxs),
                                content_type="application/json")
        response.set_cookie('app', app, 3000)
        return response
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e
示例#2
0
def filter_query_table(request):
    try:
        app = request.COOKIES.get('app', '')
        query_str = request.GET.get('query')
        query_list = query_str.split('&')
        ACCESS_LOGS.info('app=' + app + 'query_str' + str(query_str) +
                         'query_list=' + str(query_list))
        query_dict = {}
        for query in query_list:
            lists = query.split('=')
            if lists[0] not in query_dict:
                query_dict[lists[0]] = [lists[1].replace('+', ' ')]
            else:
                query_dict[lists[0]].append(lists[1].replace('+', ' '))

        if 'last_update' in query_dict:
            query_dict['last_update'] = query_dict['last_update'][0]

        results = standard_filter.obtain_query_results(query_dict, app)
        ACCESS_LOGS.info('results=' + str(results))
        return_results = OrderedDict()
        for result in results:
            length = len(results[result])
            results[result][length - 1] = str(results[result][length - 1])
            return_results['filter_table_' + str(result)] = results[result]
        ACCESS_LOGS.info('return_results=' + str(return_results))
        response = HttpResponse(json.dumps(return_results),
                                content_type="application/json")
        response.set_cookie('filter_condition', query_dict, 300)
        return response
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e
    def combine_figure_data(self):
        try:
            global rel_name
            global figure_data_summary
            global figure_data_format
            global dict_name
            figure_data_format = collections.OrderedDict()
            figure_data_summary = collections.OrderedDict()
            rel_name = ''
            dict_name = ''

            self.generate_missing_figure_data(self.figure)
            WARNING_LOGS.warning(' self.figure=' + str(self.figure))
            keys = list(self.figure.keys())
            for key in keys:
                string = ''
                rel_name = copy.deepcopy(self.figure[key][self.figure_title])
                WARNING_LOGS.warning(' self.figure[key][self.figure_data_name]=' + str(
                    self.figure[key][self.figure_data_name]) + ' string' + str(string))
                self.define_data(self.figure[key][self.figure_data_name], string)
                WARNING_LOGS.warning(' self.figure[key][self.figure_data_name]=' + str(self.figure[key][self.figure_data_name]) + ' string' + str(string))
                figure_data_summary[key] = copy.deepcopy(self.x_level)
                WARNING_LOGS.warning(' self.x_level=' + str(self.x_level))
                self.x_level.clear()
            WARNING_LOGS.warning(' figure_data_summary=' + str(figure_data_summary))
            self.return_format_figure_data(figure_data_summary)
            WARNING_LOGS.warning(' figure_data_summary=' + str(figure_data_summary))
            return figure_data_format
        except Exception as e:
            ERROR_LOGS.error(e)
            raise e
示例#4
0
def delete_spec_comments(request):
    try:
        result = Comment.delete_comment(request.GET.get('comment_id'))
        return HttpResponse(json.dumps(result),
                            content_type="application/json")
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e
示例#5
0
def logout(request):
    try:
        response = HttpResponseRedirect('/')
        response.delete_cookie('username')
        response.delete_cookie('user_number')
        return response
    except Exception as e:
        ERROR_LOGS.error(str(e))
        raise e
def appname_reflect_func():
    try:
        global appname_reflect
        pwd = os.getcwd()
        with open(pwd + '/conf/appname.json', 'r') as appname_json:
            appname_reflect = json.load(appname_json)
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e
示例#7
0
def file_download(request, filename):
    try:
        file = open('static/file/download/' + filename, 'rb')
        response = HttpResponse(file)
        response['Content-Disposition'] = 'attachment;filename=' + filename
        return response
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e
def get_envir():
    try:
        cf = configparser.ConfigParser()
        pwd = os.getcwd()
        cf.read(pwd + '/conf/performance.conf')
        appname_reflect_func()
        return cf.get('filter_key_condition', 'special_filter_condition')
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e
示例#9
0
def home_page(request):
    try:
        username = request.COOKIES.get('username', '')
        return render(
            request, 'home.html', {
                'username': username,
                'release_newest': obtain_summary.obtain_latest_release()
            })
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e
示例#10
0
def standard(request):
    try:
        parameters = request.GET
        full_path = request.get_full_path()
        username = request.COOKIES.get('username', '')
        ACCESS_LOGS.info('User='******' parameter=' + str(parameters) +
                         ' full_path=' + full_path)
        result = testname.get_testcases_relation('standard')
        ACCESS_LOGS.info(str(result))
        if 'SpecCPU' in result['standard']:
            result['standard']['SpecCPU'] = []
        standard_result = result['standard']
        sql = "select version from release_version"
        conn = obtain_summary.connect_database()
        cursor = conn.cursor()
        count = cursor.execute(sql)
        releases = []
        if count != 0:
            for result in cursor.fetchall():
                releases.append(result[0].upper())
        ACCESS_LOGS.info('release=' + str(releases))
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e

    try:
        release_newest = obtain_summary.obtain_latest_release()
        ACCESS_LOGS.info('release_newest=' + str(release_newest))
        response = render(
            request, 'spec/standard.html', {
                'standard_app': standard_result,
                'releases': releases,
                'username': username,
                'release_newest': release_newest
            })
        query_dict = {}
        for param in parameters:
            if param != 'app' or param != 'query_item':
                param_list = parameters.getlist(param, default=None)
                query_dict[param] = param_list
        response.set_cookie('filter_condition', query_dict, 300)

        if '?' in full_path:
            path = full_path.split('?')
            app = request.GET.get('app')
            response.set_cookie('copy_path', path[1], 300)
            response.set_cookie('app', app, 3000)
            ACCESS_LOGS.info('parameters=' + str(parameters) + 'query_dict=' +
                             str(query_dict) + 'path=' + str(path) + 'app=' +
                             app)
        return response
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e
示例#11
0
    def auth(self):
        l = ldap.initialize(self.ldap_Server)
        l.protocol_version = ldap.VERSION3
        try:
            l.simple_bind_s(self.ldap_Bind_Dn, self.ldap_Bind_Pd)
        except ldap.SERVER_DOWN as ex:
            ERROR_LOGS.error(ex)
            return None
        except ldap.INVALID_CREDENTIALS as ex:
            ERROR_LOGS.error(ex)
            return None
        except Exception as ex:
            ERROR_LOGS.error(ex)
            return None

        try:
            ldap_result_id = l.search(self.ldap_User_Dn, ldap.SCOPE_SUBTREE,
                                      '(sAMAccountName' + '=' + self.username+')', None)
            result_type, result_data = l.result(ldap_result_id, 1)
            if not len(result_data) == 0:
                r_a, r_b = result_data[0]
                dn = r_b["distinguishedName"][0]
                user_number = r_b["description"][0]
                user_name = r_b["name"][0]
                email = r_b["mail"][0]
                department = r_b["department"][0]
            else:
                return None
        except ldap.LDAPError as e:
            ERROR_LOGS.error(e)
            return None

        dn = str(dn, encoding="utf8")
        user_number = str(user_number, encoding="utf8")
        user_name = str(user_name, encoding="utf8")
        email = str(email, encoding="utf8")
        department = str(department, encoding="utf8")

        l2 = ldap.initialize(self.ldap_Server)
        result = l2.simple_bind_s(dn, self.password)

        if result[0] == 97:
            try:
                check_user.insert_role(user_number, user_name, email, department)
                ACCESS_LOGS.info('User:'******' Number:' + user_number + ' Login in PDP')
                # Insert_Role(user_number, user_name, email, department)
                return user_name, user_number
                # return self.username
            except Exception as e:
                ERROR_LOGS.error(e)
                return None
        else:
            return None
示例#12
0
def add_filters(request):
    try:
        condition = request.GET.get('condition')
        app = request.COOKIES.get('app', '')
        filters = standard_filter.obtain_extra_box(app, condition)
        ACCESS_LOGS.info('app=' + app + 'condition' + str(condition) +
                         'filters=' + str(filters))
        return HttpResponse(json.dumps(filters),
                            content_type="application/json")
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e
示例#13
0
def modify_spec_comments(request):
    try:
        comment = {
            'comment_id': request.GET.get('comment_id'),
            'content': request.GET.get('content')
        }
        result = Comment.update_comment(comment)
        return HttpResponse(json.dumps(result),
                            content_type="application/json")
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e
示例#14
0
def home_table(request):
    try:
        home_list = home_server.get_home_info()
        #home_list = sorted(home_list.items(), key=lambda x:x[0], reverse=True)
        result = []
        for list in home_list:
            result.append(home_list[list])
            #result.append(list[1])
        return HttpResponse(json.dumps(result),
                            content_type="application/json")
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e
示例#15
0
def summary(request, name):
    try:
        username = request.COOKIES.get('username', '')
        response = render(
            request, 'summary.html', {
                'releases': obtain_summary.obtain_all_releases(),
                'username': username,
                'release_name': name,
                'release_newest': obtain_summary.obtain_latest_release()
            })
        return response
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e
示例#16
0
 def combine_release_hard_config(self, standard_hard_config):
     try:
         first = self.keys[0]
         result = self.data[first][standard_hard_config]
         for key in self.keys:
             if key == first:
                 continue
             temp = self.data[key][standard_hard_config]
             WARNING_LOGS.warning(' result=' + str(result) + ' standard_hard_config=' + str(temp))
             self.obtain_config(result, temp)
             WARNING_LOGS.warning(' result=' + str(result) + ' standard_hard_config=' + str(temp))
             self.count += 1
         self.count = 1
         return self.data[first][standard_hard_config]
     except Exception as e:
         ERROR_LOGS.error(e)
         raise e
示例#17
0
def update_tune(request):
    try:
        ids = request.GET
        update_ids = {}
        result = {'flag': 'Update End!'}
        for id in ids:
            update_ids[id] = ids[id]
        standard_filter.update_tune_customization(update_ids)
        result = {'flag': 'Update End!'}
        ACCESS_LOGS.info('update_ids=' + str(update_ids))
        return HttpResponse(json.dumps(result),
                            content_type="application/json")
    except Exception as err:
        result = {'flag': str(err)}
        ERROR_LOGS.error(err)
        return HttpResponse(json.dumps(result),
                            content_type="application/json")
示例#18
0
def spec_delete(request):
    try:
        release_ids_format = request.GET.get('delete_list')
        release_ids = release_ids_format.split('&')
        user = request.COOKIES.get('user_number', '')
        ACCESS_LOGS.info('user='******'release_ids' + str(release_ids) +
                         'release_ids_format=' + str(release_ids_format))
        release_ids.pop()
        if user == '1680505' or user == '1680342':
            result = delete_release.delete_by_release(release_ids)
        else:
            result = {'flag': "Failed: Permission denied"}
        return HttpResponse(json.dumps(result),
                            content_type="application/json")
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e
示例#19
0
def insert_spec_comments(request):
    try:
        comment = {
            'username': request.COOKIES.get('username', ''),
            'testcase_exec_id': request.GET.get('comment_id'),
            'content': request.GET.get('content')
        }
        result = Comment.insert_comment(comment)
        ACCESS_LOGS.info(result)
        id_string = request.GET.get('standard_ids')
        standard_ids = id_string.split(',')
        print(standard_ids)
        print(Comment.get_comment(standard_ids))
        return HttpResponse(json.dumps(Comment.get_comment(standard_ids)),
                            content_type="application/json")
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e
示例#20
0
 def combine_release_data(self, standard_data_form):
     try:
         first = self.keys[0]
         result = self.data[first][standard_data_form]
         for key in self.keys:
             if key == first:
                 continue
             temp = self.data[key][standard_data_form]
             WARNING_LOGS.warning(' result=' + str(result) + ' temp=' + str(temp))
             self.dict_selected(result, temp)
             WARNING_LOGS.warning(' result=' + str(result) + ' temp=' + str(temp))
             self.count += 1
         self.count = 1
         WARNING_LOGS.warning(' standard_data_form=' + str(self.data[first][standard_data_form]))
         return self.data[first][standard_data_form]
     except Exception as e:
         ERROR_LOGS.error(e)
         raise e
示例#21
0
def login(request):
    try:
        username = request.POST.get('username')
        password = request.POST.get('password')
        username, user_number = LdapAuth(username, password).auth()
        if username:
            request.session['username'] = username
            response = HttpResponseRedirect('/home')
            response.set_cookie('username', username, 3000)
            response.set_cookie('user_number', user_number, 3000)
            return response
        else:
            return render(request, 'login.html',
                          {'message': 'Wrong username or password'})
    except Exception as e:
        ERROR_LOGS.error(e)
        return render(request, 'login.html',
                      {'message': 'Wrong username or password'})
示例#22
0
def snapshots(request):
    try:
        snapshots = request.POST.get('snapshots').split(',')
        filetype = request.POST.get('filetype')
        source = request.POST.get('source')
        app = request.COOKIES.get('app', '')
        ACCESS_LOGS.info(' app=' + app + ' snapshots' + str(snapshots) +
                         ' filetype=' + str(filetype))
        export = {}
        for snapshot in snapshots:
            item = request.POST.get(snapshot)
            if snapshot == 'system-setting':
                snapshot = 'tune'
            if item != 'data:,':
                image = item.replace('data:image/jpeg;base64,', '')
                try:
                    new_file = open(
                        os.path.join('static/file/snapshots/',
                                     snapshot + '.jpeg'), 'wb')
                    new_file.write(base64.b64decode(image))
                    new_file.close()
                except Exception as e:
                    ERROR_LOGS.error('Write file failed:' + e)

                way = 'static/file/snapshots/' + snapshot + '.jpeg'
                if snapshot in export:
                    export[snapshot].append(way)
                else:
                    try:
                        export[snapshot] = [way]
                    except Exception as e:
                        ERROR_LOGS.error(e)
            else:
                export[snapshot] = []

        if source == 'standard':
            export['testname'] = configuration.appname_reflect[app]
            export['version'] = 'hsrp'
            link = report.export_report(export, source)
        if source == 'summary':
            export['version'] = 'hsrp'
            hsrp = request.POST.get('hsrp')
            export['version'] = hsrp.replace('_', ' ')
            link = report.export_report(export, source)
        # image = "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"
        # fh = open(os.path.join('static/file/snapshots/', 'chart.jpeg'), "wb")
        # fh.write(base64.b64decode(image))
        # fh.close()
        paths = link[filetype].split('/')
        filename = paths[len(paths) - 1]
        result = {'link': filename}
        ACCESS_LOGS.info(' filename=' + filename + ' paths' + str(paths) +
                         ' result=' + str(result))
        return HttpResponse(json.dumps(result),
                            content_type="application/json")
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e
示例#23
0
def upload(request):
    try:
        files = request.FILES.getlist('filename')
        release = request.POST.get('release')
        name = request.COOKIES.get('user_number', '')
        tune = request.POST.get('tune')
        ACCESS_LOGS.info(' name=' + name + ' release' + str(release) +
                         ' tune=' + str(tune))
        filenames = {'csv': '', 'ini': '', '7z': ''}
        count = 0
        for file in files:
            if '.csv' in file.name:
                filenames['csv'] = 'static/file/upload/' + file.name
            elif '.ini' in file.name:
                filenames['ini'] = 'static/file/upload/' + file.name
            else:
                filenames['7z'] = 'static/file/upload/' + file.name
            count = count + 1
            try:
                new_file = open(os.path.join('static/file/upload/', file.name),
                                'wb')
                for chunk in file.chunks():
                    new_file.write(chunk)
                new_file.close()
            except Exception as e:
                ERROR_LOGS.error('Upload Exception:' + e)
                raise e
        result1 = import_standard_data.import_data(filenames['csv'],
                                                   filenames['ini'],
                                                   filenames['7z'], tune, name,
                                                   release)
        result1['message'] = 'Info: ' + str(result1['message'])
        return HttpResponse(json.dumps(result1),
                            content_type="application/json")
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e
示例#24
0
def query_release(request):
    try:
        releases = request.GET.getlist('release')
        ACCESS_LOGS.info(' result=' + str(releases))
        if len(releases):
            # summary_data = {
            #     'benchmark': {'items': [2]},
            #     'speccpu_2006': {'int': [1], 'float': [4]},
            #     'specjbb_2015': {'max-jobs': [3], 'critical-jobs': [5]},
            #     'lmbench': {'latency': [3]},
            # }
            # summary_soft_config = {
            #     'os': ['1.2.3'],
            #     'kernel': ['1.2.3.4'],
            #     'network': ['eth0,<speed>,<driver>,<vendor>,<Bus>;eth1,<speed>,<driver>,<vendor>,<Bus>'],
            # }
            # summary_hard_config = {
            #     'cpu': ['47'],
            #     'disk': ['sda,<size>,<type>,<interface>,<io_scheduler>,<vendor>;sdb,<size>,<type>,<interface>,<io_scheduler>,<vendor>']
            # }
            #
            # hsrp1 = {
            #     'summary_data': summary_data,
            #     'summary_soft_config': summary_soft_config,
            #     'summary_hard_config': summary_hard_config,
            #     'summary_title': 'HSRP1.1'
            # }
            #
            # summary_data1 = {
            #     # 'benchmark': {'items': [2]},
            #     'speccpu_2006': {'int': [1], 'float': [4]},
            #     'specjbb_2015': {'max-jobs': [3], 'critical-jobs': [5]},
            #     'lmbench': {'latency': [3]},
            #     'fio': {
            #         'SSD': {
            #             'sequency-read': [1],
            #             'sequency-write': [2],
            #             'random-read': [3],
            #             'random-write': [4],
            #         },
            #         'NVMe': {
            #             'sequency-read': [5],
            #             'sequency-write': [6],
            #             'random-read': [7],
            #             'random-write': [8],
            #         }
            #     }
            # }
            #
            # summary_soft_config1 = {
            #     'os': ['1.2.3'],
            #     'network': ['eth0,<speed>,<driver>,<vendor>,<Bus>'],
            #     'kernel': ['1.2.3.4']
            # }
            #
            # summary_hard_config1 = {
            #     'cpu': ['47'],
            #     'disk': ['sda,<size>,<type>,<interface>,<io_scheduler>,<vendor>']
            # }
            #
            # hsrp2 = {
            #     'summary_data': summary_data1,
            #     'summary_soft_config': summary_soft_config1,
            #     'summary_hard_config': summary_hard_config1,
            #     'summary_title': 'HSRP1.2'
            # }
            #
            # summary_data2 = {
            #     # 'benchmark': {'items': [2]},
            #     'specjbb_2015': {'max-jobs': [3], 'critical-jobs': [5]},
            #     'lmbench': {'latency': [3]},
            #     'fio': {
            #         'SSD': {
            #             'sequency-read': [1],
            #             'sequency-write': [2],
            #             'random-read': [3],
            #             'random-write': [4],
            #         },
            #         'NVMe': {
            #             'sequency-read': [5],
            #             'sequency-write': [6],
            #             'random-read': [7],
            #             'random-write': [8],
            #         }
            #     }
            # }
            #
            # summary_soft_config2 = {
            #     'os': ['1.2.3'],
            #     'network': ['eth0,<speed>,<driver>,<vendor>,<Bus>;eth1,<speed>,<driver>,<vendor>,<Bus>'],
            #     'kernel': ['1.2.3.4']
            # }
            #
            # summary_hard_config2 = {
            #     'cpu': ['47'],
            #     'disk': ['sda,<size>,<type>,<interface>,<io_scheduler>,<vendor>']
            # }
            #
            # hsrp3 = {
            #     'summary_data': summary_data2,
            #     'summary_soft_config': summary_soft_config2,
            #     'summary_hard_config': summary_hard_config2,
            #     'summary_title': 'HSRP1.3'
            # }
            #
            # summary = {
            #     'hsrp1': hsrp1,
            #     'hsrp2': hsrp2,
            #     'hsrp3': hsrp3
            # }
            summary = obtain_summary.obtain_summary(releases)
            summary_data = 'summary_data'
            summary_soft_config = 'summary_soft_config'
            summary_hard_config = 'summary_hard_config'
            summary_tune = 'summary_tune'
            keys = list(summary.keys())
            if len(keys):
                result = AutoGenTable(summary,
                                      keys).combine_release_data(summary_data)
                soft_config = AutoGenTable(
                    summary,
                    keys).combine_release_soft_config(summary_soft_config)
                hard_config = AutoGenTable(
                    summary,
                    keys).combine_release_hard_config(summary_hard_config)
                tune = AutoGenTable(summary,
                                    keys).combine_release_tune(summary_tune)

                last = {
                    'summary_data': result,
                    'summary_soft_config': soft_config,
                    'summary_hard_config': hard_config,
                    'summary_tune': tune,
                    'summary_title': keys
                }
            else:
                last = {'flag': False}
            ACCESS_LOGS.info(' last=' + str(last))
            return HttpResponse(json.dumps(last),
                                content_type="application/json")
        result = {'flag': False}
        ACCESS_LOGS.info(' result=' + str(result))
        return HttpResponse(json.dumps(result),
                            content_type="application/json")
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e
示例#25
0
def standard_query(request):
    try:
        global no_order
        release_ids = request.GET.getlist('query_item')
        app = request.COOKIES.get('app', '')
        filter_condition = eval(request.COOKIES.get('filter_condition', ''))
        ACCESS_LOGS.info('app=' + app + 'release_ids' + str(release_ids) +
                         'filter_condition=' + str(filter_condition))
        special_filter_condition = {}

        for key in list(eval(configuration.filter_condition_key)):
            if key in filter_condition:
                special_filter_condition[key] = filter_condition[key]
        if len(special_filter_condition) == 0:
            special_filter_condition = None

        data_no_deep = standard_filter.obtain_detail_data(
            release_ids, app, conditions_dict=special_filter_condition)
        data = copy.deepcopy(data_no_deep)
        ACCESS_LOGS.info('data=' + str(data))

        standard_title = 'standard_title'
        standard_data_figure = 'standard_data_figure'
        standard_data_form = 'standard_data_form'
        standard_soft_config = 'standard_soft_config'
        standard_hard_config = 'standard_hard_config'
        standard_tune = 'standard_tune'
        standard_tune_customization = 'standard_tune_customization'

        keys = list(data.keys())
        result = AutoGenTable(data_no_deep,
                              keys).combine_release_data(standard_data_form)
        ACCESS_LOGS.info('result=' + str(result))
        tmp_result = collections.OrderedDict()
        if app in ['lmbench-stream', 'lmbench-latency']:
            if app == 'lmbench-stream':
                for key in list(result.keys()):
                    tmp_result[key + '(MB/s)'] = copy.deepcopy(result[key])
            if app == 'lmbench-latency':
                for key in list(result.keys()):
                    tmp_result[key + '(ns)'] = copy.deepcopy(result[key])
            result = copy.deepcopy(tmp_result)
        result = {app: result}
        ACCESS_LOGS.info('result=' + str(result))
        soft_config = AutoGenTable(
            data_no_deep,
            keys).combine_release_soft_config(standard_soft_config)
        hard_config = AutoGenTable(
            data_no_deep,
            keys).combine_release_hard_config(standard_hard_config)
        tune = AutoGenTable(data_no_deep,
                            keys).combine_release_tune(standard_tune)
        ACCESS_LOGS.info('soft_config=' + str(soft_config))
        ACCESS_LOGS.info('hard_config=' + str(hard_config))
        ACCESS_LOGS.info('tune=' + str(tune))

        figure_data = collections.OrderedDict()
        titles = []
        customization = []
        dataset_ids = []
        app_dict = {
            'lmbench-stream': 'lmbench-stream(MB/s)',
            'lmbench-latency': 'lmbench-latency(ns)',
            'specjbb': 'specjbb'
        }
        for key in keys:
            dataset_ids.append(key)
            titles.append(data[key][standard_title])
            customization.append(
                data[key][standard_tune_customization]['Customization'][0])
            figure_data[key] = collections.OrderedDict()
            if app == 'specjbb' or app == 'lmbench-stream' or app == 'lmbench-latency':
                figure_data[key][
                    standard_data_figure] = collections.OrderedDict()
                figure_data[key][standard_data_figure][
                    app_dict[app]] = data[key][standard_data_figure]
            else:
                figure_data[key][standard_data_figure] = data[key][
                    standard_data_figure]
            figure_data[key][standard_title] = data[key][standard_title]
        figure = AutoGenEcharts(figure_data, standard_title,
                                standard_data_figure).combine_figure_data()
        ACCESS_LOGS.info('figure=' + str(figure))
        comments = Comment.get_comment(release_ids)
        print(comments)
        last = {
            'standard_data_form': result,
            'standard_data_figure': figure,
            'standard_soft_config': soft_config,
            'standard_hard_config': hard_config,
            'standard_tune': tune,
            'standard_title': titles,
            'standard_tune_customization': customization,
            'standard_ids': dataset_ids,
            'standard_comments': comments
        }
        ACCESS_LOGS.info('last=' + str(last))
        return HttpResponse(json.dumps(last), content_type="application/json")
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e
示例#26
0
def standard_latest(request):
    try:
        app = request.COOKIES.get('app', '')
        data_no_deep = standard_filter.obtain_latest_data(app)
        ACCESS_LOGS.info('app=' + app + 'data_no_deep=' + str(data_no_deep))
        if data_no_deep == OrderedDict():
            return
        data = copy.deepcopy(data_no_deep)

        standard_title = 'standard_title'
        standard_data_figure = 'standard_data_figure'
        standard_data_form = 'standard_data_form'
        standard_soft_config = 'standard_soft_config'
        standard_hard_config = 'standard_hard_config'
        standard_tune = 'standard_tune'
        standard_tune_customization = 'standard_tune_customization'

        keys = list(data.keys())
        result = AutoGenTable(data_no_deep,
                              keys).combine_release_data(standard_data_form)
        ACCESS_LOGS.info('result=' + str(result))
        tmp_result = collections.OrderedDict()
        if app in ['lmbench-stream', 'lmbench-latency']:
            if app == 'lmbench-stream':
                for key in list(result.keys()):
                    tmp_result[key + '(MB/s)'] = copy.deepcopy(result[key])
            if app == 'lmbench-latency':
                for key in list(result.keys()):
                    tmp_result[key + '(ns)'] = copy.deepcopy(result[key])
            result = copy.deepcopy(tmp_result)
        result = {app: result}
        ACCESS_LOGS.info('result=' + str(result))

        soft_config = AutoGenTable(
            data_no_deep,
            keys).combine_release_soft_config(standard_soft_config)
        hard_config = AutoGenTable(
            data_no_deep,
            keys).combine_release_hard_config(standard_hard_config)
        tune = AutoGenTable(data_no_deep,
                            keys).combine_release_tune(standard_tune)
        ACCESS_LOGS.info('soft_config=' + str(soft_config))
        ACCESS_LOGS.info('hard_config=' + str(hard_config))
        ACCESS_LOGS.info('tune=' + str(tune))

        figure_data = collections.OrderedDict()
        titles = []
        customization = []
        dataset_ids = []
        release_id = []
        app_dict = {
            'lmbench-stream': 'lmbench-stream(MB/s)',
            'lmbench-latency': 'lmbench-latency(ns)',
            'specjbb': 'specjbb'
        }
        for key in keys:
            release_id.append(key)
            dataset_ids.append(key)
            titles.append(data[key][standard_title])
            customization.append(
                data[key][standard_tune_customization]['Customization'][0])
            figure_data[key] = collections.OrderedDict()
            if app in app_dict:
                figure_data[key][
                    standard_data_figure] = collections.OrderedDict()
                figure_data[key][standard_data_figure][
                    app_dict[app]] = data[key][standard_data_figure]
            else:
                figure_data[key][standard_data_figure] = data[key][
                    standard_data_figure]
            figure_data[key][standard_title] = data[key][standard_title]

        figure = AutoGenEcharts(figure_data, standard_title,
                                standard_data_figure).combine_figure_data()
        ACCESS_LOGS.info('figure=' + str(figure))

        comments = Comment.get_comment(release_id)

        last = {
            'standard_data_form': result,
            'standard_data_figure': figure,
            'standard_soft_config': soft_config,
            'standard_hard_config': hard_config,
            'standard_tune': tune,
            'standard_title': titles,
            'standard_tune_customization': customization,
            'standard_ids': dataset_ids,
            'standard_comments': comments
        }
        ACCESS_LOGS.info('last=' + str(last))
        return HttpResponse(json.dumps(last), content_type="application/json")
    except Exception as e:
        ERROR_LOGS.error(e)
        raise e