Package Products :: Package ZenModel :: Module TemperatureSensor |
[hide private]
[frames] | no frames]

# Source Code for Module Products.ZenModel.TemperatureSensor

      1  ###########################################################################
      2  #
      3  # This program is part of Zenoss Core, an open source monitoring platform.
      4  # Copyright (C) 2007, Zenoss Inc.
      5  #
      6  # This program is free software; you can redistribute it and/or modify it
      7  # under the terms of the GNU General Public License version 2 as published by
      8  # the Free Software Foundation.
      9  #
     10  # For complete information please visit: http://www.zenoss.com/oss/
     11  #
     12  ###########################################################################
     13
     14  __doc__="""TemperatureSensor
     15
     16  TemperatureSensor is an abstraction of a temperature sensor or probe.
     17
     18  $Id: TemperatureSensor.py,v 1.7 2004/04/06 22:33:24 edahl Exp $"""
     19
     20  __version__ = "$Revision: 1.7 $"[11:-2]
     21
     22  from Globals import InitializeClass
     23
     24  from Products.ZenRelations.RelSchema import *
     25
     26  from HWComponent import HWComponent
     27
     28  from Products.ZenModel.ZenossSecurity import *
     29
     30 -class TemperatureSensor(HWComponent):
     31      """TemperatureSensor object"""
     32
     33      portal_type = meta_type = 'TemperatureSensor'
     34
     35      state = "unknown"
     36
     37      _properties = HWComponent._properties + (
     38          {'id':'state', 'type':'string', 'mode':'w'},
     39      )
     40
     41      _relations = HWComponent._relations + (
     42          ("hw", ToOne(
     43              ToManyCont, "Products.ZenModel.DeviceHW", "temperaturesensors")),
     44          )
     45
     46
     47      factory_type_information = (
     48          {
     49              'id'             : 'TemperatureSensor',
     50              'meta_type'      : 'TemperatureSensor',
     51              'description'    : """Arbitrary device grouping class""",
     52              'icon'           : 'TemperatureSensor_icon.gif',
     53              'product'        : 'ZenModel',
     54              'factory'        : 'manage_addTemperatureSensor',
     55              'immediate_view' : 'viewTemperatureSensor',
     56              'actions'        :
     57              (
     58                  { 'id'            : 'status'
     59                  , 'name'          : 'Status'
     60                  , 'action'        : 'viewTemperatureSensor'
     61                  , 'permissions'   : ('View',)
     62                  },
     63                  { 'id'            : 'perfConf'
     64                  , 'name'          : 'Template'
     65                  , 'action'        : 'objTemplates'
     66                  , 'permissions'   : ("Change Device", )
     67                  },
     68                  { 'id'            : 'viewHistory'
     69                  , 'name'          : 'Modifications'
     70                  , 'action'        : 'viewHistory'
     71                  , 'permissions'   : (ZEN_VIEW_MODIFICATIONS,)
     72                  },
     73              )
     74            },
     75          )
     76
     77
     78 -    def temperatureCelsius(self, default=None):
     79          """
     80          Return the current temperature in degrees celsius
     81          """
     82          tempC = self.cacheRRDValue('temperature_celsius', default)
     83          if tempC is None:
     84              tempF = self.cacheRRDValue('temperature_fahrenheit', default)
     85              if tempF is not None: tempC = (tempF - 32) / 9 * 5
     86          if tempC is not None:
     87              return long(tempC)
     88          return None
     89      temperature = temperatureCelsius
     90
     91
     92 -    def temperatureFahrenheit(self, default=None):
     93          """
     94          Return the current temperature in degrees fahrenheit
     95          """
     96          tempC = self.temperatureCelsius(default)
     97          if tempC is not None:
     98              tempF = tempC * 9 / 5 + 32
     99              return long(tempF)
    100          return None
    101
    102
    103 -    def temperatureCelsiusString(self):
    104          """
    105          Return the current temperature in degrees celsius as a string
    106          """
    107          tempC = self.temperature()
    108          return tempC is None and "unknown" or "%dC" % (tempC,)
    109      temperatureString = temperatureCelsiusString
    110
    111
    112 -    def temperatureFahrenheitString(self):
    113          """
    114          Return the current temperature in degrees fahrenheit as a string
    115          """
    116          tempF = self.temperatureFahrenheit()
    117          return tempF is None and "unknown" or "%dF" % (tempF,)
    118
    119
    120 -    def viewName(self):
    121          return self.id
    122      name = viewName
    123
    124  InitializeClass(TemperatureSensor)
    125