Internal
| 3525 | |
| 3526 | |
| 3527 | class ControlConnection(object): |
| 3528 | """ |
| 3529 | Internal |
| 3530 | """ |
| 3531 | |
| 3532 | _SELECT_PEERS = "SELECT * FROM system.peers" |
| 3533 | _SELECT_PEERS_NO_TOKENS_TEMPLATE = "SELECT host_id, peer, data_center, rack, rpc_address, {nt_col_name}, release_version, schema_version FROM system.peers" |
| 3534 | _SELECT_LOCAL = "SELECT * FROM system.local WHERE key='local'" |
| 3535 | _SELECT_LOCAL_NO_TOKENS = "SELECT host_id, cluster_name, data_center, rack, partitioner, release_version, schema_version FROM system.local WHERE key='local'" |
| 3536 | # Used only when token_metadata_enabled is set to False |
| 3537 | _SELECT_LOCAL_NO_TOKENS_RPC_ADDRESS = "SELECT rpc_address FROM system.local WHERE key='local'" |
| 3538 | |
| 3539 | _SELECT_SCHEMA_PEERS_TEMPLATE = "SELECT peer, host_id, {nt_col_name}, schema_version FROM system.peers" |
| 3540 | _SELECT_SCHEMA_LOCAL = "SELECT schema_version FROM system.local WHERE key='local'" |
| 3541 | |
| 3542 | _SELECT_PEERS_V2 = "SELECT * FROM system.peers_v2" |
| 3543 | _SELECT_PEERS_NO_TOKENS_V2 = "SELECT host_id, peer, peer_port, data_center, rack, native_address, native_port, release_version, schema_version FROM system.peers_v2" |
| 3544 | _SELECT_SCHEMA_PEERS_V2 = "SELECT host_id, peer, peer_port, native_address, native_port, schema_version FROM system.peers_v2" |
| 3545 | |
| 3546 | _MINIMUM_NATIVE_ADDRESS_DSE_VERSION = Version("6.0.0") |
| 3547 | |
| 3548 | class PeersQueryType(object): |
| 3549 | """internal Enum for _peers_query""" |
| 3550 | PEERS = 0 |
| 3551 | PEERS_SCHEMA = 1 |
| 3552 | |
| 3553 | _is_shutdown = False |
| 3554 | _timeout = None |
| 3555 | _protocol_version = None |
| 3556 | |
| 3557 | _schema_event_refresh_window = None |
| 3558 | _topology_event_refresh_window = None |
| 3559 | _status_event_refresh_window = None |
| 3560 | |
| 3561 | _schema_meta_enabled = True |
| 3562 | _token_meta_enabled = True |
| 3563 | |
| 3564 | _uses_peers_v2 = True |
| 3565 | |
| 3566 | # for testing purposes |
| 3567 | _time = time |
| 3568 | |
| 3569 | def __init__(self, cluster, timeout, |
| 3570 | schema_event_refresh_window, |
| 3571 | topology_event_refresh_window, |
| 3572 | status_event_refresh_window, |
| 3573 | schema_meta_enabled=True, |
| 3574 | token_meta_enabled=True): |
| 3575 | # use a weak reference to allow the Cluster instance to be GC'ed (and |
| 3576 | # shutdown) since implementing __del__ disables the cycle detector |
| 3577 | self._cluster = weakref.proxy(cluster) |
| 3578 | self._connection = None |
| 3579 | self._timeout = timeout |
| 3580 | |
| 3581 | self._schema_event_refresh_window = schema_event_refresh_window |
| 3582 | self._topology_event_refresh_window = topology_event_refresh_window |
| 3583 | self._status_event_refresh_window = status_event_refresh_window |
| 3584 | self._schema_meta_enabled = schema_meta_enabled |