Beispiel #1
0
    def test_local_properties_set(self):
        obj_mock = MagicMock()
        # obj.propSet
        propSet_prop = PropertyMock(return_value=[])
        type(obj_mock).propSet = propSet_prop
        # obj.obj
        inner_obj_mock = MagicMock()
        obj_prop = PropertyMock(return_value=inner_obj_mock)
        type(obj_mock).obj = obj_prop

        get_content = MagicMock(return_value=[obj_mock])
        with patch('salt.utils.vmware.get_content', get_content):
            ret = salt.utils.vmware.get_mors_with_properties(
                self.si,
                self.obj_type,
                self.prop_list,
                self.container_ref,
                self.traversal_spec,
                local_properties=True)
        get_content.assert_called_once_with(self.si,
                                            self.obj_type,
                                            property_list=self.prop_list,
                                            container_ref=self.container_ref,
                                            traversal_spec=self.traversal_spec,
                                            local_properties=True)
Beispiel #2
0
 def test_one_element_content(self):
     obj_mock = MagicMock()
     # obj.propSet
     propSet_prop = PropertyMock(return_value=[])
     type(obj_mock).propSet = propSet_prop
     # obj.obj
     inner_obj_mock = MagicMock()
     obj_prop = PropertyMock(return_value=inner_obj_mock)
     type(obj_mock).obj = obj_prop
     get_content = MagicMock(return_value=[obj_mock])
     with patch('salt.utils.vmware.get_content', get_content):
         ret = salt.utils.vmware.get_mors_with_properties(
             self.si, self.obj_type, self.prop_list, self.container_ref,
             self.traversal_spec)
         get_content.assert_called_once_with(
             self.si,
             self.obj_type,
             property_list=self.prop_list,
             container_ref=self.container_ref,
             traversal_spec=self.traversal_spec,
             local_properties=False)
     self.assertEqual(propSet_prop.call_count, 1)
     self.assertEqual(obj_prop.call_count, 1)
     self.assertEqual(len(ret), 1)
     self.assertDictEqual(ret[0], {'object': inner_obj_mock})
Beispiel #3
0
    def test__validate_key_path_and_mode(self):
        # Key file exists
        with patch("os.path.exists", return_value=True):
            with patch("os.stat") as patched_stat:
                type(patched_stat.return_value).st_mode = PropertyMock(
                    return_value=0o644
                )
                self.assertRaises(
                    SaltCloudSystemExit, ec2._validate_key_path_and_mode, "key_file"
                )

                type(patched_stat.return_value).st_mode = PropertyMock(
                    return_value=0o600
                )
                self.assertTrue(ec2._validate_key_path_and_mode("key_file"))

                type(patched_stat.return_value).st_mode = PropertyMock(
                    return_value=0o400
                )
                self.assertTrue(ec2._validate_key_path_and_mode("key_file"))

        # Key file does not exist
        with patch("os.path.exists", return_value=False):
            self.assertRaises(
                SaltCloudSystemExit, ec2._validate_key_path_and_mode, "key_file"
            )
Beispiel #4
0
 def setUp(self):
     self.mock_ent_id = MagicMock()
     self.mock_si = MagicMock()
     type(self.mock_si.content.about).instanceUuid = \
             PropertyMock(return_value=self.mock_ent_id)
     self.mock_moid = MagicMock()
     self.prop_mock_moid = PropertyMock(return_value=self.mock_moid)
     self.mock_entity_ref = MagicMock()
     type(self.mock_entity_ref)._moId = self.prop_mock_moid
     self.mock_assignments = [
         MagicMock(entityDisplayName='fake_ent1'),
         MagicMock(entityDisplayName='fake_ent2')
     ]
     self.mock_query_assigned_licenses = MagicMock(return_value=[
         MagicMock(assignedLicense=self.mock_assignments[0]),
         MagicMock(assignedLicense=self.mock_assignments[1])
     ])
     self.mock_lic_assign_mgr = MagicMock(
         QueryAssignedLicenses=self.mock_query_assigned_licenses)
     patches = (('salt.utils.vmware.get_license_assignment_manager',
                 MagicMock(return_value=self.mock_lic_assign_mgr)), )
     for mod, mock in patches:
         patcher = patch(mod, mock)
         patcher.start()
         self.addCleanup(patcher.stop)
