Revision bad9404c snf-cyclades-app/synnefo/api/management/commands/server-list.py
b/snf-cyclades-app/synnefo/api/management/commands/server-list.py | ||
---|---|---|
34 | 34 |
from optparse import make_option |
35 | 35 |
|
36 | 36 |
from django.core.management.base import BaseCommand, CommandError |
37 |
from synnefo.management.common import format_vm_state, get_backend
|
|
38 |
|
|
37 |
from synnefo.management.common import (format_vm_state, get_backend,
|
|
38 |
filter_results) |
|
39 | 39 |
from synnefo.api.util import get_image |
40 | 40 |
from synnefo.db.models import VirtualMachine |
41 | 41 |
|
42 | 42 |
|
43 |
FIELDS = VirtualMachine._meta.get_all_field_names() |
|
44 |
|
|
45 |
|
|
43 | 46 |
class Command(BaseCommand): |
44 | 47 |
help = "List servers" |
45 | 48 |
|
... | ... | |
59 | 62 |
dest='build', |
60 | 63 |
default=False, |
61 | 64 |
help="List only servers in the building state"), |
62 |
make_option('--deleted', action='store_true', dest='deleted', |
|
63 |
default=False, |
|
64 |
help="Include deletd servers"), |
|
65 |
make_option('--backend-id', dest='backend_id', |
|
66 |
help="List only servers of the specified backend") |
|
65 |
make_option('--deleted', |
|
66 |
action='store_true', |
|
67 |
dest='deleted', |
|
68 |
default=False, |
|
69 |
help="Include deleted servers"), |
|
70 |
make_option('--backend-id', |
|
71 |
dest='backend_id', |
|
72 |
help="List only servers of the specified backend"), |
|
73 |
make_option('--filter-by', |
|
74 |
dest='filter_by', |
|
75 |
help="Filter results. Comma seperated list of key `cond` val pairs" |
|
76 |
" that displayed entries must satisfy. e.g." |
|
77 |
" --filter-by \"operstate=STARTED,id>=22\"." |
|
78 |
" Available keys are: %s" % ", ".join(FIELDS)) |
|
67 | 79 |
) |
68 | 80 |
|
69 | 81 |
def handle(self, *args, **options): |
... | ... | |
87 | 99 |
if options['build']: |
88 | 100 |
servers = servers.filter(operstate='BUILD') |
89 | 101 |
|
102 |
filter_by = options['filter_by'] |
|
103 |
if filter_by: |
|
104 |
servers = filter_results(servers, filter_by) |
|
105 |
|
|
90 | 106 |
labels = ('id', 'name', 'owner', 'flavor', 'image', 'state', |
91 | 107 |
'backend') |
92 | 108 |
columns = (3, 12, 20, 11, 12, 9, 40) |
Also available in: Unified diff