Adding External Streaming Job I/O validation (#13195)

* Added Tools Service call for ValidateStreamingJob

* Partial addition of ESJ

* adding test mocks

* Validation working

* Modifying command visibility logic to submatch ESJs in addition to files

* Changed string literal to constant, corrected attribute order

* Added tests

* correcting casing that's causing test failures on linux

* Swapping Thenable for Promise

* excluded validate from command palette
This commit is contained in:
Benjin Dubishar
2020-11-02 19:02:20 -08:00
committed by GitHub
parent ba80000e27
commit 342ff47e51
20 changed files with 198 additions and 37 deletions

View File

@@ -476,6 +476,12 @@ export interface GenerateDeployPlanParams {
export interface GetOptionsFromProfileParams {
profilePath: string;
}
export interface ValidateStreamingJobParams {
packageFilePath: string,
createStreamingJobTsql: string
}
export namespace ExportRequest {
export const type = new RequestType<ExportParams, mssql.DacFxResult, void, void>('dacfx/export');
}
@@ -503,7 +509,12 @@ export namespace GenerateDeployPlanRequest {
export namespace GetOptionsFromProfileRequest {
export const type = new RequestType<GetOptionsFromProfileParams, mssql.DacFxOptionsResult, void, void>('dacfx/getOptionsFromProfile');
}
// ------------------------------- < DacFx > ------------------------------------
export namespace ValidateStreamingJobRequest {
export const type = new RequestType<ValidateStreamingJobParams, mssql.ValidateStreamingJobResult, void, void>('dacfx/validateStreamingJob');
}
// ------------------------------- </ DacFx > ------------------------------------
// ------------------------------- <CMS> ----------------------------------------

View File

@@ -119,4 +119,15 @@ export class DacFxService implements mssql.IDacFxService {
}
);
}
public validateStreamingJob(packageFilePath: string, createStreamingJobTsql: string): Thenable<mssql.ValidateStreamingJobResult> {
const params: contracts.ValidateStreamingJobParams = { packageFilePath: packageFilePath, createStreamingJobTsql: createStreamingJobTsql };
return this.client.sendRequest(contracts.ValidateStreamingJobRequest.type, params).then(
undefined,
e => {
this.client.logFailedRequest(contracts.ValidateStreamingJobRequest.type, e);
return Promise.resolve(undefined);
}
);
}
}

View File

@@ -339,6 +339,7 @@ export interface IDacFxService {
generateDeployScript(packageFilePath: string, databaseName: string, ownerUri: string, taskExecutionMode: azdata.TaskExecutionMode, sqlCommandVariableValues?: Record<string, string>, deploymentOptions?: DeploymentOptions): Thenable<DacFxResult>;
generateDeployPlan(packageFilePath: string, databaseName: string, ownerUri: string, taskExecutionMode: azdata.TaskExecutionMode): Thenable<GenerateDeployPlanResult>;
getOptionsFromProfile(profilePath: string): Thenable<DacFxOptionsResult>;
validateStreamingJob(packageFilePath: string, createStreamingJobTsql: string): Thenable<ValidateStreamingJobResult>;
}
export interface DacFxResult extends azdata.ResultStatus {
@@ -353,6 +354,9 @@ export interface DacFxOptionsResult extends azdata.ResultStatus {
deploymentOptions: DeploymentOptions;
}
export interface ValidateStreamingJobResult extends azdata.ResultStatus {
}
export interface ExportParams {
databaseName: string;
packageFilePath: string;