示例#1
0
    def __init__(self, vm, initial=None, *args, **kwargs):
        super(VirtualMachineForm, self).__init__(initial, *args, **kwargs)

        # Set owner on form
        try:
            self.owner
        except AttributeError:
            self.owner = vm.owner

        # Setup os choices
        os_list = cluster_os_list(vm.cluster)
        self.fields['os'].choices = os_list

        for field in self.always_required:
            self.fields[field].required = True
        # If the required property is set on a child class,
        #  require those form fields   
        try:
            if self.required:
                for field in self.required:
                    self.fields[field].required = True
        except AttributeError:
            pass

        # Need to set initial values from vm.info as these are not saved
        #  per the vm model.
        if vm.info:
            info = vm.info
            hvparam = info['hvparams']
            # XXX Convert ram string since it comes out
            #  from ganeti as an int and the DataVolumeField does not like
            #  ints.
            self.fields['vcpus'].initial = info['beparams']['vcpus']
            self.fields['memory'].initial = str(info['beparams']['memory'])

            # always take the larger nic count.  this ensures that if nics are
            # being removed that they will be in the form as Nones
            self.nics = len(info['nic.links'])
            nic_count = int(initial.get('nic_count', 1)) if initial else 1
            nic_count = self.nics if self.nics > nic_count else nic_count
            self.fields['nic_count'].initial = nic_count
            self.nic_fields = xrange(nic_count)
            for i in xrange(nic_count):
                link = forms.CharField(label=_('NIC/%s Link' % i), max_length=255, required=True)
                self.fields['nic_link_%s' % i] = link
                mac = MACAddressField(label=_('NIC/%s Mac' % i), required=True)
                self.fields['nic_mac_%s' % i] = mac
                if i < self.nics:
                    mac.initial = info['nic.macs'][i]
                    link.initial = info['nic.links'][i]

            self.fields['os'].initial = info['os']
            
            try:
                if self.hvparam_fields:
                    for field in self.hvparam_fields:
                        self.fields[field].initial = hvparam.get(field)
            except AttributeError:
                pass
示例#2
0
文件: fields.py 项目: bsu/GWM2
class TestMACAddressField(TestCase):

    def setUp(self):
        self.f = MACAddressField(required=True)

    def test_trivial(self):
        """
        Check that setUp() is sane.
        """
        pass

    def test_required(self):
        # implicit success, should not throw error
        self.f.validate("aa:bb:cc:dd:ee:ff")

        # required, not given
        self.assertRaises(ValidationError, self.f.validate, None)

        # not required, not given
        self.f.required = False
        self.f.validate(None)

    def test_valid(self):
        self.f.validate("aa:bb:cc:dd:ee:ff")

    def test_invalid(self):
        self.assertRaises(ValidationError, self.f.validate, "aa:bb:cc:dd:ee")
        self.assertRaises(ValidationError, self.f.validate, "aa:bb:cc:dd:ee:ff:00")
        self.assertRaises(ValidationError, self.f.validate, "aa:bb:cc:dd:ee:gg")
        self.assertRaises(ValidationError, self.f.validate, "aabbccddeeffaabbc")
示例#3
0
    def __init__(self, vm, initial=None, *args, **kwargs):
        super(VirtualMachineForm, self).__init__(initial, *args, **kwargs)

        # Set owner on form
        try:
            self.owner
        except AttributeError:
            self.owner = vm.owner

        # Setup os choices
        os_list = cluster_os_list(vm.cluster)
        self.fields['os'].choices = os_list

        for field in self.always_required:
            self.fields[field].required = True
        # If the required property is set on a child class,
        #  require those form fields
        try:
            if self.required:
                for field in self.required:
                    self.fields[field].required = True
        except AttributeError:
            pass

        # Need to set initial values from vm.info as these are not saved
        #  per the vm model.
        if vm.info:
            info = vm.info
            hvparam = info['hvparams']
            # XXX Convert ram string since it comes out
            #  from ganeti as an int and the DataVolumeField does not like
            #  ints.
            self.fields['vcpus'].initial = info['beparams']['vcpus']
            self.fields['memory'].initial = str(info['beparams']['memory'])

            # always take the larger nic count.  this ensures that if nics are
            # being removed that they will be in the form as Nones
            self.nics = len(info['nic.links'])
            nic_count = int(initial.get('nic_count', 1)) if initial else 1
            nic_count = self.nics if self.nics > nic_count else nic_count
            self.fields['nic_count'].initial = nic_count
            self.nic_fields = xrange(nic_count)
            for i in xrange(nic_count):
                link = forms.CharField(label=_('NIC/%s Link' % i),
                                       max_length=255,
                                       required=True)
                self.fields['nic_link_%s' % i] = link
                mac = MACAddressField(label=_('NIC/%s Mac' % i), required=True)
                self.fields['nic_mac_%s' % i] = mac
                if i < self.nics:
                    mac.initial = info['nic.macs'][i]
                    link.initial = info['nic.links'][i]

            self.fields['os'].initial = info['os']

            try:
                if self.hvparam_fields:
                    for field in self.hvparam_fields:
                        self.fields[field].initial = hvparam.get(field)
            except AttributeError:
                pass
示例#4
0
文件: fields.py 项目: bsu/GWM2
 def setUp(self):
     self.f = MACAddressField(required=True)