This makes a little more sense. I'll chat with Cory later today about getting the virtualenv stuff on the roadmap for charm build.
Marco On Thu, Jan 28, 2016 at 8:01 AM Merlijn Sebrechts < [email protected]> wrote: > Hi Marco > > > The virtalenv flag would be really helpful and solve all my use-cases > afaik! Any eta? > > > For more context: > > I hulk smash a few Charms to enable full lxc support in a manual > environment. > > > - *lxc-networking* bridges lxcbr0 to a private network > - *dhcp-server* assigns ip addresses to the containers and acts as a > NAT router > - *openvpn* allows administrators access to the private network > - and finally *juju-gui* because it's awesome > > *lxc-networking* and *dhcp-server* are layered, which breaks juju-gui. I > understand this is a hacky solution but it's the best I could come up with > to support lxc containers on the manual provider. Although hulk-smashing > isn't very wise, I think there will always be use-cases where it's > needed... I could put *juju-gui* into a container and port-forward, but > *openvpn* will always have to run on a physical machine, hulk-smashed > together with the others.. > > Then there's the use-case of subordinate Charms. I encountered some issues > creating layered subordinate Charms for non-layered Charms. > > > > Kind regards > Merlijn > > > 2016-01-28 13:33 GMT+01:00 Marco Ceppi <[email protected]>: > >> Is this a result of deploy --to <machine#>? If so, I expect there to be >> errors, "hulk smashing" services onto a single machine really isn't >> expected to work, it just "works" for a few combination of charms. Is there >> a reason you can't deploy to LXC or KVM containers? The isolation of a LXC >> containers on a single machine is what this was built for. >> >> If you /do/ have to hulk smash, there was talk of adding a virtualenv >> flag to the charm layer, by which it will install its deps not systemwide >> but instead in a virtual environment that all the hooks would run with. >> >> Marco >> >> On Thu, Jan 28, 2016 at 4:54 AM Merlijn Sebrechts < >> [email protected]> wrote: >> >>> Hi >>> >>> >>> Layered Charms use Python 3 and install pip3 as default pip. This causes >>> great problems for colocated non-layered Charms who expect that default pip >>> is pip2. >>> >>> An example is the combination of juju-gui with any layered Charm. You >>> get the following error: >>> >>> unit-juju-gui-0[8052]: 2016-01-28 09:35:53 INFO unit.juju-gui/0.install >>> logger.go:40 Traceback (most recent call last): >>> unit-juju-gui-0[8052]: 2016-01-28 09:35:53 INFO unit.juju-gui/0.install >>> logger.go:40 File >>> "/var/lib/juju/agents/unit-juju-gui-0/charm/hooks/install", line 92, in >>> <module> >>> unit-juju-gui-0[8052]: 2016-01-28 09:35:53 INFO unit.juju-gui/0.install >>> logger.go:40 main() >>> unit-juju-gui-0[8052]: 2016-01-28 09:35:53 INFO unit.juju-gui/0.install >>> logger.go:40 File >>> "/var/lib/juju/agents/unit-juju-gui-0/charm/hooks/install", line 85, in main >>> unit-juju-gui-0[8052]: 2016-01-28 09:35:53 INFO unit.juju-gui/0.install >>> logger.go:40 backend.install() >>> unit-juju-gui-0[8052]: 2016-01-28 09:35:53 INFO unit.juju-gui/0.install >>> logger.go:40 File >>> "/var/lib/juju/agents/unit-juju-gui-0/charm/hooks/backend.py", line 181, in >>> install >>> unit-juju-gui-0[8052]: 2016-01-28 09:35:53 INFO unit.juju-gui/0.install >>> logger.go:40 call_methods(self.mixins, 'install', self) >>> unit-juju-gui-0[8052]: 2016-01-28 09:35:53 INFO unit.juju-gui/0.install >>> logger.go:40 File >>> "/var/lib/juju/agents/unit-juju-gui-0/charm/hooks/backend.py", line 134, in >>> call_methods >>> unit-juju-gui-0[8052]: 2016-01-28 09:35:53 INFO unit.juju-gui/0.install >>> logger.go:40 method(*args) >>> unit-juju-gui-0[8052]: 2016-01-28 09:35:53 INFO unit.juju-gui/0.install >>> logger.go:40 File >>> "/var/lib/juju/agents/unit-juju-gui-0/charm/hooks/backend.py", line 101, in >>> install >>> unit-juju-gui-0[8052]: 2016-01-28 09:35:53 INFO unit.juju-gui/0.install >>> logger.go:40 utils.install_builtin_server() >>> unit-juju-gui-0[8052]: 2016-01-28 09:35:53 INFO unit.juju-gui/0.install >>> logger.go:40 File >>> "/var/lib/juju/agents/unit-juju-gui-0/charm/hooks/utils.py", line 297, in >>> install_builtin_server >>> unit-juju-gui-0[8052]: 2016-01-28 09:35:53 INFO unit.juju-gui/0.install >>> logger.go:40 '-r', requirements >>> unit-juju-gui-0[8052]: 2016-01-28 09:35:53 INFO unit.juju-gui/0.install >>> logger.go:40 File >>> "/var/lib/juju/agents/unit-juju-gui-0/charm/hooks/shelltoolbox.py", line >>> 458, in run >>> unit-juju-gui-0[8052]: 2016-01-28 09:35:53 INFO unit.juju-gui/0.install >>> logger.go:40 raise exception >>> unit-juju-gui-0[8052]: 2016-01-28 09:35:53 INFO unit.juju-gui/0.install >>> logger.go:40 subprocess.CalledProcessError: Command '['pip', 'install', >>> '--no-index', '--no-dependencies', '--find-links', >>> 'file:////var/lib/juju/agents/unit-juju-gui-0/charm/deps', '-r', >>> '/var/lib/juju/agents/unit-juju-gui-0/charm/server-requirements.pip']' >>> returned non-zero exit status 1 >>> unit-juju-gui-0[8052]: 2016-01-28 09:35:53 ERROR >>> juju.worker.uniter.operation runhook.go:107 hook "install" failed: exit >>> status 1 >>> >>> >>> >>> Running it manually: >>> >>> pip install --no-index --no-dependencies --find-links >>> file:////var/lib/juju/agents/unit-juju-gui-0/charm/deps -r >>> /var/lib/juju/agents/unit-juju-gui-0/charm/server-requirements.pip >>> Ignoring indexes: https://pypi.python.org/simple >>> Collecting argparse==1.2.1 (from -r >>> /var/lib/juju/agents/unit-juju-gui-0/charm/server-requirements.pip (line 1)) >>> Could not find a version that satisfies the requirement >>> argparse==1.2.1 (from -r >>> /var/lib/juju/agents/unit-juju-gui-0/charm/server-requirements.pip (line >>> 1)) (from versions: ) >>> No matching distribution found for argparse==1.2.1 (from -r >>> /var/lib/juju/agents/unit-juju-gui-0/charm/server-requirements.pip (line 1)) >>> >>> `pip2 install ....` works.. >>> >>> >>> >>> Kind regards >>> Merlijn Sebrechts >>> -- >>> Juju mailing list >>> [email protected] >>> Modify settings or unsubscribe at: >>> https://lists.ubuntu.com/mailman/listinfo/juju >>> >> >
-- Juju mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/juju
