Great! Thanks! 2016-01-28 14:18 GMT+01:00 Marco Ceppi <[email protected]>:
> 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
