Skip to content

Commit f67a099

Browse files
authored
Merge pull request #4584 from Microsoft/users/omeshp/portDownloadPackageHotfix
BugFix: Package Management artifact download shows successful even wh…
2 parents b6ac0f2 + 115d1a7 commit f67a099

File tree

3 files changed

+50
-23
lines changed

3 files changed

+50
-23
lines changed

Tasks/DownloadPackage/download.ts

Lines changed: 48 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,20 @@ export async function downloadPackage(collectionUrl: string, credentialHandler:
5050

5151
await new Promise((resolve, reject) => {
5252
feedConnection.getCoreApi().restClient.get(packageUrl, ApiVersion, null, { responseIsCollection: false }, async function (error, status, result) {
53-
if (!!error && status != 200) {
54-
reject(tl.loc("FailedToGetPackageMetadata", error));
53+
if (!!error || status != 200) {
54+
return reject(tl.loc("FailedToGetPackageMetadata", error));
5555
}
5656

5757
var packageType = result.protocolType.toLowerCase();
5858
var packageName = result.name;
5959

6060
if (packageType == "nuget") {
61-
var downloadUrl = await getDownloadUrl(packageConnection.getCoreApi().vsoClient, feedId, packageName, version);
61+
62+
var getDownloadUrlPromise = getDownloadUrl(packageConnection.getCoreApi().vsoClient, feedId, packageName, version)
63+
getDownloadUrlPromise.catch((error) => {
64+
return reject(error)
65+
});
66+
var downloadUrl = await getDownloadUrlPromise;
6267

6368
if (!tl.exist(downloadPath)) {
6469
tl.mkdirP(downloadPath);
@@ -68,18 +73,29 @@ export async function downloadPackage(collectionUrl: string, credentialHandler:
6873
var unzipLocation = path.join(downloadPath, "");
6974

7075
console.log(tl.loc("StartingDownloadOfPackage", packageName, zipLocation));
71-
await downloadNugetPackage(packageConnection.getCoreApi(), downloadUrl, zipLocation);
76+
77+
var downloadNugetPackagePromise = downloadNugetPackage(packageConnection.getCoreApi(), downloadUrl, zipLocation);
78+
downloadNugetPackagePromise.catch((error) => {
79+
return reject(error)
80+
});
81+
await downloadNugetPackagePromise;
82+
7283
console.log(tl.loc("ExtractingNugetPackage", packageName, unzipLocation));
73-
await unzip(zipLocation, unzipLocation);
84+
85+
var unzipPromise = unzip(zipLocation, unzipLocation);
86+
unzipPromise.catch((error) => {
87+
return reject(error)
88+
});
89+
await unzipPromise;
7490

7591
if (tl.exist(zipLocation)) {
7692
tl.rmRF(zipLocation, false);
7793
}
7894

79-
resolve();
95+
return resolve();
8096
}
8197
else {
82-
reject(tl.loc("PackageTypeNotSupported"));
98+
return reject(tl.loc("PackageTypeNotSupported"));
8399
}
84100
});
85101
});
@@ -88,19 +104,30 @@ export async function downloadPackage(collectionUrl: string, credentialHandler:
88104
export async function getNuGetPackageUrl(vsoClient: vsom.VsoClient, feedId: string, packageId: string): Promise<string> {
89105
var PackagingAreaName = "Packaging";
90106
var PackageAreaId = "7A20D846-C929-4ACC-9EA2-0D5A7DF1B197";
91-
92-
var data = await vsoClient.getVersioningData(ApiVersion, PackagingAreaName, PackageAreaId, { feedId: feedId, packageId: packageId });
93-
94-
return data.requestUrl;
107+
108+
return new Promise<string>((resolve, reject) => {
109+
var getVersioningDataPromise = vsoClient.getVersioningData(ApiVersion, PackagingAreaName, PackageAreaId, { feedId: feedId, packageId: packageId });
110+
getVersioningDataPromise.then((result) => {
111+
return resolve(result.requestUrl);
112+
});
113+
getVersioningDataPromise.catch((error) => {
114+
return reject(error)
115+
});
116+
});
95117
}
96118

97119
export async function getDownloadUrl(vsoClient: vsom.VsoClient, feedId: string, packageName: string, version: string): Promise<string> {
98120
var NugetArea = "NuGet"
99121
var PackageVersionContentResourceId = "6EA81B8C-7386-490B-A71F-6CF23C80B388"
100-
101-
var data = await vsoClient.getVersioningData(ApiVersion, NugetArea, PackageVersionContentResourceId, { feedId: feedId, packageName: packageName, packageVersion: version });
102-
103-
return data.requestUrl;
122+
return new Promise<string>((resolve, reject) => {
123+
var getVersioningDataPromise = vsoClient.getVersioningData(ApiVersion, NugetArea, PackageVersionContentResourceId, { feedId: feedId, packageName: packageName, packageVersion: version });
124+
getVersioningDataPromise.then((result) => {
125+
return resolve(result.requestUrl);
126+
});
127+
getVersioningDataPromise.catch((error) => {
128+
return reject(error)
129+
});
130+
});
104131
}
105132

106133
export async function downloadNugetPackage(coreApi: corem.ICoreApi, downloadUrl: string, downloadPath: string): Promise<void> {
@@ -110,17 +137,17 @@ export async function downloadNugetPackage(coreApi: corem.ICoreApi, downloadUrl:
110137
coreApi.restClient.httpClient.getStream(downloadUrl, accept, function (error, status, result) {
111138
tl.debug("Downloading package from url: " + downloadUrl);
112139
tl.debug("Download status: " + status);
113-
if (!!error && status != 200) {
114-
reject(tl.loc("FailedToDownloadNugetPackage", downloadUrl, error));
140+
if (!!error || status != 200) {
141+
return reject(tl.loc("FailedToDownloadNugetPackage", downloadUrl, error));
115142
}
116143

117144
result.pipe(file);
118145
result.on("end", () => {
119146
console.log(tl.loc("PackageDownloadSuccessful"));
120-
resolve();
147+
return resolve();
121148
});
122149
result.on("error", err => {
123-
reject(tl.loc("FailedToDownloadNugetPackage", downloadUrl, err));
150+
return reject(tl.loc("FailedToDownloadNugetPackage", downloadUrl, err));
124151
});
125152
});
126153
});
@@ -139,11 +166,11 @@ export async function unzip(zipLocation: string, unzipLocation: string): Promise
139166

140167
var unzipper = new DecompressZip(zipLocation);
141168
unzipper.on('error', err => {
142-
reject(tl.loc("ExtractionFailed", err))
169+
return reject(tl.loc("ExtractionFailed", err))
143170
});
144171
unzipper.on('extract', log => {
145172
tl.debug('Extracted ' + zipLocation + ' to ' + unzipLocation + ' successfully');
146-
resolve();
173+
return resolve();
147174
});
148175

149176
unzipper.extract({

Tasks/DownloadPackage/task.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"version": {
1010
"Major": 0,
1111
"Minor": 1,
12-
"Patch": 6
12+
"Patch": 7
1313
},
1414
"demands": [],
1515
"minimumAgentVersion": "1.99.0",

Tasks/DownloadPackage/task.loc.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"version": {
1010
"Major": 0,
1111
"Minor": 1,
12-
"Patch": 6
12+
"Patch": 7
1313
},
1414
"demands": [],
1515
"minimumAgentVersion": "1.99.0",

0 commit comments

Comments
 (0)