summaryrefslogtreecommitdiffstats
path: root/cobbler
diff options
context:
space:
mode:
authorMichael DeHaan <mdehaan@redhat.com>2008-04-21 18:21:39 -0400
committerMichael DeHaan <mdehaan@redhat.com>2008-04-21 18:21:39 -0400
commit912231cabd05f4b6ffebfde8bce77037281b0f20 (patch)
treedf05629a82767891ec6c061b13d6acab81298f55 /cobbler
parentd02bc788cf637b3e5f8805c03d800170f7e22c32 (diff)
downloadthird_party-cobbler-912231cabd05f4b6ffebfde8bce77037281b0f20.tar.gz
third_party-cobbler-912231cabd05f4b6ffebfde8bce77037281b0f20.tar.xz
third_party-cobbler-912231cabd05f4b6ffebfde8bce77037281b0f20.zip
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.
Diffstat (limited to 'cobbler')
-rw-r--r--cobbler/pxegen.py2
-rw-r--r--cobbler/remote.py79
-rw-r--r--cobbler/services.py4
3 files changed, 6 insertions, 79 deletions
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 + "&reg=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):
"""