Troubleshooting
"manage_components.py list all" command isn’t working
If the command is continuously returning the help message and not executing the ”list all” option then try running the command preceded by ”python”:
python manage_components.py list all
If the command prompt is not returning any component list try loading the components first with the command:
manage_components.py load
RuntimeError: Attempted to load a 64bit idmlib.dll
When you are listing or installing components you may run into this error:
RuntimeError: Attempted to load a 64bit idmlib.dll using a 32bit Python interpreter. Try again using a 64bit Python interpreter.
This occurs if you installed Python 3 earlier in order to install Bravura Security Fabric on your server (Earlier versions of Bravura Security Fabric downloaded and installed the 32-bit version of Python by default). To fix this, visit https://www.python.org/downloads/ and find the 64-bit version of the latest Python 3 release. Once you download and install it, replacing your 32-bit Python files, try running the component commands again.
Install operation failure
Sometimes, during component install, if something causes the install script to fail, the framework automation may still report success and mark the component as "installed" even though it or some of its dependencies were not successful.
If the "install" operation fails or there are Traceback entries in idmsuite.log
from manage_components.py
or component __init__.py
scripts:
Edit the instance's db\components.db with a sqlite3 client like SqliteStudio .
Search the Data of the components table for the name of the failed component(s).
If they are marked "installed"='1', flip that flag to 0 (zero) and save the database.
Close the sqlite3 editor.
Solve the erroneous situation that failed a script (data, environment config, permissions, etc).
Run the install operation again on the failed component.
Search for Traceback errors in
idmsuite.log
or another integration failure.Test component functionality in the product or integration.
Workaround for dealing with UTF-8 BOM encoding
Issue
When a file is opened in Python it may either contain invisible characters (reading as text), have a bad/unexpected name for the first column (reading as CSV), or fail to parse (reading as JSON).
Solution
It is likely that the file you are reading was encoded as a variant of UTF-8 that Python refers to as UTF-8-SIG but is also known as UTF-8-BOM or UTF-8 with BOM. This causes the file to have a leading set of non-printing characters (the Byte Order Mark or BOM), and Python’s default utf-8 encoding will not strip out these leading characters. It is possible to have these files read correctly in Python by setting the encoding to utf-8-sig when opening the file handle in Python, but it is recommended that you instead fix the file encoding. The UTF-8 BOM is a Windows only feature that Microsoft themselves are slowly deprecating. If you have files encoded in UTF-8-BOM they likely came from an older version of Windows, commonly created with either Windows Notepad or Powershell.
Windows Notepad prior to Windows 10 1903 (and up to windows server 2016), Notepad defaults to ANSI encoding and only has a single UTF-8 encoding, which emits a BOM. In Windows 10 1903+ (and equivalent Windows Server versions), Windows Notepad now defaults to UTF-8 encoding and distinguishes between UTF-8 and UTF-8 with BOM, using Save As you can change the encoding to UTF-8 to strip out the BOM if a file was previously encoded using UTF-8 with BOM.
Powershell below version 6 will always emit UTF-8 encoded text output with a BOM. In Powershell 6+ direct text output should have no BOM automatically, but for other output it’s not so simple, details (and potential workarounds for Powershell 5.1+) here .
If you are still on an older windows version, almost any third party text editor should be able to re-save the file without the BOM, but you may need to manually change the encoding.