You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.5 KiB
65 lines
2.5 KiB
""" |
|
env_manager.py |
|
|
|
This script initializes a connection to an ArangoDB database and retrieves all documents from the 'enviroment' collection. |
|
It attempts to load environment variables from a .env file to get the ArangoDB password. If the .env file is not found, |
|
it prompts the user to input the password manually. It then connects to the ArangoDB instance using the provided credentials |
|
and returns the first document from the 'enviroment' collection. |
|
|
|
Modules: |
|
os: Provides a way of using operating system dependent functionality. |
|
arango: Provides a client for interacting with ArangoDB. |
|
dotenv: Loads environment variables from a .env file. |
|
|
|
Functions: |
|
get_env: Initializes a connection to an ArangoDB database and retrieves the first document from the 'enviroment' collection. |
|
|
|
Usage: |
|
Run this script to connect to the ArangoDB database and print the first document from the 'enviroment' collection. |
|
""" |
|
|
|
import os |
|
try: |
|
from arango import ArangoClient |
|
except ModuleNotFoundError: |
|
import subprocess |
|
subprocess.run(["pip", "install", "python-arango"]) |
|
from arango import ArangoClient |
|
try: |
|
from dotenv import load_dotenv |
|
except ModuleNotFoundError: |
|
import subprocess |
|
subprocess.run(["pip", "install", "python-dotenv"]) |
|
from dotenv import load_dotenv |
|
|
|
def get_env(): |
|
""" |
|
Initializes a connection to an ArangoDB database and retrieves all documents from the 'enviroment' collection. |
|
|
|
This function attempts to load environment variables from a .env file to get the ArangoDB password. If the .env file |
|
is not found, it prompts the user to input the password manually. It then connects to the ArangoDB instance using |
|
the provided credentials and returns the first document from the 'enviroment' collection. |
|
|
|
Returns: |
|
dict: The first document from the 'enviroment' collection in the ArangoDB database. |
|
|
|
Raises: |
|
FileNotFoundError: If the .env file is not found. |
|
KeyError: If the 'ARANGO_PWD_ENV_MANAGER' environment variable is not set. |
|
""" |
|
try: |
|
load_dotenv(".env") |
|
pwd = os.environ['ARANGO_PWD_ENV_MANAGER'] |
|
except FileNotFoundError: |
|
print("No .env file found.") |
|
pwd = input("Enter the ArangoDB password for the user 'env_manager': ") |
|
host ="https://arango.lasseedfast.se" |
|
username = "env_manager" |
|
db='div' |
|
|
|
# Initialize the database for ArangoDB. |
|
db = ArangoClient(hosts=host).db(db, username=username, password=pwd) |
|
return db.collection('enviroment').all().next() |
|
|
|
env = get_env() |
|
print(env) |