Beispiel #5
0
 def test_info_error_exception(self):
     mock_task = MagicMock()
     prop_mock_state = PropertyMock(return_value='error')
     prop_mock_error = PropertyMock(side_effect=Exception('error exc'))
     type(mock_task.info).state = prop_mock_state
     type(mock_task.info).error = prop_mock_error
     with self.assertRaises(Exception) as excinfo:
         salt.utils.vmware.wait_for_task(mock_task, 'fake_instance_name',
                                         'task_type')
     self.assertEqual(str(excinfo.exception), 'error exc')
Beispiel #6
0
 def test_info_state_success(self):
     mock_task = MagicMock()
     prop_mock_state = PropertyMock(return_value='success')
     prop_mock_result = PropertyMock()
     type(mock_task.info).state = prop_mock_state
     type(mock_task.info).result = prop_mock_result
     salt.utils.vmware.wait_for_task(mock_task, 'fake_instance_name',
                                     'task_type')
     self.assertEqual(prop_mock_state.call_count, 3)
     self.assertEqual(prop_mock_result.call_count, 1)
Beispiel #7
0
 def test_inner_loop_task_info_raise_vim_fault(self):
     exc = vim.fault.VimFault()
     exc.msg = 'VimFault msg'
     mock_task = MagicMock()
     mock_info1 = MagicMock()
     type(mock_task).info = PropertyMock(side_effect=[mock_info1, exc])
     type(mock_info1).state = PropertyMock(side_effect=['running', 'bad'])
     with self.assertRaises(excs.VMwareApiError) as excinfo:
         salt.utils.vmware.wait_for_task(mock_task, 'fake_instance_name',
                                         'task_type')
     self.assertEqual(excinfo.exception.strerror, 'VimFault msg')
Beispiel #8
0
 def test_info_state_running(self):
     # The 'bad' values are invalid in the while loop
     mock_task = MagicMock()
     prop_mock_state = PropertyMock(
         side_effect=['running', 'bad', 'bad', 'success'])
     prop_mock_result = PropertyMock()
     type(mock_task.info).state = prop_mock_state
     type(mock_task.info).result = prop_mock_result
     salt.utils.vmware.wait_for_task(mock_task, 'fake_instance_name',
                                     'task_type')
     self.assertEqual(prop_mock_state.call_count, 4)
     self.assertEqual(prop_mock_result.call_count, 1)
Beispiel #9
0
 def test_info_error_system_fault(self):
     exc = vmodl.fault.SystemError()
     exc.msg = 'SystemError msg'
     mock_task = MagicMock()
     prop_mock_state = PropertyMock(return_value='error')
     prop_mock_error = PropertyMock(side_effect=exc)
     type(mock_task.info).state = prop_mock_state
     type(mock_task.info).error = prop_mock_error
     with self.assertRaises(excs.VMwareSystemError) as excinfo:
         salt.utils.vmware.wait_for_task(mock_task, 'fake_instance_name',
                                         'task_type')
     self.assertEqual(excinfo.exception.strerror, 'SystemError msg')
Beispiel #10
0
 def test_info_state_queued_continues_loop(self):
     mock_task = MagicMock()
     # The 'fake' values are required to match all the lookups and end the
     # loop
     prop_mock_state = PropertyMock(
         side_effect=['fake', 'queued', 'fake', 'fake', 'success'])
     prop_mock_result = PropertyMock()
     type(mock_task.info).state = prop_mock_state
     type(mock_task.info).result = prop_mock_result
     salt.utils.vmware.wait_for_task(mock_task, 'fake_instance_name',
                                     'task_type')
     self.assertEqual(prop_mock_state.call_count, 5)
     self.assertEqual(prop_mock_result.call_count, 1)
