[BUG] Non-Comprehensive error message with incomplete metadata inputs for deploying community hub items
- Dominant language
- Python
- Stars
- 3
- Forks
- 4
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 11
Description
### Affected Command
ewc deploy
### Describe the issue
When there is incomplete metadata for inputs to deploy community hub items there is no comprehensive error message:
Traceback (most recent call last):
File "/home/aerdmann/.local/bin/ewc", line 6, in
sys.exit(cli())
^^^^^
File "/home/aerdmann/.local/share/pipx/venvs/ewccli/lib/python3.12/site-packages/rich_click/rich_command.py", line 402, in __call__
return super().__call__(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/aerdmann/.local/share/pipx/venvs/ewccli/lib/python3.12/site-packages/click/core.py", line 1462, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/aerdmann/.local/share/pipx/venvs/ewccli/lib/python3.12/site-packages/rich_click/rich_command.py", line 216, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/home/aerdmann/.local/share/pipx/venvs/ewccli/lib/python3.12/site-packages/click/core.py", line 1850, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/aerdmann/.local/share/pipx/venvs/ewccli/lib/python3.12/site-packages/click/core.py", line 1850, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/aerdmann/.local/share/pipx/venvs/ewccli/lib/python3.12/site-packages/click/core.py", line 1246, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/aerdmann/.local/share/pipx/venvs/ewccli/lib/python3.12/site-packages/click/core.py", line 814, in invoke
return callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/aerdmann/.local/share/pipx/venvs/ewccli/lib/python3.12/site-packages/click/decorators.py", line 34, in new_func
return f(get_current_context(), *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/aerdmann/.local/share/pipx/venvs/ewccli/lib/python3.12/site-packages/ewccli/commands/hub/hub_command.py", line 579, in deploy_cmd
validation_message = validate_item_input_types(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/aerdmann/.local/share/pipx/venvs/ewccli/lib/python3.12/site-packages/ewccli/commands/hub/hub_command.py", line 188, in validate_item_input_types
type_expr = entry["type"]
~~~~~^^^^^^^^
KeyError: 'type'
Source of the issue: Missing "type" in the custom catalog
Command: ewc hub --path-to-catalog custom-catalog.yaml deploy ewc-xcube-viewer --security-groups ssh-http-https --item-inputs tenancy_name="internal-eumetsat-dataprocessing" --item-inputs federee="EUMETSAT"
### Steps to Reproduce
create custom catalog file:
apiVersion: communityhub.europeanweather.cloud/v1alpha1
kind: CommunityHubCatalog
spec:
items:
ewc-xcube-viewer:
name: "ewc-xcube-viewer"
version: "0.0.1"
description: |
Xcube Viewer for data visualization in the EWC Community Hub.
ewccli:
pathToMainFile: xcube-viewer-flavour.yml
externalIP: true
inputs:
- name: tenancy_name
description: "Tenancy name in the following format location-org-project"
type: str
default: ""
- name: federee
description: "Cloud in which your tenant is in. Either 'EUMETSAT' or 'ECMWF'."
type: str
default: ""
- name: xcube_env_wipe
description: flag to delete existing conda environment where xcube was previously installed. Only yes will be accepted to approve
type: str
default: "no"
- name: xcube_env_name
description: name of conda environment where xcube will be installed
type: str
default: "xcube"
- name: conda_installer
description: URI of the installer to use
type: str
default: "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh"
- name: conda_update_base
description: boolean to decide wether base environment needs updating
type: bool
default: false
- name: conda_prefix
description: prefix where conda will be installed
type: str
default: "/opt/conda"
- name: conda_user
description: user that will own the conda installation
type: str
default: "root"
- name: xcube_config_location
prompt: path of the config file for the xcube viewer. Press Enter to accept the default config file (demo)
private: false
type: str
default: "./templates/xcube-demo-config.yml"
values:
osImageName: ubuntu-24.04-20250604102601
pathToRequirementsFile: requirements.yml
pathToMainFile: xcube-viewer-flavour.yml
inputSpec:
- name: tenancy_name
description: "Tenancy name in the following format location-org-project"
type: str
- name: federee
description: "Cloud in which your tenant is in. Either 'EUMETSAT' or 'ECMWF'."
type: str
- name: xcube_env_wipe
description: flag to delete existing conda environment where xcube was previously installed. Only yes will be accepted to approve
type: str
default: "no"
- name: xcube_env_name
description: name of conda environment where xcube will be installed
type: str
default: "xcube"
- name: conda_installer
description: URI of the installer to use
type: str
default: "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh"
- name: conda_update_base
description: boolean to decide wether base environment needs updating
type: bool
default: false
- name: conda_prefix
description: prefix where conda will be installed
type: str
default: "/opt/conda"
- name: conda_user
description: user that will own the conda installation
type: str
default: "root"
- name: xcube_config_location
prompt: path of the config file for the xcube viewer. Press Enter to accept the default config file (demo)
private: false
type: str
default: "./templates/xcube-demo-config.yml"
home: dummy
sources:
- /home/aerdmann/ewc-ansible-playbook-xcube-viewer
maintainers:
- name: your name or your org
email: youremail
url: https://github.com/your-repo/issues
icon: https://raw.githubusercontent.com/ewcloud/ewc-community-hub/refs/heads/main/logos/EWCLogo.png
annotations:
technology: "Ansible Playbook"
category: ""
supportLevel: "Community"
licenseType: "Apache License 2.0"
others: "Deployable,EWCCLI-compatible"
displayName: My First EWC Community hub item is xcube
summary: My test item
license: https://github.com/your-repo/blob/main/LICENSE
published: true
run command: ewc hub --path-to-catalog custom-catalog.yaml deploy ewc-xcube-viewer --security-groups ssh-http-https --item-inputs tenancy_name="internal-eumetsat-dataprocessing" --item-inputs federee="EUMETSAT"
Note: install etc from repository
### Expected Behavior
_No response_
### Logs or Output
```shell
```
### Environment
Linux
### EWC CLI Version
main
Contributor guide
Assessment
This issue has not been assessed yet.