Kaltura_Client_Audit_Plugin' not found

Hello!

We are evaluating Kaltura in order to use if for a project.

When navigating to: http://OUR_URL/admin_console/index.php/plugin/AuditTrailListAction

We get a blank page and this error in the log:

==> /opt/kaltura/log/kaltura_apache_errors.log <==
[Tue Jul 21 12:36:30.423481 2020] [php7:error] [pid 21465] [client x.x.x.x:36642] PHP Fatal error:  Uncaught Error: Class 'Kaltura_Client_Audit_Plugin' not found in /opt/kaltura/app/plugins/conf_maps/admin/AuditTrailListAction.php:32\nStack trace:\n#0 /opt/kaltura/app/infra/plugins/KalturaApplicationPlugin.php(94): AuditTrailListAction->doAction(Object(PluginController))\n#1 /opt/kaltura/app/ui_infra/Infra/PluginController.php(23): KalturaApplicationPlugin->action(Object(PluginController))\n#2 /opt/kaltura/app/vendor/ZendFramework/library/Zend/Controller/Action.php(515): Infra_PluginController->__call('audittraillista...', Array)\n#3 /opt/kaltura/app/vendor/ZendFramework/library/Zend/Controller/Dispatcher/Standard.php(289): Zend_Controller_Action->dispatch('audittraillista...')\n#4 /opt/kaltura/app/vendor/ZendFramework/library/Zend/Controller/Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))\n#5 /opt/kaltura/app/vendor/ZendFramework/library/Zend/Application/Bootstrap/Bootstrap.php(77): Zend_Controller_Front->dispatch()\n#6 /opt in /opt/kaltura/app/plugins/conf_maps/admin/AuditTrailListAction.php on line 32, referer: http://kaltura-cloud.netdevops.com/admin_console/index.php/plugin/AuditTrailListAction

Why would that plugin not be installed?
And how do we do it?

Why is this not caught by the helth check?

Let us know what we need to produce in order to help us :slight_smile:

Thanks!

Hello @guillem_liarte,

You can enable the Audit plugin in /opt/kaltura/app/configurations/plugins.ini and then invoke /opt/kaltura/app/deployment/base/scripts/installPlugins.php, clear the cache with:

# find $APP_DIR/cache/ -type f -exec rm {} \;
# php /opt/kaltura/app/generator/generate.php
# find $APP_DIR/cache/ -exec chown apache.kaltura {} \;
# find $APP_DIR/cache/ -type d -exec chmod 775 {} \;
# find $APP_DIR/cache/ -type f -exec chmod 664 {} \;

And restart Apache.

Uhmm OK…

                {
                        $enumValue = $pluginName . IKalturaEnumerator::PLUGIN_VALUE_DELIMITER . $value;
                        KalturaLog::debug("Installs enum value [$enumValue] to type [$interface]");
                        kPluginableEnumsManager::apiToCore($interface, $enumValue);
                }

Like adding a new line here? Which arguments does it take?
Where is this procedure documented?

Isn’t this a bit too obscure as the way to enable functionality?

What should I add? I do not get it.

Hi,

I’m not sure why you quoted these lines. I did not say you should edit any code.
Simply edit /opt/kaltura/app/configurations/plugins.ini and uncomment Audit and then run the commands I specified.

Oh that is because I do not see anything commented. This is my file:

<?php

require_once(dirname(__FILE__) . '/../../bootstrap.php');

myDbHelper::$use_alternative_con = myDbHelper::DB_HELPER_CONN_MASTER;

kPluginableEnumsManager::enableNewValues();

$pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaEnumerator');
foreach($pluginInstances as $pluginInstance)
{
        $pluginName = $pluginInstance->getPluginName();
        KalturaLog::debug("Installs plugin [$pluginName]");
        $enums = $pluginInstance->getEnums();
        foreach($enums as $enum)
        {
                $interfaces = class_implements($enum);
                foreach($interfaces as $interface)
                {
                        if($interface == 'IKalturaPluginEnum' || $interface == 'BaseEnum')
                                continue;

                        $interfaceInterfaces = class_implements($interface);
                        if(!in_array('BaseEnum', $interfaceInterfaces))
                                continue;

                        KalturaLog::debug("Installs enum [$enum] of type [$interface]");
                        $values = call_user_func(array($enum, 'getAdditionalValues'));
                        foreach($values as $value)
                        {
                                $enumValue = $pluginName . IKalturaEnumerator::PLUGIN_VALUE_DELIMITER . $value;
                                KalturaLog::debug("Installs enum value [$enumValue] to type [$interface]");
                                kPluginableEnumsManager::apiToCore($interface, $enumValue);
                        }
                }
        }
}

I would image you meant that I would comment the one with Audit and do the rest of the steps. But I do not even see it in there.

Is this normal?

I just noticed the line avobe:

/opt/kaltura/app/configurations/plugins.ini

OK


Where is the documentation for this procedure, in general?

Thanks!