Beispiel #11
0
 def test_info_error_invalid_argument_no_fault_message(self):
     exc = vmodl.fault.InvalidArgument()
     exc.faultMessage = None
     exc.msg = 'InvalidArgumentFault msg'
     mock_task = MagicMock()
     prop_mock_state = PropertyMock(return_value='error')
     prop_mock_error = PropertyMock(side_effect=exc)
     type(mock_task.info).state = prop_mock_state
     type(mock_task.info).error = prop_mock_error
     with self.assertRaises(excs.VMwareApiError) as excinfo:
         salt.utils.vmware.wait_for_task(mock_task, 'fake_instance_name',
                                         'task_type')
     self.assertEqual(excinfo.exception.strerror,
                      'InvalidArgumentFault msg')
Beispiel #12
0
 def test_inner_loop_task_info_raise_no_permission(self):
     exc = vim.fault.NoPermission()
     exc.privilegeId = 'Fake privilege'
     mock_task = MagicMock()
     mock_info1 = MagicMock()
     type(mock_task).info = PropertyMock(side_effect=[mock_info1, exc])
     type(mock_info1).state = PropertyMock(side_effect=['running', 'bad'])
     with self.assertRaises(excs.VMwareApiError) as excinfo:
         salt.utils.vmware.wait_for_task(mock_task, 'fake_instance_name',
                                         'task_type')
     self.assertEqual(
         excinfo.exception.strerror,
         'Not enough permissions. Required privilege: '
         'Fake privilege')
Beispiel #13
0
 def test_info_error_no_permission(self):
     exc = vim.fault.NoPermission()
     exc.privilegeId = 'Fake privilege'
     mock_task = MagicMock()
     prop_mock_state = PropertyMock(return_value='error')
     prop_mock_error = PropertyMock(side_effect=exc)
     type(mock_task.info).state = prop_mock_state
     type(mock_task.info).error = prop_mock_error
     with self.assertRaises(excs.VMwareApiError) as excinfo:
         salt.utils.vmware.wait_for_task(mock_task, 'fake_instance_name',
                                         'task_type')
     self.assertEqual(
         excinfo.exception.strerror,
         'Not enough permissions. Required privilege: '
         'Fake privilege')
Beispiel #14
0
 def test_raise_vim_fault(self):
     exc = vim.fault.VimFault()
     exc.msg = 'VimFault msg'
     type(self.mock_lic_mgr).licenses = PropertyMock(side_effect=exc)
     with self.assertRaises(VMwareApiError) as excinfo:
         salt.utils.vmware.get_licenses(self.mock_si)
     self.assertEqual(excinfo.exception.strerror, 'VimFault msg')
Beispiel #15
0
 def test_placement_solver_raises_runtime_fault(self):
     exc = vmodl.RuntimeFault()
     exc.msg = "RuntimeFault msg"
     type(self.mock_content).placementSolver = PropertyMock(side_effect=exc)
     with self.assertRaises(VMwareRuntimeError) as excinfo:
         salt.utils.pbm.get_placement_solver(self.mock_si)
     self.assertEqual(excinfo.exception.strerror, "RuntimeFault msg")
Beispiel #16
0
 def setUp(self):
     self.mock_si = MagicMock()
     self.mock_stub = MagicMock()
     self.mock_prof_mgr = MagicMock()
     self.mock_content = MagicMock()
     self.mock_pbm_si = MagicMock(
         RetrieveContent=MagicMock(return_value=self.mock_content)
     )
     type(self.mock_content).profileManager = PropertyMock(
         return_value=self.mock_prof_mgr
     )
     patches = (
         (
             "salt.utils.vmware.get_new_service_instance_stub",
             MagicMock(return_value=self.mock_stub),
         ),
         (
             "salt.utils.pbm.pbm.ServiceInstance",
             MagicMock(return_value=self.mock_pbm_si),
         ),
     )
     for mod, mock in patches:
         patcher = patch(mod, mock)
         patcher.start()
         self.addCleanup(patcher.stop)
Beispiel #17
0
 def test_profile_manager_raises_runtime_fault(self):
     exc = vmodl.RuntimeFault()
     exc.msg = 'RuntimeFault msg'
     type(self.mock_content).profileManager = PropertyMock(side_effect=exc)
     with self.assertRaises(VMwareRuntimeError) as excinfo:
         salt.utils.pbm.get_profile_manager(self.mock_si)
     self.assertEqual(excinfo.exception.strerror, 'RuntimeFault msg')
Beispiel #18
0
 def test_raise_runtime_fault(self):
     exc = vmodl.RuntimeFault()
     exc.msg = 'RuntimeFault msg'
     type(self.mock_lic_mgr).licenses = PropertyMock(side_effect=exc)
     with self.assertRaises(VMwareRuntimeError) as excinfo:
         salt.utils.vmware.get_licenses(self.mock_si)
     self.assertEqual(excinfo.exception.strerror, 'RuntimeFault msg')
Beispiel #19
0
 def test_placement_solver_raises_vim_fault(self):
     exc = vim.fault.VimFault()
     exc.msg = 'VimFault msg'
     type(self.mock_content).placementSolver = PropertyMock(side_effect=exc)
     with self.assertRaises(VMwareApiError) as excinfo:
         salt.utils.pbm.get_placement_solver(self.mock_si)
     self.assertEqual(excinfo.exception.strerror, 'VimFault msg')
Beispiel #20
0
 def test_raise_runtime_fault(self):
     exc = vmodl.RuntimeFault()
     exc.msg = 'RuntimeFault msg'
     type(self.mock_content).rootFolder = PropertyMock(side_effect=exc)
     with self.assertRaises(excs.VMwareRuntimeError) as excinfo:
         salt.utils.vmware.get_root_folder(self.mock_si)
     self.assertEqual(excinfo.exception.strerror, 'RuntimeFault msg')
Beispiel #21
0
 def test_empty_license_assignment_manager(self):
     type(self.mock_si.content.licenseManager).licenseAssignmentManager = \
             PropertyMock(return_value=None)
     with self.assertRaises(VMwareObjectRetrievalError) as excinfo:
         salt.utils.vmware.get_license_assignment_manager(self.mock_si)
     self.assertEqual(excinfo.exception.strerror,
                      'License assignment manager was not retrieved')
Beispiel #22
0
    def setUp(self):
        self.mock_stub = MagicMock(
            host='fake_host:1000',
            cookie='ignore"fake_cookie')
        self.mock_si = MagicMock(
            _stub=self.mock_stub)
        self.mock_ret = MagicMock()
        self.mock_new_stub = MagicMock()
        self.context_dict = {}
        patches = (('salt.utils.vmware.VmomiSupport.GetRequestContext',
                    MagicMock(
                        return_value=self.context_dict)),
                   ('salt.utils.vmware.SoapStubAdapter',
                    MagicMock(return_value=self.mock_new_stub)))
        for mod, mock in patches:
            patcher = patch(mod, mock)
            patcher.start()
            self.addCleanup(patcher.stop)

        type(salt.utils.vmware.sys).version_info = \
                PropertyMock(return_value=(2, 7, 9))
        self.mock_context = MagicMock()
        self.mock_create_default_context = \
                MagicMock(return_value=self.mock_context)
        salt.utils.vmware.ssl.create_default_context = \
                   self.mock_create_default_context
