On 18-11-2014 09:17, Yu Xin Huo wrote:
> - When I open the dialog "Edit" on a VM without
snapshots, the error
> KCHSNAP0007E* is shown. That's because the VM doesn't have snapshots
> but the UI should handle that and do nothing. Not having snapshots is
> not an error from the UI perspective.
Let us discuss why it returns a 404, anyway, the uri has nothing
wrong, to me, 404 means I am requesting a wrong thing.
Actually, 404 doesn't mean there's something wrong with the URL, it
means the resource on the requested URL could not be found, which, in my
opinion, is the case here. But I discussed this also with Aline and she
agrees that the request should return an empty dict in when there's no
current snapshot, so I'll send a patch to change this.
why sometimes it returns 500.
Can you paste the stack trace of this error as well? I have no idea of
what might have happened just by looking at the code 500, that's a
generic status code. Only then I can understand and fix this issue.
> - I cannot create a snapshot at all. Whenever I click on the
button
> '+', the error "KCHAPI0006E: Unable to parse JSON request" is
shown.
Can you make the backend code more robust, I have to submit an empty
json below. If submit nothing, then error above.
OK, I'll change the backend so it can receive nothing as input.
>
> - I cannot revert to the current snapshot. The button "Revert"
> becomes disabled whenever the current snapshot is selected. And
> that's a very important use case. Suppose I just created a snapshot.
> Then I mistakenly removed some files on my guest system and I want to
> revert to that snapshot. With the current UI, I'm not able to do that.
Corrected since it can revert to current snapshot. By this way, radio
button add no value, so change back to original UI to make revert an
item level action.
Good.
>
> - There's no visual feedback when I click on the button "Revert".
> When I click on it and the revert operation starts, nothing happens.
> The user might click on it again thinking that the button wasn't
> clicked on the first time. Also there's no way to know if the revert
> operation finished.
Good. But I guess the loading Kimchi icon won't appear again if the user
closes the dialog and reopens it. That should be easier to implement if
the revert operation returns a task, which is not the case now - but
will be in the future. So this looks good for now.
>
> - If the user clicks on the button "Revert", closes the dialog
"Edit"
> and reopens it while the revert operation is still happening, the
> error KCHSNAP0007E* is shown and the tab "Snapshot" is rendered
> empty, even if there are snapshots to be listed on the VM. The same
> problem also happens when the user clicks on the button with the
> trash can, instead of "Revert", and closes the dialog and reopens it
> while the operation hasn't finished.
Seems like 'Revert', 'Create snapshot', 'delete', 'list
snapshots' are
all exclusive, disable all buttons when any action is ongoing, and
only list existing snapshots when no snapshot creation is ongoing.
Revert is not a long task, it should response within 5 secs, then user
should wait there for it to complete, or else make it a long task also.
Revert can be a very long task, depending on the type of snapshot and
the VM memory size. But as Kimchi only supports snapshot with shutoff
VMs and those snapshots are usually fast to be created and reverted, we
can keep the non-task operation. But that should change soon.
> - Why isn't there a button "Revert" on each
snapshot line? The button
> with the trash can is there, the button "Revert" should also be
> there. That's an action that applies to only one snapshot at a time,
> just like delete. Other actions in other tabs, like "Edit", are also
> shown on the relevant line instead of at the top of the dialog. The
> button "+" is different, though, because it doesn't act in one entry
> alone, it acts on the whole set of items. So that makes sense for me
> to be at the top.
Changed it back as it can revert back to current snapshot and radio
button has no value here.
Good.
Please correct all those 500 error above and below
I'll look into this issue and fix it.
I don't know what happened there. Please paste the stack trace so I can
identify and fix the issue.