mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
Expose SavedObjectsMigrationLogger
This commit is contained in:
parent
40ffbc0367
commit
75f837a859
13 changed files with 94 additions and 14 deletions
|
@ -61,6 +61,7 @@ The plugin integrates with the core system via lifecycle events: `setup`<!-- -->
|
|||
| [SavedObjectsCreateOptions](./kibana-plugin-server.savedobjectscreateoptions.md) | |
|
||||
| [SavedObjectsFindOptions](./kibana-plugin-server.savedobjectsfindoptions.md) | |
|
||||
| [SavedObjectsFindResponse](./kibana-plugin-server.savedobjectsfindresponse.md) | |
|
||||
| [SavedObjectsMigrationLogger](./kibana-plugin-server.savedobjectsmigrationlogger.md) | |
|
||||
| [SavedObjectsMigrationVersion](./kibana-plugin-server.savedobjectsmigrationversion.md) | Information about the migrations that have been applied to this SavedObject. When Kibana starts up, KibanaMigrator detects outdated documents and migrates them based on this value. For each migration that has been applied, the plugin's name is used as a key and the latest migration version as the value. |
|
||||
| [SavedObjectsRawDoc](./kibana-plugin-server.savedobjectsrawdoc.md) | A raw document as represented directly in the saved object index. |
|
||||
| [SavedObjectsService](./kibana-plugin-server.savedobjectsservice.md) | |
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-server](./kibana-plugin-server.md) > [SavedObjectsMigrationLogger](./kibana-plugin-server.savedobjectsmigrationlogger.md) > [debug](./kibana-plugin-server.savedobjectsmigrationlogger.debug.md)
|
||||
|
||||
## SavedObjectsMigrationLogger.debug property
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
debug: (msg: string) => void;
|
||||
```
|
|
@ -0,0 +1,11 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-server](./kibana-plugin-server.md) > [SavedObjectsMigrationLogger](./kibana-plugin-server.savedobjectsmigrationlogger.md) > [info](./kibana-plugin-server.savedobjectsmigrationlogger.info.md)
|
||||
|
||||
## SavedObjectsMigrationLogger.info property
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
info: (msg: string) => void;
|
||||
```
|
|
@ -0,0 +1,21 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-server](./kibana-plugin-server.md) > [SavedObjectsMigrationLogger](./kibana-plugin-server.savedobjectsmigrationlogger.md)
|
||||
|
||||
## SavedObjectsMigrationLogger interface
|
||||
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
export interface SavedObjectsMigrationLogger
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
| Property | Type | Description |
|
||||
| --- | --- | --- |
|
||||
| [debug](./kibana-plugin-server.savedobjectsmigrationlogger.debug.md) | <code>(msg: string) => void</code> | |
|
||||
| [info](./kibana-plugin-server.savedobjectsmigrationlogger.info.md) | <code>(msg: string) => void</code> | |
|
||||
| [warning](./kibana-plugin-server.savedobjectsmigrationlogger.warning.md) | <code>(msg: string) => void</code> | |
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [kibana-plugin-server](./kibana-plugin-server.md) > [SavedObjectsMigrationLogger](./kibana-plugin-server.savedobjectsmigrationlogger.md) > [warning](./kibana-plugin-server.savedobjectsmigrationlogger.warning.md)
|
||||
|
||||
## SavedObjectsMigrationLogger.warning property
|
||||
|
||||
<b>Signature:</b>
|
||||
|
||||
```typescript
|
||||
warning: (msg: string) => void;
|
||||
```
|
|
@ -91,11 +91,12 @@ export {
|
|||
SavedObjectsBulkGetObject,
|
||||
SavedObjectsBulkResponse,
|
||||
SavedObjectsClient,
|
||||
SavedObjectsCreateOptions,
|
||||
SavedObjectsClientWrapperFactory,
|
||||
SavedObjectsClientWrapperOptions,
|
||||
SavedObjectsCreateOptions,
|
||||
SavedObjectsErrorHelpers,
|
||||
SavedObjectsFindResponse,
|
||||
SavedObjectsMigrationLogger,
|
||||
SavedObjectsRawDoc,
|
||||
SavedObjectsSchema,
|
||||
SavedObjectsSerializer,
|
||||
|
|
|
@ -24,3 +24,5 @@ export { SavedObjectsSchema } from './schema';
|
|||
export { SavedObjectsManagement } from './management';
|
||||
|
||||
export { SavedObjectsSerializer, RawDoc as SavedObjectsRawDoc } from './serialization';
|
||||
|
||||
export { SavedObjectsMigrationLogger } from './migrations/core/migration_logger';
|
||||
|
|
|
@ -66,9 +66,12 @@ import cloneDeep from 'lodash.clonedeep';
|
|||
import Semver from 'semver';
|
||||
import { RawSavedObjectDoc } from '../../serialization';
|
||||
import { SavedObjectsMigrationVersion } from '../../types';
|
||||
import { LogFn, Logger, MigrationLogger } from './migration_logger';
|
||||
import { LogFn, SavedObjectsMigrationLogger, MigrationLogger } from './migration_logger';
|
||||
|
||||
export type TransformFn = (doc: RawSavedObjectDoc, log?: Logger) => RawSavedObjectDoc;
|
||||
export type TransformFn = (
|
||||
doc: RawSavedObjectDoc,
|
||||
log?: SavedObjectsMigrationLogger
|
||||
) => RawSavedObjectDoc;
|
||||
|
||||
type ValidateDoc = (doc: RawSavedObjectDoc) => void;
|
||||
|
||||
|
@ -204,7 +207,10 @@ function validateMigrationDefinition(migrations: MigrationDefinition) {
|
|||
* From: { type: { version: fn } }
|
||||
* To: { type: { latestVersion: string, transforms: [{ version: string, transform: fn }] } }
|
||||
*/
|
||||
function buildActiveMigrations(migrations: MigrationDefinition, log: Logger): ActiveMigrations {
|
||||
function buildActiveMigrations(
|
||||
migrations: MigrationDefinition,
|
||||
log: SavedObjectsMigrationLogger
|
||||
): ActiveMigrations {
|
||||
return _.mapValues(migrations, (versions, prop) => {
|
||||
const transforms = Object.entries(versions)
|
||||
.map(([version, transform]) => ({
|
||||
|
@ -293,7 +299,12 @@ function markAsUpToDate(doc: RawSavedObjectDoc, migrations: ActiveMigrations) {
|
|||
* If a specific transform function fails, this tacks on a bit of information
|
||||
* about the document and transform that caused the failure.
|
||||
*/
|
||||
function wrapWithTry(version: string, prop: string, transform: TransformFn, log: Logger) {
|
||||
function wrapWithTry(
|
||||
version: string,
|
||||
prop: string,
|
||||
transform: TransformFn,
|
||||
log: SavedObjectsMigrationLogger
|
||||
) {
|
||||
return function tryTransformDoc(doc: RawSavedObjectDoc) {
|
||||
try {
|
||||
const result = transform(doc, log);
|
||||
|
|
|
@ -30,7 +30,7 @@ import { buildActiveMappings } from './build_active_mappings';
|
|||
import { CallCluster } from './call_cluster';
|
||||
import { VersionedTransformer } from './document_migrator';
|
||||
import { fetchInfo, FullIndexInfo } from './elastic_index';
|
||||
import { LogFn, Logger, MigrationLogger } from './migration_logger';
|
||||
import { LogFn, SavedObjectsMigrationLogger, MigrationLogger } from './migration_logger';
|
||||
|
||||
export interface MigrationOpts {
|
||||
batchSize: number;
|
||||
|
@ -57,7 +57,7 @@ export interface Context {
|
|||
source: FullIndexInfo;
|
||||
dest: FullIndexInfo;
|
||||
documentMigrator: VersionedTransformer;
|
||||
log: Logger;
|
||||
log: SavedObjectsMigrationLogger;
|
||||
batchSize: number;
|
||||
pollInterval: number;
|
||||
scrollDuration: string;
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
*/
|
||||
|
||||
import _ from 'lodash';
|
||||
import { Logger } from './migration_logger';
|
||||
import { SavedObjectsMigrationLogger } from './migration_logger';
|
||||
|
||||
const DEFAULT_POLL_INTERVAL = 15000;
|
||||
|
||||
|
@ -52,7 +52,7 @@ export type MigrationResult =
|
|||
interface Opts {
|
||||
runMigration: () => Promise<MigrationResult>;
|
||||
isMigrated: () => Promise<boolean>;
|
||||
log: Logger;
|
||||
log: SavedObjectsMigrationLogger;
|
||||
pollInterval?: number;
|
||||
}
|
||||
|
||||
|
@ -86,7 +86,7 @@ export async function coordinateMigration(opts: Opts): Promise<MigrationResult>
|
|||
* and is the cue for us to fall into a polling loop, waiting for some
|
||||
* other Kibana instance to complete the migration.
|
||||
*/
|
||||
function handleIndexExists(error: any, log: Logger) {
|
||||
function handleIndexExists(error: any, log: SavedObjectsMigrationLogger) {
|
||||
const isIndexExistsError =
|
||||
_.get(error, 'body.error.type') === 'resource_already_exists_exception';
|
||||
if (!isIndexExistsError) {
|
||||
|
|
|
@ -24,13 +24,14 @@
|
|||
|
||||
export type LogFn = (path: string[], message: string) => void;
|
||||
|
||||
export interface Logger {
|
||||
/** @public */
|
||||
export interface SavedObjectsMigrationLogger {
|
||||
debug: (msg: string) => void;
|
||||
info: (msg: string) => void;
|
||||
warning: (msg: string) => void;
|
||||
}
|
||||
|
||||
export class MigrationLogger implements Logger {
|
||||
export class MigrationLogger implements SavedObjectsMigrationLogger {
|
||||
private log: LogFn;
|
||||
|
||||
constructor(log: LogFn) {
|
||||
|
|
|
@ -620,6 +620,16 @@ export interface SavedObjectsFindResponse<T extends SavedObjectAttributes = any>
|
|||
total: number;
|
||||
}
|
||||
|
||||
// @public (undocumented)
|
||||
export interface SavedObjectsMigrationLogger {
|
||||
// (undocumented)
|
||||
debug: (msg: string) => void;
|
||||
// (undocumented)
|
||||
info: (msg: string) => void;
|
||||
// (undocumented)
|
||||
warning: (msg: string) => void;
|
||||
}
|
||||
|
||||
// @public
|
||||
export interface SavedObjectsMigrationVersion {
|
||||
// (undocumented)
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { Logger } from 'src/core/server/saved_objects/migrations/core/migration_logger';
|
||||
import { SavedObjectsMigrationLogger } from 'src/core/server';
|
||||
import { DashboardDoc730ToLatest, DashboardDoc700To720 } from './types';
|
||||
import { isDashboardDoc } from './is_dashboard_doc';
|
||||
import { moveFiltersToQuery } from './move_filters_to_query';
|
||||
|
@ -28,7 +28,7 @@ export function migrations730(
|
|||
[key: string]: unknown;
|
||||
}
|
||||
| DashboardDoc700To720,
|
||||
logger: Logger
|
||||
logger: SavedObjectsMigrationLogger
|
||||
): DashboardDoc730ToLatest | { [key: string]: unknown } {
|
||||
if (!isDashboardDoc(doc)) {
|
||||
// NOTE: we should probably throw an error here... but for now following suit and in the
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue