Revision 7edb6d06

b/snf-cyclades-app/synnefo/api/management/commands/flavor-create.py
32 32
# or implied, of GRNET S.A.
33 33

  
34 34
from itertools import product
35
from optparse import make_option
35 36

  
36 37
from django.core.management.base import BaseCommand, CommandError
37 38

  
......
40 41

  
41 42
class Command(BaseCommand):
42 43
    output_transaction = True
44

  
45
    option_list = BaseCommand.option_list + (
46
        make_option("-n", "--dry-run", dest="dry_run", action="store_true"),
47
    )
43 48
    args = "<cpu>[,<cpu>,...] " \
44 49
           "<ram>[,<ram>,...] " \
45 50
           "<disk>[,<disk>,...] " \
......
64 69
                raise CommandError("Invalid values")
65 70

  
66 71
        for cpu, ram, disk, template in flavors:
67
            flavor = Flavor.objects.create(cpu=cpu, ram=ram, disk=disk,
68
                                           disk_template=template)
69
            self.stdout.write("Created flavor %s\n" % (flavor.name,))
72
            if options["dry_run"]:
73
                flavor = Flavor(cpu=cpu, ram=ram, disk=disk,
74
                                disk_template=template)
75
                self.stdout.write("Creating flavor '%s'\n" % (flavor.name,))
76
            else:
77
                flavor, created = \
78
                    Flavor.objects.get_or_create(cpu=cpu, ram=ram, disk=disk,
79
                                                 disk_template=template)
80
                if created:
81
                    self.stdout.write("Created flavor '%s'\n" % (flavor.name,))
82
                else:
83
                    self.stdout.write("Flavor '%s' already exists\n"
84
                                      % flavor.name)

Also available in: Unified diff