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)
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()