mirror of https://github.com/cirruslabs/tart.git
Registry: provide response body on auth token request failure (#51)
* Registry: provide response body on auth token request failure * Clone.swift: fix typo
This commit is contained in:
parent
f20a98bf01
commit
4a60c41dd3
|
|
@ -19,12 +19,12 @@ struct Clone: AsyncParsableCommand {
|
|||
let registry = try Registry(host: remoteName.host, namespace: remoteName.namespace)
|
||||
try await VMStorageOCI().pull(remoteName, registry: registry)
|
||||
}
|
||||
let removeVM = try VMStorageHelper.open(sourceName)
|
||||
let remoteVM = try VMStorageHelper.open(sourceName)
|
||||
|
||||
let removeConfig = try VMConfig.init(fromURL: removeVM.configURL)
|
||||
let needToGenerateNewMAC = try localVMExistsWith(macAddress: removeConfig.macAddress.string)
|
||||
let remoteConfig = try VMConfig.init(fromURL: remoteVM.configURL)
|
||||
let needToGenerateNewMAC = try localVMExistsWith(macAddress: remoteConfig.macAddress.string)
|
||||
|
||||
try removeVM.clone(to: VMStorageLocal().create(newName), generateMAC: needToGenerateNewMAC)
|
||||
try remoteVM.clone(to: VMStorageLocal().create(newName), generateMAC: needToGenerateNewMAC)
|
||||
} else {
|
||||
try VMStorageHelper.open(sourceName).clone(to: VMStorageLocal().create(newName), generateMAC: true)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import Foundation
|
|||
enum RegistryError: Error {
|
||||
case UnexpectedHTTPStatusCode(when: String, code: Int, details: String = "")
|
||||
case MissingLocationHeader
|
||||
case AuthFailed(why: String)
|
||||
case AuthFailed(why: String, details: String = "")
|
||||
case MalformedHeader(why: String)
|
||||
}
|
||||
|
||||
|
|
@ -202,7 +202,7 @@ class Registry {
|
|||
let (responseData, response) = try await rawRequest("GET", authenticateURL, headers: headers)
|
||||
if response.statusCode != 200 {
|
||||
throw RegistryError.AuthFailed(why: "received unexpected HTTP status code \(response.statusCode) "
|
||||
+ "while retrieving an authentication token")
|
||||
+ "while retrieving an authentication token", details: String(decoding: responseData, as: UTF8.self))
|
||||
}
|
||||
|
||||
token = try JSONDecoder().decode(TokenResponse.self, from: responseData).token
|
||||
|
|
|
|||
Loading…
Reference in New Issue