コード例 #1
0
def releases_info(startdate, enddate, project, opts, people_out, affs_out):
    # Releases information.
    data = {}
    filters = MetricFilters("month", startdate, enddate,
                            ["project", str(project)], opts.npeople,
                            people_out, affs_out)
    # SCM report
    scm_dbcon = SCMQuery(opts.dbuser, opts.dbpassword, opts.dbcvsanaly,
                         opts.dbidentities, opts.dbprojects)
    dataset = scm_report(scm_dbcon, filters)
    data["scm"] = dataset

    #ITS report
    its_dbcon = ITSQuery(opts.dbuser, opts.dbpassword, opts.dbbicho,
                         opts.dbidentities, opts.dbprojects)
    dataset = its_report(its_dbcon, filters)
    data["its"] = dataset

    #SCR Report
    scr_dbcon = SCRQuery(opts.dbuser, opts.dbpassword, opts.dbreview,
                         opts.dbidentities, opts.dbprojects)
    dataset = scr_report(scr_dbcon, filters)
    data["scr"] = dataset

    return data
コード例 #2
0
ファイル: opnfv_report.py プロジェクト: acs/GrimoireLib
def data_source_increment_activity(opts, people_out, affs_out):
    # Per data source, the increment or decrement of the activity is displayed
    dataset = {}

    data_sources = ["Gits", "Tickets", "Mailing Lists", "Gerrit", "Askbot", "IRC"]
    action = ["commits", "closed tickets", "sent emails", "submitted reviews", "posted questions", "messages"]
    net_values = []
    rel_values = [] #percentage wrt the previous 365 days

    scm_dbcon = SCMQuery(opts.dbuser, opts.dbpassword, opts.dbcvsanaly, opts.dbidentities)
    its_dbcon = ITSQuery(opts.dbuser, opts.dbpassword, opts.dbbicho, opts.dbidentities)
    mls_dbcon = MLSQuery(opts.dbuser, opts.dbpassword, opts.dbmlstats, opts.dbidentities)
    scr_dbcon = SCRQuery(opts.dbuser, opts.dbpassword, opts.dbreview, opts.dbidentities)
    qaforums_dbcon = QAForumsQuery(opts.dbuser, opts.dbpassword, opts.dbqaforums, opts.dbidentities)
    irc_dbcon = IRCQuery(opts.dbuser, opts.dbpassword, opts.dbirc, opts.dbidentities)

    period = "month"
    type_analysis = None
    releases = opts.releases.split(",")[-2:]
    startdate = "'"+releases[0]+"'"
    enddate = "'"+releases[1]+"'"
    filters = MetricFilters(period, startdate, enddate, None, 10, people_out, affs_out)

    commits = scm.Commits(scm_dbcon, filters)
    closed = its.Closed(its_dbcon, filters)
    emails = mls.EmailsSent(mls_dbcon, filters)
    submitted = scr.Submitted(scr_dbcon, filters)
    questions = qa.Questions(qaforums_dbcon, filters)
    messages = irc.Sent(irc_dbcon, filters)


    from vizgrimoire.ITS import ITS
    ITS.set_backend("jira")

    net_values.append(commits.get_trends(releases[1], 90)["commits_90"])
    rel_values.append(commits.get_trends(releases[1], 90)["percentage_commits_90"])
    net_values.append(closed.get_trends(releases[1], 90)["closed_90"])
    rel_values.append(closed.get_trends(releases[1], 90)["percentage_closed_90"])
    net_values.append(emails.get_trends(releases[1], 90)["sent_90"])
    rel_values.append(emails.get_trends(releases[1], 90)["percentage_sent_90"])
    net_values.append(submitted.get_trends(releases[1], 90)["submitted_90"])
    rel_values.append(submitted.get_trends(releases[1], 90)["percentage_submitted_90"])
    net_values.append(questions.get_trends(releases[1], 90)["qsent_90"])
    rel_values.append(questions.get_trends(releases[1], 90)["percentage_qsent_90"])
    net_values.append(messages.get_trends(releases[1], 90)["sent_90"])
    rel_values.append(messages.get_trends(releases[1], 90)["percentage_sent_90"])

    createCSV({"datasource":data_sources, "metricsnames":action, "relativevalues":rel_values, "netvalues":net_values}, "./release/data_source_evolution.csv")
