示例#1
0
文件: __init__.py 项目: rmward61/CROP
def advanticsys_import(blobin: func.InputStream):
    """
    The main advanticsys Azure Function routine.

    """

    logging.info(f"Starting advanticsys sensor data import process:\n"
                 f"Name: {blobin.name}\n"
                 f"Blob Size: {blobin.length} bytes")

    # reading in data as pandas dataframe
    data_str = str(blobin.read(), "utf-8")
    data_stream = StringIO(data_str)
    data_df = pd.read_csv(data_stream)

    # getting the environmental parameters
    user = "******".format(os.environ["CROP_SQL_USER"].strip())
    password = "******".format(os.environ["CROP_SQL_PASS"].strip())
    host = "{}".format(os.environ["CROP_SQL_HOST"].strip())
    port = "{}".format(os.environ["CROP_SQL_PORT"].strip())
    database = "{}".format(os.environ["CROP_SQL_DBNAME"].strip())

    # uploading data to the database
    status, log = import_data(data_df, CONST_ADVANTICSYS, user, password, host,
                              port, database)

    # Logging the advanticsys sensor data upload event
    conn_string = make_conn_string(SQL_ENGINE, user, password, host, port)

    log_status, log_err = log_upload_event(CONST_ADVANTICSYS, blobin.name,
                                           status, log, conn_string)

    if status:

        logging.info(
            f"SUCCESS: advanticsys sensor data import process finished:\n"
            f"Name: {blobin.name}\n"
            f"Blob Size: {blobin.length} bytes\n"
            f"Info: {log}\n"
            f"Log: {log_status} {log_err}")

    else:

        logging.info(f"ERROR: advanticsys sensor data import process failed:\n"
                     f"Name: {blobin.name}\n"
                     f"Blob Size: {blobin.length} bytes\n"
                     f"Info: {log}\n"
                     f"Log: {log_status} {log_err}")
示例#2
0
文件: ingress.py 项目: rmward61/CROP
def import_data(pd_df, sensor_type, user, password, host, port, db_name):
    """
    This function will take the checked sensor data (pd_df)
    perform data checks and insert them into the db.
    -data: raw data from a sensor as a csv (or dataframe??)
    -sensor_type: type of sensor

    Parameters required to connect to the database:
    -user: my user name
    -password: my password
    -host: the host name of the server
    -port: the port number the server is listening on
    -db_name: my database name

    """

    connection_string = make_conn_string(SQL_ENGINE, user, password, host,
                                         port)

    # Try to connect to a database that exists
    success, log, engine = connect_db(connection_string, db_name)
    if not success:
        return success, log

    # Try to connect to a database that exists
    success, log, engine = connect_db(connection_string, db_name)
    if not success:
        return success, log

    # Creates/Opens a new connection to the db and binds the engine
    session = session_open(engine)

    if sensor_type == CONST_ADVANTICSYS:
        # load advanticsys sensor data to db
        success, log = insert_advanticsys_data(session, pd_df)
        if not success:
            return success, log

    #TODO: add the other types
    else:
        return False, "Sensor type des not exist"

    session_close(session)

    return True, log
示例#3
0
# Create connection string
SQL_ENGINE = "postgresql"
SQL_USER = os.environ["CROP_SQL_USER"]
SQL_PASSWORD = os.environ["CROP_SQL_PASS"]
SQL_HOST = os.environ["CROP_SQL_HOST"]
SQL_PORT = os.environ["CROP_SQL_PORT"]
SQL_DBNAME = os.environ["CROP_SQL_DBNAME"].strip().lower()
SQL_DEFAULT_DBNAME = "postgres"
SQL_SSLMODE = "require"

SQL_TEST_DBNAME = "test_db"

SQL_CONNECTION_STRING = make_conn_string(
    SQL_ENGINE,
    SQL_USER,
    SQL_PASSWORD,
    SQL_HOST,
    SQL_PORT,
)


SQL_CONNECTION_STRING = "%s://%s:%s@%s:%s" % (
    SQL_ENGINE,
    SQL_USER,
    SQL_PASSWORD,
    SQL_HOST,
    SQL_PORT,
)

SQL_CONNECTION_STRING_DEFAULT = "%s/%s" % (SQL_CONNECTION_STRING, SQL_DEFAULT_DBNAME)
SQL_CONNECTION_STRING_CROP = "%s/%s" % (SQL_CONNECTION_STRING, SQL_DBNAME)
示例#4
0
    os.environ["CROP_SQL_PORT"].strip() if "CROP_SQL_PORT" in os.environ else "DUMMY"
)
SQL_DBNAME = (
    os.environ["CROP_SQL_DBNAME"].strip().lower()
    if "CROP_SQL_DBNAME" in os.environ
    else "DUMMY"
)
SQL_DEFAULT_DBNAME = "postgres"
SQL_SSLMODE = "require"

SQL_TEST_DBNAME = "test_db"

SQL_CONNECTION_STRING = make_conn_string(
    SQL_ENGINE,
    SQL_USER,
    parse.quote(SQL_PASSWORD),
    SQL_HOST,
    SQL_PORT,
)


SQL_CONNECTION_STRING = "%s://%s:%s@%s:%s" % (
    SQL_ENGINE,
    SQL_USER,
    parse.quote(SQL_PASSWORD),
    SQL_HOST,
    SQL_PORT,
)

SQL_CONNECTION_STRING_DEFAULT = "%s/%s" % (SQL_CONNECTION_STRING, SQL_DEFAULT_DBNAME)
SQL_CONNECTION_STRING_CROP = "%s/%s" % (SQL_CONNECTION_STRING, SQL_DBNAME)