Skip to content

Commit 208e86e

Browse files
author
John Schulz
authored
[Ingest Manager] Lift up registry/{stream,extract} functions (#83239)
## Summary * Move stream utility functions from `server/services/epm/registry/streams.ts` to `server/services/epm/streams.ts` * They're only used in registry at the moment but aren't specific to registry * Move archive extraction functions from `server/services/epm/registry/extract.ts` to `server/services/epm/archive.ts` * The Registry isn't the only service/code which needs to extract packages. Continue consolidating archive-related code under archive vs registry
1 parent 4932dc5 commit 208e86e

File tree

9 files changed

+19
-20
lines changed

9 files changed

+19
-20
lines changed

x-pack/plugins/fleet/server/services/epm/registry/extract.ts renamed to x-pack/plugins/fleet/server/services/epm/archive/extract.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,8 @@
66

77
import tar from 'tar';
88
import yauzl from 'yauzl';
9-
import { bufferToStream, streamToBuffer } from './streams';
10-
11-
export interface ArchiveEntry {
12-
path: string;
13-
buffer?: Buffer;
14-
}
9+
import { bufferToStream, streamToBuffer } from '../streams';
10+
import { ArchiveEntry } from './index';
1511

1612
export async function untarBuffer(
1713
buffer: Buffer,

x-pack/plugins/fleet/server/services/epm/archive/index.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,16 @@ import {
1414
setArchiveFilelist,
1515
deleteArchiveFilelist,
1616
} from './cache';
17-
import { ArchiveEntry, getBufferExtractor } from '../registry/extract';
17+
import { getBufferExtractor } from './extract';
1818
import { parseAndVerifyArchiveEntries } from './validation';
1919

2020
export * from './cache';
21+
export { untarBuffer, unzipBuffer, getBufferExtractor } from './extract';
22+
23+
export interface ArchiveEntry {
24+
path: string;
25+
buffer?: Buffer;
26+
}
2127

2228
export async function getArchivePackage({
2329
archiveBuffer,

x-pack/plugins/fleet/server/services/epm/archive/validation.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ import {
1515
RegistryVarsEntry,
1616
} from '../../../../common/types';
1717
import { PackageInvalidArchiveError } from '../../../errors';
18-
import { ArchiveEntry, pkgToPkgKey } from '../registry';
18+
import { ArchiveEntry } from './index';
19+
import { pkgToPkgKey } from '../registry';
1920

2021
const MANIFESTS: Record<string, Buffer> = {};
2122
const MANIFEST_NAME = 'manifest.yml';

x-pack/plugins/fleet/server/services/epm/elasticsearch/ingest_pipeline/install.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ import {
1111
ElasticsearchAssetType,
1212
InstallablePackage,
1313
} from '../../../../types';
14-
import { ArchiveEntry } from '../../registry';
15-
import { getAsset, getPathParts } from '../../archive';
14+
import { ArchiveEntry, getAsset, getPathParts } from '../../archive';
1615
import { CallESAsCurrentUser } from '../../../../types';
1716
import { saveInstalledEsRefs } from '../../packages/install';
1817
import { getInstallationObject } from '../../packages';

x-pack/plugins/fleet/server/services/epm/packages/assets.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import { InstallablePackage } from '../../../types';
88
import * as Registry from '../registry';
9-
import { getArchiveFilelist, getAsset } from '../archive';
9+
import { ArchiveEntry, getArchiveFilelist, getAsset } from '../archive';
1010

1111
// paths from RegistryPackage are routes to the assets on EPR
1212
// e.g. `/package/nginx/1.2.0/data_stream/access/fields/fields.yml`
@@ -51,14 +51,14 @@ export async function getAssetsData(
5151
packageInfo: InstallablePackage,
5252
filter = (path: string): boolean => true,
5353
datasetName?: string
54-
): Promise<Registry.ArchiveEntry[]> {
54+
): Promise<ArchiveEntry[]> {
5555
// TODO: Needs to be called to fill the cache but should not be required
5656

5757
await Registry.ensureCachedArchiveInfo(packageInfo.name, packageInfo.version, 'registry');
5858

5959
// Gather all asset data
6060
const assets = getAssets(packageInfo, filter, datasetName);
61-
const entries: Registry.ArchiveEntry[] = assets.map((path) => {
61+
const entries: ArchiveEntry[] = assets.map((path) => {
6262
const buffer = getAsset(path);
6363

6464
return { path, buffer };

x-pack/plugins/fleet/server/services/epm/registry/index.test.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@
55
*/
66

77
import { AssetParts } from '../../../types';
8-
import { getPathParts } from '../archive';
9-
import { getBufferExtractor, splitPkgKey } from './index';
10-
import { untarBuffer, unzipBuffer } from './extract';
8+
import { getBufferExtractor, getPathParts, untarBuffer, unzipBuffer } from '../archive';
9+
import { splitPkgKey } from './index';
1110

1211
const testPaths = [
1312
{

x-pack/plugins/fleet/server/services/epm/registry/index.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,11 @@ import {
2424
unpackArchiveToCache,
2525
} from '../archive';
2626
import { fetchUrl, getResponse, getResponseStream } from './requests';
27-
import { streamToBuffer } from './streams';
27+
import { streamToBuffer } from '../streams';
2828
import { getRegistryUrl } from './registry_url';
2929
import { appContextService } from '../..';
3030
import { PackageNotFoundError, PackageCacheError } from '../../../errors';
3131

32-
export { ArchiveEntry, getBufferExtractor } from './extract';
33-
3432
export interface SearchParams {
3533
category?: CategoryId;
3634
experimental?: boolean;

x-pack/plugins/fleet/server/services/epm/registry/requests.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import fetch, { FetchError, Response, RequestInit } from 'node-fetch';
88
import pRetry from 'p-retry';
9-
import { streamToString } from './streams';
9+
import { streamToString } from '../streams';
1010
import { appContextService } from '../../app_context';
1111
import { RegistryError, RegistryConnectionError, RegistryResponseError } from '../../../errors';
1212
import { getProxyAgent, getRegistryProxyUrl } from './proxy';

0 commit comments

Comments
 (0)