boto/boto — pull request #1900 by danielgtaylor (2013-12-10 22:01:16+00:00)
Title: Make trailing slashes for EC2 metadata URLs explicit & remove them from userdata requests

Make trailing slashes for metadata URLs explicit and remove the trailing slash from userdata calls. This is an alternative implementation to #1897 and #1856. Here is a review of the AWS and CloudStack behaviors as well as how exactly boto will change after this pull request is applied:

| URL | AWS? | CloudStack | Boto 2.19.0 | After Change |
|---------------------------------------------------------|------:|-----------:|------------:| ---------:|
|http://169.254.169.254/latest/meta-data | × | × | | |
|http://169.254.169.254/latest/meta-data/ | ✓ | ✓ | ✓ | ✓ |
|http://169.254.169.254/latest/meta-data/instance-id | ✓ | ✓ | ✓ | ✓ |
|http://169.254.169.254/latest/meta-data/instance-id/ | ✓ | × | | |
|http://169.254.169.254/latest/user-data | ✓ | ✓ | | ✓ |
|http://169.254.169.254/latest/user-data/ | ✓ | × | ✓ | |
|http://169.254.169.254/latest/dynamic | × | n/a | | |
|http://169.254.169.254/latest/dynamic/ | ✓ | n/a | ✓ | ✓ |
|http://169.254.169.254/latest/dynamic/instance-identity | × | n/a | | |
|http://169.254.169.254/latest/dynamic/instance-identity/ | ✓ | n/a | ✓ | ✓ |

@hiroki-soum and @pyr, does this look like it solves your issues? The added test should prevent changes in the future.

@toastdriven please review. My one concern is https://github.com/boto/boto/blob/develop/boto/utils.py#L371 - if anybody is manually passing in a string like `'meta-data'` today then this may break. Should we just force a trailing slash in that method?