Skip to content

Commit a5f866d

Browse files
author
David Hasani
committed
don't show buildCode step for SQL conversions
1 parent f4ba1ad commit a5f866d

File tree

6 files changed

+26
-20
lines changed

6 files changed

+26
-20
lines changed

packages/core/src/amazonqGumby/chat/controller/messenger/messenger.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -728,6 +728,12 @@ ${codeSnippet}
728728
id: ButtonActions.SELECT_SQL_CONVERSION_METADATA_FILE,
729729
})
730730

731+
buttons.push({
732+
keepCardAfterClick: false,
733+
text: 'Cancel',
734+
id: ButtonActions.CANCEL_TRANSFORMATION_FORM,
735+
})
736+
731737
this.dispatcher.sendChatMessage(
732738
new ChatMessage(
733739
{

packages/core/src/codewhisperer/commands/startTransformByQ.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ export async function processSQLConversionTransformFormInput(pathToProject: stri
101101
transformByQState.setProjectName(path.basename(pathToProject))
102102
transformByQState.setProjectPath(pathToProject)
103103
transformByQState.setSchema(schema)
104+
transformByQState.setSourceJDKVersion(JDKVersion.JDK8) // use dummy value of JDK8 so that startJob API can be called
105+
// targetJDKVersion defaults to JDK17, the only supported version, which is fine
104106
}
105107

106108
export async function validateSQLMetadataFile(fileContents: string, message: any) {
@@ -136,7 +138,7 @@ export async function validateSQLMetadataFile(fileContents: string, message: any
136138
serverNodeLocations.forEach((serverNodeLocation: any) => {
137139
const schemaNodes = serverNodeLocation['FullNameNodeInfoList'][0]['nameParts'][0][
138140
'FullNameNodeInfo'
139-
].filter((node: any) => node['$']['typeNode'] === 'schema')
141+
].filter((node: any) => node['$']['typeNode'].toLowerCase() === 'schema')
140142
schemaNodes.forEach((node: any) => {
141143
schemaNames.add(node['$']['nameNode'].toUpperCase())
142144
})

packages/core/src/codewhisperer/models/constants.ts

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -507,18 +507,10 @@ export const selectSQLMetadataFileHelpMessage =
507507

508508
export const invalidMetadataFileUnsupportedSourceDB = `Sorry, your .sct metadata file appears to be invalid; the source DB must be Oracle.`
509509

510-
export const invalidMetadataFileUnsupportedTargetDB = `Sorry, your .sct metadata file appears to be invalid; the target DB must be Aurora Postgresql or Amazon RDS for Postgresql.`
510+
export const invalidMetadataFileUnsupportedTargetDB = `Sorry, your .sct metadata file appears to be invalid; the target DB must be Aurora PostgreSQL or Amazon RDS for PostgreSQL.`
511511

512512
export const invalidMetadataFileErrorParsing = 'Sorry, the .sct metadata file you provided appears to be invalid.'
513513

514-
export const oracleVendor = 'Oracle'
515-
516-
export const otherVendor = 'Other'
517-
518-
export const auroraTargetVendor = 'Amazon Aurora PostgreSQL'
519-
520-
export const rdsTargetVendor = 'Amazon RDS for PostgreSQL'
521-
522514
export const failedToStartJobChatMessage =
523515
"Sorry, I couldn't begin the transformation. Please try starting the transformation again."
524516

packages/core/src/codewhisperer/models/model.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -756,7 +756,6 @@ export class TransformByQState {
756756
this.sourceDB = undefined
757757
this.targetDB = undefined
758758
this.sourceServerName = ''
759-
this.schema = ''
760759
this.schemaOptions.clear()
761760
this.errorLog = ''
762761
this.customBuildCommand = ''

packages/core/src/codewhisperer/service/transformByQ/transformApiHandler.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,10 @@ export async function uploadPayload(payloadFileName: string, uploadContext?: Upl
212212
transformByQState.setJobId(encodeHTML(response.uploadId))
213213
}
214214
jobPlanProgress['uploadCode'] = StepProgress.Succeeded
215+
if (transformByQState.getSchema()) {
216+
// if doing a SQL conversion, we don't build the code, so mark this step as succeeded immediately so that next step renders
217+
jobPlanProgress['buildCode'] = StepProgress.Succeeded
218+
}
215219
updateJobHistory()
216220
return response.uploadId
217221
}
@@ -404,17 +408,16 @@ export async function zipCode(
404408
export async function startJob(uploadId: string) {
405409
const sourceLanguageVersion = `JAVA_${transformByQState.getSourceJDKVersion()}`
406410
const targetLanguageVersion = `JAVA_${transformByQState.getTargetJDKVersion()}`
407-
// TO-DO: figure out what to set source and target language version too, along with transformation type
408411
try {
409412
const response = await codeWhisperer.codeWhispererClient.codeModernizerStartCodeTransformation({
410413
workspaceState: {
411414
uploadId: uploadId,
412415
programmingLanguage: { languageName: CodeWhispererConstants.defaultLanguage.toLowerCase() },
413416
},
414417
transformationSpec: {
415-
transformationType: CodeWhispererConstants.transformationType,
416-
source: { language: sourceLanguageVersion },
417-
target: { language: targetLanguageVersion },
418+
transformationType: CodeWhispererConstants.transformationType, // shared b/w language upgrades & sql conversions for now
419+
source: { language: sourceLanguageVersion }, // dummy value of JDK8 used for SQL conversions just so that this API can be called
420+
target: { language: targetLanguageVersion }, // always JDK17
418421
},
419422
})
420423
if (response.$response.requestId) {
@@ -621,6 +624,7 @@ export async function pollTransformationJob(jobId: string, validStates: string[]
621624
transformationJobId: jobId,
622625
})
623626
status = response.transformationJob.status!
627+
// if doing a SQL conversion, we don't build the code, so mark this step as succeeded immediately so that next step gets rendered
624628
if (CodeWhispererConstants.validStatesForBuildSucceeded.includes(status)) {
625629
jobPlanProgress['buildCode'] = StepProgress.Succeeded
626630
}

packages/core/src/codewhisperer/service/transformByQ/transformationHubViewProvider.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -263,10 +263,13 @@ export class TransformationHubViewProvider implements vscode.WebviewViewProvider
263263
return CodeWhispererConstants.filesUploadedMessage
264264
case 'PREPARING':
265265
case 'PREPARED':
266-
return CodeWhispererConstants.buildingCodeMessage.replace(
267-
'JAVA_VERSION_HERE',
268-
transformByQState.getSourceJDKVersion() ?? ''
269-
)
266+
// for SQL conversions, skip to planningMessage since we don't build the code
267+
return transformByQState.getSchema()
268+
? CodeWhispererConstants.planningMessage
269+
: CodeWhispererConstants.buildingCodeMessage.replace(
270+
'JAVA_VERSION_HERE',
271+
transformByQState.getSourceJDKVersion() ?? ''
272+
)
270273
case 'PLANNING':
271274
case 'PLANNED':
272275
return CodeWhispererConstants.planningMessage
@@ -331,7 +334,7 @@ export class TransformationHubViewProvider implements vscode.WebviewViewProvider
331334
activeStepId === 0
332335
)
333336
const buildMarkup =
334-
activeStepId >= 1 && !transformByQState.getMetadataPathSQL() // for SQL conversions, don't show buildCode step
337+
activeStepId >= 1 && !transformByQState.getSchema() // for SQL conversions, don't show buildCode step
335338
? simpleStep(
336339
this.getProgressIconMarkup(jobPlanProgress['buildCode']),
337340
CodeWhispererConstants.buildCodeStepMessage,

0 commit comments

Comments
 (0)