ipalib: Fix skip_version_check option

This reverts commit ea7f392bb9.

The option can be either set in IPA config file or specified as
'ipa -e skip_version_check=1 [COMMAND]'.

https://fedorahosted.org/freeipa/ticket/4768

Reviewed-By: Martin Basti <mbasti@redhat.com>
This commit is contained in:
Jan Cholasta 2015-07-08 06:21:02 +00:00
parent bf6df3df9b
commit 232458a222
3 changed files with 9 additions and 9 deletions

View File

@ -166,6 +166,9 @@ Specifies how the expiration of a session is computed. With \fBinactivity_timeou
.B server <hostname> .B server <hostname>
Specifies the IPA Server hostname. Specifies the IPA Server hostname.
.TP .TP
.B skip_version_check <boolean>
Skip client vs. server API version checking. Can lead to errors/strange behavior when newer clients talk to older servers. Use with caution.
.TP
.B startup_timeout <time in seconds> .B startup_timeout <time in seconds>
Controls the amount of time waited when starting a service. The default value is 120 seconds. Controls the amount of time waited when starting a service. The default value is 120 seconds.
.TP .TP

View File

@ -26,6 +26,7 @@ from distutils import version
from ipapython.version import API_VERSION from ipapython.version import API_VERSION
from ipapython.ipa_log_manager import root_logger from ipapython.ipa_log_manager import root_logger
from ipalib.capabilities import VERSION_WITHOUT_CAPABILITIES
from base import NameSpace from base import NameSpace
from plugable import Plugin from plugable import Plugin
from parameters import create_param, Param, Str, Flag, Password from parameters import create_param, Param, Str, Flag, Password
@ -423,7 +424,9 @@ class Command(HasParam):
version_provided = 'version' in options version_provided = 'version' in options
if version_provided: if version_provided:
self.verify_client_version(unicode(options['version'])) self.verify_client_version(unicode(options['version']))
elif self.api.env.in_server or not self.api.env.skip_version_check: elif self.api.env.skip_version_check and not self.api.env.in_server:
options['version'] = VERSION_WITHOUT_CAPABILITIES
else:
options['version'] = API_VERSION options['version'] = API_VERSION
params = self.args_options_2_params(*args, **options) params = self.args_options_2_params(*args, **options)
self.debug( self.debug(
@ -451,7 +454,7 @@ class Command(HasParam):
): ):
ret['summary'] = self.get_summary_default(ret) ret['summary'] = self.get_summary_default(ret)
if self.use_output_validation and (self.output or ret is not None): if self.use_output_validation and (self.output or ret is not None):
self.validate_output(ret, options.get('version', API_VERSION)) self.validate_output(ret, options['version'])
return ret return ret
def soft_validate(self, values): def soft_validate(self, values):

View File

@ -484,12 +484,6 @@ class API(ReadOnly):
dest='fallback', dest='fallback',
help='Only use the server configured in /etc/ipa/default.conf' help='Only use the server configured in /etc/ipa/default.conf'
) )
parser.add_option(
'--skip-version-check',
action='store_true',
dest='skip_version_check',
help=optparse.SUPPRESS_HELP
)
return parser return parser
@ -509,7 +503,7 @@ class API(ReadOnly):
pass pass
overrides[str(key.strip())] = value.strip() overrides[str(key.strip())] = value.strip()
for key in ('conf', 'debug', 'verbose', 'prompt_all', 'interactive', for key in ('conf', 'debug', 'verbose', 'prompt_all', 'interactive',
'fallback', 'delegate', 'skip_version_check'): 'fallback', 'delegate'):
value = getattr(options, key, None) value = getattr(options, key, None)
if value is not None: if value is not None:
overrides[key] = value overrides[key] = value