Beispiel #23
0
 def test_profile_manager_raises_vim_fault(self):
     exc = vim.fault.VimFault()
     exc.msg = "VimFault msg"
     type(self.mock_content).profileManager = PropertyMock(side_effect=exc)
     with self.assertRaises(VMwareApiError) as excinfo:
         salt.utils.pbm.get_profile_manager(self.mock_si)
     self.assertEqual(excinfo.exception.strerror, "VimFault msg")
Beispiel #24
0
 def test_about_raises_runtime_fault(self):
     exc = vmodl.RuntimeFault()
     exc.msg = 'RuntimeFault msg'
     type(self.mock_si.content).about = \
             PropertyMock(side_effect=exc)
     with self.assertRaises(excs.VMwareRuntimeError) as excinfo:
         salt.utils.vmware.get_service_info(self.mock_si)
     self.assertEqual(excinfo.exception.strerror, 'RuntimeFault msg')
Beispiel #25
0
 def test_raise_runtime_fault(self):
     exc = vmodl.RuntimeFault()
     exc.msg = 'RuntimeFault msg'
     type(self.mock_si.content.licenseManager).licenseAssignmentManager = \
             PropertyMock(side_effect=exc)
     with self.assertRaises(VMwareRuntimeError) as excinfo:
         salt.utils.vmware.get_license_assignment_manager(self.mock_si)
     self.assertEqual(excinfo.exception.strerror, 'RuntimeFault msg')
Beispiel #26
0
 def test_instance_uuid(self):
     mock_instance_uuid_prop = PropertyMock()
     type(self.mock_si.content.about).instanceUuid = mock_instance_uuid_prop
     self.mock_lic_assign_mgr.QueryAssignedLicenses = MagicMock(
         return_value=[MagicMock(entityDisplayName='fake_vcenter')])
     salt.utils.vmware.get_assigned_licenses(self.mock_si,
                                             entity_name='fake_vcenter')
     self.assertEqual(mock_instance_uuid_prop.call_count, 1)
Beispiel #27
0
 def test_api_version_raises_runtime_fault(self):
     exc = vmodl.RuntimeFault()
     exc.msg = 'RuntimeFault msg'
     mock_si = MagicMock(content=MagicMock(about=MagicMock()))
     type(mock_si.content.about).apiVersion = PropertyMock(side_effect=exc)
     with self.assertRaises(VMwareRuntimeError) as excinfo:
         vsan.vsan_supported(mock_si)
     self.assertEqual(excinfo.exception.strerror, 'RuntimeFault msg')
Beispiel #28
0
 def test_api_type_raise_runtime_fault(self):
     exc = vmodl.RuntimeFault()
     exc.msg = 'RuntimeFault msg'
     mock_si = MagicMock()
     type(mock_si.content.about).apiType = PropertyMock(side_effect=exc)
     with self.assertRaises(excs.VMwareRuntimeError) as excinfo:
         salt.utils.vmware.is_connection_to_a_vcenter(mock_si)
     self.assertEqual(excinfo.exception.strerror, 'RuntimeFault msg')
Beispiel #29
0
 def test_api_version_raises_vim_fault(self):
     exc = vim.fault.VimFault()
     exc.msg = "VimFault msg"
     mock_si = MagicMock(content=MagicMock(about=MagicMock()))
     type(mock_si.content.about).apiVersion = PropertyMock(side_effect=exc)
     with self.assertRaises(VMwareApiError) as excinfo:
         vsan.vsan_supported(mock_si)
     self.assertEqual(excinfo.exception.strerror, "VimFault msg")
Beispiel #30
0
 def test_profile_manager_raises_no_permissions(self):
     exc = vim.fault.NoPermission()
     exc.privilegeId = 'Fake privilege'
     type(self.mock_content).profileManager = PropertyMock(side_effect=exc)
     with self.assertRaises(VMwareApiError) as excinfo:
         salt.utils.pbm.get_profile_manager(self.mock_si)
     self.assertEqual(excinfo.exception.strerror,
                      'Not enough permissions. Required privilege: '
                      'Fake privilege')