Commit 27bfe273 authored by Antoine Millet's avatar Antoine Millet
Browse files

Added output to vm actions.

parent 26647028
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -194,40 +194,43 @@ class CliHandler(OnlineCCHandler):
    def _vm_action(self, query, method, *args, **kwargs):
        vms = self._server.list(query, show=set(('r', 'h')))
        hypervisors = list(self._server.iter_connected_role('hv'))
        errs = Reporter()
        for hv in hypervisors:
            vm_to_start = []
            for vm in vms:
                if vm['r'] != 'vm':
                    continue
                    errs.error(vm['id'], 'not a vm')
                elif vm['id'].split('.')[0] == hv.login:
                    vm_to_start.append(vm['h'])
                    errs.success(vm['id'], 'ok')
            if vm_to_start:
                hv.connection.call(method, vm_to_start, *args, **kwargs)
        return errs.get_dict()

    @listed
    def start(self, conn, query):
        self._check(conn, 'start', query)
        self._vm_action(query, 'vm_start')
        return self._vm_action(query, 'vm_start')

    @listed
    def stop(self, conn, query):
        self._check(conn, 'stop', query)
        self._vm_action(query, 'vm_stop', force=False)
        return self._vm_action(query, 'vm_stop', force=False)

    @listed
    def destroy(self, conn, query):
        self._check(conn, 'destroy', query)
        self._vm_action(query, 'vm_stop', force=True)
        return self._vm_action(query, 'vm_stop', force=True)

    @listed
    def pause(self, conn, query):
        self._check(conn, 'pause', query)
        self._vm_action(query, 'vm_suspend')
        return self._vm_action(query, 'vm_suspend')

    @listed
    def resume(self, conn, query):
        self._check(conn, 'resume', query)
        self._vm_action(query, 'vm_resume')
        return self._vm_action(query, 'vm_resume')

    @listed
    def passwd(self, conn, query, password, method='ssha'):