diff options
author | Harry Huang <huangxiangyu5@huawei.com> | 2018-10-11 11:05:02 +0800 |
---|---|---|
committer | Harry Huang <huangxiangyu5@huawei.com> | 2018-10-30 15:06:10 +0800 |
commit | f89ef9a9ee968c778af3444c7f9d2a39489fcf2b (patch) | |
tree | b5d3894a076ac2aca47b2c5f3dcf83160375a463 /compass-deck/db/models.py | |
parent | c5a7aaf83d500ec7c4b02d4cfddaf86b85182b2c (diff) |
Manage host power from cobbler
JIRA: COMPASS-616
1. Use fence_ipmilan to control power of baremetal
servers. Add fence_libvirt to control power of
virtual servers.
2. Use power_manage field instead of ipmi field
3. Add power_type to specify machine's power manage
tool
4. Store power manage information in db and update
to cobbler
5. Manage power from cobbler for both virtual and
baremetal machines
Change-Id: Ic36ae640dc0aa1703566b5b0b549880a71be36e4
Signed-off-by: Harry Huang <huangxiangyu5@huawei.com>
Diffstat (limited to 'compass-deck/db/models.py')
-rw-r--r-- | compass-deck/db/models.py | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/compass-deck/db/models.py b/compass-deck/db/models.py index 929f4dc..e312f61 100644 --- a/compass-deck/db/models.py +++ b/compass-deck/db/models.py @@ -1533,10 +1533,11 @@ class Machine(BASE, HelperMixin, TimestampMixin): __tablename__ = 'machine' id = Column(Integer, primary_key=True) mac = Column(JSONEncoded, nullable=False) - ipmi_credentials = Column(JSONEncoded, default={}) tag = Column(JSONEncoded, default={}) location = Column(JSONEncoded, default={}) 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( @@ -1572,15 +1573,15 @@ class Machine(BASE, HelperMixin, TimestampMixin): ) @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): |