Merge pull request #26038 from backstage/nbs10/delete-backend-tasks-package
[NBS1.0] Mark `backend-tasks` as deprecated
This commit is contained in:
@@ -15,8 +15,8 @@ import { EntityProvider } from '@backstage/plugin-catalog-node';
|
||||
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
|
||||
import { LocationSpec } from '@backstage/plugin-catalog-common';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { TaskRunner } from '@backstage/backend-tasks';
|
||||
import { SchedulerService } from '@backstage/backend-plugin-api';
|
||||
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
|
||||
import { UrlReaderService } from '@backstage/backend-plugin-api';
|
||||
|
||||
// @public
|
||||
@@ -96,8 +96,8 @@ export class AwsS3EntityProvider implements EntityProvider {
|
||||
configRoot: Config,
|
||||
options: {
|
||||
logger: LoggerService;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
},
|
||||
): AwsS3EntityProvider[];
|
||||
// (undocumented)
|
||||
|
||||
+3
-3
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinitionConfig } from '@backstage/backend-plugin-api';
|
||||
|
||||
export interface Config {
|
||||
catalog?: {
|
||||
@@ -69,7 +69,7 @@ export interface Config {
|
||||
/**
|
||||
* (Optional) TaskScheduleDefinition for the refresh.
|
||||
*/
|
||||
schedule?: TaskScheduleDefinitionConfig;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
|
||||
}
|
||||
| {
|
||||
[name: string]: {
|
||||
@@ -97,7 +97,7 @@ export interface Config {
|
||||
/**
|
||||
* (Optional) TaskScheduleDefinition for the refresh.
|
||||
*/
|
||||
schedule?: TaskScheduleDefinitionConfig;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -59,7 +59,6 @@
|
||||
"@aws-sdk/types": "^3.347.0",
|
||||
"@backstage/backend-defaults": "workspace:^",
|
||||
"@backstage/backend-plugin-api": "workspace:^",
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/catalog-model": "workspace:^",
|
||||
"@backstage/config": "workspace:^",
|
||||
"@backstage/errors": "workspace:^",
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
|
||||
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
|
||||
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
|
||||
import { catalogModuleAwsS3EntityProvider } from './catalogModuleAwsS3EntityProvider';
|
||||
@@ -23,7 +23,7 @@ import { AwsS3EntityProvider } from '../providers';
|
||||
describe('catalogModuleAwsS3EntityProvider', () => {
|
||||
it('should register provider at the catalog extension point', async () => {
|
||||
let addedProviders: Array<AwsS3EntityProvider> | undefined;
|
||||
let usedSchedule: TaskScheduleDefinition | undefined;
|
||||
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
|
||||
|
||||
const extensionPoint = {
|
||||
addEntityProvider: (providers: any) => {
|
||||
|
||||
@@ -15,10 +15,10 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
PluginTaskScheduler,
|
||||
TaskInvocationDefinition,
|
||||
TaskRunner,
|
||||
} from '@backstage/backend-tasks';
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
SchedulerServiceTaskInvocationDefinition,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
|
||||
import { AwsS3EntityProvider } from './AwsS3EntityProvider';
|
||||
@@ -27,14 +27,14 @@ import 'aws-sdk-client-mock-jest';
|
||||
import { ListObjectsV2Command, S3Client } from '@aws-sdk/client-s3';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
class PersistingTaskRunner implements TaskRunner {
|
||||
private tasks: TaskInvocationDefinition[] = [];
|
||||
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
|
||||
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
|
||||
|
||||
getTasks() {
|
||||
return this.tasks;
|
||||
}
|
||||
|
||||
run(task: TaskInvocationDefinition): Promise<void> {
|
||||
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
|
||||
this.tasks.push(task);
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
@@ -117,7 +117,7 @@ describe('AwsS3EntityProvider', () => {
|
||||
if (scheduleInConfig) {
|
||||
schedulingConfig.scheduler = {
|
||||
createScheduledTaskRunner: (_: any) => schedule,
|
||||
} as unknown as PluginTaskScheduler;
|
||||
} as unknown as SchedulerService;
|
||||
} else {
|
||||
schedulingConfig.schedule = schedule;
|
||||
}
|
||||
@@ -392,7 +392,7 @@ describe('AwsS3EntityProvider', () => {
|
||||
it('fail with scheduler but no schedule config', () => {
|
||||
const scheduler = {
|
||||
createScheduledTaskRunner: (_: any) => jest.fn(),
|
||||
} as unknown as PluginTaskScheduler;
|
||||
} as unknown as SchedulerService;
|
||||
const config = new ConfigReader({
|
||||
catalog: {
|
||||
providers: {
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
|
||||
import { Config } from '@backstage/config';
|
||||
import { AwsS3Integration, ScmIntegrations } from '@backstage/integration';
|
||||
import {
|
||||
@@ -36,7 +35,11 @@ import {
|
||||
AwsCredentialsManager,
|
||||
DefaultAwsCredentialsManager,
|
||||
} from '@backstage/integration-aws-node';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
LoggerService,
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
|
||||
// TODO: event-based updates using S3 events (+ queue like SQS)?
|
||||
/**
|
||||
@@ -57,8 +60,8 @@ export class AwsS3EntityProvider implements EntityProvider {
|
||||
configRoot: Config,
|
||||
options: {
|
||||
logger: LoggerService;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
},
|
||||
): AwsS3EntityProvider[] {
|
||||
const providerConfigs = readAwsS3Configs(configRoot);
|
||||
@@ -107,7 +110,7 @@ export class AwsS3EntityProvider implements EntityProvider {
|
||||
private readonly integration: AwsS3Integration,
|
||||
private readonly awsCredentialsManager: AwsCredentialsManager,
|
||||
logger: LoggerService,
|
||||
taskRunner: TaskRunner,
|
||||
taskRunner: SchedulerServiceTaskRunner,
|
||||
) {
|
||||
this.logger = logger.child({
|
||||
target: this.getProviderName(),
|
||||
@@ -116,7 +119,9 @@ export class AwsS3EntityProvider implements EntityProvider {
|
||||
this.scheduleFn = this.createScheduleFn(taskRunner);
|
||||
}
|
||||
|
||||
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
|
||||
private createScheduleFn(
|
||||
taskRunner: SchedulerServiceTaskRunner,
|
||||
): () => Promise<void> {
|
||||
return async () => {
|
||||
const taskId = `${this.getProviderName()}:refresh`;
|
||||
return taskRunner.run({
|
||||
|
||||
@@ -14,9 +14,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { readTaskScheduleDefinitionFromConfig } from '@backstage/backend-tasks';
|
||||
import { Config } from '@backstage/config';
|
||||
import { AwsS3Config } from './types';
|
||||
import { readSchedulerServiceTaskScheduleDefinitionFromConfig } from '@backstage/backend-plugin-api';
|
||||
|
||||
const DEFAULT_PROVIDER_ID = 'default';
|
||||
|
||||
@@ -49,7 +49,9 @@ function readAwsS3Config(id: string, config: Config): AwsS3Config {
|
||||
const accountId = config.getOptionalString('accountId');
|
||||
|
||||
const schedule = config.has('schedule')
|
||||
? readTaskScheduleDefinitionFromConfig(config.getConfig('schedule'))
|
||||
? readSchedulerServiceTaskScheduleDefinitionFromConfig(
|
||||
config.getConfig('schedule'),
|
||||
)
|
||||
: undefined;
|
||||
|
||||
return {
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
|
||||
|
||||
export type AwsS3Config = {
|
||||
id: string;
|
||||
bucketName: string;
|
||||
prefix?: string;
|
||||
region?: string;
|
||||
schedule?: TaskScheduleDefinition;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinition;
|
||||
accountId?: string;
|
||||
};
|
||||
|
||||
@@ -10,9 +10,9 @@ import { EntityProvider } from '@backstage/plugin-catalog-node';
|
||||
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
|
||||
import { LocationSpec } from '@backstage/plugin-catalog-common';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { SchedulerService } from '@backstage/backend-plugin-api';
|
||||
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
|
||||
import { ScmIntegrationRegistry } from '@backstage/integration';
|
||||
import { TaskRunner } from '@backstage/backend-tasks';
|
||||
|
||||
// @public
|
||||
export class AzureDevOpsDiscoveryProcessor implements CatalogProcessor {
|
||||
@@ -46,8 +46,8 @@ export class AzureDevOpsEntityProvider implements EntityProvider {
|
||||
configRoot: Config,
|
||||
options: {
|
||||
logger: LoggerService;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
},
|
||||
): AzureDevOpsEntityProvider[];
|
||||
// (undocumented)
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinitionConfig } from '@backstage/backend-plugin-api';
|
||||
|
||||
export interface Config {
|
||||
catalog?: {
|
||||
@@ -52,7 +52,7 @@ export interface Config {
|
||||
/**
|
||||
* (Optional) TaskScheduleDefinition for the refresh.
|
||||
*/
|
||||
schedule?: TaskScheduleDefinitionConfig;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -52,7 +52,6 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-plugin-api": "workspace:^",
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/config": "workspace:^",
|
||||
"@backstage/integration": "workspace:^",
|
||||
"@backstage/plugin-catalog-common": "workspace:^",
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
|
||||
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
|
||||
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
|
||||
import { catalogModuleAzureDevOpsEntityProvider } from './catalogModuleAzureDevOpsEntityProvider';
|
||||
@@ -23,7 +23,7 @@ import { AzureDevOpsEntityProvider } from '../providers';
|
||||
describe('catalogModuleAzureDevOpsEntityProvider', () => {
|
||||
it('should register provider at the catalog extension point', async () => {
|
||||
let addedProviders: Array<AzureDevOpsEntityProvider> | undefined;
|
||||
let usedSchedule: TaskScheduleDefinition | undefined;
|
||||
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
|
||||
|
||||
const extensionPoint = {
|
||||
addEntityProvider: (providers: any) => {
|
||||
|
||||
+9
-9
@@ -15,10 +15,10 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
PluginTaskScheduler,
|
||||
TaskInvocationDefinition,
|
||||
TaskRunner,
|
||||
} from '@backstage/backend-tasks';
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
SchedulerServiceTaskInvocationDefinition,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
|
||||
import { CodeSearchResultItem } from '../lib';
|
||||
@@ -29,14 +29,14 @@ import { mockServices } from '@backstage/backend-test-utils';
|
||||
jest.mock('../lib');
|
||||
const mockCodeSearch = codeSearch as jest.MockedFunction<typeof codeSearch>;
|
||||
|
||||
class PersistingTaskRunner implements TaskRunner {
|
||||
private tasks: TaskInvocationDefinition[] = [];
|
||||
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
|
||||
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
|
||||
|
||||
getTasks() {
|
||||
return this.tasks;
|
||||
}
|
||||
|
||||
run(task: TaskInvocationDefinition): Promise<void> {
|
||||
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
|
||||
this.tasks.push(task);
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
@@ -83,7 +83,7 @@ describe('AzureDevOpsEntityProvider', () => {
|
||||
if (scheduleInConfig) {
|
||||
schedulingConfig.scheduler = {
|
||||
createScheduledTaskRunner: (_: any) => schedule,
|
||||
} as unknown as PluginTaskScheduler;
|
||||
} as unknown as SchedulerService;
|
||||
} else {
|
||||
schedulingConfig.schedule = schedule;
|
||||
}
|
||||
@@ -275,7 +275,7 @@ describe('AzureDevOpsEntityProvider', () => {
|
||||
it('fail with scheduler but no schedule config', () => {
|
||||
const scheduler = {
|
||||
createScheduledTaskRunner: (_: any) => jest.fn(),
|
||||
} as unknown as PluginTaskScheduler;
|
||||
} as unknown as SchedulerService;
|
||||
const config = new ConfigReader({
|
||||
catalog: {
|
||||
providers: {
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
|
||||
import { Config } from '@backstage/config';
|
||||
import {
|
||||
AzureDevOpsCredentialsProvider,
|
||||
@@ -32,7 +31,11 @@ import { readAzureDevOpsConfigs } from './config';
|
||||
import { AzureDevOpsConfig } from './types';
|
||||
import * as uuid from 'uuid';
|
||||
import { codeSearch, CodeSearchResultItem } from '../lib';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
LoggerService,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
|
||||
/**
|
||||
* Provider which discovers catalog files within an Azure DevOps repositories.
|
||||
@@ -50,8 +53,8 @@ export class AzureDevOpsEntityProvider implements EntityProvider {
|
||||
configRoot: Config,
|
||||
options: {
|
||||
logger: LoggerService;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
},
|
||||
): AzureDevOpsEntityProvider[] {
|
||||
const providerConfigs = readAzureDevOpsConfigs(configRoot);
|
||||
@@ -99,7 +102,7 @@ export class AzureDevOpsEntityProvider implements EntityProvider {
|
||||
private readonly integration: AzureIntegration,
|
||||
private readonly credentialsProvider: AzureDevOpsCredentialsProvider,
|
||||
logger: LoggerService,
|
||||
taskRunner: TaskRunner,
|
||||
taskRunner: SchedulerServiceTaskRunner,
|
||||
) {
|
||||
this.logger = logger.child({
|
||||
target: this.getProviderName(),
|
||||
@@ -108,7 +111,9 @@ export class AzureDevOpsEntityProvider implements EntityProvider {
|
||||
this.scheduleFn = this.createScheduleFn(taskRunner);
|
||||
}
|
||||
|
||||
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
|
||||
private createScheduleFn(
|
||||
taskRunner: SchedulerServiceTaskRunner,
|
||||
): () => Promise<void> {
|
||||
return async () => {
|
||||
const taskId = `${this.getProviderName()}:refresh`;
|
||||
return taskRunner.run({
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { readTaskScheduleDefinitionFromConfig } from '@backstage/backend-tasks';
|
||||
import { readSchedulerServiceTaskScheduleDefinitionFromConfig } from '@backstage/backend-plugin-api';
|
||||
import { Config } from '@backstage/config';
|
||||
import { AzureDevOpsConfig } from './types';
|
||||
|
||||
@@ -45,7 +45,9 @@ function readAzureDevOpsConfig(id: string, config: Config): AzureDevOpsConfig {
|
||||
const path = config.getOptionalString('path') || '/catalog-info.yaml';
|
||||
|
||||
const schedule = config.has('schedule')
|
||||
? readTaskScheduleDefinitionFromConfig(config.getConfig('schedule'))
|
||||
? readSchedulerServiceTaskScheduleDefinitionFromConfig(
|
||||
config.getConfig('schedule'),
|
||||
)
|
||||
: undefined;
|
||||
|
||||
return {
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
|
||||
|
||||
export type AzureDevOpsConfig = {
|
||||
id: string;
|
||||
@@ -24,5 +24,5 @@ export type AzureDevOpsConfig = {
|
||||
repository: string;
|
||||
branch?: string;
|
||||
path: string;
|
||||
schedule?: TaskScheduleDefinition;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinition;
|
||||
};
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
"dependencies": {
|
||||
"@backstage/backend-openapi-utils": "workspace:^",
|
||||
"@backstage/backend-plugin-api": "workspace:^",
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/catalog-model": "workspace:^",
|
||||
"@backstage/config": "workspace:^",
|
||||
"@backstage/errors": "workspace:^",
|
||||
|
||||
+7
-4
@@ -37,10 +37,11 @@ import {
|
||||
AuthService,
|
||||
DiscoveryService,
|
||||
LoggerService,
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import * as uuid from 'uuid';
|
||||
import lodash from 'lodash';
|
||||
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
|
||||
|
||||
const HTTP_VERBS: (keyof PathItemObject)[] = [
|
||||
'get',
|
||||
@@ -163,7 +164,7 @@ export class InternalOpenApiDocumentationProvider implements EntityProvider {
|
||||
public readonly discovery: DiscoveryService,
|
||||
public readonly logger: LoggerService,
|
||||
public readonly auth: AuthService,
|
||||
taskRunner: TaskRunner,
|
||||
taskRunner: SchedulerServiceTaskRunner,
|
||||
) {
|
||||
this.scheduleFn = this.createScheduleFn(taskRunner);
|
||||
}
|
||||
@@ -173,7 +174,7 @@ export class InternalOpenApiDocumentationProvider implements EntityProvider {
|
||||
options: {
|
||||
discovery: DiscoveryService;
|
||||
logger: LoggerService;
|
||||
schedule: PluginTaskScheduler;
|
||||
schedule: SchedulerService;
|
||||
auth: AuthService;
|
||||
},
|
||||
) {
|
||||
@@ -204,7 +205,9 @@ export class InternalOpenApiDocumentationProvider implements EntityProvider {
|
||||
return await this.scheduleFn();
|
||||
}
|
||||
|
||||
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
|
||||
private createScheduleFn(
|
||||
taskRunner: SchedulerServiceTaskRunner,
|
||||
): () => Promise<void> {
|
||||
return async () => {
|
||||
const taskId = `${this.getProviderName()}:refresh`;
|
||||
return taskRunner.run({
|
||||
|
||||
@@ -10,8 +10,8 @@ import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
|
||||
import { Events } from '@backstage/plugin-bitbucket-cloud-common';
|
||||
import { EventsService } from '@backstage/plugin-events-node';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { TaskRunner } from '@backstage/backend-tasks';
|
||||
import { SchedulerService } from '@backstage/backend-plugin-api';
|
||||
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
|
||||
import { TokenManager } from '@backstage/backend-common';
|
||||
|
||||
// @public
|
||||
@@ -25,8 +25,8 @@ export class BitbucketCloudEntityProvider implements EntityProvider {
|
||||
catalogApi?: CatalogApi;
|
||||
events?: EventsService;
|
||||
logger: LoggerService;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
tokenManager?: TokenManager;
|
||||
},
|
||||
): BitbucketCloudEntityProvider[];
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinitionConfig } from '@backstage/backend-plugin-api';
|
||||
|
||||
export interface Config {
|
||||
catalog?: {
|
||||
@@ -58,7 +58,7 @@ export interface Config {
|
||||
/**
|
||||
* (Optional) TaskScheduleDefinition for the discovery.
|
||||
*/
|
||||
schedule?: TaskScheduleDefinitionConfig;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
|
||||
}
|
||||
| {
|
||||
[name: string]: {
|
||||
@@ -91,7 +91,7 @@ export interface Config {
|
||||
/**
|
||||
* (Optional) TaskScheduleDefinition for the discovery.
|
||||
*/
|
||||
schedule?: TaskScheduleDefinitionConfig;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -53,7 +53,6 @@
|
||||
"dependencies": {
|
||||
"@backstage/backend-common": "workspace:^",
|
||||
"@backstage/backend-plugin-api": "workspace:^",
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/catalog-client": "workspace:^",
|
||||
"@backstage/catalog-model": "workspace:^",
|
||||
"@backstage/config": "workspace:^",
|
||||
|
||||
+5
-3
@@ -14,8 +14,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { createServiceFactory } from '@backstage/backend-plugin-api';
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import {
|
||||
createServiceFactory,
|
||||
SchedulerServiceTaskScheduleDefinition,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { startTestBackend, mockServices } from '@backstage/backend-test-utils';
|
||||
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
|
||||
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
|
||||
@@ -35,7 +37,7 @@ describe('catalogModuleBitbucketCloudEntityProvider', () => {
|
||||
},
|
||||
});
|
||||
let addedProviders: Array<BitbucketCloudEntityProvider> | undefined;
|
||||
let usedSchedule: TaskScheduleDefinition | undefined;
|
||||
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
|
||||
|
||||
const catalogExtensionPointImpl = {
|
||||
addEntityProvider: (providers: any) => {
|
||||
|
||||
+9
-9
@@ -16,10 +16,10 @@
|
||||
|
||||
import { TokenManager } from '@backstage/backend-common';
|
||||
import {
|
||||
PluginTaskScheduler,
|
||||
TaskInvocationDefinition,
|
||||
TaskRunner,
|
||||
} from '@backstage/backend-tasks';
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskInvocationDefinition,
|
||||
SchedulerServiceTaskRunner,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
mockServices,
|
||||
registerMswTestHooks,
|
||||
@@ -40,14 +40,14 @@ import {
|
||||
BitbucketCloudEntityProvider,
|
||||
} from './BitbucketCloudEntityProvider';
|
||||
|
||||
class PersistingTaskRunner implements TaskRunner {
|
||||
private tasks: TaskInvocationDefinition[] = [];
|
||||
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
|
||||
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
|
||||
|
||||
getTasks() {
|
||||
return this.tasks;
|
||||
}
|
||||
|
||||
run(task: TaskInvocationDefinition): Promise<void> {
|
||||
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
|
||||
this.tasks.push(task);
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
@@ -190,7 +190,7 @@ describe('BitbucketCloudEntityProvider', () => {
|
||||
});
|
||||
|
||||
it('fail with scheduler but no schedule config', () => {
|
||||
const scheduler = jest.fn() as unknown as PluginTaskScheduler;
|
||||
const scheduler = jest.fn() as unknown as SchedulerService;
|
||||
const config = new ConfigReader({
|
||||
catalog: {
|
||||
providers: {
|
||||
@@ -214,7 +214,7 @@ describe('BitbucketCloudEntityProvider', () => {
|
||||
it('single simple provider config with schedule in config', () => {
|
||||
const scheduler = {
|
||||
createScheduledTaskRunner: (_: any) => jest.fn(),
|
||||
} as unknown as PluginTaskScheduler;
|
||||
} as unknown as SchedulerService;
|
||||
const config = new ConfigReader({
|
||||
catalog: {
|
||||
providers: {
|
||||
|
||||
+11
-6
@@ -15,8 +15,11 @@
|
||||
*/
|
||||
|
||||
import { TokenManager } from '@backstage/backend-common';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
|
||||
import {
|
||||
LoggerService,
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { CatalogApi } from '@backstage/catalog-client';
|
||||
import { LocationEntity } from '@backstage/catalog-model';
|
||||
import { Config } from '@backstage/config';
|
||||
@@ -80,8 +83,8 @@ export class BitbucketCloudEntityProvider implements EntityProvider {
|
||||
catalogApi?: CatalogApi;
|
||||
events?: EventsService;
|
||||
logger: LoggerService;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
tokenManager?: TokenManager;
|
||||
},
|
||||
): BitbucketCloudEntityProvider[] {
|
||||
@@ -124,7 +127,7 @@ export class BitbucketCloudEntityProvider implements EntityProvider {
|
||||
config: BitbucketCloudEntityProviderConfig,
|
||||
integration: BitbucketCloudIntegration,
|
||||
logger: LoggerService,
|
||||
taskRunner: TaskRunner,
|
||||
taskRunner: SchedulerServiceTaskRunner,
|
||||
catalogApi?: CatalogApi,
|
||||
events?: EventsService,
|
||||
tokenManager?: TokenManager,
|
||||
@@ -140,7 +143,9 @@ export class BitbucketCloudEntityProvider implements EntityProvider {
|
||||
this.tokenManager = tokenManager;
|
||||
}
|
||||
|
||||
private createScheduleFn(schedule: TaskRunner): () => Promise<void> {
|
||||
private createScheduleFn(
|
||||
schedule: SchedulerServiceTaskRunner,
|
||||
): () => Promise<void> {
|
||||
return async () => {
|
||||
const taskId = this.getTaskId();
|
||||
return schedule.run({
|
||||
|
||||
+7
-5
@@ -15,9 +15,9 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
readTaskScheduleDefinitionFromConfig,
|
||||
TaskScheduleDefinition,
|
||||
} from '@backstage/backend-tasks';
|
||||
SchedulerServiceTaskScheduleDefinition,
|
||||
readSchedulerServiceTaskScheduleDefinitionFromConfig,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { Config } from '@backstage/config';
|
||||
|
||||
const DEFAULT_CATALOG_PATH = '/catalog-info.yaml';
|
||||
@@ -31,7 +31,7 @@ export type BitbucketCloudEntityProviderConfig = {
|
||||
projectKey?: RegExp;
|
||||
repoSlug?: RegExp;
|
||||
};
|
||||
schedule?: TaskScheduleDefinition;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinition;
|
||||
};
|
||||
|
||||
export function readProviderConfigs(
|
||||
@@ -67,7 +67,9 @@ function readProviderConfig(
|
||||
const repoSlugPattern = config.getOptionalString('filters.repoSlug');
|
||||
|
||||
const schedule = config.has('schedule')
|
||||
? readTaskScheduleDefinitionFromConfig(config.getConfig('schedule'))
|
||||
? readSchedulerServiceTaskScheduleDefinitionFromConfig(
|
||||
config.getConfig('schedule'),
|
||||
)
|
||||
: undefined;
|
||||
|
||||
return {
|
||||
|
||||
@@ -10,9 +10,9 @@ import { EntityProvider } from '@backstage/plugin-catalog-node';
|
||||
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
|
||||
import { LocationSpec } from '@backstage/plugin-catalog-node';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { Response as Response_2 } from 'node-fetch';
|
||||
import { TaskRunner } from '@backstage/backend-tasks';
|
||||
import { SchedulerService } from '@backstage/backend-plugin-api';
|
||||
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
|
||||
|
||||
// @public
|
||||
export class BitbucketServerClient {
|
||||
@@ -57,8 +57,8 @@ export class BitbucketServerEntityProvider implements EntityProvider {
|
||||
options: {
|
||||
logger: LoggerService;
|
||||
parser?: BitbucketServerLocationParser;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
},
|
||||
): BitbucketServerEntityProvider[];
|
||||
// (undocumented)
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinitionConfig } from '@backstage/backend-plugin-api';
|
||||
|
||||
export interface Config {
|
||||
catalog?: {
|
||||
@@ -54,7 +54,7 @@ export interface Config {
|
||||
/**
|
||||
* (Optional) TaskScheduleDefinition for the refresh.
|
||||
*/
|
||||
schedule?: TaskScheduleDefinitionConfig;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
|
||||
}
|
||||
| {
|
||||
[name: string]: {
|
||||
@@ -86,7 +86,7 @@ export interface Config {
|
||||
/**
|
||||
* (Optional) TaskScheduleDefinition for the refresh.
|
||||
*/
|
||||
schedule?: TaskScheduleDefinitionConfig;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -51,7 +51,6 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-plugin-api": "workspace:^",
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/catalog-model": "workspace:^",
|
||||
"@backstage/config": "workspace:^",
|
||||
"@backstage/errors": "workspace:^",
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
|
||||
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
|
||||
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
|
||||
import { catalogModuleBitbucketServerEntityProvider } from './catalogModuleBitbucketServerEntityProvider';
|
||||
@@ -23,7 +23,7 @@ import { BitbucketServerEntityProvider } from '../providers';
|
||||
describe('catalogModuleBitbucketServerEntityProvider', () => {
|
||||
it('should register provider at the catalog extension point', async () => {
|
||||
let addedProviders: Array<BitbucketServerEntityProvider> | undefined;
|
||||
let usedSchedule: TaskScheduleDefinition | undefined;
|
||||
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
|
||||
|
||||
const extensionPoint = {
|
||||
addEntityProvider: (providers: any) => {
|
||||
|
||||
+9
-9
@@ -15,10 +15,10 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
PluginTaskScheduler,
|
||||
TaskInvocationDefinition,
|
||||
TaskRunner,
|
||||
} from '@backstage/backend-tasks';
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
SchedulerServiceTaskInvocationDefinition,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
mockServices,
|
||||
registerMswTestHooks,
|
||||
@@ -30,14 +30,14 @@ import { setupServer } from 'msw/node';
|
||||
import { BitbucketServerEntityProvider } from './BitbucketServerEntityProvider';
|
||||
import { BitbucketServerPagedResponse } from '../lib';
|
||||
|
||||
class PersistingTaskRunner implements TaskRunner {
|
||||
private tasks: TaskInvocationDefinition[] = [];
|
||||
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
|
||||
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
|
||||
|
||||
getTasks() {
|
||||
return this.tasks;
|
||||
}
|
||||
|
||||
run(task: TaskInvocationDefinition): Promise<void> {
|
||||
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
|
||||
this.tasks.push(task);
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
@@ -412,7 +412,7 @@ describe('BitbucketServerEntityProvider', () => {
|
||||
it('fail with scheduler but no schedule config', () => {
|
||||
const scheduler = {
|
||||
createScheduledTaskRunner: (_: any) => jest.fn(),
|
||||
} as unknown as PluginTaskScheduler;
|
||||
} as unknown as SchedulerService;
|
||||
const config = new ConfigReader({
|
||||
catalog: {
|
||||
providers: {
|
||||
@@ -469,7 +469,7 @@ describe('BitbucketServerEntityProvider', () => {
|
||||
const schedule = new PersistingTaskRunner();
|
||||
const scheduler = {
|
||||
createScheduledTaskRunner: (_: any) => schedule,
|
||||
} as unknown as PluginTaskScheduler;
|
||||
} as unknown as SchedulerService;
|
||||
const entityProviderConnection: EntityProviderConnection = {
|
||||
applyMutation: jest.fn(),
|
||||
refresh: jest.fn(),
|
||||
|
||||
+11
-6
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
|
||||
import { Entity } from '@backstage/catalog-model';
|
||||
import { Config } from '@backstage/config';
|
||||
import { InputError } from '@backstage/errors';
|
||||
@@ -36,7 +35,11 @@ import {
|
||||
BitbucketServerLocationParser,
|
||||
defaultBitbucketServerLocationParser,
|
||||
} from './BitbucketServerLocationParser';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
LoggerService,
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
|
||||
/**
|
||||
* Discovers catalog files located in Bitbucket Server.
|
||||
@@ -59,8 +62,8 @@ export class BitbucketServerEntityProvider implements EntityProvider {
|
||||
options: {
|
||||
logger: LoggerService;
|
||||
parser?: BitbucketServerLocationParser;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
},
|
||||
): BitbucketServerEntityProvider[] {
|
||||
const integrations = ScmIntegrations.fromConfig(config);
|
||||
@@ -103,7 +106,7 @@ export class BitbucketServerEntityProvider implements EntityProvider {
|
||||
config: BitbucketServerEntityProviderConfig,
|
||||
integration: BitbucketServerIntegration,
|
||||
logger: LoggerService,
|
||||
taskRunner: TaskRunner,
|
||||
taskRunner: SchedulerServiceTaskRunner,
|
||||
parser?: BitbucketServerLocationParser,
|
||||
) {
|
||||
this.integration = integration;
|
||||
@@ -115,7 +118,9 @@ export class BitbucketServerEntityProvider implements EntityProvider {
|
||||
this.scheduleFn = this.createScheduleFn(taskRunner);
|
||||
}
|
||||
|
||||
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
|
||||
private createScheduleFn(
|
||||
taskRunner: SchedulerServiceTaskRunner,
|
||||
): () => Promise<void> {
|
||||
return async () => {
|
||||
const taskId = `${this.getProviderName()}:refresh`;
|
||||
return taskRunner.run({
|
||||
|
||||
+7
-5
@@ -15,9 +15,9 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
readTaskScheduleDefinitionFromConfig,
|
||||
TaskScheduleDefinition,
|
||||
} from '@backstage/backend-tasks';
|
||||
SchedulerServiceTaskScheduleDefinition,
|
||||
readSchedulerServiceTaskScheduleDefinitionFromConfig,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { Config } from '@backstage/config';
|
||||
|
||||
const DEFAULT_CATALOG_PATH = '/catalog-info.yaml';
|
||||
@@ -32,7 +32,7 @@ export type BitbucketServerEntityProviderConfig = {
|
||||
repoSlug?: RegExp;
|
||||
skipArchivedRepos?: boolean;
|
||||
};
|
||||
schedule?: TaskScheduleDefinition;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinition;
|
||||
};
|
||||
|
||||
export function readProviderConfigs(
|
||||
@@ -70,7 +70,9 @@ function readProviderConfig(
|
||||
);
|
||||
|
||||
const schedule = config.has('schedule')
|
||||
? readTaskScheduleDefinitionFromConfig(config.getConfig('schedule'))
|
||||
? readSchedulerServiceTaskScheduleDefinitionFromConfig(
|
||||
config.getConfig('schedule'),
|
||||
)
|
||||
: undefined;
|
||||
|
||||
return {
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinitionConfig } from '@backstage/backend-plugin-api';
|
||||
|
||||
export interface Config {
|
||||
catalog?: {
|
||||
@@ -37,7 +37,7 @@ export interface Config {
|
||||
/**
|
||||
* (Optional) TaskScheduleDefinition for the refresh.
|
||||
*/
|
||||
schedule: TaskScheduleDefinitionConfig;
|
||||
schedule: SchedulerServiceTaskScheduleDefinitionConfig;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -52,7 +52,6 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-plugin-api": "workspace:^",
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/catalog-model": "workspace:^",
|
||||
"@backstage/config": "workspace:^",
|
||||
"@backstage/plugin-catalog-node": "workspace:^",
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
|
||||
import { GkeEntityProvider } from './GkeEntityProvider';
|
||||
import { TaskRunner } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
|
||||
import * as container from '@google-cloud/container';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
|
||||
@@ -30,7 +30,7 @@ describe('GkeEntityProvider', () => {
|
||||
const taskRunner = {
|
||||
createScheduleFn: jest.fn(),
|
||||
run: jest.fn(),
|
||||
} as TaskRunner;
|
||||
} as SchedulerServiceTaskRunner;
|
||||
const schedulerMock = {
|
||||
createScheduledTaskRunner: jest.fn(),
|
||||
} as any;
|
||||
|
||||
@@ -13,10 +13,6 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import {
|
||||
readTaskScheduleDefinitionFromConfig,
|
||||
TaskRunner,
|
||||
} from '@backstage/backend-tasks';
|
||||
import {
|
||||
DeferredEntity,
|
||||
EntityProvider,
|
||||
@@ -31,7 +27,12 @@ import {
|
||||
ANNOTATION_KUBERNETES_DASHBOARD_PARAMETERS,
|
||||
} from '@backstage/plugin-kubernetes-common';
|
||||
import { Config } from '@backstage/config';
|
||||
import { LoggerService, SchedulerService } from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
LoggerService,
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
readSchedulerServiceTaskScheduleDefinitionFromConfig,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
ANNOTATION_LOCATION,
|
||||
ANNOTATION_ORIGIN_LOCATION,
|
||||
@@ -51,7 +52,7 @@ export class GkeEntityProvider implements EntityProvider {
|
||||
|
||||
private constructor(
|
||||
logger: LoggerService,
|
||||
taskRunner: TaskRunner,
|
||||
taskRunner: SchedulerServiceTaskRunner,
|
||||
gkeParents: string[],
|
||||
clusterManagerClient: container.v1.ClusterManagerClient,
|
||||
) {
|
||||
@@ -90,7 +91,7 @@ export class GkeEntityProvider implements EntityProvider {
|
||||
clusterManagerClient: container.v1.ClusterManagerClient;
|
||||
}) {
|
||||
const gkeProviderConfig = config.getConfig('catalog.providers.gcp.gke');
|
||||
const schedule = readTaskScheduleDefinitionFromConfig(
|
||||
const schedule = readSchedulerServiceTaskScheduleDefinitionFromConfig(
|
||||
gkeProviderConfig.getConfig('schedule'),
|
||||
);
|
||||
return new GkeEntityProvider(
|
||||
@@ -172,7 +173,9 @@ export class GkeEntityProvider implements EntityProvider {
|
||||
};
|
||||
}
|
||||
|
||||
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
|
||||
private createScheduleFn(
|
||||
taskRunner: SchedulerServiceTaskRunner,
|
||||
): () => Promise<void> {
|
||||
return async () => {
|
||||
const taskId = `${this.getProviderName()}:refresh`;
|
||||
return taskRunner.run({
|
||||
|
||||
@@ -7,8 +7,8 @@ import { Config } from '@backstage/config';
|
||||
import { EntityProvider } from '@backstage/plugin-catalog-node';
|
||||
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { TaskRunner } from '@backstage/backend-tasks';
|
||||
import { SchedulerService } from '@backstage/backend-plugin-api';
|
||||
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
|
||||
|
||||
// @public (undocumented)
|
||||
export class GerritEntityProvider implements EntityProvider {
|
||||
@@ -19,8 +19,8 @@ export class GerritEntityProvider implements EntityProvider {
|
||||
configRoot: Config,
|
||||
options: {
|
||||
logger: LoggerService;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
},
|
||||
): GerritEntityProvider[];
|
||||
// (undocumented)
|
||||
|
||||
@@ -48,7 +48,6 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-plugin-api": "workspace:^",
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/config": "workspace:^",
|
||||
"@backstage/errors": "workspace:^",
|
||||
"@backstage/integration": "workspace:^",
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
|
||||
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
|
||||
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
|
||||
import { catalogModuleGerritEntityProvider } from './catalogModuleGerritEntityProvider';
|
||||
@@ -23,7 +23,7 @@ import { GerritEntityProvider } from '../providers/GerritEntityProvider';
|
||||
describe('catalogModuleGerritEntityProvider', () => {
|
||||
it('should register provider at the catalog extension point', async () => {
|
||||
let addedProviders: Array<GerritEntityProvider> | undefined;
|
||||
let usedSchedule: TaskScheduleDefinition | undefined;
|
||||
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
|
||||
|
||||
const extensionPoint = {
|
||||
addEntityProvider: (providers: any) => {
|
||||
|
||||
@@ -15,10 +15,10 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
PluginTaskScheduler,
|
||||
TaskInvocationDefinition,
|
||||
TaskRunner,
|
||||
} from '@backstage/backend-tasks';
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
SchedulerServiceTaskInvocationDefinition,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
mockServices,
|
||||
registerMswTestHooks,
|
||||
@@ -41,14 +41,14 @@ const getJsonFixture = (fileName: string) =>
|
||||
),
|
||||
);
|
||||
|
||||
class PersistingTaskRunner implements TaskRunner {
|
||||
private tasks: TaskInvocationDefinition[] = [];
|
||||
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
|
||||
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
|
||||
|
||||
getTasks() {
|
||||
return this.tasks;
|
||||
}
|
||||
|
||||
run(task: TaskInvocationDefinition): Promise<void> {
|
||||
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
|
||||
this.tasks.push(task);
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
@@ -228,7 +228,7 @@ describe('GerritEntityProvider', () => {
|
||||
it('fail with scheduler but no schedule config', () => {
|
||||
const scheduler = {
|
||||
createScheduledTaskRunner: (_: any) => jest.fn(),
|
||||
} as unknown as PluginTaskScheduler;
|
||||
} as unknown as SchedulerService;
|
||||
expect(() =>
|
||||
GerritEntityProvider.fromConfig(config, {
|
||||
logger,
|
||||
@@ -270,7 +270,7 @@ describe('GerritEntityProvider', () => {
|
||||
});
|
||||
const scheduler = {
|
||||
createScheduledTaskRunner: (_: any) => schedule,
|
||||
} as unknown as PluginTaskScheduler;
|
||||
} as unknown as SchedulerService;
|
||||
|
||||
const repoBuffer = fs.readFileSync(
|
||||
path.resolve(__dirname, '__fixtures__/listProjectsBody.txt'),
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
|
||||
import { Config } from '@backstage/config';
|
||||
import { InputError } from '@backstage/errors';
|
||||
import {
|
||||
@@ -35,7 +34,11 @@ import * as uuid from 'uuid';
|
||||
|
||||
import { readGerritConfigs } from './config';
|
||||
import { GerritProjectQueryResult, GerritProviderConfig } from './types';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
LoggerService,
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
|
||||
/** @public */
|
||||
export class GerritEntityProvider implements EntityProvider {
|
||||
@@ -49,8 +52,8 @@ export class GerritEntityProvider implements EntityProvider {
|
||||
configRoot: Config,
|
||||
options: {
|
||||
logger: LoggerService;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
},
|
||||
): GerritEntityProvider[] {
|
||||
if (!options.schedule && !options.scheduler) {
|
||||
@@ -95,7 +98,7 @@ export class GerritEntityProvider implements EntityProvider {
|
||||
config: GerritProviderConfig,
|
||||
integration: GerritIntegration,
|
||||
logger: LoggerService,
|
||||
taskRunner: TaskRunner,
|
||||
taskRunner: SchedulerServiceTaskRunner,
|
||||
) {
|
||||
this.config = config;
|
||||
this.integration = integration;
|
||||
@@ -114,7 +117,9 @@ export class GerritEntityProvider implements EntityProvider {
|
||||
await this.scheduleFn();
|
||||
}
|
||||
|
||||
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
|
||||
private createScheduleFn(
|
||||
taskRunner: SchedulerServiceTaskRunner,
|
||||
): () => Promise<void> {
|
||||
return async () => {
|
||||
const taskId = `${this.getProviderName()}:refresh`;
|
||||
return taskRunner.run({
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { readTaskScheduleDefinitionFromConfig } from '@backstage/backend-tasks';
|
||||
import { readSchedulerServiceTaskScheduleDefinitionFromConfig } from '@backstage/backend-plugin-api';
|
||||
import { Config } from '@backstage/config';
|
||||
import { GerritProviderConfig } from './types';
|
||||
|
||||
@@ -24,7 +24,9 @@ function readGerritConfig(id: string, config: Config): GerritProviderConfig {
|
||||
const query = config.getString('query');
|
||||
|
||||
const schedule = config.has('schedule')
|
||||
? readTaskScheduleDefinitionFromConfig(config.getConfig('schedule'))
|
||||
? readSchedulerServiceTaskScheduleDefinitionFromConfig(
|
||||
config.getConfig('schedule'),
|
||||
)
|
||||
: undefined;
|
||||
|
||||
return {
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
|
||||
|
||||
export type GerritProjectInfo = {
|
||||
id: string;
|
||||
@@ -30,5 +30,5 @@ export type GerritProviderConfig = {
|
||||
query: string;
|
||||
id: string;
|
||||
branch?: string;
|
||||
schedule?: TaskScheduleDefinition;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinition;
|
||||
};
|
||||
|
||||
@@ -34,7 +34,6 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-plugin-api": "workspace:^",
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/config": "workspace:^",
|
||||
"@backstage/plugin-catalog-backend-module-github": "workspace:^",
|
||||
"@backstage/plugin-catalog-node": "workspace:^",
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
|
||||
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
|
||||
import { EntityProvider } from '@backstage/plugin-catalog-node';
|
||||
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
|
||||
@@ -23,7 +23,7 @@ import { catalogModuleGithubOrgEntityProvider } from './module';
|
||||
describe('catalogModuleGithubOrgEntityProvider', () => {
|
||||
it('should register provider at the catalog extension point', async () => {
|
||||
let addedProviders: Array<EntityProvider> | undefined;
|
||||
let usedSchedule: TaskScheduleDefinition | undefined;
|
||||
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
|
||||
|
||||
const extensionPoint = {
|
||||
addEntityProvider: (...providers: any) => {
|
||||
|
||||
@@ -18,11 +18,9 @@ import {
|
||||
coreServices,
|
||||
createBackendModule,
|
||||
createExtensionPoint,
|
||||
SchedulerServiceTaskScheduleDefinition,
|
||||
readSchedulerServiceTaskScheduleDefinitionFromConfig,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
readTaskScheduleDefinitionFromConfig,
|
||||
TaskScheduleDefinition,
|
||||
} from '@backstage/backend-tasks';
|
||||
import { Config } from '@backstage/config';
|
||||
import {
|
||||
GithubMultiOrgEntityProvider,
|
||||
@@ -134,7 +132,7 @@ function readDefinitionsFromConfig(rootConfig: Config): Array<{
|
||||
id: string;
|
||||
githubUrl: string;
|
||||
orgs?: string[];
|
||||
schedule: TaskScheduleDefinition;
|
||||
schedule: SchedulerServiceTaskScheduleDefinition;
|
||||
}> {
|
||||
const baseKey = 'catalog.providers.githubOrg';
|
||||
const baseConfig = rootConfig.getOptional(baseKey);
|
||||
@@ -150,6 +148,8 @@ function readDefinitionsFromConfig(rootConfig: Config): Array<{
|
||||
id: c.getString('id'),
|
||||
githubUrl: c.getString('githubUrl'),
|
||||
orgs: c.getOptionalStringArray('orgs'),
|
||||
schedule: readTaskScheduleDefinitionFromConfig(c.getConfig('schedule')),
|
||||
schedule: readSchedulerServiceTaskScheduleDefinitionFromConfig(
|
||||
c.getConfig('schedule'),
|
||||
),
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -20,10 +20,10 @@ import { graphql } from '@octokit/graphql';
|
||||
import { LocationSpec } from '@backstage/plugin-catalog-node';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import { PluginEndpointDiscovery } from '@backstage/backend-common';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { SchedulerService } from '@backstage/backend-plugin-api';
|
||||
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
|
||||
import { ScmIntegrationRegistry } from '@backstage/integration';
|
||||
import { ScmLocationAnalyzer } from '@backstage/plugin-catalog-node';
|
||||
import { TaskRunner } from '@backstage/backend-tasks';
|
||||
import { TokenManager } from '@backstage/backend-common';
|
||||
import { UserEntity } from '@backstage/catalog-model';
|
||||
|
||||
@@ -70,8 +70,8 @@ export class GitHubEntityProvider implements EntityProvider {
|
||||
config: Config,
|
||||
options: {
|
||||
logger: LoggerService;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
},
|
||||
): GitHubEntityProvider[];
|
||||
// (undocumented)
|
||||
@@ -90,8 +90,8 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber {
|
||||
options: {
|
||||
events?: EventsService;
|
||||
logger: LoggerService;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
},
|
||||
): GithubEntityProvider[];
|
||||
// (undocumented)
|
||||
@@ -173,7 +173,7 @@ export interface GithubMultiOrgEntityProviderOptions {
|
||||
id: string;
|
||||
logger: LoggerService;
|
||||
orgs?: string[];
|
||||
schedule?: 'manual' | TaskRunner;
|
||||
schedule?: 'manual' | SchedulerServiceTaskRunner;
|
||||
teamTransformer?: TeamTransformer;
|
||||
userTransformer?: UserTransformer;
|
||||
}
|
||||
@@ -251,7 +251,7 @@ export interface GithubOrgEntityProviderOptions {
|
||||
id: string;
|
||||
logger: LoggerService;
|
||||
orgUrl: string;
|
||||
schedule?: 'manual' | TaskRunner;
|
||||
schedule?: 'manual' | SchedulerServiceTaskRunner;
|
||||
teamTransformer?: TeamTransformer;
|
||||
userTransformer?: UserTransformer;
|
||||
}
|
||||
|
||||
+5
-5
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinitionConfig } from '@backstage/backend-plugin-api';
|
||||
|
||||
export interface Config {
|
||||
catalog?: {
|
||||
@@ -116,7 +116,7 @@ export interface Config {
|
||||
/**
|
||||
* (Optional) TaskScheduleDefinition for the refresh.
|
||||
*/
|
||||
schedule?: TaskScheduleDefinitionConfig;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
|
||||
}
|
||||
| {
|
||||
[name: string]: {
|
||||
@@ -185,7 +185,7 @@ export interface Config {
|
||||
/**
|
||||
* (Optional) TaskScheduleDefinition for the refresh.
|
||||
*/
|
||||
schedule?: TaskScheduleDefinitionConfig;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -220,7 +220,7 @@ export interface Config {
|
||||
/**
|
||||
* The refresh schedule to use.
|
||||
*/
|
||||
schedule: TaskScheduleDefinitionConfig;
|
||||
schedule: SchedulerServiceTaskScheduleDefinitionConfig;
|
||||
}
|
||||
| Array<{
|
||||
/**
|
||||
@@ -249,7 +249,7 @@ export interface Config {
|
||||
/**
|
||||
* The refresh schedule to use.
|
||||
*/
|
||||
schedule: TaskScheduleDefinitionConfig;
|
||||
schedule: SchedulerServiceTaskScheduleDefinitionConfig;
|
||||
}>;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -53,7 +53,6 @@
|
||||
"dependencies": {
|
||||
"@backstage/backend-common": "workspace:^",
|
||||
"@backstage/backend-plugin-api": "workspace:^",
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/catalog-client": "workspace:^",
|
||||
"@backstage/catalog-model": "workspace:^",
|
||||
"@backstage/config": "workspace:^",
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
|
||||
import { Config } from '@backstage/config';
|
||||
import {
|
||||
EntityProvider,
|
||||
@@ -25,7 +24,11 @@ import {
|
||||
GithubOrgEntityProvider,
|
||||
GithubOrgEntityProviderOptions,
|
||||
} from './providers/GithubOrgEntityProvider';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
LoggerService,
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
|
||||
/**
|
||||
* @public
|
||||
@@ -58,8 +61,8 @@ export class GitHubEntityProvider implements EntityProvider {
|
||||
config: Config,
|
||||
options: {
|
||||
logger: LoggerService;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
},
|
||||
): GitHubEntityProvider[] {
|
||||
options.logger.warn(
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
|
||||
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
|
||||
import { EntityProvider } from '@backstage/plugin-catalog-node';
|
||||
import {
|
||||
@@ -27,7 +27,7 @@ import { GithubLocationAnalyzer } from '../analyzers/GithubLocationAnalyzer';
|
||||
describe('githubCatalogModule', () => {
|
||||
it('should register provider at the catalog extension point', async () => {
|
||||
let addedProviders: Array<EntityProvider> | undefined;
|
||||
let usedSchedule: TaskScheduleDefinition | undefined;
|
||||
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
|
||||
|
||||
const extensionPoint = {
|
||||
addEntityProvider: (providers: any) => {
|
||||
|
||||
@@ -15,10 +15,10 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
PluginTaskScheduler,
|
||||
TaskInvocationDefinition,
|
||||
TaskRunner,
|
||||
} from '@backstage/backend-tasks';
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
SchedulerServiceTaskInvocationDefinition,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { Config, ConfigReader } from '@backstage/config';
|
||||
import {
|
||||
DeferredEntity,
|
||||
@@ -41,14 +41,14 @@ jest.mock('../lib/github', () => {
|
||||
getOrganizationRepositories: jest.fn(),
|
||||
};
|
||||
});
|
||||
class PersistingTaskRunner implements TaskRunner {
|
||||
private tasks: TaskInvocationDefinition[] = [];
|
||||
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
|
||||
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
|
||||
|
||||
getTasks() {
|
||||
return this.tasks;
|
||||
}
|
||||
|
||||
run(task: TaskInvocationDefinition): Promise<void> {
|
||||
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
|
||||
this.tasks.push(task);
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
@@ -624,7 +624,7 @@ describe('GithubEntityProvider', () => {
|
||||
it('fail with scheduler but no schedule config', () => {
|
||||
const scheduler = {
|
||||
createScheduledTaskRunner: (_: any) => jest.fn(),
|
||||
} as unknown as PluginTaskScheduler;
|
||||
} as unknown as SchedulerService;
|
||||
const config = createSingleProviderConfig();
|
||||
|
||||
expect(() =>
|
||||
@@ -641,7 +641,7 @@ describe('GithubEntityProvider', () => {
|
||||
const schedule = new PersistingTaskRunner();
|
||||
const scheduler = {
|
||||
createScheduledTaskRunner: (_: any) => schedule,
|
||||
} as unknown as PluginTaskScheduler;
|
||||
} as unknown as SchedulerService;
|
||||
const config = createSingleProviderConfig({
|
||||
providerConfig: {
|
||||
schedule: {
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
|
||||
import { Config } from '@backstage/config';
|
||||
import {
|
||||
GithubCredentialsProvider,
|
||||
@@ -66,7 +65,11 @@ import {
|
||||
RepositoryUnarchivedEvent,
|
||||
} from '@octokit/webhooks-types';
|
||||
import { Minimatch } from 'minimatch';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
LoggerService,
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
|
||||
const EVENT_TOPICS = ['github.push', 'github.repository'];
|
||||
|
||||
@@ -103,8 +106,8 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber {
|
||||
options: {
|
||||
events?: EventsService;
|
||||
logger: LoggerService;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
},
|
||||
): GithubEntityProvider[] {
|
||||
if (!options.schedule && !options.scheduler) {
|
||||
@@ -147,7 +150,7 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber {
|
||||
config: GithubEntityProviderConfig,
|
||||
integration: GithubIntegration,
|
||||
logger: LoggerService,
|
||||
taskRunner: TaskRunner,
|
||||
taskRunner: SchedulerServiceTaskRunner,
|
||||
events?: EventsService,
|
||||
) {
|
||||
this.config = config;
|
||||
@@ -177,7 +180,9 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber {
|
||||
return await this.scheduleFn();
|
||||
}
|
||||
|
||||
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
|
||||
private createScheduleFn(
|
||||
taskRunner: SchedulerServiceTaskRunner,
|
||||
): () => Promise<void> {
|
||||
return async () => {
|
||||
const taskId = `${this.getProviderName()}:refresh`;
|
||||
return taskRunner.run({
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
readTaskScheduleDefinitionFromConfig,
|
||||
TaskScheduleDefinition,
|
||||
} from '@backstage/backend-tasks';
|
||||
SchedulerServiceTaskScheduleDefinition,
|
||||
readSchedulerServiceTaskScheduleDefinitionFromConfig,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { Config } from '@backstage/config';
|
||||
|
||||
const DEFAULT_CATALOG_PATH = '/catalog-info.yaml';
|
||||
@@ -36,7 +36,7 @@ export type GithubEntityProviderConfig = {
|
||||
visibility?: string[];
|
||||
};
|
||||
validateLocationsExist: boolean;
|
||||
schedule?: TaskScheduleDefinition;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinition;
|
||||
};
|
||||
|
||||
export type GithubTopicFilters = {
|
||||
@@ -96,7 +96,9 @@ function readProviderConfig(
|
||||
}
|
||||
|
||||
const schedule = config.has('schedule')
|
||||
? readTaskScheduleDefinitionFromConfig(config.getConfig('schedule'))
|
||||
? readSchedulerServiceTaskScheduleDefinitionFromConfig(
|
||||
config.getConfig('schedule'),
|
||||
)
|
||||
: undefined;
|
||||
|
||||
return {
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskRunner } from '@backstage/backend-tasks';
|
||||
import {
|
||||
ANNOTATION_LOCATION,
|
||||
ANNOTATION_ORIGIN_LOCATION,
|
||||
@@ -78,7 +77,10 @@ import {
|
||||
} from '../lib/github';
|
||||
import { splitTeamSlug } from '../lib/util';
|
||||
import { areGroupEntities, areUserEntities } from '../lib/guards';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
LoggerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
|
||||
const EVENT_TOPICS = [
|
||||
'github.installation',
|
||||
@@ -128,10 +130,10 @@ export interface GithubMultiOrgEntityProviderOptions {
|
||||
* manually at some interval.
|
||||
*
|
||||
* But more commonly you will pass in the result of
|
||||
* {@link @backstage/backend-tasks#PluginTaskScheduler.createScheduledTaskRunner}
|
||||
* {@link @backstage/backend-plugin-api#SchedulerService.createScheduledTaskRunner}
|
||||
* to enable automatic scheduling of tasks.
|
||||
*/
|
||||
schedule?: 'manual' | TaskRunner;
|
||||
schedule?: 'manual' | SchedulerServiceTaskRunner;
|
||||
|
||||
/**
|
||||
* The logger to use.
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskRunner } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
|
||||
import { Entity, isGroupEntity } from '@backstage/catalog-model';
|
||||
import { Config } from '@backstage/config';
|
||||
import {
|
||||
@@ -103,10 +103,10 @@ export interface GithubOrgEntityProviderOptions {
|
||||
* manually at some interval.
|
||||
*
|
||||
* But more commonly you will pass in the result of
|
||||
* {@link @backstage/backend-tasks#PluginTaskScheduler.createScheduledTaskRunner}
|
||||
* {@link @backstage/backend-plugin-api#SchedulerService.createScheduledTaskRunner}
|
||||
* to enable automatic scheduling of tasks.
|
||||
*/
|
||||
schedule?: 'manual' | TaskRunner;
|
||||
schedule?: 'manual' | SchedulerServiceTaskRunner;
|
||||
|
||||
/**
|
||||
* The logger to use.
|
||||
|
||||
@@ -40,7 +40,6 @@
|
||||
"@backstage/plugin-events-node": "workspace:^"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/backend-test-utils": "workspace:^",
|
||||
"@backstage/cli": "workspace:^",
|
||||
"@backstage/plugin-events-backend-test-utils": "workspace:^",
|
||||
|
||||
+5
-3
@@ -14,8 +14,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { createServiceFactory } from '@backstage/backend-plugin-api';
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import {
|
||||
createServiceFactory,
|
||||
SchedulerServiceTaskScheduleDefinition,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
|
||||
import { GitlabOrgDiscoveryEntityProvider } from '@backstage/plugin-catalog-backend-module-gitlab';
|
||||
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
|
||||
@@ -35,7 +37,7 @@ describe('catalogModuleGitlabOrgDiscoveryEntityProvider', () => {
|
||||
},
|
||||
});
|
||||
let addedProviders: Array<GitlabOrgDiscoveryEntityProvider> | undefined;
|
||||
let usedSchedule: TaskScheduleDefinition | undefined;
|
||||
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
|
||||
|
||||
const extensionPoint = {
|
||||
addEntityProvider: (providers: any) => {
|
||||
|
||||
@@ -13,9 +13,9 @@ import { GitLabIntegrationConfig } from '@backstage/integration';
|
||||
import { GroupEntity } from '@backstage/catalog-model';
|
||||
import { LocationSpec } from '@backstage/plugin-catalog-node';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { TaskRunner } from '@backstage/backend-tasks';
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import { SchedulerService } from '@backstage/backend-plugin-api';
|
||||
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
|
||||
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
|
||||
import { UserEntity } from '@backstage/catalog-model';
|
||||
|
||||
// @public
|
||||
@@ -28,8 +28,8 @@ export class GitlabDiscoveryEntityProvider implements EntityProvider {
|
||||
options: {
|
||||
logger: LoggerService;
|
||||
events?: EventsService;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
},
|
||||
): GitlabDiscoveryEntityProvider[];
|
||||
// (undocumented)
|
||||
@@ -83,8 +83,8 @@ export class GitlabOrgDiscoveryEntityProvider implements EntityProvider {
|
||||
options: {
|
||||
logger: LoggerService;
|
||||
events?: EventsService;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
userTransformer?: UserTransformer;
|
||||
groupEntitiesTransformer?: GroupTransformer;
|
||||
groupNameTransformer?: GroupNameTransformer;
|
||||
@@ -108,7 +108,7 @@ export type GitlabProviderConfig = {
|
||||
groupPattern: RegExp;
|
||||
allowInherited?: boolean;
|
||||
orgEnabled?: boolean;
|
||||
schedule?: TaskScheduleDefinition;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinition;
|
||||
skipForkedRepos?: boolean;
|
||||
excludeRepos?: string[];
|
||||
};
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinitionConfig } from '@backstage/backend-plugin-api';
|
||||
|
||||
export interface Config {
|
||||
catalog?: {
|
||||
@@ -46,7 +46,7 @@ export interface Config {
|
||||
/**
|
||||
* (Optional) TaskScheduleDefinition for the refresh.
|
||||
*/
|
||||
schedule?: TaskScheduleDefinitionConfig;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
|
||||
/**
|
||||
* (Optional) RegExp for the Project Name Pattern
|
||||
*/
|
||||
|
||||
@@ -53,7 +53,6 @@
|
||||
"dependencies": {
|
||||
"@backstage/backend-common": "workspace:^",
|
||||
"@backstage/backend-plugin-api": "workspace:^",
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/catalog-model": "workspace:^",
|
||||
"@backstage/config": "workspace:^",
|
||||
"@backstage/integration": "workspace:^",
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
|
||||
import { GroupEntity, UserEntity } from '@backstage/catalog-model';
|
||||
import { GitLabIntegrationConfig } from '@backstage/integration';
|
||||
|
||||
@@ -196,7 +196,7 @@ export type GitlabProviderConfig = {
|
||||
allowInherited?: boolean;
|
||||
|
||||
orgEnabled?: boolean;
|
||||
schedule?: TaskScheduleDefinition;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinition;
|
||||
/**
|
||||
* If the project is a fork, skip repository
|
||||
*/
|
||||
|
||||
+5
-3
@@ -14,8 +14,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { createServiceFactory } from '@backstage/backend-plugin-api';
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import {
|
||||
createServiceFactory,
|
||||
SchedulerServiceTaskScheduleDefinition,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
|
||||
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
|
||||
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
|
||||
@@ -35,7 +37,7 @@ describe('catalogModuleGitlabDiscoveryEntityProvider', () => {
|
||||
},
|
||||
});
|
||||
let addedProviders: Array<GitlabDiscoveryEntityProvider> | undefined;
|
||||
let usedSchedule: TaskScheduleDefinition | undefined;
|
||||
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
|
||||
|
||||
const extensionPoint = {
|
||||
addEntityProvider: (providers: any) => {
|
||||
|
||||
+8
-8
@@ -15,10 +15,10 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
PluginTaskScheduler,
|
||||
TaskInvocationDefinition,
|
||||
TaskRunner,
|
||||
} from '@backstage/backend-tasks';
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
SchedulerServiceTaskInvocationDefinition,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
mockServices,
|
||||
registerMswTestHooks,
|
||||
@@ -35,14 +35,14 @@ const server = setupServer(...handlers);
|
||||
registerMswTestHooks(server);
|
||||
afterEach(() => jest.clearAllMocks());
|
||||
|
||||
class PersistingTaskRunner implements TaskRunner {
|
||||
private tasks: TaskInvocationDefinition[] = [];
|
||||
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
|
||||
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
|
||||
|
||||
getTasks() {
|
||||
return this.tasks;
|
||||
}
|
||||
|
||||
run(task: TaskInvocationDefinition): Promise<void> {
|
||||
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
|
||||
this.tasks.push(task);
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
@@ -75,7 +75,7 @@ describe('GitlabDiscoveryEntityProvider - configuration', () => {
|
||||
it('should fail with scheduler but no schedule config', () => {
|
||||
const scheduler = {
|
||||
createScheduledTaskRunner: (_: any) => jest.fn(),
|
||||
} as unknown as PluginTaskScheduler;
|
||||
} as unknown as SchedulerService;
|
||||
const config = new ConfigReader(mock.config_no_schedule_integration);
|
||||
|
||||
expect(() =>
|
||||
|
||||
+11
-6
@@ -14,8 +14,11 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
|
||||
import {
|
||||
LoggerService,
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { Config } from '@backstage/config';
|
||||
import { GitLabIntegration, ScmIntegrations } from '@backstage/integration';
|
||||
import { LocationSpec } from '@backstage/plugin-catalog-common';
|
||||
@@ -68,8 +71,8 @@ export class GitlabDiscoveryEntityProvider implements EntityProvider {
|
||||
options: {
|
||||
logger: LoggerService;
|
||||
events?: EventsService;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
},
|
||||
): GitlabDiscoveryEntityProvider[] {
|
||||
if (!options.schedule && !options.scheduler) {
|
||||
@@ -121,7 +124,7 @@ export class GitlabDiscoveryEntityProvider implements EntityProvider {
|
||||
integration: GitLabIntegration;
|
||||
logger: LoggerService;
|
||||
events?: EventsService;
|
||||
taskRunner: TaskRunner;
|
||||
taskRunner: SchedulerServiceTaskRunner;
|
||||
}) {
|
||||
this.config = options.config;
|
||||
this.integration = options.integration;
|
||||
@@ -165,7 +168,9 @@ export class GitlabDiscoveryEntityProvider implements EntityProvider {
|
||||
* @param taskRunner - The task runner instance.
|
||||
* @returns The scheduled function.
|
||||
*/
|
||||
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
|
||||
private createScheduleFn(
|
||||
taskRunner: SchedulerServiceTaskRunner,
|
||||
): () => Promise<void> {
|
||||
return async () => {
|
||||
const taskId = `${this.getProviderName()}:refresh`;
|
||||
return taskRunner.run({
|
||||
|
||||
+9
-9
@@ -15,10 +15,10 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
PluginTaskScheduler,
|
||||
TaskInvocationDefinition,
|
||||
TaskRunner,
|
||||
} from '@backstage/backend-tasks';
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
SchedulerServiceTaskInvocationDefinition,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
mockServices,
|
||||
registerMswTestHooks,
|
||||
@@ -36,14 +36,14 @@ const server = setupServer(...handlers);
|
||||
registerMswTestHooks(server);
|
||||
afterEach(() => jest.clearAllMocks());
|
||||
|
||||
class PersistingTaskRunner implements TaskRunner {
|
||||
private tasks: TaskInvocationDefinition[] = [];
|
||||
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
|
||||
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
|
||||
|
||||
getTasks() {
|
||||
return this.tasks;
|
||||
}
|
||||
|
||||
run(task: TaskInvocationDefinition): Promise<void> {
|
||||
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
|
||||
this.tasks.push(task);
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
@@ -113,7 +113,7 @@ describe('GitlabOrgDiscoveryEntityProvider - configuration', () => {
|
||||
it('should fail with scheduler but no schedule config', () => {
|
||||
const scheduler = {
|
||||
createScheduledTaskRunner: (_: any) => jest.fn(),
|
||||
} as unknown as PluginTaskScheduler;
|
||||
} as unknown as SchedulerService;
|
||||
const config = new ConfigReader(mock.config_org_integration_saas);
|
||||
|
||||
expect(() =>
|
||||
@@ -130,7 +130,7 @@ describe('GitlabOrgDiscoveryEntityProvider - configuration', () => {
|
||||
const schedule = new PersistingTaskRunner();
|
||||
const scheduler = {
|
||||
createScheduledTaskRunner: (_: any) => schedule,
|
||||
} as unknown as PluginTaskScheduler;
|
||||
} as unknown as SchedulerService;
|
||||
const config = new ConfigReader(mock.config_org_integration_saas_sched);
|
||||
const providers = GitlabOrgDiscoveryEntityProvider.fromConfig(config, {
|
||||
logger,
|
||||
|
||||
+11
-6
@@ -13,8 +13,11 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
|
||||
import {
|
||||
LoggerService,
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
ANNOTATION_LOCATION,
|
||||
ANNOTATION_ORIGIN_LOCATION,
|
||||
@@ -114,8 +117,8 @@ export class GitlabOrgDiscoveryEntityProvider implements EntityProvider {
|
||||
options: {
|
||||
logger: LoggerService;
|
||||
events?: EventsService;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
userTransformer?: UserTransformer;
|
||||
groupEntitiesTransformer?: GroupEntitiesTransformer;
|
||||
groupNameTransformer?: GroupNameTransformer;
|
||||
@@ -176,7 +179,7 @@ export class GitlabOrgDiscoveryEntityProvider implements EntityProvider {
|
||||
integration: GitLabIntegration;
|
||||
logger: LoggerService;
|
||||
events?: EventsService;
|
||||
taskRunner: TaskRunner;
|
||||
taskRunner: SchedulerServiceTaskRunner;
|
||||
userTransformer?: UserTransformer;
|
||||
groupEntitiesTransformer?: GroupEntitiesTransformer;
|
||||
groupNameTransformer?: GroupNameTransformer;
|
||||
@@ -321,7 +324,9 @@ export class GitlabOrgDiscoveryEntityProvider implements EntityProvider {
|
||||
}
|
||||
}
|
||||
|
||||
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
|
||||
private createScheduleFn(
|
||||
taskRunner: SchedulerServiceTaskRunner,
|
||||
): () => Promise<void> {
|
||||
return async () => {
|
||||
const taskId = `${this.getProviderName()}:refresh`;
|
||||
return taskRunner.run({
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { readTaskScheduleDefinitionFromConfig } from '@backstage/backend-tasks';
|
||||
import { readSchedulerServiceTaskScheduleDefinitionFromConfig } from '@backstage/backend-plugin-api';
|
||||
import { Config } from '@backstage/config';
|
||||
import { GitlabProviderConfig } from '../lib';
|
||||
|
||||
@@ -51,7 +51,9 @@ function readGitlabConfig(id: string, config: Config): GitlabProviderConfig {
|
||||
config.getOptionalStringArray('excludeRepos') ?? [];
|
||||
|
||||
const schedule = config.has('schedule')
|
||||
? readTaskScheduleDefinitionFromConfig(config.getConfig('schedule'))
|
||||
? readSchedulerServiceTaskScheduleDefinitionFromConfig(
|
||||
config.getConfig('schedule'),
|
||||
)
|
||||
: undefined;
|
||||
const restrictUsersToGroup =
|
||||
config.getOptionalBoolean('restrictUsersToGroup') ?? false;
|
||||
|
||||
@@ -14,8 +14,8 @@ import { EventSubscriber } from '@backstage/plugin-events-node';
|
||||
import type { Logger } from 'winston';
|
||||
import type { PermissionEvaluator } from '@backstage/plugin-permission-common';
|
||||
import type { PluginDatabaseManager } from '@backstage/backend-common';
|
||||
import type { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { Router } from 'express';
|
||||
import { SchedulerService } from '@backstage/backend-plugin-api';
|
||||
import { UrlReaderService } from '@backstage/backend-plugin-api';
|
||||
|
||||
// @public
|
||||
@@ -89,7 +89,7 @@ export interface IncrementalEntityProviderOptions {
|
||||
export type PluginEnvironment = {
|
||||
logger: Logger;
|
||||
database: PluginDatabaseManager;
|
||||
scheduler: PluginTaskScheduler;
|
||||
scheduler: SchedulerService;
|
||||
config: Config;
|
||||
reader: UrlReaderService;
|
||||
permissions: PermissionEvaluator;
|
||||
|
||||
@@ -53,7 +53,6 @@
|
||||
"dependencies": {
|
||||
"@backstage/backend-common": "workspace:^",
|
||||
"@backstage/backend-plugin-api": "workspace:^",
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/catalog-model": "workspace:^",
|
||||
"@backstage/config": "workspace:^",
|
||||
"@backstage/errors": "workspace:^",
|
||||
|
||||
+2
-3
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { SchedulerService } from '@backstage/backend-plugin-api';
|
||||
import { TestDatabases, mockServices } from '@backstage/backend-test-utils';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { IncrementalEntityProvider } from '../types';
|
||||
@@ -66,8 +66,7 @@ describe('WrapperProviders', () => {
|
||||
config,
|
||||
logger,
|
||||
client,
|
||||
scheduler:
|
||||
scheduler as Partial<PluginTaskScheduler> as PluginTaskScheduler,
|
||||
scheduler: scheduler as Partial<SchedulerService> as SchedulerService,
|
||||
applyDatabaseMigrations,
|
||||
});
|
||||
const wrapped1 = providers.wrap(provider1, {
|
||||
|
||||
@@ -15,10 +15,6 @@
|
||||
*/
|
||||
|
||||
import type { PluginDatabaseManager } from '@backstage/backend-common';
|
||||
import type {
|
||||
PluginTaskScheduler,
|
||||
TaskFunction,
|
||||
} from '@backstage/backend-tasks';
|
||||
import type { Config } from '@backstage/config';
|
||||
import type {
|
||||
DeferredEntity,
|
||||
@@ -29,7 +25,12 @@ import type { PermissionEvaluator } from '@backstage/plugin-permission-common';
|
||||
import type { DurationObjectUnits } from 'luxon';
|
||||
import type { Logger } from 'winston';
|
||||
import { IncrementalIngestionDatabaseManager } from './database/IncrementalIngestionDatabaseManager';
|
||||
import { LoggerService, UrlReaderService } from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
LoggerService,
|
||||
UrlReaderService,
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskFunction,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
|
||||
/**
|
||||
* Ingest entities into the catalog in bite-sized chunks.
|
||||
@@ -187,14 +188,14 @@ export interface IncrementalEntityProviderOptions {
|
||||
export type PluginEnvironment = {
|
||||
logger: Logger;
|
||||
database: PluginDatabaseManager;
|
||||
scheduler: PluginTaskScheduler;
|
||||
scheduler: SchedulerService;
|
||||
config: Config;
|
||||
reader: UrlReaderService;
|
||||
permissions: PermissionEvaluator;
|
||||
};
|
||||
|
||||
export interface IterationEngine {
|
||||
taskFn: TaskFunction;
|
||||
taskFn: SchedulerServiceTaskFunction;
|
||||
}
|
||||
|
||||
export interface IterationEngineOptions {
|
||||
|
||||
@@ -39,7 +39,6 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-plugin-api": "workspace:^",
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/catalog-model": "workspace:^",
|
||||
"@backstage/config": "workspace:^",
|
||||
"@backstage/errors": "workspace:^",
|
||||
|
||||
@@ -12,10 +12,10 @@ import { GroupEntity } from '@backstage/catalog-model';
|
||||
import { LocationSpec } from '@backstage/plugin-catalog-common';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import * as MicrosoftGraph from '@microsoft/microsoft-graph-types';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { Response as Response_2 } from 'node-fetch';
|
||||
import { TaskRunner } from '@backstage/backend-tasks';
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import { SchedulerService } from '@backstage/backend-plugin-api';
|
||||
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
|
||||
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
|
||||
import { TokenCredential } from '@azure/identity';
|
||||
import { UserEntity } from '@backstage/catalog-model';
|
||||
|
||||
@@ -147,7 +147,7 @@ export interface MicrosoftGraphOrgEntityProviderLegacyOptions {
|
||||
logger: LoggerService;
|
||||
organizationTransformer?: OrganizationTransformer;
|
||||
providerConfigTransformer?: ProviderConfigTransformer;
|
||||
schedule: 'manual' | TaskRunner;
|
||||
schedule: 'manual' | SchedulerServiceTaskRunner;
|
||||
target: string;
|
||||
userTransformer?: UserTransformer;
|
||||
}
|
||||
@@ -157,8 +157,8 @@ export type MicrosoftGraphOrgEntityProviderOptions =
|
||||
| MicrosoftGraphOrgEntityProviderLegacyOptions
|
||||
| {
|
||||
logger: LoggerService;
|
||||
schedule?: 'manual' | TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: 'manual' | SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
userTransformer?: UserTransformer | Record<string, UserTransformer>;
|
||||
groupTransformer?: GroupTransformer | Record<string, GroupTransformer>;
|
||||
organizationTransformer?:
|
||||
@@ -218,7 +218,7 @@ export type MicrosoftGraphProviderConfig = {
|
||||
groupIncludeSubGroups?: boolean;
|
||||
queryMode?: 'basic' | 'advanced';
|
||||
loadUserPhotos?: boolean;
|
||||
schedule?: TaskScheduleDefinition;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinition;
|
||||
};
|
||||
|
||||
// @public
|
||||
|
||||
+3
-3
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinitionConfig } from '@backstage/backend-plugin-api';
|
||||
|
||||
export interface Config {
|
||||
catalog?: {
|
||||
@@ -217,7 +217,7 @@ export interface Config {
|
||||
/**
|
||||
* (Optional) TaskScheduleDefinition for the refresh.
|
||||
*/
|
||||
schedule?: TaskScheduleDefinitionConfig;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
|
||||
}
|
||||
| {
|
||||
[name: string]: {
|
||||
@@ -304,7 +304,7 @@ export interface Config {
|
||||
/**
|
||||
* (Optional) TaskScheduleDefinition for the refresh.
|
||||
*/
|
||||
schedule?: TaskScheduleDefinitionConfig;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -53,7 +53,6 @@
|
||||
"dependencies": {
|
||||
"@azure/identity": "^4.0.0",
|
||||
"@backstage/backend-plugin-api": "workspace:^",
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/catalog-model": "workspace:^",
|
||||
"@backstage/config": "workspace:^",
|
||||
"@backstage/plugin-catalog-common": "workspace:^",
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
readTaskScheduleDefinitionFromConfig,
|
||||
TaskScheduleDefinition,
|
||||
} from '@backstage/backend-tasks';
|
||||
SchedulerServiceTaskScheduleDefinition,
|
||||
readSchedulerServiceTaskScheduleDefinitionFromConfig,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { Config } from '@backstage/config';
|
||||
import { trimEnd } from 'lodash';
|
||||
|
||||
@@ -141,7 +141,7 @@ export type MicrosoftGraphProviderConfig = {
|
||||
/**
|
||||
* Schedule configuration for refresh tasks.
|
||||
*/
|
||||
schedule?: TaskScheduleDefinition;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinition;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -338,7 +338,9 @@ export function readProviderConfig(
|
||||
}
|
||||
|
||||
const schedule = config.has('schedule')
|
||||
? readTaskScheduleDefinitionFromConfig(config.getConfig('schedule'))
|
||||
? readSchedulerServiceTaskScheduleDefinitionFromConfig(
|
||||
config.getConfig('schedule'),
|
||||
)
|
||||
: undefined;
|
||||
|
||||
return {
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
|
||||
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
|
||||
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
|
||||
import { catalogModuleMicrosoftGraphOrgEntityProvider } from './catalogModuleMicrosoftGraphOrgEntityProvider';
|
||||
@@ -23,7 +23,7 @@ import { MicrosoftGraphOrgEntityProvider } from '../processors';
|
||||
describe('catalogModuleMicrosoftGraphOrgEntityProvider', () => {
|
||||
it('should register provider at the catalog extension point', async () => {
|
||||
let addedProviders: Array<MicrosoftGraphOrgEntityProvider> | undefined;
|
||||
let usedSchedule: TaskScheduleDefinition | undefined;
|
||||
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
|
||||
|
||||
const extensionPoint = {
|
||||
addEntityProvider: (providers: any) => {
|
||||
|
||||
+8
-8
@@ -14,10 +14,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
import {
|
||||
PluginTaskScheduler,
|
||||
TaskInvocationDefinition,
|
||||
TaskRunner,
|
||||
} from '@backstage/backend-tasks';
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
SchedulerServiceTaskInvocationDefinition,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import {
|
||||
ANNOTATION_LOCATION,
|
||||
@@ -48,14 +48,14 @@ const readMicrosoftGraphOrgMocked = readMicrosoftGraphOrg as jest.Mock<
|
||||
Promise<{ users: UserEntity[]; groups: GroupEntity[] }>
|
||||
>;
|
||||
|
||||
class PersistingTaskRunner implements TaskRunner {
|
||||
private tasks: TaskInvocationDefinition[] = [];
|
||||
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
|
||||
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
|
||||
|
||||
getTasks() {
|
||||
return this.tasks;
|
||||
}
|
||||
|
||||
run(task: TaskInvocationDefinition): Promise<void> {
|
||||
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
|
||||
this.tasks.push(task);
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
@@ -102,7 +102,7 @@ describe('MicrosoftGraphOrgEntityProvider', () => {
|
||||
const taskRunner = new PersistingTaskRunner();
|
||||
const scheduler = {
|
||||
createScheduledTaskRunner: (_: any) => taskRunner,
|
||||
} as unknown as PluginTaskScheduler;
|
||||
} as unknown as SchedulerService;
|
||||
const entityProviderConnection: EntityProviderConnection = {
|
||||
applyMutation: jest.fn(),
|
||||
refresh: jest.fn(),
|
||||
|
||||
+11
-8
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
|
||||
import {
|
||||
ANNOTATION_LOCATION,
|
||||
ANNOTATION_ORIGIN_LOCATION,
|
||||
@@ -41,7 +40,11 @@ import {
|
||||
UserTransformer,
|
||||
} from '../microsoftGraph';
|
||||
import { readProviderConfigs } from '../microsoftGraph/config';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
LoggerService,
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
|
||||
/**
|
||||
* Options for {@link MicrosoftGraphOrgEntityProvider}.
|
||||
@@ -65,16 +68,16 @@ export type MicrosoftGraphOrgEntityProviderOptions =
|
||||
* manually at some interval.
|
||||
*
|
||||
* But more commonly you will pass in the result of
|
||||
* {@link @backstage/backend-tasks#PluginTaskScheduler.createScheduledTaskRunner}
|
||||
* {@link @backstage/backend-plugin-api#SchedulerService.createScheduledTaskRunner}
|
||||
* to enable automatic scheduling of tasks.
|
||||
*/
|
||||
schedule?: 'manual' | TaskRunner;
|
||||
schedule?: 'manual' | SchedulerServiceTaskRunner;
|
||||
|
||||
/**
|
||||
* Scheduler used to schedule refreshes based on
|
||||
* the schedule config.
|
||||
*/
|
||||
scheduler?: PluginTaskScheduler;
|
||||
scheduler?: SchedulerService;
|
||||
|
||||
/**
|
||||
* The function that transforms a user entry in msgraph to an entity.
|
||||
@@ -141,10 +144,10 @@ export interface MicrosoftGraphOrgEntityProviderLegacyOptions {
|
||||
* manually at some interval.
|
||||
*
|
||||
* But more commonly you will pass in the result of
|
||||
* {@link @backstage/backend-tasks#PluginTaskScheduler.createScheduledTaskRunner}
|
||||
* {@link @backstage/backend-plugin-api#SchedulerService.createScheduledTaskRunner}
|
||||
* to enable automatic scheduling of tasks.
|
||||
*/
|
||||
schedule: 'manual' | TaskRunner;
|
||||
schedule: 'manual' | SchedulerServiceTaskRunner;
|
||||
|
||||
/**
|
||||
* The function that transforms a user entry in msgraph to an entity.
|
||||
@@ -360,7 +363,7 @@ export class MicrosoftGraphOrgEntityProvider implements EntityProvider {
|
||||
markCommitComplete();
|
||||
}
|
||||
|
||||
private schedule(taskRunner: TaskRunner) {
|
||||
private schedule(taskRunner: SchedulerServiceTaskRunner) {
|
||||
this.scheduleFn = async () => {
|
||||
const id = `${this.getProviderName()}:refresh`;
|
||||
await taskRunner.run({
|
||||
|
||||
@@ -8,10 +8,10 @@ import { EntityProvider } from '@backstage/plugin-catalog-node';
|
||||
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
|
||||
import { JsonValue } from '@backstage/types';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { ResourceEntity } from '@backstage/catalog-model';
|
||||
import { TaskRunner } from '@backstage/backend-tasks';
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import { SchedulerService } from '@backstage/backend-plugin-api';
|
||||
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
|
||||
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
|
||||
|
||||
// @public
|
||||
export const ANNOTATION_PUPPET_CERTNAME = 'puppet.com/certname';
|
||||
@@ -30,8 +30,8 @@ export class PuppetDbEntityProvider implements EntityProvider {
|
||||
config: Config,
|
||||
deps: {
|
||||
logger: LoggerService;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
transformer?: ResourceTransformer;
|
||||
},
|
||||
): PuppetDbEntityProvider[];
|
||||
@@ -45,7 +45,7 @@ export type PuppetDbEntityProviderConfig = {
|
||||
id: string;
|
||||
baseUrl: string;
|
||||
query?: string;
|
||||
schedule?: TaskScheduleDefinition;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinition;
|
||||
};
|
||||
|
||||
// @public
|
||||
|
||||
+3
-3
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
|
||||
|
||||
/**
|
||||
* Represents the configuration for the Backstage.
|
||||
@@ -44,7 +44,7 @@ export interface Config {
|
||||
/**
|
||||
* (Optional) Task schedule definition for the refresh.
|
||||
*/
|
||||
schedule?: TaskScheduleDefinition;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinition;
|
||||
}
|
||||
| {
|
||||
[name: string]: {
|
||||
@@ -59,7 +59,7 @@ export interface Config {
|
||||
/**
|
||||
* (Optional) Task schedule definition for the refresh.
|
||||
*/
|
||||
schedule?: TaskScheduleDefinition;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinition;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -54,7 +54,6 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-plugin-api": "workspace:^",
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/catalog-model": "workspace:^",
|
||||
"@backstage/config": "workspace:^",
|
||||
"@backstage/errors": "workspace:^",
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
|
||||
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
|
||||
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
|
||||
import { catalogModulePuppetDbEntityProvider } from './catalogModulePuppetDbEntityProvider';
|
||||
@@ -23,7 +23,7 @@ import { PuppetDbEntityProvider } from '../providers/PuppetDbEntityProvider';
|
||||
describe('catalogModulePuppetDbEntityProvider', () => {
|
||||
it('should register provider at the catalog extension point', async () => {
|
||||
let addedProviders: Array<PuppetDbEntityProvider> | undefined;
|
||||
let usedSchedule: TaskScheduleDefinition | undefined;
|
||||
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
|
||||
|
||||
const extensionPoint = {
|
||||
addEntityProvider: (providers: any) => {
|
||||
|
||||
+7
-4
@@ -14,7 +14,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskInvocationDefinition, TaskRunner } from '@backstage/backend-tasks';
|
||||
import {
|
||||
SchedulerServiceTaskRunner,
|
||||
SchedulerServiceTaskInvocationDefinition,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { PuppetDbEntityProvider } from './PuppetDbEntityProvider';
|
||||
import {
|
||||
@@ -39,14 +42,14 @@ jest.mock('../puppet/read', () => {
|
||||
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
class PersistingTaskRunner implements TaskRunner {
|
||||
private tasks: TaskInvocationDefinition[] = [];
|
||||
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
|
||||
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
|
||||
|
||||
getTasks() {
|
||||
return this.tasks;
|
||||
}
|
||||
|
||||
run(task: TaskInvocationDefinition): Promise<void> {
|
||||
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
|
||||
this.tasks.push(task);
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
|
||||
@@ -23,7 +23,6 @@ import {
|
||||
readProviderConfigs,
|
||||
} from './PuppetDbEntityProviderConfig';
|
||||
import { Config } from '@backstage/config';
|
||||
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
|
||||
import * as uuid from 'uuid';
|
||||
import { defaultResourceTransformer, ResourceTransformer } from '../puppet';
|
||||
import {
|
||||
@@ -34,7 +33,11 @@ import {
|
||||
import { merge } from 'lodash';
|
||||
import { readPuppetNodes } from '../puppet/read';
|
||||
import { ENDPOINT_NODES } from '../puppet/constants';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
SchedulerService,
|
||||
SchedulerServiceTaskRunner,
|
||||
LoggerService,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
|
||||
/**
|
||||
* Reads nodes from [PuppetDB](https://www.puppet.com/docs/puppet/6/puppetdb_overview.html)
|
||||
@@ -61,8 +64,8 @@ export class PuppetDbEntityProvider implements EntityProvider {
|
||||
config: Config,
|
||||
deps: {
|
||||
logger: LoggerService;
|
||||
schedule?: TaskRunner;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
schedule?: SchedulerServiceTaskRunner;
|
||||
scheduler?: SchedulerService;
|
||||
transformer?: ResourceTransformer;
|
||||
},
|
||||
): PuppetDbEntityProvider[] {
|
||||
@@ -97,7 +100,7 @@ export class PuppetDbEntityProvider implements EntityProvider {
|
||||
*
|
||||
* @param config - Configuration of the provider.
|
||||
* @param logger - The instance of a {@link LoggerService}.
|
||||
* @param taskRunner - The instance of {@link TaskRunner}.
|
||||
* @param taskRunner - The instance of {@link SchedulerServiceTaskRunner}.
|
||||
* @param transformer - A {@link ResourceTransformer} function.
|
||||
*
|
||||
* @private
|
||||
@@ -105,7 +108,7 @@ export class PuppetDbEntityProvider implements EntityProvider {
|
||||
private constructor(
|
||||
config: PuppetDbEntityProviderConfig,
|
||||
logger: LoggerService,
|
||||
taskRunner: TaskRunner,
|
||||
taskRunner: SchedulerServiceTaskRunner,
|
||||
transformer: ResourceTransformer,
|
||||
) {
|
||||
this.config = config;
|
||||
@@ -130,11 +133,13 @@ export class PuppetDbEntityProvider implements EntityProvider {
|
||||
/**
|
||||
* Creates a function that can be used to schedule a refresh of the catalog.
|
||||
*
|
||||
* @param taskRunner - The instance of {@link TaskRunner}.
|
||||
* @param taskRunner - The instance of {@link SchedulerServiceTaskRunner}.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
|
||||
private createScheduleFn(
|
||||
taskRunner: SchedulerServiceTaskRunner,
|
||||
): () => Promise<void> {
|
||||
return async () => {
|
||||
const taskId = `${this.getProviderName()}:refresh`;
|
||||
return taskRunner.run({
|
||||
|
||||
+7
-5
@@ -15,9 +15,9 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
readTaskScheduleDefinitionFromConfig,
|
||||
TaskScheduleDefinition,
|
||||
} from '@backstage/backend-tasks';
|
||||
SchedulerServiceTaskScheduleDefinition,
|
||||
readSchedulerServiceTaskScheduleDefinitionFromConfig,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { Config } from '@backstage/config';
|
||||
import { DEFAULT_PROVIDER_ID } from './constants';
|
||||
|
||||
@@ -42,7 +42,7 @@ export type PuppetDbEntityProviderConfig = {
|
||||
/**
|
||||
* (Optional) Task schedule definition for the refresh.
|
||||
*/
|
||||
schedule?: TaskScheduleDefinition;
|
||||
schedule?: SchedulerServiceTaskScheduleDefinition;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -87,7 +87,9 @@ function readProviderConfig(
|
||||
const query = config.getOptionalString('query');
|
||||
|
||||
const schedule = config.has('schedule')
|
||||
? readTaskScheduleDefinitionFromConfig(config.getConfig('schedule'))
|
||||
? readSchedulerServiceTaskScheduleDefinitionFromConfig(
|
||||
config.getConfig('schedule'),
|
||||
)
|
||||
: undefined;
|
||||
|
||||
return {
|
||||
|
||||
@@ -58,9 +58,9 @@ import { PlaceholderResolverParams as PlaceholderResolverParams_2 } from '@backs
|
||||
import { PlaceholderResolverRead as PlaceholderResolverRead_2 } from '@backstage/plugin-catalog-node';
|
||||
import { PlaceholderResolverResolveUrl as PlaceholderResolverResolveUrl_2 } from '@backstage/plugin-catalog-node';
|
||||
import { PluginEndpointDiscovery } from '@backstage/backend-common';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { RootConfigService } from '@backstage/backend-plugin-api';
|
||||
import { Router } from 'express';
|
||||
import { SchedulerService } from '@backstage/backend-plugin-api';
|
||||
import { ScmIntegrationRegistry } from '@backstage/integration';
|
||||
import { ScmLocationAnalyzer as ScmLocationAnalyzer_2 } from '@backstage/plugin-catalog-node';
|
||||
import { TokenManager } from '@backstage/backend-common';
|
||||
@@ -200,7 +200,7 @@ export type CatalogEnvironment = {
|
||||
config: RootConfigService;
|
||||
reader: UrlReaderService;
|
||||
permissions: PermissionsService | PermissionAuthorizer;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
scheduler?: SchedulerService;
|
||||
discovery?: DiscoveryService;
|
||||
auth?: AuthService;
|
||||
httpAuth?: HttpAuthService;
|
||||
|
||||
@@ -64,7 +64,6 @@
|
||||
"@backstage/backend-common": "workspace:^",
|
||||
"@backstage/backend-openapi-utils": "workspace:^",
|
||||
"@backstage/backend-plugin-api": "workspace:^",
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/catalog-client": "workspace:^",
|
||||
"@backstage/catalog-model": "workspace:^",
|
||||
"@backstage/config": "workspace:^",
|
||||
|
||||
@@ -29,7 +29,6 @@ import { createCounterMetric, createSummaryMetric } from '../util/metrics';
|
||||
import { CatalogProcessingOrchestrator, EntityProcessingResult } from './types';
|
||||
import { Stitcher, stitchingStrategyFromConfig } from '../stitching/types';
|
||||
import { startTaskPipeline } from './TaskPipeline';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { Config } from '@backstage/config';
|
||||
import {
|
||||
addEntityAttributes,
|
||||
@@ -39,7 +38,7 @@ import {
|
||||
import { deleteOrphanedEntities } from '../database/operations/util/deleteOrphanedEntities';
|
||||
import { EventBroker, EventsService } from '@backstage/plugin-events-node';
|
||||
import { CATALOG_ERRORS_TOPIC } from '../constants';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import { LoggerService, SchedulerService } from '@backstage/backend-plugin-api';
|
||||
|
||||
const CACHE_TTL = 5;
|
||||
|
||||
@@ -55,7 +54,7 @@ export type ProgressTracker = ReturnType<typeof progressTracker>;
|
||||
// is just one.
|
||||
export class DefaultCatalogProcessingEngine {
|
||||
private readonly config: Config;
|
||||
private readonly scheduler?: PluginTaskScheduler;
|
||||
private readonly scheduler?: SchedulerService;
|
||||
private readonly logger: LoggerService;
|
||||
private readonly knex: Knex;
|
||||
private readonly processingDatabase: ProcessingDatabase;
|
||||
@@ -75,7 +74,7 @@ export class DefaultCatalogProcessingEngine {
|
||||
|
||||
constructor(options: {
|
||||
config: Config;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
scheduler?: SchedulerService;
|
||||
logger: LoggerService;
|
||||
knex: Knex;
|
||||
processingDatabase: ProcessingDatabase;
|
||||
|
||||
@@ -18,7 +18,6 @@ import {
|
||||
createLegacyAuthAdapters,
|
||||
HostDiscovery,
|
||||
} from '@backstage/backend-common';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import {
|
||||
DefaultNamespaceEntityPolicy,
|
||||
Entity,
|
||||
@@ -113,6 +112,7 @@ import {
|
||||
PermissionsService,
|
||||
RootConfigService,
|
||||
UrlReaderService,
|
||||
SchedulerService,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
|
||||
/**
|
||||
@@ -134,7 +134,7 @@ export type CatalogEnvironment = {
|
||||
config: RootConfigService;
|
||||
reader: UrlReaderService;
|
||||
permissions: PermissionsService | PermissionAuthorizer;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
scheduler?: SchedulerService;
|
||||
discovery?: DiscoveryService;
|
||||
auth?: AuthService;
|
||||
httpAuth?: HttpAuthService;
|
||||
|
||||
@@ -47,12 +47,12 @@ import {
|
||||
validateRequestBody,
|
||||
} from './util';
|
||||
import { createOpenApiRouter } from '../schema/openapi.generated';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { parseEntityPaginationParams } from './request/parseEntityPaginationParams';
|
||||
import {
|
||||
AuthService,
|
||||
HttpAuthService,
|
||||
LoggerService,
|
||||
SchedulerService,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { LocationAnalyzer } from '@backstage/plugin-catalog-node';
|
||||
|
||||
@@ -68,7 +68,7 @@ export interface RouterOptions {
|
||||
locationService: LocationService;
|
||||
orchestrator?: CatalogProcessingOrchestrator;
|
||||
refreshService?: RefreshService;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
scheduler?: SchedulerService;
|
||||
logger: LoggerService;
|
||||
config: Config;
|
||||
permissionIntegrationRouter?: express.Router;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
import { Config } from '@backstage/config';
|
||||
import { EventsService } from '@backstage/plugin-events-node';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { SchedulerService } from '@backstage/backend-plugin-api';
|
||||
|
||||
// @public
|
||||
export class AwsSqsConsumingEventPublisher {
|
||||
@@ -15,7 +15,7 @@ export class AwsSqsConsumingEventPublisher {
|
||||
config: Config;
|
||||
events: EventsService;
|
||||
logger: LoggerService;
|
||||
scheduler: PluginTaskScheduler;
|
||||
scheduler: SchedulerService;
|
||||
}): AwsSqsConsumingEventPublisher[];
|
||||
// (undocumented)
|
||||
start(): Promise<void>;
|
||||
|
||||
@@ -50,7 +50,6 @@
|
||||
"@aws-sdk/client-sqs": "^3.350.0",
|
||||
"@backstage/backend-common": "workspace:^",
|
||||
"@backstage/backend-plugin-api": "workspace:^",
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/config": "workspace:^",
|
||||
"@backstage/plugin-events-node": "workspace:^",
|
||||
"@backstage/types": "workspace:^",
|
||||
|
||||
+4
-4
@@ -19,7 +19,7 @@ import {
|
||||
ReceiveMessageCommand,
|
||||
SQSClient,
|
||||
} from '@aws-sdk/client-sqs';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { SchedulerService } from '@backstage/backend-plugin-api';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { TestEventsService } from '@backstage/plugin-events-backend-test-utils';
|
||||
import { mockClient } from 'aws-sdk-client-mock';
|
||||
@@ -56,7 +56,7 @@ describe('AwsSqsConsumingEventPublisher', () => {
|
||||
const events = new TestEventsService();
|
||||
const scheduler = {
|
||||
scheduleTask: jest.fn(),
|
||||
} as unknown as PluginTaskScheduler;
|
||||
} as unknown as SchedulerService;
|
||||
|
||||
const publishers = AwsSqsConsumingEventPublisher.fromConfig({
|
||||
config,
|
||||
@@ -90,7 +90,7 @@ describe('AwsSqsConsumingEventPublisher', () => {
|
||||
const events = new TestEventsService();
|
||||
const scheduler = {
|
||||
scheduleTask: jest.fn(),
|
||||
} as unknown as PluginTaskScheduler;
|
||||
} as unknown as SchedulerService;
|
||||
|
||||
const publishers = AwsSqsConsumingEventPublisher.fromConfig({
|
||||
config,
|
||||
@@ -141,7 +141,7 @@ describe('AwsSqsConsumingEventPublisher', () => {
|
||||
scheduleTask: (spec: { fn: () => Promise<void> }) => {
|
||||
taskFn = spec.fn;
|
||||
},
|
||||
} as unknown as PluginTaskScheduler;
|
||||
} as unknown as SchedulerService;
|
||||
|
||||
// on the first attempt, we will return 1 message and 0 messages afterwards
|
||||
const sqsMock = mockClient(SQSClient);
|
||||
|
||||
+3
-3
@@ -22,7 +22,7 @@ import {
|
||||
SQSClient,
|
||||
} from '@aws-sdk/client-sqs';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { SchedulerService } from '@backstage/backend-plugin-api';
|
||||
import { Config } from '@backstage/config';
|
||||
import { EventsService } from '@backstage/plugin-events-node';
|
||||
import { AwsSqsEventSourceConfig, readConfig } from './config';
|
||||
@@ -46,7 +46,7 @@ export class AwsSqsConsumingEventPublisher {
|
||||
config: Config;
|
||||
events: EventsService;
|
||||
logger: LoggerService;
|
||||
scheduler: PluginTaskScheduler;
|
||||
scheduler: SchedulerService;
|
||||
}): AwsSqsConsumingEventPublisher[] {
|
||||
return readConfig(env.config).map(
|
||||
config =>
|
||||
@@ -62,7 +62,7 @@ export class AwsSqsConsumingEventPublisher {
|
||||
private constructor(
|
||||
private readonly logger: LoggerService,
|
||||
private readonly events: EventsService,
|
||||
private readonly scheduler: PluginTaskScheduler,
|
||||
private readonly scheduler: SchedulerService,
|
||||
config: AwsSqsEventSourceConfig,
|
||||
) {
|
||||
this.topic = config.topic;
|
||||
|
||||
@@ -34,7 +34,7 @@ export interface AwsSqsEventSourceConfig {
|
||||
endpoint?: string;
|
||||
}
|
||||
|
||||
// TODO(pjungermann): validation could be improved similar to `convertToHumanDuration` at @backstage/backend-tasks
|
||||
// TODO(pjungermann): validation could be improved similar to `convertToHumanDuration` at @backstage/backend-plugin-api
|
||||
function readOptionalHumanDuration(
|
||||
config: Config,
|
||||
key: string,
|
||||
|
||||
@@ -37,10 +37,10 @@ import { PermissionRule } from '@backstage/plugin-permission-node';
|
||||
import { PermissionRuleParams } from '@backstage/plugin-permission-common';
|
||||
import { PermissionsService } from '@backstage/backend-plugin-api';
|
||||
import { PluginDatabaseManager } from '@backstage/backend-common';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { RESOURCE_TYPE_SCAFFOLDER_ACTION } from '@backstage/plugin-scaffolder-common/alpha';
|
||||
import { RESOURCE_TYPE_SCAFFOLDER_TEMPLATE } from '@backstage/plugin-scaffolder-common/alpha';
|
||||
import { ScaffolderEntitiesProcessor as ScaffolderEntitiesProcessor_2 } from '@backstage/plugin-catalog-backend-module-scaffolder-entity-model';
|
||||
import { SchedulerService } from '@backstage/backend-plugin-api';
|
||||
import { Schema } from 'jsonschema';
|
||||
import { ScmIntegrationRegistry } from '@backstage/integration';
|
||||
import { ScmIntegrations } from '@backstage/integration';
|
||||
@@ -509,7 +509,7 @@ export interface RouterOptions {
|
||||
// (undocumented)
|
||||
reader: UrlReaderService;
|
||||
// (undocumented)
|
||||
scheduler?: PluginTaskScheduler;
|
||||
scheduler?: SchedulerService;
|
||||
// (undocumented)
|
||||
taskBroker?: TaskBroker_2;
|
||||
// @deprecated (undocumented)
|
||||
|
||||
@@ -64,7 +64,6 @@
|
||||
"@backstage/backend-common": "workspace:^",
|
||||
"@backstage/backend-defaults": "workspace:^",
|
||||
"@backstage/backend-plugin-api": "workspace:^",
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/catalog-client": "workspace:^",
|
||||
"@backstage/catalog-model": "workspace:^",
|
||||
"@backstage/config": "workspace:^",
|
||||
|
||||
@@ -19,7 +19,6 @@ import {
|
||||
HostDiscovery,
|
||||
PluginDatabaseManager,
|
||||
} from '@backstage/backend-common';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { CatalogApi } from '@backstage/catalog-client';
|
||||
import {
|
||||
CompoundEntityRef,
|
||||
@@ -88,6 +87,7 @@ import {
|
||||
LifecycleService,
|
||||
PermissionsService,
|
||||
UrlReaderService,
|
||||
SchedulerService,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
IdentityApi,
|
||||
@@ -148,7 +148,7 @@ export interface RouterOptions {
|
||||
lifecycle?: LifecycleService;
|
||||
database: PluginDatabaseManager;
|
||||
catalogClient: CatalogApi;
|
||||
scheduler?: PluginTaskScheduler;
|
||||
scheduler?: SchedulerService;
|
||||
actions?: TemplateAction<any, any>[];
|
||||
/**
|
||||
* @deprecated taskWorkers is deprecated in favor of concurrentTasksLimit option with a single TaskWorker
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user