Skip to content

Commit 2f890c5

Browse files
author
Klein Hu
committed
Fix the relative path issue in GetWebServiceDefinitionFromFile().
Root cause: GetFullPath() is based on the current process(powershell.exe) start point to generate the full path. But actually inside powershell, the user may already moved to another folder.
1 parent aa72785 commit 2f890c5

File tree

3 files changed

+21
-6
lines changed

3 files changed

+21
-6
lines changed

src/ResourceManager/MachineLearning/Commands.MachineLearning/Cmdlets/ImportWebServiceDefinition.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,9 @@ public override void ExecuteCmdlet()
5050
ImportWebServiceDefinition.ImportFromFileParamSet,
5151
StringComparison.OrdinalIgnoreCase))
5252
{
53-
jsonDefinition = CmdletHelpers.GetWebServiceDefinitionFromFile(this.InputFile);
53+
jsonDefinition = CmdletHelpers.GetWebServiceDefinitionFromFile(
54+
this.SessionState.Path.CurrentFileSystemLocation.Path,
55+
this.InputFile);
5456
}
5557

5658
WebService serviceDefinition = ModelsSerializationUtil.GetAzureMLWebServiceFromJsonDefinition(jsonDefinition);

src/ResourceManager/MachineLearning/Commands.MachineLearning/Cmdlets/NewAzureMLWebService.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,12 @@ protected override void RunCmdlet()
8383
NewAzureMLWebService.CreateFromFileParameterSet,
8484
StringComparison.OrdinalIgnoreCase))
8585
{
86-
string jsonDefinition = CmdletHelpers.GetWebServiceDefinitionFromFile(this.DefinitionFile);
87-
this.NewWebServiceDefinition = ModelsSerializationUtil.GetAzureMLWebServiceFromJsonDefinition(jsonDefinition);
86+
string jsonDefinition =
87+
CmdletHelpers.GetWebServiceDefinitionFromFile(
88+
this.SessionState.Path.CurrentFileSystemLocation.Path,
89+
this.DefinitionFile);
90+
this.NewWebServiceDefinition =
91+
ModelsSerializationUtil.GetAzureMLWebServiceFromJsonDefinition(jsonDefinition);
8892
}
8993

9094
WebService newWebService =

src/ResourceManager/MachineLearning/Commands.MachineLearning/Utilities/CmdletHelpers.cs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,19 @@ internal static bool TryParseMlWebServiceMetadataFromResourceId(
4949
return false;
5050
}
5151

52-
internal static string GetWebServiceDefinitionFromFile(string definitionFilePath)
52+
internal static string GetWebServiceDefinitionFromFile(string currentPath, string definitionFilePath)
5353
{
54-
var definitionFileFullPath = Path.GetFullPath(definitionFilePath);
55-
if (!File.Exists(definitionFileFullPath))
54+
string definitionFileFullPath;
55+
if (Path.IsPathRooted(definitionFilePath))
56+
{
57+
definitionFileFullPath = definitionFilePath;
58+
}
59+
else
60+
{
61+
definitionFileFullPath = Path.Combine(currentPath, definitionFilePath);
62+
}
63+
64+
if (!File.Exists(definitionFilePath))
5665
{
5766
throw new FileNotFoundException(Resources.MissingDefinitionFile, definitionFilePath);
5867
}

0 commit comments

Comments
 (0)