Difference between revisions of "ZenDMD Tip - Change Interface Speed"

From Zenoss Wiki
Jump to: navigation, search
(Updated script and warning)
(updated entry with warning about running script and updated script entry to latest version)
Line 1: Line 1:
 
The following is a zendmd script to set the speed for an interface of a device. Sometimes after a device is modeled the interface speed can be incorrect.
 
The following is a zendmd script to set the speed for an interface of a device. Sometimes after a device is modeled the interface speed can be incorrect.
  
'''WARNING:''' Be careful and remember to take a backup and/or snapshot before running the below script! The options to set the speed and commit the changes have been commented out for your protection.
+
'''WARNING:''' Be careful and remember to take a backup and/or snapshot before running the below script!
  
 
https://github.com/hydruid/zenoss/blob/master/zendmd/interface_speed.zendmd
 
https://github.com/hydruid/zenoss/blob/master/zendmd/interface_speed.zendmd
 
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">
#!/usr/bin/env zendmd
+
DEVICE = '172.16.41.21'
 
+
DEVICE = 'xensvr02'
+
 
INTERFACE = 'eth0'
 
INTERFACE = 'eth0'
 
SPEED10Mb = '100000000'
 
SPEED10Mb = '100000000'
Line 17: Line 15:
 
d = dmd.Devices.findDevice(DEVICE)
 
d = dmd.Devices.findDevice(DEVICE)
 
for dev in d.Devices.getSubDevices():
 
for dev in d.Devices.getSubDevices():
     if dev == d:
+
     value = d.getProperty(dev)
        value = d.getProperty(dev)
+
    for interface in d.os.interfaces():
        for interface in d.os.interfaces():
+
        if interface.id.startswith(INTERFACE):
            if interface.id.startswith(INTERFACE):
+
#            print interface.id
                print interface.id
+
#            print interface.speed
                print interface.speed
+
            interface.speed = (SPEED)
#                interface.speed = (SPEED)
+
            commit ()
#                commit ()
+
 
+
 
</syntaxhighlight>
 
</syntaxhighlight>
  

Revision as of 16:03, 8 January 2014

The following is a zendmd script to set the speed for an interface of a device. Sometimes after a device is modeled the interface speed can be incorrect.

WARNING: Be careful and remember to take a backup and/or snapshot before running the below script!

https://github.com/hydruid/zenoss/blob/master/zendmd/interface_speed.zendmd

DEVICE = '172.16.41.21'
INTERFACE = 'eth0'
SPEED10Mb = '100000000'
SPEED100Mb = '100000000'
SPEED1Gb = '1000000000'
SPEED10Gb = '10000000000'
SPEED = SPEED10Gb
 
d = dmd.Devices.findDevice(DEVICE)
for dev in d.Devices.getSubDevices():
    value = d.getProperty(dev)
    for interface in d.os.interfaces():
        if interface.id.startswith(INTERFACE):
#            print interface.id
#            print interface.speed
            interface.speed = (SPEED)
            commit ()

Don't forget to lock the interface from updates, or once it's remodeled the change will be lost!

http://hydruid-blog.com/?p=675