示例#1
0
def main(args):
    psr_id = utils.get_pulsarid(args.psrname)
    if args.remove_all:
        clear_curators(psr_id)
    else:
        to_add_ids = [utils.get_userid(username) for username in \
                            args.to_add]
        if args.add_wild:
            to_add_ids.append(None)

        to_rm_ids = [utils.get_userid(username) for username in \
                            args.to_remove]
        if args.remove_wild:
            to_rm_ids.append(None)
        update_curators(psr_id, to_add_ids, to_rm_ids)
示例#2
0
def rename_pulsar(oldname, newname, existdb=None):
    """Rename pulsar DB entry. An error is raised if the
        renaming in invalid.

        Inputs:
            oldname: The old name of the pulsar entry.
            newname: The proposed new name of the entry.
            existdb: A (optional) existing database connection object.
                (Default: Establish a db connection)

        Ouputs:
            None
    """
    db = existdb or database.Database()
    db.connect()
    # Get the pulsar_id of the entry to rename
    pulsar_id = utils.get_pulsarid(oldname)
    trans = db.begin()
    try:
        # Check if the new name is valid
        check_new_name(pulsar_id, newname)

        # Rename the pulsar entry
        values = {'pulsar_name': newname}
        update = db.pulsars.update().\
                where(db.pulsars.c.pulsar_id == pulsar_id)
        results = db.execute(update, values)
        results.close()

        if newname not in utils.get_pulsarid_cache().keys():
            # Add newname to pulsar_aliases table
            ins = db.pulsar_aliases.insert()
            values = {'pulsar_id':pulsar_id, \
                        'pulsar_alias':newname}
            result = db.execute(ins, values)
            result.close()
    except:
        db.rollback()
        raise
    else:
        db.commit()
    finally:
        if not existdb:
            db.close()