pydsdb: Give KeyError when we fail a schema lookup in python
authorAndrew Bartlett <abartlet@samba.org>
Mon, 23 Sep 2013 00:45:01 +0000 (17:45 -0700)
committerMichael Adam <obnox@samba.org>
Tue, 24 Sep 2013 05:44:29 +0000 (07:44 +0200)
This allows sensible exception handling.

Andrew Bartlett

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
source4/dsdb/pydsdb.c

index c9e80c2f1bd3e54e244914aa19b191641c95e830..793c49522b01c0526f217a0516f064d4f543295e 100644 (file)
@@ -327,7 +327,7 @@ static PyObject *py_dsdb_get_attid_from_lDAPDisplayName(PyObject *self, PyObject
 
        a = dsdb_attribute_by_lDAPDisplayName(schema, ldap_display_name);
        if (a == NULL) {
-               PyErr_Format(PyExc_RuntimeError, "Failed to find attribute '%s'", ldap_display_name);
+               PyErr_Format(PyExc_KeyError, "Failed to find attribute '%s'", ldap_display_name);
                return NULL;
        }
 
@@ -361,7 +361,7 @@ static PyObject *py_dsdb_get_systemFlags_from_lDAPDisplayName(PyObject *self, Py
 
        attribute = dsdb_attribute_by_lDAPDisplayName(schema, ldap_display_name);
        if (attribute == NULL) {
-               PyErr_Format(PyExc_RuntimeError, "Failed to find attribute '%s'", ldap_display_name);
+               PyErr_Format(PyExc_KeyError, "Failed to find attribute '%s'", ldap_display_name);
                return NULL;
        }
 
@@ -393,7 +393,7 @@ static PyObject *py_dsdb_get_linkId_from_lDAPDisplayName(PyObject *self, PyObjec
 
        attribute = dsdb_attribute_by_lDAPDisplayName(schema, ldap_display_name);
        if (attribute == NULL) {
-               PyErr_Format(PyExc_RuntimeError, "Failed to find attribute '%s'", ldap_display_name);
+               PyErr_Format(PyExc_KeyError, "Failed to find attribute '%s'", ldap_display_name);
                return NULL;
        }
 
@@ -425,7 +425,7 @@ static PyObject *py_dsdb_get_backlink_from_lDAPDisplayName(PyObject *self, PyObj
 
        attribute = dsdb_attribute_by_lDAPDisplayName(schema, ldap_display_name);
        if (attribute == NULL) {
-               PyErr_Format(PyExc_RuntimeError, "Failed to find attribute '%s'", ldap_display_name);
+               PyErr_Format(PyExc_KeyError, "Failed to find attribute '%s'", ldap_display_name);
                return NULL;
        }
 
@@ -466,7 +466,7 @@ static PyObject *py_dsdb_get_lDAPDisplayName_by_attid(PyObject *self, PyObject *
 
        a = dsdb_attribute_by_attributeID_id(schema, attid);
        if (a == NULL) {
-               PyErr_Format(PyExc_RuntimeError, "Failed to find attribute '0x%08x'", attid);
+               PyErr_Format(PyExc_KeyError, "Failed to find attribute '0x%08x'", attid);
                return NULL;
        }
 
@@ -499,7 +499,7 @@ static PyObject *py_dsdb_get_syntax_oid_from_lDAPDisplayName(PyObject *self, PyO
 
        attribute = dsdb_attribute_by_lDAPDisplayName(schema, ldap_display_name);
        if (attribute == NULL) {
-               PyErr_Format(PyExc_RuntimeError, "Failed to find attribute '%s'", ldap_display_name);
+               PyErr_Format(PyExc_KeyError, "Failed to find attribute '%s'", ldap_display_name);
                return NULL;
        }
 
@@ -542,7 +542,7 @@ static PyObject *py_dsdb_DsReplicaAttribute(PyObject *self, PyObject *args)
 
        a = dsdb_attribute_by_lDAPDisplayName(schema, ldap_display_name);
        if (a == NULL) {
-               PyErr_Format(PyExc_RuntimeError, "Failed to find attribute '%s'", ldap_display_name);
+               PyErr_Format(PyExc_KeyError, "Failed to find attribute '%s'", ldap_display_name);
                return NULL;
        }
 
@@ -637,7 +637,7 @@ static PyObject *py_dsdb_normalise_attributes(PyObject *self, PyObject *args)
 
        a = dsdb_attribute_by_lDAPDisplayName(schema, ldap_display_name);
        if (a == NULL) {
-               PyErr_Format(PyExc_RuntimeError, "Failed to find attribute '%s'", ldap_display_name);
+               PyErr_Format(PyExc_KeyError, "Failed to find attribute '%s'", ldap_display_name);
                return NULL;
        }