Revision 8c3c855f

b/snf-cyclades-app/synnefo/db/models.py
408 408

  
409 409

  
410 410
class VirtualMachineMetadata(models.Model):
411
    meta_key = models.CharField(max_length=50)
412
    meta_value = models.CharField(max_length=500)
411
    KEY_LENGTH = 50
412
    VALUE_LENGTH = 500
413
    meta_key = models.CharField(max_length=KEY_LENGTH)
414
    meta_value = models.CharField(max_length=VALUE_LENGTH)
413 415
    vm = models.ForeignKey(VirtualMachine, related_name='metadata',
414 416
                           on_delete=models.CASCADE)
415 417

  
......
1003 1005
                            " volume")
1004 1006
    )
1005 1007

  
1008
    NAME_LENGTH = 255
1009
    DESCRIPTION_LENGTH = 255
1006 1010
    SOURCE_IMAGE_PREFIX = "image:"
1007 1011
    SOURCE_SNAPSHOT_PREFIX = "snapshot:"
1008 1012
    SOURCE_VOLUME_PREFIX = "volume:"
1009 1013

  
1010
    name = models.CharField("Name", max_length=255, null=True)
1011
    description = models.CharField("Description", max_length=256, null=True)
1014
    name = models.CharField("Name", max_length=NAME_LENGTH, null=True)
1015
    description = models.CharField("Description",
1016
                                   max_length=DESCRIPTION_LENGTH, null=True)
1012 1017
    userid = models.CharField("Owner's UUID", max_length=100, null=False,
1013 1018
                              db_index=True)
1014 1019
    size = models.IntegerField("Volume size in GB",  null=False)
......
1098 1103

  
1099 1104

  
1100 1105
class Metadata(models.Model):
1101
    key = models.CharField("Metadata Key", max_length=64)
1102
    value = models.CharField("Metadata Value", max_length=255)
1106
    KEY_LENGTH = 64
1107
    VALUE_LENGTH = 255
1108
    key = models.CharField("Metadata Key", max_length=KEY_LENGTH)
1109
    value = models.CharField("Metadata Value", max_length=VALUE_LENGTH)
1103 1110

  
1104 1111
    class Meta:
1105 1112
        abstract = True
b/snf-cyclades-app/synnefo/logic/servers.py
125 125
        server_volumes.append(v)
126 126

  
127 127
    for key, val in metadata.items():
128
        utils.check_name_length(key, VirtualMachineMetadata.KEY_LENGTH,
129
                                "Metadata key is too long")
130
        utils.check_name_length(val, VirtualMachineMetadata.VALUE_LENGTH,
131
                                "Metadata value is too long")
128 132
        VirtualMachineMetadata.objects.create(
129 133
            meta_key=key,
130 134
            meta_value=val,
b/snf-cyclades-app/synnefo/volume/volumes.py
3 3
from django.db import transaction
4 4
from django.conf import settings
5 5
from snf_django.lib.api import faults
6
from synnefo.db.models import Volume
6
from synnefo.db.models import Volume, VolumeMetadata
7 7
from synnefo.volume import util
8
from synnefo.logic import server_attachments
8
from synnefo.logic import server_attachments, utils
9 9

  
10 10
log = logging.getLogger(__name__)
11 11

  
......
45 45

  
46 46
    if metadata is not None:
47 47
        for meta_key, meta_val in metadata.items():
48
            utils.check_name_length(meta_key, VolumeMetadata.KEY_LENGTH,
49
                                    "Metadata key is too long")
50
            utils.check_name_length(meta_val, VolumeMetadata.VALUE_LENGTH,
51
                                    "Metadata key is too long")
48 52
            volume.metadata.create(key=meta_key, value=meta_val)
49 53

  
50 54
    server_attachments.attach_volume(server, volume)
......
56 60
                   name=None, description=None, index=None,
57 61
                   delete_on_termination=True):
58 62

  
63
    utils.check_name_length(name, Volume.NAME_LENGTH,
64
                            "Volume name is too long")
65
    utils.check_name_length(description, Volume.DESCRIPTION_LENGTH,
66
                            "Volume name is too long")
59 67
    # Only ext_ disk template supports cloning from another source. Otherwise
60 68
    # is must be the root volume so that 'snf-image' fill the volume
61 69
    disk_template = server.flavor.disk_template

Also available in: Unified diff