コード例 #3
0
ファイル: opnfv_report.py プロジェクト: acs/GrimoireLib
def projects_efficiency(opts, people_out, affs_out):
    # BMI and time to review in mean per general project
    scr_dbcon = SCRQuery(opts.dbuser, opts.dbpassword, opts.dbreview, opts.dbidentities, opts.dbprojects)
    scm_dbcon = SCMQuery(opts.dbuser, opts.dbpassword, opts.dbcvsanaly, opts.dbidentities, opts.dbprojects)
    its_dbcon = ITSQuery(opts.dbuser, opts.dbpassword, opts.dbbicho, opts.dbidentities, opts.dbprojects)

    bmi_list = []
    time2review_list = []
    bmi_its = []

    period = "month"
    releases = opts.releases.split(",")[-2:]
    startdate = "'"+releases[0]+"'"
    enddate = "'"+releases[1]+"'"

    type_analysis = None
    project_filters = MetricFilters(period, startdate, enddate, type_analysis, 10,
                                        people_out, affs_out)
    scr_bmi = scr.BMISCR(scr_dbcon, project_filters)
    time2review = scr.TimeToReview(scr_dbcon, project_filters)

    # ITS BMI index
    from vizgrimoire.ITS import ITS
    ITS.set_backend("jira")


    opened = its.Opened(its_dbcon, project_filters)
    closed = its.Closed(its_dbcon, project_filters)

    tickets_opened = opened.get_agg()["opened"]
    tickets_closed = closed.get_agg()["closed"]

    its_bmi = 0
    if tickets_closed > 0:
       its_bmi = round(float(tickets_closed)/float(tickets_opened), 2)


    bmi_list.append(round(scr_bmi.get_agg()["bmiscr"], 2))
    time2review_list.append(round(time2review.get_agg()["review_time_days_median"], 2))
    bmi_its.append(its_bmi)


    createCSV({"projects":"general", "bmi":bmi_list, "timereview":time2review_list, "bmiits":bmi_its}, "./release/integrated_projects_efficiency.csv")
コード例 #4
0
        project_sloc = float(sonar_metrics["ncloc"])
        print "Project: " + str(project)
        print "NCLOC: " + str(project_sloc)

        filters = MetricFilters("month", startdate, enddate,
                                ["project", "'" + project + "'"], opts.npeople,
                                people_out, affs_out)

        #SCM report
        scm_dbcon = SCMQuery(opts.dbuser, opts.dbpassword, opts.dbcvsanaly,
                             opts.dbidentities)
        data.update(scm_report(scm_dbcon, filters, project_sloc))

        #ITS report
        ITS.set_backend("bg")
        its_dbcon = ITSQuery(opts.dbuser, opts.dbpassword, opts.dbbicho,
                             opts.dbidentities)
        data.update(its_report(its_dbcon, filters, project_sloc))

        #SCR Report
        #scr_dbcon = SCRQuery(opts.dbuser, opts.dbpassword, opts.dbreview, opts.dbidentities)
        #data["scr"] = scr_report(scr_dbcon, filters)

        #MLS Report
        mls_dbcon = MLSQuery(opts.dbuser, opts.dbpassword, opts.dbmlstats,
                             opts.dbidentities)
        data.update(mls_report(mls_dbcon, filters, project_sloc))
        #FUDFORUMS Report
        fudforums_dbcon = MLSQuery(opts.dbuser, opts.dbpassword,
                                   opts.dbfudforums, opts.dbidentities)
        dataset = mls_report(fudforums_dbcon, filters, project_sloc)
