Example #1
0
	def getValue(self, oid, storage):
		oidstring = bisectoidstore.sortableToOID(oid)
		if oidstring == self.SYSTEMDESCRIPTION_OID:
			return v1.OctetString(str(config.plugins.SnmpAgent.systemdescription.value))
		elif oidstring == self.SYSUPTIME_OID:
			return self.getSysUpTime()
		elif oidstring == self.SUPPORTADDRESS_OID:
			return v1.OctetString(str(config.plugins.SnmpAgent.supportaddress.value))
		elif oidstring == self.SYSTEMNAME_OID:
			return v1.OctetString(str(config.plugins.SnmpAgent.systemname.value))
		elif oidstring == self.LOCATION_OID:
			return v1.OctetString(str(config.plugins.SnmpAgent.location.value))
		elif oidstring == self.BER_OID:
			return self.getBER()
		elif oidstring == self.AGC_OID:
			return self.getACG()
		elif oidstring == self.SNR_OID:
			return self.getSNR()
		elif oidstring == self.HASPICTURE_OID:
			return self.haspicture
		elif oidstring == self.VIDEO_BITRATE_OID:
			if self.bitrate:
				return self.bitrate.vcur
			else:
				return 0
		elif oidstring == self.AUDIO_BITRATE_OID:
			if self.bitrate:
				return self.bitrate.acur
			else:
				return 0
		elif oidstring == self.CHANNELNAME_OID:
			return v1.OctetString(self.getChannelName())
		elif oidstring == self.SERVICESTRING_OID:
			return v1.OctetString(self.getServiceString())
		elif oidstring == self.FASTSCANSTRING_OID:
			return v1.OctetString('')
		elif oidstring == self.SERVICEPARAMS_OID:
			return v1.OctetString(self.getServiceParams())
		elif oidstring == self.MANAGERIP_OID:
			return v1.OctetString(str(config.plugins.SnmpAgent.managerip.value))
		elif oidstring == self.ENABLE_BITRATE_OID:
			return config.plugins.SnmpAgent.measurebitrate.value
		elif oidstring == self.IP_OID:
			value = "%d.%d.%d.%d" % tuple(iNetwork.getAdapterAttribute(self.iface, "ip"))
			return v1.IpAddress(value)
		elif oidstring == self.NETMASK_OID:
			value = "%d.%d.%d.%d" % tuple(iNetwork.getAdapterAttribute(self.iface, "netmask"))
			return v1.IpAddress(value)
		elif oidstring == self.GATEWAY_OID:
			value = "%d.%d.%d.%d" % tuple(iNetwork.getAdapterAttribute(self.iface, "gateway"))
			return v1.IpAddress(value)
		elif oidstring == self.ENABLE_EMM_OID:
			return config.plugins.SnmpAgent.checkemm.value
		elif oidstring == self.EMM_OID:
			if self.emm:
				return v1.OctetString(self.emm.pids)
			else:
				return v1.OctetString('')
Example #2
0
    def setValue(self, oid, value):
        #the first time we are called, we have to fill the bisect oid store, values are just values, no objects (we cannot call value.get)
        try:
            value.get()
        except:
            return ourOIDStore.setValue(self, oid, value)

        oidstring = bisectoidstore.sortableToOID(oid)
        if oidstring == self.TRANSPONDERPARAMS_OID:
            print value.get()
            self.transponderparams = value.get()
            transponder = value.get().split(',')
            if len(transponder) >= 6:
                for i in range(0, 6):
                    transponder[i] = int(transponder[i])
                print transponder
                self.tune(transponder)
            return None
        else:
            return ourOIDStore.setValue(self, oid, value)
	def setValue(self, oid, value):
		#the first time we are called, we have to fill the bisect oid store, values are just values, no objects (we cannot call value.get)
		try:
			value.get()
		except:
			return ourOIDStore.setValue(self, oid, value)

		oidstring = bisectoidstore.sortableToOID(oid)
		if oidstring == self.TRANSPONDERPARAMS_OID:
			print value.get()
			self.transponderparams = value.get()
			transponder = value.get().split(',')
			if len(transponder) >= 6:
				for i in range(0, 6):
					transponder[i] = int(transponder[i])
				print transponder
				self.tune(transponder)
			return None
		else:
			return ourOIDStore.setValue(self, oid, value)
Example #4
0
    def setValue(self, oid, value):
        #the first time we are called, we have to fill the bisect oid store, values are just values, no objects (we cannot call value.get)
        try:
            value.get()
        except:
            return bisectoidstore.BisectOIDStore.setValue(self, oid, value)

        oidstring = bisectoidstore.sortableToOID(oid)
        if oidstring == self.MANAGERIP_OID:
            if config.plugins.SnmpAgent.managerip.value <> value.get():
                config.plugins.SnmpAgent.managerip.value = value.get()
                config.plugins.SnmpAgent.managerip.save()
        elif oidstring == self.ENABLE_BITRATE_OID:
            if config.plugins.SnmpAgent.measurebitrate.value and not value.get(
            ):
                config.plugins.SnmpAgent.measurebitrate.value = False
                config.plugins.SnmpAgent.measurebitrate.save()
                if self.bitrate:
                    self.bitrate.stop()
                    self.bitrate = None
            elif not config.plugins.SnmpAgent.measurebitrate.value and value.get(
            ):
                config.plugins.SnmpAgent.measurebitrate.value = True
                config.plugins.SnmpAgent.measurebitrate.save()
                self.bitrate = Bitrate(self.session)
                self.bitrate.start()
        elif oidstring == self.SYSTEMNAME_OID:
            if config.plugins.SnmpAgent.systemname.value <> value.get():
                config.plugins.SnmpAgent.systemname.value = value.get()
                config.plugins.SnmpAgent.systemname.save()
        elif oidstring == self.SUPPORTADDRESS_OID:
            if config.plugins.SnmpAgent.supportaddress.value <> value.get():
                config.plugins.SnmpAgent.supportaddress.value = value.get()
                config.plugins.SnmpAgent.supportaddress.save()
        elif oidstring == self.SYSTEMDESCRIPTION_OID:
            if config.plugins.SnmpAgent.systemdescription.value <> value.get():
                config.plugins.SnmpAgent.systemdescription.value = value.get()
                config.plugins.SnmpAgent.systemdescription.save()
        elif oidstring == self.LOCATION_OID:
            if config.plugins.SnmpAgent.location.value <> value.get():
                config.plugins.SnmpAgent.location.value = value.get()
                config.plugins.SnmpAgent.location.save()
        elif oidstring == self.CHANNELNAME_OID:
            if self.getChannelName() <> value.get():
                root = config.tv.lastroot.value.split(';')
                fav = eServiceReference(root[-2])
                services = ServiceList(fav,
                                       command_func=self.zapTo,
                                       validate_commands=False)
                sub = services.getServicesAsList()

                if len(sub) > 0:
                    for (ref, name) in sub:
                        if name == value.get():
                            self.zapTo(eServiceReference(ref))
                            break
        elif oidstring == self.SERVICESTRING_OID:
            if self.getServiceString() <> value.get():
                self.zapTo(eServiceReference(value.get()))
        elif oidstring == self.FASTSCANSTRING_OID:
            refstring = ''
            fields = value.get().split(',')
            if len(fields) >= 15:
                onid, tsid, freq, id1, id2, sid, orbital_pos, f1, f2, f3, symbolrate, f4, name, provider, servicetype = fields[
                    0:15]
                refstring = '%d:%d:%d:%x:%x:%x:%x:%x:%x:%x:' % (
                    1, 0, int(servicetype), int(sid), int(tsid), int(onid),
                    int(orbital_pos) * 65536, 0, 0, 0)
            if refstring is not '':
                self.zapTo(eServiceReference(refstring))
        elif oidstring == self.SERVICEPARAMS_OID:
            refstring = ''
            fields = value.get().split(',')
            if len(fields) >= 5:
                orbital_pos, tsid, onid, sid, servicetype = fields[0:5]
                refstring = '%d:%d:%d:%x:%x:%x:%x:%x:%x:%x:' % (
                    1, 0, int(servicetype), int(sid), int(tsid), int(onid),
                    int(orbital_pos) * 65536, 0, 0, 0)
            if refstring is not '':
                self.zapTo(eServiceReference(refstring))
        elif oidstring == self.IP_OID:
            ipstring = value.get().split('.')
            ipval = []
            for x in ipstring:
                ipval.append(int(x))
            if iNetwork.getAdapterAttribute(self.iface, "ip") <> ipval:
                iNetwork.setAdapterAttribute(self.iface, "dhcp", 0)
                iNetwork.setAdapterAttribute(self.iface, "ip", ipval)
                iNetwork.deactivateNetworkConfig()
                iNetwork.writeNetworkConfig()
                iNetwork.activateNetworkConfig()
        elif oidstring == self.IP_OID:
            ipstring = value.get().split('.')
            ipval = []
            for x in ipstring:
                ipval.append(int(x))
            if iNetwork.getAdapterAttribute(self.iface, "netmask") <> ipval:
                iNetwork.setAdapterAttribute(self.iface, "dhcp", 0)
                iNetwork.setAdapterAttribute(self.iface, "netmask", ipval)
                iNetwork.deactivateNetworkConfig()
                iNetwork.writeNetworkConfig()
                iNetwork.activateNetworkConfig()
        elif oidstring == self.GATEWAY_OID:
            ipstring = value.get().split('.')
            ipval = []
            for x in ipstring:
                ipval.append(int(x))
            if iNetwork.getAdapterAttribute(self.iface, "gateway") <> ipval:
                iNetwork.setAdapterAttribute(self.iface, "dhcp", 0)
                iNetwork.setAdapterAttribute(self.iface, "gateway", ipval)
                iNetwork.deactivateNetworkConfig()
                iNetwork.writeNetworkConfig()
                iNetwork.activateNetworkConfig()
        elif oidstring == self.ENABLE_EMM_OID:
            if config.plugins.SnmpAgent.checkemm.value and not value.get():
                config.plugins.SnmpAgent.checkemm.value = False
                config.plugins.SnmpAgent.checkemm.save()
                if self.emm:
                    self.emm.stop()
                    self.emm = None
            elif not config.plugins.SnmpAgent.checkemm.value and value.get():
                config.plugins.SnmpAgent.checkemm.value = True
                config.plugins.SnmpAgent.checkemm.save()
                self.emm = Emm(self.session)
                self.emm.start()
        else:
            print "oid not found!?"

        return None
Example #5
0
 def getValue(self, oid, storage):
     oidstring = bisectoidstore.sortableToOID(oid)
     strOID = str(oidstring)
     if oidstring == self.SYSTEMDESCRIPTION_OID:
         return v1.OctetString(
             str(config.plugins.SnmpAgent.systemdescription.value))
     elif oidstring == self.SYSUPTIME_OID:
         return self.getSysUpTime()
     elif oidstring == self.CPU_USER:
         return v1.Counter(GetCPUStatForType(CPUStatTypes.user))
     elif oidstring == self.CPU_NICE:
         return v1.Counter(GetCPUStatForType(CPUStatTypes.nice))
     elif oidstring == self.CPU_SYSTEM:
         return v1.Counter(GetCPUStatForType(CPUStatTypes.system))
     elif oidstring == self.CPU_IDLE:
         return v1.Counter(GetCPUStatForType(CPUStatTypes.idle))
     elif oidstring == self.CPU_WAIT:
         return v1.Counter(GetCPUStatForType(CPUStatTypes.iowait))
     elif oidstring == self.LOAD_AVR1:
         return v1.OctetString(GetCPULoadForType(CPULoadTypes.one))
     elif oidstring == self.LOAD_AVR5:
         return v1.OctetString(GetCPULoadForType(CPULoadTypes.five))
     elif oidstring == self.LOAD_AVR15:
         return v1.OctetString(GetCPULoadForType(CPULoadTypes.fifteen))
     elif oidstring == self.MEM_TOTAL:
         return v1.Integer(GetMemoryForType(MemoryTypes.total))
     elif oidstring == self.MEM_TOTAL2:
         return v1.Integer(GetMemoryForType(MemoryTypes.total))
     elif oidstring == self.MEM_USED:
         return v1.Integer(GetMemoryForType(MemoryTypes.used))
     elif oidstring == self.MEM_FREE:
         return v1.Integer(GetMemoryForType(MemoryTypes.free))
     elif oidstring == self.MEM_BUFFER:
         return v1.Integer(GetMemoryForType(MemoryTypes.buffers))
     elif oidstring == self.MEM_CACHED:
         return v1.Integer(GetMemoryForType(MemoryTypes.cached))
     elif oidstring == self.MEM_SWAPTOTAL:
         return v1.Integer(GetMemoryForType(MemoryTypes.swaptotal))
     elif oidstring == self.MEM_SWAPFREE:
         return v1.Integer(GetMemoryForType(MemoryTypes.swapfree))
     elif strOID.startswith(str(self.DISK_INDEX)):
         return v1.Integer(int(strOID[len(str(self.DISK_INDEX)) + 1:]))
     elif strOID.startswith(str(self.DISK_PATHNAME)):
         return v1.OctetString(
             GetDiskInfo(DiskInfoTypes.mountpoint,
                         int(strOID[len(str(self.DISK_PATHNAME)) + 1:]) -
                         1))
     elif strOID.startswith(str(self.DISK_DEVICENAME)):
         return v1.OctetString(
             GetDiskInfo(
                 DiskInfoTypes.filesystem,
                 int(strOID[len(str(self.DISK_DEVICENAME)) + 1:]) - 1))
     elif strOID.startswith(str(self.DISK_AVAIL)):
         return v1.Integer(
             GetDiskInfo(DiskInfoTypes.avail,
                         int(strOID[len(str(self.DISK_AVAIL)) + 1:]) - 1))
     elif strOID.startswith(str(self.DISK_USED)):
         return v1.Integer(
             GetDiskInfo(DiskInfoTypes.used,
                         int(strOID[len(str(self.DISK_USED)) + 1:]) - 1))
     elif oidstring == self.IF_NUMBER:
         return v1.Integer(GetNetworkInfo(NetworkInfoTypes.total, 0))
     elif strOID.startswith(str(self.IP_ADENTIFINDEX)):
         return v1.Integer(self.ip_adentifindex_ref[strOID])
     elif strOID.startswith(str(self.IF_IPADENTADDR)):
         return v1.IpAddress(self.ip_adentaddr_ref[strOID])
     elif strOID.startswith(str(self.IF_INOCTANTS)):
         return v1.Counter(
             GetNetworkInfo(
                 NetworkInfoTypes.inoctants,
                 int(strOID[len(str(self.IF_INOCTANTS)) + 1:]) - 1))
     elif strOID.startswith(str(self.IF_INDISCARD)):
         return v1.Counter(
             GetNetworkInfo(
                 NetworkInfoTypes.indiscard,
                 int(strOID[len(str(self.IF_INDISCARD)) + 1:]) - 1))
     elif strOID.startswith(str(self.IF_INERRORS)):
         return v1.Counter(
             GetNetworkInfo(
                 NetworkInfoTypes.inerrors,
                 int(strOID[len(str(self.IF_INERRORS)) + 1:]) - 1))
     elif strOID.startswith(str(self.IF_OUTOCTANTS)):
         return v1.Counter(
             GetNetworkInfo(
                 NetworkInfoTypes.outoctacts,
                 int(strOID[len(str(self.IF_OUTOCTANTS)) + 1:]) - 1))
     elif strOID.startswith(str(self.IF_OUTDISCARD)):
         return v1.Counter(
             GetNetworkInfo(
                 NetworkInfoTypes.outdiscard,
                 int(strOID[len(str(self.IF_OUTDISCARD)) + 1:]) - 1))
     elif strOID.startswith(str(self.IF_OUTERRORS)):
         return v1.Counter(
             GetNetworkInfo(
                 NetworkInfoTypes.outerrors,
                 int(strOID[len(str(self.IF_OUTERRORS)) + 1:]) - 1))
     elif strOID.startswith(str(self.IF_ALIAS)):
         return v1.OctetString(
             GetNetworkInfo(NetworkInfoTypes.alias,
                            int(strOID[len(str(self.IF_ALIAS)) + 1:]) - 1))
     elif strOID.startswith(str(self.IF_HSPEED)):
         return v1.Gauge(
             GetNetworkInfo(NetworkInfoTypes.hspeed,
                            int(strOID[len(str(self.IF_HSPEED)) + 1:]) - 1))
     elif strOID.startswith(str(self.IF_INDEX)):
         return v1.Integer(int(strOID[len(str(self.IF_INDEX)) + 1:]))
     elif strOID.startswith(str(self.IF_DESC)):
         return v1.OctetString(
             GetNetworkInfo(NetworkInfoTypes.desc,
                            int(strOID[len(str(self.IF_DESC)) + 1:]) - 1))
     elif strOID.startswith(str(self.IF_NAME)):
         return v1.OctetString(
             GetNetworkInfo(NetworkInfoTypes.desc,
                            int(strOID[len(str(self.IF_NAME)) + 1:]) - 1))
     elif strOID.startswith(str(self.IF_TYPE)):
         return v1.Integer(
             GetNetworkInfo(NetworkInfoTypes.type,
                            int(strOID[len(str(self.IF_TYPE)) + 1:]) - 1))
     elif strOID.startswith(str(self.IF_MTU)):
         return v1.Integer(
             GetNetworkInfo(NetworkInfoTypes.mtu,
                            int(strOID[len(str(self.IF_MTU)) + 1:]) - 1))
     elif strOID.startswith(str(self.IF_SPEED)):
         return v1.Gauge(
             GetNetworkInfo(NetworkInfoTypes.speed,
                            int(strOID[len(str(self.IF_SPEED)) + 1:]) - 1))
     elif strOID.startswith(str(self.IF_HWADDR)):
         return v1.OctetString(
             GetNetworkInfo(NetworkInfoTypes.hwaddr,
                            int(strOID[len(str(self.IF_HWADDR)) + 1:]) - 1))
     elif strOID.startswith(str(self.IF_STATUS)):
         return v1.Integer(
             GetNetworkInfo(NetworkInfoTypes.status,
                            int(strOID[len(str(self.IF_STATUS)) + 1:]) - 1))
     elif oidstring == self.SUPPORTADDRESS_OID:
         return v1.OctetString(
             str(config.plugins.SnmpAgent.supportaddress.value))
     elif oidstring == self.SYSTEMNAME_OID:
         return v1.OctetString(
             str(config.plugins.SnmpAgent.systemname.value))
     elif oidstring == self.LOCATION_OID:
         return v1.OctetString(str(config.plugins.SnmpAgent.location.value))
     elif oidstring == self.BER_OID:
         return self.getBER()
     elif oidstring == self.AGC_OID:
         return self.getAGC()
     elif oidstring == self.SNR_OID:
         return self.getSNR()
     elif oidstring == self.SNRDB_OID:
         return self.getSNRDB()
     elif oidstring == self.LOCK_OID:
         return self.getLock()
     elif oidstring == self.HASPICTURE_OID:
         return self.haspicture
     elif oidstring == self.VIDEO_BITRATE_OID:
         if self.bitrate:
             return self.bitrate.vcur
         else:
             return 0
     elif oidstring == self.AUDIO_BITRATE_OID:
         if self.bitrate:
             return self.bitrate.acur
         else:
             return 0
     elif oidstring == self.CHANNELNAME_OID:
         return v1.OctetString(self.getChannelName())
     elif oidstring == self.SERVICESTRING_OID:
         return v1.OctetString(self.getServiceString())
     elif oidstring == self.FASTSCANSTRING_OID:
         return v1.OctetString('')
     elif oidstring == self.SERVICEPARAMS_OID:
         return v1.OctetString(self.getServiceParams())
     elif oidstring == self.TUNERTYPE_OID:
         return self.getTunerType()
     elif oidstring == self.MANAGERIP_OID:
         return v1.OctetString(str(
             config.plugins.SnmpAgent.managerip.value))
     elif oidstring == self.ENABLE_BITRATE_OID:
         return config.plugins.SnmpAgent.measurebitrate.value
     elif oidstring == self.IP_OID:
         value = "%d.%d.%d.%d" % tuple(
             iNetwork.getAdapterAttribute(self.iface, "ip"))
         return v1.IpAddress(value)
     elif oidstring == self.NETMASK_OID:
         value = "%d.%d.%d.%d" % tuple(
             iNetwork.getAdapterAttribute(self.iface, "netmask"))
         return v1.IpAddress(value)
     elif oidstring == self.GATEWAY_OID:
         value = "%d.%d.%d.%d" % tuple(
             iNetwork.getAdapterAttribute(self.iface, "gateway"))
         return v1.IpAddress(value)
     elif oidstring == self.ENABLE_EMM_OID:
         return config.plugins.SnmpAgent.checkemm.value
     elif oidstring == self.EMM_OID:
         if self.emm:
             return v1.OctetString(self.emm.pids)
         else:
             return v1.OctetString('')
	def setValue(self, oid, value):
		#the first time we are called, we have to fill the bisect oid store, values are just values, no objects (we cannot call value.get)
		try:
			value.get()
		except:
			return bisectoidstore.BisectOIDStore.setValue(self, oid, value)

		oidstring = bisectoidstore.sortableToOID(oid)
		if oidstring == self.MANAGERIP_OID:
			if config.plugins.SnmpAgent.managerip.value <> value.get():
				config.plugins.SnmpAgent.managerip.value = value.get()
				config.plugins.SnmpAgent.managerip.save()
		elif oidstring == self.ENABLE_BITRATE_OID:
			if config.plugins.SnmpAgent.measurebitrate.value and not value.get():
				config.plugins.SnmpAgent.measurebitrate.value = False
				config.plugins.SnmpAgent.measurebitrate.save()
				if self.bitrate:
					self.bitrate.stop()
					self.bitrate = None
			elif not config.plugins.SnmpAgent.measurebitrate.value and value.get():
				config.plugins.SnmpAgent.measurebitrate.value = True
				config.plugins.SnmpAgent.measurebitrate.save()
				self.bitrate = Bitrate(self.session)
				self.bitrate.start()
		elif oidstring == self.SYSTEMNAME_OID:
			if config.plugins.SnmpAgent.systemname.value <> value.get():
				config.plugins.SnmpAgent.systemname.value = value.get()
				config.plugins.SnmpAgent.systemname.save()
		elif oidstring == self.SUPPORTADDRESS_OID:
			if config.plugins.SnmpAgent.supportaddress.value <> value.get():
				config.plugins.SnmpAgent.supportaddress.value = value.get()
				config.plugins.SnmpAgent.supportaddress.save()
		elif oidstring == self.SYSTEMDESCRIPTION_OID:
			if config.plugins.SnmpAgent.systemdescription.value <> value.get():
				config.plugins.SnmpAgent.systemdescription.value = value.get()
				config.plugins.SnmpAgent.systemdescription.save()
		elif oidstring == self.LOCATION_OID:
			if config.plugins.SnmpAgent.location.value <> value.get():
				config.plugins.SnmpAgent.location.value = value.get()
				config.plugins.SnmpAgent.location.save()
		elif oidstring == self.CHANNELNAME_OID:
			if self.getChannelName() <> value.get():
				root = config.tv.lastroot.value.split(';')
				fav = eServiceReference(root[-2])
				services = ServiceList(fav, command_func=self.zapTo, validate_commands=False)
				sub = services.getServicesAsList()

				if len(sub) > 0:
					for (ref, name) in sub:
						if name == value.get():
							self.zapTo(eServiceReference(ref))
							break
		elif oidstring == self.SERVICESTRING_OID:
			if self.getServiceString() <> value.get():
				self.zapTo(eServiceReference(value.get()))
		elif oidstring == self.FASTSCANSTRING_OID:
			refstring = ''
			fields = value.get().split(',')
			if len(fields) >= 15:
				onid, tsid, freq, id1, id2, sid, orbital_pos, f1, f2, f3, symbolrate, f4, name, provider, servicetype = fields[0:15]
				refstring = '%d:%d:%d:%x:%x:%x:%x:%x:%x:%x:' % (1, 0, int(servicetype), int(sid), int(tsid), int(onid), int(orbital_pos) * 65536, 0, 0, 0)
			if refstring is not '':
				self.zapTo(eServiceReference(refstring))
		elif oidstring == self.SERVICEPARAMS_OID:
			refstring = ''
			fields = value.get().split(',')
			if len(fields) >= 5:
				orbital_pos, tsid, onid, sid, servicetype = fields[0:5]
				refstring = '%d:%d:%d:%x:%x:%x:%x:%x:%x:%x:' % (1, 0, int(servicetype), int(sid), int(tsid), int(onid), int(orbital_pos) * 65536, 0, 0, 0)
			if refstring is not '':
				self.zapTo(eServiceReference(refstring))
		elif oidstring == self.IP_OID:
			ipstring = value.get().split('.')
			ipval = []
			for x in ipstring:
				ipval.append(int(x))
			if iNetwork.getAdapterAttribute(self.iface, "ip") <> ipval:
				iNetwork.setAdapterAttribute(self.iface, "dhcp", 0)
				iNetwork.setAdapterAttribute(self.iface, "ip", ipval)
				iNetwork.deactivateNetworkConfig()
				iNetwork.writeNetworkConfig()
				iNetwork.activateNetworkConfig()
		elif oidstring == self.IP_OID:
			ipstring = value.get().split('.')
			ipval = []
			for x in ipstring:
				ipval.append(int(x))
			if iNetwork.getAdapterAttribute(self.iface, "netmask") <> ipval:
				iNetwork.setAdapterAttribute(self.iface, "dhcp", 0)
				iNetwork.setAdapterAttribute(self.iface, "netmask", ipval)
				iNetwork.deactivateNetworkConfig()
				iNetwork.writeNetworkConfig()
				iNetwork.activateNetworkConfig()
		elif oidstring == self.GATEWAY_OID:
			ipstring = value.get().split('.')
			ipval = []
			for x in ipstring:
				ipval.append(int(x))
			if iNetwork.getAdapterAttribute(self.iface, "gateway") <> ipval:
				iNetwork.setAdapterAttribute(self.iface, "dhcp", 0)
				iNetwork.setAdapterAttribute(self.iface, "gateway", ipval)
				iNetwork.deactivateNetworkConfig()
				iNetwork.writeNetworkConfig()
				iNetwork.activateNetworkConfig()
		elif oidstring == self.ENABLE_EMM_OID:
			if config.plugins.SnmpAgent.checkemm.value and not value.get():
				config.plugins.SnmpAgent.checkemm.value = False
				config.plugins.SnmpAgent.checkemm.save()
				if self.emm:
					self.emm.stop()
					self.emm = None
			elif not config.plugins.SnmpAgent.checkemm.value and value.get():
				config.plugins.SnmpAgent.checkemm.value = True
				config.plugins.SnmpAgent.checkemm.save()
				self.emm = Emm(self.session)
				self.emm.start()
		else:
			print "oid not found!?"

		return None
	def getValue(self, oid, storage):
		oidstring = bisectoidstore.sortableToOID(oid)
		strOID = str(oidstring)
		if oidstring == self.SYSTEMDESCRIPTION_OID:
			return v1.OctetString(str(config.plugins.SnmpAgent.systemdescription.value))
		elif oidstring == self.SYSUPTIME_OID:
			return self.getSysUpTime()
		elif oidstring == self.CPU_USER:
			return v1.Counter(GetCPUStatForType(CPUStatTypes.user))
		elif oidstring == self.CPU_NICE:
			return v1.Counter(GetCPUStatForType(CPUStatTypes.nice))
		elif oidstring == self.CPU_SYSTEM:
			return v1.Counter(GetCPUStatForType(CPUStatTypes.system))
		elif oidstring == self.CPU_IDLE:
			return v1.Counter(GetCPUStatForType(CPUStatTypes.idle))
		elif oidstring == self.CPU_WAIT:
			return v1.Counter(GetCPUStatForType(CPUStatTypes.iowait))
		elif oidstring == self.LOAD_AVR1:
			return v1.OctetString(GetCPULoadForType(CPULoadTypes.one))
		elif oidstring == self.LOAD_AVR5:
			return v1.OctetString(GetCPULoadForType(CPULoadTypes.five))
		elif oidstring == self.LOAD_AVR15:
			return v1.OctetString(GetCPULoadForType(CPULoadTypes.fifteen))
		elif oidstring == self.MEM_TOTAL:
			return v1.Integer(GetMemoryForType(MemoryTypes.total))
		elif oidstring == self.MEM_TOTAL2:
			return v1.Integer(GetMemoryForType(MemoryTypes.total))
		elif oidstring == self.MEM_USED:
			return v1.Integer(GetMemoryForType(MemoryTypes.used))
		elif oidstring == self.MEM_FREE:
			return v1.Integer(GetMemoryForType(MemoryTypes.free))
		elif oidstring == self.MEM_BUFFER:
			return v1.Integer(GetMemoryForType(MemoryTypes.buffers))
		elif oidstring == self.MEM_CACHED:
			return v1.Integer(GetMemoryForType(MemoryTypes.cached))
		elif oidstring == self.MEM_SWAPTOTAL:
			return v1.Integer(GetMemoryForType(MemoryTypes.swaptotal))
		elif oidstring == self.MEM_SWAPFREE:
			return v1.Integer(GetMemoryForType(MemoryTypes.swapfree))
		elif strOID.startswith(str(self.DISK_INDEX)):
			return v1.Integer(int(strOID[len(str(self.DISK_INDEX)) + 1:]))
		elif strOID.startswith(str(self.DISK_PATHNAME)):
			return v1.OctetString(GetDiskInfo(DiskInfoTypes.mountpoint, int(strOID[len(str(self.DISK_PATHNAME)) + 1:]) - 1))
		elif strOID.startswith(str(self.DISK_DEVICENAME)):
			return v1.OctetString(GetDiskInfo(DiskInfoTypes.filesystem, int(strOID[len(str(self.DISK_DEVICENAME)) + 1:]) - 1))
		elif strOID.startswith(str(self.DISK_AVAIL)):
			return v1.Integer(GetDiskInfo(DiskInfoTypes.avail, int(strOID[len(str(self.DISK_AVAIL)) + 1:]) - 1))
		elif strOID.startswith(str(self.DISK_USED)):
			return v1.Integer(GetDiskInfo(DiskInfoTypes.used, int(strOID[len(str(self.DISK_USED)) + 1:]) - 1))
		elif oidstring == self.IF_NUMBER:
			return v1.Integer(GetNetworkInfo(NetworkInfoTypes.total, 0))
		elif strOID.startswith(str(self.IP_ADENTIFINDEX)):
			return v1.Integer(self.ip_adentifindex_ref[strOID])
		elif strOID.startswith(str(self.IF_IPADENTADDR)):
			return v1.IpAddress(self.ip_adentaddr_ref[strOID])
		elif strOID.startswith(str(self.IF_INOCTANTS)):
			return v1.Counter(GetNetworkInfo(NetworkInfoTypes.inoctants, int(strOID[len(str(self.IF_INOCTANTS)) + 1:]) - 1))
		elif strOID.startswith(str(self.IF_INDISCARD)):
			return v1.Counter(GetNetworkInfo(NetworkInfoTypes.indiscard, int(strOID[len(str(self.IF_INDISCARD)) + 1:]) - 1))
		elif strOID.startswith(str(self.IF_INERRORS)):
			return v1.Counter(GetNetworkInfo(NetworkInfoTypes.inerrors, int(strOID[len(str(self.IF_INERRORS)) + 1:]) - 1))
		elif strOID.startswith(str(self.IF_OUTOCTANTS)):
			return v1.Counter(GetNetworkInfo(NetworkInfoTypes.outoctacts, int(strOID[len(str(self.IF_OUTOCTANTS)) + 1:]) - 1))
		elif strOID.startswith(str(self.IF_OUTDISCARD)):
			return v1.Counter(GetNetworkInfo(NetworkInfoTypes.outdiscard, int(strOID[len(str(self.IF_OUTDISCARD)) + 1:]) - 1))
		elif strOID.startswith(str(self.IF_OUTERRORS)):
			return v1.Counter(GetNetworkInfo(NetworkInfoTypes.outerrors, int(strOID[len(str(self.IF_OUTERRORS)) + 1:]) - 1))
		elif strOID.startswith(str(self.IF_ALIAS)):
			return v1.OctetString(GetNetworkInfo(NetworkInfoTypes.alias, int(strOID[len(str(self.IF_ALIAS)) + 1:]) - 1))
		elif strOID.startswith(str(self.IF_HSPEED)):
			return v1.Gauge(GetNetworkInfo(NetworkInfoTypes.hspeed, int(strOID[len(str(self.IF_HSPEED)) + 1:]) - 1))
		elif strOID.startswith(str(self.IF_INDEX)):
			return v1.Integer(int(strOID[len(str(self.IF_INDEX)) + 1:]))
		elif strOID.startswith(str(self.IF_DESC)):
			return v1.OctetString(GetNetworkInfo(NetworkInfoTypes.desc, int(strOID[len(str(self.IF_DESC)) + 1:]) - 1))
		elif strOID.startswith(str(self.IF_NAME)):
			return v1.OctetString(GetNetworkInfo(NetworkInfoTypes.desc, int(strOID[len(str(self.IF_NAME)) + 1:]) - 1))
		elif strOID.startswith(str(self.IF_TYPE)):
			return v1.Integer(GetNetworkInfo(NetworkInfoTypes.type, int(strOID[len(str(self.IF_TYPE)) + 1:]) - 1))
		elif strOID.startswith(str(self.IF_MTU)):
			return v1.Integer(GetNetworkInfo(NetworkInfoTypes.mtu, int(strOID[len(str(self.IF_MTU)) + 1:]) - 1))
		elif strOID.startswith(str(self.IF_SPEED)):
			return v1.Gauge(GetNetworkInfo(NetworkInfoTypes.speed, int(strOID[len(str(self.IF_SPEED)) + 1:]) - 1))
		elif strOID.startswith(str(self.IF_HWADDR)):
			return v1.OctetString(GetNetworkInfo(NetworkInfoTypes.hwaddr, int(strOID[len(str(self.IF_HWADDR)) + 1:]) - 1))
		elif strOID.startswith(str(self.IF_STATUS)):
			return v1.Integer(GetNetworkInfo(NetworkInfoTypes.status, int(strOID[len(str(self.IF_STATUS)) + 1:]) - 1))
		elif oidstring == self.SUPPORTADDRESS_OID:
			return v1.OctetString(str(config.plugins.SnmpAgent.supportaddress.value))
		elif oidstring == self.SYSTEMNAME_OID:
			return v1.OctetString(str(config.plugins.SnmpAgent.systemname.value))
		elif oidstring == self.LOCATION_OID:
			return v1.OctetString(str(config.plugins.SnmpAgent.location.value))
		elif oidstring == self.BER_OID:
			return self.getBER()
		elif oidstring == self.AGC_OID:
			return self.getAGC()
		elif oidstring == self.SNR_OID:
			return self.getSNR()
		elif oidstring == self.SNRDB_OID:
			return self.getSNRDB()
		elif oidstring == self.LOCK_OID:
			return self.getLock()
		elif oidstring == self.HASPICTURE_OID:
			return self.haspicture
		elif oidstring == self.VIDEO_BITRATE_OID:
			if self.bitrate:
				return self.bitrate.vcur
			else:
				return 0
		elif oidstring == self.AUDIO_BITRATE_OID:
			if self.bitrate:
				return self.bitrate.acur
			else:
				return 0
		elif oidstring == self.CHANNELNAME_OID:
			return v1.OctetString(self.getChannelName())
		elif oidstring == self.SERVICESTRING_OID:
			return v1.OctetString(self.getServiceString())
		elif oidstring == self.FASTSCANSTRING_OID:
			return v1.OctetString('')
		elif oidstring == self.SERVICEPARAMS_OID:
			return v1.OctetString(self.getServiceParams())
		elif oidstring == self.TUNERTYPE_OID:
			return self.getTunerType()
		elif oidstring == self.MANAGERIP_OID:
			return v1.OctetString(str(config.plugins.SnmpAgent.managerip.value))
		elif oidstring == self.ENABLE_BITRATE_OID:
			return config.plugins.SnmpAgent.measurebitrate.value
		elif oidstring == self.IP_OID:
			value = "%d.%d.%d.%d" % tuple(iNetwork.getAdapterAttribute(self.iface, "ip"))
			return v1.IpAddress(value)
		elif oidstring == self.NETMASK_OID:
			value = "%d.%d.%d.%d" % tuple(iNetwork.getAdapterAttribute(self.iface, "netmask"))
			return v1.IpAddress(value)
		elif oidstring == self.GATEWAY_OID:
			value = "%d.%d.%d.%d" % tuple(iNetwork.getAdapterAttribute(self.iface, "gateway"))
			return v1.IpAddress(value)
		elif oidstring == self.ENABLE_EMM_OID:
			return config.plugins.SnmpAgent.checkemm.value
		elif oidstring == self.EMM_OID:
			if self.emm:
				return v1.OctetString(self.emm.pids)
			else:
				return v1.OctetString('')
