diff --git a/Sources/tart/Commands/Clone.swift b/Sources/tart/Commands/Clone.swift index a1757032..39e45f76 100644 --- a/Sources/tart/Commands/Clone.swift +++ b/Sources/tart/Commands/Clone.swift @@ -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) } diff --git a/Sources/tart/OCI/Registry.swift b/Sources/tart/OCI/Registry.swift index 8a7ea905..622f404b 100644 --- a/Sources/tart/OCI/Registry.swift +++ b/Sources/tart/OCI/Registry.swift @@ -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