Example #1
0
def changeRequestIDStatus(requestId, newState, priority=None):
    """
    _changeRequestIDStatus_

    Basic API to change a request to a new state, also
    includes optional priority change for the request

    - *requestId* : id of the request to be modified
    - *newState*    : name of the new status for the request
    - *priority* : optional integer priority

    """
    factory = DBConnect.getConnection()
    statusMap = factory(classname="ReqStatus.Map").execute()
    statusId = statusMap.get(newState, None)
    if statusId == None:
        msg = "Attempted to change request %s to unknown status value %s" % (
            requestId, newState)
        raise RuntimeError(msg)

    stateChanger = factory(classname="Request.SetStatus")
    stateChanger.execute(requestId, statusId)

    if priority != None:
        priorityChange = factory(classname="Request.Priority")
        priorityChange.execute(requestId, priority)
def removeUserFromGroup(userName, groupName):
    """
    _removeUserFromGroup_

    Remove the named user from the named group

    """
    factory = DBConnect.getConnection()
    getUserId   = factory(classname = "Requestor.ID")
    getGroupId  = factory(classname = "Group.ID")
    userId = getUserId.execute(userName)
    groupId = getGroupId.execute(groupName)

    if groupId == None:
        msg = "Failed to remove user %s from %s\n" % (userName, groupName)
        msg += "Group: %s is not registered in Request Manager" % groupName
        raise RuntimeError, msg
    if userId == None:
        msg = "Failed to remove user %s from %s\n" % (userName, groupName)
        msg += "User: %s is not registered in Request Manager" % userName
        raise RuntimeError, msg

    deleteAssoc = factory(classname = "Requestor.DeleteAssociation")
    deleteAssoc.execute(userId, groupId)
    return
Example #3
0
def putMessage(requestName, message):
    factory = DBConnect.getConnection()
    reqId = getRequestID(factory, requestName)
    #return factory(classname = "Progress.Message").execute(reqId, message)
    message = message[:999]
    factory(classname="Progress.Message").execute(reqId, message)
    return
Example #4
0
def updateSoftware(softwareNames, scramArch = None):
    """
    _updateSoftware_

    Add a software version to the database if it does not already exist.
    If a version exists that is not added, delete it.
    """
    versionsToAdd = []
    versionsToDel = []
    factory = DBConnect.getConnection()
    currentVersions = listSoftware()

    if not scramArch in currentVersions.keys():
        # Then the whole architecture is new.  Add it.
        versionsToAdd = softwareNames
    else:
        scramVersions = currentVersions[scramArch]
        versionsToAdd = list(set(softwareNames) - set(scramVersions))
        versionsToDel = list(set(scramVersions) - set(softwareNames))

    if len(versionsToAdd) > 0:
        addSw = factory(classname = "Software.New")
        addSw.execute(softwareNames = versionsToAdd, scramArch = scramArch)
    if len(versionsToDel) > 0:
        for version in versionsToDel:
            removeSoftware(softwareName = version, scramArch = scramArch)
    return
Example #5
0
def changeRequestIDStatus(requestId, newState, priority = None):
    """
    _changeRequestIDStatus_

    Basic API to change a request to a new state, also
    includes optional priority change for the request

    - *requestId* : id of the request to be modified
    - *newState*    : name of the new status for the request
    - *priority* : optional integer priority 

    """
    factory = DBConnect.getConnection()
    statusMap = factory(classname = "ReqStatus.Map").execute()
    statusId = statusMap.get(newState, None)
    if statusId == None:
        msg = "Attempted to change request %s to unknown status value %s" % (
            requestId, newState)
        raise RuntimeError, msg

    stateChanger = factory(classname = "Request.SetStatus")
    stateChanger.execute(requestId, statusId)

    if priority != None:
        priorityChange = factory(classname = "Request.Priority")
        priorityChange.execute(requestId, priority)

    return
