[Ingest Manager] expose method to get agent and list agents to other plugins (#70087)
This commit is contained in:
parent
f47b3e50c7
commit
6e9972e693
|
@ -54,7 +54,12 @@ import {
|
|||
AgentService,
|
||||
datasourceService,
|
||||
} from './services';
|
||||
import { getAgentStatusById, authenticateAgentWithAccessToken } from './services/agents';
|
||||
import {
|
||||
getAgentStatusById,
|
||||
authenticateAgentWithAccessToken,
|
||||
listAgents,
|
||||
getAgent,
|
||||
} from './services/agents';
|
||||
import { CloudSetup } from '../../cloud/server';
|
||||
import { agentCheckinState } from './services/agents/checkin/state';
|
||||
|
||||
|
@ -236,7 +241,7 @@ export class IngestManagerPlugin
|
|||
plugins: {
|
||||
encryptedSavedObjects: EncryptedSavedObjectsPluginStart;
|
||||
}
|
||||
) {
|
||||
): Promise<IngestManagerStartContract> {
|
||||
await appContextService.start({
|
||||
encryptedSavedObjectsStart: plugins.encryptedSavedObjects,
|
||||
encryptedSavedObjectsSetup: this.encryptedSavedObjectsSetup,
|
||||
|
@ -255,6 +260,8 @@ export class IngestManagerPlugin
|
|||
return {
|
||||
esIndexPatternService: new ESIndexPatternSavedObjectService(),
|
||||
agentService: {
|
||||
getAgent,
|
||||
listAgents,
|
||||
getAgentStatusById,
|
||||
authenticateAgentWithAccessToken,
|
||||
},
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
|
||||
import { SavedObjectsClientContract } from 'kibana/server';
|
||||
import { AgentStatus } from '../types';
|
||||
import { SavedObjectsClientContract, KibanaRequest } from 'kibana/server';
|
||||
import { AgentStatus, Agent } from '../types';
|
||||
import * as settingsService from './settings';
|
||||
export { ESIndexPatternSavedObjectService } from './es_index_pattern';
|
||||
|
||||
|
@ -24,12 +24,38 @@ export interface ESIndexPatternService {
|
|||
* A service that provides exported functions that return information about an Agent
|
||||
*/
|
||||
export interface AgentService {
|
||||
/**
|
||||
* Get an Agent by id
|
||||
*/
|
||||
getAgent(soClient: SavedObjectsClientContract, agentId: string): Promise<Agent>;
|
||||
/**
|
||||
* Authenticate an agent with access toekn
|
||||
*/
|
||||
authenticateAgentWithAccessToken(
|
||||
soClient: SavedObjectsClientContract,
|
||||
request: KibanaRequest
|
||||
): Promise<Agent>;
|
||||
/**
|
||||
* Return the status by the Agent's id
|
||||
* @param soClient
|
||||
* @param agentId
|
||||
*/
|
||||
getAgentStatusById(soClient: SavedObjectsClientContract, agentId: string): Promise<AgentStatus>;
|
||||
/**
|
||||
* List agents
|
||||
*/
|
||||
listAgents(
|
||||
soClient: SavedObjectsClientContract,
|
||||
options: {
|
||||
page: number;
|
||||
perPage: number;
|
||||
kuery?: string;
|
||||
showInactive: boolean;
|
||||
}
|
||||
): Promise<{
|
||||
agents: Agent[];
|
||||
total: number;
|
||||
page: number;
|
||||
perPage: number;
|
||||
}>;
|
||||
}
|
||||
|
||||
// Saved object services
|
||||
|
|
|
@ -35,6 +35,9 @@ export const createMockEndpointAppContextServiceStartContract = (): jest.Mocked<
|
|||
export const createMockAgentService = (): jest.Mocked<AgentService> => {
|
||||
return {
|
||||
getAgentStatusById: jest.fn(),
|
||||
authenticateAgentWithAccessToken: jest.fn(),
|
||||
getAgent: jest.fn(),
|
||||
listAgents: jest.fn(),
|
||||
};
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue