summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael DeHaan <mdehaan@redhat.com>2008-04-03 14:39:50 -0400
committerMichael DeHaan <mdehaan@redhat.com>2008-04-03 14:39:50 -0400
commitae3014f2498a8566acbe4439eb0a6916456ce27f (patch)
tree9315bc2bf4ccddfa3ec21dc2c07271f00daa5de6
parent3c08531c4e913268b94618b9939a44161d2dc556 (diff)
downloadcobbler-ae3014f2498a8566acbe4439eb0a6916456ce27f.tar.gz
cobbler-ae3014f2498a8566acbe4439eb0a6916456ce27f.tar.xz
cobbler-ae3014f2498a8566acbe4439eb0a6916456ce27f.zip
Fix default ownership on cobbler owned objects to come from the settings
file (who's default is "admin" through the CLI) ... the webui will prepopulate the field with the name of the logged in user.
-rw-r--r--CHANGELOG1
-rw-r--r--cobbler/item.py1
-rw-r--r--cobbler/item_distro.py2
-rw-r--r--cobbler/item_profile.py2
-rw-r--r--cobbler/item_repo.py7
-rw-r--r--cobbler/item_system.py3
-rw-r--r--cobbler/settings.py2
-rw-r--r--config/settings2
-rw-r--r--tests/tests.py12
9 files changed, 24 insertions, 8 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 804254a1..60e6369d 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -9,6 +9,7 @@ Cobbler CHANGELOG
- tftpboot location is now inferred from xinetd config (added for F9 compat)
- added authn_ldap and stub for authz_configfile
- authz_configfile allows filtering ldap/other users by config file
+- WebUI now has checkbox on distro/profile for deleting child objects
- ??? - 0.8.3
- fix WebUI documentation URL
diff --git a/cobbler/item.py b/cobbler/item.py
index f51f9599..027472a3 100644
--- a/cobbler/item.py
+++ b/cobbler/item.py
@@ -51,7 +51,6 @@ class Item(serializable.Serializable):
self.clear(is_subobject) # reset behavior differs for inheritance cases
self.parent = '' # all objects by default are not subobjects
self.children = {} # caching for performance reasons, not serialized
- self.owners = []
self.log_func = self.config.api.log
def clear(self):
diff --git a/cobbler/item_distro.py b/cobbler/item_distro.py
index 3b825956..98eaae71 100644
--- a/cobbler/item_distro.py
+++ b/cobbler/item_distro.py
@@ -77,6 +77,8 @@ class Distro(item.Item):
if self.ks_meta != "<<inherit>>" and type(self.ks_meta) != dict:
self.set_ksmeta(self.ks_meta)
+ self.set_owners(self.owners)
+
return self
def set_kernel(self,kernel):
diff --git a/cobbler/item_profile.py b/cobbler/item_profile.py
index 9135e534..2e3a5391 100644
--- a/cobbler/item_profile.py
+++ b/cobbler/item_profile.py
@@ -89,6 +89,8 @@ class Profile(item.Item):
if self.repos != "<<inherit>>" and type(self.ks_meta) != list:
self.set_repos(self.repos)
+ self.set_owners(self.owners)
+
return self
def set_parent(self,parent_name):
diff --git a/cobbler/item_repo.py b/cobbler/item_repo.py
index e796561b..9063c5b3 100644
--- a/cobbler/item_repo.py
+++ b/cobbler/item_repo.py
@@ -39,7 +39,7 @@ class Repo(item.Item):
self.depth = 2 # arbitrary, as not really apart of the graph
self.arch = "" # use default arch
self.yumopts = {}
- self.owners = []
+ self.owners = self.settings.default_ownership
def from_datastruct(self,seed_data):
self.parent = self.load_item(seed_data, 'parent')
@@ -52,10 +52,11 @@ class Repo(item.Item):
self.arch = self.load_item(seed_data, 'arch')
self.depth = self.load_item(seed_data, 'depth', 2)
self.yumopts = self.load_item(seed_data, 'yumopts', {})
- self.owners = self.load_item(seed_data, 'owners', [])
+ self.owners = self.load_item(seed_data, 'owners', self.settings.default_ownership)
- # force this to be saved as a boolean
+ # coerce types from input file
self.set_keep_updated(self.keep_updated)
+ self.set_owners(self.owners)
return self
diff --git a/cobbler/item_system.py b/cobbler/item_system.py
index 7346d33d..d09d579e 100644
--- a/cobbler/item_system.py
+++ b/cobbler/item_system.py
@@ -128,8 +128,9 @@ class System(item.Item):
# explicitly re-call the set_name function to possibily populate MAC/IP.
self.set_name(self.name)
- # coerce this into a boolean
+ # coerce types from input file
self.set_netboot_enabled(self.netboot_enabled)
+ self.set_owners(self.owners)
return self
diff --git a/cobbler/settings.py b/cobbler/settings.py
index 4372f3ad..0ef2ab79 100644
--- a/cobbler/settings.py
+++ b/cobbler/settings.py
@@ -33,7 +33,7 @@ DEFAULTS = {
"default_virt_type" : "auto",
"default_virt_file_size" : "5",
"default_virt_ram" : "512",
- "default_ownership" : [ "admin" ],
+ "default_ownership" : "admin",
"dhcpd_conf" : "/etc/dhcpd.conf",
"dhcpd_bin" : "/usr/sbin/dhcpd",
"dnsmasq_bin" : "/usr/sbin/dnsmasq",
diff --git a/config/settings b/config/settings
index f4c2487b..36cd9b4c 100644
--- a/config/settings
+++ b/config/settings
@@ -9,7 +9,7 @@ default_virt_bridge: xenbr0
default_virt_type: auto
default_virt_file_size: 5
default_virt_ram: 512
-default_ownership: [ "admin" ]
+default_ownership: "admin"
dhcpd_bin: /usr/sbin/dhcpd
dhcpd_conf: /etc/dhcpd.conf
dnsmasq_bin: /usr/sbin/dnsmasq
diff --git a/tests/tests.py b/tests/tests.py
index 2c055ba0..8a86babd 100644
--- a/tests/tests.py
+++ b/tests/tests.py
@@ -73,7 +73,7 @@ class BootTest(unittest.TestCase):
self.assertTrue(distro.set_initrd(self.fk_initrd))
self.assertTrue(self.api.add_distro(distro))
self.assertTrue(self.api.find_distro(name="testdistro0"))
-
+
profile = self.api.new_profile()
self.assertTrue(profile.set_name("testprofile0"))
self.assertTrue(profile.set_distro("testdistro0"))
@@ -109,10 +109,20 @@ class Ownership(BootTest):
fd.write("")
fd.close()
+ # find things we are going to test with
distro = self.api.find_distro(name="testdistro0")
profile = self.api.find_profile(name="testprofile0")
system = self.api.find_system(name="drwily.rdu.redhat.com")
repo = self.api.find_repo(name="test_repo")
+
+ # as we didn't specify an owner for objects, the default
+ # ownership should be as specified in settings
+ default_owner = self.api.settings().default_ownership
+ for obj in [ distro, profile, system, repo ]:
+ self.assertTrue(obj is not None)
+ self.assertEquals(obj.owners, default_owner, "default owner for %s" % obj)
+
+ # verify we can test things
self.assertTrue(distro.set_owners(["superlab","basement1"]))
self.assertTrue(profile.set_owners(["superlab","basement1"]))
self.assertTrue(profile.set_kickstart("/tmp/test_cobbler_kickstart"))