From 912231cabd05f4b6ffebfde8bce77037281b0f20 Mon Sep 17 00:00:00 2001 From: Michael DeHaan Date: Mon, 21 Apr 2008 18:21:39 -0400 Subject: Move registration code to backend only, as users trying out the kickstarts will not be sending mac info and there is not a problem of them accidentally getting registered. --- cobbler/pxegen.py | 2 -- cobbler/remote.py | 79 +++-------------------------------------------------- cobbler/services.py | 4 +-- 3 files changed, 6 insertions(+), 79 deletions(-) (limited to 'cobbler') diff --git a/cobbler/pxegen.py b/cobbler/pxegen.py index a8a9af6..e39fdc8 100644 --- a/cobbler/pxegen.py +++ b/cobbler/pxegen.py @@ -286,8 +286,6 @@ class PXEGen: kickstart_path = "http://%s/cblr/svc/?op=ks&system=%s" % (blended["http_server"], system.name) elif kickstart_path.startswith("/") or kickstart_path.find("/cobbler/kickstarts/") != -1: kickstart_path = "http://%s/cblr/svc/?op=ks&profile=%s" % (blended["http_server"], profile.name) - if self.settings.register_new_installs: - kickstart_path = kickstart_path + "®=1" if distro.breed is None or distro.breed == "redhat": append_line = "%s ks=%s" % (append_line, kickstart_path) diff --git a/cobbler/remote.py b/cobbler/remote.py index 17be852..3ad2277 100644 --- a/cobbler/remote.py +++ b/cobbler/remote.py @@ -18,7 +18,7 @@ import socket import time import os import SimpleXMLRPCServer -from utils import _ +from rhpl.translate import _, N_, textdomain, utf8 import xmlrpclib import random import base64 @@ -158,10 +158,10 @@ class CobblerXMLRPCInterface: return self._fix_none(data) - def generate_kickstart(self,profile=None,system=None,REMOTE_ADDR=None,REMOTE_MAC=None,reg=None): + def generate_kickstart(self,profile=None,system=None,REMOTE_ADDR=None,REMOTE_MAC=None): self.log("generate_kickstart") - if reg is not None and profile and not system: + if profile and not system: regrc = self.register_mac(REMOTE_MAC,profile) return self.api.generate_kickstart(profile,system) @@ -986,74 +986,6 @@ class CobblerReadWriteXMLRPCInterface(CobblerXMLRPCInterface): def remove_profile(self,name,token,recursive=1): """ Deletes a profile from a collection. Note that this just requires the name - of the profile, not a handle. - """ - self.log("remove_profile",name=name,token=token) - self.check_access(token, "remove_profile", name) - rc = self.api._config.profiles().remove(name,recursive=True) - return rc - - def remove_system(self,name,token): - """ - Deletes a system from a collection. Note that this just requires the name - of the system, not a handle. - """ - self.log("remove_system",name=name,token=token) - self.check_access(token, "remove_system", name) - rc = self.api._config.systems().remove(name) - return rc - - def remove_repo(self,name,token): - """ - Deletes a repo from a collection. Note that this just requires the name - of the repo, not a handle. - """ - self.log("remove_repo",name=name,token=token) - self.check_access(token, "remove_repo", name) - rc = self.api._config.repos().remove(name) - return rc - - def sync(self,token): - """ - Applies changes in Cobbler to the filesystem. - Editing a leaf-node object (like a system) does not require - this, but if updating a upper-level object or a kickstart file, - running sync at the end of operations is a good idea. A typical - cobbler sync may take anywhere between a few seconds and several - minutes, so user interfaces should be programmed accordingly. - Future versions of cobbler may understand how to do a cascade sync - on object edits making explicit calls to sync redundant. - """ - self.log("sync",token=token) - self.check_access(token, "sync") - return self.api.sync() - - def reposync(self,repos=[],token=None): - """ - Updates one or more mirrored yum repositories. - reposync is very slow and probably should not be used - through the XMLRPC API, setting up reposync on nightly cron is better. - """ - self.log("reposync",token=token,name=repos) - self.check_access(token, "reposync", repos) - return self.api.reposync(repos) - - def import_tree(self,mirror_url,mirror_name,network_root=None,token=None): - """ - I'm exposing this in the XMLRPC API for consistancy but as this - can be a very long running operation usage is /not/ recommended. - It would be better to use the CLI. See documentation in api.py. - This command may be removed from the API in a future release. - """ - self.log("import_tree",name=mirror_name,token=token) - self.check_access(token, "import_tree") - return self.api.import_tree(mirror_url,mirror_name,network_root) - - def get_kickstart_templates(self,token): - """ - Returns all of the kickstarts that are in use by the system. - """ - self.log("get_kickstart_templates",token=token) self.check_access(token, "get_kickstart_templates") files = {} for x in self.api.profiles(): @@ -1075,10 +1007,7 @@ class CobblerReadWriteXMLRPCInterface(CobblerXMLRPCInterface): """ self.log("read_or_write_kickstart_template",name=kickstart_file,token=token) - if is_read: - self.check_access(token,"read_kickstart",kickstart_file) - else: - self.check_access(token,"modify_kickstart",kickstart_file) + self.check_access(token,"read_or_write_kickstart_templates",kickstart_file,is_read) if kickstart_file.find("..") != -1 or not kickstart_file.startswith("/"): raise CX(_("tainted file location")) diff --git a/cobbler/services.py b/cobbler/services.py index fde62bb..70153a0 100644 --- a/cobbler/services.py +++ b/cobbler/services.py @@ -61,12 +61,12 @@ class CobblerSvc(object): def index(self,**args): return "no mode specified" - def ks(self,profile=None,system=None,REMOTE_ADDR=None,REMOTE_MAC=None,reg=None,**rest): + def ks(self,profile=None,system=None,REMOTE_ADDR=None,REMOTE_MAC=None,**rest): """ Generate kickstart files... """ self.__xmlrpc_setup() - return self.remote.generate_kickstart(profile,system,REMOTE_ADDR,REMOTE_MAC,reg) + return self.remote.generate_kickstart(profile,system,REMOTE_ADDR,REMOTE_MAC) def trig(self,mode="?",profile=None,system=None,REMOTE_ADDR=None,**rest): """ -- cgit