summaryrefslogtreecommitdiffstats
path: root/compass-tasks-base
diff options
context:
space:
mode:
authorHarry Huang <huangxiangyu5@huawei.com>2018-08-10 15:35:27 +0800
committerHarry Huang <huangxiangyu5@huawei.com>2018-08-10 15:35:27 +0800
commit089d7621221294e7d43605ff418cc95297844384 (patch)
tree9734f6e8ea044689b97cdaed99885c775ef95d2a /compass-tasks-base
parent20e229822b31b03e1120c3e5efd4ba131261617e (diff)
Support multiple mac addresses in db
JIRA: COMPASS-613 Change-Id: I1828c512d04060271cd0dc4884d892aa8f5adf97 Signed-off-by: Harry Huang <huangxiangyu5@huawei.com>
Diffstat (limited to 'compass-tasks-base')
-rw-r--r--compass-tasks-base/db/api/machine.py2
-rw-r--r--compass-tasks-base/db/models.py7
2 files changed, 5 insertions, 4 deletions
diff --git a/compass-tasks-base/db/api/machine.py b/compass-tasks-base/db/api/machine.py
index b7b16b2..7991ada 100644
--- a/compass-tasks-base/db/api/machine.py
+++ b/compass-tasks-base/db/api/machine.py
@@ -29,7 +29,7 @@ from compass.utils import util
MACHINE_PRIMARY_FILEDS = ['mac', 'owner_id']
SUPPORTED_FIELDS = [
- 'mac', 'tag', 'location',
+ 'mac', 'tag', 'location', 'ipmi_credentials',
'machine_attributes', 'owner_id']
IGNORE_FIELDS = ['id', 'created_at', 'updated_at']
UPDATED_FIELDS = [
diff --git a/compass-tasks-base/db/models.py b/compass-tasks-base/db/models.py
index d4b0324..5f8fb52 100644
--- a/compass-tasks-base/db/models.py
+++ b/compass-tasks-base/db/models.py
@@ -1532,11 +1532,11 @@ class Machine(BASE, HelperMixin, TimestampMixin):
"""Machine table."""
__tablename__ = 'machine'
id = Column(Integer, primary_key=True)
- mac = Column(String(24), unique=True, nullable=False)
+ mac = Column(JSONEncoded, nullable=False)
ipmi_credentials = Column(JSONEncoded, default={})
tag = Column(JSONEncoded, default={})
location = Column(JSONEncoded, default={})
- owner_id = Column(Integer, ForeignKey('user.id'))
+ owner_id = Column(Integer, nullable=True)
machine_attributes = Column(JSONEncoded, default={})
switch_machines = relationship(
@@ -1564,7 +1564,8 @@ class Machine(BASE, HelperMixin, TimestampMixin):
# TODO(xicheng): some validation can be moved to column.
super(Machine, self).validate()
try:
- netaddr.EUI(self.mac)
+ for key, value in self.mac.items():
+ netaddr.EUI(value)
except Exception:
raise exception.InvalidParameter(
'mac address %s format uncorrect' % self.mac