Re: [Freeipa-devel] [PATCH] 689 make deepcopy of objectclasses

2011-01-24 Thread Jakub Hrozek
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 01/24/2011 04:50 PM, Rob Crittenden wrote:
 In the host plugin we modify the default set of objectclasses depending
 on what kind of host we're creating. This was actually updating the
 objectclass of the object itself so that the objectclass variable was
 storing duplicate objectclasses (because we sometimes append values).
 
 Make a deepcopy instead.
 
 I also re-ordered some values in the host plugin to match what the unit
 tests expect. It was easier to change in one place than many and have
 the same result :-)
 
 rob
 

I think you sent a wrong patch (688, should have been 689)
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/

iEYEARECAAYFAk09oP8ACgkQHsardTLnvCWNzQCgoWpYWVo4kq4vdRP1/XWqF+8S
smgAoKFYRGzpAvCyrFwiiRE/uiL7X+6l
=+FB/
-END PGP SIGNATURE-

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


Re: [Freeipa-devel] [PATCH] 689 make deepcopy of objectclasses

2011-01-24 Thread Rob Crittenden

Jakub Hrozek wrote:

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 01/24/2011 04:50 PM, Rob Crittenden wrote:

In the host plugin we modify the default set of objectclasses depending
on what kind of host we're creating. This was actually updating the
objectclass of the object itself so that the objectclass variable was
storing duplicate objectclasses (because we sometimes append values).

Make a deepcopy instead.

I also re-ordered some values in the host plugin to match what the unit
tests expect. It was easier to change in one place than many and have
the same result :-)

rob



I think you sent a wrong patch (688, should have been 689)


Ok, here goes.

rob
From 2512a94629e55e3693ec9b348fff09866f21585d Mon Sep 17 00:00:00 2001
From: Rob Crittenden rcrit...@redhat.com
Date: Mon, 24 Jan 2011 10:46:44 -0500
Subject: [PATCH] Make a copy of objectclasses so a call can't update them globally.

In the host plugin we may change the default objectclasses based on
the options selected. This was affecting it globally and causing
subsequent calls to fail.
---
 ipalib/plugins/baseldap.py |3 ++-
 ipalib/plugins/host.py |8 
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py
index e7ccb77..27e543d 100644
--- a/ipalib/plugins/baseldap.py
+++ b/ipalib/plugins/baseldap.py
@@ -23,6 +23,7 @@ Base classes for LDAP plugins.
 import re
 import json
 import time
+from copy import deepcopy
 
 from ipalib import api, crud, errors
 from ipalib import Method, Object
@@ -504,7 +505,7 @@ class LDAPCreate(CallbackInterface, crud.Create):
 ldap = self.obj.backend
 
 entry_attrs = self.args_options_2_entry(*keys, **options)
-entry_attrs['objectclass'] = self.obj.object_class
+entry_attrs['objectclass'] = deepcopy(self.obj.object_class)
 
 if self.obj.object_class_config:
 config = ldap.get_ipa_config()[1]
diff --git a/ipalib/plugins/host.py b/ipalib/plugins/host.py
index 6947d90..3225a78 100644
--- a/ipalib/plugins/host.py
+++ b/ipalib/plugins/host.py
@@ -323,15 +323,15 @@ class host_add(LDAPCreate):
 entry_attrs['krbprincipalname'] = 'host/%s@%s' % (
 keys[-1], self.api.env.realm
 )
+if 'krbprincipalaux' not in entry_attrs:
+entry_attrs['objectclass'].append('krbprincipalaux')
 if 'krbprincipal' not in entry_attrs:
 entry_attrs['objectclass'].append('krbprincipal')
-if 'krbprincipal' not in entry_attrs:
-entry_attrs['objectclass'].append('krbprincipalaux')
 else:
-if 'krbprincipal' in entry_attrs['objectclass']:
-entry_attrs['objectclass'].remove('krbprincipal')
 if 'krbprincipalaux' in entry_attrs['objectclass']:
 entry_attrs['objectclass'].remove('krbprincipalaux')
+if 'krbprincipal' in entry_attrs['objectclass']:
+entry_attrs['objectclass'].remove('krbprincipal')
 if 'random' in options:
 if options.get('random'):
 entry_attrs['userpassword'] = ipa_generate_password()
-- 
1.7.3.4

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Re: [Freeipa-devel] [PATCH] 689 make deepcopy of objectclasses

2011-01-24 Thread Jakub Hrozek
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 01/24/2011 04:58 PM, Rob Crittenden wrote:
 Jakub Hrozek wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 On 01/24/2011 04:50 PM, Rob Crittenden wrote:
 In the host plugin we modify the default set of objectclasses depending
 on what kind of host we're creating. This was actually updating the
 objectclass of the object itself so that the objectclass variable was
 storing duplicate objectclasses (because we sometimes append values).

 Make a deepcopy instead.

 I also re-ordered some values in the host plugin to match what the unit
 tests expect. It was easier to change in one place than many and have
 the same result :-)

 rob


 I think you sent a wrong patch (688, should have been 689)
 
 Ok, here goes.
 
 rob

Ack
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/

iEYEARECAAYFAk09rEAACgkQHsardTLnvCV5zACgih6krPeHUe4UzDEccDlYYV8n
g9AAoN47pXdhXtVDimqi+OUX1d1whtmT
=gYvF
-END PGP SIGNATURE-

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel