def __init__(self, connection_class=Cluster, construct_primary_key=None, edge_model=None): super(CassandraRepository, self).__init__() self.settings = dict(host='localhost', port=9042, protocol_version=2) self.settings.update(Settings.get('db')) assert self.settings.get('name', None), 'Missing required setting db.name' if edge_model: self._edge_model = edge_model if not isinstance(self.settings.get('port'), int): self.settings['port'] = int(self.settings.get('port')) if not isinstance(self.settings.get('protocol_version'), int): self.settings['protocol_version'] = int(self.settings.get('protocol_version')) cluster = connection_class( contact_points=self.settings['host'], port=self.settings['port'], protocol_version=self.settings['protocol_version'] ) cluster.set_core_connections_per_host(HostDistance.LOCAL, 10) self.session = cluster.connect(keyspace=self.settings['name']) self.session.row_factory = ordered_dict_factory if construct_primary_key: self.construct_primary_key = construct_primary_key
def _get_table_metadata(self, table_name): return self.session.cluster.metadata.keyspaces[Settings.get('db.name')].tables[table_name]