docs: 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))