Example #6
0
def associateSoftware(requestName, softwareName):
    """
    _associateSoftware_

    associate software name to named request
    Software must be registered in the DB

    """

    factory = DBConnect.getConnection()
    requestId = factory(classname="Request.ID")

    reqId = requestId.execute(requestName)
    if reqId == None:
        msg = "Unknown Request: %s\n" % requestName
        msg += "Cannot associate software to request"
        raise RuntimeError, msg

    softwareId = factory(classname="Software.ID")
    swId = softwareId.execute(softwareName)
    if swId == None or swId == []:
        msg = "Unknown Software name: %s\n" % softwareName
        msg += "Cannot associate software to request"
        raise RuntimeError, msg

    softwareAssoc = factory(classname="Software.Association")

    try:
        softwareAssoc.execute(reqId, swId[0])
    except Exception, ex:
        msg = "Unable to associate software to request\n"
        msg += "request: %s software: %s " % (requestName, softwareName)
        raise RuntimeError, msg
Example #7
0
def getRequest(requestId, reverseTypes=None, reverseStatus=None):
    """
    _getRequest_


    retrieve a request based on the request id,
    return a ReqMgr.DataStructs.Request instance containing
    the information

    """
    factory = DBConnect.getConnection()
    reqGet = factory(classname = "Request.Get")
    reqData = reqGet.execute(requestId)
    requestName = reqData['request_name']

    if not reverseTypes or not reverseStatus:
        reverseTypes, reverseStatus = reverseLookups()

    getGroup = factory(classname = "Group.GetGroupFromAssoc")
    groupData = getGroup.execute(reqData['requestor_group_id'])

    getUser = factory(classname = "Requestor.GetUserFromAssoc")
    userData = getUser.execute(reqData['requestor_group_id'])
    request = Request()
    request["ReqMgrRequestID"] = reqData['request_id']
    request["RequestName"] = requestName
    request["RequestType"] = reverseTypes[reqData['request_type']]
    request["RequestStatus"] = reverseStatus[reqData['request_status']]
    request["RequestPriority"] = reqData['request_priority']
    request["ReqMgrRequestBasePriority"] = reqData['request_priority']
    request["RequestWorkflow"] = reqData['workflow']
    request["RequestSizeEvents"] = reqData['request_size_events']
    request["RequestSizeFiles"] = reqData['request_size_files']

    request["Group"] = groupData['group_name']
    request["ReqMgrGroupID"] = groupData['group_id']
    request["ReqMgrGroupBasePriority"] = \
                        groupData['group_base_priority']
    request["Requestor"] = userData['requestor_hn_name']
    request["ReqMgrRequestorID"] = userData['requestor_id']
    request["ReqMgrRequestorBasePriority"] = \
                                userData['requestor_base_priority']
    request["RequestPriority"] = \
      request['RequestPriority'] + groupData['group_base_priority']
    request["RequestPriority"] = \
      request['RequestPriority'] + userData['requestor_base_priority']

    updates = ChangeState.getProgress(requestName)
    request['percent_complete'], request['percent_success'] = percentages(updates)
    sqDeps = factory(classname = "Software.GetByAssoc")
    swVers = sqDeps.execute(requestId)
    request['SoftwareVersions'] = swVers.values()
    getDatasetsIn = factory(classname = "Datasets.GetInput")
    getDatasetsOut = factory(classname = "Datasets.GetOutput")
    datasetsIn = getDatasetsIn.execute(requestId)
    datasetsOut = getDatasetsOut.execute(requestId)
    request['InputDatasetTypes'] = datasetsIn
    request['InputDatasets'] = datasetsIn.keys()
    request['OutputDatasets'] = datasetsOut
    return request
Example #8
0
def addUserToGroup(userName, groupName):
    """
    _addUserToGroup_

    Add the named user to the named group
    """
    factory = DBConnect.getConnection()
    getUserId = factory(classname="Requestor.ID")
    getGroupId = factory(classname="Group.ID")
    userId = getUserId.execute(userName)
    groupId = getGroupId.execute(groupName)

    if groupId == None:
        msg = "Failed to add user %s to group %s\n" % (userName, groupName)
        msg += "Group: %s is not registered in Request Manager" % groupName
        raise RuntimeError, msg
    if userId == None:
        msg = "Failed to add user %s to group %s\n" % (userName, groupName)
        msg += "User: %s is not registered in Request Manager" % userName
        raise RuntimeError, msg

    try:
        newAssoc = factory(classname="Requestor.NewAssociation")
        newAssoc.execute(userId, groupId)
    except SQLAlchemyIntegrityError as ex:
        if "Duplicate entry" in str(ex) or "unique constraint" in str(ex):
            raise cherrypy.HTTPError(400, "User/Group Already Linked in DB")
        raise
    return
def addUserToGroup(userName, groupName):
    """
    _addUserToGroup_

    Add the named user to the named group
    """
    factory = DBConnect.getConnection()
    getUserId   = factory(classname = "Requestor.ID")
    getGroupId  = factory(classname = "Group.ID")
    userId = getUserId.execute(userName)
    groupId = getGroupId.execute(groupName)

    if groupId == None:
        msg = "Failed to add user %s to group %s\n" % (userName, groupName)
        msg += "Group: %s is not registered in Request Manager" % groupName
        raise RuntimeError, msg
    if userId == None:
        msg = "Failed to add user %s to group %s\n" % (userName, groupName)
        msg += "User: %s is not registered in Request Manager" % userName
        raise RuntimeError, msg

    try:
        newAssoc = factory(classname = "Requestor.NewAssociation")
        newAssoc.execute(userId, groupId)
    except SQLAlchemyIntegrityError as ex:
        if "Duplicate entry" in str(ex) or "unique constraint" in  str(ex):
            raise cherrypy.HTTPError(400, "User/Group Already Linked in DB")
        raise
    return
Example #10
0
def removeUserFromGroup(userName, groupName):
    """
    _removeUserFromGroup_

    Remove the named user from the named group

    """
    factory = DBConnect.getConnection()
    getUserId = factory(classname="Requestor.ID")
    getGroupId = factory(classname="Group.ID")
    userId = getUserId.execute(userName)
    groupId = getGroupId.execute(groupName)

    if groupId == None:
        msg = "Failed to remove user %s from %s\n" % (userName, groupName)
        msg += "Group: %s is not registered in Request Manager" % groupName
        raise RuntimeError, msg
    if userId == None:
        msg = "Failed to remove user %s from %s\n" % (userName, groupName)
        msg += "User: %s is not registered in Request Manager" % userName
        raise RuntimeError, msg

    deleteAssoc = factory(classname="Requestor.DeleteAssociation")
    deleteAssoc.execute(userId, groupId)
    return
def deleteRequest(requestName):
    """
    _deleteRequest_

    delete the request from the database by its RequestName

    """
    factory = DBConnect.getConnection()
    finder =  factory(classname="Request.FindByName")
    reqId = finder.execute(requestName)
    if reqId == None:
        raise HTTPError(404, 'Given requestName not found: %s' % requestName)

    factory = DBConnect.getConnection()
    deleteReq = factory(classname = "Request.Delete")
    deleteReq.execute(reqId)
Example #12
0
def putMessage(requestName, message):
    factory = DBConnect.getConnection()
    reqId = getRequestID(factory, requestName)
    #return factory(classname = "Progress.Message").execute(reqId, message)
    message = message[:999]
    factory(classname = "Progress.Message").execute(reqId, message)
    return
Example #13
0
def deleteRequest(requestName):
    """
    _deleteRequest_

    delete the request from the database by its RequestName

    """
    factory = DBConnect.getConnection()
    finder = factory(classname="Request.FindByName")
    reqId = finder.execute(requestName)
    if reqId == None:
        raise HTTPError(404, 'Given requestName not found: %s' % requestName)

    factory = DBConnect.getConnection()
    deleteReq = factory(classname="Request.Delete")
    deleteReq.execute(reqId)
Example #14
0
def associateSoftware(requestName, softwareName):
    """
    _associateSoftware_

    associate software name to named request
    Software must be registered in the DB

    """

    factory = DBConnect.getConnection()
    requestId = factory(classname="Request.ID")

    reqId = requestId.execute(requestName)
    if reqId == None:
        msg = "Unknown Request: %s\n" % requestName
        msg += "Cannot associate software to request"
        raise RuntimeError, msg

    softwareId = factory(classname="Software.ID")
    swId = softwareId.execute(softwareName)
    if swId == None or swId == []:
        msg = "Unknown Software name: %s\n" % softwareName
        msg += "Cannot associate software to request"
        raise RuntimeError, msg

    softwareAssoc = factory(classname="Software.Association")

    try:
        softwareAssoc.execute(reqId, swId[0])
    except Exception, ex:
        msg = "Unable to associate software to request\n"
        msg += "request: %s software: %s " % (requestName, softwareName)
        raise RuntimeError, msg
Example #15
0
def assignRequest(requestName, teamName, prodMgr=None, wmstatUrl=None):
    """
    _assignRequest_

    Assign a request to a team.

    This does the following:

    - Changes the status to assigned
    - Creates an association to the team provided
    - Optionally associates the request to a prod mgr instance

    """

    factory = DBConnect.getConnection()
    reqId = getRequestID(factory, requestName)

    teamId = factory(classname="Team.ID").execute(teamName)
    if teamId == None:
        msg = "Team named %s not known in database" % teamName
        msg += "Failed to assign request %s to team %s" % (requestName, teamName)
        raise RuntimeError, msg

    if wmstatUrl:
        wmstatSvc = WMStatsWriter(wmstatUrl)
        wmstatSvc.updateTeam(requestName, teamName)

    assigner = factory(classname="Assignment.New")
    assigner.execute(reqId, teamId)

    changeRequestStatus(requestName, "assigned", priority=None, wmstatUrl=wmstatUrl)

    if prodMgr != None:
        addPM = factory(classname="Progress.ProdMgr")
        addPM.execute(reqId, prodMgr)
Example #16
0
def registerUser(hnUsername, emailAddress, dnName = None):
    """
    _registerUser_

    Register a new user given:

    - CMS Hypernews username
    - contact email address (request related messages will be sent to this)
    - physics group name
    - (optional) certificate distingushing name

    The ID of the user will be returned, or an exception will be thrown
    if the user cannot be registered

    """
    logging.info("Adding User: %s" % hnUsername)
    factory = DBConnect.getConnection()


    newUser = factory(classname = "Requestor.New")
    try:
        newUser.execute(hnUsername, emailAddress,dnName , 1)
    except Exception as ex:
        msg = "Unable to register user:\n%s" % str(ex)
        raise RuntimeError(msg)
Example #17
0
def updateSoftware(softwareNames, scramArch = None):
    """
    _updateSoftware_

    Add a software version to the database if it does not already exist.
    If a version exists that is not added, delete it.
    """
    versionsToAdd = []
    versionsToDel = []
    factory = DBConnect.getConnection()
    currentVersions = listSoftware()

    if not scramArch in currentVersions.keys():
        # Then the whole architecture is new.  Add it.
        versionsToAdd = softwareNames
    else:
        scramVersions = currentVersions[scramArch]
        versionsToAdd = list(set(softwareNames) - set(scramVersions))
        versionsToDel = list(set(scramVersions) - set(softwareNames))

    if len(versionsToAdd) > 0:
        addSw = factory(classname = "Software.New")
        addSw.execute(softwareNames = versionsToAdd, scramArch = scramArch)
    if len(versionsToDel) > 0:
        for version in versionsToDel:
            removeSoftware(softwareName = version, scramArch = scramArch)
    return
Example #18
0
def addCampaign(campaignName):
    factory = DBConnect.getConnection()
    check = factory(classname = "Campaign.ID")
    checkResults = check.execute(campaignName)
    if checkResults == None or checkResults == []:
        add = factory(classname = "Campaign.New")
        add.execute(campaignName)
    return
Example #19
0
def requestID(requestName):
    """ Finds the ReqMgr database ID for a request """
    factory = DBConnect.getConnection()
    f =  factory(classname = "Request.FindByName")
    id = f.execute(requestName)
    if id == None:
        raise RuntimeError, "Cannot find request %s" % requestName
    return id
Example #20
0
def addCampaign(campaignName):
    factory = DBConnect.getConnection()
    check = factory(classname="Campaign.ID")
    checkResults = check.execute(campaignName)
    if checkResults == None or checkResults == []:
        add = factory(classname="Campaign.New")
        add.execute(campaignName)
    return
