#!/usr/bin/env python # -*- coding: utf-8 -*- from models import Config from models import Guest __author__ = 'James Iter' __date__ = '2017/3/25' __contact__ = 'james.iter.cn@gmail.com' __copyright__ = '(c) 2017 by James Iter.' class GuestXML(object): """ 10v022 16 64 hvm """ def __init__(self, guest=None, disks=None, g_config=None): assert isinstance(guest, Guest) assert isinstance(disks, list) assert isinstance(g_config, Config) self.guest = guest self.disks = disks self.g_config = g_config def get_domain(self): return """ {0} {1} {2} {3} {4} {5} """.format(self.get_features(), self.get_name(), self.get_vcpu(), self.get_memory(), self.get_os(), self.get_devices()) @staticmethod def get_features(): return """ """ def get_name(self): return """{0}""".format(self.guest.name) def get_vcpu(self): return """{0}""".format(self.guest.cpu.__str__()) def get_memory(self): return """{0}""".format(self.guest.memory.__str__()) @staticmethod def get_os(): return """ hvm """ def get_devices(self): return """ {0} {1} {2} {3} """.format(self.get_interface(), self.get_disks(), self.get_graphics(), self.get_console()) def get_interface(self): return """ """.format(self.guest.network) def get_disks(self): disks = [] dev_table = ['vda', 'vdb', 'vdc', 'vdd'] for i, disk in self.disks: disks.append(""" """.format(self.g_config.glusterfs_volume, self.guest.name, disk['label'], disk['format'], dev_table[i])) return ''.join(disks) def get_graphics(self): return """ """.format(self.guest.vnc_password, self.guest.vnc_port, self.guest.manage_network) @staticmethod def get_console(): return """ """