Revision 8f07dc0d
b/lib/watcher/__init__.py | ||
---|---|---|
166 | 166 |
|
167 | 167 |
instances = {} |
168 | 168 |
|
169 |
# write the instance status file |
|
170 |
up_data = "".join(["%s %s\n" % (fields[0], fields[1]) for fields in result]) |
|
171 |
utils.WriteFile(file_name=constants.INSTANCE_STATUS_FILE, data=up_data) |
|
169 |
_UpdateInstanceStatus(client, constants.INSTANCE_STATUS_FILE) |
|
172 | 170 |
|
173 | 171 |
for fields in result: |
174 | 172 |
(name, status, autostart, snodes) = fields |
... | ... | |
437 | 435 |
return (options, args) |
438 | 436 |
|
439 | 437 |
|
438 |
def _UpdateInstanceStatus(cl, filename): |
|
439 |
"""Get a list of instances on this cluster. |
|
440 |
|
|
441 |
@todo: Think about doing this per nodegroup, too |
|
442 |
|
|
443 |
""" |
|
444 |
op = opcodes.OpInstanceQuery(output_fields=["name", "status"], names=[], |
|
445 |
use_locking=True) |
|
446 |
job_id = cl.SubmitJob([op]) |
|
447 |
(result, ) = cli.PollJob(job_id, cl=cl, feedback_fn=logging.debug) |
|
448 |
|
|
449 |
cl.ArchiveJob(job_id) |
|
450 |
|
|
451 |
logging.debug("Got instance data, writing status file %s", filename) |
|
452 |
|
|
453 |
utils.WriteFile(filename, data="".join("%s %s\n" % (name, status) |
|
454 |
for (name, status) in result)) |
|
455 |
|
|
456 |
|
|
440 | 457 |
@rapi.client.UsesRapiClient |
441 | 458 |
def Main(): |
442 | 459 |
"""Main function. |
Also available in: Unified diff