Juju core tasks for GUI project

Gary Poster gary.poster at canonical.com
Wed Jun 5 01:50:37 UTC 2013


Bump.

Thanks,

Gary

On 05/29/2013 05:51 PM, Gary Poster wrote:
> Hi all.  I've talked several times to many of you about four things that
> the GUI project needs from Juju core soon, and we have verbal approval
> from Roger, William, Mark Ramm, and others.  I'd like to list these
> tasks here and see if I can get written agreement, visibility on
> scheduling these, and possibly clarity on what else I need to provide to
> move things along.
> 
> The GUI team can also provide devs for these goals if sufficient
> direction is provided and we all agree that it is a good use of resources.
> 
> == (1) SetUnit API ==
> 
> Goal: Provide an API that lets users set the desired number of units for
> a service, and have Juju increase or decrease the units to match.
> 
> Rationale: Concurrency.  Using AddUnit, two people both trying to go
> from 5 to 10 units will quite possibly act concurrently and move from 5
> to 15 (add 5 and add 5).  Similarly, if two users want to decrease from
> 15 units to 10, and they happen to choose different units in RemoveUnit,
> they may decrease to 5.
> 
> Looked at another way, AddUnit is not idempotent, and, effectively,
> RemoveUnit isn't either if all you want to do is reduce unit count.
> 
> Previously identified design challenge: how does Juju decide which units
> should be removed?  One solution bandied about: user can choose to
> remove from newest to oldest or from oldest to newest, defaulting to the
> latter.  Perhaps user can also optionally provide a list of specific
> unit ids to iterate through and remove first, before switching to policy.
> 
> == (2) Restricted mode and (3) the "restricted" config data flag ==
> 
> Goals:
>  - Implement a "restricted" (or "private") flag for charm config
> options.  It defaults to false.  The value of the flag is remembered and
> exposed within Juju.  It is used for identifying values that should not
> be shared within a restricted level of authorization.  Examples are
> database password fields within a config.
>  - Implement a restricted level of authorization.  A user with this
> authorization cannot use API calls that mutate Juju, cannot access Juju
> debug log output, and cannot see the values of "restricted" service
> configuration options, as identified by the previously discussed flag.
>  - Implement optional anonymous restricted API access.  This is
> initially turned off, and can be turned on by an administrator.
> 
> Rationale: Respond to Canonical IS. They want to expose readonly GUI
> views of Juju environments to Canonical developers.  They can use this
> to let devs investigate, duplicate, and give feedback on deployments.
> They will protect the GUI behind Apache and OpenID.  Once full RBAC is
> implemented, that would mean that optional restricted API access was no
> longer needed.
> 
> Status: Roger had a very quick prototype of everything except the charm
> config option "restricted" flag working at some point.
> 
> == (4) debug log over API ==
> 
> Goal: When you implement the debug log over the API, you include
> additional features.
> - We can ask Juju to filter the debug log by unit.
> - A history of N lines will be sent initially.
> 
> Rationale: One of the GUI's core stories this cycle is diagnostics.  We
> want to let GUI users who see a unit with a problem have a chance to
> look at some quick diagnostics before they decide what to do next--kill
> the unit and restart, ssh into the unit and investigate, and so on.
> This has been one of our key findings in user testing.  Access to the
> Juju debug log for a unit is our top priority for this goal.
> 
> ------------------
> 
> What can we do to get these scheduled and coming soon?
> 
> Thanks,
> 
> Gary
> 




More information about the Juju-dev mailing list