def list_objects_side_effect(namespace, bucket, prefix, start, end, fields):
    response = Response(200, {}, ListObjects(), {})
    if start == "start_object":
        objects = [
            ObjectSummary(name="first_object",
                          size=10,
                          md5="abc123",
                          time_created=datetime.datetime.now(),
                          etag="tag1")
        ]
        response.data.next_start_with = "second_object"
    elif start == "start_empty_object":
        objects = [
            ObjectSummary(name="first_object",
                          size=10,
                          md5="abc123",
                          time_created=datetime.datetime.now(),
                          etag="tag1")
        ]
        response.data.next_start_with = "second_empty_object"
    elif start == "second_empty_object":
        objects = []
    else:
        objects = [
            ObjectSummary(name="second_object",
                          size=20,
                          md5="def456",
                          time_created=datetime.datetime.now(),
                          etag="tag2")
        ]
    response.data.objects = objects
    return response
Beispiel #2
0
    def setUp(self):
        self.test_specific_set = {}  # When empty, all tests are run.
        # self.test_specific_set = {"appliance":["request"]}

        self.specific_arg_values = {"profile": "DEFAULT", "device-type": "APPLIANCE", "if-match": "True", "all": None,
                                    "wait": None, "rw": "True", "world": "True", "lifecycle-state": "CREATING",
                                    "test_defined_tag": '{"string1": "string", "string2": "string"}', "force": None,
                                    "debug": None, "setup-notifications": "True", "skip-upload-user-check": None}
        self.complex_data_defs = {
            "customer-shipping-address": {
                "required_params": ["addressee", "care-of", "address1", "city-or-locality", "state-or-region",
                                    "country", "zipcode", "phone-number", "email"],
                "optional_params": ["address2", "address3", "address4"]
            },
            "freeform-tags": {
                "required_params": ["string1"],
                "optional_params": []
            },
            "defined-tags": {
                "required_params": ["test_defined_tag"],
                "optional_params": []
            },

        }

        self.job_subcommands = [
            {"sub_command": "create",
             "required_params": ["compartment-id", "bucket", "display-name", "device-type"],
             "optional_params": ["defined-tags", "freeform-tags", "profile", "skip-upload-user-check"]},
            {"sub_command": "show",
             "required_params": ["job-id"],
             "optional_params": []},
            {"sub_command": "update",
             "required_params": ["job-id"],
             "optional_params": ["defined-tags", "freeform-tags", "display-name"]},
            {"sub_command": "delete",
             "required_params": ["job-id"],
             "optional_params": []},
            {"sub_command": "close",
             "required_params": ["job-id"],
             "optional_params": []},
            {"sub_command": "verify-upload-user-credentials",
             "required_params": ["bucket"],
             "optional_params": []},
            {"sub_command": "change-compartment",
             "required_params": ["job-id", "compartment-id"],
             "optional_params": []},
            {"sub_command": "setup-notifications",
             "required_params": ["job-id"],
             "optional_params": []}
        ]
        self.appliance_subcommands = [
            {"sub_command": "request",
             "required_params": ["job-id", "addressee", "care-of", "address1", "city-or-locality",
                                 "state-province-region", "country", "zip-postal-code", "phone-number", "email"],
             "optional_params": ["address2", "address3", "address4"]},
            {"sub_command": "show",
             "required_params": ["job-id", "appliance-label"],
             "optional_params": []},
            {"sub_command": "list",
             "required_params": ["job-id"],
             "optional_params": []},
            {"sub_command": "get-passphrase",
             "required_params": ["job-id", "appliance-label"],
             "optional_params": []},
            {"sub_command": "never-receive",
             "required_params": ["job-id", "appliance-label"],
             "optional_params": []},
            {"sub_command": "cancel",
             "required_params": ["job-id", "appliance-label"],
             "optional_params": []},
            {"sub_command": "delete",
             "required_params": ["job-id", "appliance-label"],
             "optional_params": []},
            {"sub_command": "update-shipping-address",
             "required_params": ["job-id", "appliance-label", "addressee"],
             "optional_params": ["address2", "address3", "address4", "care-of", "address1", "city-or-locality",
                                 "state-province-region", "country", "zip-postal-code", "phone-number", "email"]},
            {"sub_command": "setup-notifications",
             "required_params": ["appliance-label"],
             "optional_params": []}
        ]
        self.pa_subcommands = [
            {"sub_command": "list",
             "required_params": [],
             "optional_params": []},
            {"sub_command": "configure-encryption",
             "required_params": ["job-id", "appliance-label"],
             "optional_params": ["appliance-profile"]},
            {"sub_command": "show",
             "required_params": [],
             "optional_params": ["appliance-profile"]},
            {"sub_command": "unlock",
             "required_params": ["job-id", "appliance-label"],
             "optional_params": ["appliance-profile"]},
            # {"sub_command": "finalize",
            #  "required_params": ["job-id", "appliance-label"],
            #  "optional_params": ["appliance-profile", "profile"],
            #  "methods_to_side_effect": {}},
        ]
        nfs_datasets = [{'name': '123', 'state': NfsDatasetInfo.STATE_ACTIVE,
                         'dataset_type': NfsDatasetInfo.DATASET_TYPE_NFS, 'nfs_export_details': None}]
        self.nfs_ds_subcommands = [
            {"sub_command": "create",
             "required_params": ["name"],
             "optional_params": ["rw", "world", "ip", "subnet-mask-length", "appliance-profile"]},
            {"sub_command": "set-export",
             "required_params": ["name", "rw", "world"],
             "optional_params": ["ip", "subnet-mask-length", "appliance-profile"]},
            {"sub_command": "show",
             "required_params": ["name"],
             "optional_params": ["appliance-profile"]},
            {"sub_command": "list",
             "required_params": [],
             "optional_params": ["appliance-profile"]},
            {"sub_command": "delete",
             "required_params": ["name"],
             "optional_params": ["appliance-profile"]},
            # {"sub_command": "activate",
            #  "required_params": ["name"],
            #  "optional_params": ["rw", "world", "ip", "subnet-mask-length", "appliance-profile"],
            #  "methods_to_side_effect": {"mock_nfs_dataset_client": {"list_nfs_datasets": (200, {}, nfs_datasets)}}},
            {"sub_command": "deactivate",
             "required_params": ["name"],
             "optional_params": ["appliance-profile"]},
            # {"sub_command": "seal",
            #  "required_params": [],
            #  "optional_params": ["name", "appliance-profile"],
            #  "methods_to_side_effect": {"mock_nfs_dataset_client": {"list_nfs_datasets": (200, {}, nfs_datasets)}}},
            {"sub_command": "reopen",
             "required_params": ["name"],
             "optional_params": ["appliance-profile"]},
            {"sub_command": "seal-status",
             "required_params": ["name"],
             "optional_params": ["appliance-profile"]},
            {"sub_command": "get-seal-manifest",
             "required_params": ["name", "output-file"],
             "optional_params": ["appliance-profile"]},
        ]
        list_objects = ListObjects()
        list_objects.objects = [
            ObjectSummary(name="first_object", size=20, md5="def456", time_created=datetime.datetime.now(),
                          etag="tag1")]
        headers = {'etag': 'etag', 'opc-multipart-md5': 'md5', 'opc-content-md5': 'md5'}

        self.export_job_subcommands = [
            {"sub_command": "create",
             "required_params": ["compartment-id", "bucket-name", "display-name", "addressee", "care-of", "address1",
                                 "city-or-locality", "state-province-region", "country", "zip-postal-code",
                                 "phone-number", "email"],
             "optional_params": ["freeform-tags", "defined-tags", "address2", "address3", "address4",
                                 "setup-notifications"],
             "methods_to_side_effect": {
                 "mock_prompt_for_emails": "'*****@*****.**'"}},
            {"sub_command": "change-compartment",
             "required_params": ["compartment-id", "job-id"],
             "optional_params": ["if-match"]},
            {"sub_command": "delete",
             "required_params": ["job-id"],
             "optional_params": ["if-match", "force"]},
            {"sub_command": "show",
             "required_params": ["job-id"],
             "optional_params": []},
            {"sub_command": "get-passphrase",
             "required_params": ["job-id"],
             "optional_params": []},
            {"sub_command": "list",
             "required_params": ["compartment-id"],
             "optional_params": ["lifecycle-state", "display-name", "page", "page-size"]},
            {"sub_command": "update",
             "required_params": ["job-id"],
             "optional_params": ["display-name", "manifest-file",
                                 "freeform-tags", "defined-tags", "if-match", "force", "care-of", "address1",
                                 "address2", "address3", "address4", "city-or-locality", "state-province-region",
                                 "country", "zip-postal-code", "phone-number", "email", "addressee"]},
            # {"sub_command": "generate-manifest",
            #  "required_params": ["job-id", "compartment-id", "bucket"],
            #  "optional_params": ["prefix", "start", "end"],
            #  "methods_to_side_effect": {
            #      "mock_os_client": {
            #          "list_objects": (200, headers, list_objects),
            #          "put_object": (200, headers, list_objects),
            #          "upload_part": (200, headers, list_objects),
            #          "commit_multipart_upload": (200, headers, list_objects)}}},
            {"sub_command": "request-appliance",
             "required_params": ["job-id"],
             "optional_params": []},
            {"sub_command": "create-policy",
             "required_params": ["job-id"],
             "optional_params": []},
        ]

        entitlement = TransferApplianceEntitlementSummary()
        entitlement.id = '123'
        entitlements = [entitlement]
        self.entitlement_subcommands = [
            {"sub_command": "request-entitlement",
             "required_params": ["compartment-id", "name", "email"],
             "optional_params": []},
            {"sub_command": "show-entitlement",
             "required_params": ["compartment-id"],
             "optional_params": [],
             "methods_to_side_effect": {
                 "mock_client": {"list_transfer_appliance_entitlement": (200, {}, entitlements)}}},
        ]
        self.command_defs = [
            {"command": "job", "sub_commands": self.job_subcommands},
            {"command": "appliance", "sub_commands": self.appliance_subcommands},
            {"command": "physical-appliance", "sub_commands": self.pa_subcommands},
            {"command": "nfs-dataset", "sub_commands": self.nfs_ds_subcommands},
            {"command": "appliance", "sub_commands": self.entitlement_subcommands},
            {"command": "export", "sub_commands": self.export_job_subcommands},
        ]

        self.success_count = 0
        self.failed_count = 0
        self.skipped_count = 0
        self.failure_msg_list = []