data-mie / dbt-cloud-cli

dbt Cloud command line interface (CLI)
Apache License 2.0
71 stars 9 forks source link

Descriptive error messages when environment variables are not defined #65

Closed stumelius closed 2 years ago

stumelius commented 2 years ago
>> docker run datamie/dbt-cloud-cli:latest account list
Traceback (most recent call last):
  File "/usr/local/bin/dbt-cloud", line 8, in <module>
    sys.exit(dbt_cloud())
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/dbt_cloud/cli.py", line 346, in list
    command = DbtCloudAccountListCommand.from_click_options(**kwargs)
  File "/usr/local/lib/python3.9/site-packages/dbt_cloud/command/command.py", line 87, in from_click_options
    return cls(**kwargs_translated)
  File "pydantic/main.py", line 339, in pydantic.main.BaseModel.__init__
  File "pydantic/main.py", line 1038, in pydantic.main.validate_model
  File "pydantic/fields.py", line 840, in pydantic.fields.ModelField.validate
  File "pydantic/fields.py", line 1121, in pydantic.fields.ModelField._apply_validators
  File "pydantic/class_validators.py", line 284, in pydantic.class_validators._generic_validator_cls.lambda5
  File "/usr/local/lib/python3.9/site-packages/dbt_cloud/command/command.py", line 80, in field_not_none
    return field.default_factory()
  File "/usr/local/lib/python3.9/site-packages/dbt_cloud/field.py", line 21, in <lambda>
    default_factory=lambda: os.environ["DBT_CLOUD_API_TOKEN"],
  File "/usr/local/lib/python3.9/os.py", line 679, in __getitem__
    raise KeyError(key) from None
KeyError: 'DBT_CLOUD_API_TOKE`N