Factor out pydantic.
This commit is contained in:
@@ -2,6 +2,7 @@ import pathlib
|
||||
|
||||
from iottb import definitions
|
||||
from iottb.definitions import DEVICE_METADATA_FILE, ReturnCodes
|
||||
from iottb.logger import logger
|
||||
from iottb.models.device_metadata_model import DeviceMetadata
|
||||
from iottb.utils.device_metadata_utils import *
|
||||
|
||||
@@ -16,14 +17,15 @@ def setup_init_device_root_parser(subparsers):
|
||||
|
||||
|
||||
def handle_add(args):
|
||||
print("Entered add-device-root")
|
||||
logger.info(f"Add device handler called with args {args}")
|
||||
|
||||
if args.guided:
|
||||
logger.debug("Guided setup")
|
||||
metadata = guided_setup(args.root_dir)
|
||||
else:
|
||||
logger.debug("Setup through passed args: setup")
|
||||
device_name = args.name
|
||||
args.root_dir.mkdir(parents=True, exist_ok=True)
|
||||
args.root_dir.chdir()
|
||||
metadata = DeviceMetadata(device_name, args.root_dir)
|
||||
|
||||
file_path = args.root_dir / DEVICE_METADATA_FILE
|
||||
@@ -31,7 +33,7 @@ def handle_add(args):
|
||||
if response.lower() not in definitions.AFFIRMATIVE_USER_RESPONSE.add(""):
|
||||
configure_metadata()
|
||||
assert False, "TODO implement dynamic setup"
|
||||
assert metadata.model_dump() != ""
|
||||
|
||||
if metadata.save_to_json(file_path) == ReturnCodes.FILE_ALREADY_EXISTS:
|
||||
print("Directory already contains a device metadata file. Aborting operation.")
|
||||
return ReturnCodes.ABORTED
|
||||
@@ -44,16 +46,17 @@ def configure_metadata():
|
||||
|
||||
|
||||
def guided_setup(device_root) -> DeviceMetadata:
|
||||
logger.info("Guided setup")
|
||||
response = "N"
|
||||
device_name = ""
|
||||
while response.upper() == "N":
|
||||
device_name = input("Please enter name of device: ")
|
||||
response = input(f"Confirm device name: {device_name} [y/N] ")
|
||||
if device_name == "" or device_name is None:
|
||||
print("Name cannot be empty")
|
||||
response = input(f"Confirm device name: {device_name} [y/N] ")
|
||||
logger.warning("Name cannot be empty")
|
||||
logger.debug(f"Response is {response}")
|
||||
logger.debug(f"Device name is {device_name}")
|
||||
|
||||
assert response.lower() in definitions.AFFIRMATIVE_USER_RESPONSE.add(""), f"{response.upper()} not supported"
|
||||
assert device_name != ""
|
||||
assert device_name is not None
|
||||
return DeviceMetadata(device_name, device_root)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user