diff options
Diffstat (limited to 'compass-deck/db/models.py')
-rw-r--r-- | compass-deck/db/models.py | 24 |
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, |