Example #21
0
def requestID(requestName):
    """ Finds the ReqMgr database ID for a request """
    factory = DBConnect.getConnection()
    f = factory(classname="Request.FindByName")
    reqId = f.execute(requestName)
    if reqId is None:
        raise HTTPError(404, 'Given request name not found: %s' % requestName)
    return reqId
def listTeams():
    """
    _listTeams_

    Show which teams exist
    """
    factory = DBConnect.getConnection()
    return factory(classname = "Team.List").execute()
Example #23
0
def requestID(requestName):
    """ Finds the ReqMgr database ID for a request """
    factory = DBConnect.getConnection()
    f = factory(classname="Request.FindByName")
    id = f.execute(requestName)
    if id == None:
        raise HTTPError(404, 'Given requestName not found')
    return id
Example #24
0
def listTeams():
    """
    _listTeams_

    Show which teams exist
    """
    factory = DBConnect.getConnection()
    return factory(classname="Team.List").execute()
Example #25
0
def listRequestsByCampaign(campaignName):
    factory = DBConnect.getConnection()
    campaignFind = factory(classname="Campaign.ID")
    campaignID = campaignFind.execute(campaignName)
    if campaignID == None or campaignID == []:
        raise HTTPError(404, "Cannot find campaign")
    reqFind = factory(classname="Request.FindByCampaign")
    result = reqFind.execute(campaignID)
    return result
Example #26
0
def getRequestsByCriteria(classname, criterion):
    factory = DBConnect.getConnection()
    query = factory(classname)
    requestIds = query.execute(criterion)
    reverseTypes, reverseStatus = reverseLookups()
    return [
        getRequest(requestId[0], reverseTypes, reverseStatus)
        for requestId in requestIds
    ]
Example #27
0
def listSoftware():
    """
    _listSoftware_

    lists all software versions in the database
    """
    factory = DBConnect.getConnection()
    listSw = factory(classname = "Software.List")
    return listSw.execute()
Example #28
0
def listRequestsByCampaign(campaignName):
    factory = DBConnect.getConnection()
    campaignFind = factory(classname = "Campaign.ID")
    campaignID = campaignFind.execute(campaignName)
    if campaignID == None or campaignID == []:
        raise HTTPError(404, "Cannot find campaign")
    reqFind = factory(classname = "Request.FindByCampaign")
    result = reqFind.execute(campaignID)
    return result
Example #29
0
def groupsForUser(userName):
    """ Return a list of all the groups this user belongs to """
    result = []
    factory = DBConnect.getConnection()
    getUserId = factory(classname = "Requestor.ID")
    userId = getUserId.execute(userName)
    getGroups = factory(classname = "Requestor.GetAssociationNames")
    groups = getGroups.execute(userId)
    return groups;
Example #30
0
def groupsForUser(userName):
    """ Return a list of all the groups this user belongs to """
    result = []
    factory = DBConnect.getConnection()
    getUserId = factory(classname="Requestor.ID")
    userId = getUserId.execute(userName)
    getGroups = factory(classname="Requestor.GetAssociationNames")
    groups = getGroups.execute(userId)
    return groups
Example #31
0
def listSoftware():
    """
    _listSoftware_
    
    lists all software versions in the database
    """
    factory = DBConnect.getConnection()
    listSw = factory(classname = "Software.List")
    return listSw.execute()
Example #32
0
def reverseLookups():
    """ returns reverse lookups for Types and Status """
    factory = DBConnect.getConnection()
    reqTypes = factory(classname='ReqTypes.Map').execute()
    reqStatus = factory(classname='ReqStatus.Map').execute()
    reverseTypes = {}
    [reverseTypes.__setitem__(v, k) for k, v in reqTypes.iteritems()]
    reverseStatus = {}
    [reverseStatus.__setitem__(v, k) for k, v in reqStatus.iteritems()]
    return reverseTypes, reverseStatus
