package org.ovirt.engine.core.aaa;
import java.util.List;
import org.ovirt.engine.api.extensions.Base;
import org.ovirt.engine.api.extensions.ExtMap;
import org.ovirt.engine.api.extensions.aaa.Acct;
import org.ovirt.engine.core.extensions.mgr.ExtensionProxy;
import org.ovirt.engine.core.utils.extensionsmgr.EngineExtensionsManager;
public class AcctUtils {
public static void report(ExtMap input) {
List<ExtensionProxy> acctExtensions =
EngineExtensionsManager.getInstance().getExtensionsByService(Acct.class.getName());
input.putIfAbsent(Base.InvokeKeys.COMMAND, Acct.InvokeCommands.REPORT);
if (acctExtensions != null) {
for (ExtensionProxy proxy : acctExtensions) {
proxy.invoke(input);
}
}
}
public static void reportReason(int reportReason, String message, Object... msgArgs) {
ExtMap input = new ExtMap().mput(
Acct.InvokeKeys.REASON,
reportReason
).mput(
Acct.InvokeKeys.MESSAGE,
String.format(message, msgArgs)
);
report(input);
}
public static void reportRecords(
int reportReason,
String authzName,
String user,
String message,
Object... msgArgs
) {
ExtMap input = new ExtMap();
input.put(Acct.InvokeKeys.REASON, reportReason);
input.put(Acct.InvokeKeys.PRINCIPAL_RECORD,
new ExtMap().mput(
Acct.PrincipalRecord.AUTHZ_NAME,
authzName
).mput(
Acct.PrincipalRecord.USER,
user
).mput(
Acct.InvokeKeys.MESSAGE,
String.format(message, msgArgs)
)
);
report(input);
}
}