Hi Rakesh, Andrija is correct. Internally, all the API call does is move the host to a different state. Periodically (ping.interval duration apart) MS would attempt migration of VMs. Once the host has zero running VMs and no VM in failure/error state it would be marked in maintenance mode.
Regarding your 2nd question - how to track if maintenance state, one option is that you query DB to see the state. The other option could be to see on event bus for "MAINT.PREPARE" in completed state. I haven't seen this in practice but perhaps you can dig in a bit to explore. Regards, Anurag On 8/8/19, 3:17 PM, "Andrija Panic" <andrija.pa...@gmail.com> wrote: Rakesh, I'm not quite sure if this is a bug/misbehaviour, but it is indeed a confusing one. When you ask a host to go to maintenance mode, , you are using prepareHostForMaintenance as you said, and this will trigger the host to go into the "PrepareForMaintenance" state... so the job does indeed completes within 2-3sec usually, as you can actually see in the GUI, after a 2-3 secs of spinning circle and confirmation that it has been done. Now, after the host has reached the PrepareForMaintenance state, ACS will migrate away VMs, and I can only assume that the mgmt server will mark it as in "Maintenance" state once it has zero VMs. So you can query for the status of the host for the "resourcestate" and observe when it goes into "Maintenance" state. Regards Andrija anurag.awas...@shapeblue.com www.shapeblue.com Amadeus House, Floral Street, London WC2E 9DPUK @shapeblue On Thu, 8 Aug 2019 at 11:18, Rakesh v <www.rakeshv....@gmail.com> wrote: > Hello Anurag > > > Thanks for the reply. The host does transit to maintenance mode > eventually but the asynchronous job status never changes. Right now I'm > periodically fetching the resource_state from DB to see if it changes to > "Maintenance". Is there any better way to do it like using triggers or > events instead of periodic polling? > > Sent from my iPhone > > > On 08-Aug-2019, at 10:52 AM, Anurag Awasthi < > anurag.awas...@shapeblue.com> wrote: > > > > Hi Rakesh, > > > > You seem to be doing the right thing. I think what you have encoutered > is a bug in prepareForMaintenance API. The host tends to be stuck in that > state in some scenarios. Perhaps, when a VM enters an error state. I would > advise canceling maintenance mode and examining what states the VMs are in. > Ensure there are no unexpected errors on VMs, clean them up manually if > needed. Then retry prepare for maintenance mode. > > > > There is an open PR for fixing this issue as well - > https://github.com/apache/cloudstack/pull/3425 . While this got > sidetracked as we worked on 4.13.0, this will make it in 4.13.1. > > > > Kind Regards, > > Anurag > > ________________________________ > > From: Rakesh Venkatesh <www.rakeshv....@gmail.com> > > Sent: Thursday, August 8, 2019 2:09 PM > > To: us...@cloudstack.apache.org <us...@cloudstack.apache.org>; > dev@cloudstack.apache.org <dev@cloudstack.apache.org> > > Subject: Querying async job result > > > > Hello > > > > > > I want to know what is the best way to query the async job result using > > queryAsyncJobResult api. According to the documentation in > > > http://docs.cloudstack.apache.org/projects/archived-cloudstack-getting-started/en/latest/dev.html > > , > > the "jobstatus" of 1 means the command completed but im facing an issue > > where even though the command is still running, the "jobstatus" is > always 1. > > > > Im running "prepareHostForMaintenance" command which returns the jobid. > > When I run queryAsyncJobResult for this jobid, the jobstatus will always > be > > 1 even though the hypervisor is still not in maintenance mode. > > > > So can anyone tell me what is the best way to check if the hypervisor is > in > > maintenance mode or not? Im using 4.11 version > > > > > > Below are the result which I get > > > > > > "resourcestate": "PrepareForMaintenance", > > "jobresultcode": 0, > > "jobresulttype": "object", > > "jobstatus": 1, > > > > -- > > Thanks and regards > > Rakesh venkatesh > > > > anurag.awas...@shapeblue.com > > www.shapeblue.com > > Amadeus House, Floral Street, London WC2E 9DPUK > > @shapeblue > > > > > > > -- Andrija Panić