[BUG] Non-Comprehensive error message with incomplete metadata inputs for deploying community hub items
#75 创建于 2026年2月25日
仓库指标
- 星标
- (3 个星标)
- PR 合并指标
- (PR 指标待抓取)
描述
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