diff options
author | Andrew Tridgell <tridge@samba.org> | 2010-08-23 11:31:48 +1000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2010-08-23 15:55:39 +1000 |
commit | bd7f9813de5d4f7832342f607d8308e916f0c14d (patch) | |
tree | 132ea261c9b31017261d2bcc23872169ebe42f8e /source4/scripting/python/samba/netcmd | |
parent | 1337f5875c2adbb594d421e457f9e6ed5dd4071a (diff) | |
download | samba-bd7f9813de5d4f7832342f607d8308e916f0c14d.tar.gz samba-bd7f9813de5d4f7832342f607d8308e916f0c14d.tar.bz2 samba-bd7f9813de5d4f7832342f607d8308e916f0c14d.zip |
s4-net: added initial implemention of RODC join
This does the join using python code
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4/scripting/python/samba/netcmd')
-rw-r--r-- | source4/scripting/python/samba/netcmd/join.py | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/source4/scripting/python/samba/netcmd/join.py b/source4/scripting/python/samba/netcmd/join.py index 4f04b77abf..23ae412df5 100644 --- a/source4/scripting/python/samba/netcmd/join.py +++ b/source4/scripting/python/samba/netcmd/join.py @@ -21,14 +21,14 @@ import samba.getopt as options from samba.net import Net, LIBNET_JOIN_AUTOMATIC -from samba.netcmd import Command, CommandError +from samba.netcmd import Command, CommandError, Option from samba.dcerpc.misc import SEC_CHAN_WKSTA, SEC_CHAN_BDC - +from samba.join import join_rodc class cmd_join(Command): """Joins domain as either member or backup domain controller [server connection needed]""" - synopsis = "%prog join <domain> [BDC | MEMBER] [options]" + synopsis = "%prog join <domain> [BDC | MEMBER | RODC] [options]" takes_optiongroups = { "sambaopts": options.SambaOptions, @@ -36,13 +36,23 @@ class cmd_join(Command): "credopts": options.CredentialsOptions, } + takes_options = [ + Option("--server", help="DC to join", type=str), + Option("--site", help="site to join", type=str), + ] + takes_args = ["domain", "role?"] def run(self, domain, role=None, sambaopts=None, credopts=None, - versionopts=None): + versionopts=None, server=None, site=None): lp = sambaopts.get_loadparm() creds = credopts.get_credentials(lp) net = Net(creds, lp) + + if site is None: + site = "Default-First-Site-Name" + + netbios_name = lp.get("netbios name") if role is None: secure_channel_type = SEC_CHAN_WKSTA @@ -50,10 +60,16 @@ class cmd_join(Command): secure_channel_type = SEC_CHAN_BDC elif role == "MEMBER": secure_channel_type = SEC_CHAN_WKSTA + elif role == "RODC": + join_rodc(server=server, creds=creds, lp=lp, + site=site, netbios_name=netbios_name) + return else: - raise CommandError("Invalid role %s (possible values: MEMBER, BDC)" % role) + raise CommandError("Invalid role %s (possible values: MEMBER, BDC, RODC)" % role) (join_password, sid, domain_name) = net.join(domain, - lp.get("netbios name"), secure_channel_type, LIBNET_JOIN_AUTOMATIC) + netbios_name, + secure_channel_type, + LIBNET_JOIN_AUTOMATIC) self.outf.write("Joined domain %s (%s)\n" % (domain_name, sid)) |