a not-so-technical user's experience with Conductor part #2

Martin Povolny mpovolny at redhat.com
Tue Oct 23 08:38:47 UTC 2012


First of all let me thank you for reading my message.

On Mon, Oct 22, 2012 at 04:30:28PM -0400, Matt Wagner wrote:
> On Mon, Oct 22, 2012 at 03:23:13PM +0200, Martin Povolny wrote:
> > Below I have fixed the issue numbering and added one more issue.
> > 
> > Status: I have an image built, now I want to push it to the cloud. So I
> > click "push".
> > 
> > http://192.168.122.174:3000/catalogs/1/deployables/1
> > 
> > #10 problem:
> > I see: "Some of the images are not pushed". But no link/button/whatever
> > to do something about that.
> 
> This seems to be a persistent problem in our error messages -- we state
> what is wrong, but don't mention how to fix it.

IMHO 2 things need to be done to fix this issue:

i) fix the workflow; i.e. provide links to the next logical step in the
workflow, so that the UI guides you through all the necessary steps

ii) fix the messages; i.e. 
  1) get the subcomponents correctly report error states 
  2) present these messages to the user using Conductor with an optional
  advise suggesting what to do next (link or short text)

> 
> > #11 problem:
> > On more problem on the page. I see "Choose a Catalog to enable access:
> > ", then an EMPTY combobox and then a grey button that goes blue, when I
> > hover it.  The button does nothing.
> 
> Ignoring the fact that this form doesn't seem to work for you, our
> description here is really unclear. I would argue that we should give
> some description of _why_ you would want to do this, and whether it was
> required or not.
> 
> > back to problem #11:
> 
> I assume you mean #10.

sure, it should have red #10

> 
> > 
> > I was told to look into the ImageFactory log, I did.
> > 
> > 2012-10-22 11:07:47,282 DEBUG oz.Guest.FedoraRemoteGuest thread(7e70cef7) Message: Original ISO path: /var/lib/oz/isos/Fedora17x86_64-iso.iso
> > 2012-10-22 11:07:47,282 DEBUG oz.Guest.FedoraRemoteGuest thread(7e70cef7) Message: Modified ISO cache: /var/lib/oz/isos/Fedora17x86_64-iso-oz.iso
> > 2012-10-22 11:07:47,282 DEBUG oz.Guest.FedoraRemoteGuest thread(7e70cef7) Message: Output ISO path: /var/lib/imagefactory/images/factory-build-7e70cef7-0520-485d-9699-981a836b44b3-iso-oz.iso
> > 2012-10-22 11:07:47,282 DEBUG oz.Guest.FedoraRemoteGuest thread(7e70cef7) Message: ISO content path: /var/lib/oz/isocontent/factory-build-7e70cef7-0520-485d-9699-981a836b44b3-iso
> > 2012-10-22 11:07:47,282 DEBUG imgfac.builders.BaseBuilder.Fedora_ec2_Builder thread(7e70cef7) Message: Being asked to push for provider ec2-amazon
> > 2012-10-22 11:07:47,282 DEBUG imgfac.builders.BaseBuilder.Fedora_ec2_Builder thread(7e70cef7) Message: distro: Fedora - update: 17 - arch: x86_64
> > 2012-10-22 11:07:47,284 DEBUG imgfac.builders.BaseBuilder.Fedora_ec2_Builder thread(7e70cef7) Message: acting as EC2 user: 8211-0863-6519
> > 2012-10-22 11:07:47,284 DEBUG imgfac.BuildJob.BuildJob thread(7e70cef7) Message: 7e70cef7-0520-485d-9699-981a836b44b3 for ec2 about to enter ec2 queue...
> > 2012-10-22 11:07:47,284 DEBUG imgfac.ReservationManager.ReservationManager thread(7e70cef7) Message: ENTERING queue: (ec2)
> > 2012-10-22 11:07:47,284 DEBUG imgfac.ReservationManager.ReservationManager thread(7e70cef7) Message: SUCCESS ENTERING queue: (ec2)
> > 2012-10-22 11:07:47,284 DEBUG imgfac.BuildJob.BuildJob thread(7e70cef7) Message: Builder (7e70cef7-0520-485d-9699-981a836b44b3) changed status from NEW to PUSHING
> > 2012-10-22 11:07:47,284 DEBUG imgfac.BuildJob.BuildJob thread(7e70cef7) Message: Builder (7e70cef7-0520-485d-9699-981a836b44b3) changed percent complete from 0 to 0
> > 2012-10-22 11:07:47,285 DEBUG imgfac.builders.BaseBuilder.Fedora_ec2_Builder thread(7e70cef7) Message: Exception caught in ImageFactory
> > 2012-10-22 11:07:47,285 DEBUG imgfac.builders.BaseBuilder.Fedora_ec2_Builder thread(7e70cef7) Message: Traceback (most recent call last):
> >   File "/usr/lib/python2.7/site-packages/imgfac/builders/Fedora_ec2_Builder.py", line 481, in push_image
> >     credentials)
> >   File "/usr/lib/python2.7/site-packages/imgfac/builders/Fedora_ec2_Builder.py", line 572, in push_image_snapshot_ec2
> >     region_conf=self.ec2_region_details[region]
> > KeyError: 'ec2-amazon'
> > 
> > #12 problem: Image Factory log and error message are useless from the
> > user point of view. That should be worked on.
> 
> Yes, indeed. You mention further in your email what seems to have caused
> this, but the error really doesn't even say anything related.
> 
> > Further more we have a
> > WUI, so having user to study the logs each time something goes wrong is
> > a no-no.
> 
> What's a little bit tricky is that we're pretty much at the mercy of
> Deltacloud and Image Factory to give us meaningful error messages in
> these cases, and they often do not. Of course, this isn't an excuse,
> just an explanation for why things are this way right now. We should
> really work with those projects to find a way to pass errors across our
> apps so we can present something understandable to our users.

