Add mitogen_container_name variable.

Allow the container name to be specified over ansible hostname.
Applying changes as per upstream mitogen repo, branch issue510.
01840fd0b0
pull/814/head
Sam Choraria 6 years ago committed by Andrew Bonney
parent 59716a8788
commit 9b5c3326a7

@ -182,7 +182,10 @@ def _connect_docker(spec):
'method': 'docker',
'kwargs': {
'username': spec.remote_user(),
'container': spec.remote_addr(),
'container': (
spec.mitogen_container_name() or
spec.remote_addr()
),
'python_path': spec.python_path(rediscover_python=True),
'connect_timeout': spec.ansible_ssh_timeout() or spec.timeout(),
'remote_name': get_remote_name(spec),
@ -197,7 +200,10 @@ def _connect_kubectl(spec):
return {
'method': 'kubectl',
'kwargs': {
'pod': spec.remote_addr(),
'pod': (
spec.mitogen_container_name() or
spec.remote_addr()
),
'python_path': spec.python_path(),
'connect_timeout': spec.ansible_ssh_timeout() or spec.timeout(),
'kubectl_path': spec.mitogen_kubectl_path(),
@ -215,7 +221,10 @@ def _connect_jail(spec):
'method': 'jail',
'kwargs': {
'username': spec.remote_user(),
'container': spec.remote_addr(),
'container': (
spec.mitogen_container_name() or
spec.remote_addr()
),
'python_path': spec.python_path(),
'connect_timeout': spec.ansible_ssh_timeout() or spec.timeout(),
'remote_name': get_remote_name(spec),
@ -230,7 +239,10 @@ def _connect_lxc(spec):
return {
'method': 'lxc',
'kwargs': {
'container': spec.remote_addr(),
'container': (
spec.mitogen_container_name() or
spec.remote_addr()
),
'python_path': spec.python_path(),
'lxc_attach_path': spec.mitogen_lxc_attach_path(),
'connect_timeout': spec.ansible_ssh_timeout() or spec.timeout(),
@ -246,7 +258,10 @@ def _connect_lxd(spec):
return {
'method': 'lxd',
'kwargs': {
'container': spec.remote_addr(),
'container': (
spec.mitogen_container_name() or
spec.remote_addr()
),
'python_path': spec.python_path(),
'lxc_path': spec.mitogen_lxc_path(),
'connect_timeout': spec.ansible_ssh_timeout() or spec.timeout(),
@ -269,7 +284,10 @@ def _connect_setns(spec, kind=None):
return {
'method': 'setns',
'kwargs': {
'container': spec.remote_addr(),
'container': (
spec.mitogen_container_name() or
spec.remote_addr()
),
'username': spec.remote_user(),
'python_path': spec.python_path(),
'kind': kind or spec.mitogen_kind(),

@ -378,6 +378,13 @@ class Spec(with_metaclass(abc.ABCMeta, object)):
Whether SSH compression is enabled.
"""
@abc.abstractmethod
def mitogen_container_name(self):
"""
Highest precedence variable for specifying the name of a container to
connect to.
"""
@abc.abstractmethod
def extra_args(self):
"""
@ -542,6 +549,9 @@ class PlayContextSpec(Spec):
def mitogen_ssh_compression(self):
return self._connection.get_task_var('mitogen_ssh_compression')
def mitogen_container_name(self):
return self._connection.get_task_var('mitogen_container_name')
def extra_args(self):
return self._connection.get_extra_args()
@ -778,6 +788,9 @@ class MitogenViaSpec(Spec):
def mitogen_ssh_compression(self):
return self._host_vars.get('mitogen_ssh_compression')
def mitogen_container_name(self):
return self._host_vars.get('mitogen_container_name')
def extra_args(self):
return [] # TODO

Loading…
Cancel
Save