[Fleet] Reuse package infos for synthetics bulk ops (#191486)

## Summary

 Reuse package infos for synthetics bulk ops !!

We are just trying to debug Project monitor push API which interacts
with fleet code and trying to see what excessive calls are being made,
which can be reduced.
This commit is contained in:
Shahzad 2024-09-24 12:33:22 +02:00 committed by GitHub
parent 9cd2cfa861
commit 6d584d49a7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 26 additions and 5 deletions

View file

@ -105,7 +105,12 @@ import { getAuthzFromRequest, doesNotHaveRequiredFleetAuthz } from './security';
import { storedPackagePolicyToAgentInputs } from './agent_policies';
import { agentPolicyService } from './agent_policy';
import { getPackageInfo, getInstallation, ensureInstalledPackage } from './epm/packages';
import {
getPackageInfo,
getInstallation,
ensureInstalledPackage,
getInstallationObject,
} from './epm/packages';
import { getAssetsDataFromAssetsMap } from './epm/packages/assets';
import { compileTemplate } from './epm/agent/agent';
import { escapeSearchQueryPhrase, normalizeKuery as _normalizeKuery } from './saved_object';
@ -1874,9 +1879,25 @@ class PackagePolicyClientImpl implements PackagePolicyClient {
public async buildPackagePolicyFromPackage(
soClient: SavedObjectsClientContract,
pkgName: string,
logger?: Logger
options?: { logger?: Logger; installMissingPackage?: boolean }
): Promise<NewPackagePolicy | undefined> {
const pkgInstall = await getInstallation({ savedObjectsClient: soClient, pkgName, logger });
const pkgInstallObj = await getInstallationObject({
savedObjectsClient: soClient,
pkgName,
logger: options?.logger,
});
let pkgInstall = pkgInstallObj?.attributes;
if (!pkgInstall && options?.installMissingPackage) {
const esClient = await appContextService.getInternalUserESClient();
const result = await ensureInstalledPackage({
esClient,
pkgName,
savedObjectsClient: soClient,
});
if (result.package) {
pkgInstall = result.package;
}
}
if (pkgInstall) {
const packageInfo = await getPackageInfo({
savedObjectsClient: soClient,

View file

@ -164,7 +164,7 @@ export interface PackagePolicyClient {
buildPackagePolicyFromPackage(
soClient: SavedObjectsClientContract,
pkgName: string,
logger?: Logger
options?: { logger?: Logger; installMissingPackage?: boolean }
): Promise<NewPackagePolicy | undefined>;
runExternalCallbacks<A extends ExternalCallback[0]>(

View file

@ -52,7 +52,7 @@ export class SyntheticsPrivateLocation {
const newPolicy = await this.server.fleet.packagePolicyService.buildPackagePolicyFromPackage(
soClient,
'synthetics',
this.server.logger
{ logger: this.server.logger, installMissingPackage: true }
);
if (!newPolicy) {