Bug 1039842 - System details page uses "Condition" under Scheduler settings instead of "Status"
Summary: System details page uses "Condition" under Scheduler settings instead of "Sta...
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Beaker
Classification: Retired
Component: command line
Version: 0.14
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: beaker-dev-list
QA Contact: tools-bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-12-10 07:10 UTC by Raymond Mancy
Modified: 2020-10-21 14:14 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-10-21 14:14:59 UTC
Embargoed:


Attachments (Terms of Use)

Description Raymond Mancy 2013-12-10 07:10:06 UTC
Description of problem:

This should be --condition

Version-Release number of selected component (if applicable):


How reproducible:

Always

Steps to Reproduce:
1. Look at options of bkr list-systems
2.
3.

Actual results:

Comes up with --status

Expected results:

Should be --condition.

Additional info:

Tiis change will have to go through the relevant deprecation process.

Comment 1 Raymond Mancy 2013-12-10 07:11:29 UTC
s/Tiis/This, and specifcally I'm referring to http://beaker-project.org/dev/guide/code-guidelines.html#api-stability

Comment 3 Nick Coghlan 2013-12-10 07:19:25 UTC
Bug 1037592 makes this more significant, since it will make a clear distinction between the system status (overall dynamic state) and the condition (the automated/manual/broken/removed setting).

I'm not sure we need to worry about deprecating --status, but adding --condition and hiding --status from the help output would certainly be a good thing to do.

Comment 4 Nick Coghlan 2013-12-10 07:27:25 UTC
Hmm, I just noticed we also call it "Status" in the web UI search options as well. The only place where we currently use "condition" is the system details page.

I prefer the more specific "Condition" name, though, since "status" is a bit too broad (reserved or not, loaned or not also factor in to the overall status)

Comment 5 Dan Callaghan 2013-12-10 08:30:56 UTC
This comes back to the underlying issue with this field that we have discussed before. In spite of its varying labels, it is neither a "status" nor a "condition" but an answer to three orthogonal questions:

1. Is this system still in Beaker's inventory, or has it been removed?
2. Is this system available to the scheduler, or can people take it manually?
3. Is this system temporarily out of service due to some of kind of fault?

I think whatever changes we make to naming should work towards clarifying these three independent meanings. For example in my system page mockups I had used the wording "Operational" and "Out of service".

Comment 6 Nick Coghlan 2013-12-10 08:49:16 UTC
Right, it's really:

Presence: Removed vs Installed
Condition (installed systems only): Out of Service vs Operational
Usage mode (operational systems only): Automated vs Manual

It's just encoded as a single status field:

Removed
Broken (Installed, Out of Service)
Manual (Installed, Operational)
Automated (Installed, Operational)

So perhaps we should report it that way here?

Installed: true/false
Operational: true/false
Automated: true/false

Currently, the only combinations we would report are:

Removed (all false)
Broken (installed true, others both false)
Manual (installed and operational true, automated false)
Automated (all true)

Comment 7 Raymond Mancy 2013-12-10 10:49:03 UTC
Whilst I mostly agree with Dan's comment, I don't think the answers that condition provide are completely orthogonal to each other. After all, they all tell us what kind of behaviour we can expect from the systems at a base level (before permissions etc come into play), and are a handy reference point for (experienced) users. The nice thing about it is that I can look at a single label and understand the situation, rather than having to look at three times as many labels to gleam the same information.

Having said that though, I think that splitting it up probably will be better in the long run and will make things more clearer (both in the code and for the user), at the expense of succinctness. 

Also, I would be hesitant about using 'Installed' as the opposite of 'Removed' as it could easily be confused with the notion there is a distro currently installed on the system. Really the opposite would be 'Added', but that may sound weird to some ears as well.

Anyway, I don't think we would want to make a change like this (in the backend or frontend) in a maintenance release.

Comment 8 Dan Callaghan 2013-12-10 22:22:40 UTC
(In reply to Raymond Mancy from comment #7)
> Whilst I mostly agree with Dan's comment, I don't think the answers that
> condition provide are completely orthogonal to each other. After all, they
> all tell us what kind of behaviour we can expect from the systems at a base
> level (before permissions etc come into play), and are a handy reference
> point for (experienced) users. The nice thing about it is that I can look at
> a single label and understand the situation, rather than having to look at
> three times as many labels to gleam the same information.

I disagree. Encoding all three things in one value actually gives you less information.

Firstly, Removed systems should never be shown in any search results or listings at all, unless the user explicitly opts in to seeing them. We expect "Removed" to be a permanent thing -- the system is never coming back, it is only useful as a historical reference. (Of course the system could come back, but that is not the intended meaning of Removed.) So it does not make sense to treat Removed systems in the same way as everything else.

Next, the big problem with the Broken status is that it does not indicate what the status normally would be if it weren't broken. So yes, if I see a system is Broken I know that the scheduler won't pick it for me right now. But when it gets fixed tomorrow, will the scheduler pick it, or will it be set back to Manual? Similarly, the owner/admin who takes it out of service has to actually think (either remember, or look in the activity) to figure out what status to pick when the system is no longer broken.

And the Manual vs. Automated distinction is an indication of "will the scheduler pick this system for me" but as we know it is far from the only factor which affects that. And an Automated system can still be taken manually (but only under certain circumstances!) So this is more just an indication of how the owner intended the system to be used, especially since if you have suitable access you can easily change the system from Manual to Automated. Moreover I think we should be working to eliminate Manual by allowing things like recipes which skip provisioning and unlimited reservations when allowed by the owner.

So my point is just that encoding this state in a single field, and displaying it as such to users, means that we are probably not giving them the information they need in an efficient way.

Comment 9 Nick Coghlan 2013-12-11 01:10:33 UTC
Sounds like a suitable topic for a design proposal to me - "Clarifying reporting of system status" or something like that.

We won't be able to explain it clearly to users until we're completely clear on the problems with the status quo ourselves.

The event driven scheduler proposal is also related (since that adds the idle/scheduled/waiting/installing/running/pending dynamic state machine for systems) and bug 1037592 should use terminology consistent with any such proposal.


Note You need to log in before you can comment on or make changes to this bug.