summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/samba/netcmd/domain/claim/claim_type.py43
-rw-r--r--python/samba/netcmd/domain/claim/value_type.py14
2 files changed, 42 insertions, 15 deletions
diff --git a/python/samba/netcmd/domain/claim/claim_type.py b/python/samba/netcmd/domain/claim/claim_type.py
index b4a114c8c7d..e80c4ca82fa 100644
--- a/python/samba/netcmd/domain/claim/claim_type.py
+++ b/python/samba/netcmd/domain/claim/claim_type.py
@@ -24,10 +24,10 @@ import binascii
import os
import samba.getopt as options
-from ldb import LdbError
from samba.netcmd import Command, CommandError, Option, SuperCommand
from samba.netcmd.domain.models import AttributeSchema, ClassSchema,\
ClaimType, ValueType
+from samba.netcmd.domain.models.exceptions import ModelError
class cmd_domain_claim_claim_type_create(Command):
@@ -82,10 +82,14 @@ class cmd_domain_claim_claim_type_create(Command):
ldb = self.ldb_connect(ldap_url, sambaopts, credopts)
+ display_name = name or attribute_name
+ try:
+ claim_type = ClaimType.get(ldb, display_name=display_name)
+ except ModelError as e:
+ raise CommandError(e)
+
# Check if a claim type with this display name already exists.
# Note: you can register the same claim type under another display name.
- display_name = name or attribute_name
- claim_type = ClaimType.get(ldb, display_name=display_name)
if claim_type:
raise CommandError(f"Claim type {display_name} already exists, "
"but you can use --name to use another name.")
@@ -95,7 +99,7 @@ class cmd_domain_claim_claim_type_create(Command):
applies_to = [ClassSchema.lookup(ldb, name) for name in class_names]
attribute = AttributeSchema.lookup(ldb, attribute_name)
value_type = ValueType.lookup(ldb, attribute)
- except (LookupError, ValueError) as e:
+ except (LookupError, ModelError, ValueError) as e:
raise CommandError(e)
# Generate the new Claim Type cn.
@@ -136,7 +140,7 @@ class cmd_domain_claim_claim_type_create(Command):
if protect:
claim_type.protect(ldb)
- except LdbError as e:
+ except ModelError as e:
raise CommandError(e)
# Claim type created successfully.
@@ -193,8 +197,12 @@ class cmd_domain_claim_claim_type_modify(Command):
ldb = self.ldb_connect(ldap_url, sambaopts, credopts)
+ try:
+ claim_type = ClaimType.get(ldb, display_name=name)
+ except ModelError as e:
+ raise CommandError(e)
+
# Check if claim type exists.
- claim_type = ClaimType.get(ldb, display_name=name)
if not claim_type:
raise CommandError(f"Claim type {name} not found.")
@@ -226,7 +234,7 @@ class cmd_domain_claim_claim_type_modify(Command):
claim_type.protect(ldb)
elif unprotect:
claim_type.unprotect(ldb)
- except LdbError as e:
+ except ModelError as e:
raise CommandError(e)
# Claim type updated successfully.
@@ -260,8 +268,12 @@ class cmd_domain_claim_claim_type_delete(Command):
ldb = self.ldb_connect(ldap_url, sambaopts, credopts)
+ try:
+ claim_type = ClaimType.get(ldb, display_name=name)
+ except ModelError as e:
+ raise CommandError(e)
+
# Check if claim type exists first.
- claim_type = ClaimType.get(ldb, display_name=name)
if claim_type is None:
raise CommandError(f"Claim type {name} not found.")
@@ -271,7 +283,7 @@ class cmd_domain_claim_claim_type_delete(Command):
claim_type.unprotect(ldb)
claim_type.delete(ldb)
- except LdbError as e:
+ except ModelError as e:
if not force:
raise CommandError(
f"{e}\nTry --force to delete protected claim types.")
@@ -305,8 +317,11 @@ class cmd_domain_claim_claim_type_list(Command):
ldb = self.ldb_connect(ldap_url, sambaopts, credopts)
# Claim types grouped by displayName.
- claim_types = {claim_type.display_name: claim_type.as_dict()
- for claim_type in ClaimType.query(ldb)}
+ try:
+ claim_types = {claim_type.display_name: claim_type.as_dict()
+ for claim_type in ClaimType.query(ldb)}
+ except ModelError as e:
+ raise CommandError(e)
# Using json output format gives more detail.
if output_format == "json":
@@ -340,8 +355,12 @@ class cmd_domain_claim_claim_type_view(Command):
ldb = self.ldb_connect(ldap_url, sambaopts, credopts)
+ try:
+ claim_type = ClaimType.get(ldb, display_name=name)
+ except ModelError as e:
+ raise CommandError(e)
+
# Check if claim type exists first.
- claim_type = ClaimType.get(ldb, display_name=name)
if claim_type is None:
raise CommandError(f"Claim type {name} not found.")
diff --git a/python/samba/netcmd/domain/claim/value_type.py b/python/samba/netcmd/domain/claim/value_type.py
index 3118e20c387..307bd6cc07c 100644
--- a/python/samba/netcmd/domain/claim/value_type.py
+++ b/python/samba/netcmd/domain/claim/value_type.py
@@ -23,6 +23,7 @@
import samba.getopt as options
from samba.netcmd import Command, CommandError, Option, SuperCommand
from samba.netcmd.domain.models import ValueType
+from samba.netcmd.domain.models.exceptions import ModelError
class cmd_domain_claim_value_type_list(Command):
@@ -48,8 +49,11 @@ class cmd_domain_claim_value_type_list(Command):
ldb = self.ldb_connect(ldap_url, sambaopts, credopts)
# Value types grouped by display name.
- value_types = {value_type.display_name: value_type.as_dict()
- for value_type in ValueType.query(ldb)}
+ try:
+ value_types = {value_type.display_name: value_type.as_dict()
+ for value_type in ValueType.query(ldb)}
+ except ModelError as e:
+ raise CommandError(e)
# Using json output format gives more detail.
if output_format == "json":
@@ -84,8 +88,12 @@ class cmd_domain_claim_value_type_view(Command):
ldb = self.ldb_connect(ldap_url, sambaopts, credopts)
+ try:
+ value_type = ValueType.get(ldb, display_name=name)
+ except ModelError as e:
+ raise CommandError(e)
+
# Check if value type exists first.
- value_type = ValueType.get(ldb, display_name=name)
if value_type is None:
raise CommandError(f"Value type {name} not found.")