diff --git a/x-pack/plugins/ingest_manager/server/services/agents/acks.test.ts b/x-pack/plugins/ingest_manager/server/services/agents/acks.test.ts index abc4518e70573b..6ea59c9a76a497 100644 --- a/x-pack/plugins/ingest_manager/server/services/agents/acks.test.ts +++ b/x-pack/plugins/ingest_manager/server/services/agents/acks.test.ts @@ -139,9 +139,11 @@ describe('test agent acks services', () => { name: 'system-1', type: 'logs', use_output: 'default', - package: { - name: 'system', - version: '0.3.0', + meta: { + package: { + name: 'system', + version: '0.3.0', + }, }, dataset: { namespace: 'default', @@ -279,9 +281,11 @@ describe('test agent acks services', () => { name: 'system-1', type: 'logs', use_output: 'default', - package: { - name: 'system', - version: '0.3.0', + meta: { + package: { + name: 'system', + version: '0.3.0', + }, }, dataset: { namespace: 'default', diff --git a/x-pack/plugins/ingest_manager/server/services/agents/acks.ts b/x-pack/plugins/ingest_manager/server/services/agents/acks.ts index e391e81ebd0a62..c59bac6a5469ac 100644 --- a/x-pack/plugins/ingest_manager/server/services/agents/acks.ts +++ b/x-pack/plugins/ingest_manager/server/services/agents/acks.ts @@ -92,8 +92,9 @@ function getLatestConfigIfUpdated(agent: Agent, actions: AgentAction[]) { function buildUpdateAgentConfig(agentId: string, config: FullAgentConfig) { const packages = config.inputs.reduce((acc, input) => { - if (input.package && input.package.name && acc.indexOf(input.package.name) < 0) { - return [input.package.name, ...acc]; + const packageName = input.meta?.package?.name; + if (packageName && acc.indexOf(packageName) < 0) { + return [packageName, ...acc]; } return acc; }, []); diff --git a/x-pack/test/api_integration/apis/fleet/agent_flow.ts b/x-pack/test/api_integration/apis/fleet/agent_flow.ts index 400db995576ae5..71057b81d1b097 100644 --- a/x-pack/test/api_integration/apis/fleet/agent_flow.ts +++ b/x-pack/test/api_integration/apis/fleet/agent_flow.ts @@ -30,7 +30,8 @@ export default function (providerContext: FtrProviderContext) { it('should work', async () => { const kibanaVersionAccessor = kibanaServer.version; const kibanaVersion = await kibanaVersionAccessor.get(); - // 1. Get enrollment token + + // Get enrollment token const { body: enrollmentApiKeysResponse } = await supertest .get(`/api/ingest_manager/fleet/enrollment-api-keys`) .expect(200); @@ -44,7 +45,7 @@ export default function (providerContext: FtrProviderContext) { expect(enrollmentApiKeyResponse.item).to.have.key('api_key'); const enrollmentAPIToken = enrollmentApiKeyResponse.item.api_key; - // 2. Enroll agent + // Enroll agent const { body: enrollmentResponse } = await supertestWithoutAuth .post(`/api/ingest_manager/fleet/agents/enroll`) .set('kbn-xsrf', 'xxx') @@ -63,7 +64,7 @@ export default function (providerContext: FtrProviderContext) { const agentAccessAPIKey = enrollmentResponse.item.access_api_key; - // 3. agent checkin + // Agent checkin const { body: checkinApiResponse } = await supertestWithoutAuth .post(`/api/ingest_manager/fleet/agents/${enrollmentResponse.item.id}/checkin`) .set('kbn-xsrf', 'xx') @@ -79,7 +80,7 @@ export default function (providerContext: FtrProviderContext) { const configChangeAction = checkinApiResponse.actions[0]; const defaultOutputApiKey = configChangeAction.data.config.outputs.default.api_key; - // 4. ack actions + // Ack actions const { body: ackApiResponse } = await supertestWithoutAuth .post(`/api/ingest_manager/fleet/agents/${enrollmentResponse.item.id}/acks`) .set('Authorization', `ApiKey ${agentAccessAPIKey}`) @@ -101,7 +102,7 @@ export default function (providerContext: FtrProviderContext) { .expect(200); expect(ackApiResponse.success).to.eql(true); - // 4. second agent checkin + // Second agent checkin const { body: secondCheckinApiResponse } = await supertestWithoutAuth .post(`/api/ingest_manager/fleet/agents/${enrollmentResponse.item.id}/checkin`) .set('kbn-xsrf', 'xx') @@ -113,14 +114,25 @@ export default function (providerContext: FtrProviderContext) { expect(secondCheckinApiResponse.success).to.eql(true); expect(secondCheckinApiResponse.actions).length(0); - // 5. unenroll agent + // Get agent + const { body: getAgentApiResponse } = await supertest + .get(`/api/ingest_manager/fleet/agents/${enrollmentResponse.item.id}`) + .expect(200); + + expect(getAgentApiResponse.success).to.eql(true); + expect(getAgentApiResponse.item.packages).to.contain( + 'system', + "Agent should run the 'system' package" + ); + + // Unenroll agent const { body: unenrollResponse } = await supertest .post(`/api/ingest_manager/fleet/agents/${enrollmentResponse.item.id}/unenroll`) .set('kbn-xsrf', 'xx') .expect(200); expect(unenrollResponse.success).to.eql(true); - // 6. Checkin after unenrollment + // Checkin after unenrollment await supertestWithoutAuth .post(`/api/ingest_manager/fleet/agents/${enrollmentResponse.item.id}/checkin`) .set('kbn-xsrf', 'xx')