@@ -141,7 +141,7 @@ def handleArguments(argv):
141141
142142# Check cloudstack IDs
143143if DEBUG == 1 :
144- print "Note: Checking CloudStack IDs of provided input.."
144+ print "Note: Checking IDs of provided input.."
145145clusterID = c .checkCloudStackName (
146146 {'csname' : clustername , 'csApiCall' : 'listClusters' })
147147if clusterID == 1 :
@@ -196,7 +196,7 @@ def handleArguments(argv):
196196 print "Warning: We are running in DRYRUN mode."
197197 print
198198 print "This script will: "
199- print " - Set cluster " + clustername + " to unmanage in CloudStack "
199+ print " - Set cluster " + clustername + " to Unmanage "
200200 print " - Turn OFF XenServer poolHA for " + clustername
201201 print " - For any hypervisor it will do this (poolmaster " + poolmaster .name + " first):"
202202 print " - put it to Disabled aka Maintenance in XenServer"
@@ -206,8 +206,8 @@ def handleArguments(argv):
206206 print " - set the hypervisor to Enabled in XenServer"
207207 print " - continues to the next hypervisor"
208208 print " - When the rebooting is done, it enables XenServer poolHA again for " + clustername
209- print " - Finally, it sets the " + clustername + " to Managed again in CloudStack "
210- print " - CloudStack will update its admin according to the new situation"
209+ print " - Finally, it sets the " + clustername + " to Managed again"
210+ print " - Database will be updated according to the new situation"
211211 print "Then the reboot cyclus for " + clustername + " is done!"
212212 print
213213 print "To kick it off, run with the --exec flag."
@@ -218,16 +218,6 @@ def handleArguments(argv):
218218# Start time
219219print "Note: Starting @ " + time .strftime ("%Y-%m-%d %H:%M" )
220220
221- # Set to unmanage in CloudStack
222- print "Note: Setting cluster " + clustername + " to Unmanaged in CloudStack"
223- clusterUpdateReturn = c .updateCluster (
224- {'clusterid' : clusterID , 'managedstate' : 'Unmanaged' })
225-
226- if clusterUpdateReturn == 1 or clusterUpdateReturn is None :
227- print "Error: Unmanaging cluster " + clustername + " failed. Halting."
228- disconnect_all ()
229- sys .exit (1 )
230-
231221# Check HA of Cluster
232222pool_ha = x .pool_ha_check (poolmaster )
233223if pool_ha == "Error" :
@@ -248,6 +238,18 @@ def handleArguments(argv):
248238
249239# Do the poolmaster first
250240if poolmaster .name not in ignoreHosts :
241+
242+ # BEFORE: Set to Unmanage
243+ print "Note: Setting cluster " + clustername + " to Unmanaged"
244+ clusterUpdateReturn = c .updateCluster (
245+ {'clusterid' : clusterID , 'managedstate' : 'Unmanaged' })
246+
247+ if clusterUpdateReturn == 1 or clusterUpdateReturn is None :
248+ print "Error: Unmanaging cluster " + clustername + " failed. Halting."
249+ disconnect_all ()
250+ sys .exit (1 )
251+
252+ # Migrate all VMs off of pool master
251253 vm_count = x .host_get_vms (poolmaster )
252254 if vm_count :
253255 print "Note: " + poolmaster .name + " (poolmaster) has " + vm_count + " VMs running."
@@ -261,23 +263,27 @@ def handleArguments(argv):
261263 print "Error: Unable to contact the poolmaster " + poolmaster .name
262264 disconnect_all ()
263265 sys .exit (1 )
266+
267+ # AFTER: Set to Manage
268+ print "Note: Setting cluster " + clustername + " back to Managed"
269+ clusterUpdateReturn = c .updateCluster (
270+ {'clusterid' : clusterID , 'managedstate' : 'Managed' })
271+
272+ if clusterUpdateReturn == 1 or clusterUpdateReturn is None :
273+ print "Error: Managing cluster " + clustername + " failed. Please check manually."
274+ disconnect_all ()
275+ sys .exit (1 )
276+
277+ print "Note: Waiting 30s to allow all hosts connect.."
278+ time .sleep (30 )
279+
264280else :
265281 print "Warning: Skipping " + poolmaster .name + " due to --ignore-hosts setting"
266282
267283# Print overview
268284checkBonds = True
269285c .printHypervisors (clusterID , poolmaster .name , checkBonds )
270286
271- # Set to manage in CloudStack
272- print "Note: Setting cluster " + clustername + " back to Managed in CloudStack"
273- clusterUpdateReturn = c .updateCluster (
274- {'clusterid' : clusterID , 'managedstate' : 'Managed' })
275-
276- if clusterUpdateReturn == 1 or clusterUpdateReturn is None :
277- print "Error: Managing cluster " + clustername + " failed. Please check manually."
278- disconnect_all ()
279- sys .exit (1 )
280-
281287# Print cluster info
282288print "Note: Some info about cluster '" + clustername + "':"
283289c .printCluster (clusterID )
0 commit comments