internal GetAuthorizationTokenResponse GetAuthorizationToken(GetAuthorizationTokenRequest request) { var marshaller = new GetAuthorizationTokenRequestMarshaller(); var unmarshaller = GetAuthorizationTokenResponseUnmarshaller.Instance; return(Invoke <GetAuthorizationTokenRequest, GetAuthorizationTokenResponse>(request, marshaller, unmarshaller)); }
/// <summary> /// Initiates the asynchronous execution of the GetAuthorizationToken operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the GetAuthorizationToken operation.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> /// <returns>The task object representing the asynchronous operation.</returns> /// <seealso href="http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetAuthorizationToken">REST API Reference for GetAuthorizationToken Operation</seealso> public Task <GetAuthorizationTokenResponse> GetAuthorizationTokenAsync(GetAuthorizationTokenRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new GetAuthorizationTokenRequestMarshaller(); var unmarshaller = GetAuthorizationTokenResponseUnmarshaller.Instance; return(InvokeAsync <GetAuthorizationTokenRequest, GetAuthorizationTokenResponse>(request, marshaller, unmarshaller, cancellationToken)); }
public object Execute(ExecutorContext context) { var cmdletContext = context as CmdletContext; var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint); CmdletOutput output; try { var request = new GetAuthorizationTokenRequest(); if (cmdletContext.RegistryId != null && cmdletContext.RegistryId.Length > 0) { request.RegistryIds = new List <string>(cmdletContext.RegistryId); } var response = CallAWSServiceOperation(client, request); var loginInfoObjects = new List <PSObject>(); foreach (var authData in response.AuthorizationData) { var authTokenBytes = Convert.FromBase64String(response.AuthorizationData[0].AuthorizationToken); var authToken = Encoding.UTF8.GetString(authTokenBytes); var decodedTokens = authToken.Split(':'); var loginCommand = string.Format("docker login --username {0} --password {1} {2}", decodedTokens[0], decodedTokens[1], response.AuthorizationData[0].ProxyEndpoint); var loginInfo = new PSObject(); loginInfo.Properties.Add(new PSNoteProperty("Username", decodedTokens[0])); loginInfo.Properties.Add(new PSNoteProperty("Password", decodedTokens[1])); loginInfo.Properties.Add(new PSNoteProperty("ProxyEndpoint", authData.ProxyEndpoint)); loginInfo.Properties.Add(new PSAliasProperty("Endpoint", "ProxyEndpoint")); loginInfo.Properties.Add(new PSNoteProperty("ExpiresAt", authData.ExpiresAt)); loginInfo.Properties.Add(new PSNoteProperty("Command", loginCommand)); loginInfoObjects.Add(loginInfo); } output = new CmdletOutput { PipelineOutput = loginInfoObjects }; } catch (Exception e) { output = new CmdletOutput { ErrorResponse = e }; } return(output); }
/// <summary> /// <p>申请12小时有效期的令牌。 使用<code>docker</code> CLI push和pull镜像。</p> /// <p><code>authorizationToken</code>为每个registry返回一个base64编码的字符串,解码后<code>docker login</code>命令 /// 可完成指定registry的鉴权。JCR CLI提供<code>jcr get-login</code>进行认证处理。</p> /// /// </summary> /// <param name="request">请求参数信息</param> /// <returns>请求结果信息</returns> public async Task <GetAuthorizationTokenResponse> GetAuthorizationToken(GetAuthorizationTokenRequest request) { return(await new GetAuthorizationTokenExecutor().Client(this).Execute <GetAuthorizationTokenResponse, GetAuthorizationTokenResult, GetAuthorizationTokenRequest>(request).ConfigureAwait(false)); }
/// <summary> /// <p>申请12小时有效期的令牌。 使用<code>docker</code> CLI push和pull镜像。</p> /// <p><code>authorizationToken</code>为每个registry返回一个base64编码的字符串,解码后<code>docker login</code>命令 /// 可完成指定registry的鉴权。JCR CLI提供<code>jcr get-login</code>进行认证处理。</p> /// /// </summary> /// <param name="request">请求参数信息</param> /// <returns>请求结果信息</returns> public GetAuthorizationTokenResponse GetAuthorizationToken(GetAuthorizationTokenRequest request) { return(new GetAuthorizationTokenExecutor().Client(this).Execute <GetAuthorizationTokenResponse, GetAuthorizationTokenResult, GetAuthorizationTokenRequest>(request)); }