FTB charmtools.build.tactics: Missing implementation for interface role: requires.py

Bug #1846263 reported by Ryan Beisner on 2019-10-01
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Barbican Charm
Critical
Ryan Beisner

Bug Description

charm-barbican fails to build: charmtools.build.tactics: Missing implementation for interface role: requires.py

As observed on https://review.opendev.org/#/c/685810/:

https://openstack-ci-reports.ubuntu.com/artifacts/test_charm_pipeline_func_smoke/openstack/charm-barbican/685810/2/12581/consoleText.charm_build_31318.txt

charmtools.build.fetchers: Cleaning up /var/lib/jenkins/.cache/charm/31342/interface/tmpt3cjo7hu
build: Processing layer: layer:options
build: Processing layer: layer:basic
build: Processing layer: layer:openstack
build: Processing layer: layer:openstack-principle
build: Processing layer: layer:openstack-api
build: Processing layer: barbican (from src)
build: Processing interface: tls-certificates
build: Processing interface: mysql-shared
build: Processing interface: rabbitmq
build: Processing interface: keystone
build: Processing interface: hacluster
build: Processing interface: openstack-ha
build: Processing interface: barbican-hsm
build: Processing interface: barbican-secrets
charmtools.build.tactics: Missing implementation for interface role: requires.py
build: Traceback (most recent call last):
  File "/var/lib/jenkins/checkout/20/barbican/.tox/build/lib/python3.5/site-packages/charmtools/build/builder.py", line 941, in main
    build()
  File "/var/lib/jenkins/checkout/20/barbican/.tox/build/lib/python3.5/site-packages/charmtools/build/builder.py", line 649, in __call__
    self.generate()
  File "/var/lib/jenkins/checkout/20/barbican/.tox/build/lib/python3.5/site-packages/charmtools/build/builder.py", line 594, in generate
    self.exec_plan(self.plan, self.layers)
  File "/var/lib/jenkins/checkout/20/barbican/.tox/build/lib/python3.5/site-packages/charmtools/build/builder.py", line 561, in exec_plan
    raise BuildError()
charmtools.build.errors.BuildError

ERROR: InvocationError: '/var/lib/jenkins/checkout/20/barbican/.tox/build/bin/charm-build --log-level DEBUG -o /var/lib/jenkins/checkout/20/barbican/build src'

Ryan Beisner (1chb1n) wrote :

Aha. The barbican-hsm interface repo moved to opendev/x, which is why the build is failing now.

https://github.com/juju/layer-index/pull/90

Ryan Beisner (1chb1n) wrote :

Well, heck. That fixed that, but hilights a bug in charm-tools, that the notion of "fetchers" is limited to specific providers like github, launchpad, etc.:

charmtools.fetchers: git rev-parse HEAD: b'3fe523ffbd0a7c97685f37179bea3ce5ae70e7ae\n'
charmtools.build.fetchers: Copying /home/beisner/.cache/charm/17767/interface/tmp9c_1z0hu to /home/beisner/.cache/charm/17767/interface/openstack-ha
charmtools.build.fetchers: Cleaning up /home/beisner/.cache/charm/17767/interface/tmp9c_1z0hu
charmtools.build.fetchers: Checking layer index: https://juju.github.io/layer-index/interfaces/barbican-hsm.json
charmtools.build.fetchers: Found repo: https://opendev.org/x/charm-interface-barbican-hsm
build: Traceback (most recent call last):
  File "/home/beisner/git/release-tools.round6/barbican/.tox/build/lib/python3.7/site-packages/charmtools/build/builder.py", line 941, in main
    build()
  File "/home/beisner/git/release-tools.round6/barbican/.tox/build/lib/python3.7/site-packages/charmtools/build/builder.py", line 649, in __call__
    self.generate()
  File "/home/beisner/git/release-tools.round6/barbican/.tox/build/lib/python3.7/site-packages/charmtools/build/builder.py", line 592, in generate
    layers = self.fetch()
  File "/home/beisner/git/release-tools.round6/barbican/.tox/build/lib/python3.7/site-packages/charmtools/build/builder.py", line 273, in fetch
    return self.fetch_deps(self.top_layer)
  File "/home/beisner/git/release-tools.round6/barbican/.tox/build/lib/python3.7/site-packages/charmtools/build/builder.py", line 278, in fetch_deps
    self.fetch_dep(layer, results)
  File "/home/beisner/git/release-tools.round6/barbican/.tox/build/lib/python3.7/site-packages/charmtools/build/builder.py", line 307, in fetch_dep
    results["interfaces"].append(iface.fetch())
  File "/home/beisner/git/release-tools.round6/barbican/.tox/build/lib/python3.7/site-packages/charmtools/build/builder.py", line 100, in fetch
    self.directory = path(fetcher.fetch(self.target_repo))
  File "/home/beisner/git/release-tools.round6/barbican/.tox/build/lib/python3.7/site-packages/charmtools/build/fetchers.py", line 150, in fetch
    f, target = self._get_repo_fetcher_and_target(self.repo, dir_)
  File "/home/beisner/git/release-tools.round6/barbican/.tox/build/lib/python3.7/site-packages/charmtools/build/fetchers.py", line 143, in _get_repo_fetcher_and_target
    f = get_fetcher(repo)
  File "/home/beisner/git/release-tools.round6/barbican/.tox/build/lib/python3.7/site-packages/charmtools/fetchers.py", line 375, in get_fetcher
    raise FetchError('No fetcher for url: %s' % url)
charmtools.fetchers.FetchError: No fetcher for url: https://opendev.org/x/charm-interface-barbican-hsm

build: No fetcher for url: https://opendev.org/x/charm-interface-barbican-hsm
ERROR: InvocationError for command '/home/beisner/git/release-tools.round6/barbican/.tox/build/bin/charm-build --log-level DEBUG -o /home/beisner/git/release-tools.round6/barbican/build src' (exited with code 1)

Changed in charm-barbican:
assignee: nobody → Ryan Beisner (1chb1n)
status: New → Confirmed
importance: Undecided → Critical
milestone: none → 19.10
Ryan Beisner (1chb1n) wrote :

I've raised this to track @ charm-tools: https://github.com/juju/charm-tools/issues/552

And I will propose a git:// PR for layer-index to address it on the short term.

Ryan Beisner (1chb1n) wrote :

Actually, proposed adding an opendev fetcher in charmtools:
https://github.com/juju/charm-tools/pull/553

Ryan Beisner (1chb1n) on 2019-10-04
Changed in charm-barbican:
status: Confirmed → In Progress
David Ames (thedac) on 2019-10-24
Changed in charm-barbican:
milestone: 19.10 → 20.01
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.