'Common implementation of the OneView run modules.
It calls the inheritor \'execute_module\' function and sends the return to the Ansible.
It handles any HPOneViewException in order to signal a failure to Ansible, with a descriptive error message.'

def run(self):

    try:
        if self.validate_etag_support:
            if (not self.module.params.get('validate_etag')):
                self.oneview_client.connection.disable_etag_validation()
        result = self.execute_module()
        if ('changed' not in result):
            result['changed'] = False
        self.module.exit_json(**result)
    except HPOneViewException as exception:
        error_msg = ';    '.join((to_native(e) for e in exception.args))
        self.module.fail_json(msg=error_msg, exception=traceback.format_exc())
