<div dir="ltr">I think the use case is pretty apparent from the start of this thread, it's opaque to a user that --all does not result in the same execution environment as --unit or --application. It seems --all should be disambiguated to --all-machines and possibly an --all-units feature. I could see wanting to collect information from hook tools of all units in a deploy, network-get for example, or other commands.<div><br></div><div>Marco<br><br><div class="gmail_quote"><div dir="ltr">On Mon, Oct 23, 2017 at 11:20 AM Andrew Wilkins <<a href="mailto:andrew.wilkins@canonical.com">andrew.wilkins@canonical.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Mon, Oct 23, 2017 at 5:12 PM Marco Ceppi <<a href="mailto:marco.ceppi@canonical.com" target="_blank">marco.ceppi@canonical.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_quote"><div dir="ltr">On Mon, Oct 23, 2017, 03:59 Andrew Wilkins <<a href="mailto:andrew.wilkins@canonical.com" target="_blank">andrew.wilkins@canonical.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Mon, Oct 23, 2017 at 4:20 AM Akshat Jiwan Sharma <<a href="mailto:akshatjiwan@gmail.com" target="_blank">akshatjiwan@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">HI,<div><br></div><div>I'm trying to manually expose a port on a juju machine. According to <a href="https://askubuntu.com/questions/808176/how-to-manually-open-a-port-in-juju" target="_blank">this answer</a> I should be able to do something like this:- </div><div><br></div><div> juju run  "open-port 443" --all <br></div><div><br></div><div>However when I type this in my shell it throws an error </div><div><br></div><div>open-port: command not found</div></div></blockquote><div><br></div></div></div><div dir="ltr"><div class="gmail_quote"><div>The different between the command you're running, and the one on AskUbuntu, is that you're not passing --unit. When you pass --unit, it runs the command in the context of a unit on the machine. You must be running in the context of a unit to use "hook tools", such as open-port.</div></div></div></blockquote></div><div><br></div><div>It seems weird that `juju run` behaves differently when using --unit and --all, is there a particular reason for that? I wouldn't expect the above command to fail.</div></blockquote><div><br></div></div></div><div dir="ltr"><div class="gmail_quote"><div>`juju run` supports running commands in either a machine or unit context. Only if you run within a unit context do you get access to hook tools. Hooks require a unit context.</div><div><br></div><div>"--all" means "all machines", so the command runs in a machine context, for each machine. You could have multiple units on a machine, so we can't automatically choose a unit. Even if we could, what would be the use case for doing that? Different machines will run different applications, which will each have their own firewall requirements.<br></div><div><br></div><div>Cheers,</div><div>Andrew</div></div></div>
</blockquote></div></div></div>