Example #33
0
def reverseLookups():
    """ returns reverse lookups for Types and Status """
    factory = DBConnect.getConnection()
    reqTypes = factory(classname = 'ReqTypes.Map').execute()
    reqStatus = factory(classname = 'ReqStatus.Map').execute()
    reverseTypes = {}
    [ reverseTypes.__setitem__(v, k) for k, v in reqTypes.iteritems() ]
    reverseStatus = {}
    [ reverseStatus.__setitem__(v, k) for k, v in reqStatus.iteritems() ]
    return reverseTypes, reverseStatus
Example #34
0
def deleteGroup(groupName):
    """
    _deleteGroup_

    Delete the named group from the DB

    """
    factory = DBConnect.getConnection()
    groupRemover = factory(classname = "Group.Delete")
    result = groupRemover.execute(groupName)
    return result
Example #35
0
def listGroups():
    """
    _listGroups_

    return a list of known group names

    """
    factory = DBConnect.getConnection()
    groupId = factory(classname="Group.List")
    result = groupId.execute()
    return result
Example #36
0
def listRequestsByProdMgr(prodMgrName):
    """
    _listRequestsByProdMgr_

    List requests associated to a prodMgr

    """
    factory = DBConnect.getConnection()
    reqFind = factory(classname = "Request.FindByProdMgr")
    result = reqFind.execute(prodMgrName)
    return result
Example #37
0
def listUsers():
    """
    _listUsers_

    return a list of known user names

    """
    factory = DBConnect.getConnection()
    users = factory(classname = "Requestor.List")
    result = users.execute()
    return result
Example #38
0
def addGroup(groupName, priority=1):
    """
    _addGroup_

    Add a physics group with the name provided

    """
    factory = DBConnect.getConnection()
    groupAdd = factory(classname="Group.New")
    result = groupAdd.execute(groupName, priority)
    return result
Example #39
0
def addGroup(groupName, priority = 1):
    """
    _addGroup_

    Add a physics group with the name provided

    """
    factory = DBConnect.getConnection()
    groupAdd = factory(classname = "Group.New")
    result = groupAdd.execute(groupName, priority)
    return result
Example #40
0
def userInfo(hnUserName):
    """
    _userInfo_

    return a dict of information about the user

    """
    factory = DBConnect.getConnection()
    users = factory(classname = "Requestor.GetUserInfo")
    result = users.execute(hnUserName)
    return result
Example #41
0
def listGroups():
    """
    _listGroups_

    return a list of known group names

    """
    factory = DBConnect.getConnection()
    groupId = factory(classname = "Group.List")
    result = groupId.execute()
    return result
Example #42
0
def removeSoftware(softwareName, scramArch = None):
    """
    _removeSoftware_

    remove a software version from the database

    """
    factory = DBConnect.getConnection()
    removeSw = factory(classname = "Software.Delete")
    removeSw.execute(softwareName, scramArch = scramArch)
    return
Example #43
0
def listRequestsByStatus(statusName):
    """
    _listRequestsByStatus_

    Get a dict of request id/name pairs in the status provided

    """
    factory = DBConnect.getConnection()
    reqFind = factory(classname = "Request.FindByStatus")
    result = reqFind.execute(statusName)
    return result
Example #44
0
def getTeamID(teamName):
    """
    _getTeamID_

    Return the ID of the team if it exists, otherwise return None

    """
    factory = DBConnect.getConnection()
    teamId = factory(classname="Team.ID")
    result = teamId.execute(teamName)
    return result
Example #45
0
def setPriority(hnUsername, priority):
    """
    _setPriority_

    Sets user priority to the integer amount specified

    """
    factory = DBConnect.getConnection()
    userPriority = factory(classname="Requestor.SetPriority")
    result = userPriority.execute(hnUsername, priority)
    return result
Example #46
0
def associateCampaign(campaignName, requestID):
    factory = DBConnect.getConnection()
    campaignFind = factory(classname="Campaign.ID")
    campaignID = campaignFind.execute(campaignName)
    if campaignID == None or campaignID == []:
        add = factory(classname="Campaign.New")
        add.execute(campaignName)
        campaignID = campaignFind.execute(campaignName)
    add = factory(classname="Campaign.NewAssoc")
    result = add.execute(requestID, campaignID)
    return result
