-
Notifications
You must be signed in to change notification settings - Fork 0
/
rallyPython.py
97 lines (73 loc) · 3.09 KB
/
rallyPython.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import sys
import requests
import pyral # XXX Doesn't support Python 3 XXX
import trello
from pyral import Rally, rallyWorkset
DEBUG_OUTPUT = True
LOG_OUTPUT = False
RALLY_URI = ""
RALLY_USER = ""
RALLY_PASS = ""
print 'Testing pyral v{version}...'.format(version = pyral.__version__)
options = [arg for arg in sys.argv[1:] if arg.startswith('--')]
args = [arg for arg in sys.argv[1:] if arg not in options]
print 'Connecting to Rally...'
#(1) Connect via command line arguments
#server, user, password, apikey, workspace, project = rallyWorkset(options) #--> config.py
#rally = Rally(server, user, password, workspace=workspace, project=project)
#(2) Connect via hard coded values
rally = Rally(RALLY_URI, RALLY_USER, RALLY_PASS)
print "OK!"
if LOG_OUTPUT:
rally.enableLogging()
subscriptionName = rally.subscriptionName()
workspace = rally.getWorkspace()
print 'Subscribed to \'{}\', Workspace: {}'.format(subscriptionName, workspace.Name)
class RallyDebug():
"""Class for some simply Rally debug ouput"""
#Show a list of projects
def listProjects(self):
for pr in rally.getProjects():
print "{} ({})".format(pr.Name, pr.oid)
#Show a list of workspaces
def listWorkspaces(self):
for ws in rally.getWorkspaces():
print "{} ({})".format(ws.Name, ws.oid)
#Show a heirachical list of projects and workspaces
def listAll(self):
workspaces = rally.getWorkspaces()
for wksp in workspaces:
print "%s %s" % (wksp.oid, wksp.Name)
projects = rally.getProjects(workspace=wksp.Name)
for proj in projects:
print "\t%12.12s %s" % (proj.oid, proj.Name)
rallyDebug = RallyDebug()
#Rally: Project Details
#print rally.getProject('AmFam PL Phase 2').details()
#TODO Get user e-mail from first and last name
all_users = rally.getAllUsers()
for user in all_users:
print "{} {}, {}".format(user.FirstName, user.LastName, user.EmailAddress)
# print user.Name
# tz = user.UserProfile.TimeZone or 'default'
# role = user.Role or '-No Role-'
# values = (int(user.oid), user.Name, user.UserName, role, tz)
# print("%12.12d %-24.24s %-30.30s %-12.12s" % values)
#Rally : Get all artifacts that are not closed
#migrationList = open('migration.list', 'w')
#openArtifacts = []
#What will we be using from Rally.ARTIFACT_TYPE.values()? ['Story','Story','Defect','DefectSuite','Task','TestCase','TestSet','PortfolioItem']
#for artifactType in ['Defect', 'Story']:
# response = rally.get(artifactType, fetch="FormattedID", query='State != Closed')
# print "{} {}s found".format(response.resultCount, artifactType)
# for story in response:
# openArtifacts.append(story.FormattedID)
# migrationList.write("{}\n".format(story.FormattedID))#TODO just the ID
# if DEBUG_OUTPUT:
# print "Added {}...".format(story.FormattedID)
#
#print "{} TOTAL stories added ".format(len(openArtifacts))
#response = rally.get('Defect', fetch=fields, query=criterion, order="FormattedID", spagesize=200, limit=400)
#print response.resultCount, "qualifying {}".format(Rally.ARTIFACT_TYPE)
##Finalize
#migrationList.close()