Skip to content

Commit

Permalink
Add utils folder include a script to decrypt securestring (#682)
Browse files Browse the repository at this point in the history
* Enable two test cases, and drop the workaround for x-ms-enum

* Add utils folder include a script to decrypt securestring
  • Loading branch information
dolauli committed Aug 31, 2020
1 parent 1c7f54c commit 01e526e
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 2 deletions.
1 change: 1 addition & 0 deletions powershell/autorest-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ module-folder: $(current-folder)/generated
cmdlet-folder: $(module-folder)/cmdlets
model-cmdlet-folder: $(module-folder)/model-cmdlets
custom-cmdlet-folder: $(current-folder)/custom
utils-cmdlet-folder: $(current-folder)/utils
internal-cmdlet-folder: $(current-folder)/internal
test-folder: $(current-folder)/test
runtime-folder: $(module-folder)/runtime
Expand Down
1 change: 1 addition & 0 deletions powershell/generators/nuspec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ export async function generateNuspec(project: Project | NewProject) {
<file src="${removeCd(project.customFolder)}/**/*.*" exclude="${removeCd(project.customFolder)}/readme.md;${removeCd(project.customFolder)}/**/*.cs" />
<file src="${removeCd(project.docsFolder)}/**/*.md" exclude="${removeCd(project.docsFolder)}/readme.md" />
<file src="${removeCd(project.exportsFolder)}/**/ProxyCmdletDefinitions.ps1" />
<file src="${removeCd(project.utilsFolder)}/**/*.*" />
</files>
</package>`, undefined, 'source-file-other');
}
Expand Down
4 changes: 4 additions & 0 deletions powershell/internal/project.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ export class Project extends codeDomProject {
public cmdletFolder!: string;

public customFolder!: string;
public utilsFolder!: string;
public internalFolder!: string;
public testFolder!: string;
public runtimeFolder!: string;
Expand Down Expand Up @@ -193,6 +194,7 @@ export class Project extends codeDomProject {
this.cmdletFolder = await this.state.getValue('cmdlet-folder');

this.customFolder = await this.state.getValue('custom-cmdlet-folder');
this.utilsFolder = await this.state.getValue('utils-cmdlet-folder');
this.internalFolder = await this.state.getValue('internal-cmdlet-folder');
this.testFolder = await this.state.getValue('test-folder');
this.runtimeFolder = await this.state.getValue('runtime-folder');
Expand Down Expand Up @@ -250,6 +252,7 @@ export class NewProject extends codeDomProject {
public cmdletFolder!: string;

public customFolder!: string;
public utilsFolder!: string;
public internalFolder!: string;
public testFolder!: string;
public runtimeFolder!: string;
Expand Down Expand Up @@ -353,6 +356,7 @@ export class NewProject extends codeDomProject {
this.cmdletFolder = await this.state.getValue('cmdlet-folder');

this.customFolder = await this.state.getValue('custom-cmdlet-folder');
this.utilsFolder = await this.state.getValue('utils-cmdlet-folder');
this.internalFolder = await this.state.getValue('internal-cmdlet-folder');
this.testFolder = await this.state.getValue('test-folder');
this.runtimeFolder = await this.state.getValue('runtime-folder');
Expand Down
3 changes: 3 additions & 0 deletions powershell/plugins/powershell-v2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ async function copyRequiredFiles(project: NewProject) {
// Runtime files
await copyResources(join(resources, 'psruntime'), async (fname, content) => project.state.writeFile(join(project.runtimeFolder, fname), content, undefined, sourceFileCSharp), project.overrides, transformOutput);

// utils cmdlets
await copyResources(join(resources, 'utils'), async (fname, content) => project.state.writeFile(join(project.utilsFolder, fname), content, undefined, sourceFileCSharp), project.overrides, transformOutput);

// Modules files
await copyBinaryResources(join(resources, 'modules'), async (fname, content) => project.state.writeFile(join(project.dependencyModuleFolder, fname), content, undefined, 'binary-file'));

Expand Down
16 changes: 16 additions & 0 deletions powershell/resources/utils/Unprotect-SecureString.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#This script converts securestring to plaintext

param(
[Parameter(Mandatory, ValueFromPipeline)]
[System.Security.SecureString]
${SecureString}
)

$ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureString)
try {
$plaintext = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr)
} finally {
[System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr)
}

return $plaintext
7 changes: 5 additions & 2 deletions tests-upgrade/AutoRestUpgradeTest.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ function IsNeedIgnore([string]$inputFileName , [Array]$ignoreArray)
{
$Ignore =$True
break
} elseif ($ignoreDetail.Contains("*.") -and $inputFileName.EndsWith($ignoreDetail.Split(".")[-1])) {
$Ignore =$True
break
}
}
return $Ignore
Expand Down Expand Up @@ -117,8 +120,8 @@ function CompareGeneratedCode([string]$inputSourcePath,[string]$inputTargetPath,
#in m3Path
cd $inputSourcePath
$initFileList = Get-ChildItem -Recurse -force
$initIgnoreFileList = (($inputSourcePath+'\generated\modules'), ($inputSourcePath+'\.gitignore'),($inputSourcePath+'\tools\Resources\.gitignore'))
$targetIgnoreFileList = (($inputTargetPath+'\generated\modules'), ($inputTargetPath+'\.gitignore'),($inputTargetPath+'\tools\Resources\.gitignore'))
$initIgnoreFileList = (($inputSourcePath+'\generated\modules'), ($inputSourcePath+'\utils'), ($inputSourcePath+'\*.nuspec'), ($inputSourcePath+'\.gitignore'),($inputSourcePath+'\tools\Resources\.gitignore'))
$targetIgnoreFileList = (($inputTargetPath+'\generated\modules'), ($inputTargetPath+'\utils'),($inputTargetPath+'\*.nuspec'),($inputTargetPath+'\.gitignore'),($inputTargetPath+'\tools\Resources\.gitignore'))
#foreach initFileList and get the hashcode of them
foreach( $initFile in $initFileList)
{
Expand Down

0 comments on commit 01e526e

Please sign in to comment.