Example #47
0
def groupExists(groupName):
    """
    _groupExists_

    Return the ID of the group if it exists, otherwise return None

    """
    factory = DBConnect.getConnection()
    groupId = factory(classname="Group.ID")
    result = groupId.execute(groupName)
    return result
Example #48
0
def listRequestsByStatus(statusName):
    """
    _listRequestsByStatus_

    Get a dict of request id/name pairs in the status provided

    """
    factory = DBConnect.getConnection()
    reqFind = factory(classname = "Request.FindByStatus")
    result = reqFind.execute(statusName)
    return result
Example #49
0
def deleteRequest(requestName):
    """
    _deleteRequest_

    delete the request from the database by its RequestName
    """
    reqId = requestID(requestName)

    factory = DBConnect.getConnection()
    deleteReq = factory(classname="Request.Delete")
    deleteReq.execute(reqId)
Example #50
0
def groupExists(groupName):
    """
    _groupExists_

    Return the ID of the group if it exists, otherwise return None

    """
    factory = DBConnect.getConnection()
    groupId = factory(classname = "Group.ID")
    result = groupId.execute(groupName)
    return result
Example #51
0
def listRequests():
    """
    _listRequests_

    Get a list of all request name/id pairs and status in the DB

    """
    factory = DBConnect.getConnection()
    reqFind = factory(classname = "Request.Find")
    result = reqFind.execute()
    return result
Example #52
0
def userInfo(hnUserName):
    """
    _userInfo_

    return a dict of information about the user

    """
    factory = DBConnect.getConnection()
    users = factory(classname="Requestor.GetUserInfo")
    result = users.execute(hnUserName)
    return result
Example #53
0
def listRequestsByProdMgr(prodMgrName):
    """
    _listRequestsByProdMgr_

    List requests associated to a prodMgr

    """
    factory = DBConnect.getConnection()
    reqFind = factory(classname = "Request.FindByProdMgr")
    result = reqFind.execute(prodMgrName)
    return result
Example #54
0
def listRequests():
    """
    _listRequests_

    Get a list of all request name/id pairs and status in the DB

    """
    factory = DBConnect.getConnection()
    reqFind = factory(classname = "Request.Find")
    result = reqFind.execute()
    return result
Example #55
0
def listUsers():
    """
    _listUsers_

    return a list of known user names

    """
    factory = DBConnect.getConnection()
    users = factory(classname="Requestor.List")
    result = users.execute()
    return result
Example #56
0
def removeSoftware(softwareName, scramArch = None):
    """
    _removeSoftware_

    remove a software version from the database

    """
    factory = DBConnect.getConnection()
    removeSw = factory(classname = "Software.Delete")
    removeSw.execute(softwareName, scramArch = scramArch)
    return
Example #57
0
def getRequestAssignments(requestId):
    """
    _getRequestAssignments_

    Get the assignments to production teams for a request

    """
    factory = DBConnect.getConnection()
    getAssign = factory(classname = "Assignment.GetByRequest")
    result = getAssign.execute(requestId)
    return result
Example #58
0
def deleteGroup(groupName):
    """
    _deleteGroup_

    Delete the named group from the DB

    """
    factory = DBConnect.getConnection()
    groupRemover = factory(classname="Group.Delete")
    result = groupRemover.execute(groupName)
    return result
Example #59
0
def associateCampaign(campaignName, requestID):
    factory = DBConnect.getConnection()
    campaignFind = factory(classname = "Campaign.ID")
    campaignID = campaignFind.execute(campaignName)
    if campaignID == None or campaignID == []:
        add = factory(classname = "Campaign.New")
        add.execute(campaignName)
        campaignID = campaignFind.execute(campaignName)
    add = factory(classname = "Campaign.NewAssoc")
    result = add.execute(requestID, campaignID)
    return result
Example #60
0
def getRequestAssignments(requestId):
    """
    _getRequestAssignments_

    Get the assignments to production teams for a request

    """
    factory = DBConnect.getConnection()
    getAssign = factory(classname="Assignment.GetByRequest")
    result = getAssign.execute(requestId)
    return result