mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2026-10-13 00:42:03 -05:00
Applied Rob's errors patch
This commit is contained in:
1 parent
48a278047d
commit
5717c9d668
21 files changed
+206
-109
No files matched your search
@@ -320,14 +320,6 @@ class MidairCollision(GenericError):
|
||||
"""Change collided with another change"""
|
||||
faultCode = 1002
|
||||
|
||||
class NotFound(GenericError):
|
||||
"""Entry not found"""
|
||||
faultCode = 1003
|
||||
|
||||
class DuplicateEntry(GenericError):
|
||||
"""This entry already exists"""
|
||||
faultCode = 1004
|
||||
|
||||
class MissingDN(GenericError):
|
||||
"""The distinguished name (DN) is missing"""
|
||||
faultCode = 1005
|
||||
@@ -360,14 +352,6 @@ class PrincipalError(GenericError):
|
||||
"""There is a problem with the kerberos principal"""
|
||||
faultCode = 1012
|
||||
|
||||
class MalformedServicePrincipal(PrincipalError):
|
||||
"""The requested service principal is not of the form: service/fully-qualified host name"""
|
||||
faultCode = 1013
|
||||
|
||||
class RealmMismatch(PrincipalError):
|
||||
"""The realm for the principal does not match the realm for this IPA server"""
|
||||
faultCode = 1014
|
||||
|
||||
class PrincipalRequired(PrincipalError):
|
||||
"""You cannot remove IPA server service principals"""
|
||||
faultCode = 1015
|
||||
@@ -412,10 +396,6 @@ class DefaultGroup(ConfigurationError):
|
||||
"""You cannot remove the default users group"""
|
||||
faultCode = 1025
|
||||
|
||||
class HostService(ConfigurationError):
|
||||
"""You must enroll a host in order to create a host service"""
|
||||
faultCode = 1026
|
||||
|
||||
class InsufficientAccess(GenericError):
|
||||
"""You do not have permission to perform this task"""
|
||||
faultCode = 1027
|
||||
|
||||
@@ -599,6 +599,85 @@ class ExecutionError(PublicError):
|
||||
|
||||
errno = 4000
|
||||
|
||||
class NotFound(ExecutionError):
|
||||
"""
|
||||
**4001** Raised when an entry is not found.
|
||||
|
||||
For example:
|
||||
|
||||
>>> raise NotFound(msg='Entry not found')
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
NotFound: Entry not found
|
||||
|
||||
"""
|
||||
|
||||
errno = 4001
|
||||
format = _('%(msg)s')
|
||||
|
||||
class DuplicateEntry(ExecutionError):
|
||||
"""
|
||||
**4002** Raised when an entry already exists.
|
||||
|
||||
For example:
|
||||
|
||||
>>> raise DuplicateEntry
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
DuplicateEntry: This entry already exists
|
||||
|
||||
"""
|
||||
|
||||
errno = 4002
|
||||
format = _('This entry already exists')
|
||||
|
||||
class HostService(ExecutionError):
|
||||
"""
|
||||
**4003** Raised when a host service principal is requested
|
||||
|
||||
For example:
|
||||
|
||||
>>> raise HostService
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
HostService: You must enroll a host in order to create a host service
|
||||
|
||||
"""
|
||||
|
||||
errno = 4003
|
||||
format = _('You must enroll a host in order to create a host service')
|
||||
|
||||
class MalformedServicePrincipal(ExecutionError):
|
||||
"""
|
||||
**4004** Raised when a service principal is not of the form: service/fully-qualified host name
|
||||
|
||||
For example:
|
||||
|
||||
>>> raise MalformedServicePrincipal
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
MalformedServicePrincipal: Service principal is not of the form: service/fully-qualified host name
|
||||
|
||||
"""
|
||||
|
||||
errno = 4004
|
||||
format = _('Service principal is not of the form: service/fully-qualified host name')
|
||||
|
||||
class RealmMismatch(ExecutionError):
|
||||
"""
|
||||
**4005** Raised when the requested realm does not match the IPA realm
|
||||
|
||||
For example:
|
||||
|
||||
>>> raise RealmMismatch
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
RealmMismatch: The realm for the principal does not match the realm for this IPA server
|
||||
|
||||
"""
|
||||
|
||||
errno = 4005
|
||||
format = _('The realm for the principal does not match the realm for this IPA server')
|
||||
|
||||
class BuiltinError(ExecutionError):
|
||||
"""
|
||||
|
||||
@@ -24,7 +24,7 @@ RFC 2707bis http://www.padl.com/~lukeh/rfc2307bis.txt
|
||||
"""
|
||||
|
||||
from ldap import explode_dn
|
||||
from ipalib import crud, errors
|
||||
from ipalib import crud, errors2
|
||||
from ipalib import api, Str, Flag, Object, Command
|
||||
|
||||
map_attributes = ['automountMapName', 'description', ]
|
||||
@@ -199,7 +199,7 @@ class automount_delkey(crud.Del):
|
||||
keydn = k.get('dn')
|
||||
break
|
||||
if not keydn:
|
||||
raise errors.NotFound
|
||||
raise errors2.NotFound(msg='Entry not found')
|
||||
return ldap.delete(keydn)
|
||||
def output_for_cli(self, textui, result, *args, **options):
|
||||
"""
|
||||
@@ -277,7 +277,7 @@ class automount_modkey(crud.Mod):
|
||||
keydn = k.get('dn')
|
||||
break
|
||||
if not keydn:
|
||||
raise errors.NotFound
|
||||
raise errors2.NotFound(msg='Entry not found')
|
||||
return ldap.update(keydn, **kw)
|
||||
|
||||
def output_for_cli(self, textui, result, *args, **options):
|
||||
@@ -425,7 +425,7 @@ class automount_showkey(crud.Get):
|
||||
keydn = k.get('dn')
|
||||
break
|
||||
if not keydn:
|
||||
raise errors.NotFound
|
||||
raise errors2.NotFound(msg='Entry not found')
|
||||
# FIXME: should kw contain the list of attributes to display?
|
||||
if kw.get('all', False):
|
||||
return ldap.retrieve(keydn)
|
||||
@@ -466,7 +466,7 @@ class automount_getkeys(Command):
|
||||
dn = ldap.find_entry_dn("automountmapname", mapname, "automountmap", api.env.container_automount)
|
||||
try:
|
||||
keys = ldap.get_one_entry(dn, 'objectclass=*', ['automountkey'])
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
keys = []
|
||||
|
||||
return keys
|
||||
|
||||
@@ -25,7 +25,6 @@ from ipalib import frontend
|
||||
from ipalib import crud
|
||||
from ipalib.frontend import Param
|
||||
from ipalib import api
|
||||
from ipalib import errors
|
||||
|
||||
class delegation(frontend.Object):
|
||||
"""
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
Frontend plugins for group (Identity).
|
||||
"""
|
||||
|
||||
from ipalib import api, crud, errors
|
||||
from ipalib import api, crud, errors, errors2
|
||||
from ipalib import Object, Command # Plugin base classes
|
||||
from ipalib import Str, Int # Parameter types
|
||||
|
||||
@@ -283,7 +283,7 @@ class group_add_member(Command):
|
||||
try:
|
||||
member_dn = ldap.find_entry_dn("cn", m)
|
||||
to_add.append(member_dn)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
add_failed.append(m)
|
||||
continue
|
||||
|
||||
@@ -293,7 +293,7 @@ class group_add_member(Command):
|
||||
try:
|
||||
member_dn = ldap.find_entry_dn("uid", m)
|
||||
to_add.append(member_dn)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
add_failed.append(m)
|
||||
continue
|
||||
|
||||
@@ -350,7 +350,7 @@ class group_remove_member(Command):
|
||||
try:
|
||||
member_dn = ldap.find_entry_dn("cn", m)
|
||||
to_remove.append(member_dn)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
remove_failed.append(m)
|
||||
continue
|
||||
|
||||
@@ -359,7 +359,7 @@ class group_remove_member(Command):
|
||||
try:
|
||||
member_dn = ldap.find_entry_dn("uid", m,)
|
||||
to_remove.append(member_dn)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
remove_failed.append(m)
|
||||
continue
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
Frontend plugins for host/machine Identity.
|
||||
"""
|
||||
|
||||
from ipalib import api, crud, errors, util
|
||||
from ipalib import api, crud, errors2, util
|
||||
from ipalib import Object # Plugin base class
|
||||
from ipalib import Str, Flag # Parameter types
|
||||
|
||||
@@ -38,7 +38,7 @@ def get_host(hostname):
|
||||
hostname = hostname[:-1]
|
||||
try:
|
||||
dn = ldap.find_entry_dn("cn", hostname, "ipaHost")
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
dn = ldap.find_entry_dn("serverhostname", hostname, "ipaHost")
|
||||
return dn
|
||||
|
||||
@@ -120,7 +120,7 @@ class host_add(crud.Add):
|
||||
|
||||
current = util.get_current_principal()
|
||||
if not current:
|
||||
raise errors.NotFound('Unable to determine current user')
|
||||
raise errors2.NotFound('Unable to determine current user')
|
||||
kw['enrolledby'] = ldap.find_entry_dn("krbPrincipalName", current, "posixAccount")
|
||||
|
||||
# Get our configuration
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
Frontend plugins for groups of hosts
|
||||
"""
|
||||
|
||||
from ipalib import api, crud, errors
|
||||
from ipalib import api, crud, errors2
|
||||
from ipalib import Object, Command # Plugin base classes
|
||||
from ipalib import Str # Parameter types
|
||||
|
||||
@@ -249,7 +249,7 @@ class hostgroup_add_member(Command):
|
||||
try:
|
||||
member_dn = ldap.find_entry_dn("cn", m, hostgroup_filter)
|
||||
to_add.append(member_dn)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
add_failed.append(m)
|
||||
continue
|
||||
|
||||
@@ -259,7 +259,7 @@ class hostgroup_add_member(Command):
|
||||
try:
|
||||
member_dn = ldap.find_entry_dn("cn", m, "ipaHost")
|
||||
to_add.append(member_dn)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
add_failed.append(m)
|
||||
continue
|
||||
|
||||
@@ -317,7 +317,7 @@ class hostgroup_remove_member(Command):
|
||||
try:
|
||||
member_dn = ldap.find_entry_dn("cn", m, hostgroup_filter)
|
||||
to_remove.append(member_dn)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
remove_failed.append(m)
|
||||
continue
|
||||
|
||||
@@ -327,7 +327,7 @@ class hostgroup_remove_member(Command):
|
||||
try:
|
||||
member_dn = ldap.find_entry_dn("cn", m, "ipaHost")
|
||||
to_remove.append(member_dn)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
remove_failed.append(m)
|
||||
continue
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
Frontend plugin for netgroups.
|
||||
"""
|
||||
|
||||
from ipalib import api, crud, errors
|
||||
from ipalib import api, crud, errors2
|
||||
from ipalib import Object, Command # Plugin base classes
|
||||
from ipalib import Str # Parameter types
|
||||
from ipalib import uuid
|
||||
@@ -53,7 +53,7 @@ def find_members(ldap, failed, members, attribute, filter=None):
|
||||
try:
|
||||
member_dn = ldap.find_entry_dn(attribute, m, filter)
|
||||
found.append(member_dn)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
failed.append(m)
|
||||
continue
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
Frontend plugins for service (Identity).
|
||||
"""
|
||||
|
||||
from ipalib import api, crud, errors
|
||||
from ipalib import api, crud, errors2
|
||||
from ipalib import Object # Plugin base classes
|
||||
from ipalib import Str, Flag # Parameter types
|
||||
|
||||
@@ -72,11 +72,11 @@ class service_add(crud.Add):
|
||||
# may not include the realm.
|
||||
sp = principal.split('/')
|
||||
if len(sp) != 2:
|
||||
raise errors.MalformedServicePrincipal
|
||||
raise errors2.MalformedServicePrincipal
|
||||
service = sp[0]
|
||||
|
||||
if service.lower() == "host":
|
||||
raise errors.HostService
|
||||
raise errors2.HostService
|
||||
|
||||
sr = sp[1].split('@')
|
||||
if len(sr) == 1:
|
||||
@@ -86,7 +86,7 @@ class service_add(crud.Add):
|
||||
hostname = sr[0].lower()
|
||||
realm = sr[1]
|
||||
else:
|
||||
raise MalformedServicePrincipal
|
||||
raise errors2.MalformedServicePrincipal
|
||||
|
||||
"""
|
||||
FIXME once DNS client is done
|
||||
@@ -102,7 +102,7 @@ class service_add(crud.Add):
|
||||
|
||||
# At some point we'll support multiple realms
|
||||
if (realm != self.api.env.realm):
|
||||
raise errors.RealmMismatch
|
||||
raise errors2.RealmMismatch
|
||||
|
||||
# Put the principal back together again
|
||||
princ_name = service + "/" + hostname + "@" + realm
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
Frontend plugins for user (Identity).
|
||||
"""
|
||||
|
||||
from ipalib import api, crud, errors
|
||||
from ipalib import api, crud, errors2
|
||||
from ipalib import Object, Command # Plugin base classes
|
||||
from ipalib import Str, Password, Flag, Int # Parameter types
|
||||
|
||||
@@ -99,6 +99,9 @@ class user(Object):
|
||||
cli_name='uid',
|
||||
doc='The uid to use for this user. If not included one is automatically set.',
|
||||
),
|
||||
Str('street?',
|
||||
doc='The street address',
|
||||
),
|
||||
)
|
||||
|
||||
api.register(user)
|
||||
@@ -151,9 +154,9 @@ class user_add(crud.Add):
|
||||
default_group = ldap.retrieve(group_dn, ['dn','gidNumber'])
|
||||
if default_group:
|
||||
kw['gidnumber'] = default_group.get('gidnumber')
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
# Fake an LDAP error so we can return something useful to the kw
|
||||
raise errors.NotFound, "The default group for new kws, '%s', cannot be found." % config.get('ipadefaultprimarygroup')
|
||||
raise errors2.NotFound, "The default group for new kws, '%s', cannot be found." % config.get('ipadefaultprimarygroup')
|
||||
except Exception, e:
|
||||
# catch everything else
|
||||
raise e
|
||||
|
||||
@@ -32,7 +32,7 @@ import ldap.sasl
|
||||
from ldap.controls import LDAPControl,DecodeControlTuples,EncodeControlTuples
|
||||
from ldap.ldapobject import SimpleLDAPObject
|
||||
from ipaserver import ipautil
|
||||
from ipalib import errors
|
||||
from ipalib import errors, errors2
|
||||
|
||||
# Global variable to define SASL auth
|
||||
sasl_auth = ldap.sasl.sasl({},'GSSAPI')
|
||||
@@ -294,12 +294,12 @@ class IPAdmin(SimpleLDAPObject):
|
||||
res = self.search(*args)
|
||||
objtype, obj = self.result(res)
|
||||
except ldap.NO_SUCH_OBJECT, e:
|
||||
raise errors.NotFound, notfound(args)
|
||||
raise errors2.NotFound(msg=notfound(args))
|
||||
except ldap.LDAPError, e:
|
||||
raise errors.DatabaseError, e
|
||||
|
||||
if not obj:
|
||||
raise errors.NotFound, notfound(args)
|
||||
raise errors2.NotFound(msg=notfound(args))
|
||||
|
||||
elif isinstance(obj,Entry):
|
||||
return obj
|
||||
@@ -323,7 +323,7 @@ class IPAdmin(SimpleLDAPObject):
|
||||
raise e
|
||||
|
||||
if not obj:
|
||||
raise errors.NotFound, notfound(args)
|
||||
raise errors2.NotFound(msg=notfound(args))
|
||||
|
||||
entries = []
|
||||
for s in obj:
|
||||
@@ -360,7 +360,7 @@ class IPAdmin(SimpleLDAPObject):
|
||||
raise e
|
||||
|
||||
if not entries:
|
||||
raise errors.NotFound, notfound(args)
|
||||
raise errors2.NotFound(msg=notfound(args))
|
||||
|
||||
if partial == 1:
|
||||
counter = -1
|
||||
@@ -380,7 +380,7 @@ class IPAdmin(SimpleLDAPObject):
|
||||
self.set_option(ldap.OPT_SERVER_CONTROLS, sctrl)
|
||||
self.add_s(*args)
|
||||
except ldap.ALREADY_EXISTS, e:
|
||||
raise errors.DuplicateEntry, "Entry already exists"
|
||||
raise errors2.DuplicateEntry
|
||||
except ldap.LDAPError, e:
|
||||
raise errors.DatabaseError, e
|
||||
return True
|
||||
|
||||
+19
-10
@@ -82,6 +82,16 @@ class ldap(CrudBackend):
|
||||
self.api.env.basedn,
|
||||
)
|
||||
|
||||
def make_taskgroup_dn(self, cn):
|
||||
"""
|
||||
Construct group of tasks dn from cn.
|
||||
"""
|
||||
return 'cn=%s,%s,%s' % (
|
||||
self.dn.escape_dn_chars(cn),
|
||||
self.api.env.container_taskgroup,
|
||||
self.api.env.basedn,
|
||||
)
|
||||
|
||||
def make_service_dn(self, principal):
|
||||
"""
|
||||
Construct service principal dn from principal name
|
||||
@@ -227,14 +237,12 @@ class ldap(CrudBackend):
|
||||
else:
|
||||
assert type(value) in (str, unicode, bool, int, float)
|
||||
yield (key, value)
|
||||
yield (key, value)
|
||||
|
||||
def create(self, **kw):
|
||||
if servercore.entry_exists(kw['dn']):
|
||||
raise errors.DuplicateEntry("entry already exists")
|
||||
raise errors2.DuplicateEntry
|
||||
kw = dict(self.strip_none(kw))
|
||||
|
||||
|
||||
entry = ipaldap.Entry(kw['dn'])
|
||||
|
||||
# dn isn't allowed to be in the entry itself
|
||||
@@ -251,19 +259,20 @@ class ldap(CrudBackend):
|
||||
return servercore.get_entry_by_dn(dn, attributes)
|
||||
|
||||
def update(self, dn, **kw):
|
||||
result = self.retrieve(dn, ["*"])
|
||||
start_keys = kw.keys()
|
||||
result = self.retrieve(dn, ["*"] + kw.keys())
|
||||
|
||||
entry = ipaldap.Entry((dn, servercore.convert_scalar_values(result)))
|
||||
start_keys = kw.keys()
|
||||
kw = dict(self.strip_none(kw))
|
||||
end_keys = kw.keys()
|
||||
removed_keys = list(set(start_keys) - set(end_keys))
|
||||
for k in kw:
|
||||
entry.setValues(k, kw[k])
|
||||
|
||||
remove_keys = list(set(start_keys) - set(kw.keys()))
|
||||
for k in remove_keys:
|
||||
for k in removed_keys:
|
||||
entry.delAttr(k)
|
||||
|
||||
servercore.update_entry(entry.toDict(), remove_keys)
|
||||
servercore.update_entry(entry.toDict(), removed_keys)
|
||||
|
||||
return self.retrieve(dn)
|
||||
|
||||
@@ -300,13 +309,13 @@ class ldap(CrudBackend):
|
||||
try:
|
||||
exact_results = servercore.search(search_base,
|
||||
exact_match_filter, attributes)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
exact_results = [0]
|
||||
|
||||
try:
|
||||
partial_results = servercore.search(search_base,
|
||||
partial_match_filter, attributes)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
partial_results = [0]
|
||||
|
||||
exact_counter = exact_results[0]
|
||||
|
||||
@@ -23,7 +23,7 @@ import re
|
||||
from ipalib.request import context
|
||||
from ipaserver import ipaldap
|
||||
import ipautil
|
||||
from ipalib import errors
|
||||
from ipalib import errors, errors2
|
||||
from ipalib import api
|
||||
|
||||
def convert_entry(ent):
|
||||
@@ -186,7 +186,7 @@ def entry_exists(dn):
|
||||
try:
|
||||
get_base_entry(dn, "objectclass=*", ['dn','objectclass'])
|
||||
return True
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
return False
|
||||
|
||||
def get_user_by_uid (uid, sattrs):
|
||||
@@ -270,7 +270,7 @@ def search(base, filter, attributes, timelimit=1, sizelimit=3000):
|
||||
results = context.ldap.conn.getListAsync(base, ldap.SCOPE_SUBTREE,
|
||||
filter, attributes, 0, None, None, timelimit, sizelimit)
|
||||
except ldap.NO_SUCH_OBJECT:
|
||||
raise errors.NotFound
|
||||
raise errors2.NotFound
|
||||
|
||||
counter = results[0]
|
||||
entries = [counter]
|
||||
@@ -317,7 +317,7 @@ def get_ipa_config():
|
||||
config = get_sub_entry("cn=etc," + api.env.basedn, searchfilter)
|
||||
except ldap.NO_SUCH_OBJECT, e:
|
||||
# FIXME
|
||||
raise errors.NotFound
|
||||
raise errors2.NotFound
|
||||
|
||||
return config
|
||||
|
||||
@@ -409,12 +409,12 @@ def add_member_to_group(member_dn, group_dn, memberattr='member'):
|
||||
|
||||
group = get_entry_by_dn(group_dn, None)
|
||||
if group is None:
|
||||
raise errors.NotFound
|
||||
raise errors2.NotFound
|
||||
|
||||
# check to make sure member_dn exists
|
||||
member_entry = get_base_entry(member_dn, "(objectClass=*)", ['dn','objectclass'])
|
||||
if not member_entry:
|
||||
raise errors.NotFound
|
||||
raise errors2.NotFound
|
||||
|
||||
# Add the new member to the group member attribute
|
||||
members = group.get(memberattr, [])
|
||||
@@ -433,7 +433,7 @@ def remove_member_from_group(member_dn, group_dn, memberattr='member'):
|
||||
|
||||
group = get_entry_by_dn(group_dn, None)
|
||||
if group is None:
|
||||
raise errors.NotFound
|
||||
raise errors2.NotFound
|
||||
"""
|
||||
if group.get('cn') == "admins":
|
||||
member = get_entry_by_dn(member_dn, ['dn','uid'])
|
||||
|
||||
@@ -70,7 +70,7 @@ class test_Service(XMLRPC_test):
|
||||
"""
|
||||
try:
|
||||
res = api.Command['automount_addkey'](**self.key_kw)
|
||||
except errors.DuplicateEntry:
|
||||
except errors2.DuplicateEntry:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
@@ -145,7 +145,7 @@ class test_Service(XMLRPC_test):
|
||||
# Verify that it is gone
|
||||
try:
|
||||
res = api.Command['automount_showkey'](**delkey_kw)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
@@ -160,7 +160,7 @@ class test_Service(XMLRPC_test):
|
||||
# Verify that it is gone
|
||||
try:
|
||||
res = api.Command['automount_showmap'](self.mapname)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
@@ -173,7 +173,7 @@ class test_Service(XMLRPC_test):
|
||||
key_kw={'automountmapname': self.mapname, 'automountkey': self.keyname2}
|
||||
try:
|
||||
res = api.Command['automount_showkey'](**key_kw)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
@@ -216,7 +216,7 @@ class test_Indirect(XMLRPC_test):
|
||||
# Verify that it is gone
|
||||
try:
|
||||
res = api.Command['automount_showkey'](**delkey_kw)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
@@ -231,7 +231,7 @@ class test_Indirect(XMLRPC_test):
|
||||
# Verify that it is gone
|
||||
try:
|
||||
res = api.Command['automount_showmap'](self.mapname)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
@@ -51,10 +51,10 @@ class test_Group(XMLRPC_test):
|
||||
"""
|
||||
try:
|
||||
res = api.Command['group_add'](**self.kw)
|
||||
except errors.DuplicateEntry:
|
||||
except errors2.DuplicateEntry:
|
||||
pass
|
||||
|
||||
def test_add2(self):
|
||||
def test_add3(self):
|
||||
"""
|
||||
Test the `xmlrpc.group_add` method.
|
||||
"""
|
||||
@@ -71,7 +71,7 @@ class test_Group(XMLRPC_test):
|
||||
kw={}
|
||||
kw['groups'] = self.cn2
|
||||
res = api.Command['group_add_member'](self.cn, **kw)
|
||||
assert res == []
|
||||
assert res == tuple()
|
||||
|
||||
def test_add_member2(self):
|
||||
"""
|
||||
@@ -152,7 +152,7 @@ class test_Group(XMLRPC_test):
|
||||
# Verify that it is gone
|
||||
try:
|
||||
res = api.Command['group_show'](self.cn)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
@@ -167,7 +167,7 @@ class test_Group(XMLRPC_test):
|
||||
# Verify that it is gone
|
||||
try:
|
||||
res = api.Command['group_show'](self.cn2)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
@@ -117,7 +117,7 @@ class test_Host(XMLRPC_test):
|
||||
# Verify that it is gone
|
||||
try:
|
||||
res = api.Command['host_show'](self.cn)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
@@ -65,7 +65,7 @@ class test_Host(XMLRPC_test):
|
||||
kw={}
|
||||
kw['hosts'] = self.host_cn
|
||||
res = api.Command['hostgroup_add_member'](self.cn, **kw)
|
||||
assert res == []
|
||||
assert res == tuple()
|
||||
|
||||
def test_doshow(self):
|
||||
"""
|
||||
@@ -111,7 +111,7 @@ class test_Host(XMLRPC_test):
|
||||
kw={}
|
||||
kw['hosts'] = self.host_cn
|
||||
res = api.Command['hostgroup_remove_member'](self.cn, **kw)
|
||||
assert res == []
|
||||
assert res == tuple()
|
||||
|
||||
def test_remove(self):
|
||||
"""
|
||||
@@ -123,7 +123,7 @@ class test_Host(XMLRPC_test):
|
||||
# Verify that it is gone
|
||||
try:
|
||||
res = api.Command['hostgroup_show'](self.cn)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
@@ -138,7 +138,7 @@ class test_Host(XMLRPC_test):
|
||||
# Verify that it is gone
|
||||
try:
|
||||
res = api.Command['host_show'](self.host_cn)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
@@ -28,6 +28,8 @@ from ipalib import errors
|
||||
|
||||
|
||||
def is_member_of(members, candidate):
|
||||
if isinstance(members, tuple):
|
||||
members = list(members)
|
||||
if not isinstance(members, list):
|
||||
members = [members]
|
||||
for m in members:
|
||||
@@ -107,22 +109,22 @@ class test_Netgroup(XMLRPC_test):
|
||||
kw={}
|
||||
kw['hosts'] = self.host_cn
|
||||
res = api.Command['netgroup_add_member'](self.ng_cn, **kw)
|
||||
assert res == []
|
||||
assert res == tuple()
|
||||
|
||||
kw={}
|
||||
kw['hostgroups'] = self.hg_cn
|
||||
res = api.Command['netgroup_add_member'](self.ng_cn, **kw)
|
||||
assert res == []
|
||||
assert res == tuple()
|
||||
|
||||
kw={}
|
||||
kw['users'] = self.user_uid
|
||||
res = api.Command['netgroup_add_member'](self.ng_cn, **kw)
|
||||
assert res == []
|
||||
assert res == tuple()
|
||||
|
||||
kw={}
|
||||
kw['groups'] = self.group_cn
|
||||
res = api.Command['netgroup_add_member'](self.ng_cn, **kw)
|
||||
assert res == []
|
||||
assert res == tuple()
|
||||
|
||||
def test_addmembers2(self):
|
||||
"""
|
||||
@@ -155,7 +157,7 @@ class test_Netgroup(XMLRPC_test):
|
||||
kw={}
|
||||
kw['hosts'] = "nosuchhost"
|
||||
res = api.Command['netgroup_add_member'](self.ng_cn, **kw)
|
||||
assert res == []
|
||||
assert res == tuple()
|
||||
res = api.Command['netgroup_show'](self.ng_cn)
|
||||
assert res
|
||||
assert is_member_of(res.get('externalhost',[]), kw['hosts'])
|
||||
@@ -206,22 +208,22 @@ class test_Netgroup(XMLRPC_test):
|
||||
kw={}
|
||||
kw['hosts'] = self.host_cn
|
||||
res = api.Command['netgroup_remove_member'](self.ng_cn, **kw)
|
||||
assert res == []
|
||||
assert res == tuple()
|
||||
|
||||
kw={}
|
||||
kw['hostgroups'] = self.hg_cn
|
||||
res = api.Command['netgroup_remove_member'](self.ng_cn, **kw)
|
||||
assert res == []
|
||||
assert res == tuple()
|
||||
|
||||
kw={}
|
||||
kw['users'] = self.user_uid
|
||||
res = api.Command['netgroup_remove_member'](self.ng_cn, **kw)
|
||||
assert res == []
|
||||
assert res == tuple()
|
||||
|
||||
kw={}
|
||||
kw['groups'] = self.group_cn
|
||||
res = api.Command['netgroup_remove_member'](self.ng_cn, **kw)
|
||||
assert res == []
|
||||
assert res == tuple()
|
||||
|
||||
def test_member_remove2(self):
|
||||
"""
|
||||
@@ -257,7 +259,7 @@ class test_Netgroup(XMLRPC_test):
|
||||
# Verify that it is gone
|
||||
try:
|
||||
res = api.Command['netgroup_show'](self.ng_cn)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
@@ -273,7 +275,7 @@ class test_Netgroup(XMLRPC_test):
|
||||
# Verify that it is gone
|
||||
try:
|
||||
res = api.Command['host_show'](self.host_cn)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
@@ -285,7 +287,7 @@ class test_Netgroup(XMLRPC_test):
|
||||
# Verify that it is gone
|
||||
try:
|
||||
res = api.Command['hostgroup_show'](self.hg_cn)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
@@ -297,7 +299,7 @@ class test_Netgroup(XMLRPC_test):
|
||||
# Verify that it is gone
|
||||
try:
|
||||
res = api.Command['user_show'](self.user_uid)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
@@ -309,7 +311,7 @@ class test_Netgroup(XMLRPC_test):
|
||||
# Verify that it is gone
|
||||
try:
|
||||
res = api.Command['group_show'](self.group_cn)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
@@ -45,12 +45,37 @@ class test_Service(XMLRPC_test):
|
||||
|
||||
def test_add_host(self):
|
||||
"""
|
||||
Test adding a host principal using `xmlrpc.service_add` method.
|
||||
Test adding a host principal using `xmlrpc.service_add`. Host
|
||||
services are not allowed.
|
||||
"""
|
||||
kw={'principal':self.hostprincipal}
|
||||
try:
|
||||
res = api.Command['service_add'](**kw)
|
||||
except errors.HostService:
|
||||
except errors2.HostService:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
|
||||
def test_add_malformed1(self):
|
||||
"""
|
||||
Test adding a malformed principal ('foo').
|
||||
"""
|
||||
kw={'principal':'foo'}
|
||||
try:
|
||||
res = api.Command['service_add'](**kw)
|
||||
except errors2.MalformedServicePrincipal:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
|
||||
def test_add_wrongrealm(self):
|
||||
"""
|
||||
Test adding a malformed principal ('HTTP/foo@FOO.NET').
|
||||
"""
|
||||
kw={'principal':'HTTP/foo@FOO.NET'}
|
||||
try:
|
||||
res = api.Command['service_add'](**kw)
|
||||
except errors2.RealmMismatch:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
@@ -82,7 +107,7 @@ class test_Service(XMLRPC_test):
|
||||
# Verify that it is gone
|
||||
try:
|
||||
res = api.Command['service_show'](self.principal)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
@@ -55,7 +55,7 @@ class test_User(XMLRPC_test):
|
||||
"""
|
||||
try:
|
||||
res = api.Command['user_add'](**self.kw)
|
||||
except errors.DuplicateEntry:
|
||||
except errors2.DuplicateEntry:
|
||||
pass
|
||||
|
||||
def test_doshow(self):
|
||||
@@ -140,7 +140,7 @@ class test_User(XMLRPC_test):
|
||||
# Verify that it is gone
|
||||
try:
|
||||
res = api.Command['user_show'](self.uid)
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
pass
|
||||
else:
|
||||
assert False
|
||||
@@ -25,7 +25,7 @@ import sys
|
||||
import socket
|
||||
import nose
|
||||
from ipalib import api, request
|
||||
from ipalib import errors, errors2
|
||||
from ipalib import errors2
|
||||
|
||||
|
||||
class XMLRPC_test(object):
|
||||
@@ -40,7 +40,7 @@ class XMLRPC_test(object):
|
||||
res = api.Command['user_show'](u'notfound')
|
||||
except errors2.NetworkError:
|
||||
raise nose.SkipTest()
|
||||
except errors.NotFound:
|
||||
except errors2.NotFound:
|
||||
pass
|
||||
|
||||
def tearDown(self):
|
||||
|
||||
Reference in new issue
Block a user