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.esm
object should be used in script, the classalc.Esm
should 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.