Subversion Repositories DevTools

Rev

Rev 5298 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5298 Rev 6018
Line 1... Line 1...
1
import json, sys, datetime
1
import json, sys, datetime, time
2
from urllib.request import urlopen, Request
2
from urllib.request import urlopen, Request
3
 
3
 
4
CRUCIBLE_URL_TEMPLATE = 'http://cloudasvn03:8060/rest-service/reviews-v1'
4
CRUCIBLE_URL_TEMPLATE = 'http://cloudasvn03:8060/rest-service/reviews-v1'
5
RESULTS_KEY = 'results'
5
RESULTS_KEY = 'results'
6
GEOMETRY_KEY = 'geometry'
6
GEOMETRY_KEY = 'geometry'
7
LOCATION_KEY = 'location'
7
LOCATION_KEY = 'location'
8
LAT_KEY = 'lat'
8
LAT_KEY = 'lat'
9
LNG_KEY = 'lng'
9
LNG_KEY = 'lng'
10
 
10
 
11
def trace(*objs) :
11
def trace(*objs) :
12
    # print(*objs,file=sys.stderr)
12
    print(*objs,file=sys.stderr)
13
    # sys.stderr.flush()
13
    sys.stderr.flush()
14
    pass
14
    pass
15
    
15
    
16
class CrucibleExtractor :
16
class CrucibleExtractor :
17
    def __init__(self) :
17
    def __init__(self) :
18
        pass
18
        pass
Line 32... Line 32...
32
        retval = json.loads(str(resp,'utf-8'))
32
        retval = json.loads(str(resp,'utf-8'))
33
        if top : 
33
        if top : 
34
            retval = retval[top]
34
            retval = retval[top]
35
        return retval
35
        return retval
36
    def get_selected_review_ids(self,min_create_date, max_create_date) :
36
    def get_selected_review_ids(self,min_create_date, max_create_date) :
-
 
37
        date_min = datetime.datetime.strptime( min_create_date.replace("-00",""), "%Y-%m" )
-
 
38
        # epoch_min will be sent to Crucible to filter the reviews we want to look at.
-
 
39
        # We back off one day to account for timezones (the records returned will be
-
 
40
        # filtered on create date anyway)
-
 
41
        epoch_min = date_min.timestamp()-24*60*60
37
        url = CRUCIBLE_URL_TEMPLATE
42
        url = CRUCIBLE_URL_TEMPLATE + "/filter?fromDate=%d"%(epoch_min*1000,)
38
        reviewData = self.url_to_object(url,"reviewData")
43
        reviewData = self.url_to_object(url,"reviewData")
39
        for r in reviewData :
44
        for r in reviewData :
40
            review_id = r["permaId"]["id"] 
45
            review_id = r["permaId"]["id"] 
41
            review_create_date = r["createDate"]
46
            review_create_date = r["createDate"]
42
            if review_create_date>=min_create_date and review_create_date<=max_create_date :
47
            if review_create_date>=min_create_date and review_create_date<=max_create_date :
Line 182... Line 187...
182
        trace ( "Generating report for previous month (" + month_prefix + ")" )
187
        trace ( "Generating report for previous month (" + month_prefix + ")" )
183
    else :
188
    else :
184
        month_prefix = sys.argv[1]
189
        month_prefix = sys.argv[1]
185
        trace ( "Generating report for " + month_prefix )
190
        trace ( "Generating report for " + month_prefix )
186
    
191
    
-
 
192
    trace("Starting at",time.time())
187
    sys.stdout = open("%s.txt"%(month_prefix,),"w")
193
    sys.stdout = open("%s.txt"%(month_prefix,),"w")
188
    extractor.summarize_by_project(month_prefix)
194
    extractor.summarize_by_project(month_prefix)
189
    extractor.summarize_by_defect_type()
195
    extractor.summarize_by_defect_type()
190
    extractor.report_on_unclassified_defects()
196
    extractor.report_on_unclassified_defects()
-
 
197
    trace("Finished at",time.time())
191
 
198
 
192
 
199