aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/Twisted/py2/twisted/conch/client/options.py
diff options
context:
space:
mode:
authorshmel1k <shmel1k@ydb.tech>2023-11-26 18:16:14 +0300
committershmel1k <shmel1k@ydb.tech>2023-11-26 18:43:30 +0300
commitb8cf9e88f4c5c64d9406af533d8948deb050d695 (patch)
tree218eb61fb3c3b96ec08b4d8cdfef383104a87d63 /contrib/python/Twisted/py2/twisted/conch/client/options.py
parent523f645a83a0ec97a0332dbc3863bb354c92a328 (diff)
downloadydb-b8cf9e88f4c5c64d9406af533d8948deb050d695.tar.gz
add kikimr_configure
Diffstat (limited to 'contrib/python/Twisted/py2/twisted/conch/client/options.py')
-rw-r--r--contrib/python/Twisted/py2/twisted/conch/client/options.py103
1 files changed, 103 insertions, 0 deletions
diff --git a/contrib/python/Twisted/py2/twisted/conch/client/options.py b/contrib/python/Twisted/py2/twisted/conch/client/options.py
new file mode 100644
index 0000000000..5630fce250
--- /dev/null
+++ b/contrib/python/Twisted/py2/twisted/conch/client/options.py
@@ -0,0 +1,103 @@
+# Copyright (c) Twisted Matrix Laboratories.
+# See LICENSE for details.
+
+#
+from twisted.conch.ssh.transport import SSHClientTransport, SSHCiphers
+from twisted.python import usage
+from twisted.python.compat import unicode
+
+import sys
+
+class ConchOptions(usage.Options):
+
+ optParameters = [['user', 'l', None, 'Log in using this user name.'],
+ ['identity', 'i', None],
+ ['ciphers', 'c', None],
+ ['macs', 'm', None],
+ ['port', 'p', None, 'Connect to this port. Server must be on the same port.'],
+ ['option', 'o', None, 'Ignored OpenSSH options'],
+ ['host-key-algorithms', '', None],
+ ['known-hosts', '', None, 'File to check for host keys'],
+ ['user-authentications', '', None, 'Types of user authentications to use.'],
+ ['logfile', '', None, 'File to log to, or - for stdout'],
+ ]
+
+ optFlags = [['version', 'V', 'Display version number only.'],
+ ['compress', 'C', 'Enable compression.'],
+ ['log', 'v', 'Enable logging (defaults to stderr)'],
+ ['nox11', 'x', 'Disable X11 connection forwarding (default)'],
+ ['agent', 'A', 'Enable authentication agent forwarding'],
+ ['noagent', 'a', 'Disable authentication agent forwarding (default)'],
+ ['reconnect', 'r', 'Reconnect to the server if the connection is lost.'],
+ ]
+
+ compData = usage.Completions(
+ mutuallyExclusive=[("agent", "noagent")],
+ optActions={
+ "user": usage.CompleteUsernames(),
+ "ciphers": usage.CompleteMultiList(
+ SSHCiphers.cipherMap.keys(),
+ descr='ciphers to choose from'),
+ "macs": usage.CompleteMultiList(
+ SSHCiphers.macMap.keys(),
+ descr='macs to choose from'),
+ "host-key-algorithms": usage.CompleteMultiList(
+ SSHClientTransport.supportedPublicKeys,
+ descr='host key algorithms to choose from'),
+ #"user-authentications": usage.CompleteMultiList(?
+ # descr='user authentication types' ),
+ },
+ extraActions=[usage.CompleteUserAtHost(),
+ usage.Completer(descr="command"),
+ usage.Completer(descr='argument',
+ repeat=True)]
+ )
+
+ def __init__(self, *args, **kw):
+ usage.Options.__init__(self, *args, **kw)
+ self.identitys = []
+ self.conns = None
+
+ def opt_identity(self, i):
+ """Identity for public-key authentication"""
+ self.identitys.append(i)
+
+ def opt_ciphers(self, ciphers):
+ "Select encryption algorithms"
+ ciphers = ciphers.split(',')
+ for cipher in ciphers:
+ if cipher not in SSHCiphers.cipherMap:
+ sys.exit("Unknown cipher type '%s'" % cipher)
+ self['ciphers'] = ciphers
+
+
+ def opt_macs(self, macs):
+ "Specify MAC algorithms"
+ if isinstance(macs, unicode):
+ macs = macs.encode("utf-8")
+ macs = macs.split(b',')
+ for mac in macs:
+ if mac not in SSHCiphers.macMap:
+ sys.exit("Unknown mac type '%r'" % mac)
+ self['macs'] = macs
+
+ def opt_host_key_algorithms(self, hkas):
+ "Select host key algorithms"
+ if isinstance(hkas, unicode):
+ hkas = hkas.encode("utf-8")
+ hkas = hkas.split(b',')
+ for hka in hkas:
+ if hka not in SSHClientTransport.supportedPublicKeys:
+ sys.exit("Unknown host key type '%r'" % hka)
+ self['host-key-algorithms'] = hkas
+
+ def opt_user_authentications(self, uas):
+ "Choose how to authenticate to the remote server"
+ if isinstance(uas, unicode):
+ uas = uas.encode("utf-8")
+ self['user-authentications'] = uas.split(b',')
+
+# def opt_compress(self):
+# "Enable compression"
+# self.enableCompression = 1
+# SSHClientTransport.supportedCompressions[0:1] = ['zlib']