Hello,
Just wrote my first tactic and I’m experiencing an issue. The issue is that I cannot build my charm without including the wheelhouse tactic in my charm.
Running make build
in my layer shows (layer.yaml)
bdx@devdev:~/allcode/charms/layers/layer-elastic-operator$ make build
rm -rf .tox/
rm -rf build/
rm -rf charm-store-push-result.txt
tox -e build
build create: /home/bdx/allcode/charms/layers/layer-elastic-operator/.tox/build
build installdeps: -r/home/bdx/allcode/charms/layers/layer-elastic-operator/test-requirements.txt
build installed: atomicwrites==1.3.0,attrs==19.2.0,entrypoints==0.3,filelock==3.0.12,flake8==3.7.8,importlib-metadata==0.23,mccabe==0.6.1,more-itertools==7.2.0,packaging==19.2,pep8==1.7.1,pkg-resources==0.0.0,pluggy==0.13.0,py==1.8.0,pycodestyle==2.5.0,pyflakes==2.1.1,pyparsing==2.4.2,pytest==5.2.0,six==1.12.0,toml==0.10.0,tox==3.14.0,virtualenv==16.7.5,wcwidth==0.1.7,yapf==0.28.0,zipp==0.6.0
build runtests: PYTHONHASHSEED='0'
build runtests: commands[0] | sh -c snap list charm 2>/dev/null || sudo snap install charm --classic
Name Version Rev Tracking Publisher Notes
charm 2.7.1 390 stable johnsca classic
build runtests: commands[1] | charm build --log-level DEBUG -o /home/bdx/allcode/charms/layers/layer-elastic-operator/build src
build: {
"CHARM_BUILD_DIR": null,
"CHARM_INTERFACES_DIR": "/home/bdx/allcode/charms/layers/layer-elastic-operator/interfaces",
"CHARM_LAYERS_DIR": "/home/bdx/allcode/charms/layers/layer-elastic-operator/layers",
"INTERFACE_PATH": null,
"JUJU_REPOSITORY": "/home/bdx/allcode/charms/layers/layer-elastic-operator/build",
"LAYER_PATH": null,
"_charm": "src",
"_charm_metadata": {
"description": "Elastic.co K8S operator.\n",
"display-name": "elastic-operator",
"maintainers": [
"Omnivector Solutions <admin@omnivector.solutions>"
],
"name": "elastic-operator",
"resources": {
"elastic_operator_image": {
"description": "Elastic operator image.",
"type": "oci-image"
}
},
"series": [
"kubernetes"
],
"storage": {
"cert": {
"location": "/tmp/cert",
"type": "filesystem"
}
},
"summary": "Elastic Operator",
"tags": [
"elastic",
"elastic.co"
]
},
"_name": null,
"_top_layer": null,
"_warned_home": false,
"build_dir": "/home/bdx/allcode/charms/layers/layer-elastic-operator/build/builds",
"cache_dir": "/home/bdx/.cache/charm/27022",
"config": "BuildConfig({'_tactics': [], 'configured': False})",
"debug": false,
"description": false,
"force": false,
"force_color": false,
"hide_metrics": false,
"interface_service": null,
"layer_index": null,
"log_level": "DEBUG",
"no_local_layers": false,
"output_dir": "/home/bdx/allcode/charms/layers/layer-elastic-operator/build",
"report": false,
"series": null,
"verbose": false,
"wheelhouse_overrides": null
}
charmtools.fetchers: git rev-parse HEAD: b'4ddd74e05e0eff93ffaa7a4763a91b2b09a860ea\n'
build: Destination charm directory: /home/bdx/allcode/charms/layers/layer-elastic-operator/build/builds/elastic-operator
charmtools.build.fetchers: Checking layer index: https://juju.github.io/layer-index/layers/caas-base.json
charmtools.build.fetchers: Found repo: https://github.com/juju-solutions/layer-caas-base.git
charmtools.fetchers: git clone https://github.com/juju-solutions/layer-caas-base.git /home/bdx/.cache/charm/27022/layer/tmps9oqkmm6: b"Cloning into '/home/bdx/.cache/charm/27022/layer/tmps9oqkmm6'...\nwarning: templates not found /snap/charm/390/share/git-core/templates\n"
charmtools.fetchers: git rev-parse HEAD: b'fac96d3e2cc3b67fd450985800377643e8e13c73\n'
charmtools.build.fetchers: Copying /home/bdx/.cache/charm/27022/layer/tmps9oqkmm6 to /home/bdx/.cache/charm/27022/layer/caas-base
charmtools.build.fetchers: Cleaning up /home/bdx/.cache/charm/27022/layer/tmps9oqkmm6
Traceback (most recent call last):
File "/snap/charm/390/bin/charm-build", line 11, in <module>
load_entry_point('charm-tools==2.7.1', 'console_scripts', 'charm-build')()
File "/snap/charm/390/lib/python3.6/site-packages/charmtools/build/builder.py", line 941, in main
build()
File "/snap/charm/390/lib/python3.6/site-packages/charmtools/build/builder.py", line 649, in __call__
self.generate()
File "/snap/charm/390/lib/python3.6/site-packages/charmtools/build/builder.py", line 592, in generate
layers = self.fetch()
File "/snap/charm/390/lib/python3.6/site-packages/charmtools/build/builder.py", line 273, in fetch
return self.fetch_deps(self.top_layer)
File "/snap/charm/390/lib/python3.6/site-packages/charmtools/build/builder.py", line 278, in fetch_deps
self.fetch_dep(layer, results)
File "/snap/charm/390/lib/python3.6/site-packages/charmtools/build/builder.py", line 313, in fetch_dep
base_layer.fetch()
File "/snap/charm/390/lib/python3.6/site-packages/charmtools/build/builder.py", line 114, in fetch
self._name = self.config.name
File "/snap/charm/390/lib/python3.6/site-packages/charmtools/build/builder.py", line 51, in config
self._config.configure(self.config_file)
File "/snap/charm/390/lib/python3.6/site-packages/charmtools/build/config.py", line 66, in configure
tactic = load_tactic(name, basedir)
File "/snap/charm/390/lib/python3.6/site-packages/charmtools/build/tactics.py", line 1282, in load_tactic
obj = utils.load_class(dpath, basedir)
File "/snap/charm/390/lib/python3.6/site-packages/charmtools/utils.py", line 333, in load_class
module = importlib.import_module(module_path)
File "/snap/charm/390/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'tactics.wheelhouse'
ERROR: InvocationError: '/snap/bin/charm build --log-level DEBUG -o /home/bdx/allcode/charms/layers/layer-elastic-operator/build src'
__________________________________________________________ summary __________________________________________________________
ERROR: build: commands failed
Makefile:20: recipe for target 'build' failed
make: *** [build] Error 1
Adding the wheelhouse.py tactic to my tactics/
and to my layer.yaml allows the charm to build.
any ideas here?
Thanks