summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 804254a..60e6369 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 f51f959..027472a 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 3b82595..98eaae7 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 9135e53..2e3a539 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 e796561..9063c5b 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 7346d33..d09d579 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 4372f3a..0ef2ab7 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 f4c2487..36cd9b4 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 2c055ba..8a86bab 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"))