def make_request(connection, email_address, galaxy_ids, features, layers, pixel_types): """ Makes a request in the database for the provided galaxies. :param connection: The database connection :param email_address: The email address requesting the galaxies :param galaxy_ids: The database IDs of the galaxies :param features: The features of the galaxies to request :param layers: The layers of the galaxies to request :param pixel_types: The pixel types of the galaxies to request :return: """ # Make some new DB entries for these galaxies transaction = connection.begin() try: LOG.info("Making HDF5_REQUEST entry...") result = connection.execute(HDF5_REQUEST.insert(), profile_id=0, email=email_address, created_at=datetime.datetime.utcnow()) LOG.info("Making features, layers, pixel types entries...") insert_features_layers_pixel_types_db_ids(connection, result.inserted_primary_key, features, layers, pixel_types) LOG.info("Making galaxy entries...") for galaxy in galaxy_ids: # We already checked to ensure these are valid, so throw em in. connection.execute(HDF5_REQUEST_GALAXY.insert(), hdf5_request_id=result.inserted_primary_key, galaxy_id=galaxy) transaction.commit() except: transaction.rollback() raise
def make_request(connection, email_address, galaxy_ids, features, layers, pixel_types): """ Makes a request in the database for the provided galaxies. :param connection: The database connection :param email_address: The email address requesting the galaxies :param galaxy_ids: The database IDs of the galaxies :param features: The features of the galaxies to request :param layers: The layers of the galaxies to request :param pixel_types: The pixel types of the galaxies to request :return: """ # Make some new DB entries for these galaxies transaction = connection.begin() try: LOG.info("Making HDF5_REQUEST entry...") result = connection.execute(HDF5_REQUEST.insert(), profile_id=0, email=email_address, created_at=datetime.datetime.utcnow()) LOG.info("Making features, layers, pixel types entries...") insert_features_layers_pixel_types_db_ids(connection, result.inserted_primary_key, features, layers, pixel_types) LOG.info("Making galaxy entries...") for galaxy in galaxy_ids: # We already checked to ensure these are valid, so throw em in. connection.execute(HDF5_REQUEST_GALAXY.insert(), hdf5_request_id=result.inserted_primary_key, galaxy_id=galaxy) transaction.commit() except: transaction.rollback() raise
features, layers, pixel_types = get_features_and_layers_pixeltypes_cmd_line( args) if len(features) == 0 or len(layers) == 0: parser.print_help() exit(1) # Create a new request # Need to make: # HDF5_request # HDF5_request_feature # HDF5_request_galaxy # HDF5_request_layer # HDF5_request_pixel transaction = connection.begin() result = connection.execute(HDF5_REQUEST.insert(), profile_id=47016, email=args['email'], created_at=time.time()) connection.execute(HDF5_REQUEST_GALAXY.insert(), hdf5_request_id=result.inserted_primary_key, galaxy_id=args['galaxy_id']) for pixel_type in pixel_types: connection.execute(HDF5_REQUEST_PIXEL_TYPE.insert(), hdf5_request_id=result.inserted_primary_key, hdf5_pixel_type_id=pixel_type + 1) # database entries start at 1 for layer in layers:
connection = engine.connect() features, layers, pixel_types = get_features_and_layers_pixeltypes_cmd_line(args) if len(features) == 0 or len(layers) == 0: parser.print_help() exit(1) # Create a new request # Need to make: # HDF5_request # HDF5_request_feature # HDF5_request_galaxy # HDF5_request_layer # HDF5_request_pixel transaction = connection.begin() result = connection.execute(HDF5_REQUEST.insert(), profile_id=47016, email=args['email'], created_at=time.time()) connection.execute(HDF5_REQUEST_GALAXY.insert(), hdf5_request_id=result.inserted_primary_key, galaxy_id=args['galaxy_id']) for pixel_type in pixel_types: connection.execute(HDF5_REQUEST_PIXEL_TYPE.insert(), hdf5_request_id=result.inserted_primary_key, hdf5_pixel_type_id=pixel_type+1) # database entries start at 1 for layer in layers: connection.execute(HDF5_REQUEST_LAYER.insert(), hdf5_request_id=result.inserted_primary_key, hdf5_layer_id=LAYERS[layer]+1) for feature in features: connection.execute(HDF5_REQUEST_FEATURE.insert(), hdf5_request_id=result.inserted_primary_key, hdf5_feature_id=FEATURES[feature]+1) transaction.commit() LOG.info('All done') connection.close()