本文整理汇总了TypeScript中src/legacy/server/saved_objects/service/saved_objects_client.SavedObjectsClient.create方法的典型用法代码示例。如果您正苦于以下问题:TypeScript SavedObjectsClient.create方法的具体用法?TypeScript SavedObjectsClient.create怎么用?TypeScript SavedObjectsClient.create使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类src/legacy/server/saved_objects/service/saved_objects_client.SavedObjectsClient
的用法示例。
在下文中一共展示了SavedObjectsClient.create方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: async
const fetchDoc = async () => {
try {
// The IndexGroup enum value (a string) serves as the ID of the lock doc
return await client.get<ReindexOperation>(REINDEX_OP_TYPE, indexGroup);
} catch (e) {
if (e.isBoom && e.output.statusCode === 404) {
return await client.create<ReindexOperation>(
REINDEX_OP_TYPE,
{
indexName: null,
newIndexName: null,
locked: null,
status: null,
lastCompletedStep: null,
reindexTaskId: null,
reindexTaskPercComplete: null,
errorMessage: null,
runningReindexCount: 0,
} as any,
{ id: indexGroup }
);
} else {
throw e;
}
}
};
示例2: throwErrorIfTypeIsSpace
/**
* Persists an object
*
* @param {string} type
* @param {object} attributes
* @param {object} [options={}]
* @property {string} [options.id] - force id on creation, not recommended
* @property {boolean} [options.overwrite=false]
* @property {string} [options.namespace]
* @returns {promise} - { id, type, version, attributes }
*/
public async create<T extends SavedObjectAttributes>(
type: string,
attributes: T = {} as T,
options: CreateOptions = {}
) {
throwErrorIfTypeIsSpace(type);
throwErrorIfNamespaceSpecified(options);
return await this.client.create(type, attributes, {
...options,
namespace: getNamespace(this.spaceId),
});
}
示例3: moment
export const reindexActionsFactory = (
client: SavedObjectsClient,
callCluster: CallCluster
): ReindexActions => {
// ----- Internal functions
const isLocked = (reindexOp: ReindexSavedObject) => {
if (reindexOp.attributes.locked) {
const now = moment();
const lockedTime = moment(reindexOp.attributes.locked);
// If the object has been locked for more than the LOCK_WINDOW, assume the process that locked it died.
if (now.subtract(LOCK_WINDOW) < lockedTime) {
return true;
}
}
return false;
};
const acquireLock = async (reindexOp: ReindexSavedObject) => {
if (isLocked(reindexOp)) {
throw new Error(`Another Kibana process is currently modifying this reindex operation.`);
}
return client.update<ReindexOperation>(
REINDEX_OP_TYPE,
reindexOp.id,
{ ...reindexOp.attributes, locked: moment().format() },
{ version: reindexOp.version }
);
};
const releaseLock = (reindexOp: ReindexSavedObject) => {
return client.update<ReindexOperation>(
REINDEX_OP_TYPE,
reindexOp.id,
{ ...reindexOp.attributes, locked: null },
{ version: reindexOp.version }
);
};
// ----- Public interface
return {
async createReindexOp(indexName: string) {
return client.create<ReindexOperation>(REINDEX_OP_TYPE, {
indexName,
newIndexName: generateNewIndexName(indexName),
status: ReindexStatus.inProgress,
lastCompletedStep: ReindexStep.created,
locked: null,
reindexTaskId: null,
reindexTaskPercComplete: null,
errorMessage: null,
runningReindexCount: null,
});
},
deleteReindexOp(reindexOp: ReindexSavedObject) {
return client.delete(REINDEX_OP_TYPE, reindexOp.id);
},
async updateReindexOp(reindexOp: ReindexSavedObject, attrs: Partial<ReindexOperation> = {}) {
if (!isLocked(reindexOp)) {
throw new Error(`ReindexOperation must be locked before updating.`);
}
const newAttrs = { ...reindexOp.attributes, locked: moment().format(), ...attrs };
return client.update<ReindexOperation>(REINDEX_OP_TYPE, reindexOp.id, newAttrs, {
version: reindexOp.version,
});
},
async runWhileLocked(reindexOp, func) {
reindexOp = await acquireLock(reindexOp);
try {
reindexOp = await func(reindexOp);
} finally {
reindexOp = await releaseLock(reindexOp);
}
return reindexOp;
},
findReindexOperations(indexName: string) {
return client.find<ReindexOperation>({
type: REINDEX_OP_TYPE,
search: `"${indexName}"`,
searchFields: ['indexName'],
});
},
async findAllByStatus(status: ReindexStatus) {
const firstPage = await client.find<ReindexOperation>({
type: REINDEX_OP_TYPE,
search: status.toString(),
searchFields: ['status'],
});
if (firstPage.total === firstPage.saved_objects.length) {
return firstPage.saved_objects;
//.........这里部分代码省略.........