def genDefVal(self, data, classmode=False): # XXX should be fixed, see pysnmp.py defval = data[0] if isinstance(defval, (int, long)): # number val = str(defval) elif self.isHex(defval): # hex val = 'hexValue="' + defval[1:-2] + '"' # not working for Integer baseTypes elif self.isBinary(defval): # binary binval = defval[1:-2] hexval = binval and hex(int(binval, 2))[2:] or '' val = 'hexValue="' + hexval + '"' elif isinstance(defval, list): # bits list val = defval elif defval[0] == defval[-1] and defval[0] == '"': # quoted strimg val = dorepr(defval[1:-1]) else: # symbol (oid as defval) or name for enumeration member if defval in self._out or defval in self._importMap: val = defval + '.getName()' else: val = dorepr(defval) return val
def genDefVal(self, data, classmode=False): # XXX should be fixed, see pysnmp.py defval = data[0] if isinstance(defval, (int, long)): # number val = str(defval) elif self.isHex(defval): # hex val = 'hexValue="' + defval[ 1:-2] + '"' # not working for Integer baseTypes elif self.isBinary(defval): # binary binval = defval[1:-2] hexval = binval and hex(int(binval, 2))[2:] or '' val = 'hexValue="' + hexval + '"' elif isinstance(defval, list): # bits list val = defval elif defval[0] == defval[-1] and defval[0] == '"': # quoted strimg val = dorepr(defval[1:-1]) else: # symbol (oid as defval) or name for enumeration member if defval in self._out or defval in self._importMap: val = defval + '.getName()' else: val = dorepr(defval) return val
def genRevisions(self, data, classmode=False): times = self.genTime([x[0] for x in data[0]]) times = [dorepr(x) for x in times] revisions = '.setRevisions((%s,))' % ', '.join(times) descriptions = '.setRevisionsDescriptions((%s,))' % ', '.join( [dorepr(self.textFilter('description', x[1][1])) for x in data[0]]) return revisions, descriptions
def genLastUpdated(self, data, classmode=False): text = data[0] return '.setLastUpdated(' + dorepr(text) + ')'
def genDescription(self, data, classmode=False): text = data[0] return '.setDescription(' + dorepr(text) + ')'
def genDefVal(self, data, classmode=False, objname=None): if not data: return '' if not objname: return data defval = data[0] defvalType = self.getBaseType(objname, self.moduleName[0]) if isinstance(defval, (int, long)): # number val = str(defval) elif self.isHex(defval): # hex if defvalType[0][0] in ('Integer32', 'Integer'): # common bug in MIBs val = str(int(defval[1:-2], 16)) else: val = 'hexValue="' + defval[1:-2] + '"' elif self.isBinary(defval): # binary binval = defval[1:-2] if defvalType[0][0] in ('Integer32', 'Integer'): # common bug in MIBs val = str(int(binval or '0', 2)) else: hexval = binval and hex(int(binval, 2))[2:] or '' val = 'hexValue="' + hexval + '"' elif defval[0] == defval[-1] and defval[0] == '"': # quoted string if defval[1:-1] == '' and defvalType != 'OctetString': # common bug # a warning should be here return False # we will set no default value val = dorepr(defval[1:-1]) else: # symbol (oid as defval) or name for enumeration member if (defvalType[0][0] == 'ObjectIdentifier' and (defval in self.symbolTable[self.moduleName[0]] or defval in self._importMap)): # oid module = self._importMap.get(defval, self.moduleName[0]) try: val = str( self.genNumericOid( self.symbolTable[module][defval]['oid'])) except: # or no module if it will be borrowed later raise error.PySmiSemanticError( 'no symbol "%s" in module "%s"' % (defval, module)) # enumeration elif defvalType[0][0] in ('Integer32', 'Integer') and \ isinstance(defvalType[1], list) and defval in dict(defvalType[1]): val = dorepr(defval) elif defvalType[0][0] == 'Bits': defvalBits = [] bits = dict(defvalType[1]) for bit in defval: bitValue = bits.get(bit, None) if bitValue is not None: defvalBits.append((bit, bitValue)) else: raise error.PySmiSemanticError( 'no such bit as "%s" for symbol "%s"' % (bit, objname)) return self.genBits([defvalBits])[1] else: raise error.PySmiSemanticError( 'unknown type "%s" for defval "%s" of symbol "%s"' % (defvalType, defval, objname)) return '.clone(' + val + ')'
def genDisplayHint(self, data, classmode=False): return self.indent + 'displayHint = ' + dorepr(data[0]) + '\n'
def genContactInfo(self, data, classmode=False): text = data[0] return '.setContactInfo(' + dorepr(text) + ')'
def genStatus(self, data, classmode=False): text = data[0] return classmode and self.indent + 'status = ' + dorepr( text) + '\n' or '.setStatus(' + dorepr(text) + ')'
def genReference(self, data, classmode=False): text = self.textFilter('reference', data[0]) return classmode and self.indent + 'reference = ' + dorepr( text) + '\n' or '.setReference(' + dorepr(text) + ')'
def genDescription(self, data, classmode=False): text = self.textFilter('description', data[0]) return classmode and self.indent + 'description = ' + dorepr( text) + '\n' or '.setDescription(' + dorepr(text) + ')'
def genContactInfo(self, data, classmode=False): text = self.textFilter('contact-info', data[0]) return '.setContactInfo(' + dorepr(text) + ')'
def genUnits(self, data, classmode=False): text = data[0] return '.setUnits(' + dorepr(self.textFilter('units', text)) + ')'
def genOrganization(self, data, classmode=False): text = self.textFilter('organization', data[0]) return '.setOrganization(' + dorepr(text) + ')'
def genRevisions(self, data, classmode=False): times = self.genTime([x[0] for x in data[0]]) return '.setRevisions((%s,))' % ', '.join([dorepr(x) for x in times])
def genOrganization(self, data, classmode=False): text = data[0] return '.setOrganization(' + dorepr(text) + ')'
def genUnits(self, data, classmode=False): text = data[0] return '.setUnits(' + dorepr(text) + ')'
def genProductRelease(self, data, classmode=False): text = data[0] return classmode and self.indent + 'productRelease = ' + dorepr( text) + '\n' or '.setProductRelease(' + dorepr(text) + ')'