Example #8
0
 def getValue(self, oid, storage):
     oidstring = bisectoidstore.sortableToOID(oid)
     if oidstring == self.SYSTEMDESCRIPTION_OID:
         return v1.OctetString(
             str(config.plugins.SnmpAgent.systemdescription.value))
     elif oidstring == self.SYSUPTIME_OID:
         return self.getSysUpTime()
     elif oidstring == self.SUPPORTADDRESS_OID:
         return v1.OctetString(
             str(config.plugins.SnmpAgent.supportaddress.value))
     elif oidstring == self.SYSTEMNAME_OID:
         return v1.OctetString(
             str(config.plugins.SnmpAgent.systemname.value))
     elif oidstring == self.LOCATION_OID:
         return v1.OctetString(str(config.plugins.SnmpAgent.location.value))
     elif oidstring == self.BER_OID:
         return self.getBER()
     elif oidstring == self.AGC_OID:
         return self.getACG()
     elif oidstring == self.SNR_OID:
         return self.getSNR()
     elif oidstring == self.HASPICTURE_OID:
         return self.haspicture
     elif oidstring == self.VIDEO_BITRATE_OID:
         if self.bitrate:
             return self.bitrate.vcur
         else:
             return 0
     elif oidstring == self.AUDIO_BITRATE_OID:
         if self.bitrate:
             return self.bitrate.acur
         else:
             return 0
     elif oidstring == self.CHANNELNAME_OID:
         return v1.OctetString(self.getChannelName())
     elif oidstring == self.SERVICESTRING_OID:
         return v1.OctetString(self.getServiceString())
     elif oidstring == self.FASTSCANSTRING_OID:
         return v1.OctetString('')
     elif oidstring == self.SERVICEPARAMS_OID:
         return v1.OctetString(self.getServiceParams())
     elif oidstring == self.MANAGERIP_OID:
         return v1.OctetString(str(
             config.plugins.SnmpAgent.managerip.value))
     elif oidstring == self.ENABLE_BITRATE_OID:
         return config.plugins.SnmpAgent.measurebitrate.value
     elif oidstring == self.IP_OID:
         value = "%d.%d.%d.%d" % tuple(
             iNetwork.getAdapterAttribute(self.iface, "ip"))
         return v1.IpAddress(value)
     elif oidstring == self.NETMASK_OID:
         value = "%d.%d.%d.%d" % tuple(
             iNetwork.getAdapterAttribute(self.iface, "netmask"))
         return v1.IpAddress(value)
     elif oidstring == self.GATEWAY_OID:
         value = "%d.%d.%d.%d" % tuple(
             iNetwork.getAdapterAttribute(self.iface, "gateway"))
         return v1.IpAddress(value)
     elif oidstring == self.ENABLE_EMM_OID:
         return config.plugins.SnmpAgent.checkemm.value
     elif oidstring == self.EMM_OID:
         if self.emm:
             return v1.OctetString(self.emm.pids)
         else:
             return v1.OctetString('')