From 69a2e4b3605863971c26e78adcc78cab2f6c4b06 Mon Sep 17 00:00:00 2001 From: Giampaolo Lauria Date: Wed, 7 Sep 2011 11:11:38 -0400 Subject: samba-tool: Moved _get_user_realm_domain fcn to common _get_user_realm_domain is used by both delegation and spn commands Signed-off-by: Amitay Isaacs Signed-off-by: Andrew Bartlett --- source4/scripting/python/samba/netcmd/common.py | 27 ++++++++++++++++++++++ .../scripting/python/samba/netcmd/delegation.py | 23 +----------------- source4/scripting/python/samba/netcmd/spn.py | 26 +-------------------- 3 files changed, 29 insertions(+), 47 deletions(-) (limited to 'source4/scripting/python') diff --git a/source4/scripting/python/samba/netcmd/common.py b/source4/scripting/python/samba/netcmd/common.py index 71629ef08d..a4ebdd4329 100644 --- a/source4/scripting/python/samba/netcmd/common.py +++ b/source4/scripting/python/samba/netcmd/common.py @@ -3,6 +3,7 @@ # common functions for samba-tool python commands # # Copyright Andrew Tridgell 2010 +# Copyright Giampaolo Lauria 2011 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,16 +19,42 @@ # along with this program. If not, see . # +import re from samba.dcerpc import nbt from samba.net import Net + +def _get_user_realm_domain(user): + """ get the realm or the domain and the base user + from user like: + * username + * DOMAIN\username + * username@REALM + """ + baseuser = user + realm = "" + domain = "" + m = re.match(r"(\w+)\\(\w+$)", user) + if m: + domain = m.group(1) + baseuser = m.group(2) + return (baseuser.lower(), domain.upper(), realm) + m = re.match(r"(\w+)@(\w+)", user) + if m: + baseuser = m.group(1) + realm = m.group(2) + return (baseuser.lower(), domain, realm.upper()) + + + def netcmd_dnsname(lp): '''return the full DNS name of our own host. Used as a default for hostname when running status queries''' return lp.get('netbios name').lower() + "." + lp.get('realm').lower() + def netcmd_finddc(lp, creds): '''return domain-name of a writable/ldap-capable DC for the domain.''' net = Net(creds=creds, lp=lp) diff --git a/source4/scripting/python/samba/netcmd/delegation.py b/source4/scripting/python/samba/netcmd/delegation.py index 19a64d5f1e..cf04d9d577 100644 --- a/source4/scripting/python/samba/netcmd/delegation.py +++ b/source4/scripting/python/samba/netcmd/delegation.py @@ -23,11 +23,11 @@ import samba.getopt as options import ldb -import re from samba import provision from samba import dsdb from samba.samdb import SamDB from samba.auth import system_session +from samba.netcmd.common import _get_user_realm_domain from samba.netcmd import ( Command, CommandError, @@ -35,27 +35,6 @@ from samba.netcmd import ( Option ) -def _get_user_realm_domain(user): - """ get the realm or the domain and the base user - from user like: - * username - * DOMAIN\username - * username@REALM - """ - baseuser = user - realm = "" - domain = "" - m = re.match(r"(\w+)\\(\w+$)", user) - if m: - domain = m.group(1) - baseuser = m.group(2) - return (baseuser.lower(), domain.upper(), realm) - m = re.match(r"(\w+)@(\w+)", user) - if m: - baseuser = m.group(1) - realm = m.group(2) - return (baseuser.lower(), domain, realm.upper()) - class cmd_delegation_show(Command): diff --git a/source4/scripting/python/samba/netcmd/spn.py b/source4/scripting/python/samba/netcmd/spn.py index 6e9d2dece8..6c36f6ca4c 100644 --- a/source4/scripting/python/samba/netcmd/spn.py +++ b/source4/scripting/python/samba/netcmd/spn.py @@ -21,10 +21,10 @@ import samba.getopt as options import ldb -import re from samba import provision from samba.samdb import SamDB from samba.auth import system_session +from samba.netcmd.common import _get_user_realm_domain from samba.netcmd import ( Command, CommandError, @@ -34,30 +34,6 @@ from samba.netcmd import ( -def _get_user_realm_domain(user): - """ get the realm or the domain and the base user - from user like: - * username - * DOMAIN\username - * username@REALM - """ - - baseuser = user - realm = "" - domain = "" - m = re.match(r"(\w+)\\(\w+$)", user) - if m: - domain = m.group(1) - baseuser = m.group(2) - return (baseuser.lower(), domain.upper(), realm) - m = re.match(r"(\w+)@(\w+)", user) - if m: - baseuser = m.group(1) - realm = m.group(2) - return (baseuser.lower(), domain, realm.upper()) - - - class cmd_spn_list(Command): """List spns of a given user.""" -- cgit