示例#1
0
    def test_module_command_VirtualMediaEject_pass(self):
        set_module_args({
            'category': 'Manager',
            'command': 'VirtualMediaEject',
            'baseuri': '10.245.39.251',
            'username': '******',
            'password': '******',
            'timeout': 30,
            'virtual_media': {
                'image_url':
                "nfs://10.245.52.18:/home/nfs/bootable-sr635-20210111-autorun.iso",
            }
        })
        with patch.object(
                module.XCCRedfishUtils,
                '_find_managers_resource') as mock__find_managers_resource:
            mock__find_managers_resource.return_value = {
                'ret': True,
                'changed': True,
                'msg': 'success'
            }

            with patch.object(
                    module.XCCRedfishUtils,
                    'virtual_media_eject') as mock_virtual_media_eject:
                mock_virtual_media_eject.return_value = {
                    'ret': True,
                    'changed': True,
                    'msg': 'success'
                }

                with self.assertRaises(AnsibleExitJson) as result:
                    module.main()
示例#2
0
    def test_module_command_PostResource_fail_when_get_return_false(self):
        set_module_args({
            'category': 'Raw',
            'command': 'PostResource',
            'baseuri': '10.245.39.251',
            'username': '******',
            'password': '******',
            'resource_uri':
            '/redfish/v1/Systems/1/Bios/Actions/Bios.ChangePassword',
            'request_body': {
                'PasswordName': 'UefiAdminPassword',
                'NewPassword': '******'
            }
        })

        with patch.object(module.XCCRedfishUtils,
                          'get_request') as mock_get_request:
            mock_get_request.return_value = {'ret': False, 'msg': '404 error'}

            with patch.object(module.XCCRedfishUtils,
                              'post_request') as mock_post_request:
                mock_post_request.return_value = {'ret': True}

                with self.assertRaises(AnsibleFailJson) as result:
                    module.main()
示例#3
0
    def test_module_command_PatchResource_pass(self):
        set_module_args({
            'category': 'Raw',
            'command': 'PatchResource',
            'baseuri': '10.245.39.251',
            'username': '******',
            'password': '******',
            'resource_uri': '/redfish/v1/testuri',
            'request_body': {
                'teststr': 'yyyy'
            }
        })

        with patch.object(module.XCCRedfishUtils,
                          'get_request') as mock_get_request:
            mock_get_request.return_value = {
                'ret': True,
                'data': {
                    'teststr': 'xxxx',
                    '@odata.etag': '27f6eb13fa1c28a2711'
                }
            }

            with patch.object(module.XCCRedfishUtils,
                              'patch_request') as mock_patch_request:
                mock_patch_request.return_value = {
                    'ret': True,
                    'data': {
                        'teststr': 'yyyy',
                        '@odata.etag': '322e0d45d9572723c98'
                    }
                }

                with self.assertRaises(AnsibleExitJson) as result:
                    module.main()
示例#4
0
    def test_module_command_PatchResource_fail_when_required_args_missing(
            self):
        set_module_args({
            'category': 'Raw',
            'command': 'PatchResource',
            'baseuri': '10.245.39.251',
            'username': '******',
            'password': '******',
        })

        with patch.object(module.XCCRedfishUtils,
                          'get_request') as mock_get_request:
            mock_get_request.return_value = {
                'ret': True,
                'data': {
                    'teststr': 'xxxx',
                    '@odata.etag': '27f6eb13fa1c28a2711'
                }
            }

            with patch.object(module.XCCRedfishUtils,
                              'patch_request') as mock_patch_request:
                mock_patch_request.return_value = {
                    'ret': True,
                    'data': {
                        'teststr': 'xxxx'
                    }
                }

                with self.assertRaises(AnsibleFailJson) as result:
                    module.main()
示例#5
0
    def test_module_command_GetCollectionResource_pass_when_get_collection(
            self):
        set_module_args({
            'category': 'Raw',
            'command': 'GetCollectionResource',
            'baseuri': '10.245.39.251',
            'username': '******',
            'password': '******',
            'resource_uri': '/redfish/v1/testuri',
        })

        with patch.object(module.XCCRedfishUtils,
                          'get_request') as mock_get_request:
            mock_get_request.return_value = {
                'ret': True,
                'data': {
                    'Members': [{
                        '@odata.id': '/redfish/v1/testuri/1'
                    }],
                    '*****@*****.**': 1
                }
            }

            with self.assertRaises(AnsibleExitJson) as result:
                module.main()
