18
18
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
27
attmap = common.Attributes(cn='cn',
28
ipNetworkNumber='ipNetworkNumber')
29
filter = '(objectClass=ipNetwork)'
29
32
class NetworkRequest(common.Request):
31
filter = '(objectClass=ipNetwork)'
34
attmap_ipNetworkNumber = 'ipNetworkNumber'
36
attributes = ( 'cn', 'ipNetworkNumber' )
38
def write(self, entry):
39
dn, attributes = entry
40
networkname = common.get_rdn_value(entry, self.attmap_cn)
41
networknames = attributes.get(self.attmap_cn, [])
34
def write(self, dn, attributes, parameters):
35
networkname = common.get_rdn_value(dn, attmap['cn'])
36
networknames = attributes['cn']
42
37
if not networknames:
43
print 'Error: entry %s does not contain %s value' % ( dn, self.attmap_cn)
38
print 'Error: entry %s does not contain %s value' % (dn, attmap['cn'])
44
39
if not networkname:
45
40
networkname = networknames.pop(0)
46
41
elif networkname in networknames:
47
42
networknames.remove(networkname)
48
addresses = attributes.get(self.attmap_ipNetworkNumber, [])
43
addresses = attributes['ipNetworkNumber']
50
print 'Error: entry %s does not contain %s value' % ( dn, self.attmap_ipNetworkNumber)
45
print 'Error: entry %s does not contain %s value' % (dn, attmap['ipNetworkNumber'])
52
47
self.fp.write_int32(constants.NSLCD_RESULT_BEGIN)
53
48
self.fp.write_string(networkname)
62
57
action = constants.NSLCD_ACTION_NETWORK_BYNAME
64
def read_parameters(self):
65
self.name = self.fp.read_string()
68
return '(&%s(%s=%s))' % ( self.filter,
69
self.attmap_cn, ldap.filter.escape_filter_chars(self.name) )
59
def read_parameters(self, fp):
60
return dict(cn=fp.read_string())
72
63
class NetworkByAddressRequest(NetworkRequest):
74
65
action = constants.NSLCD_ACTION_NETWORK_BYADDR
76
def read_parameters(self):
77
self.address = self.fp.read_address()
80
return '(&%s(%s=%s))' % ( self.filter,
81
self.attmap_ipNetworkNumber,
82
ldap.filter.escape_filter_chars(self.address) )
67
def read_parameters(self, fp):
68
return dict(ipNetworkNumber=fp.read_address())
85
71
class NetworkAllRequest(NetworkRequest):