diff options
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | cobbler/item.py | 1 | ||||
-rw-r--r-- | cobbler/item_distro.py | 2 | ||||
-rw-r--r-- | cobbler/item_profile.py | 2 | ||||
-rw-r--r-- | cobbler/item_repo.py | 7 | ||||
-rw-r--r-- | cobbler/item_system.py | 3 | ||||
-rw-r--r-- | cobbler/settings.py | 2 | ||||
-rw-r--r-- | config/settings | 2 | ||||
-rw-r--r-- | tests/tests.py | 12 |
9 files changed, 24 insertions, 8 deletions
@@ -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")) |