Python Pycapi Reference
This section covers the objects, methods, and other details for the Pycapi module.
Pycapi Module Methods
The following table provides a summary of the available methods in the pycapi module. Click the method name to go to the details for that method.
| Method Name | Method description | Return value type | Return description | 
|---|---|---|---|
| GetMajorVersion() | Returns the CAPI library's major version number. | int | The CAPI library's major version number | 
| GetMinorVersion() | Returns the CAPI library's minor version number. | int | The CAPI library's minor version number | 
| Shutdown() | Does housekeeping in preparation for exiting a program that is using the CAPI library. Calling this function is optional, but if the in-memory SID cache is enabled it will take care of freeing up any allocated memory associated with the cache. | n/a | |
| GetCdcCodeStr(code) | Returns the string associated with the supplied code. parameter: code (int) -code | string | The string associated with the code. | 
| GetErrSystemStr(system) | Returns the name of the error subsystem with an ID. parameters: system (int) - error system ID | string | The name of the error subsystem. | 
| DomainFromDN() | Returns the Active Directory domain name from the distinguished name or canonical name in upper case. Parameters: dn (string) - error system ID | string | The Active Directory domain name | 
Pycapi Module Objects
There are two objects in the Pycapi module:
- 
                                                            Session This object works with the agent. When you construct this object, it creates a session with the agent automatically. When you delete this object, the session closes automatically. 
- 
                                                            Error 
Session Object Methods
This section lists details about each method that you can use with the Session object.
_init_(majorVersion, minorVersion)
Create a session with the agent using the open method.
_del_()
Disconnect from the agent using the close method.
close()
Disconnect from the agent and free all resources associated with the session.
open(majorVersion, minorVersion)
Parameters:
- 
                                                            majorVersion(int): major version of required CAPI version 
- 
                                                            minorVersion(int): minor version of required CAPI version 
If you specify majorVersion:
- 
                                                            You must specify the major version of the Centrify API (CAPI). If the current version of CAPI is lower than the specified version, this method call fails. 
- 
                                                            Optionally you can also specify the minorVersion. 
If you don't specify the version parameters, the service doesn't do any version checking.
Raises
- Error - if any error occurred
getOption(option)
Get an option's current setting with an ID.
Parameters:
- option (int) - option ID (see Option constants)
Returns:
- value as (int)
Raises:
- Error - if any error occurred
setOption(option, value)
Set an option with an ID and a value.
Parameters:
- 
                                                            option (int): option ID (see Option in Constants) 
- 
                                                            value (int): option value 
Raises:
- Error - if any error occurred
setSessionID(id)
Set a session-specific string. This string will show up in the agent event logs to provide an easy way to track logging events specific to requests generated by this CAPI session.
Parameters:
- id (str) - session-specific string
Raises:
- Error - if any error occurred
isSessionConnected()
Check whether the session is connected to the DirectControl agent and the session is valid.
Returns:
- 
                                                            code as (int). If the session is connected and valid, the code value will be CODE_SUCCESS (see Code constants). 
getSessionCode()
Get the code from the last session transaction.
Returns:
- code as (int) (see Code constants)
ldapFetch(domain, dn, attrs)
Fetch a specific object from Active Directory.
Parameters:
- 
                                                            domain (str) - domain to search in. Specify either a domain name, or "$" to use global catalog or "" to use the default domain controller. 
- 
                                                            dn (str) - the DN to return. An empty string "" can be used to specify the DSE root. 
- 
                                                            attrs (list of str) - the attributes to return. An empty list or None will return only the attributes DirectControl normally caches for the matched object. 
Returns:
Object (see Object)
Raises:
Error - if any error occurred
lookupObjectByUnixId(type, id)
Look up a user or group by Unix ID.
Parameters:
- 
                                                            type (int) - object type (see Object type constants) 
- 
                                                            id (int) - Unix user ID or group ID 
Returns:
- Object (see Object)
Raises:
- Error - if any error occurred
lookupObjectByName(category, name)
Look up a user or group by name in a category.
Parameters:
- 
                                                            category (str) - category (see AD Category constants ) to limit the search 
- 
                                                            name (str) - user name or group name 
