Source code for fastiot.env.env_influxdb

import os

from fastiot.cli.common.infrastructure_services import InfluxDBService
from fastiot.env.env_constants_db import FASTIOT_INFLUX_DB_HOST, FASTIOT_INFLUX_DB_PORT, FASTIOT_INFLUX_DB_USER, \
    FASTIOT_INFLUX_DB_PASSWORD, FASTIOT_INFLUX_DB_ORG, FASTIOT_INFLUX_DB_BUCKET, FASTIOT_INFLUX_DB_TOKEN


[docs]class InfluxDBEnv: """ Environment variables for influxdb :class:`fastiot.cli.common.infrastructure_services.InfluxDBService` Use the properties from :func:`fastiot.env.env.env_influxdb` to read the values in an easy manner within your code. For connecting to InfluxDB, which is started with a token, you only need host, port and token. username and password are used for browser GUI. """ @property def host(self) -> str: """ .. envvar:: FASTIOT_INFLUX_DB_HOST Use to get/set the influx database host. This is usually either ``influxdb`` within the docker network or ``localhost`` when developing against a local influxdb. """ return os.getenv(FASTIOT_INFLUX_DB_HOST, 'localhost') @property def port(self) -> int: """ .. envvar:: FASTIOT_INFLUX_DB_PORT Use to get/set the influxdb port, defaults to 8086. """ return int(os.getenv(FASTIOT_INFLUX_DB_PORT, InfluxDBService().get_default_port())) @property def user(self) -> str: """ .. envvar:: FASTIOT_INFLUX_DB_USER Use to get/set the influxdb username, default to 'influx_db_admin'. This env var is only used for browser login, not for connecting from fastiot framework. """ return str(os.getenv(FASTIOT_INFLUX_DB_USER, 'influx_db_admin')) @property def password(self) -> str: """ .. envvar:: FASTIOT_INFLUX_DB_PASSWORD Use to get/set the influxdb password, default to 'mf9ZXfeLKuaL3HL7w'. This env var is only used for browser login, not for connecting from fastiot framework. password for InfluxDB must be complex, otherwise InfluxDB won't be started. """ return str(os.getenv(FASTIOT_INFLUX_DB_PASSWORD, InfluxDBService().get_default_env(FASTIOT_INFLUX_DB_PASSWORD))) @property def token(self) -> str: """.. envvar:: FASTIOT_INFLUX_DB_TOKEN InfluxDB API token with permission to query (read) buckets and create (write) authorizations for devices """ return os.getenv(FASTIOT_INFLUX_DB_TOKEN, InfluxDBService().get_default_env(FASTIOT_INFLUX_DB_TOKEN)) @property def organisation(self) -> str: """ .. envvar:: FASTIOT_INFLUX_DB_ORG Set the organisation for InfluxDB, defaults to ``FastIoT`` if not set. """ return os.environ.get(FASTIOT_INFLUX_DB_ORG, InfluxDBService().get_default_env(FASTIOT_INFLUX_DB_ORG)) @property def bucket(self) -> str: """ .. envvar:: FASTIOT_INFLUX_DB_BUCKET Set the bucket for InfluxDB to store data, defaults to ``things`` if not set. """ return os.environ.get(FASTIOT_INFLUX_DB_BUCKET, InfluxDBService().get_default_env(FASTIOT_INFLUX_DB_BUCKET))