コード例 #5
0
def projects_efficiency(opts, people_out, affs_out):
    # BMI and time to review in mean per general project
    scr_dbcon = SCRQuery(opts.dbuser, opts.dbpassword, opts.dbreview,
                         opts.dbidentities, opts.dbprojects)
    scm_dbcon = SCMQuery(opts.dbuser, opts.dbpassword, opts.dbcvsanaly,
                         opts.dbidentities, opts.dbprojects)
    its_dbcon = ITSQuery(opts.dbuser, opts.dbpassword, opts.dbbicho,
                         opts.dbidentities, opts.dbprojects)

    projects = integrated_projects(scm_dbcon)

    projects_ids = projects["subproject_id"]
    projects_list = []
    bmi_list = []
    time2review_list = []
    bmi_its = []

    period = "month"
    releases = opts.releases.split(",")[-2:]
    startdate = "'" + releases[0] + "'"
    enddate = "'" + releases[1] + "'"

    for project_id in projects_ids:
        project_title = "'" + project_id + "'"
        type_analysis = ["project", project_id]
        project_filters = MetricFilters(period, startdate, enddate,
                                        type_analysis, 10, people_out,
                                        affs_out)
        scr_bmi = scr.BMISCR(scr_dbcon, project_filters)
        time2review = scr.TimeToReview(scr_dbcon, project_filters)

        # ITS BMI index
        from vizgrimoire.ITS import ITS
        ITS.set_backend("launchpad")

        if project_id == 'Documentation':
            ITS._get_backend(
            ).closed_condition = "(new_value='Fix Committed' or new_value='Fix Released')"
        else:
            ITS.closed_condition = "(new_value='Fix Committed')"

        opened = its.Opened(its_dbcon, project_filters)
        closed = its.Closed(its_dbcon, project_filters)

        tickets_opened = opened.get_agg()["opened"]
        tickets_closed = closed.get_agg()["closed"]

        its_bmi = 0
        if tickets_closed > 0:
            its_bmi = round(float(tickets_closed) / float(tickets_opened), 2)

        projects_list.append(project_id)
        bmi_list.append(round(scr_bmi.get_agg()["bmiscr"], 2))
        time2review_list.append(
            round(time2review.get_agg()["review_time_days_median"], 2))
        bmi_its.append(its_bmi)

    createCSV(
        {
            "projects": projects_list,
            "bmi": bmi_list,
            "timereview": time2review_list,
            "bmiits": bmi_its
        }, "./release/integrated_projects_efficiency.csv")
