ewcloud/ewccli

[BUG] Non-Comprehensive error message with incomplete metadata inputs for deploying community hub items

Open

#75 opened on Feb 25, 2026

 (1 comment) (0 reactions) (0 assignees)Python (4 forks)auto 404
buggood first issue

Repository metrics

Stars
 (3 stars)
PR merge metrics
 (PR metrics pending)

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

Environment

Linux

EWC CLI Version

main

Contributor guide