def deploy_image(self, vcenter_data_model, image_params, logger):
        """
        Receives ovf image parameters and deploy it on the designated vcenter
        :param VMwarevCenterResourceModel vcenter_data_model:
        :type image_params: vCenterShell.vm.ovf_image_params.OvfImageParams
        :param logger:
        """
        ovf_tool_exe_path = vcenter_data_model.ovf_tool_path

        self._validate_url_exists(ovf_tool_exe_path, 'OVF Tool', logger)

        args = self._get_args(ovf_tool_exe_path, image_params, logger)
        logger.debug('opening ovf tool process with the params: {0}'.format(','.join(args)))
        process = subprocess.Popen(args, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
                                   stderr=subprocess.PIPE)

        logger.debug('communicating with ovf tool')
        result = process.communicate()
        process.stdin.close()

        if result:
            res = '\n\r'.join(result)
        else:
            if image_params.user_arguments.find('--quiet') == -1:
                raise Exception('no result has return from the ovftool')
            res = COMPLETED_SUCCESSFULLY

        logger.info('communication with ovf tool results: {0}'.format(res))
        if res.find(COMPLETED_SUCCESSFULLY) > -1:
            return True

        image_params.connectivity.password = '******'
        args_for_error = ' '.join(self._get_args(ovf_tool_exe_path, image_params, logger))
        logger.error('error deploying image with the args: {0}, error: {1}'.format(args_for_error, res))
        raise Exception('error deploying image with the args: {0}, error: {1}'.format(args_for_error, res))
Receives ovf image parameters and deploy it on the designated vcenter
        :param VMwarevCenterResourceModel vcenter_data_model:
        :type image_params: vCenterShell.vm.ovf_image_params.OvfImageParams
        :param logger: