summaryrefslogtreecommitdiffstats
path: root/ipalib/cli.py
diff options
context:
space:
mode:
authorTomas Babej <tbabej@redhat.com>2014-01-09 11:14:56 +0100
committerAlexander Bokovoy <abokovoy@redhat.com>2014-05-05 18:57:29 +0300
commit1df696f5432a673a24ff5cb273fe068a7d88d6ea (patch)
tree38b8ab1445b03806a482c9e58949c169373cc630 /ipalib/cli.py
parent093c72d60e94d9545e38f2ad90cb24e6f44cbd62 (diff)
downloadfreeipa-1df696f5432a673a24ff5cb273fe068a7d88d6ea.tar.gz
freeipa-1df696f5432a673a24ff5cb273fe068a7d88d6ea.tar.xz
freeipa-1df696f5432a673a24ff5cb273fe068a7d88d6ea.zip
ipalib: Add DateTime parameter
Adds a parameter that represents a DateTime format using datetime.datetime object from python's native datetime library. In the CLI, accepts one of the following formats: Accepts LDAP Generalized time without in the following format: '%Y%m%d%H%M%SZ' Accepts subset of values defined by ISO 8601: '%Y-%m-%dT%H:%M:%SZ' '%Y-%m-%dT%H:%MZ' '%Y-%m-%dZ' Also accepts above formats using ' ' (space) as a separator instead of 'T'. As a simplification, it does not deal with timezone info and ISO 8601 values with timezone info (+-hhmm) are rejected. Values are expected to be in the UTC timezone. Values are saved to LDAP as LDAP Generalized time values in the format '%Y%m%d%H%SZ' (no time fractions and UTC timezone is assumed). To avoid confusion, in addition to subset of ISO 8601 values, the LDAP generalized time in the format '%Y%m%d%H%M%SZ' is also accepted as an input (as this is the format user will see on the output). Part of: https://fedorahosted.org/freeipa/ticket/3306 Reviewed-By: Jan Cholasta <jcholast@redhat.com>
Diffstat (limited to 'ipalib/cli.py')
-rw-r--r--ipalib/cli.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/ipalib/cli.py b/ipalib/cli.py
index 4250aaf54..f03db9c61 100644
--- a/ipalib/cli.py
+++ b/ipalib/cli.py
@@ -46,11 +46,13 @@ import plugable
from errors import (PublicError, CommandError, HelpError, InternalError,
NoSuchNamespaceError, ValidationError, NotFound,
NotConfiguredError, PromptFailed)
-from constants import CLI_TAB
+from constants import CLI_TAB, LDAP_GENERALIZED_TIME_FORMAT
from parameters import File, Str, Enum, Any
from text import _
from ipapython.version import API_VERSION
+import datetime
+
def to_cli(name):
"""
@@ -155,6 +157,8 @@ class textui(backend.Backend):
"""
if type(value) is str:
return base64.b64encode(value)
+ elif type(value) is datetime.datetime:
+ return value.strftime(LDAP_GENERALIZED_TIME_FORMAT)
else:
return value