def __init__(self, screen, title, settings): self.memory = FloatField("memory", settings["memory"]) self.memory_min = FloatField("memory_min", settings.get("memory_min", ""), display_name="min memory", required=False) self.memory_max = FloatField("memory_max", settings.get("memory_max", ""), display_name="max memory", required=False) self.vcpu = FloatField("vcpu", settings["vcpu"]) self.vcpu_min = FloatField("vcpu_min", settings.get("vcpu_min", ""), display_name="min vcpu", required=False) self.vcpu_max = FloatField("vcpu_max", settings.get("vcpu_max", ""), display_name="max vcpu", required=False) self.username = StringField("username", settings.get("username", ''), display_name="username") self.password = PasswordField("passwd", settings.get("passwd", ''), display_name="password") self.password2 = PasswordField("passw2", settings.get("passwd", ''), display_name="password") Form.__init__(self, screen, title, [ self.memory, self.memory_min, self.memory_max, self.vcpu, self.vcpu_min, self.vcpu_max, self.username, self.password ])
def __init__(self, screen, title, settings): self.memory = FloatField("memory", settings["memory"], settings["memory_min"], settings["memory_max"]) self.swap = FloatField("swap", settings["swap"], settings["swap_min"], settings["swap_max"]) self.vcpu = FloatField("vcpu", settings["vcpu"], settings["vcpu_min"], settings["vcpu_max"]) self.vcpulimit = IntegerField("vcpulimit", settings["vcpulimit"], settings["vcpulimit_min"], settings["vcpulimit_max"]) self.disk = FloatField("disk", settings["disk"], settings["disk_min"], settings["disk_max"]) self.ioprio = RadioBarField("ioprio", screen, [('Low ', 0, settings["ioprio"] == 0), ('Default', 4, settings["ioprio"] == 4), ('High ', 7, settings["ioprio"] == 7)]) self.bind_mounts = BindMountsField("bind_mounts", settings["bind_mounts"], required=False) self.hostname = StringField("hostname", settings.get("hostname", "")) self.ip_address = IpField("ip_address", settings["ip_address"], display_name="IP address") self.nameserver = IpField("nameserver", settings["nameserver"]) self.password = PasswordField("passwd", settings["passwd"], display_name="password") self.password2 = PasswordField("passw2", settings["passwd"], display_name="password") self.ostemplate = StringField("ostemplate", settings["ostemplate"], display_name="OS template") self.startvm = CheckboxField("startvm", settings.get("startvm", 0), display_name="Start VM") self.onboot = CheckboxField("onboot", settings.get("onboot", 0), display_name="Start on boot") Form.__init__(self, screen, title, [self.memory, self.swap, self.vcpu, self.vcpulimit, self.disk, self.ioprio, self.bind_mounts, self.hostname, self.ip_address, self.nameserver, self.password, self.password2, self.ostemplate, self.startvm, self.onboot]) self.settings = settings # save passed parameters for convenience
def __init__(self, screen, title, settings): self.memory = FloatField("memory", settings["memory"], settings["memory_min"], settings["memory_max"]) self.swap = FloatField("swap", settings["swap"], settings["swap_min"], settings["swap_max"]) self.vcpu = FloatField("vcpu", settings["vcpu"], settings["vcpu_min"], settings["vcpu_max"]) self.vcpulimit = IntegerField("vcpulimit", settings["vcpulimit"], settings["vcpulimit_min"], settings["vcpulimit_max"]) self.disk = FloatField("disk", settings["disk"], settings["disk_min"], settings["disk_max"]) self.ioprio = RadioBarField("ioprio", screen, [('Low ', 0, settings["ioprio"] == 0), ('Default', 4, settings["ioprio"] == 4), ('High ', 7, settings["ioprio"] == 7)]) self.bind_mounts = BindMountsField("bind_mounts", settings["bind_mounts"], required=False) self.hostname = StringField("hostname", settings.get("hostname", "")) self.ip_address = IpField("ip_address", settings["ip_address"], display_name="IP address") self.nameserver = IpField("nameserver", settings["nameserver"]) self.password = PasswordField("passwd", settings["passwd"], display_name="password") self.password2 = PasswordField("passw2", settings["passwd"], display_name="password") self.ostemplate = StringField("ostemplate", settings["ostemplate"], display_name="OS template") self.startvm = CheckboxField("startvm", settings.get("startvm", 0), display_name="Start VM") self.onboot = CheckboxField("onboot", settings.get("onboot", 0), display_name="Start on boot") Form.__init__(self, screen, title, [ self.memory, self.swap, self.vcpu, self.vcpulimit, self.disk, self.ioprio, self.bind_mounts, self.hostname, self.ip_address, self.nameserver, self.password, self.password2, self.ostemplate, self.startvm, self.onboot ]) self.settings = settings # save passed parameters for convenience
def __init__(self, screen, title, settings): self.memory = FloatField("memory", settings["memory"]) self.memory_min = FloatField("memory_min", settings.get("memory_min", ""), display_name="min memory", required=False) self.memory_max = FloatField("memory_max", settings.get("memory_max", ""), display_name="max memory", required=False) self.vcpu = FloatField("vcpu", settings["vcpu"]) self.vcpu_min = FloatField("vcpu_min", settings.get("vcpu_min", ""), display_name="min vcpu", required=False) self.vcpu_max = FloatField("vcpu_max", settings.get("vcpu_max", ""), display_name="max vcpu", required=False) self.username = StringField("username", settings.get("username", ''), display_name="username") self.password = PasswordField("passwd", settings.get("passwd", ''), display_name="password") self.password2 = PasswordField("passw2", settings.get("passwd", ''), display_name="password") Form.__init__(self, screen, title, [self.memory, self.memory_min, self.memory_max, self.vcpu, self.vcpu_min, self.vcpu_max, self.username, self.password])
def _define_fields(self, settings): self.username = StringField('username', settings.get('username', ''), display_name='username', required=False) self.password = PasswordField('passwd', settings['passwd'], display_name='password', required=True) self.password2 = PasswordField('passwd2', settings['passwd'], display_name='password', required=True) fields = super(KvmTemplateEditForm, self)._define_fields(settings) fields.append(self.username) fields.append(self.password) fields.append(self.password2) return fields
class OpenvzForm(Form): def __init__(self, screen, title, settings): self.memory = FloatField("memory", settings["memory"], settings["memory_min"], settings["memory_max"]) self.swap = FloatField("swap", settings["swap"], settings["swap_min"], settings["swap_max"]) self.vcpu = FloatField("vcpu", settings["vcpu"], settings["vcpu_min"], settings["vcpu_max"]) self.vcpulimit = IntegerField("vcpulimit", settings["vcpulimit"], settings["vcpulimit_min"], settings["vcpulimit_max"]) self.disk = FloatField("disk", settings["disk"], settings["disk_min"], settings["disk_max"]) self.ioprio = RadioBarField("ioprio", screen, [('Low ', 0, settings["ioprio"] == 0), ('Default', 4, settings["ioprio"] == 4), ('High ', 7, settings["ioprio"] == 7)]) self.bind_mounts = BindMountsField("bind_mounts", settings["bind_mounts"], required=False) self.hostname = StringField("hostname", settings.get("hostname", "")) self.ip_address = IpField("ip_address", settings["ip_address"], display_name="IP address") self.nameserver = IpField("nameserver", settings["nameserver"]) self.password = PasswordField("passwd", settings["passwd"], display_name="password") self.password2 = PasswordField("passw2", settings["passwd"], display_name="password") self.ostemplate = StringField("ostemplate", settings["ostemplate"], display_name="OS template") self.startvm = CheckboxField("startvm", settings.get("startvm", 0), display_name="Start VM") self.onboot = CheckboxField("onboot", settings.get("onboot", 0), display_name="Start on boot") Form.__init__(self, screen, title, [ self.memory, self.swap, self.vcpu, self.vcpulimit, self.disk, self.ioprio, self.bind_mounts, self.hostname, self.ip_address, self.nameserver, self.password, self.password2, self.ostemplate, self.startvm, self.onboot ]) self.settings = settings # save passed parameters for convenience def display(self): button_exit, button_save = Button("Back"), Button("Create VM") separator = (Textbox(20, 1, "", 0, 0), Textbox(20, 1, "", 0, 0)) rows = [ (Textbox(20, 1, "Memory size (GB):", 0, 0), self.memory), (Textbox(20, 1, "Memory min/max:", 0, 0), Textbox( 20, 1, "%s / %s" % (self.memory.min_value, self.memory.max_value), 0, 0)), (Textbox(20, 1, "VSwap size (GB):", 0, 0), self.swap), (Textbox(20, 1, "VSwap min/max:", 0, 0), Textbox(20, 1, "%s / %s" % (self.swap.min_value, self.swap.max_value), 0, 0)), (Textbox(20, 1, "Number of CPUs:", 0, 0), self.vcpu), (Textbox(20, 1, "CPU number min/max:", 0, 0), Textbox(20, 1, "%s / %s" % (self.vcpu.min_value, self.vcpu.max_value), 0, 0)), (Textbox(20, 1, "CPU usage limit (%):", 0, 0), self.vcpulimit), (Textbox(20, 1, "CPU usage min/max:", 0, 0), Textbox( 20, 1, "%s / %s" % (self.vcpulimit.min_value, self.vcpulimit.max_value), 0, 0)), (Textbox(20, 1, "Disk size (GB):", 0, 0), self.disk), (Textbox(20, 1, "Disk size min/max:", 0, 0), Textbox(20, 1, "%s / %s" % (self.disk.min_value, self.disk.max_value), 0, 0)), (Textbox(20, 1, "IO Priority:", 0, 0), self.ioprio), (Textbox(20, 1, "Bind mounts:", 0, 0), self.bind_mounts), (Textbox(20, 1, "", 0, 0), Textbox(20, 1, "/src1,/dst1;/srcN,..", 0, 0)), (Textbox(20, 1, "Hostname:", 0, 0), self.hostname), (Textbox(20, 1, "IP-address:", 0, 0), self.ip_address), (Textbox(20, 2, "Nameserver:", 0, 0), self.nameserver), (Textbox(20, 1, "Root password:"******"Root password x2:", 0, 0), self.password2), (Textbox(20, 2, "OS Template:", 0, 0), self.ostemplate), (self.startvm, self.onboot), separator, (button_save, button_exit) ] form = GridForm(self.screen, self.title, 2, len(rows)) for i, row in enumerate(rows): for j, cell in enumerate(row): form.add(cell, j, i) return form.runOnce() != button_exit def validate(self): Form.validate(self) if (self.password.validate() and self.password2.validate() and self.password.value() != self.password2.value()): self.errors.append(("passwd", "Passwords don't match.")) bm_valid = self.bind_mounts.validate() if bm_valid: error_str = "\n".join([s[1] for s in bm_valid]) self.errors.append(("bind_mounts", "%s" % error_str)) return not self.errors
class KvmTemplateForm(Form): def __init__(self, screen, title, settings): self.memory = FloatField("memory", settings["memory"]) self.memory_min = FloatField("memory_min", settings.get("memory_min", ""), display_name="min memory", required=False) self.memory_max = FloatField("memory_max", settings.get("memory_max", ""), display_name="max memory", required=False) self.vcpu = FloatField("vcpu", settings["vcpu"]) self.vcpu_min = FloatField("vcpu_min", settings.get("vcpu_min", ""), display_name="min vcpu", required=False) self.vcpu_max = FloatField("vcpu_max", settings.get("vcpu_max", ""), display_name="max vcpu", required=False) self.username = StringField("username", settings.get("username", ''), display_name="username") self.password = PasswordField("passwd", settings.get("passwd", ''), display_name="password") self.password2 = PasswordField("passw2", settings.get("passwd", ''), display_name="password") Form.__init__(self, screen, title, [ self.memory, self.memory_min, self.memory_max, self.vcpu, self.vcpu_min, self.vcpu_max, self.username, self.password ]) def display(self): button_save, button_exit = Button("Create"), Button("Back") separator = (Textbox(20, 1, "", 0, 0), Textbox(20, 1, "", 0, 0)) rows = [(Textbox(20, 1, "Memory size (GB):", 0, 0), self.memory), (Textbox(20, 1, "Min memory size (GB):", 0, 0), self.memory_min), (Textbox(20, 1, "Max memory size (GB):", 0, 0), self.memory_max), separator, (Textbox(20, 1, "Number of CPUs:", 0, 0), self.vcpu), (Textbox(20, 1, "Min number of CPUs:", 0, 0), self.vcpu_min), (Textbox(20, 1, "Max number of CPUs:", 0, 0), self.vcpu_max), separator, (Textbox(20, 1, "Default admin:", 0, 0), self.username), separator, (Textbox(20, 1, "Root password:"******"Root password x2:", 0, 0), self.password2), separator, (button_exit, button_save)] form = GridForm(self.screen, self.title, 2, len(rows)) for i, row in enumerate(rows): for j, cell in enumerate(row): form.add(cell, j, i) return form.runOnce() != button_exit def validate(self): if Form.validate(self): if (self.memory_min.value() and self.memory_max.value() and float( self.memory_min.value()) > float(self.memory_max.value())): self.errors.extend([("memory", "Min memory exceeds max memory value.")]) else: self.errors.extend( validate_range("memory", self.memory.value(), self.memory_min.value(), self.memory_max.value(), float)) self.errors.extend( validate_range("vcpu", self.vcpu.value(), self.vcpu_min.value(), self.vcpu_max.value(), int)) if (self.password.validate() and self.password2.validate() and self.password.value() != self.password2.value()): self.errors.extend(("passwd", "Passwords don't match.")) return not self.errors
class OpenvzForm(Form): def __init__(self, screen, title, settings): self.memory = FloatField("memory", settings["memory"], settings["memory_min"], settings["memory_max"]) self.swap = FloatField("swap", settings["swap"], settings["swap_min"], settings["swap_max"]) self.vcpu = FloatField("vcpu", settings["vcpu"], settings["vcpu_min"], settings["vcpu_max"]) self.vcpulimit = IntegerField("vcpulimit", settings["vcpulimit"], settings["vcpulimit_min"], settings["vcpulimit_max"]) self.disk = FloatField("disk", settings["disk"], settings["disk_min"], settings["disk_max"]) self.ioprio = RadioBarField("ioprio", screen, [('Low ', 0, settings["ioprio"] == 0), ('Default', 4, settings["ioprio"] == 4), ('High ', 7, settings["ioprio"] == 7)]) self.bind_mounts = BindMountsField("bind_mounts", settings["bind_mounts"], required=False) self.hostname = StringField("hostname", settings.get("hostname", "")) self.ip_address = IpField("ip_address", settings["ip_address"], display_name="IP address") self.nameserver = IpField("nameserver", settings["nameserver"]) self.password = PasswordField("passwd", settings["passwd"], display_name="password") self.password2 = PasswordField("passw2", settings["passwd"], display_name="password") self.ostemplate = StringField("ostemplate", settings["ostemplate"], display_name="OS template") self.startvm = CheckboxField("startvm", settings.get("startvm", 0), display_name="Start VM") self.onboot = CheckboxField("onboot", settings.get("onboot", 0), display_name="Start on boot") Form.__init__(self, screen, title, [self.memory, self.swap, self.vcpu, self.vcpulimit, self.disk, self.ioprio, self.bind_mounts, self.hostname, self.ip_address, self.nameserver, self.password, self.password2, self.ostemplate, self.startvm, self.onboot]) self.settings = settings # save passed parameters for convenience def display(self): button_exit, button_save = Button("Back"), Button("Create VM") separator = (Textbox(20, 1, "", 0, 0), Textbox(20, 1, "", 0, 0)) rows = [ (Textbox(20, 1, "Memory size (GB):", 0, 0), self.memory), (Textbox(20, 1, "Memory min/max:", 0, 0), Textbox(20, 1, "%s / %s" % (self.memory.min_value, self.memory.max_value), 0, 0)), (Textbox(20, 1, "VSwap size (GB):", 0, 0), self.swap), (Textbox(20, 1, "VSwap min/max:", 0, 0), Textbox(20, 1, "%s / %s" % (self.swap.min_value, self.swap.max_value), 0, 0)), (Textbox(20, 1, "Number of CPUs:", 0, 0), self.vcpu), (Textbox(20, 1, "CPU number min/max:", 0, 0), Textbox(20, 1, "%s / %s" % (self.vcpu.min_value, self.vcpu.max_value), 0, 0)), (Textbox(20, 1, "CPU usage limit (%):", 0, 0), self.vcpulimit), (Textbox(20, 1, "CPU usage min/max:", 0, 0), Textbox(20, 1, "%s / %s" % (self.vcpulimit.min_value, self.vcpulimit.max_value), 0, 0)), (Textbox(20, 1, "Disk size (GB):", 0, 0), self.disk), (Textbox(20, 1, "Disk size min/max:", 0, 0), Textbox(20, 1, "%s / %s" % (self.disk.min_value, self.disk.max_value), 0, 0)), (Textbox(20, 1, "IO Priority:", 0, 0), self.ioprio), (Textbox(20, 1, "Bind mounts:", 0, 0), self.bind_mounts), (Textbox(20, 1, "", 0, 0), Textbox(20, 1, "/src1,/dst1;/srcN,..", 0, 0)), (Textbox(20, 1, "Hostname:", 0, 0), self.hostname), (Textbox(20, 1, "IP-address:", 0, 0), self.ip_address), (Textbox(20, 2, "Nameserver:", 0, 0), self.nameserver), (Textbox(20, 1, "Root password:"******"Root password x2:", 0, 0), self.password2), (Textbox(20, 2, "OS Template:", 0, 0), self.ostemplate), (self.startvm, self.onboot), separator, (button_save, button_exit) ] form = GridForm(self.screen, self.title, 2, len(rows)) for i, row in enumerate(rows): for j, cell in enumerate(row): form.add(cell, j, i) return form.runOnce() != button_exit def validate(self): Form.validate(self) if (self.password.validate() and self.password2.validate() and self.password.value() != self.password2.value()): self.errors.append(("passwd", "Passwords don't match.")) bm_valid = self.bind_mounts.validate() if bm_valid: error_str = "\n".join([s[1] for s in bm_valid]) self.errors.append(("bind_mounts", "%s" % error_str)) return not self.errors
class KvmTemplateForm(Form): def __init__(self, screen, title, settings): self.memory = FloatField("memory", settings["memory"]) self.memory_min = FloatField("memory_min", settings.get("memory_min", ""), display_name="min memory", required=False) self.memory_max = FloatField("memory_max", settings.get("memory_max", ""), display_name="max memory", required=False) self.vcpu = FloatField("vcpu", settings["vcpu"]) self.vcpu_min = FloatField("vcpu_min", settings.get("vcpu_min", ""), display_name="min vcpu", required=False) self.vcpu_max = FloatField("vcpu_max", settings.get("vcpu_max", ""), display_name="max vcpu", required=False) self.username = StringField("username", settings.get("username", ''), display_name="username") self.password = PasswordField("passwd", settings.get("passwd", ''), display_name="password") self.password2 = PasswordField("passw2", settings.get("passwd", ''), display_name="password") Form.__init__(self, screen, title, [self.memory, self.memory_min, self.memory_max, self.vcpu, self.vcpu_min, self.vcpu_max, self.username, self.password]) def display(self): button_save, button_exit = Button("Create"), Button("Back") separator = (Textbox(20, 1, "", 0, 0), Textbox(20, 1, "", 0, 0)) rows = [ (Textbox(20, 1, "Memory size (GB):", 0, 0), self.memory), (Textbox(20, 1, "Min memory size (GB):", 0, 0), self.memory_min), (Textbox(20, 1, "Max memory size (GB):", 0, 0), self.memory_max), separator, (Textbox(20, 1, "Number of CPUs:", 0, 0), self.vcpu), (Textbox(20, 1, "Min number of CPUs:", 0, 0), self.vcpu_min), (Textbox(20, 1, "Max number of CPUs:", 0, 0), self.vcpu_max), separator, (Textbox(20, 1, "Default admin:", 0, 0), self.username), separator, (Textbox(20, 1, "Root password:"******"Root password x2:", 0, 0), self.password2), separator, (button_exit, button_save) ] form = GridForm(self.screen, self.title, 2, len(rows)) for i, row in enumerate(rows): for j, cell in enumerate(row): form.add(cell, j, i) return form.runOnce() != button_exit def validate(self): if Form.validate(self): if (self.memory_min.value() and self.memory_max.value() and float(self.memory_min.value()) > float(self.memory_max.value())): self.errors.extend([("memory", "Min memory exceeds max memory value.")]) else: self.errors.extend(validate_range("memory", self.memory.value(), self.memory_min.value(), self.memory_max.value(), float)) self.errors.extend(validate_range("vcpu", self.vcpu.value(), self.vcpu_min.value(), self.vcpu_max.value(), int)) if (self.password.validate() and self.password2.validate() and self.password.value() != self.password2.value()): self.errors.extend(("passwd", "Passwords don't match.")) return not self.errors