Revision bad9404c snf-cyclades-app/synnefo/api/management/commands/flavor-list.py
b/snf-cyclades-app/synnefo/api/management/commands/flavor-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_bool |
|
37 |
from synnefo.management.common import format_bool, filter_results
|
|
38 | 38 |
|
39 | 39 |
from synnefo.db.models import Flavor |
40 | 40 |
|
41 |
FIELDS = Flavor._meta.get_all_field_names() |
|
42 |
|
|
41 | 43 |
|
42 | 44 |
class Command(BaseCommand): |
43 | 45 |
help = "List flavors" |
... | ... | |
53 | 55 |
dest='deleted', |
54 | 56 |
default=False, |
55 | 57 |
help="Include deleted flavors"), |
58 |
make_option('--filter-by', |
|
59 |
dest='filter_by', |
|
60 |
help="Filter results. Comma seperated list of key=val pairs" |
|
61 |
" that displayed entries must satisfy. e.g." |
|
62 |
" --filter-by \"cpu=1,ram!=1024\"." |
|
63 |
"Available keys are: %s" % ", ".join(FIELDS)) |
|
56 | 64 |
) |
57 | 65 |
|
58 | 66 |
def handle(self, *args, **options): |
... | ... | |
73 | 81 |
else: |
74 | 82 |
flavors = Flavor.objects.filter(deleted=False) |
75 | 83 |
|
84 |
filter_by = options['filter_by'] |
|
85 |
if filter_by: |
|
86 |
flavors = filter_results(flavors, filter_by) |
|
87 |
|
|
88 |
|
|
76 | 89 |
for flavor in flavors.order_by('id'): |
77 | 90 |
id = str(flavor.id) |
78 | 91 |
cpu = str(flavor.cpu) |
Also available in: Unified diff