esunar / test4

GNU General Public License v3.0
0 stars 0 forks source link

juju-lint fails if charmstore namespace contains '.' #228

Closed esunar closed 1 year ago

esunar commented 1 year ago

Hi all,

I could not find charm store namespace naming convention description, so filing that as a juju-lint issue.

$ juju-lint -c /snap/juju-lint/current/contrib/canonical-rules.yaml k8s-1-status.yaml 2021-06-30 22:16:33 [INFO] juju-lint version 1.0.2.dev23+ge8b686b starting...

2021-06-30 22:16:33 [INFO] [k8s-1-status.yaml] Linting manual file... Traceback (most recent call last): File "/snap/juju-lint/30/bin/juju-lint", line 33, in sys.exit(load_entry_point('jujulint==1.0.2.dev23+ge8b686b', 'console_scripts', 'juju-lint')()) File "/snap/juju-lint/30/lib/python3.6/site-packages/jujulint/cli.py", line 149, in main cli.audit_file(manual_file) File "/snap/juju-lint/30/lib/python3.6/site-packages/jujulint/cli.py", line 77, in audit_file linter.lint_yaml_file(filename) File "/snap/juju-lint/30/lib/python3.6/site-packages/jujulint/lint.py", line 881, in lint_yaml_file return self.do_lint(parsed_yaml) File "/snap/juju-lint/30/lib/python3.6/site-packages/jujulint/lint.py", line 894, in do_lint self.map_charms(parsed_yaml[applications]) File "/snap/juju-lint/30/lib/python3.6/site-packages/jujulint/lint.py", line 694, in map_charms charm_name = extract_charm_name(applications[app]["charm"]) File "/snap/juju-lint/30/lib/python3.6/site-packages/jujulint/util.py", line 55, in extract_charm_name "charm name '{}' is invalid".format(charm) jujulint.util.InvalidCharmNameError: charm name 'cs:~nikolay.vinogradov/layer-calico-1' is invalid

If we remove a '.', then the regexp (https://git.launchpad.net/juju-lint/tree/jujulint/util.py#n51) succceds:

match = re.match( ... r"^(?:\w+:)?(?:~[\w-]+/)?(?:\w+/)?([a-zA-Z0-9-]+?)(?:-\d+)?$", 'cs:~nikolayvinogradov/layer-calico-1' ... ) match <re.Match object; span=(0, 36), match='cs:~nikolayvinogradov/layer-calico-1'>

https://jaas.ai/u/nikolay.vinogradov/layer-calico/1 => charm store doesn't think that the charm name is invalid.


Imported from Launchpad using lp2gh.