Class: Zenoss::Model::DeviceClass
- Inherits:
-
Object
- Object
- Zenoss::Model::DeviceClass
- Includes:
- Zenoss, Zenoss::Model
- Defined in:
- lib/zenoss/model/devices/device_class.rb
Instance Attribute Summary collapse
-
#organizer_name ⇒ Object
readonly
Returns the value of attribute organizer_name.
Instance Method Summary collapse
-
#add_device(fully_qualified_device) ⇒ Object
Add a device beneath this Device Class.
-
#find_device_path(device_name) ⇒ Device?
Name of the device in Zenoss.
-
#get_sub_devices ⇒ Array<Device>
An Array of Devices (or some Device subclass).
-
#initialize(devclass) ⇒ DeviceClass
constructor
A new instance of DeviceClass.
Methods included from Zenoss::Model
Methods included from Zenoss
connect, #parse_array, #pdatetime_to_datetime, #pdict_to_hash, #plist_to_array, #ptuples_to_hash, #sanitize_str
Constructor Details
#initialize(devclass) ⇒ DeviceClass
Returns a new instance of DeviceClass.
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/zenoss/model/devices/device_class.rb', line 28 def initialize(devclass) @base_id = 'Devices' # This confusing little ditty lets us accept a DeviceClass in a number of ways: # Like, '/zport/dmd/Devices/Server/Linux' # or, '/Devices/Server/Linux' # or, '/Server/Linux' path = devclass.sub(/^(\/zport\/dmd\/)?(#{@base_id}\/)?([^\/]+)\/?$/,'\2') @organizer_name = rest('getOrganizerName', "#{@base_id}/#{path}") end |
Instance Attribute Details
#organizer_name ⇒ Object (readonly)
Returns the value of attribute organizer_name.
26 27 28 |
# File 'lib/zenoss/model/devices/device_class.rb', line 26 def organizer_name @organizer_name end |
Instance Method Details
#add_device(fully_qualified_device) ⇒ Object
Add a device beneath this Device Class. It is also typically best to use the fully qualified version of the device name. It returns true if the device is added, false otherwise.
47 48 49 50 |
# File 'lib/zenoss/model/devices/device_class.rb', line 47 def add_device(fully_qualified_device) loader = ZDeviceLoader.instance loader.load_device(fully_qualified_device, @organizer_name) end |
#find_device_path(device_name) ⇒ Device?
Name of the device in Zenoss. This method will return the first match if the device_name is not fully qualified.
61 62 63 64 |
# File 'lib/zenoss/model/devices/device_class.rb', line 61 def find_device_path(device_name) devpath = rest("findDevicePath?devicename=#{device_name}") devpath.nil? ? nil : Device.new(devpath) end |
#get_sub_devices ⇒ Array<Device>
Returns an Array of Devices (or some Device subclass).
67 68 69 70 71 72 73 74 75 |
# File 'lib/zenoss/model/devices/device_class.rb', line 67 def get_sub_devices (plist_to_array( rest('getSubDevices') )).map do |dstr| # I'm using this regex here so some day we can generate # Devices and sub Device types with an eval like so: # eval "#{$1}.new(#{$2})" dev = dstr.sub(/^<([\w]+)\s+at\s+(.*)>$/,'\2') Device.new(dev) end end |