pysap.SAPEnqueue module

class pysap.SAPEnqueue.SAPEnqueue(_pkt, /, *, magic_bytes=b'\xab\xcd\xe1#', id=0, len=None, len_frag=None, dest=0, opcode=0, more_frags=0, type=0, adm_eyecatcher1=b'ENC', adm_version=1, adm_padd1=0, adm_padd2=0, adm_padd3=0, adm_eyecatcher2=b'#EAA', adm_1=1, adm_len=0, adm_opcode=0, adm_flags=0, adm_rc=0, adm_eyecatcher3=b'#EAE', adm_trace_protocol_version=1, adm_trace_action=3, adm_trace_limit=0, adm_trace_thread=0, adm_trace_unknown1=0, adm_trace_level=1, adm_trace_level1=1, adm_trace_logging=0, adm_trace_max_file_size=20971520, adm_trace_nopatterns=0, adm_trace_nopatterns1=0, adm_trace_unknown3=37, adm_trace_eyecatcher4=b'#EAH', adm_trace_patterns=[], adm_trace_eyecatcher5=b'#EAD', params_count=None, params=[])[source]

Bases: PacketNoPadded

SAP Enqueue Server packet

This packet is used for general Enqueue packets.

aliastypes = [<class 'pysap.SAPEnqueue.SAPEnqueue'>, <class 'pysap.utils.fields.PacketNoPadded'>, <class 'scapy.packet.Packet'>]
fields_desc: List[AnyField] = [<StrFixedLenField (SAPEnqueue).magic_bytes>, <IntField (SAPEnqueue).id>, <LenField (SAPEnqueue).len>, <LenField (SAPEnqueue).len_frag>, <ByteEnumKeysField (SAPEnqueue).dest>, <ByteEnumKeysField (SAPEnqueue).opcode>, <ByteField (SAPEnqueue).more_frags>, <ByteEnumKeysField (SAPEnqueue).type>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>]
post_build(pkt, pay)[source]

Adjust the len and len_frags fields after the build of the whole packet.

class pysap.SAPEnqueue.SAPEnqueueParam(_pkt, /, *, param=0, len=0, value=0, set_name=b'')[source]

Bases: PacketNoPadded

SAP Enqueue Server Connection Admin Parameter packet

aliastypes = [<class 'pysap.SAPEnqueue.SAPEnqueueParam'>, <class 'pysap.utils.fields.PacketNoPadded'>, <class 'scapy.packet.Packet'>]
fields_desc: List[AnyField] = [<IntEnumField (SAPEnqueueParam).param>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>]
class pysap.SAPEnqueue.SAPEnqueueStreamSocket(sock, *args, **kwargs)[source]

Bases: SAPRoutedStreamSocket

Stream socket implementation of the Enqueue Server protocol. It performs reassemble of received fragmented packets to ease use in upper layers.

desc = 'Enqueue Stream socket'
recv()[source]

Receive a packet at the Enqueue layer, performing reassemble of fragmented packets if necessary.

Returns:

received SAPEnqueue packet

Return type:

SAPEnqueue

Raises:

socket.error – if the connection was close

class pysap.SAPEnqueue.SAPEnqueueTracePattern(_pkt, /, *, len=1, pattern=b'')[source]

Bases: PacketNoPadded

SAP Enqueue Server Admin Trace Pattern

aliastypes = [<class 'pysap.SAPEnqueue.SAPEnqueueTracePattern'>, <class 'pysap.utils.fields.PacketNoPadded'>, <class 'scapy.packet.Packet'>]
fields_desc: List[AnyField] = [<FieldLenField (SAPEnqueueTracePattern).len>, <StrNullFixedLenField (SAPEnqueueTracePattern).pattern>]
pysap.SAPEnqueue.enqueue_conn_admin_opcode_values = {0: 'Loopback packet', 1: 'Parameter Request', 2: 'Parameter Response', 3: 'Shutdown Read', 4: 'Shutdown Write', 5: 'Shutdown Both', 6: 'Keepalive'}

Enqueue Server Opcode values

pysap.SAPEnqueue.enqueue_dest_values = {1: 'SYNC_ENQUEUE', 2: 'ASYNC_ENQUEUE', 3: 'SERVER_ADMIN', 5: 'STAT_QUERY', 6: 'CONECTION_ADMIN', 7: 'ENQ_TO_REP', 8: 'REP_TO_ENQ'}

Enqueue Server Destination values

pysap.SAPEnqueue.enqueue_param_values = {0: 'ENCPARAM_RECV_LEN', 1: 'ENCPARAM_SEND_LEN', 2: 'ENCPARAM_MSG_TYPE', 3: 'ENCPARAM_SET_NAME', 4: 'ENCPARAM_SET_NOSUPP', 5: 'ENCPARAM_SET_VERSION', 6: 'ENCPARAM_SET_UCSUPPORT'}

Enqueue Server Connection Admin Parameter values

pysap.SAPEnqueue.enqueue_server_admin_opcode_values = {1: 'EnAdmDummyRequest', 2: 'EnAdmShutdownRequest', 4: 'EnAdmGetReplInfoRequest', 6: 'EnAdmTraceRequest'}

Enqueue Server Admin Opcode values

pysap.SAPEnqueue.enqueue_server_admin_trace_action_values = {1: 'Raise level', 2: 'Lower level', 3: 'Get trace state', 4: 'Set trace status', 5: 'Reset trace files'}

Enqueue Server Admin Trace Action values

pysap.SAPEnqueue.enqueue_server_admin_trace_limit_values = {0: 'Globally', 1: 'Only in enserver', 2: 'Only in repserver', 3: 'Only in threads of type', 4: 'Only in one thread of type'}

Enqueue Server Admin Trace Limit values

pysap.SAPEnqueue.enqueue_server_admin_trace_thread_values = {0: 'All threads', 1: 'All I/O threads', 2: 'Enqueue Worker thread', 3: 'Replication thread', 4: 'ADM thread', 5: 'Signal thread', 6: 'Listener thread'}

Enqueue Server Admin Trace Thread values

pysap.SAPEnqueue.enqueue_type_values = {0: 'SYNC_REQUEST', 1: 'ASYNC_REQUEST', 2: 'RESPONSE'}

Enqueue Server Type values