Skip to content

Commit 0350559

Browse files
committed
block region il from scheduler
1 parent 95a07dd commit 0350559

6 files changed

Lines changed: 24 additions & 10 deletions

File tree

src/commands/scheduler/create.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { PromptService } from 'src/services/prompt-service';
66
import { SchedulerService } from 'src/services/scheduler-service';
77
import { printJobs, validateCronExpression, validateTargetUrl } from 'src/services/scheduler-service.utils';
88
import logger from 'src/utils/logger';
9-
import { chooseRegionIfNeeded, getRegionFromString } from 'src/utils/region';
9+
import { chooseSchedulerRegionIfNeeded, getRegionFromString } from 'src/utils/region';
1010
import { addPrefixIfNotExists } from 'src/utils/urls-builder';
1111
import { isDefined } from 'src/utils/validations';
1212

@@ -29,7 +29,7 @@ export default class SchedulerCreate extends AuthenticatedCommand {
2929
const parsedRegion = getRegionFromString(region);
3030

3131
if (!appId) appId = await DynamicChoicesService.chooseApp();
32-
const selectedRegion = await chooseRegionIfNeeded(parsedRegion, { appId });
32+
const selectedRegion = await chooseSchedulerRegionIfNeeded(parsedRegion, { appId });
3333
if (!name) name = await PromptService.promptInput(SchedulerMessages.name, true);
3434
if (!schedule) schedule = await PromptService.promptInput(SchedulerMessages.schedule, true);
3535
validateCronExpression(schedule);

src/commands/scheduler/delete.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { SchedulerBaseFlags } from 'src/consts/scheduler/flags';
33
import { DynamicChoicesService } from 'src/services/dynamic-choices-service';
44
import { SchedulerService } from 'src/services/scheduler-service';
55
import logger from 'src/utils/logger';
6-
import { chooseRegionIfNeeded, getRegionFromString } from 'src/utils/region';
6+
import { chooseSchedulerRegionIfNeeded, getRegionFromString } from 'src/utils/region';
77

88
export default class SchedulerDelete extends AuthenticatedCommand {
99
static description = 'Delete a scheduler job for an app';
@@ -20,7 +20,7 @@ export default class SchedulerDelete extends AuthenticatedCommand {
2020
const parsedRegion = getRegionFromString(region);
2121

2222
if (!appId) appId = await DynamicChoicesService.chooseApp();
23-
const selectedRegion = await chooseRegionIfNeeded(parsedRegion, { appId });
23+
const selectedRegion = await chooseSchedulerRegionIfNeeded(parsedRegion, { appId });
2424
if (!name) name = await DynamicChoicesService.chooseSchedulerJob(appId, selectedRegion);
2525

2626
logger.debug(`Deleting scheduler job ${name} for appId: ${appId}`, this.DEBUG_TAG);

src/commands/scheduler/list.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@ import { DynamicChoicesService } from 'src/services/dynamic-choices-service';
44
import { SchedulerService } from 'src/services/scheduler-service';
55
import { printJobs } from 'src/services/scheduler-service.utils';
66
import logger from 'src/utils/logger';
7-
import { chooseRegionIfNeeded, getRegionFromString } from 'src/utils/region';
7+
import { chooseSchedulerRegionIfNeeded, getRegionFromString, regionFlag } from 'src/utils/region';
88

99
export default class SchedulerList extends AuthenticatedCommand {
1010
static description = 'List all scheduler jobs for an app';
1111
static examples = ['<%= config.bin %> <%= command.id %> -a APP_ID'];
1212

1313
static flags = SchedulerList.serializeFlags({
1414
appId: SchedulerBaseFlags.appId,
15+
...regionFlag,
1516
});
1617

1718
DEBUG_TAG = 'scheduler_list';
@@ -23,7 +24,7 @@ export default class SchedulerList extends AuthenticatedCommand {
2324
const parsedRegion = getRegionFromString(region);
2425

2526
appId = appId ? Number(appId) : await DynamicChoicesService.chooseApp();
26-
const selectedRegion = await chooseRegionIfNeeded(parsedRegion, { appId });
27+
const selectedRegion = await chooseSchedulerRegionIfNeeded(parsedRegion, { appId });
2728

2829
logger.debug(`Listing scheduler jobs for appId: ${appId}`, this.DEBUG_TAG);
2930
this.preparePrintCommand(this, { appId, region: selectedRegion });

src/commands/scheduler/run.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { SchedulerBaseFlags } from 'src/consts/scheduler/flags';
33
import { DynamicChoicesService } from 'src/services/dynamic-choices-service';
44
import { SchedulerService } from 'src/services/scheduler-service';
55
import logger from 'src/utils/logger';
6-
import { chooseRegionIfNeeded, getRegionFromString } from 'src/utils/region';
6+
import { chooseSchedulerRegionIfNeeded, getRegionFromString } from 'src/utils/region';
77

88
export default class SchedulerRun extends AuthenticatedCommand {
99
static description = 'Manually trigger a scheduled job to run for an app';
@@ -20,7 +20,7 @@ export default class SchedulerRun extends AuthenticatedCommand {
2020
const parsedRegion = getRegionFromString(region);
2121

2222
if (!appId) appId = await DynamicChoicesService.chooseApp();
23-
const selectedRegion = await chooseRegionIfNeeded(parsedRegion, { appId });
23+
const selectedRegion = await chooseSchedulerRegionIfNeeded(parsedRegion, { appId });
2424
if (!name) name = await DynamicChoicesService.chooseSchedulerJob(appId, selectedRegion);
2525

2626
logger.debug(`Running scheduler job ${name} for appId: ${appId}`, this.DEBUG_TAG);

src/commands/scheduler/update.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { SchedulerService } from 'src/services/scheduler-service';
77
import { printJobs, validateCronExpression, validateTargetUrl } from 'src/services/scheduler-service.utils';
88
import { UpdateJobRequest } from 'src/types/services/scheduler-service';
99
import logger from 'src/utils/logger';
10-
import { chooseRegionIfNeeded, getRegionFromString } from 'src/utils/region';
10+
import { chooseSchedulerRegionIfNeeded, getRegionFromString } from 'src/utils/region';
1111
import { addPrefixIfNotExists } from 'src/utils/urls-builder';
1212
import { isDefined, isDefinedAndNotEmpty } from 'src/utils/validations';
1313

@@ -30,7 +30,7 @@ export default class SchedulerUpdate extends AuthenticatedCommand {
3030
const parsedRegion = getRegionFromString(region);
3131

3232
if (!appId) appId = await DynamicChoicesService.chooseApp();
33-
const selectedRegion = await chooseRegionIfNeeded(parsedRegion, { appId });
33+
const selectedRegion = await chooseSchedulerRegionIfNeeded(parsedRegion, { appId });
3434
const jobs = await SchedulerService.listJobs(appId, selectedRegion);
3535
if (!name) name = await DynamicChoicesService.chooseSchedulerJob(appId, selectedRegion, jobs);
3636

src/utils/region.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,16 @@ export async function chooseRegionIfNeeded(
7272
const returnedRegion = await regionsPrompt();
7373
return getRegionFromString(returnedRegion);
7474
}
75+
76+
export async function chooseSchedulerRegionIfNeeded(
77+
region?: Region,
78+
options?: { appId?: number; appVersionId?: number },
79+
): Promise<Region | undefined> {
80+
if (region === Region.IL) {
81+
throw new Error(
82+
'Cloud Scheduler is not available in the IL region. Please use a different region (US, EU, or AU) for scheduler operations.',
83+
);
84+
}
85+
86+
return chooseRegionIfNeeded(region, options);
87+
}

0 commit comments

Comments
 (0)