text:
Will any of the AWSSDK NuGet packages have Source Link enabled?

👋🏻 G'Day AWS team,
I was just doing some debugging with some AWS code (trying to load in some config values using the AWSSDK.Extensions.NETCore.Setup and noticed that there's no Source Link available for this package (and so I'm poorly assuming, other AWSSDK nugets also ...).
e.g.

So - will you allow Source Link to be enabled for this (and other) AWS packages? If yes, will you accept a PR from the community for this functionality?
If you're unsure what Source Link is, it enables developers to easily step into methods/code from NuGet packages, just like they are part of our own project/code-base.

Hi @PureKrome,
Thanks for posting guidance question. I will discuss this with development team and update here accordingly.
Thanks,
Ashish

Hi @PureKrome,
Thanks for posting guidance question. I will discuss this with development team and update here accordingly.
Thanks,
Ashish

More information about Source Link can be found here https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/sourcelink

More information about Source Link can be found here https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/sourcelink

Hi @PureKrome,
Based on my discussion with the development team, this is something they would like to implement down the line. While I'm not certain about the timeline at this stage, I'm marking this as feature-request so that it has some traction.
Thanks,
Ashish

Hi @PureKrome,
Based on my discussion with the development team, this is something they would like to implement down the line. While I'm not certain about the timeline at this stage, I'm marking this as feature-request so that it has some traction.
Thanks,
Ashish

@ashishdhingra 👋🏻 thanks heaps for the replies and the positive info!
do you accept PR's for this?

@ashishdhingra 👋🏻 thanks heaps for the replies and the positive info!
do you accept PR's for this?

@ashishdhingra 👋🏻 thanks heaps for the replies and the positive info!
do you accept PR's for this?

Sure, feel free to contribute. PR would be reviewed by team.

@ashishdhingra 👋🏻 thanks heaps for the replies and the positive info!
do you accept PR's for this?

Sure, feel free to contribute. PR would be reviewed by team.

This is still a desired feature.

authors: PureKrome ashishdhingra fjmorel


text:
Deleting S3 object fails on .NET for iOS.

Describe the bug
We are using the AWS SDK for .Net in an iOS application built using .NET 8.
We are observing a possible bug when trying to delete an object in a bucket:
In the iOS application, we constantly get an exception (AmazonS3Exception: A header you provided implies functionality that is not implemented) while the same code works fine in a .NET 8 console application. Before migrating the app from Xamarin.iOS to .NET 8, it used to work fine as well.
Expected Behavior
The object should be successfully deleted.
Current Behavior
The following exception is thrown:
AmazonS3Exception: A header you provided implies functionality that is not implemented
                     ▷ Trace:
                       ▷ at Amazon.Runtime.Internal.HttpErrorResponseExceptionHandler.HandleExceptionStream(IRequestContext requestContext, IWebResponseData httpErrorResponse, HttpErrorResponseException exception, Stream responseStream)
                       ▷ at Amazon.Runtime.Internal.HttpErrorResponseExceptionHandler.HandleExceptionAsync(IExecutionContext executionContext, HttpErrorResponseException exception)
                       ▷ at Amazon.Runtime.Internal.ExceptionHandler`1.<HandleAsync>d__6[[Amazon.Runtime.Internal.HttpErrorResponseException, AWSSDK.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604]].MoveNext()
                       ▷ at Amazon.Runtime.Internal.ErrorHandler.ProcessExceptionAsync(IExecutionContext executionContext, Exception exception)
                       ▷ at Amazon.Runtime.Internal.ErrorHandler.<InvokeAsync>d__5`1[[Amazon.S3.Model.DeleteObjectResponse, AWSSDK.S3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604]].MoveNext()
                       ▷ at Amazon.Runtime.Internal.CallbackHandler.<InvokeAsync>d__9`1[[Amazon.S3.Model.DeleteObjectResponse, AWSSDK.S3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604]].MoveNext()
                       ▷ at Amazon.Runtime.Internal.Signer.<InvokeAsync>d__1`1[[Amazon.S3.Model.DeleteObjectResponse, AWSSDK.S3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604]].MoveNext()
                       ▷ at Amazon.S3.Internal.S3Express.S3ExpressPreSigner.<InvokeAsync>d__5`1[[Amazon.S3.Model.DeleteObjectResponse, AWSSDK.S3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604]].MoveNext()
                       ▷ at Amazon.Runtime.Internal.EndpointDiscoveryHandler.<InvokeAsync>d__2`1[[Amazon.S3.Model.DeleteObjectResponse, AWSSDK.S3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604]].MoveNext()
                       ▷ at Amazon.Runtime.Internal.EndpointDiscoveryHandler.<InvokeAsync>d__2`1[[Amazon.S3.Model.DeleteObjectResponse, AWSSDK.S3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604]].MoveNext()
                     ► HttpErrorResponseException: Exception of type 'Amazon.Runtime.Internal.HttpErrorResponseException' was thrown.
                       ▷ Trace:
                         ▷ at Amazon.Runtime.HttpWebRequestMessage.ProcessHttpResponseMessage(HttpResponseMessage responseMessage)
                         ▷ at Amazon.Runtime.HttpWebRequestMessage.GetResponseAsync(CancellationToken cancellationToken)
                         ▷ at Amazon.Runtime.Internal.HttpHandler`1.<InvokeAsync>d__9`1[[System.Net.Http.HttpContent, System.Net.Http, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a],[Amazon.S3.Model.DeleteObjectResponse, AWSSDK.S3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604]].MoveNext()
                         ▷ at Amazon.Runtime.Internal.RedirectHandler.<InvokeAsync>d__1`1[[Amazon.S3.Model.DeleteObjectResponse, AWSSDK.S3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604]].MoveNext()
                         ▷ at Amazon.Runtime.Internal.Unmarshaller.<InvokeAsync>d__3`1[[Amazon.S3.Model.DeleteObjectResponse, AWSSDK.S3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604]].MoveNext()
                         ▷ at Amazon.S3.Internal.AmazonS3ResponseHandler.<InvokeAsync>d__1`1[[Amazon.S3.Model.DeleteObjectResponse, AWSSDK.S3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604]].MoveNext()
                         ▷ at Amazon.Runtime.Internal.ErrorHandler.<InvokeAsync>d__5`1[[Amazon.S3.Model.DeleteObjectResponse, AWSSDK.S3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604]].MoveNext()

Reproduction Steps
Use the following code in an application, replacing uppercased values.
var bucket = "BUCKET_NAME";
var credentials = new BasicAWSCredentials("ACCESS_KEY", "SECRET_KEY");

using var s3Client = new AmazonS3Client(credentials, BUCKET_REGION);

var deleteObjectRequest = new DeleteObjectRequest {
    BucketName = bucket,
    Key = "OBJECT_ID",
};

try {
    await s3Client.DeleteObjectAsync(deleteObjectRequest);
} catch (Exception e) {
    Console.WriteLine(e.StackTrace);
}

Possible Solution
No response
Additional Information/Context
No response
AWS .NET SDK and/or Package version used
AWSSDK.S3 3.7.305.5
Targeted .NET Platform
.NET8-iOS
Operating System and version
iOS 17

@joduss Good morning. The mentioned error is returned by the S3 service, refer S3: List of error codes. Perhaps, somehow on iOS, there might be erroneous header being sent to S3 service which is causing the error. Could you please enable verbose logging using the code below and share the detailed logs which might capture some information sent down to the wire:
Amazon.AWSConfigs.LoggingConfig.LogResponses = Amazon.ResponseLoggingOption.Always;
Amazon.AWSConfigs.LoggingConfig.LogTo = Amazon.LoggingOptions.Console;
Amazon.AWSConfigs.AddTraceListener("Amazon", new System.Diagnostics.ConsoleTraceListener());

Thanks,
Ashish

I did found in the meantime a workaround by instantiating the client in a different way and specifying the DefaultConfigurationMode
new AmazonS3Client(
   Credential.AccessKey,
   Credential.SecretKey,
   new AmazonS3Config {
      RegionEndpoint = RegionEndpoint.GetBySystemName(regionResponse.Location),
      DefaultConfigurationMode = DefaultConfigurationMode.Standard // This fixes things.
   }
);

Now regarding your questions:

Is it Xamarin iOS application targeting .NET 8?

Yes it is.

Are you using the same object key in iOS application as in working Console application?

Yes

I will share the logs next week.

Here are the logs:
verbose.log

@joduss Good morning. Thanks for the response and confirming that the workaround initially shared by you in https://github.com/aws/aws-sdk-net/issues/3140#issuecomment-1878921261 when setting DefaultConfigurationMode to DefaultConfigurationMode.Standard, since we also thought that the error and setting configuration mode explicitly were unrelated.
In the logs, I see the below error:
...
2024-01-08 09:48:07.676911+0100 My-App.iOS[57738:6780336]    at Amazon.Runtime.Internal.ErrorHandler.<InvokeAsync>d__5`1[[Amazon.S3.Model.DeleteObjectResponse, AWSSDK.S3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604]].MoveNext()
2024-01-08 09:48:07.685057+0100 My-App.iOS[57738:6780336] AmazonS3Client 29|2024-01-08T09:48:07.684Z|ERROR|Received error response: [<?xml version="1.0" encoding="UTF-8"?>
2024-01-08 09:48:07.685280+0100 My-App.iOS[57738:6780336] <Error>NotImplemented<Message>A header you provided implies functionality that is not implemented</Message>If-Modified-Since<RequestId>BH3YCB93BZMKV75S</RequestId><HostId>OfT15rgmuSK9S8dt+HlGuRFrki/e9NOmX5sAZOvGf1olr5SyKPv9zmOPGI4DaoGMjRUaaCDnd0cBo3IyyiIS+A==</HostId></Error>] --> Amazon.S3.AmazonS3Exception: A header you provided implies functionality that is not implemented
 ---> Amazon.Runtime.Internal.HttpErrorResponseException: Exception of type 'Amazon.Runtime.Internal.HttpErrorResponseException' was thrown.
2024-01-08 09:48:07.685448+0100 My-App.iOS[57738:6780336]    at Amazon.Runtime.HttpWebRequestMessage.ProcessHttpResponseMessage(HttpResponseMessage responseMessage)
...
...
   --- End of inner exception stack trace ---
2024-01-08 09:48:07.696940+0100 My-App.iOS[57738:6780336] AmazonS3Client 30|2024-01-08T09:48:07.695Z|ERROR|AmazonS3Exception making request DeleteObjectRequest to https://dev-bucket.s3.eu-central-1.amazonaws.com/. Attempt 1. --> Amazon.S3.AmazonS3Exception: A header you provided implies functionality that is not implemented
 ---> Amazon.Runtime.Internal.HttpErrorResponseException: Exception of type 'Amazon.Runtime.Internal.HttpErrorResponseException' was thrown.
