Hello, the powermax-cinder charm allows cinder to manage volumes with a Dell PowerMax storage system as the backend. From configuration to operations, it enables the end user to automate the deployment and the usage of Cinder with Dell PowerMax.
We would like to have this charm visible and searchable from Charmhub.
Post a link here if it can be publicly viewed, or if you’d prefer it wasn’t, then email a link (or share in some other way) to me (tony.meyer@canonical.com). Thanks!
The README has a link to https://bugs.launchpad.net/charm-cinder-powermax/+filebug, which doesn’t work for me.
metadata.yaml has a docs link (to the README), which I think is sufficient for this charm, but this doesn’t show up on Charmhub. I’m not sure if this is because it was added since the latest published release or something else. If there has been a release since it was added, then maybe you need to have it in the documentation field in charmcraft.yaml now. If there hasn’t been a release, could you do one (to edge, for example)?
The “build and test” workflow has a typo - it references “tests.yml” rather than “tests.yaml”, so it doesn’t run successfully.
Once I can see the video I can tick off the first item, and for the integration tests I’ve been asked to find some Zaza docs, so I’ll try to do that now.
Review item
Objective
Review criteria
Review comment
Intended functionality
Despite all the items for publication readiness, the charm must work.
Charm does what it is meant to do - ideally done in a demo.
A complete and consistent appearance of the charm is required for a quality impression of the charm collection.
The overall appearance looks good, which means: * The name complies with the naming guidelines. * The publisher is identified. * The links are provided. * The documentation looks reasonable.
Source repository
Generally, the source code for charms must be accessible by the community for transparency and collaboration.
It is not entirely mandatory to have the charm published as OSS for review, but the repository must be accessible from the persons working on the review request.
Coding conventions
The source code of the charm is accessible in the sense of approachability. Consistent source code style and formatting are also considered a sign of being committed to quality.
The implemented checks for coding conventions are reasonable and implemented in the regular CI/CD implementation.
Release automation implementation
An implementation for automated releasing to charmhub.io improves the ability to provide updates covering vulnerabilities quickly.
Release automation for unstable channels to enable testing when new versions of the charm code or the workload become available.
Unit tests implementation
In particular, for the charms review, assuring a reasonable test suite is essential to allow for automated releases in future.
The unit tests show relevant coverage. It is a case-dependent review.At the time of review, the test runs successfully.
Unit tests results
Availability of test results is mandatory for a working collaborative project.
URL to test results from CI/CD automation.
Installation test implemented (could be part of the integration test)
In particular, for the charm review, assuring a reasonable test suite is essential to allow for automated releases in future. With this test, for every build, it is ensured that the installation is successful.
An implementation for checking the installation is present. The implementation should also check for successful installation as part of the automation, and the workload behaves as expected. At the time of review, the test runs successfully.
Installation test results
Availability of test results is mandatory for a working collaborative project.
URL to test results from CI/CD automation.
Integration tests implemented
In particular for the review of charms, assuring a reasonable test suite is important to allow for automated releases in future. With this test, for every build, it is ensured that the integration with other charms is successful.
An implementation for testing the required integrations (if applicable) is present. The implementation should also check for successful integration as part of he automation and the workload behaves as expected. At the time of review, the test runs successfully.
Integration test results
Availability of test results is mandatory for a working collaborative project.
URL to test results from CI/CD automation.
Documentation for usage
The documentation for using the charm should be separate from the documentation for developing or contributing to the charm.
URL to this documentation is present.
Documentation for contributing
The documentation for contributing to the charm should be separate from the documentation for developing or using the charm.
URL to this documentation is present.
Licensing statement
For the charm shared, OSS or not, the licensing terms of the charm are clarified (which also implies an identified authorship of the charm).
I have fixed the link issue and added documentation link to the charmcraft.yaml file.
I tried to publish to edge but it looks like charmcraft is unable to pack the charm anymore.
here’s the log from the publish workflow:
Run canonical/charming-actions/upload-charm@2.6.2
with:
charmcraft-channel: 3.x/stable
credentials: ***
github-token: ***
channel: latest/edge
destructive-mode: true
charm-path: .
upload-image: true
pull-image: true
github-tag: true
/usr/bin/sudo snap install charmcraft --classic --channel 3.x/stable
charmcraft (3.x/stable) 3.5.3 from Canonical** installed
/usr/bin/sudo charmcraft pack --quiet --destructive-mode
Failed to run the build script for part 'charm'.
Recommended resolution: Check the build output and verify the project can work with the 'charm' plugin.
For more information, check out: https://canonical-charmcraft.readthedocs-hosted.com/en/3.5.3/reference/plugins/
Full execution log: '/root/.local/state/charmcraft/log/charmcraft-20250911-085111.980422.log'
Error: The process '/usr/bin/sudo' failed with exit code 1
Error: Error: The process '/usr/bin/sudo' failed with exit code 1
at ExecState._setResult (/home/runner/work/_actions/canonical/charming-actions/2.6.2/dist/upload-charm/index.js:3950:25)
at ExecState.CheckComplete (/home/runner/work/_actions/canonical/charming-actions/2.6.2/dist/upload-charm/index.js:3933:18)
at ChildProcess.<anonymous> (/home/runner/work/_actions/canonical/charming-actions/2.6.2/dist/upload-charm/index.js:3827:27)
at ChildProcess.emit (node:events:524:28)
at maybeClose (node:internal/child_process:1104:16)
at ChildProcess._handle.onexit (node:internal/child_process:304:5)
/usr/bin/sudo test -d /root/snap/charmcraft/common/cache/charmcraft/log
No charmcraft logs generated, skipping artifact upload.
I have noticed some errors related to pip librairies.
Collecting lxml (from zaza.openstack->-r requirements.txt (line 4))
:: :: Downloading lxml-6.0.1.tar.gz (4.1 MB)
:: :: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.1/4.1 MB 151.6 MB/s eta 0:00:00
:: :: Installing build dependencies: started
:: :: Installing build dependencies: finished with status 'done'
:: :: Getting requirements to build wheel: started
:: :: Getting requirements to build wheel: finished with status 'error'
:: :: error: subprocess-exited-with-error
:: ::
:: :: × Getting requirements to build wheel did not run successfully.
:: :: │ exit code: 1
:: :: ╰─> [3 lines of output]
:: :: Building lxml version 6.0.1.
:: :: Building without Cython.
:: :: Error: Please make sure the libxml2 and libxslt development packages are installed.
:: :: [end of output]
:: ::
:: :: note: This error originates from a subprocess, and is likely not a problem with pip.
:: :: error: subprocess-exited-with-error
:: ::
:: :: × Getting requirements to build wheel did not run successfully.
:: :: │ exit code: 1
:: :: ╰─> See above for output.
:: ::
:: :: note: This error originates from a subprocess, and is likely not a problem with pip.
:: ::
Notice: :: :: [notice] A new release of pip is available: 24.1.1 -> 25.2
Notice: :: :: [notice] To update, run: python3 -m pip install --upgrade pip
:: Traceback (most recent call last):
:: File "/snap/charmcraft/7286/lib/python3.10/site-packages/charmcraft/charm_builder.py", line 499, in <module>
:: main()
:: File "/snap/charmcraft/7286/lib/python3.10/site-packages/charmcraft/charm_builder.py", line 494, in main
:: builder.build_charm()
:: File "/snap/charmcraft/7286/lib/python3.10/site-packages/charmcraft/charm_builder.py", line 95, in build_charm
:: self.handle_dependencies()
:: File "/snap/charmcraft/7286/lib/python3.10/site-packages/charmcraft/charm_builder.py", line 368, in handle_dependencies
:: self._install_dependencies(staging_venv_dir)
:: File "/snap/charmcraft/7286/lib/python3.10/site-packages/charmcraft/instrum.py", line 152, in _f
:: return func(*args, **kwargs)
:: File "/snap/charmcraft/7286/lib/python3.10/site-packages/charmcraft/charm_builder.py", line 298, in _install_dependencies
:: _process_run(
:: File "/snap/charmcraft/7286/lib/python3.10/site-packages/charmcraft/charm_builder.py", line 428, in _process_run
:: raise RuntimeError(
:: RuntimeError: Subprocess command ['/root/parts/charm/build/staging-venv/bin/pip', 'install', '--no-binary=:all:', '--requirement=requirements.txt'] execution failed with retcode 1
Failed to run the build script for part 'charm'.
Detailed information:
:: + env -i LANG=C.UTF-8 LC_ALL=C.UTF-8 CRYPTOGRAPHY_OPENSSL_NO_LEGACY=true PIP_CONSTRAINT=/snap/charmcraft/7286/lib/python3.10/site-packages/charmcraft/parts/plugins/charm-constraints.txt PATH=/snap/charmcraft/7286/libexec/charmcraft:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SNAP=/snap/charmcraft/7286 SNAP_ARCH=amd64 SNAP_NAME=charmcraft SNAP_VERSION=3.5.3 /snap/charmcraft/7286/bin/python3 -u -I /snap/charmcraft/7286/lib/python3.10/site-packages/charmcraft/charm_builder.py --builddir /root/parts/charm/build --installdir /root/parts/charm/install --entrypoint /root/parts/charm/build/src/charm.py -p pip -p wheel -p setuptools -r requirements.txt
:: Traceback (most recent call last):
:: File "/snap/charmcraft/7286/lib/python3.10/site-packages/charmcraft/charm_builder.py", line 499, in <module>
:: main()
:: File "/snap/charmcraft/7286/lib/python3.10/site-packages/charmcraft/charm_builder.py", line 494, in main
:: builder.build_charm()
:: File "/snap/charmcraft/7286/lib/python3.10/site-packages/charmcraft/charm_builder.py", line 95, in build_charm
:: self.handle_dependencies()
:: File "/snap/charmcraft/7286/lib/python3.10/site-packages/charmcraft/charm_builder.py", line 368, in handle_dependencies
:: self._install_dependencies(staging_venv_dir)
:: File "/snap/charmcraft/7286/lib/python3.10/site-packages/charmcraft/instrum.py", line 152, in _f
:: return func(*args, **kwargs)
:: File "/snap/charmcraft/7286/lib/python3.10/site-packages/charmcraft/charm_builder.py", line 298, in _install_dependencies
:: _process_run(
:: File "/snap/charmcraft/7286/lib/python3.10/site-packages/charmcraft/charm_builder.py", line 428, in _process_run
:: raise RuntimeError(
:: RuntimeError: Subprocess command ['/root/parts/charm/build/staging-venv/bin/pip', 'install', '--no-binary=:all:', '--requirement=requirements.txt'] execution failed with retcode 1
The packing issue is because the Zaza packages have been added to the charm’s requirements.txt. Zaza is generally (and specifically here, from what I can tell) used only for testing, so shouldn’t be needed in requirements.txt, which is for run-time dependencies (it’s already in the test-requirements.txt file.
It is possible to get Zaza (and all the things it brings with it) to build into the charm, but I don’t think there’s any reason to do this. So you should be able to fix that by just removing these from the requirements list:
I assume the issue with providing a demo is related to the email thread about deploying? I’ll see if I can encourage the Juju team to get to that ticket - unfortunately, it’s outside anything I can directly do.
I think Canonical’s email will allow incoming attachments up to 50 MB so you might be able to email that. Or here’s a Google Drive folder that you should be able to upload to. If neither of those work, I could give you a WhatsApp number to send it to? (I think the limited there is in GB).
Perfect, thanks! I appreciate the nice background music too
So just the install/integration test automation. I think I’m meant to provide info on running Zaza here, right? I didn’t hear back from people about that. I’ll see if I can figure that out tonight/tomorrow.
I’ve failed to get more information about Zaza and integration testing within the OpenStack side of charming. I have an in-person meeting about this in a couple of weeks, but I don’t think we should block this longer. I think this is fine for listing now, and I’ll circle back on integration testing on these charms once I have a better story.
@superalpaca could you please turn on public listing for cinder-powermax, and also transfer ownership to dell-openstack? Thanks!