def __init__(self, halt_event, user_identity, test_script): self._log = logging.getLogger(user_identity.user_name) self._halt_event = halt_event self._user_identity = user_identity self._test_script = test_script self._multipart_upload_cutoff = \ 2 * self._test_script["multipart-part-size"] if "archive-failure-percent" in self._test_script: self._archive_failure_percent = \ self._test_script["archive-failure-percent"] else: self._archive_failure_percent = 0 self._default_collection_name = compute_default_collection_name( self._user_identity.user_name) self._s3_connection = None self._buckets = dict() self._bucket_accounting = dict() self._versioned_bucket_names = list() self._unversioned_bucket_names = list() self._dispatch_table = { "create-bucket": self._create_bucket, "create-versioned-bucket": self._create_versioned_bucket, "delete-bucket": self._delete_bucket, "archive-new-key": self._archive_new_key, "archive-new-version": self._archive_new_version, "archive-overwrite": self._archive_overwrite, "retrieve-latest": self._retrieve_latest, "retrieve-version": self._retrieve_version, "delete-key": self._delete_key, "delete-version": self._delete_version, } self._frequency_table = list() self._bucket_name_manager = BucketNameManager( self._user_identity.user_name, test_script["max-bucket-count"], ) self._key_name_manager = KeyNameManager() self._key_name_generator = None self.key_verification = dict() self._error_count = 0