From 84488ceda9a8fe040485ffbb337c76ba19d5ef33 Mon Sep 17 00:00:00 2001 From: Bach Dániel <bd@ik.bme.hu> Date: Mon, 23 Feb 2015 12:37:53 +0100 Subject: [PATCH] vm: add e1000, rtl8139, pcnet, ne2k_pci support --- circle/vm/migrations/0002_interface_model.py | 20 ++++++++++++++++++++ circle/vm/models/network.py | 7 ++++++- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 circle/vm/migrations/0002_interface_model.py diff --git a/circle/vm/migrations/0002_interface_model.py b/circle/vm/migrations/0002_interface_model.py new file mode 100644 index 0000000..8ebc86d --- /dev/null +++ b/circle/vm/migrations/0002_interface_model.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('vm', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='interface', + name='model', + field=models.CharField(default='virtio', max_length=10, choices=[('virtio', 'virtio'), ('ne2k_pci', 'ne2k_pci'), ('pcnet', 'pcnet'), ('rtl8139', 'rtl8139'), ('e1000', 'e1000')]), + preserve_default=True, + ), + ] diff --git a/circle/vm/models/network.py b/circle/vm/models/network.py index 696841b..2020910 100644 --- a/circle/vm/models/network.py +++ b/circle/vm/models/network.py @@ -20,7 +20,7 @@ from __future__ import absolute_import, unicode_literals from logging import getLogger from netaddr import EUI, mac_unix -from django.db.models import Model, ForeignKey, BooleanField +from django.db.models import Model, ForeignKey, BooleanField, CharField from django.utils.translation import ugettext_lazy as _, ugettext_noop from common.models import create_readable @@ -61,11 +61,15 @@ class Interface(Model): """Network interface for an instance. """ + MODEL_TYPES = (('virtio', 'virtio'), ('ne2k_pci', 'ne2k_pci'), + ('pcnet', 'pcnet'), ('rtl8139', 'rtl8139'), + ('e1000', 'e1000')) vlan = ForeignKey(Vlan, verbose_name=_('vlan'), related_name="vm_interface") host = ForeignKey(Host, verbose_name=_('host'), blank=True, null=True) instance = ForeignKey('Instance', verbose_name=_('instance'), related_name='interface_set') + model = CharField(max_length=10, choices=MODEL_TYPES, default='virtio') class Meta: app_label = 'vm' @@ -104,6 +108,7 @@ class Interface(Model): 'ipv4': str(self.host.ipv4) if self.host is not None else None, 'ipv6': str(self.host.ipv6) if self.host is not None else None, 'vlan': self.vlan.vid, + 'model': self.model, 'managed': self.host is not None } -- libgit2 0.26.0