Skip to content

Commit

Permalink
Revert "Try all 4 NuGet APIs for "GetPackageDetails" in parallel - re…
Browse files Browse the repository at this point in the history
…ferences #1225"

This reverts commit faaf341.

Conflicts:
	RELEASE_NOTES.md
	src/Paket.Core/NuGetV2.fs
  • Loading branch information
forki committed Nov 18, 2015
1 parent 30f5e8c commit eaede07
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 53 deletions.
3 changes: 1 addition & 2 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#### 2.26.0 - 18.11.2015
* Try all 4 NuGet APIs for "GetPackageDetails" in parallel - https://github.com/fsprojects/Paket/issues/1225
#### 2.26.1 - 18.11.2015
* BUGFIX: Better parsing of framework restrictions - https://github.com/fsprojects/Paket/issues/1232
* BUGFIX: Fix props files - https://github.com/fsprojects/Paket/issues/1233
* BUGFIX: Detect AssemblyName from project file name if empty - https://github.com/fsprojects/Paket/issues/1234
Expand Down
77 changes: 26 additions & 51 deletions src/Paket.Core/NuGetV2.fs
Original file line number Diff line number Diff line change
Expand Up @@ -182,75 +182,49 @@ let parseODataDetails(nugetURL,packageName:PackageName,version,raw) =
LicenseUrl = licenseUrl
Unlisted = publishDate = Constants.MagicUnlistingDate }

/// Gets package details from NuGet via OData
let getDetailsFromNuGetViaOData auth nugetURL (packageName:PackageName) (version:SemVerInfo) =
let checkODataWithNormalizedVersion = async {
try

let getDetailsFromNuGetViaODataFast auth nugetURL (packageName:PackageName) (version:SemVerInfo) =
async {
try
let url = sprintf "%s/Packages?$filter=(Id eq '%O') and (NormalizedVersion eq '%s')" nugetURL packageName (version.Normalize())
let! raw = getFromUrl(auth,url,acceptXml)
if verbose then
tracefn "Response from %s:" url
tracefn ""
tracefn "%s" raw
return Some(parseODataDetails(nugetURL,packageName,version,raw))
with
| _ -> return None }

let checkODataWithVersion = async {
try
return parseODataDetails(nugetURL,packageName,version,raw)
with _ ->
let url = sprintf "%s/Packages?$filter=(Id eq '%O') and (Version eq '%O')" nugetURL packageName version
let! raw = getFromUrl(auth,url,acceptXml)
if verbose then
tracefn "Response from %s:" url
tracefn ""
tracefn "%s" raw
return Some(parseODataDetails(nugetURL,packageName,version,raw))
with
| _ -> return None }
return parseODataDetails(nugetURL,packageName,version,raw)
}

let checkPackagesWithVersion = async {
try
/// Gets package details from NuGet via OData
let getDetailsFromNuGetViaOData auth nugetURL (packageName:PackageName) (version:SemVerInfo) =
async {
try
return! getDetailsFromNuGetViaODataFast auth nugetURL packageName version
with _ ->
let url = sprintf "%s/Packages(Id='%O',Version='%O')" nugetURL packageName version
let! response = safeGetFromUrl(auth,url,acceptXml)
match response with
| None -> return None
| Some raw ->
if verbose then
tracefn "Response from %s:" url
tracefn ""
tracefn "%s" raw
return Some(parseODataDetails(nugetURL,packageName,version,raw))
with
| _ -> return None }

let checkPackagesODataWithVersion = async {
try
let url = sprintf "%s/odata/Packages(Id='%O',Version='%O')" nugetURL packageName version
let! raw = getXmlFromUrl(auth,url)


let! raw =
match response with
| Some(r) -> async { return r }
| None ->
let url = sprintf "%s/odata/Packages(Id='%O',Version='%O')" nugetURL packageName version
getXmlFromUrl(auth,url)

if verbose then
tracefn "Response from %s:" url
tracefn ""
tracefn "%s" raw
return Some(parseODataDetails(nugetURL,packageName,version,raw))
with
| _ -> return None }


async {
let! result =
[checkODataWithNormalizedVersion
checkODataWithVersion
checkPackagesWithVersion
checkPackagesODataWithVersion ]
|> Async.Choice

match result with
| Some x -> return x
| None ->
failwithf "Could not get package details for %O %O from %s." packageName version nugetURL
return Unchecked.defaultof<_> // bug in F# 3.0 compiler remove line in F# F 4.0
}
return parseODataDetails(nugetURL,packageName,version,raw)
}

let private loadFromCacheOrODataOrV3 force fileName (auth,nugetURL) package version =
async {
Expand Down Expand Up @@ -285,7 +259,8 @@ let getDetailsFromNuGet force auth nugetURL packageName version =
nugetURL
packageName
version
(fun () -> getDetailsFromNuGetViaOData auth nugetURL packageName version)
(fun () ->
getDetailsFromNuGetViaOData auth nugetURL packageName version)


let fixDatesInArchive fileName =
Expand Down

0 comments on commit eaede07

Please sign in to comment.