Source code for fastiot.env.env_mongodb

import os
from typing import Optional

from fastiot.cli.common.infrastructure_services import MongoDBService
from fastiot.env.env_constants_db import FASTIOT_MONGO_DB_HOST, FASTIOT_MONGO_DB_PORT, FASTIOT_MONGO_DB_USER, \
    FASTIOT_MONGO_DB_PASSWORD, FASTIOT_MONGO_DB_AUTH_SOURCE, FASTIOT_MONGO_DB_NAME, FASTIOT_MONGO_DB_MEM_LIMIT, \
    FASTIOT_MONGO_DB_TIME_SERIES_COL


[docs]class MongoDBEnv: """ Environment variables for mongodb :class:`fastiot.cli.common.infrastructure_services.MongoDBService` Use the properties from :func:`fastiot.env.env.env_mongodb` to read the values in an easy manner within your code. """ @property def host(self) -> str: """ .. envvar:: FASTIOT_MONGO_DB_HOST Use to get/set the mongo database host. This is usually either ``mongodb`` within the docker network or ``localhost`` when developing against a local mongodb. """ return os.getenv(FASTIOT_MONGO_DB_HOST, 'localhost') @property def port(self) -> int: """ .. envvar:: FASTIOT_MONGO_DB_PORT Use to get/set the mongodb port, defaults to 27017. """ return int(os.getenv(FASTIOT_MONGO_DB_PORT, MongoDBService().get_default_port())) @property def user(self) -> Optional[str]: """ .. envvar:: FASTIOT_MONGO_DB_USER Use to get/set the mongodb user. """ return os.getenv(FASTIOT_MONGO_DB_USER, MongoDBService().get_default_env(FASTIOT_MONGO_DB_USER)) @property def password(self) -> Optional[str]: """ .. envvar:: FASTIOT_MONGO_DB_PASSWORD Use to get/set the mongodb password. """ return os.getenv(FASTIOT_MONGO_DB_PASSWORD, MongoDBService().get_default_env(FASTIOT_MONGO_DB_PASSWORD)) @property def auth_source(self) -> Optional[str]: """ .. envvar:: FASTIOT_MONGO_DB_AUTH_SOURCE Use to get/set the mongodb auth source, which is a database name which is needed for authentication. """ return os.getenv(FASTIOT_MONGO_DB_AUTH_SOURCE, 'admin') @property def name(self) -> str: """ .. envvar:: FASTIOT_MONGO_DB_NAME Use to get/set the name of mongodb database. """ return os.getenv(FASTIOT_MONGO_DB_NAME, "fastiot") @property def mem_limit(self) -> str: return os.getenv(FASTIOT_MONGO_DB_MEM_LIMIT, "256m") @property def is_configured(self) -> bool: """ Use to indicate if the mongodb is configured, it is not bound to any environment variable """ if FASTIOT_MONGO_DB_HOST in os.environ: return True return False
[docs]class MongoDBColConstants: """ Environment variables for mongodb collection Use the properties from :func:`fastiot.env.env_mongodb_cols` to read the values in an easy manner within your code. """ @property def time_series(self) -> str: """ ..envvar:: FASTIOT_MONGO_DB_TIME_SERIES_COL """ return os.getenv(FASTIOT_MONGO_DB_TIME_SERIES_COL, 'time_series')