|
685 | 685 | containerOptions.ContainerNetwork.ContainerNetworkType = internalContainerSettings->networking; |
686 | 686 |
|
687 | 687 | // TODO: No user access |
688 | | - // containerOptions.Entrypoint; |
689 | 688 | // containerOptions.Labels; |
690 | 689 | // containerOptions.LabelsCount; |
691 | 690 | // containerOptions.StopSignal; |
@@ -1186,8 +1185,7 @@ try |
1186 | 1185 |
|
1187 | 1186 | auto progressCallback = ProgressCallback::CreateIf(options); |
1188 | 1187 |
|
1189 | | - // TODO: Auth |
1190 | | - return errorInfoWrapper.CaptureResult(internalType->session->PullImage(options->uri, nullptr, progressCallback.get())); |
| 1188 | + return errorInfoWrapper.CaptureResult(internalType->session->PullImage(options->uri, options->registryAuth, progressCallback.get())); |
1191 | 1189 | } |
1192 | 1190 | CATCH_RETURN(); |
1193 | 1191 |
|
@@ -1282,6 +1280,72 @@ try |
1282 | 1280 | } |
1283 | 1281 | CATCH_RETURN(); |
1284 | 1282 |
|
| 1283 | +STDAPI WslcTagSessionImage(_In_ WslcSession session, _In_ const WslcTagImageOptions* options, _Outptr_opt_result_z_ PWSTR* errorMessage) |
| 1284 | +try |
| 1285 | +{ |
| 1286 | + ErrorInfoWrapper errorInfoWrapper{errorMessage}; |
| 1287 | + auto internalType = CheckAndGetInternalType(session); |
| 1288 | + RETURN_HR_IF_NULL(HRESULT_FROM_WIN32(ERROR_INVALID_STATE), internalType->session); |
| 1289 | + RETURN_HR_IF_NULL(E_POINTER, options); |
| 1290 | + RETURN_HR_IF_NULL(E_INVALIDARG, options->image); |
| 1291 | + RETURN_HR_IF_NULL(E_INVALIDARG, options->repo); |
| 1292 | + RETURN_HR_IF_NULL(E_INVALIDARG, options->tag); |
| 1293 | + |
| 1294 | + WSLCTagImageOptions runtimeOptions{}; |
| 1295 | + runtimeOptions.Image = options->image; |
| 1296 | + runtimeOptions.Repo = options->repo; |
| 1297 | + runtimeOptions.Tag = options->tag; |
| 1298 | + |
| 1299 | + return errorInfoWrapper.CaptureResult(internalType->session->TagImage(&runtimeOptions)); |
| 1300 | +} |
| 1301 | +CATCH_RETURN(); |
| 1302 | + |
| 1303 | +STDAPI WslcPushSessionImage(_In_ WslcSession session, _In_ const WslcPushImageOptions* options, _Outptr_opt_result_z_ PWSTR* errorMessage) |
| 1304 | +try |
| 1305 | +{ |
| 1306 | + ErrorInfoWrapper errorInfoWrapper{errorMessage}; |
| 1307 | + auto internalType = CheckAndGetInternalType(session); |
| 1308 | + RETURN_HR_IF_NULL(HRESULT_FROM_WIN32(ERROR_INVALID_STATE), internalType->session); |
| 1309 | + RETURN_HR_IF_NULL(E_POINTER, options); |
| 1310 | + RETURN_HR_IF_NULL(E_INVALIDARG, options->image); |
| 1311 | + RETURN_HR_IF_NULL(E_INVALIDARG, options->registryAuth); |
| 1312 | + |
| 1313 | + auto progressCallback = ProgressCallback::CreateIf(options); |
| 1314 | + |
| 1315 | + return errorInfoWrapper.CaptureResult(internalType->session->PushImage(options->image, options->registryAuth, progressCallback.get())); |
| 1316 | +} |
| 1317 | +CATCH_RETURN(); |
| 1318 | + |
| 1319 | +STDAPI WslcSessionAuthenticate( |
| 1320 | + _In_ WslcSession session, |
| 1321 | + _In_z_ PCSTR serverAddress, |
| 1322 | + _In_z_ PCSTR username, |
| 1323 | + _In_z_ PCSTR password, |
| 1324 | + _Outptr_result_z_ PSTR* identityToken, |
| 1325 | + _Outptr_opt_result_z_ PWSTR* errorMessage) |
| 1326 | +try |
| 1327 | +{ |
| 1328 | + ErrorInfoWrapper errorInfoWrapper{errorMessage}; |
| 1329 | + auto internalType = CheckAndGetInternalType(session); |
| 1330 | + RETURN_HR_IF_NULL(HRESULT_FROM_WIN32(ERROR_INVALID_STATE), internalType->session); |
| 1331 | + RETURN_HR_IF_NULL(E_POINTER, serverAddress); |
| 1332 | + RETURN_HR_IF_NULL(E_POINTER, username); |
| 1333 | + RETURN_HR_IF_NULL(E_POINTER, password); |
| 1334 | + RETURN_HR_IF_NULL(E_POINTER, identityToken); |
| 1335 | + |
| 1336 | + *identityToken = nullptr; |
| 1337 | + |
| 1338 | + wil::unique_cotaskmem_ansistring token; |
| 1339 | + auto hr = errorInfoWrapper.CaptureResult(internalType->session->Authenticate(serverAddress, username, password, &token)); |
| 1340 | + if (SUCCEEDED(hr)) |
| 1341 | + { |
| 1342 | + *identityToken = token.release(); |
| 1343 | + } |
| 1344 | + |
| 1345 | + return errorInfoWrapper; |
| 1346 | +} |
| 1347 | +CATCH_RETURN(); |
| 1348 | + |
1285 | 1349 | STDAPI WslcListSessionImages(_In_ WslcSession session, _Outptr_result_buffer_(*count) WslcImageInfo** images, _Out_ uint32_t* count) |
1286 | 1350 | try |
1287 | 1351 | { |
|
0 commit comments