2024-01-08 09:48:07.697156+0100 My-App.iOS[57738:6780336]    at Amazon.Runtime.HttpWebRequestMessage.ProcessHttpResponseMessage(HttpResponseMessage responseMessage)
   at Amazon.Runtime.HttpWebRequestMessage.GetResponseAsync(CancellationToken cancellationToken)
2024-01-08 09:48:07.697360+0100 My-App.iOS[57738:6780336]    at Amazon.Runtime.Internal.HttpHandler`1.<InvokeAsync>d__9`1[[System.Net.Http.HttpContent, System.Net.Http, Version=8.0.0.0, Culture=neutral,
...
...
2024-01-08 09:48:07.699023+0100 My-App.iOS[57738:6780336]    at Amazon.S3.Internal.S3Express.S3ExpressPreSigner.<InvokeAsync>d__5`1[[Amazon.S3.Model.DeleteObjectResponse, AWSSDK.S3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604]].MoveNext()
2024-01-08 09:48:07.699157+0100 My-App.iOS[57738:6780336]    at Amazon.Runtime.Internal.EndpointDiscoveryHandler.<InvokeAsync>d__2`1[[Amazon.S3.Model.DeleteObjectResponse, AWSSDK.S3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604]].MoveNext()
...

It mentions error <Error>NotImplemented<Message>A header you provided implies functionality that is not implemented</Message>If-Modified-Since<RequestId>BH3YCB93BZMKV75S</RequestId><HostId>OfT15rgmuSK9S8dt+HlGuRFrki/e9NOmX5sAZOvGf1olr5SyKPv9zmOPGI4DaoGMjRUaaCDnd0cBo3IyyiIS+A==</HostId></Error>
I'm unsure if If-Modified-Since is causing the issue and how it is being populated for your scenario.
Could you please share the following:

Are you using the same bucket for Console and Xamarin iOS app scenario?
Is your bucket S3 Express bucket? Does it has directory style bucket? (refer Directory buckets section in What is S3 Express One Zone?)
What does your object key looks like? (in other words, does it contain any special characters?)

Thanks,
Ashish

Are you using the same bucket for Console and Xamarin iOS app scenario?

I am using the same bucket and trying to delete the same object.
The object was uploaded sometimes using the AWS SDK for .NET, sometimes using Cyberduck.

Is your bucket S3 Express bucket? Does it has directory style bucket? (refer Directory buckets section in What is S3 Express One Zone?)

No

What does your object key looks like? (in other words, does it contain any special characters?)

The object is actually a zip file with the extension being ".appname-instruction". The id of that object is "devices/gQFYdfd8vEil8xyDYpV7GQ/iHJ4KEAlmkWktafe84V2WA.appname-instruction". I have replace the actual application name by "appname". The real name is using only chars in [a-z]. So no special characters in the identifier.

Good day @joduss,
Based on the error that you are getting, I suspect that something is modifying the request headers before it is sent to S3, maybe this related to iOS or something else.
Can you intercept the request and provide it including the headers?

I captured the traffic and these are the intercepted requests.
DELETE https://bucket-name.s3.eu-central-1.amazonaws.com/devices/gQFYdfd8vEil8xyDYpV7GQ/iHJ4KEAlmkWktafe84V2WA.myapp-instruction HTTP/1.1
Host: bucket-name.s3.eu-central-1.amazonaws.com
Accept: */*
Authorization: AWS4-HMAC-SHA256 Credential=AKIAVEBS7TSJ2DMRCLXR/20240105/eu-central-1/s3/aws4_request, SignedHeaders=host;user-agent;x-amz-content-sha256;x-amz-date, Signature=d46489c822f6079ca995f8a22d49c2a0b7d43dab09979ea735540bf547184aa0
If-Modified-Since: Fri, 05 Jan 2024 13:21:57 GMT
X-Amz-Date: 20240105T153804Z
Accept-Encoding: gzip, deflate, br
amz-sdk-invocation-id: 7acaa70f-ec17-402b-942e-8e94f9f7f75c
amz-sdk-request: attempt=1; max=5
Accept-Language: en-US,en;q=0.9
If-None-Match: "13f6daf619d5ae220656c30c7d63c21c"
X-Amz-Content-SHA256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
User-Agent: aws-sdk-dotnet-coreclr/3.7.305.5 ua/2.0 os/other md/Darwin 22.6.0 Darwin Kernel Version 22.6.0- Wed Oct 4 21-25-26 PDT 2023- root-xnu-8796.141.3.701.17~4/RELEASE_X86_64#17.0.1 md/ARCH#X64 lang/.NET_Core#8.0.0 md/aws-sdk-dotnet-core#3.7.301.0 api/S3#3.7.305.5 ft/aot cfg/retry-mode#legacy md/ClientAsync
Content-Length: 0
Connection: keep-alive

Now for comparison, the request made the console app:
DELETE https://bucket-name.s3.eu-central-1.amazonaws.com/devices/gQFYdfd8vEil8xyDYpV7GQ/iHJ4KEAlmkWktafe84V2WA.myapp-instruction HTTP/1.1
User-Agent: aws-sdk-dotnet-coreclr/3.7.305.5 ua/2.0 os/macos#13.6.1 md/ARCH#X64 lang/.NET_Core#8.0.0 md/aws-sdk-dotnet-core#3.7.301.0 api/S3#3.7.305.5 cfg/retry-mode#legacy md/ClientAsync
amz-sdk-invocation-id: d1ea090b-25a3-46de-ab7d-39c9b87aa6f9
amz-sdk-request: attempt=1; max=5
Host: bucket-name.s3.eu-central-1.amazonaws.com
X-Amz-Date: 20240105T153814Z
X-Amz-Content-SHA256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Authorization: AWS4-HMAC-SHA256 Credential=AKIAVEBS7TSJ2DMRCLXR/20240105/eu-central-1/s3/aws4_request, SignedHeaders=host;user-agent;x-amz-content-sha256;x-amz-date, Signature=f01e8c1e7ccb49f8948dfdea33120aaa3438cf8c9f7d3ddd60a1fd00681197e5

There is one additional observation I made:
If the file is very small, the delete requests fails as explained above. If the file is larger, it succeeds. The header differs depending if the request is to delete a large file or a small file.
Header of request to delete a file of size 1085 bytes:
DELETE https://backup-name.s3.eu-central-1.amazonaws.com/devices/gQFYdfd8vEil8xyDYpV7GQ/a.myapp-instruction HTTP/1.1
Host: backup-name.s3.eu-central-1.amazonaws.com
Accept: */*
Authorization: AWS4-HMAC-SHA256 Credential=ACCESS_LEY/20240111/eu-central-1/s3/aws4_request, SignedHeaders=host;user-agent;x-amz-content-sha256;x-amz-date, Signature=a2cda8ee204b09aaba7fa6ec890f3c4474aaeb77b61418e1c7975d03ce9b26ba
If-Modified-Since: Thu, 11 Jan 2024 10:42:05 GMT
X-Amz-Date: 20240111T104209Z
Accept-Encoding: gzip, deflate, br
amz-sdk-invocation-id: 188175ed-6834-4c9a-b103-159915b80472
amz-sdk-request: attempt=1; max=5
Accept-Language: en-US,en;q=0.9
If-None-Match: "9aeccf7335aa2afe20282060ae026371"
X-Amz-Content-SHA256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
User-Agent: aws-sdk-dotnet-coreclr/3.7.304.0 aws-sdk-dotnet-core/3.7.300.11 .NET_Core/8.0.1 OS/Darwin_22.6.0_Darwin_Kernel_Version_22.6.0:_Wed_Oct__4_21:25:26_PDT_2023;_root:xnu-8796.141.3.701.17~4/RELEASE_X86_64 ft/aot ClientAsync
Content-Length: 0
Connection: keep-alive

Header of request to delete a file of size 903'440 bytes:
DELETE https://backup-name.s3.eu-central-1.amazonaws.com/devices/gQFYdfd8vEil8xyDYpV7GQ/b.myapp-instruction HTTP/1.1
Host: backup-name.s3.eu-central-1.amazonaws.com
Accept: */*
Authorization: AWS4-HMAC-SHA256 Credential=ACCESS_KEY/20240111/eu-central-1/s3/aws4_request, SignedHeaders=host;user-agent;x-amz-content-sha256;x-amz-date, Signature=9bfe86c01072568dfda3b2154a5af084af0b4ea77c53aec9820bcfe4bf42acd0
X-Amz-Date: 20240111T105236Z
Accept-Encoding: gzip, deflate, br
amz-sdk-invocation-id: 48057b06-5d22-4157-b4a4-adbee04b0b1c
amz-sdk-request: attempt=1; max=5
Accept-Language: en-US,en;q=0.9
Content-Length: 0
X-Amz-Content-SHA256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
User-Agent: aws-sdk-dotnet-coreclr/3.7.304.0 aws-sdk-dotnet-core/3.7.300.11 .NET_Core/8.0.1 OS/Darwin_22.6.0_Darwin_Kernel_Version_22.6.0:_Wed_Oct__4_21:25:26_PDT_2023;_root:xnu-8796.141.3.701.17~4/RELEASE_X86_64 ft/aot ClientAsync
Connection: keep-alive

Thank you for sharing the requests, I couldn't find anything that might cause this issue from the SDK side.
I've reached out to S3 with your request to figure out the root cause, will let you know when then respond.

source: gharchive/issue

authors: ashishdhingra joduss muhammad-othman

repo: aws/aws-sdk-net

license_type: permissive

license_source: github-api


text:
Remove awswrangler.distributed from coverage report

Feature or Bugfix

Feature

Detail

Remove awswrangler.distributed from coverage report

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 59bbf78bf5d5bf4d7a544de369be40332eef5686
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubStandardCodeBuild8C06-llutOAimTATs
Commit ID: 59bbf78bf5d5bf4d7a544de369be40332eef5686
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubLoadTests5656BB24-ATYtnXPE7MOa
Commit ID: 59bbf78bf5d5bf4d7a544de369be40332eef5686
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

I was thinking of something a bit more dynamic perhaps? If the CB is distributed then perhaps we should include this directory. The difficulty then is excluding all the non-distributed methods when running the distributed CB...

I agree this would be ideal. The problem is that this directory exclusion can only be defined in a config file, and can't be a CLI parameter. So we would need to either have two configuration files, or using sed to edit the configuration file from the tox script somehow.
Another huge issue is that coverage is kind of useless when we use Ray. Pytest tracks coverage by following the main process' execution. When we distributed with Ray, we create a local Ray cluster, so the main process never actually executes the distributed code. This makes it essentially invisible to the coverage report. I think there might be a way to fix it by specifying local_mode, but I need to investigate this more.

source: gharchive/pull-request

authors: LeonLuttenberger malachi-constant

repo: aws/aws-sdk-pandas


text:
feat: Add schema evolution to athena.to_iceberg

Feature or Bugfix

Feature

Detail

Adding ability to evolve Iceberg schema with the following operations:

Adding new columns
Changing the types of existing columns

Relates

#2458

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: b11a421bffae9fe6e8091069c7c223f4b2b9d6a9
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: c0d4a2e455ca6011cf98c7d6b58af65542566236
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: b11a421bffae9fe6e8091069c7c223f4b2b9d6a9
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: c0d4a2e455ca6011cf98c7d6b58af65542566236
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: 61083b3634ef8422d359628284bf3c30a139d5b1
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: 63d4f730f2dff93294207f57916622531d8d38ca
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 61083b3634ef8422d359628284bf3c30a139d5b1
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 63d4f730f2dff93294207f57916622531d8d38ca
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: a2821e0fd9479286e81d34c7612a2e1bfa2d8637
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: 5eb0c69ce05b6b6f06bf9053279a8225a374fef3
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 5eb0c69ce05b6b6f06bf9053279a8225a374fef3
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: 6edeed12634feb53c80870285349897bbb7dccd2
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 6edeed12634feb53c80870285349897bbb7dccd2
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: 6f03cd54aeadbd285fa40edbd0e25dacec93c2e0
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 6f03cd54aeadbd285fa40edbd0e25dacec93c2e0
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

Nice work @LeonLuttenberger

Hi!
I found that this pr broke the ability of using function partition columns. We are discussing this in #2686
Function partition columns is a feature supported that even in the documentation specifies.
Currently I am forced to not upgrade from 4.0 due to this breaking change, is this lost of functionality intentional?
if so, maybe documentation should be updated to specify this since now is confuse wheter this type of partitioning is supported or not.

authors: LeonLuttenberger alvaro-ponce malachi-constant nicor88


text:
Flux (GitOps): Support Managed Github Repositories

What would you like to be added:
Flux supports custom URLs under the CRD "GitRepository" declaration "spec.url". Unfortunately, EKS-Anywhere does not and tries to authenticate against Github's public facing site. Requesting support be added for on-prem (managed) Github instances.
Why is this needed:
Many companies do not allow external Github use, and therefore private Github becomes a necessity. Additionally, Git providers (like Gitlab, etc.) would also be supported if this is enabled.

In the 0.9 release we added "byo git" support which you should be able to use to work with github enterprise vs github saas.

authors: jaxesn samueljmello

repo: aws/eks-anywhere


text:
Rework Tinkerbell validation logic

Update Tinkerbell validation logic reducing it to whats needed for Kubefication only.
This redesign allows for dynamic registration of Tinkerbell Kubernetes resource validations that are run over a Tinkerbell provider managed ClusterSpec.

The internal package is semi-temporary and serving as a staging area until we work out what pieces of the Tinkerbell provider actually need to be exported.
Some validation was moved to the config manager related validation code but is commented out because it broke significant numbers of tests. This will be fixed in a subsequent PR.
All Tinkerbell service code that is no longer needed such as PBnJ clients have been removed.
E2E tests that leveraged PBnJ have been spoofed to ensure the tests still passed. This will either require a new implementation that probes BMCs directly, or remove entirely in a subsequent PR.

/cc @panktishah26 @ptrivedi @pokearu @abhinavmpandey08 @gwesterfieldjr @jacobweinstock
/approve


text:
Image tag update al2022

Issue #, if available:
Description of changes:
The bot failed to open the PR due to a bug in the PR script relying on a newer github cli than is in the builder base.
The Al2 job also failed due to concurrently building the windows images. I am going to send another PR making it so windows images only build during the al2 instance. I have revert the tag update for these images for now.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve

/lgtm

/approve

authors: jaxesn kschumy

repo: aws/eks-distro-build-tooling


text:
Include golang 1.20 in golang readme

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


text:
Bumped development release number for 1.26

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm

/approve
/unhold

repo: aws/eks-distro


text:
Bump production release number for 1.29

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm

/approve
/unhold

authors: bhavi-koduru rcrozean


text:
chore: retrofit v0.21.1 release into the release branch

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

AWS CodeBuild CI Report

Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

authors: RomainMuller aws-cdk-automation

repo: aws/jsii


text:
self as property name leads to assignment error

When a property with the name self exists in a class, it leads to
a runtime error.
See this definition
class AwsDefaultSecurityGroupPropsIngressProps():
    def __init__(self, *, self: bool):
        """
        :param self: -
        """
        self._values = {
            'self': self,
        }

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Thanks for this contribution!
This is currently missing a test that demonstrates the issue is fixed.

This is currently missing a test that demonstrates the issue is fixed.

Could you point me to a similar test?

I think right now this will cause a warning to be emitted, but it will not fix code generation so the name is correctly slugified.

Yes, I think so too. What would be the correct way to slugify this?

AWS CodeBuild CI Report

CodeBuild project: AutoBuildProject6AEA49D1-Blkkw9bQFn8A
Commit ID: d8503b24e71a95ca561226a50f17ea7bf868f334
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

With respects to the slugification, there appears to be a duplicated reserved words list in jsii-pacmak that fails to include self (bonus points if you find a way to de-duplicate, but I'm cool if you don't want to bother with that, too):
https://github.com/aws/jsii/blob/1ff25571a08652c59b23d6a2938dd3f426cd2665/packages/jsii-pacmak/lib/targets/python.ts#L71-L76

With respects to the tests... This is going to involve:

Adding stuff in jsii-calc to reproduce the issue you've identified:
https://github.com/aws/jsii/blob/1ff25571a08652c59b23d6a2938dd3f426cd2665/packages/jsii-calc/lib/compliance.ts#L896-L961
Adding a new test in the Python runtime's test suite that "runs into the bug" (which would pass with the fix in, so you know you've nailed it for good!)
https://github.com/aws/jsii/blob/1ff25571a08652c59b23d6a2938dd3f426cd2665/packages/%40jsii/python-runtime/tests/test_compliance.py#L1168-L1170

In any case - we'll happily provide help if you don't know how to proceed!

Reading up a bit, it appears that self is technically not a keyword in Python, so we're abusing a little here if we add it to the PYTHON_KEYWORDS list in jsii-pacmak (it's actually "fine" to have a warning about it in jsii, still).
I reckon the real fix is going to possibly be with code-generation of instance methods in jsii-pacmak (the targets/python.ts file is where it's at).
I can let you have a look here and see if you find your way around what needs to change... And then I can have a look, too, if you get nowhere or can't afford to spend that kind of time on this :)

Cool, thanks for providing me the context. I'll take a look at it.

I have improved the solution here, but realized the current Submodules feature of jsii generates invalid Python code for the test I would like to introduce (making it impossible to load).
This would need fixing before the compliance test can be added, however we could ship as-is since the original bug is likely addressed. I'd still kind of prefer being able to add the next test however (because I'm not sure the instance property/method name conflict results in code that'll behave as intended).

AWS CodeBuild CI Report

CodeBuild project: AutoBuildProject6AEA49D1-Blkkw9bQFn8A
Commit ID: 50e3f845bbf0f63c054eaec25868305d2b13069f
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: AutoBuildProject6AEA49D1-Blkkw9bQFn8A
Commit ID: 098c0bb795d1adfb8dba93c6284409716ff7b1a5
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: AutoBuildProject6AEA49D1-Blkkw9bQFn8A
Commit ID: cbff2d18da236eff2cef79fe555674389354b2e4
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: AutoBuildProject6AEA49D1-Blkkw9bQFn8A
Commit ID: b686c68bd98f110904aa4b755041ba2deadba575
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: AutoBuildProject6AEA49D1-Blkkw9bQFn8A
Commit ID: c3935cb01cf5b3bafb9070f1960d2e12815f9f98
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository


text:
controller.deprovisioning	Received unknown capacity type capacity-block

Description
Observed Behavior:
controller.deprovisioning	Received unknown capacity type capacity-block for instance type p4d.24xlarge	{"commit": "637a642"}
Expected Behavior:
No error
Reproduction Steps (Please include YAML):
Not sure what is causing this issue, I don't think we request this instance type anywhere.
Versions:

Chart Version: v0.30.0
Kubernetes Version (kubectl version): 1.25

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

duplicate of https://github.com/kubernetes-sigs/karpenter/issues/806

repo: aws/karpenter-provider-aws


text:
Migrate logger from knative to controller-runtime

Fixes #N/A
Description
How was this change tested?
Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[x] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build 8956087352
Details

40 of 63 (63.49%)  changed or added relevant lines in 17 files are covered.
9 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.1%) to 82.121%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/batcher/createfleet.go
0
1
0.0%

pkg/batcher/describeinstances.go
0
1
0.0%

pkg/controllers/interruption/controller.go
6
7
85.71%

pkg/providers/instancetype/instancetype.go
4
5
80.0%

pkg/providers/version/version.go
1
2
50.0%

pkg/providers/pricing/pricing.go
4
7
57.14%

pkg/providers/launchtemplate/launchtemplate.go
8
14
57.14%

pkg/operator/operator.go
0
9
0.0%

Files with Coverage Reduction
New Missed Lines
%

pkg/providers/amifamily/ami.go
9
86.02%

Totals

Change from base Build 8955685942:
-0.1%

Covered Lines:
5397

Relevant Lines:
6572

💛  - Coveralls

/karpenter snapshot

authors: coveralls jonathan-innis


text:
feat: Add node events based metrics

Fixes #N/A
Description

Adding metrics based on node events
Metric: operator_node_event_total

How was this change tested?

N/A

Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[x] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build 11834289342
Details

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.01%) to 82.793%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/controllers/controllers.go
0
1
0.0%

Totals

Change from base Build 11834237756:
-0.01%

Covered Lines:
5673

Relevant Lines:
6852

💛  - Coveralls

authors: coveralls engedaam


text:
Adds vcpu and memory label to pricing metrics

Description
This adds vcpu and memory labels to the pricing metric to help calculate costs per VCPU and Gb of memory.
In addition, this adds two new metrics, karpenter_cloudprovider_instance_vcpu_price_estimate and karpenter_cloudprovider_instance_memory_price_estimate which provide a price estimate for a single VCPU and 1 Gb of memory respectively. If an instance has 4 CPU and 16Gb of memory, then (4 * karpenter_cloudprovider_instance_vcpu_price_estimate) + (16 *  karpenter_cloudprovider_instance_memory_price_estimate) == karpenter_cloudprovider_instance_price_estimate. Having the price broken out by 1 CPU and 1 Gb of memory makes it much easier to calculate the cost of a Pod running with   an arbitrary amount of CPU and memory.
How was this change tested?

make test

Does this change impact docs?

[x] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[ ] No

Release Note

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@jonathan-innis Thoughts on this? Instead of trying to break out the instance types and make them available to pricing I ended up just generating a file with cpu and memory, which seems reasonable to me.

Thoughts on this?

Is it possible to get this info directly from GetInstanceTypes() call inside of the InstanceType provider. This has all the EC2 information for the instance type and we could use that for updating the metrics. Essentially, any time there is an update to that response, we would update the metric info. I think that would avoid us having to store static files that have these values.

Is it possible to get this info directly from GetInstanceTypes() call inside of the InstanceType provider. This has all the EC2 information for the instance type and we could use that for updating the metrics. Essentially, any time there is an update to that response, we would update the metric info. I think that would avoid us having to store static files that have these values.

It is, but separating this out from instancetype without coupling pricing is a bit challenging, as most of instancetype is dealing with the cache.
I'll take another stab at that -- I sort of figured the code gen solution wasn't the way forward, but wanted to throw it out there.

I sort of figured the code gen solution wasn't the way forward

I think starting looking in this area is a great place to start!

@jonathan-innis fixed the flakey test, ready for re-review

authors: jonathan-innis valdisrigdon

repo: aws/karpenter


text:
Java Logging with Lambda and Log4j2 appender has a bug

The Bug is that if you follow the instructions logging does not work instead you get
2018-04-23 14:04:19,908 main ERROR Error processing element Lambda ([Appenders: null]): CLASS_NOT_FOUND
2018-04-23 14:04:19,926 main ERROR Unable to locate appender "Lambda" for logger config "root"

Many  requests on Stackoverflow suggest that people are having trouble with this.
I have fixed the issue in a Pull request here:- PR #27  please merge it. thanks

Fixed, thanks

But I still have this error with latest available version, 1.1.0, of com.amazonaws:aws-lambda-java-log4j2.  When will the new jar with this fix be available in public maven repository?

Same error with 1.2, had to revert to 1.0

authors: bevin0708 hongqijia karlroberts spaethp

repo: awsdocs/aws-lambda-developer-guide


text:
Need EKS control plane and AMI with matching k8s version 1.12.7

What happened:
EKS worker nodes and control plane running different version
What you expected to happen:
Latest AWS EKS AMI supports same version of k8s as EKS control plane
How to reproduce it (as minimally and precisely as possible):
Run 1.11 eks.v2 control plan, and official eks ami for workers
Anything else we need to know?:
Change appears to have been checked in on 2019-03-14, but no new AMI has been released since then.
Environment:

AWS Region: us-east-1
Instance Type(s): m3.large
EKS Platform version (use aws eks describe-cluster --name <name> --query cluster.platformVersion): eks.2
Kubernetes version (use aws eks describe-cluster --name <name> --query cluster.version): 1.11
AMI Version: v20190220
Kernel (e.g. uname -a): ??
Release information (run cat /tmp/release on a node):
see above

The AMI's are in progress, should be announced here:
https://github.com/aws/containers-roadmap/issues/188#issuecomment-474010632
@tabern:

We updated the EKS control plane to kubernetes 1.11.8 last week to deliver a fix for the recent Golang CVE (kubernetes/kubernetes#73379) to the Kubernetes API server. We are working on delivering updated AMIs for EKS worker nodes and will update this issue when they are available.

ok.... subscribed to the other issue... closing this one.

The EKS control plane and worker nodes are still out of sync.  The control plane is at 1.12.6, but the workers are at 1.12.7.  This causes prometheus version mismatch alerts to fire.  Please keep the control plane and workers in sync.

@llamahunter I think it's OK: https://kubernetes.io/docs/setup/release/version-skew-policy/
kubelet must not be newer than kube-apiserver, and may be up to two minor versions older.

Example:

kube-apiserver is at 1.13
kubelet is supported at 1.13, 1.12, and 1.11

1.12.7 and 1.12.6 are the same minor and major version but at different patch levels.

This is correct. You can run the control plane and worker nodes safely with any patch version skew, and as @max-rocket-internet mentioned, up to two minor versions apart. Is alerting based on patch version skew a standard Prom alerting rule configuration?

The problem is that default kube-prometheus configurations report alerts if the versions don’t match. I can suppress the alerts, but I’d prefer to know when there was a version mismatch (as sometimes eks auto updates the control plane), so that I can get the workers back in sync.  How hard is it for amazon to just keep the worker ami they supply in sync with the control  plane they provide?

How hard is it for amazon to just keep the worker ami they supply in sync with the control plane they provide?

Not simple 😅

Update description to note that now need AMI matching 1.13.8, since the control plane just auto updated.

It would also be nice if the binaries would be released along side the AMIs. I use this repository as a base for building my EKS AMIs, and even though a release was cut a few days ago, the S3 bucket hasn't been updated yet. I realize this isn't exactly the problem described by this issue, but it seems like it would be lessened if the binaries in the amazon-eks bucket were updated in tandem with the control plane updates. Then, even if the amazon AMIs weren't built there would at least be a facility for people to build their own.
aws s3 ls s3://amazon-eks/
                           PRE 1.10.11/
                           PRE 1.10.13/
                           PRE 1.10.3/
                           PRE 1.11.10/
                           PRE 1.11.5/
                           PRE 1.11.8/
                           PRE 1.11.9/
                           PRE 1.12.7/
                           PRE 1.12.9/
                           PRE 1.13.7/
                           PRE cloudformation/

fwiw, there's now a 1.13.8 AMI available.

authors: llamahunter max-rocket-internet tabern ttyS0 whereisaaron

repo: awslabs/amazon-eks-ami


text:
[Question] install docker when runtime is containerd

Hi,
Just a question to verify, for https://github.com/awslabs/amazon-eks-ami/blob/master/scripts/install-worker.sh#L115-L116, looks like INSTALL_DOCKER is always true, do we still need docker when runtime is containerd?

Hi @yongzhang,
Docker is installed on the node when INSTALL_DOCKER is set as true. However, docker is not enabled when runtime is containerd.

Just a heads-up, the docker CLI and dockerd will no longer be available in our 1.22 (and later) releases.

authors: cartermckinnon ravisinha0506 yongzhang


text:
websocket forbidden 403

I'm using SigV4RequestSigner to presign a WebSocket url in aws lambda.
In the client when attemtping to call  new SignalingClient() with a requestSigner that returns the presigned url from the server I'm getting the following error:
Error during WebSocket handshake: Unexpected response code: 403

What could be the reason?
Could this be a CORS issue?

Solved when adding the kinesisvideo:ConnectAsMaster permission to the lambda function which signs the url.

@tomeraz I had the same issue. I'm trying to create a signaling client using new SignalingClient but failed with 403.

Can you tell me how you solved the question specifically ?

authors: SuiKaSan tomeraz


text:
Added --no-check-certificate to wget

Description of changes:
archive.ics.uci.edu's certificate has expired, added --no-check-certificate to be able to download the file
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Looks like they renewed their cert, so this change isn't needed anymore. Please reopen if you don't agree. Thanks for the contribution.

authors: aaronmarkham bustosjuan

repo: awslabs/amazon-sagemaker-examples


text:
Update deepar_synthetic.ipynb

replace DateTimeIndex with date_range. DateTimeIndex is deprecated and caused an error when I tried running this notebook as is.
Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

I restored the majority of the notebook that I accidentally deleted for this PR. Also, you are correct. The scikit learn change is completely different. Do you want me to break it out as another PR?

I think we can close this as the issue was fixed in another PR.


text:
Test if AWS supported region url exists

Test that link is working in this error message:
IamAuthConnectionPlugin.unsupportedRegion=Unsupported AWS region ''{0}''. For supported regions, please read https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html

cool, thanks

authors: davecramer joyc-bq

repo: awslabs/aws-advanced-jdbc-wrapper


text:
Moved to GG 1.9.2

Fixes #162
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Running integration tests

Integration tests passed.

repo: awslabs/aws-greengrass-provisioner


text:
Inconsistent weekday support (local vs lambda)

Seeing an odd issue with weekday support in which running locallly (using run_schedule_local.py) has the desired outcome; yet when we run the lambda it seems to inject static event data into the fuction which does not handle day of the month (i.e. mon#1, thu#3).
Schedule:

Period 1: 0600 - 1800, tue#1
Period 2: 0600 - 23:59, (thu#1, thu#2)
Period 3: null - 1800, mon-sun

Desired outcome: Start EC2 on First Tuesday (patches) for development, First/Second Thursday for Qual/QA, otherwise shutdown at 1800.
When we run this locally, everything is fine and it has the expected outcome. I've cleaned up the output, obfuscated a few things, but otherwise this is the raw output:

2019-02-15 - 21:30:31.707 - INFO : InstanceScheduler, version 2.2.2.0
2019-02-15 - 21:30:31.712 - DEBUG : Event is
{
    "source": "aws.events",
    "account": "foobar",
    "version": "0",
    "time": "2019-02-15T21:25:00Z",
    "id": "e12d8db2-fbc3-c927-736e-ed93d033b75a",
    "region": "us-west-2",
    "detail": {},
    "resources": [
        "arn:aws:events:us-west-2:foobar:rule/foo-bar-SchedulerRule-GUZLEUKIJ56P"
    ],
    "detail-type": "Scheduled Event"
}
2019-02-15 - 21:30:31.719 - INFO : Handler is CloudWatchEventHandler
2019-02-15 - 21:30:31.722 - INFO : Handler CloudWatchEventHandler : Received request
{
    "source": "aws.events",
    "account": "foobar",
    "version": "0",
    "time": "2019-02-15T21:25:00Z",
    "id": "e12d8db2-fbc3-c927-736e-ed93d033b75a",
    "region": "us-west-2",
    "detail": {},
    "resources": [
        "arn:aws:events:us-west-2:foobar:rule/foo-bar-SchedulerRule-GUZLEUKIJ56P"
    ],
    "detail-type": "Scheduled Event"
}
at 2019-02-15 21:30:31.072221
2019-02-15 - 21:30:31.183 - INFO : Running scheduling request for service(s) ec2, rds, account(s) foobar, region(s) us-west-2
2019-02-15 - 21:30:31.362 - INFO : Running EC2 scheduler for account foobar in region(s) us-west-2
2019-02-15 - 21:30:31.579 - INFO : Fetching ec2 instances for account foobar in region us-west-2
2019-02-15 - 21:30:31.646 - DEBUG : Selected ec2 instance foobar in state (running)
2019-02-15 - 21:30:31.646 - INFO : Number of fetched ec2 instances is 1, number of instances in a schedulable state is 1
2019-02-15 - 21:30:31.691 - DEBUG : [ Instance EC2:foobar ]
2019-02-15 - 21:30:31.691 - DEBUG : Current state is running, instance type is t2.small, schedule is "seattle-office-hours"
2019-02-15 - 21:30:31.692 - DEBUG : Time used to determine desired for instance is Fri Feb 15 14:30:31 2019
2019-02-15 - 21:30:31.692 - DEBUG : Checking conditions for period "patch-hours-qual"
2019-02-15 - 21:30:31.692 - DEBUG : Checking conditions for period "patch-hours-dev"
2019-02-15 - 21:30:31.693 - DEBUG : Checking conditions for period "shutdown"
2019-02-15 - 21:30:31.693 - DEBUG : [running] Weekday "fri" in weekdays (mon-sun)
2019-02-15 - 21:30:31.693 - DEBUG : [running] Time 14:30:31 is before stoptime 14:44:00, returned state is any
2019-02-15 - 21:30:31.693 - DEBUG : "Any" state period found for current time in schedule "seattle-office-hours", desired state is any
2019-02-15 - 21:30:31.694 - DEBUG : Desired state for instance from schedule "seattle-office-hours" is any, last desired state was running, actual state is running

Now, when we run via lambda it seems like all hell breaks loose:

2019-02-15 - 21:30:18.243 - INFO : InstanceScheduler, version 2.2.2.0
2019-02-15 - 21:30:18.243 - DEBUG : Event is
{
    "account": "foobar",
    "region": "us-west-2",
    "detail": {},
    "detail-type": "Scheduled Event",
    "source": "aws.events",
    "version": "0",
    "time": "2019-02-15T21:30:00Z",
    "id": "foobar",
    "resources": [
        "arn:aws:events:us-west-2:foobar:rule/foo-bar-SchedulerRule-GUZLEUKIJ56P"
    ]
}
2019-02-15 - 21:30:18.243 - INFO : Handler is CloudWatchEventHandler
2019-02-15 - 21:30:18.831 - INFO : Starting lambda function for scheduling ec2 instances for account foobar in region us-west-2
2019-02-15 - 21:30:19.792 - INFO : InstanceScheduler, version 2.2.2.0
2019-02-15 - 21:30:19.792 - DEBUG : Event is
{
    "action": "scheduler:run",
    "configuration": {
        "stopped_tags": "",
        "trace": true,
        "use_metrics": true,
        "started_tags": "",
        "schedule_lambda_account": true,
        "scheduled_services": [
            "ec2"
        ],
        "default_timezone": "UTC",
        "regions": [
            "us-west-2"
        ],
        "tag_name": "tc:ScheduleSandbox",
        "periods": {
            "weekends": {
                "weekdays": [
                    5,
                    6
                ]
            },
            "patch-hours-qual": {
                "endtime": "23:59",
                "begintime": "06:00"
            },
            "shutdown": {
                "endtime": "14:44",
                "weekdays": [
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6
                ]
            },
            "working-days": {
                "weekdays": [
                    0,
                    1,
                    2,
                    3,
                    4
                ]
            },
            "patch-hours-dev": {
                "endtime": "18:00",
                "begintime": "06:00"
            },
            "office-hours": {
                "endtime": "14:15",
                "begintime": "14:00",
                "weekdays": [
                    0,
                    1
                ]
            }
        },
        "schedules": {
            "uk-office-hours": {
                "enforced": false,
                "name": "uk-office-hours",
                "use_maintenance_window": false,
                "use_metrics": false,
                "schedule_dt": "2019-02-15T21:30:18.775711+00:00",
                "stop_new_instances": true,
                "periods": [
                    "office-hours"
                ],
                "timezone": "Europe/London"
            },
            "stopped": {
                "override_status": "stopped",
                "name": "stopped",
                "use_maintenance_window": false,
                "use_metrics": false,
                "schedule_dt": "2019-02-15T21:30:18.775376+00:00",
                "enforced": false,
                "stop_new_instances": true,
                "timezone": "UTC"
            },
            "running": {
                "override_status": "running",
                "name": "running",
                "use_maintenance_window": false,
                "use_metrics": false,
                "schedule_dt": "2019-02-15T21:30:18.773521+00:00",
                "enforced": false,
                "stop_new_instances": true,
                "timezone": "UTC"
            },
            "seattle-office-hours": {
                "enforced": "false",
                "name": "seattle-office-hours",
                "use_maintenance_window": false,
                "use_metrics": false,
                "schedule_dt": "2019-02-15T14:30:18.775348-07:00",
                "stop_new_instances": true,
                "periods": [
                    "patch-hours-qual",
                    "patch-hours-dev",
                    "shutdown"
                ],
                "timezone": "US/Mountain"
            },
            "scale-up-down": {
                "enforced": false,
                "name": "scale-up-down",
                "use_maintenance_window": false,
                "use_metrics": false,
                "schedule_dt": "2019-02-15T21:30:18.774345+00:00",
                "stop_new_instances": true,
                "periods": [
                    "working-days@t2.micro",
                    "weekends@t2.nano"
                ],
                "timezone": "UTC"
            }
        }
    },
    "dispatch_time": "2019-02-15 21:30:18.831986"
}
2019-02-15 - 21:30:19.960 - INFO : Handler is SchedulerRequestHandler
2019-02-15 - 21:30:20.821 - INFO : Handling took 2.578 seconds
2019-02-15 - 21:30:22.775 - INFO : Handler SchedulerRequestHandler scheduling request for service(s) ec2, account(s) foobar, region(s) us-west-2 at 2019-02-15 21:30:22.775648
2019-02-15 - 21:30:22.815 - INFO : Running EC2 scheduler for account foobar in region(s) us-west-2
2019-02-15 - 21:30:25.392 - INFO : Fetching ec2 instances for account foobar in region us-west-2
2019-02-15 - 21:30:25.791 - DEBUG : Selected ec2 instance foobar in state (running)
2019-02-15 - 21:30:25.791 - INFO : Number of fetched ec2 instances is 1, number of instances in a schedulable state is 1
2019-02-15 - 21:30:27.109 - DEBUG : [ Instance EC2:foobar ]
2019-02-15 - 21:30:27.110 - DEBUG : Current state is running, instance type is t2.small, schedule is "seattle-office-hours"
2019-02-15 - 21:30:27.110 - DEBUG : Time used to determine desired for instance is Fri Feb 15 14:30:18 2019
2019-02-15 - 21:30:27.110 - DEBUG : Checking conditions for period "patch-hours-qual"
2019-02-15 - 21:30:27.111 - DEBUG : [running] Time 14:30:18 is within 06:00:00-23:59:00, returned state is running
2019-02-15 - 21:30:27.111 - DEBUG : Checking conditions for period "patch-hours-dev"
2019-02-15 - 21:30:27.111 - DEBUG : [running] Time 14:30:18 is within 06:00:00-18:00:00, returned state is running
2019-02-15 - 21:30:27.111 - DEBUG : Checking conditions for period "shutdown"
2019-02-15 - 21:30:27.112 - DEBUG : [running] Weekday "fri" in weekdays (mon-sun)
2019-02-15 - 21:30:27.112 - DEBUG : [running] Time 14:30:18 is before stoptime 14:44:00, returned state is any
2019-02-15 - 21:30:27.112 - DEBUG : Active periods in schedule "seattle-office-hours": "patch-hours-qual","patch-hours-dev"
2019-02-15 - 21:30:27.112 - DEBUG : Using period "patch-hours-dev" to set the desired state and instance size
2019-02-15 - 21:30:27.112 - DEBUG : Desired state for instance from schedule "seattle-office-hours" is running, last desired state was running, actual state is running

As you can see, the event coming in seems to have the misinterpreted schedule.
Are we just glossing over something obvious, or is there a bug here in which this is not working as expected?

Hi, thanks for this information. We have fixed this issue in the next release that will be available soon. If you need this fix more urgently please let me know.
Thanks
Arie

We may need this a bit more urgently, depending on timing on the next release. Happy to work with you on this as this is unfortunately blocking an Enterprise-wide roll-out. Should we engage via our TAMs?
Thanks for the prompt reply on this, and the confirmation on the fix. Aside from this we're really impressed with the scheduler, and look forward to rolling it out across our organization.

Please ask your TAM to contact us and we'll provide you with access to the preview of this version.
Glad you like Instance Scheduler. Next update will have new features; EC2 hibernation, RDS Multi-AZ and Aurora, SSM parameter store integration to specify cross-account roles and support for EC2 maintenance windows as implicit running periods

Thanks @arieleeuw - I've reached out to our TAM (Richard Kang) and I believe he is looking for information on this. If you could reach out to him internally we'd greatly appreciate it.

Hi @arieleeuw. I'm also running into some issues when using "weekdays" -- I had a period set for the first Friday of every month, but the instances were being launched every day.
Would this be related to this issue? Do you have an idea when the update will be publicly available?
Thanks

The update is currently going through our internal release procedure and will be available soon.
The next update should fix the issue with weekday#.
Please note that we do not support schedules in which there are periods with just a start/end time combined with other periods in the same schedule.
I'll contact your TAM on how we can make the preview of the next update available for testing if you want.

Hi @arieleeuw we are planning to make use of the Instance Scheduler, is this issue still live?

Fixed in v1.2.0

authors: C-Kenny arieleeuw shsenior stevieg2123 ttaveira

repo: awslabs/aws-instance-scheduler


text:
Difficult and inconvenience in working with ruby and bundle gems

Description
Here is an example of ruby folder structure
sam-app/
|-- api/
|   |-- v1/
|   |   |-- endpoint.rb
|   |   |-- helper.rb
|   |   |-- helper2.rb
|-- template.yaml
|-- Gemfile
|-- Gemfile.lock
|-- vendor/
|   |-- bundle/
endpoint.rb snippet:
require 'rubygems'
require 'bundler/setup'
require_relative 'helper'

def lambda_handler(event:, context:)
end

helper.rb snippet:
require_relative 'helper2'

helper2.rb snippet:
require 'some_legit_gem'

without using sam, pure ruby structure, it's possible to run the code with command below
bundle install --path vendor/bundle
ruby app/v1/endpoint.rb

Steps to reproduce
bundle install # create vendor/bundle at root folder which is good
sam build
sam local start-api

Observed result
{
  "errorType": "Init\u003cLoadError\u003e",
  "errorMessage": "cannot load such file -- some_legit_gem",
  "stackTrace": [
    "/var/lang/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'",
    "/var/lang/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'",

Expected result
Doesn't require vendor/bundle to be same level as actual lambda handler or provide a simple entry point to lookup vendor folder
Additional environment details (Ex: Windows, Mac, Amazon Linux etc)

OS: Mac OS 10.14.6
Sam CLI: 0.22.0:

Can you show me your template.yaml file? As a short-term workaround, I strongly suspect that if you put your Gemfile into the api/ folder and just run sam build, everything will work. But for a deeper explanation, I'd need to see your template file.

@awood45 Here is the template.yaml, I personally felt having Gemfile under api or api/v1 or maybe having on both locations (root & codeuri subfolder) doesn't seem right to me. I would definitely want to hear more about it.
Resources:
  EndpointFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: api/v1/
      Handler: endpoint.lambda_handler
      Runtime: ruby2.5
      Events:
        Endpoint:
          Type: Api
          Properties:
            Path: /api/v1/endpoint
            Method: get
      Environment:
        Variables:
          SOME_KEY: !Ref SomeKey

So here's the breakdown of what's going on:

sam build looks in the CodeUri directory for the function given. This is useful in the case where different functions have different dependencies, to keep the overall artifact size down. So it will generally expect the Gemfile to be there, though workarounds exist.
The sam local issue where code changes aren't reflected without building is a known issue and not Ruby specific - you've got the workaround and it's in the feature backlog to have an easier path forward on this.
As for the possibility of multiple Gemfiles in a single project, as a longtime Rubyist myself I share that frustration. One approach if you have unit testing is to have your root Gemfile pull in the sub-Gemfiles, though I'm keeping my eye on projects like Gel as well which may have ways to support different dependency definitions for testing versus app dependencies. I'm actively pushing on these fronts.

Alternatively, you can sam build -m Gemfile from the root directory of your project and it should use the base directory Gemfile for all functions. Let me know if that helps in your case.
Closing for now as the base question is answered, feel free to reopen if you have further issues or questions.

In order to make it work for both local and deployment (without further investigation on why using solely nested Gemfile approach wouldn't work for deployment):
I just leave Gemfile at root level and run the command below before executing sam local start-api/sam package ... the app
bundle install
cp -rf vendor api/v1/vendor
sam build

Sorry to reply on this closed thread but @awood45 has the behaviour of this already changed since the original issue was discussed? Today if i initialise a with the ruby runtime and load the hello world example:
sam init --runtime ruby2.7 --name xxx

I get 2 Gemfiles one in the root dir and one in hello_world folder (the function). This confuses me and which one i should update if my hello_world function would need an additional gem. Do i then update the Gemfile inside the hello_world folder or the one at the root? According to the threat above the one in the /hello_word should be the one to use?
I have a hard time finding documentation on how to develop locally with sam and then finally do a deploy. I have found several tutorials on the web but all us different approaches. Is there any documentation on how to use it properly?
According to the info in this thread i should:

keep a Gemfile in the folder of my functions
sam build so the necessary gem deps are installed (at the root directory)
invoke start-api, deploy, ...

What is the purpose then of the Gemfile at the root of the directory and what does sam build -m Gemfile do cause that seems to be the same as just sam build?

repo: awslabs/aws-sam-cli


text:
TemperatureControl/README.md is not self-contained (and possibly in-complete).

I successfully worked through the AndroidPubSub example. But my experience with theTemperature Control Sample is fraught with complications.  Unfortunately, the README.md relies too much on external projects to be self contained.  Even then, I suspect there are important set-up steps that are missing from both.
In particular, neither this readme or the associated example (from a Javascript SDK, why JS?) really describe how to create the Thing instances or types in the AWS IoT console. Without that, I don't see how there could be shadow things to connect to.
Please reconsider their design of the samples to make them completely self-contained --- in code as well as instructions.
Also, some screen shots to explain what the sample actually demonstrates and how it should look would be helpful.
Finally, there's a typo in the TemperatureControl/Readme.md file.  s/applicaiton/application/;

Hi @Kumfert,
Thank you for your feedback. After some review, we have decided to deprecate the TemperatureControl sample. It will be fully delete from the repo in two weeks.
If you have any questions about using IoT please open an issue here.

authors: Kumfert muellerfr

repo: awslabs/aws-sdk-android-samples

license_source: bigquery


text:
[request] Add support for actix_multipart's Field for SdkBody::from

Describe the feature
Add the ability to upload data directly to S3 from an actix_multipart Field via a new From trait implementation in SdkBody.
Use Case
Currently there's no obvious way to transfer data from a Field directly to S3 with the AWS Rust SDK. If we were able to do this, it would speed up file uploads by not requiring the file to be fully uploaded to the server as a temporary file before then being sent to S3.
Proposed Solution
Create a new impl for the From trait to allow a Field to be wrapped in an SdkBody. This could then be consumed from ByteStream, allowing for data to be passed through from the user agent to S3 without going through a local temporary file.
Other Information
No response
Acknowledgements

[ ] I may be able to implement this feature request
[ ] This feature might incur a breaking change

A note for the community

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue, please leave a comment

To do this, you can use SdkBody::from_dyn.
To do this, you'd need to do something like this:
// possibly some pinning required?
struct ActixWrapper(Field)

impl http_body::Body<Data=Bytes, E=Box<dyn Error + Send + Sync> for ActixWrapper {
  // use the `Stream` impl on `Field` to implement `data()` on `http_body::Body`
}

let sdk_body = SdkBody::from_dyn(ActixWrapper(field))

authors: lyptt rcoh

repo: awslabs/aws-sdk-rust


text:
chore: Creates codege-build-test-on-comment workflow

This PR creates a duplicate of the codegen-build-test workflow that can be triggered on a PR via a comment containing /test
Issue #
#977
Description of changes

New/existing dependencies impact assessment, if applicable

Conventional Commits

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

/test

repo: awslabs/aws-sdk-swift


text:
chore(build-patterns.sh): remove $(npm bin) reference

Issue #, if available:
#1000
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

AWS CodeBuild CI Report

CodeBuild project: githubautobuild-for-cdk-v2
Commit ID: ec376e387e3f2021b118cb2ef29a2381e39fb81c
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

authors: aws-solutions-constructs-team biffgaut

repo: awslabs/aws-solutions-constructs


text:
Undocumented dependencies. Require a ~/.aws/config

cfn-lint version: cfn-lint 0.3.2 and 0.4.2 (at least)
Description of issue.
cfn-lint have an undocumented dependencies to the .aws/config file. (You have to run aws configure in order to run cfn-lint).
Otherwise, it fails with these error :
Traceback (most recent call last):
File "/{anonPath}/venv/bin/cfn-lint", line 11, in
sys.exit(main())
File "/{anonPath}/venv/lib/python3.6/site-packages/cfnlint/main.py", line 33, in main
args.override_spec, formatter))
File "/{anonPath}/venv/lib/python3.6/site-packages/cfnlint/core.py", line 53, in run_cli
matches = run_checks(filename, template, rules, regions)
File "/{anonPath}/venv/lib/python3.6/site-packages/cfnlint/core.py", line 312, in run_checks
matches.extend(runner.transform())
File "/{anonPath}/venv/lib/python3.6/site-packages/cfnlint/init.py", line 807, in transform
matches = transform.transform_template()
File "/{anonPath}/venv/lib/python3.6/site-packages/cfnlint/transform.py", line 106, in transform_template
sam_translator.translate(sam_template=self._template, parameter_values={})
File "/{anonPath}/venv/lib/python3.6/site-packages/samtranslator/translator/translator.py", line 57, in translate
deployment_preference_collection = DeploymentPreferenceCollection()
File "/{anonPath}/venv/lib/python3.6/site-packages/samtranslator/model/preferences/deployment_preference_collection.py", line 30, in init
self.codedeploy_iam_role = self._codedeploy_iam_role()
File "/{anonPath}/venv/lib/python3.6/site-packages/samtranslator/model/preferences/deployment_preference_collection.py", line 89, in _codedeploy_iam_role
ArnGenerator.generate_aws_managed_policy_arn('service-role/AWSCodeDeployRoleForLambda')
File "/{anonPath}/venv/lib/python3.6/site-packages/samtranslator/translator/arn_generator.py", line 22, in generate_aws_managed_policy_arn
return 'arn:{}:iam::aws:policy/{}'.format(ArnGenerator.get_partition_name(),
File "/{anonPath}/venv/lib/python3.6/site-packages/samtranslator/translator/arn_generator.py", line 44, in get_partition_name
region_string = region.lower()
AttributeError: 'NoneType' object has no attribute 'lower'
Specifying a region with -r in cfn lint doesnt fix the issue.

Shoot. It’s the AWS SAM package we use to transform servlerless templates.  I thought we had worked a way around this. Let us see if we can do anything there. Our goal has always been to not rely on a network connection to lint.  I would like to also not require that file but need to do some digging. Thanks for pointing this out.

I followed it to SAM too.
I have been able to workaround it by setting an environment variable
AWS_DEFAULT_REGION which will be taken as value if there is no region precised (if i understand correctly the SAM code)

I feel like there's been a discussion on the SAM side about defaulting to us-east-1.  Let me see if I can dig up the issue on their side.

I'll see if we can work around this, or pass along the cfn-lint region to SAM.

Ah, remember this indeed, I'll add a ticket/PR in SAM.
Issue is in this lineL https://github.com/awslabs/serverless-application-model/blob/master/samtranslator/translator/arn_generator.py#L39
If no region is specified is uses Boto to load it. Which uses the "default" aws configuration for this. That method has Region as an input parameter, but in the calling method above (https://github.com/awslabs/serverless-application-model/blob/master/samtranslator/translator/arn_generator.py#L22) it never passes the region.
I'll see if I can open up the flow in this process so we can actually pass along the region

A workaround based on the SAM code could be using an Environment Variable (AWS_DEFAULT_REGION)

@kddejong In what extend is setting the environment variable in the linter an option?

good question @fatbasstard I would need to do some more research on that but I would think if it isn't set and it wouldn't be intrusive maybe we can set it for them... at least to  use the Transform functionality for SAM.

Fixed in v0.5.0.  Please validate and we can re-open if needed.

authors: DavidOpVa cmmeyer fatbasstard kddejong

repo: awslabs/cfn-python-lint


text:
Can post_install script be a local script?

I have a script that I need to run after boot. This script is part of the AMI. According to the documentation, this has to be a URL post_install script. Can this be a local script, say /usr/local/scripts/example.sh?
Thanks
Santi

The post_install script needs to be a URL that works with wget.  In theory, file:///usr/local/scripts/example.sh syntax should work, although there's a couple of gotchas.  First, the script needs to exist both in the AMI and in the same location on the host from which you run cfncluster, as the command line validates the URL.  Second, there's very little debugging output when something goes wrong, so it's definitely a trial and error debugging.  I'm not sure I'd recommend such a strategy, but it should work.
I have to ask; if you're baking your own AMI, why not just add the /etc/init.d/ hook and avoid the post-install hook?

@bwbarrett Yes, realized that I can add to /etc/init.d/ after some StackOverflow digging. Will try that.
Thanks!

hello, would you explain a little bit more how you did it to put the script under /etc/init.d/ ? I'm attempting to do the same thing you did...thanks

@jackyenbioinfo I don't remember the exact case as I am not using a post install script anymore. But the idea was to create 1) custom AMI using one of the cfncluster template AMIs, 2) Within that AMI create a script under /etc/init.d/<custom_script>, 3) Use that script inpost_install option using file:///etc/init.d/<custom_script.

thanks! so under the post_install in the config file do "file:///etc/init.d/my_script" correct? Could I put it under the home directory like "/home/ubuntu/myscript" and just specify in my config file? thanks

@jackyenbioinfo I think @bwbarrett suggestion was to use /etc/init.d script to run something at boot instead of using post_install script. My suggestion above is incorrect! You can use another script in $HOME in post_install and technically it should work.

authors: adavanisanti bwbarrett jackyenbioinfo

repo: awslabs/cfncluster


text:
Auto Scaling not going past 50 compute nodes automatically

For a cluster I created the max_queue_size is set to 100.  When running jobs it would not go above 50 compute nodes.  I was able to change the Auto Scaling group manually through the AWS Dashboard and it did go higher.

Here the file.  I'm using SGE.
config-sanitized.txt

I think I found the problem.  I was using a bad copy of my config file.


text:
Configure failing in python 3.5.1

Hi,
Are there plans to make cfncluster python 3 compatible? I'm receiving the following error when I try to run cfncluster configure under 3.5.1.
AttributeError: module 'easyconfig' has no attribute 'configure'

Thanks!

Perplexingly, easyconfig throws this error in both Python 2.7.10 and 3.5.1, but cfncluster only throws the error in Python 2.7.10.
easyconfig from REPL
Python 2.7.10
In [9]: sys.version
Out[9]: '2.7.10 |Anaconda 2.1.0 (64-bit)| (default, Oct 19 2015, 18:04:42) \n[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]'
In [10]: easyconfig.__version__
Out[10]: '0.1.2'
In [11]: easyconfig.configure
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-11-3dd152134a23> in <module>()
----> 1 easyconfig.configure

AttributeError: 'module' object has no attribute 'configure'

Python 3.5.1
In [6]: sys.version
Out[6]: '3.5.1 |Continuum Analytics, Inc.| (default, Dec  7 2015, 11:16:01) \n[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]'
In [7]: easyconfig.__version__
Out[7]: '0.1.2'
In [8]: easyconfig.configure
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-8-3dd152134a23> in <module>()
----> 1 easyconfig.configure

AttributeError: module 'easyconfig' has no attribute 'configure'
In [9]:

easyconfig from cfncluster
Python 2.7.10
$ python2 $(which cfncluster) configure
Cluster Template [default]:

Python 3.5.1
$ python3 $(which cfncluster) configure
Traceback (most recent call last):
  File "/apps/lab/miket/anaconda/2.0.1/envs/py35/bin/cfncluster", line 11, in <module>
    sys.exit(main())
  File "/apps/lab/miket/anaconda/2.0.1/envs/py35/lib/python3.5/site-packages/cfncluster/cli.py", line 136, in main
    args.func(args)
  File "/apps/lab/miket/anaconda/2.0.1/envs/py35/lib/python3.5/site-packages/cfncluster/cli.py", line 25, in configure
    easyconfig.configure(args)
AttributeError: module 'easyconfig' has no attribute 'configure'

Does cfncluster version fail as well?
On Wednesday, January 13, 2016, Matt Stone notifications@github.com wrote:

Perplexingly, easyconfig throws this error in both Python 2.7.10 and
3.5.1, but cfncluster only throws the error in Python 2.7.10.
easyconfig from REPL
Python 2.7.10
In [9]: sys.version
Out[9]: '2.7.10 |Anaconda 2.1.0 (64-bit)| (default, Oct 19 2015, 18:04:42) \n[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]'
In [10]: easyconfig.version
Out[10]: '0.1.2'
In [11]: easyconfig.configure
AttributeError                            Traceback (most recent call last)
 in ()
----> 1 easyconfig.configure
AttributeError: 'module' object has no attribute 'configure'
Python 3.5.1
In [6]: sys.version
Out[6]: '3.5.1 |Continuum Analytics, Inc.| (default, Dec  7 2015, 11:16:01) \n[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]'
In [7]: easyconfig.version
Out[7]: '0.1.2'
In [8]: easyconfig.configure
AttributeError                            Traceback (most recent call last)
 in ()
----> 1 easyconfig.configure
AttributeError: module 'easyconfig' has no attribute 'configure'
In [9]:
easyconfig from cfncluster
Python 2.7.10
$ python2 $(which cfncluster) configure
Cluster Template [default]:
Python 3.5.1
$ python3 $(which cfncluster) configure
Traceback (most recent call last):
File "/apps/lab/miket/anaconda/2.0.1/envs/py35/bin/cfncluster", line 11, in
sys.exit(main())
File "/apps/lab/miket/anaconda/2.0.1/envs/py35/lib/python3.5/site-packages/cfncluster/cli.py", line 136, in main
args.func(args)
File "/apps/lab/miket/anaconda/2.0.1/envs/py35/lib/python3.5/site-packages/cfncluster/cli.py", line 25, in configure
easyconfig.configure(args)
AttributeError: module 'easyconfig' has no attribute 'configure'
—
Reply to this email directly or view it on GitHub
https://github.com/awslabs/cfncluster/issues/78#issuecomment-171303077.

Thanks for the quick response.
Yes, version fails similarly under Python 3.
AttributeError: module 'cfncluster' has no attribute 'version'

However, it also fails under Python 2 with the following error.
$ python2 /apps/lab/miket/anaconda/2.0.1/envs/py35/bin/cfncluster version
Traceback (most recent call last):
  File "/apps/lab/miket/anaconda/2.0.1/envs/py35/bin/cfncluster", line 11, in <module>
    sys.exit(main())
  File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/cfncluster/cli.py", line 136, in main
    args.func(args)
  File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/cfncluster/cli.py", line 43, in version
    cfncluster.version(args)
  File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/cfncluster/cfncluster.py", line 27, in version
    config = cfnconfig.CfnClusterConfig(args)
  File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/cfncluster/cfnconfig.py", line 37, in __init__
    self.version = pkg_resources.get_distribution("cfncluster").version
  File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/distribute-0.6.15-py2.7.egg/pkg_resources.py", line 298, in get_distribution
    if isinstance(dist,Requirement): dist = get_provider(dist)
  File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/distribute-0.6.15-py2.7.egg/pkg_resources.py", line 177, in get_provider
    return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0]
  File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/distribute-0.6.15-py2.7.egg/pkg_resources.py", line 654, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/distribute-0.6.15-py2.7.egg/pkg_resources.py", line 552, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: cfncluster

That's very strange, all initial testing is done on python 2.7.
On Wednesday, January 13, 2016, Matt Stone notifications@github.com wrote:

Thanks for the quick response.
Yes, version fails similarly under Python 3.
AttributeError: module 'cfncluster' has no attribute 'version'
However, it also fails under Python 2 with the following error.
$ python2 /apps/lab/miket/anaconda/2.0.1/envs/py35/bin/cfncluster version
Traceback (most recent call last):
File "/apps/lab/miket/anaconda/2.0.1/envs/py35/bin/cfncluster", line 11, in
sys.exit(main())
File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/cfncluster/cli.py", line 136, in main
args.func(args)
File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/cfncluster/cli.py", line 43, in version
cfncluster.version(args)
File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/cfncluster/cfncluster.py", line 27, in version
config = cfnconfig.CfnClusterConfig(args)
File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/cfncluster/cfnconfig.py", line 37, in init
self.version = pkg_resources.get_distribution("cfncluster").version
File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/distribute-0.6.15-py2.7.egg/pkg_resources.py", line 298, in get_distribution
if isinstance(dist,Requirement): dist = get_provider(dist)
File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/distribute-0.6.15-py2.7.egg/pkg_resources.py", line 177, in get_provider
return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0]
File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/distribute-0.6.15-py2.7.egg/pkg_resources.py", line 654, in require
needed = self.resolve(parse_requirements(requirements))
File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/distribute-0.6.15-py2.7.egg/pkg_resources.py", line 552, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: cfncluster
—
Reply to this email directly or view it on GitHub
https://github.com/awslabs/cfncluster/issues/78#issuecomment-171309546.

What OS are you testing on? How did you install CfnCluster?
On Wednesday, January 13, 2016, dougalb@gmail.com dougalb@gmail.com wrote:

That's very strange, all initial testing is done on python 2.7.
On Wednesday, January 13, 2016, Matt Stone <notifications@github.com
<javascript:_e(%7B%7D,'cvml','notifications@github.com');>> wrote:

Thanks for the quick response.
Yes, version fails similarly under Python 3.
AttributeError: module 'cfncluster' has no attribute 'version'
However, it also fails under Python 2 with the following error.
$ python2 /apps/lab/miket/anaconda/2.0.1/envs/py35/bin/cfncluster version
Traceback (most recent call last):
File "/apps/lab/miket/anaconda/2.0.1/envs/py35/bin/cfncluster", line 11, in
sys.exit(main())
File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/cfncluster/cli.py", line 136, in main
args.func(args)
File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/cfncluster/cli.py", line 43, in version
cfncluster.version(args)
File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/cfncluster/cfncluster.py", line 27, in version
config = cfnconfig.CfnClusterConfig(args)
File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/cfncluster/cfnconfig.py", line 37, in init
self.version = pkg_resources.get_distribution("cfncluster").version
File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/distribute-0.6.15-py2.7.egg/pkg_resources.py", line 298, in get_distribution
if isinstance(dist,Requirement): dist = get_provider(dist)
File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/distribute-0.6.15-py2.7.egg/pkg_resources.py", line 177, in get_provider
return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0]
File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/distribute-0.6.15-py2.7.egg/pkg_resources.py", line 654, in require
needed = self.resolve(parse_requirements(requirements))
File "/apps/lab/miket/anaconda/2.0.1/lib/python2.7/site-packages/distribute-0.6.15-py2.7.egg/pkg_resources.py", line 552, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: cfncluster
—
Reply to this email directly or view it on GitHub
https://github.com/awslabs/cfncluster/issues/78#issuecomment-171309546.

Sorry, it looks like there was an issue with the pip install in that conda environment. I created a fresh environment and version looks like it's working appropriately.
$ python --version
Python 2.7.11 :: Continuum Analytics, Inc.
$ cfncluster version
Default config /PHShome/my520/.cfncluster/config not found
You can copy a template from here: /apps/lab/miket/anaconda/2.0.1/envs/py27/lib/python2.7/site-packages/cfncluster/examples/config

I'm on RHEL 6.5 and installed with pip 7.1.2.

No problem. Are you installing 0.0.22 from PyPi or the latest 1.0 beta? For more information on the beta, check here - https://forums.aws.amazon.com/ann.jspa?annID=3471. If you are just getting started with CfnCluster, I would highly recommend starting with the latest release.

Sorry to be commenting on a year old issue, but I cannot get cfncluster to work with 3.5.2 (works fine with 2.7).  Is this a known issue?  The only requirements I see in the docs where it specifically says 2.7 is for the windows section (I'm using both os x and a modern linux).  If 3.5.2 is not supported, are there plans to?
Just for reference, here is the situation (for os x)...
# pyenv version
3.5.2 (set by /Users/bct/.pyenv/version)
# pip install cfncluster --upgrade
Requirement already up-to-date: cfncluster in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages
Requirement already up-to-date: boto>=2.42.0 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from cfncluster)
Requirement already up-to-date: awscli>=1.10.56 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from cfncluster)
Requirement already up-to-date: botocore==1.4.92 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from awscli>=1.10.56->cfncluster)
Requirement already up-to-date: PyYAML<=3.12,>=3.10 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from awscli>=1.10.56->cfncluster)
Requirement already up-to-date: colorama<=0.3.7,>=0.2.5 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from awscli>=1.10.56->cfncluster)
Requirement already up-to-date: docutils>=0.10 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from awscli>=1.10.56->cfncluster)
Requirement already up-to-date: s3transfer<0.2.0,>=0.1.9 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from awscli>=1.10.56->cfncluster)
Requirement already up-to-date: rsa<=3.5.0,>=3.1.2 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from awscli>=1.10.56->cfncluster)
Requirement already up-to-date: python-dateutil<3.0.0,>=2.1 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from botocore==1.4.92->awscli>=1.10.56->cfncluster)
Requirement already up-to-date: jmespath<1.0.0,>=0.7.1 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from botocore==1.4.92->awscli>=1.10.56->cfncluster)
Requirement already up-to-date: pyasn1>=0.1.3 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from rsa<=3.5.0,>=3.1.2->awscli>=1.10.56->cfncluster)
Requirement already up-to-date: six>=1.5 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from python-dateutil<3.0.0,>=2.1->botocore==1.4.92->awscli>=1.10.56->cfncluster)
# cfncluster configure
Traceback (most recent call last):
  File "~/.pyenv/versions/3.5.2/bin/cfncluster", line 11, in <module>
    load_entry_point('cfncluster==1.3.1', 'console_scripts', 'cfncluster')()
  File "~/.pyenv/versions/3.5.2/lib/python3.5/site-packages/cfncluster/cli.py", line 154, in main
    args.func(args)
  File "~/.pyenv/versions/3.5.2/lib/python3.5/site-packages/cfncluster/cli.py", line 25, in configure
    easyconfig.configure(args)
AttributeError: module 'easyconfig' has no attribute 'configure'

Sorry to be commenting on a year old issue, but I cannot get cfncluster to work with 3.5.2 (works fine with 2.7).  Is this a known issue?  The only requirements I see in the docs where it specifically says 2.7 is for the windows section (I'm using both os x and a modern linux).  If 3.5.2 is not supported, are there plans to?
Just for reference, here is the situation (for os x)...
# pyenv version
3.5.2 (set by /Users/bct/.pyenv/version)
# pip install cfncluster --upgrade
Requirement already up-to-date: cfncluster in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages
Requirement already up-to-date: boto>=2.42.0 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from cfncluster)
Requirement already up-to-date: awscli>=1.10.56 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from cfncluster)
Requirement already up-to-date: botocore==1.4.92 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from awscli>=1.10.56->cfncluster)
Requirement already up-to-date: PyYAML<=3.12,>=3.10 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from awscli>=1.10.56->cfncluster)
Requirement already up-to-date: colorama<=0.3.7,>=0.2.5 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from awscli>=1.10.56->cfncluster)
Requirement already up-to-date: docutils>=0.10 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from awscli>=1.10.56->cfncluster)
Requirement already up-to-date: s3transfer<0.2.0,>=0.1.9 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from awscli>=1.10.56->cfncluster)
Requirement already up-to-date: rsa<=3.5.0,>=3.1.2 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from awscli>=1.10.56->cfncluster)
Requirement already up-to-date: python-dateutil<3.0.0,>=2.1 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from botocore==1.4.92->awscli>=1.10.56->cfncluster)
Requirement already up-to-date: jmespath<1.0.0,>=0.7.1 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from botocore==1.4.92->awscli>=1.10.56->cfncluster)
Requirement already up-to-date: pyasn1>=0.1.3 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from rsa<=3.5.0,>=3.1.2->awscli>=1.10.56->cfncluster)
Requirement already up-to-date: six>=1.5 in ~/.pyenv/versions/3.5.2/lib/python3.5/site-packages (from python-dateutil<3.0.0,>=2.1->botocore==1.4.92->awscli>=1.10.56->cfncluster)
# cfncluster configure
Traceback (most recent call last):
  File "~/.pyenv/versions/3.5.2/bin/cfncluster", line 11, in <module>
    load_entry_point('cfncluster==1.3.1', 'console_scripts', 'cfncluster')()
  File "~/.pyenv/versions/3.5.2/lib/python3.5/site-packages/cfncluster/cli.py", line 154, in main
    args.func(args)
  File "~/.pyenv/versions/3.5.2/lib/python3.5/site-packages/cfncluster/cli.py", line 25, in configure
    easyconfig.configure(args)
AttributeError: module 'easyconfig' has no attribute 'configure'

authors: bcthomas dougalb msto


text:
Rename elliptic_curve Extension to supported_groups

Issue # (if available): 1120
Description of changes:
Rename 'elliptic_curve' Extension 'supported_groups' as per TLS 1.3 RFC
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

:exclamation: No coverage uploaded for pull request head (supported_groups@d73c308). Click here to learn what that means.
The diff coverage is n/a.

authors: NLMalloy codecov-io


text:
CORS Allow-Credentials and Expose-Headers support

I plan to create a PR to add support for Access-Control-Allow-Credentials and Access-Control-Expose-Headers in the CORS configuration block.
Right now you have to add swagger aws integration configuration for options requests to facilitate this. Having these setting in the CORS configuration block will make CORS configuration easier and especially less error prone .
We are using (the same) custom headers for our endpoints so moving this configuration from swagger into the CORS configuration block would improve our configuration workflow.
Adding support for these headers would complete CORS header support according to https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers

It appears to me that "Access-Control-Expose-Headers" is not meant to be set on preflight responses, but only on "actual" responses. SAM can't do anything with the application's responses; it's up to the application to set those. I think that adding it to a preflight response carries no meaning.

Hi @chrisoverzero , the Access-Control-Expose-Headers header is required to be set on the Options preflight call as well (at least in current Chrome version).

I can't seem to recreate that. I've created an API that responds to preflight requests without "Access-Control-Expose-Headers" and to non-preflight requests with "Access-Control-Expose-Headers". In Chrome 67.0.3396.79, I'm running this:
fetch(
  'http://localhost:5000/cors/exposed',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    },
    body: JSON.stringify({})
  }).then(r => console.log(r.headers.get('something-custom')))

…and I am able to read the value of the "Something-Custom" header.
Additionally, the spec calls out "Access-Control-Expose-Headers" as a header that appears in responses to non-preflight requests.

Access-Control-Allow-Credentials is valid for the responses to both preflight and actual CORS requests.

exactly and it should be part of preflight requests as well so CORS option in SAM should support this.

What should SAM do if a template sets Access-Control-Allow-Credentials and sets Access-Control-Allow-Origin to "'*'"?

Hi Chris,
IMO SAM can leave it as it is and pass it on to API gateway and browser will give error related to this as part of client request.
This is the same behaviour as API gateway.

Merged into develop. Thank you for this contribution!

Released!

authors: cast chrisoverzero keetonian manishgkasera

repo: awslabs/serverless-application-model


text:
make ec2 linux workspace mount data automatically

Issue #, if available:
Description of changes:
Checklist:

[ yes] Have you successfully deployed to an AWS account with your changes?
[ yes] Have you successfully deployed to an AWS China account with your changes?
[ ] Have you written new tests for your core changes, as applicable?
[ ] Have you successfully tested with your changes locally?
[ ] If new dependencies have been added, have they been pinned to specific versions?
[ ] Is this change also required on the AWS Solution version?
[ ] Have you updated openapi.yaml if you made updates to API definition (including add, delete or update parameter and request data schema)?
[ ] If you had to run manual tests, have you considered automating those tests by adding them to end-to-end tests?
[ ] If you are updating the changelog and vending out a new release, have you updated versionNumber and versionDate in .defaults.yml

AS review ticket id:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #74 (e009719) into develop (0ef9d94) will decrease coverage by 12.34%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##           develop      #74       +/-   ##
============================================
- Coverage    51.77%   39.42%   -12.35%
============================================
  Files          302       50      -252
  Lines        17193     2379    -14814
  Branches      2645      449     -2196
============================================
- Hits          8902      938     -7964
+ Misses        7294     1200     -6094
+ Partials       997      241      -756

Impacted Files
Coverage Δ

lib/user/user-authz-service.js
24.07% <0.00%> (-52.40%)
:arrow_down:

lib/helpers/utils.js
21.21% <0.00%> (-45.99%)
:arrow_down:

src/models/users/User.js
12.90% <0.00%> (-38.06%)
:arrow_down:

src/models/users/UsersStore.js
38.66% <0.00%> (-5.98%)
:arrow_down:

lib/user/user-service.js
65.21% <0.00%> (-5.38%)
:arrow_down:

src/models/forms/AddUserForm.js
100.00% <0.00%> (ø)

src/parts/studies/StudyStepsProgress.js

...studio-environment/start-rstudio-environment-sc.js

lib/usage/resource-usage-service.js

lib/compute/data/emr/platforms.js

... and 249 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0ef9d94...e009719. Read the comment docs.

authors: codecov-commenter dengmingtong

repo: awslabs/service-workbench-on-aws-cn


text:
add: request information header interceptors and plugins

Motivation and Context

#1793
Description

This adds a runtime plugin which provides support for a request info header.
The plugin depends upon three interceptors:

ServiceClockSkewInterceptor - tracks the approximate latency between the client and server
RequestAttemptsInterceptor - tracks the number of attempts made for a single operation
RequestInfoInterceptor - adds request metadata to outgoing requests. Works by setting a header.

Testing

I wrote one test but need to implement several more

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

This is currently blocked on fixing how the orchestrator retries are triggered.

This PR fell through the cracks. It's ready to be merged, so I've put it in the queue.

repo: awslabs/smithy-rs


text:
fix: skip the deprecated trait only for shapes in the prelude

Description of changes
Some SDK inherit the deprecated traits from members, we should only skip them for deprecated shapes in the prelude.
This change aligns this logic with the same logic used in smithy-typescript.
Scope

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Closing due to staleness, after discussing with author we're not sure what problem this was intended to remedy.

authors: jbelkins sugmanue

repo: awslabs/smithy-swift