From 117d05bf9dad751f81a806e4f63d53e9d942da5f Mon Sep 17 00:00:00 2001 From: James Cammarata Date: Fri, 27 Mar 2009 10:58:32 -0500 Subject: [PATCH] Modifications to webui to allow for correct mac address randomization based on virt-type --- cobbler/remote.py | 4 ++-- cobbler/webui/CobblerWeb.py | 6 ++++-- webui_templates/system_edit.tmpl | 30 +++++++++++++++++++++++++++++- 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/cobbler/remote.py b/cobbler/remote.py index c9d668d..87bb881 100644 --- a/cobbler/remote.py +++ b/cobbler/remote.py @@ -876,14 +876,14 @@ class CobblerXMLRPCInterface: return self.xmlrpc_hacks(utils.blender(self.api, True, obj)) return self.xmlrpc_hacks({}) - def get_random_mac(self,token=None,**rest): + def get_random_mac(self,virt_type="xenpv",token=None,**rest): """ Wrapper for utils.get_random_mac Used in the webui """ self._log("get_random_mac",token=None) - return utils.get_random_mac(self.api) + return utils.get_random_mac(self.api,virt_type) def xmlrpc_hacks(self,data): """ diff --git a/cobbler/webui/CobblerWeb.py b/cobbler/webui/CobblerWeb.py index ebfe527..63cfcf9 100644 --- a/cobbler/webui/CobblerWeb.py +++ b/cobbler/webui/CobblerWeb.py @@ -1213,10 +1213,12 @@ class CobblerWeb(object): 'message2' : "Cobbler config has been applied to filesystem." }) - def random_mac(self, **spam): + def random_mac(self, virt_type=None, **spam): + if virt_type is None: + virt_type = "xenpv" if not self.__xmlrpc_setup(): return self.xmlrpc_auth_failure() - mac = self.remote.get_random_mac() + mac = self.remote.get_random_mac(virt_type) return mac def error_page(self, message, **spam): diff --git a/webui_templates/system_edit.tmpl b/webui_templates/system_edit.tmpl index 186c91a..3286c89 100644 --- a/webui_templates/system_edit.tmpl +++ b/webui_templates/system_edit.tmpl @@ -16,10 +16,38 @@ function disablename(value) } #end if +function get_selected_virttype() +{ + var virttype_field = document.getElementById("virttype"); + if (virttype_field) { + if (virttype_field.length == undefined) { + if (virttype_field.checked) { + return virttype_field.value; + } + } + else { + for (var i=0; i < virttype_field.length; i++) { + if (virttype_field[i].checked) { + return virttype_field[i].value; + } + } + } + } + + return ""; +} + function get_random_mac() { xmlHttp = new XMLHttpRequest(); - xmlHttp.open("GET", "$base_url?mode=random_mac", true); + + var request_str = "$base_url?mode=random_mac"; + var virttype = get_selected_virttype(); + if (virttype != "" && virttype != "<>") { + request_str += "&virt_type=" + virttype; + } + + xmlHttp.open("GET", request_str, true); xmlHttp.onreadystatechange = function () { if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { var mac_field = document.getElementById("macaddress") -- 1.5.5.1