def _cassandra_ensure_keyspace(self, server_list, keyspace_name, cf_info_list): # Retry till cassandra is up server_idx = 0 num_dbnodes = len(self._server_list) connected = False while not connected: try: cass_server = self._server_list[server_idx] sys_mgr = SystemManager(cass_server) connected = True except Exception as e: # TODO do only for # thrift.transport.TTransport.TTransportException server_idx = (server_idx + 1) % num_dbnodes time.sleep(3) if self._reset_config: try: sys_mgr.drop_keyspace(keyspace_name) except pycassa.cassandra.ttypes.InvalidRequestException as e: # TODO verify only EEXISTS self._logger("Warning! " + str(e), level=SandeshLevel.SYS_WARN) try: sys_mgr.create_keyspace(keyspace_name, SIMPLE_STRATEGY, {'replication_factor': str(num_dbnodes)}) except pycassa.cassandra.ttypes.InvalidRequestException as e: # TODO verify only EEXISTS self._logger("Warning! " + str(e), level=SandeshLevel.SYS_WARN) gc_grace_sec = 0 if num_dbnodes > 1: gc_grace_sec = 60 for cf_info in cf_info_list: try: (cf_name, comparator_type) = cf_info if comparator_type: sys_mgr.create_column_family( keyspace_name, cf_name, comparator_type=comparator_type, gc_grace_seconds=gc_grace_sec, default_validation_class='UTF8Type') else: sys_mgr.create_column_family( keyspace_name, cf_name, gc_grace_seconds=gc_grace_sec, default_validation_class='UTF8Type') except pycassa.cassandra.ttypes.InvalidRequestException as e: # TODO verify only EEXISTS self._logger("Warning! " + str(e), level=SandeshLevel.SYS_WARN) sys_mgr.alter_column_family( keyspace_name, cf_name, gc_grace_seconds=gc_grace_sec, default_validation_class='UTF8Type')
def _cassandra_ensure_keyspace(self, server_list, keyspace_name, cf_info_list): # Retry till cassandra is up server_idx = 0 num_dbnodes = len(self._server_list) connected = False while not connected: try: cass_server = self._server_list[server_idx] sys_mgr = SystemManager(cass_server) connected = True except Exception as e: # TODO do only for # thrift.transport.TTransport.TTransportException server_idx = (server_idx + 1) % num_dbnodes time.sleep(3) if self._reset_config: try: sys_mgr.drop_keyspace(keyspace_name) except pycassa.cassandra.ttypes.InvalidRequestException as e: # TODO verify only EEXISTS self._logger("Warning! " + str(e), level=SandeshLevel.SYS_WARN) try: sys_mgr.create_keyspace(keyspace_name, SIMPLE_STRATEGY, {'replication_factor': str(num_dbnodes)}) except pycassa.cassandra.ttypes.InvalidRequestException as e: # TODO verify only EEXISTS self._logger("Warning! " + str(e), level=SandeshLevel.SYS_WARN) gc_grace_sec = 0 if num_dbnodes > 1: gc_grace_sec = 60 for cf_info in cf_info_list: try: (cf_name, comparator_type) = cf_info if comparator_type: sys_mgr.create_column_family( keyspace_name, cf_name, comparator_type=comparator_type, gc_grace_seconds=gc_grace_sec, default_validation_class='UTF8Type') else: sys_mgr.create_column_family(keyspace_name, cf_name, gc_grace_seconds=gc_grace_sec, default_validation_class='UTF8Type') except pycassa.cassandra.ttypes.InvalidRequestException as e: # TODO verify only EEXISTS self._logger("Warning! " + str(e), level=SandeshLevel.SYS_WARN) sys_mgr.alter_column_family(keyspace_name, cf_name, gc_grace_seconds=gc_grace_sec, default_validation_class='UTF8Type')