Returns:
- Object (see Object)
Raises:
- Error - if any error occurred
lookupObjectByGuid(guid)
Look up a user or group by GUID.
Parameters:
- guid (str) - GUID
Returns:
- Object (see Object)
Raises:
- Error - if any error occurred
lookupObjectBySid(sid)
Look up a user or group by SID.
Parameters:
- sid (str) - SID
Returns:
- Object (see Object)
Raises:
- Error - if any error occurred
getDomainRids()
Get the domain map of all of the accessible domains with their corresponding RID information.
Returns:
- KeyValueSet (see KeyValueSet)
Raises:
- 
                                                            Error - if any error occurred. If the domain map construction is not complete, the code will be TRY_AGAIN. 
networkChange()
Notify adclient that there was a network change on the system.
Returns:
- 
                                                            code as (int). If success, the code value will be CODE_SUCCESS (see 
ping()
Test the connection to the agent.
Returns:
- 
                                                            code as (int). If success, the code value will be CODE_SUCCESS (see 
getKerberosName(name, useSamName)
Get the Kerberos principal name of a user.
Parameters:
- 
                                                            name (str) - user name 
- 
                                                            useSamName (int) - TRUE will use sAMAccount name (see Boolean constants) 
Raises:
- Error - if any error occurred
authValidateAccount(name, flags)
Check a user account to see if any logon restrictions currently apply.
Parameters:
- 
                                                            name (str) - user name 
- 
                                                            flags (int) - validate flags (see Validate Flag constants) 
Returns:
- code as (int). If success, the code value will be CODE_SUCCESS (see Code constants)
authValidatePlainTextUserNonCDC(name, password)
Validate a non-DirectControl managed user.
Parameters:
- 
                                                            name (str) - user name 
- 
                                                            password (str) - user password 
Returns:
- 
                                                            code as (int). If success, the code value will be CODE_SUCCESS (see 
authValidatePlainTextUser(name, password)
Validate a user and password using Kerberos.
Parameters:
- 
                                                            name (str) - user name 
- 
                                                            password (str) - user password 
Returns:
- 
                                                            code as (int). If success, the code value will be CODE_SUCCESS (see 
systemHealthInfo(refresh=FALSE)
Return information about DirectControl's system health.
Parameters:
- 
                                                            refresh (int) - if FALSE, return information from last API call. If TRUE, send a probe to collect updated information. (See [Boolean constants]#boolean-constants)) 
Returns:
- KeyValueSet (see KeyValueSet)
Raises:
- Error - if any error occurred
getForestList(flags)
Get the trusted forest information list.
Parameters:
- flags (int) - flags (see Get DC Flag constants)
Returns:
- ObjectList (see ObjectList)
Raises:
- Error - if any error occurred
getDomainList(flags)
Get the trusted domain information.
Parameters:
- flags (int) - flags (see Get DC Flag constants)
Returns:
- ObjectList (see ObjectList)
Raises:
- Error - if any error occurred
getDCInfo(name)
Get Information about a specific domain controller (DC).
Parameters:
- name (str) - name of the domain controller
Returns:
- Object (see Object)
Raises:
- Error - if any error occurred
getDomainControllers(name, flags)
Get a list of domain controllers for specific domain.
Parameters:
- 
                                                            name (str) - name of the domain 
- 
                                                            flags (int) - flags (see Get DC Flag constants) 
Returns:
- StringSet (see StringSet)
Raises:
- Error - if any error occurred
getAuditLevel(name)
Get audit level of a user.
Parameters:
- name (str) - user name
Returns:
- audit level as (int) (see Audit Level constants)
Raises:
- Error - if any error occurred
Throw Error exception in case of error.
Error Object Methods
The base class of Error is the Python Exception class.
message()
Returns a message as a string
Returns:
- message as (str) (see Audit Level constants)
code()
Returns code
Returns:
- code as (int) (see Code constants)
Pycapi Module Constants
This section lists out the different constant values that can be used with the Pycapi module.
Boolean Constants
| Constant | Value | 
|---|---|
| TRUE | 1 | 
| FALSE | 0 | 
Code Constants
| Constant | Value | 
|---|---|
| CODE_SUCCESS | 0 | 
| CODE_FAILURE | 1 | 
| CODE_NOMEM | 2 | 
| CODE_BAD_OPTION | 3 | 
| CODE_BAD_PARAM | 4 | 
| CODE_BAD_SESSION | 5 | 
| CODE_LRPC_FAILED | 6 | 
| CODE_NO_MORE | 7 | 
| CODE_NO_SUCH_ATTR | 8 | 
| CODE_NO_SUCH_OBJECT | 9 | 
| CODE_SERVER_UNREACHABLE | 10 | 
| CODE_SEARCH_IN_PROGRESS | 11 | 
| CODE_BAD_VERSION | 12 | 
| CODE_INVALID_USER | 13 | 
| CODE_INVALID_PASSWORD | 14 | 
| CODE_ACCOUNT_LOCKED | 15 | 
| CODE_PASSWORD_EXPIRED | 16 | 
| CODE_PASSWORD_POLICY_NOT_MATCHED | 17 | 
| CODE_PASSWORD_CHANGE_REJECTED | 18 | 
| CODE_ACCOUNT_EXPIRED | 19 | 
| CODE_ACCOUNT_DISABLED | 20 | 
| CODE_WORKSTATION_DENIED | 21 | 
| CODE_PERMISSION | 22 | 
| CODE_BAD_PACKET | 23 | 
| CODE_BAD_DATA | 24 | 
| CODE_NOT_JOINED | 25 | 
| CODE_VALUE_NOT_SET | 26 | 
| CODE_IO_ERROR | 27 | 
| CODE_SYS_ERROR | 28 | 
| CODE_NO_SYS_ERROR_INFO | 29 | 
| CODE_WRONG_DATA_TYPE | 30 | 
| CODE_MULTI_VALUE | 31 | 
| CODE_NO_ADCLIENT | 32 | 
| CODE_LOGON_FAILURE | 33 | 
| CODE_NOT_GROUP_MEMBER | 34 | 
| CODE_FOREIGN_DOMAIN | 35 | 
| CODE_NOT_FOUND | 36 | 
| CODE_EXISTS | 37 | 
| CODE_TRUST_ERROR | 38 | 
| CODE_ACCOUNT_LOGON_HOURS | 39 | 
| CODE_ACCOUNT_WORKSTATION | 40 | 
| TRY_AGAIN | 41 | 
| CODE_NO_DNS | 42 | 
| CODE_BAD_COMPUTER_OBJECT | 43 | 
| CODE_ACCOUNT_RESTRICTION | 44 | 
| CODE_ALREADY_JOINED | 45 | 
| CODE_CLIENT_DISCONNECTED | 46 | 
| CODE_GROUP_POLICY_NOT_FOUND | 47 | 
| CODE_INVALID_CONTAINER | 48 | 
| CODE_NAME_MATCHES_DC | 49 | 
| CODE_NETWORK_ERROR | 50 | 
| CODE_OUT_BOUND_TRUST | 51 | 
| CODE_PROCESS_AUTHENTICATION | 52 | 
| CODE_UNKNOWN | 53 | 
| CODE_ZONE_ACCESS_PERMISSION | 54 | 
| CODE_IN_ANOTHER_DOMAIN | 55 | 
| CODE_FIPS_NONCOMPLIANT | 56 | 
| CODE_BLOCKED | 57 | 
| CODE_REENTERED | 58 | 
| CODE_PASSWORD_DID_CHANGE | 59 | 
Error System Constants
| Constant | Value | 
|---|---|
| ERR_SYS_NONE | 0 | 
| ERR_SYS_KERBEROS | 1 | 
| ERR_SYS_LDAP | 2 | 
| ERR_SYS_NTSTATUS | 3 | 
| ERR_SYS_BASE | 4 | 
| ERR_SYS_AZMAN | 5 | 
| ERR_SYS_DNS | 6 | 
| ERR_SYS_NETWORK | 7 | 
| ERR_SYS_GP | 8 | 
| ERR_SYS_FIPS | 9 | 
| ERR_SYS_EOL | 10 | 
Option Constants
| Constant | Value | 
|---|---|
| OPT_UNIX_ONLY | 0x00000001 | 
| OPT_CHECK_AD_FIRST | 0x00000002 | 
| OPT_GROUP_MEMBERSHIP | 0x00000004 | 
| OPT_UNIX_NAME | 0x00000008 | 
| OPT_WINDOWS_NAME | 0x00000010 | 
| OPT_APPLY_OVERRIDES | 0x00000020 | 
| OPT_ZONE_SEARCH | 0x00000040 | 
| OPT_AUTO_RECONNECT | 0x00000080 | 
| OPT_AUTH_VALIDATE_ACCOUNT | 0x00000100 | 
| OPT_CREATE_KRB5_CACHE | 0x00000200 | 
| OPT_NO_CACHE | 0x00000400 | 
| OPT_REFRESH_MEMBERSHIP | 0x00000800 | 
| OPT_AUTH_VALIDATE_ACCT_PREFER_CACHE | 0x00001000 | 
| OPT_LOCATE_ALL_SERVICES | 0x00002000 | 
Object Type Constants
| Constant | Value | 
|---|---|
| OBJTYPE_USER | 1 | 
| OBJTYPE_GROUP | 2 | 
| OBJTYPE_COMPUTER | 3 | 
AD Category Constants
| Constant | Value | 
|---|---|
| AD_CATEGORY_GROUP | "Group" | 
| AD_CATEGORY_USER | "Person" | 
| AD_CATEGORY_COMPUTER | "Computer" | 
| AD_CATEGORY_CONTAINER | "Container" | 
| AD_CATEGORY_ORGUNIT | "Organizational-Unit" | 
| AD_CATEGORY_SCP | "Service-Connection-Point" | 
| AD_CATEGORY_CLASS_STORE | "Class-Store" | 
| AD_CATEGORY_FSP | "Foreign-Security-Principal" | 
| AD_CATEGORY_ANY | "" | 
Get DC Flag Constants
| Constant | Value | 
|---|---|
| GETDC_FLAGS_GET_ALL | 0x00000001 | 
| GETDC_FLAGS_WRITABLE | 0x00000002 | 
| GETDC_FLAGS_NO_LIVE_TEST | 0x00000004 | 
| GETDC_FLAGS_DONT_READ_CACHE | 0x00000008 | 
| GETDC_FLAGS_IGNORE_KSET | 0x00000010 | 
| GETDC_FLAGS_DEEP_SWEEP | 0x000000020 | 
| GETDC_FLAGS_SPEED_SORT | 0x000000040 | 
| GETDC_FLAGS_ANY_SITE | 0x000000080 | 
AD Attribute Constants
| Constant | Value | 
|---|---|
| AD_ATTR_USERNAME | "name" | 
| AD_ATTR_USER_PRINCIPAL_NAME | "_userPrincipalName" | 
Validate Flag Constants
| Constant | Value | 
|---|---|
| VALIDATE_ACCT_LOCKOUT | 0x00000001 | 
| VALIDATE_ACCT_DISABLED | 0x00000002 | 
| VALIDATE_ACCT_EXPIRED | 0x00000004 | 
| VALIDATE_PASSWD_EXPIRED | 0x00000008 | 
| VALIDATE_WORKSTATIONS | 0x00000010 | 
| VALIDATE_LOGON_HOURS | 0x00000020 | 
| VALIDATE_ALL | 0xffffffff | 
Audit Level Constants
| Constant | Value | 
|---|---|
| AUDITLEVEL_NOTSET | -1 | 
| AUDITLEVEL_AUDITIFPOSSIBLE | 0 | 
| AUDITLEVEL_NOAUDIT | 1 | 
| AUDITLEVEL_AUDITREQUIRED | 2 | 
| AUDITLEVEL_SYSRIGHTS | 3 | 
Pycapi Dictionary Objects
Some of the pycapi methods return objects, those are described below. A dictionary is a data type in Python that's used to store a set of key:value pairs.
| Object Name | Description | 
|---|---|
| Object | The Object is a dictionary object that stores the attributes of the object returned. For each item in the dictionary object, the key is a string, and the value is a list of bytes objects. If the attribute has only one value, the attribute will be a list with only one bytes object. | 
| ObjectList | A list of objects. | 
| StringSet | A list of strings. | 
| KeyValueSet | A dictionary of strings. | 



