mirror of https://github.com/ansible/ansible.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.8 KiB
Python
73 lines
1.8 KiB
Python
from __future__ import annotations
|
|
|
|
DOCUMENTATION = """
|
|
options:
|
|
persistent_connect_timeout:
|
|
type: int
|
|
default: 30
|
|
ini:
|
|
- section: persistent_connection
|
|
key: connect_timeout
|
|
env:
|
|
- name: ANSIBLE_PERSISTENT_CONNECT_TIMEOUT
|
|
vars:
|
|
- name: ansible_connect_timeout
|
|
persistent_command_timeout:
|
|
type: int
|
|
default: 30
|
|
ini:
|
|
- section: persistent_connection
|
|
key: command_timeout
|
|
env:
|
|
- name: ANSIBLE_PERSISTENT_COMMAND_TIMEOUT
|
|
vars:
|
|
- name: ansible_command_timeout
|
|
persistent_log_messages:
|
|
type: boolean
|
|
ini:
|
|
- section: persistent_connection
|
|
key: log_messages
|
|
env:
|
|
- name: ANSIBLE_PERSISTENT_LOG_MESSAGES
|
|
vars:
|
|
- name: ansible_persistent_log_messages
|
|
"""
|
|
|
|
import json
|
|
import os
|
|
import pickle
|
|
|
|
from ansible.playbook.play_context import PlayContext
|
|
from ansible.plugins.connection import NetworkConnectionBase
|
|
|
|
|
|
class Connection(NetworkConnectionBase):
|
|
transport = 'persistent'
|
|
supports_persistence = True
|
|
|
|
def _connect(self):
|
|
self._connected = True
|
|
|
|
def update_play_context(self, pc_data):
|
|
"""
|
|
This is to ensure that the PlayContext.deserialize method remains functional,
|
|
preventing it from breaking the network connection plugins that rely on it.
|
|
|
|
See:
|
|
https://github.com/ansible-collections/ansible.netcommon/blob/50fafb6875bb2f57e932a7a50123513b48bd4fd5/plugins/connection/httpapi.py#L258
|
|
"""
|
|
pc = self._play_context = PlayContext()
|
|
|
|
pc.deserialize(
|
|
pickle.loads(
|
|
pc_data.encode(errors='surrogateescape')
|
|
)
|
|
)
|
|
|
|
def get_capabilities(self, *args, **kwargs):
|
|
return json.dumps({
|
|
'pid': os.getpid(),
|
|
'ppid': os.getppid(),
|
|
**self._play_context.dump_attrs()
|
|
})
|