Ignore:
Timestamp:
Dec 20, 2011, 11:17:58 AM (12 years ago)
Author:
Jessica B. Hamrick <jhamrick@…>
Branches:
no-cups
Children:
08a764a
Parents:
6ed9d7a
git-author:
Jessica B. Hamrick <jhamrick@…> (12/20/11 11:17:58)
git-committer:
Jessica B. Hamrick <jhamrick@…> (12/20/11 11:17:58)
Message:

Remove ipp-specific objects from server/job and server/printers (but keep ipp-specific attribute names)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • server/lib/gutenbach/server/printer.py

    rb2e077a r1a63bf7  
    1212class GutenbachPrinter(object):
    1313
     14    # for IPP
    1415    attributes = [
    1516        "printer-uri-supported",
     
    3132        "pdl-override-supported",
    3233        "printer-up-time",
    33         "compression-supported"]
     34        "compression-supported"
     35    ]
    3436
    3537    #def __init__(self, name, card, mixer):
    3638    def __init__(self, name):
    3739
    38         self._name = name
    39         self._uri = "ipp://localhost:8000/printers/" + self._name
    40         self._time_created = int(time.time())
     40        self.name = name
     41        self.uri = "ipp://localhost:8000/printers/" + self.name
     42        self.time_created = int(time.time())
     43        self.state = "idle"
    4144
    4245        # if card >= len(aa.cards()):
     
    5659        self._next_jobid = 0
    5760
     61    def __getattr__(self, attr):
     62        try:
     63            return super(Printer, self).__getattr__(attr)
     64        except AttributeError:
     65            pass
     66
     67        return super(Printer, self).__getattr__(
     68            attr.replace("-", "_"))
     69
     70    def __hasattr__(self, attr):
     71        has = super(Printer, self).__hasattr__(attr)
     72        if not has:
     73            has = super(Printer, self).__hasattr__(
     74                attr.replace("-", "_"))
     75        return has
     76
    5877    ## Printer attributes
     78
    5979    @property
    6080    def printer_uri_supported(self):
    61         return ipp.Attribute(
    62             "printer-uri-supported",
    63             [ipp.Value(ipp.Tags.URI, self._uri)])
    64    
     81        return self.uri
     82
    6583    @property
    6684    def uri_authentication_supported(self):
    67         return ipp.Attribute(
    68             "uri-authentication-supported",
    69             [ipp.Value(ipp.Tags.KEYWORD, "none")])
     85        return "none"
    7086
    7187    @property
    7288    def uri_security_supported(self):
    73         return ipp.Attribute(
    74             "uri-security-supported",
    75             [ipp.Value(ipp.Tags.KEYWORD, "none")])
     89        return "none"
    7690
    7791    @property
    7892    def printer_name(self):
    79         return ipp.Attribute(
    80             "printer-name",
    81             [ipp.Value(ipp.Tags.NAME_WITHOUT_LANGUAGE, self._name)])
    82        
     93        return self.name
     94
    8395    @property
    8496    def printer_state(self):
    85         return ipp.Attribute(
    86             "printer-state",
    87             [ipp.Value(ipp.Tags.ENUM, const.PrinterStates.IDLE)])
    88        
     97        return self.state
     98
    8999    @property
    90100    def printer_state_reasons(self):
    91         return ipp.Attribute(
    92             "printer-state-reasons",
    93             [ipp.Value(ipp.Tags.KEYWORD, "none")])
     101        return "none"
    94102
    95103    @property
    96104    def ipp_versions_supported(self):
    97         return ipp.Attribute(
    98             "ipp-versions-supported",
    99             [ipp.Value(ipp.Tags.KEYWORD, "1.0"),
    100              ipp.Value(ipp.Tags.KEYWORD, "1.1")])
    101 
     105        return ("1.0", "1.1")
    102106    # XXX: We should query ourself for the supported operations
     107
    103108    @property
    104109    def operations_supported(self):
    105         return ipp.Attribute(
    106             "operations-supported",
    107             [ipp.Value(ipp.Tags.ENUM, const.Operations.GET_JOBS)])
     110        return "get-jobs"
    108111
    109112    @property
    110113    def charset_configured(self):
    111         return ipp.Attribute(
    112             "charset-configured",
    113             [ipp.Value(ipp.Tags.CHARSET, "utf-8")])
     114        return "utf-8"
    114115
    115116    @property
    116117    def charset_supported(self):
    117         return ipp.Attribute(
    118             "charset-supported",
    119             [ipp.Value(ipp.Tags.CHARSET, "utf-8")])
     118        return "utf-8"
    120119
    121120    @property
    122121    def natural_language_configured(self):
    123         return ipp.Attribute(
    124             "natural-language-configured",
    125             [ipp.Value(ipp.Tags.NATURAL_LANGUAGE, "en-us")])
     122        return "en-us"
    126123
    127124    @property
    128125    def generated_natural_language_supported(self):
    129         return ipp.Attribute(
    130             "generated-natural-language-supported",
    131             [ipp.Value(ipp.Tags.NATURAL_LANGUAGE, "en-us")])
     126        return "en-us"
    132127
    133128    @property
    134129    def document_format_default(self):
    135         return ipp.Attribute(
    136             "document-format-default",
    137             [ipp.Value(ipp.Tags.MIME_MEDIA_TYPE, "application/octet-stream")])
     130        return "application/octet-stream"
    138131
    139132    @property
    140133    def document_format_supported(self):
    141         return ipp.Attribute(
    142             "document-format-supported",
    143             [ipp.Value(ipp.Tags.MIME_MEDIA_TYPE, "application/octet-stream"),
    144              ipp.Value(ipp.Tags.MIME_MEDIA_TYPE, "audio/mp3")])
     134        return ("application/octet-stream", "audio/mp3")
    145135
    146136    @property
    147137    def printer_is_accepting_jobs(self):
    148         return ipp.Attribute(
    149             "printer-is-accepting-jobs",
    150             [ipp.Value(ipp.Tags.BOOLEAN, True)])
     138        return True
    151139
    152140    @property
    153141    def queued_job_count(self):
    154         return ipp.Attribute(
    155             "queued-job-count",
    156             [ipp.Value(ipp.Tags.INTEGER, len(self.active_jobs))])
     142        return len(self.active_jobs)
    157143
    158144    @property
    159145    def pdl_override_supported(self):
    160         return ipp.Attribute(
    161             "pdl-override-supported",
    162             [ipp.Value(ipp.Tags.KEYWORD, "not-attempted")])
     146        return "not-attempted"
    163147
    164148    @property
    165149    def printer_up_time(self):
    166         return ipp.Attribute(
    167             "printer-up-time",
    168             [ipp.Value(ipp.Tags.INTEGER, int(time.time()) - self._time_created)])
     150        return int(time.time()) - self.time_created
    169151
    170152    @property
    171153    def compression_supported(self):
    172         return ipp.Attribute(
    173             "compression-supported",
    174             [ipp.Value(ipp.Tags.KEYWORD, "none")])
     154        return "none"
    175155
    176156    def get_printer_attributes(self, request):
    177         attributes = [getattr(self, attr.replace("-", "_")) for attr in self.attributes]
     157        attributes = [(attr, getattr(self, attr)) for attr in self.attributes]
    178158        return attributes
    179159
     
    229209
    230210    def __str__(self):
    231         return "<Printer '%s'>" % self._name
     211        return "<Printer '%s'>" % self.name
Note: See TracChangeset for help on using the changeset viewer.