示例#6
0
 def test_module_fail_when_unknown_command(self):
     with self.assertRaises(AnsibleFailJson):
         set_module_args({
             'category': 'Manager',
             'command': 'unknown',
             'baseuri': '10.245.39.251',
             'username': '******',
             'password': '******',
         })
         module.main()
示例#7
0
 def test_module_command_VirtualMediaEject_fail_when_required_args_missing(self):
     with self.assertRaises(AnsibleFailJson):
         set_module_args({
             'category': 'Manager',
             'command': 'VirtualMediaEject',
             'baseuri': '10.245.39.251',
             'username': '******',
             'password': '******',
         })
         module.main()
示例#8
0
    def test_module_command_PostResource_fail_when_requestbody_mismatch_with_data_from_actioninfo_uri(
            self):
        set_module_args({
            'category': 'Raw',
            'command': 'PostResource',
            'baseuri': '10.245.39.251',
            'username': '******',
            'password': '******',
            'resource_uri':
            '/redfish/v1/Systems/1/Bios/Actions/Bios.ChangePassword',
            'request_body': {
                'PasswordName': 'UefiAdminPassword',
                'NewPassword': '******'
            }
        })

        with patch.object(module.XCCRedfishUtils,
                          'get_request') as mock_get_request:
            mock_get_request.return_value = {
                'ret': True,
                'data': {
                    'Parameters': [],
                    'Actions': {
                        '#Bios.ChangePassword': {
                            '@Redfish.ActionInfo':
                            "/redfish/v1/Systems/1/Bios/ChangePasswordActionInfo",
                            'target':
                            "/redfish/v1/Systems/1/Bios/Actions/Bios.ChangePassword",
                            'title':
                            "ChangePassword",
                            '*****@*****.**':
                            ["UefiAdminPassword", "UefiPowerOnPassword"]
                        },
                        '#Bios.ResetBios': {
                            'title':
                            "ResetBios",
                            'target':
                            "/redfish/v1/Systems/1/Bios/Actions/Bios.ResetBios"
                        }
                    },
                }
            }

            with patch.object(module.XCCRedfishUtils,
                              'post_request') as mock_post_request:
                mock_post_request.return_value = {'ret': True}

                with self.assertRaises(AnsibleFailJson) as result:
                    module.main()
示例#9
0
    def test_module_command_GetCollectionResource_fail_when_get_not_colection(self):
        set_module_args({
            'category': 'Raw',
            'command': 'GetCollectionResource',
            'baseuri': '10.245.39.251',
            'username': '******',
            'password': '******',
            'resource_uri': '/redfish/v1/testuri',
        })

        with patch.object(module.XCCRedfishUtils, 'get_request') as mock_get_request:
            mock_get_request.return_value = {'ret': True, 'data': {'teststr': 'xxxx'}}

            with self.assertRaises(AnsibleFailJson) as result:
                module.main()
示例#10
0
    def test_module_command_GetResource_fail_when_get_return_false(self):
        set_module_args({
            'category': 'Raw',
            'command': 'GetResource',
            'baseuri': '10.245.39.251',
            'username': '******',
            'password': '******',
            'resource_uri': '/redfish/v1/testuri',
        })

        with patch.object(module.XCCRedfishUtils, 'get_request') as mock_get_request:
            mock_get_request.return_value = {'ret': False, 'msg': '404 error'}

            with self.assertRaises(AnsibleFailJson) as result:
                module.main()
示例#11
0
    def test_module_command_PatchResource_fail_when_noexisting_property_in_requestbody(self):
        set_module_args({
            'category': 'Raw',
            'command': 'PatchResource',
            'baseuri': '10.245.39.251',
            'username': '******',
            'password': '******',
            'resource_uri': '/redfish/v1/testuri',
            'request_body': {'teststr': 'yyyy', 'otherkey': 'unknownkey'}
        })

        with patch.object(module.XCCRedfishUtils, 'get_request') as mock_get_request:
            mock_get_request.return_value = {'ret': True, 'data': {'teststr': 'xxxx', '@odata.etag': '27f6eb13fa1c28a2711'}}

            with patch.object(module.XCCRedfishUtils, 'patch_request') as mock_patch_request:
                mock_patch_request.return_value = {'ret': True, 'data': {'teststr': 'xxxx'}}

                with self.assertRaises(AnsibleFailJson) as result:
                    module.main()
示例#12
0
 def test_module_fail_when_required_args_missing(self):
     with self.assertRaises(AnsibleFailJson):
         set_module_args({})
         module.main()