summaryrefslogtreecommitdiffstats
path: root/compass-deck/db/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'compass-deck/db/models.py')
-rw-r--r--compass-deck/db/models.py24
1 files changed, 14 insertions, 10 deletions
diff --git a/compass-deck/db/models.py b/compass-deck/db/models.py
index d4b0324..124e35a 100644
--- a/compass-deck/db/models.py
+++ b/compass-deck/db/models.py
@@ -1532,11 +1532,12 @@ class Machine(BASE, HelperMixin, TimestampMixin):
"""Machine table."""
__tablename__ = 'machine'
id = Column(Integer, primary_key=True)
- mac = Column(String(24), unique=True, nullable=False)
- ipmi_credentials = Column(JSONEncoded, default={})
+ mac = Column(JSONEncoded, nullable=False)
tag = Column(JSONEncoded, default={})
location = Column(JSONEncoded, default={})
- owner_id = Column(Integer, ForeignKey('user.id'))
+ owner_id = Column(Integer, nullable=True)
+ power_type = Column(String(10), default="ipmilan")
+ power_manage = Column(JSONEncoded, default={})
machine_attributes = Column(JSONEncoded, default={})
switch_machines = relationship(
@@ -1564,22 +1565,23 @@ 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
)
@property
- def patched_ipmi_credentials(self):
- return self.ipmi_credentials
+ def patched_power_manage(self):
+ return self.power_manage
- @patched_ipmi_credentials.setter
- def patched_ipmi_credentials(self, value):
+ @patched_power_manage.setter
+ def patched_power_manage(self, value):
if not value:
return
- ipmi_credentials = copy.deepcopy(self.ipmi_credentials)
- self.ipmi_credentials = util.merge_dict(ipmi_credentials, value)
+ power_manage = copy.deepcopy(self.power_manage)
+ self.power_manage = util.merge_dict(power_manage, value)
@property
def patched_tag(self):
@@ -1863,6 +1865,8 @@ class Subnet(BASE, TimestampMixin, HelperMixin):
id = Column(Integer, primary_key=True)
name = Column(String(80), unique=True, nullable=True)
subnet = Column(String(80), unique=True, nullable=False)
+ gateway = Column(String(80), unique=True, nullable=True)
+ reserved_range = Column(String(80), unique=False, nullable=True)
host_networks = relationship(
HostNetwork,