コード例 #6
0
    def get_top_data(cls, startdate, enddate, identities_db, filter_, npeople):
        bots = cls.get_bots()
        closed_condition = cls._get_closed_condition()
        # TODO: It should be configurable from Automator
        top_issues_on = False
        top = None
        mopeners = DataSource.get_metrics("openers", cls)
        mclosers = DataSource.get_metrics("closers", cls)
        # We should check this metric is ON
        stories_openers = DataSource.get_metrics("stories_openers", cls)
        if mopeners is None or mclosers is None: return None
        period = None
        type_analysis = None
        if filter_ is not None:
            type_analysis = filter_.get_type_analysis()
        mfilter = MetricFilters(period, startdate, enddate, type_analysis,
                                npeople)
        if mclosers.filters.closed_condition is not None:
            mfilter.closed_condition = mclosers.filters.closed_condition

        if filter_ is None:
            top_closers_data = {}
            top_closers_data['closers.'] = mclosers.get_list(mfilter, 0)
            top_closers_data['closers.last month'] = mclosers.get_list(
                mfilter, 31)
            top_closers_data['closers.last year'] = mclosers.get_list(
                mfilter, 365)

            top_openers_data = {}
            top_openers_data['openers.'] = mopeners.get_list(mfilter, 0)
            top_openers_data['openers.last month'] = mopeners.get_list(
                mfilter, 31)
            top_openers_data['openers.last year'] = mopeners.get_list(
                mfilter, 365)

            top = dict(top_closers_data.items() + top_openers_data.items())

            if top_issues_on:
                from vizgrimoire.analysis.top_issues import TopIssues
                from vizgrimoire.report import Report
                db_identities = Report.get_config()['generic']['db_identities']
                dbuser = Report.get_config()['generic']['db_user']
                dbpass = Report.get_config()['generic']['db_password']
                dbname = Report.get_config()['generic'][cls.get_db_name()]
                dbcon = ITSQuery(dbuser, dbpass, dbname, db_identities)
                metric_filters = MetricFilters(None, startdate, enddate, [])
                top_issues_data = TopIssues(dbcon, metric_filters).result(cls)

                top = dict(top.items() + top_issues_data.items())

            if False and stories_openers is not None:
                top_sopeners_data = {}
                top_sopeners_data[
                    'stories_openers.'] = stories_openers.get_list(mfilter, 0)
                top_sopeners_data[
                    'stories_openers.last month'] = stories_openers.get_list(
                        mfilter, 31)
                top_sopeners_data[
                    'stories_openers.last year'] = stories_openers.get_list(
                        mfilter, 365)

                top = dict(top.items() + top_sopeners_data.items())
        else:
            filter_name = filter_.get_name()
            if filter_name in ["company", "domain", "repository"]:
                if filter_name in ["company", "domain", "repository"]:
                    top = {}
                    top['closers.'] = mclosers.get_list(mfilter, 0)
                    top['closers.last month'] = mclosers.get_list(mfilter, 31)
                    top['closers.last year'] = mclosers.get_list(mfilter, 365)
                else:
                    # Remove filters above if there are performance issues
                    top = mclosers.get_list(mfilter)
            else:
                top = None

        return top
コード例 #7
0
ファイル: its_changers.py プロジェクト: jgbarah/GrimoireLib
            if not data:
                data = state_data
                data[state] = data["changes"]
                data.pop("changes")  # remove not needed data
            else:
                data[state] = state_data["changes"]

        # TODO: Hardcoded creation of file
        createJSON(data, "../../../../json/its-changes.json")

        return data


def get_today_date():
    import datetime
    return str(datetime.date.today())


if __name__ == '__main__':

    today_date = "'" + get_today_date() + "'"

    filters = MetricFilters("month", "'2010-01-01'", today_date, [])
    dbcon = ITSQuery("root", "", "cp_bicho_cloudera", "cp_sortinghat_cloudera")

    all_people_changing = StatusChangers(dbcon, filters)
    print all_people_changing.result()

    all_changes = StatusChanges(dbcon, filters)
    print all_changes.result()
コード例 #8
0
                    trackers.get_trends(enddate, i).items())

    if filters.type_analysis == []:
        createJSON(data, "scr-static.json")
    else:
        tracker = filters.type_analysis[1]
        tracker = tracker.replace("'", "")
        name = tracker.split("/")[-1:][0]
        createJSON(data, name + "-scr-static.json")


if __name__ == '__main__':

    # PYTHONPATH=./:../../:../analysis/:../ python scr_jira_metrics.py
    filters = MetricFilters("month", "'2008-10-20'", "'2014-10-01'", [])
    dbcon = ITSQuery("root", "", "lcanas_bicho_gerrit_liferay_4444",
                     "lcanas_cvsanaly_liferay_4444")

    create_json(dbcon, filters)

    ITS.set_backend("jira")
    ITS._get_backend().closed_condition = " i.status = 'Closed' "
    #per tracker data
    trackers = Trackers(dbcon, filters)
    trackers_list = trackers.get_list()
    trackers_names = []
    for tracker in trackers_list["name"]:
        tracker_name = tracker.split("/")[-1:][0]
        trackers_names.append(tracker_name)
        tracker_str = "'" + tracker + "'"
        filters = MetricFilters("month", "'2008-10-20'", "'2014-10-01'",
                                ['repository', tracker_str])