~registry/pykickstart/trunk

« back to all changes in this revision

Viewing changes to pykickstart/commands/timezone.py

  • Committer: Chris Lumens
  • Date: 2014-10-22 14:19:44 UTC
  • Revision ID: git-v1:982498c0647c4bc3b4460209d4a76698c0eb6f8c
Add a note that the repo has moved.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#
2
 
# Chris Lumens <clumens@redhat.com>
3
 
#
4
 
# Copyright 2005, 2006, 2007 Red Hat, Inc.
5
 
#
6
 
# This copyrighted material is made available to anyone wishing to use, modify,
7
 
# copy, or redistribute it subject to the terms and conditions of the GNU
8
 
# General Public License v.2.  This program is distributed in the hope that it
9
 
# will be useful, but WITHOUT ANY WARRANTY expressed or implied, including the
10
 
# implied warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11
 
# See the GNU General Public License for more details.
12
 
#
13
 
# You should have received a copy of the GNU General Public License along with
14
 
# this program; if not, write to the Free Software Foundation, Inc., 51
15
 
# Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  Any Red Hat
16
 
# trademarks that are incorporated in the source code or documentation are not
17
 
# subject to the GNU General Public License and may only be used or replicated
18
 
# with the express permission of Red Hat, Inc. 
19
 
#
20
 
from pykickstart.base import KickstartCommand
21
 
from pykickstart.errors import KickstartParseError, KickstartValueError, formatErrorMsg
22
 
from pykickstart.options import KSOptionParser
23
 
 
24
 
import gettext
25
 
_ = lambda x: gettext.ldgettext("pykickstart", x)
26
 
 
27
 
class FC3_Timezone(KickstartCommand):
28
 
    removedKeywords = KickstartCommand.removedKeywords
29
 
    removedAttrs = KickstartCommand.removedAttrs
30
 
 
31
 
    def __init__(self, writePriority=0, *args, **kwargs):
32
 
        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
33
 
        self.op = self._getParser()
34
 
 
35
 
        self.isUtc = kwargs.get("isUtc", False)
36
 
        self.timezone = kwargs.get("timezone", "")
37
 
 
38
 
    def __str__(self):
39
 
        retval = KickstartCommand.__str__(self)
40
 
 
41
 
        if self.timezone:
42
 
            if self.isUtc:
43
 
                utc = "--utc"
44
 
            else:
45
 
                utc = ""
46
 
 
47
 
            retval += "# System timezone\ntimezone %s %s\n" %(utc, self.timezone)
48
 
 
49
 
        return retval
50
 
 
51
 
    def _getParser(self):
52
 
        op = KSOptionParser()
53
 
        op.add_option("--utc", dest="isUtc", action="store_true", default=False)
54
 
        return op
55
 
 
56
 
    def parse(self, args):
57
 
        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
58
 
        self._setToSelf(self.op, opts)
59
 
 
60
 
        if len(extra) != 1:
61
 
            raise KickstartValueError(formatErrorMsg(self.lineno, msg=_("A single argument is expected for the %s command") % "timezone"))
62
 
 
63
 
        self.timezone = extra[0]
64
 
        return self
65
 
 
66
 
class FC6_Timezone(FC3_Timezone):
67
 
    removedKeywords = FC3_Timezone.removedKeywords
68
 
    removedAttrs = FC3_Timezone.removedAttrs
69
 
 
70
 
    def __str__(self):
71
 
        retval = KickstartCommand.__str__(self)
72
 
 
73
 
        if self.timezone:
74
 
            if self.isUtc:
75
 
                utc = "--isUtc"
76
 
            else:
77
 
                utc = ""
78
 
 
79
 
            retval += "# System timezone\ntimezone %s %s\n" %(utc, self.timezone)
80
 
 
81
 
        return retval
82
 
 
83
 
    def _getParser(self):
84
 
        op = FC3_Timezone._getParser(self)
85
 
        op.add_option("--utc", "--isUtc", dest="isUtc", action="store_true", default=False)
86
 
        return op
87
 
 
88
 
class F18_Timezone(FC6_Timezone):
89
 
    def __init__(self, writePriority=0, *args, **kwargs):
90
 
        FC6_Timezone.__init__(self, writePriority, *args, **kwargs)
91
 
        self.op = self._getParser()
92
 
        self.nontp = kwargs.get("nontp", False)
93
 
        self.ntpservers = kwargs.get("ntpservers", set())
94
 
 
95
 
    def __str__(self):
96
 
        retval = KickstartCommand.__str__(self)
97
 
 
98
 
        if self.timezone:
99
 
            retval += "# System timezone\n"
100
 
            retval += "timezone " + self._getArgsAsStr() + "\n"
101
 
 
102
 
        return retval
103
 
 
104
 
    def _getArgsAsStr(self):
105
 
        retval = self.timezone
106
 
 
107
 
        if self.isUtc:
108
 
            retval += " --isUtc"
109
 
 
110
 
        if self.nontp:
111
 
            retval += " --nontp"
112
 
 
113
 
        if self.ntpservers:
114
 
            retval += " --ntpservers=" + ",".join(self.ntpservers)
115
 
 
116
 
        return retval
117
 
 
118
 
    def _getParser(self):
119
 
        def servers_cb(option, opt_str, value, parser):
120
 
            for server in value.split(","):
121
 
                if server:
122
 
                    parser.values.ensure_value(option.dest, set()).add(server)
123
 
 
124
 
 
125
 
        op = FC6_Timezone._getParser(self)
126
 
        op.add_option("--nontp", dest="nontp", action="store_true", default=False)
127
 
        op.add_option("--ntpservers", dest="ntpservers", action="callback",
128
 
                      callback=servers_cb, nargs=1, type="string")
129
 
 
130
 
        return op
131
 
 
132
 
    def parse(self, args):
133
 
        FC6_Timezone.parse(self, args)
134
 
 
135
 
        if self.ntpservers and self.nontp:
136
 
            msg = formatErrorMsg(self.lineno, msg=_("Options --nontp and "\
137
 
                                    "--ntpservers are mutually exclusive"))
138
 
            raise KickstartParseError(msg)
139
 
 
140
 
        return self