ESM: Subscriber management
The system provides a Python object alc.esm, which is an instance of class alc.Esm, to set a list of attributes on a subscriber host or session in setup. It also provides alc.esm.derivedId to achieve flexible LUDB lookups.
Note
Only the pre-provided
alc.esmobject should be used in script, the classalc.Esmshould not be used directly.
alc.esm APIs only apply during a host and session setup phase.
The alc.Esm class
Instance Attributes
- derivedId
 The derivedId attribute is an attribute which can be set by a Python script and used as an LUDB match criterion. The current value can be read from this attribute. A new value for the derivedId can be set by assigning a new value to this attribute.
The type of this attribute is str.
If the derivedId is not supported, a RuntimeException is raised when retrieving or setting this attribute.
If no derivedId is set, None is returned. This behavior has changed with respect to the Python 2 implementation.
Methods
- set(key, value, /)
 Sets an attribute on the current subscriber to a specific value.
- Parameters
 key (int) – Integer representing which attribute to set. See Constants for an enumeration of all supported attributes.
value – value to set the attribute to.
- Raises
 KeyError if the key is not valid
- Raises
 ValueError if the type of the value or the actual value is not valid for the specified key.
Constants
The alc.esm object provides a list of constants which can be used as a key parameter to choose which attribute to set.
The following table lists all attributes and the supported object-types for the corresponding value.
Attribute  | 
Types  | 
|---|---|
subIdent  | 
str  | 
subProfileString  | 
str  | 
slaProfileString  | 
str  | 
ancpString  | 
str  | 
appProfileString  | 
str  | 
intDestId  | 
str  | 
catMapString  | 
str  | 
msapGroupInterface  | 
str  | 
msapPolicy  | 
str  | 
msapServiceId  | 
str | int  | 
retailServiceId  | 
str | int  | 
ipAddress  | 
str  | 
ipv6Address  | 
str  | 
ipv6DelegatedPrefix  | 
str  | 
ipv6DelegatedPrefixLength  | 
int  | 
ipv6SlaacPrefix  | 
str  | 
ipv6WanPool  | 
str  | 
ipv6PrefixPool  | 
str  | 
accountingPolicy  | 
str  | 
dhcpv4ServerAddr  | 
str  | 
dhcpv4GIAddr  | 
str  | 
dhcpv4SrcAddr  | 
str  | 
dhcpv4Pool  | 
str  | 
dhcpv6LinkAddr  | 
str  | 
dhcpv6ServerAddr  | 
str  | 
dhcpv6SrcAddr  | 
str  | 
defGw  | 
str  | 
subnetMask  | 
str  | 
ipv4LeaseTime  | 
int  | 
ipv4PrimDns  | 
str  | 
ipv4SecDns  | 
str  | 
primNbns  | 
str  | 
secNbns  | 
str  | 
ipv6PrimDns  | 
str  | 
ipv6SecDns  | 
str  | 
dhcpv6PreferredLifetime  | 
int  | 
dhcpv6RebindTimer  | 
int  | 
dhcpv6RenewTimer  | 
int  | 
dhcpv6ValidLifetime  | 
int  | 
padoDelay  | 
int  | 
pppAuthProtocol  | 
str  | 
pppMTU  | 
int  | 
aaSubScope  | 
int  | 
spiSharingGroupId  | 
int  | 
Breaking changes
Derived Id
Warning
With Python 2 API, reading a derived-id which is not set raises a RuntimeError. With Python 3, the value None is returned.