Well seems to me we have to push this really hard. Because it's crucial
for Condoctor to present accurate information to the user.

> 
> > I was told by Jenik, that I have to change region (don't have idea why
> > should I, but I did) 
> 
> I'm hoping that someone from the Tim project will come along and sort me
> out, but I have a vague recollection of hearing that this reliance on
> magical strings for names is changed in newer versions of Image Factory
> and Tim, but I might have misunderstood.
> 
> Who is Jenik?

Jenik is jprovazn

> 
> 
> > So I went editing the provider:
> > 
> > http://192.168.122.174:3000/providers/1/edit
> > 
> > There are interesting 2 buttons there: "Save Changes" and "Test
> > Connection"
> > 
> > I obviously first want to test, if I can so I type in my changes
> > (changing provide name and region" and then click "Test Connection"
> > 
> > I get a message telling me "Successfully connected to Provider" but my
> > changes are gone. Did I test the newly entered setup or the previous
> > one?
> > 
> > The workflow should be IMHO: enter changes --> test --> confirm or
> > decline changes
> 
> Saving should actually test the information as part of its validation,
> so I think the "Test Connection" button is not even necessary.

e.g. The button could read "Test and save"

> 
> But if it throws away your changes when re-rendering the page... That's
> bad.

yes the logic of the page is broken

> 
> > #13 problem: Clicking "Test Connections" (probably) looses my changes to
> > the provider "Connectivity" and (probably) tests the old configuration,
> > not the one just entered.
> 
> I suspect it is testing the new one, but either way this is a bug. Have
> you been entering BZs for this stuff, or should we start to enter them?
> 

I can fill the BZs for all this. But I think that we also need to keep
the story as whole.

The goal should not be only resolving one or another way the BZs. The
goal should be to provide the user a logical and easy to follow flow
though the Conductor.

> > Jenik told me to rebuild the image, when I have edited the Provider
> > Connectivity. I believe, I have to, when he tells me.
> > 
> > #14 problem: If image rebuild is needed after editing the provider, then
> > Conductor shall take care of that. Either rebuild the image for me, or
> > invalidate it.
> 
> I think (but could be wrong) that this is really something more
> involved/complicated. Did you change EC2 regions?

I did. As I understood it when you change the EC2 regions you have to
rebuild the images. But why should the user know that?

> 
> > So I changed to 'ec2-us-east-1' -- have been told that the name should
> > match the EC2 Region.
> > 
> > #15 problem: Why am I entering the regions if the name matters?
> 
> +1

I was told something like "This was due to image factory. They have
already fixed that." But don't see it fixed in Conductor and have no
idea how to verify, that it actually is fixed.

> 
> > Anyway the error message is again telling me nothing. But in the log I
> > see a new error:
> > 
> > 2012-10-22 12:23:29,075 DEBUG imgfac.BuildJob.BuildJob thread(dd8a0120) Message: Builder (dd8a0120-d167-4ece-8c61-662d5bfba7fd) changed status from NEW to PUSHING
> > 2012-10-22 12:23:29,075 DEBUG imgfac.BuildJob.BuildJob thread(dd8a0120) Message: Builder (dd8a0120-d167-4ece-8c61-662d5bfba7fd) changed percent complete from 0 to 0
> > 2012-10-22 12:23:29,075 DEBUG imgfac.BuildJob.BuildJob thread(dd8a0120) Message: Builder (dd8a0120-d167-4ece-8c61-662d5bfba7fd) changed status from PUSHING to FAILED
> > 2012-10-22 12:23:29,075 DEBUG imgfac.BuildJob.BuildJob thread(dd8a0120) Message: dd8a0120-d167-4ece-8c61-662d5bfba7fd for ec2 about to exit ec2 queue...
> > 2012-10-22 12:23:29,075 DEBUG imgfac.ReservationManager.ReservationManager thread(dd8a0120) Message: EXITING queue: (ec2)
> > 2012-10-22 12:23:29,075 DEBUG imgfac.ReservationManager.ReservationManager thread(dd8a0120) Message: SUCCESS EXITING queue: (ec2)
> > 2012-10-22 12:23:29,076 DEBUG imgfac.builders.BaseBuilder.Fedora_ec2_Builder thread(dd8a0120) Message: Exception caught in ImageFactory
> > 2012-10-22 12:23:29,076 DEBUG imgfac.builders.BaseBuilder.Fedora_ec2_Builder thread(dd8a0120) Message: Traceback (most recent call last):
> >   File "/usr/lib/python2.7/site-packages/imgfac/builders/Fedora_ec2_Builder.py", line 481, in push_image
> >     credentials)
> >   File "/usr/lib/python2.7/site-packages/imgfac/builders/Fedora_ec2_Builder.py", line 603, in push_image_snapshot_ec2
> >     raise ImageFactoryException("No available JEOS for desired OS, verison combination")
> > ImageFactoryException: No available JEOS for desired OS, verison combination
> > 
> > 
> > #16 problem: I should get a SANE error message in Conductor. Not just
> > "push failed".  At least: "ImageFactoryException: No available JEOS for
> > desired OS, verison combination" provided the user knows what i JEOS is
> > and fixing the 'verizon' -> 'version'
> 
> Yes, this is another instance of where we don't display anything usable
> from the generated exception.
> 
> > I give up again, ask for help. I am told to switch from Fedora 17 to
> > Fedora 16. So I create a new image for Fedora 16 and this image finally
> > gets build and gets pushed to the EC2.
> > 
> > Now I am at: http://192.168.122.174:3000/images/0ca96c28-1c33-11e2-9928-525400b4f6a2
> > 
> > #17 problem: The fact that I actually managed to push the image (WOW!)
> > is not adequately 'celebrated' in the UI. I would expect something to go
> > green or at least blue. I just see the ProviderImage ID column and an
> > identifier. I have to make the connection, that it's actually right
> > myself.
> 
> After all of the hoops you had to jump through to get it working, there
> should have been balloons. And cake. (In all seriousness, though, I
> agree with you.)
> 
> > #18 problem: there's something wrong with the page. When I open the page
> > the button "Push All" is light grey. Than after a while (a minute or so)
> > the button goes blue. Probably a duplicated code setting the button
> > status onLoad and then on some Ajax update? Setting different classes?
> 
> This is probably Backbone.
> 
> > 
> > 
> > Next I launch the instance ---> OK
> > 
> > Then I take a look at the properties: http://192.168.122.174:3000/instances/1
> > 
> > I See:
> > 
> >   Name  t-f-16-deployable/t-f-16
> >   Status  Running
> >   Public Addresses  ec2-23-20-10-45.compute-1.amazonaws.com
> >   Private Addresses ip-10-190-202-192.ec2.internal
> >   Assembly  t-f-16
> >   Provider  ec2-us-east-1
> >   Architecture  x86_64
> >   Memory  512
> >   Storage 1
> >   Instantiation Time  22-Oct-2012 12:40:38
> >   Current Alerts  0
> >   Console Connection  via SSH
> >   SSH key Download
> >   SSH key name  t-f-16-deployable_t-f-16_1350910502_key_30898600
> >   Owner Administrator Administrator
> >   Shared to N/A
> > 
> > 
> > #19 problem: The IP address is real, but the memory is from the frontend
> > profile. The backend EC2 machine has >1.5GB.
> 
> "Storage: 1" has got to be from the frontend HWP as well.
> 
> For an additional bonus, we should probably display units here. Memory:
> 512 is easy enough to figure out, but is "Memory: 64" a really small
> instance with only 64MB, or a really big instance with 64GB? Storage is
> even more open-ended. (Of course, none of this really matters if the
> numbers we show aren't even right...)

Sure, the information looks elaborate, but obviously is not well defined
and structured.

> 
> Thanks again for writing this stuff up. (I'm afraid to see what will go
> wrong in Part 3, though...) Did you file BZs for these, or should we
> start to enter them so they can get fixed?

As I wrote above, I can fill in the BZs. 

But everything takes me some extra time. I have just spent 15 minutes
finding out, what "Backbone" does.

-- 
Martin Povolny <mpovolny at redhat.com>
tel. +420 777714458



More information about the aeolus-devel mailing list