Skip to content

Commit

Permalink
feat(aws/subnet): Add accountId to subnet endpoints (spinnaker#3101)
Browse files Browse the repository at this point in the history
This adds accountId to the subnet endpoints for aws.
  • Loading branch information
gardleopard authored and clanesf committed Dec 8, 2018
1 parent cde4244 commit 714794e
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ class AmazonSubnet implements Subnet {
String cidrBlock
Integer availableIpAddressCount
String account
String accountId
String region
String availabilityZone
String purpose
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
package com.netflix.spinnaker.clouddriver.aws.provider.agent

import com.netflix.spinnaker.cats.agent.AccountAware
import com.netflix.spinnaker.clouddriver.aws.model.AmazonSubnet
import com.netflix.spinnaker.clouddriver.aws.security.AmazonClientProvider
import com.netflix.spinnaker.clouddriver.aws.security.NetflixAmazonCredentials

Expand Down Expand Up @@ -86,6 +87,7 @@ class AmazonSubnetCachingAgent implements CachingAgent, AccountAware {

List<CacheData> data = subnets.collect { Subnet subnet ->
Map<String, Object> attributes = objectMapper.convertValue(subnet, AwsInfrastructureProvider.ATTRIBUTES)
attributes.putIfAbsent("accountId", account.accountId)
new DefaultCacheData(Keys.getSubnetKey(subnet.subnetId, region, account.name),
attributes,
[:])
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ class AmazonSubnetProvider implements SubnetProvider<AmazonSubnet> {
cidrBlock: subnet.cidrBlock,
availableIpAddressCount: subnet.availableIpAddressCount,
account: parts.account,
accountId: cacheData.attributes.accountId,
region: parts.region,
availabilityZone: subnet.availabilityZone,
purpose: purpose,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ class AmazonSubnetProviderSpec extends Specification {
cidrBlock: '10',
availableIpAddressCount: 1,
account: 'test',
accountId: '1',
region: 'us-east-1',
availabilityZone: 'us-east-1a',
purpose: 'internal',
Expand All @@ -66,6 +67,7 @@ class AmazonSubnetProviderSpec extends Specification {
cidrBlock: '11',
availableIpAddressCount: 2,
account: 'prod',
accountId: '2',
region: 'us-west-1',
availabilityZone: 'us-west-1a',
purpose: 'external',
Expand All @@ -77,7 +79,7 @@ class AmazonSubnetProviderSpec extends Specification {
and:
1 * cache.filterIdentifiers(Keys.Namespace.SUBNETS.ns, "aws:$Keys.Namespace.SUBNETS.ns:*:*:*")
1 * cache.getAll(Keys.Namespace.SUBNETS.ns, _, _ as CacheFilter) >> [
snData('test', 'us-east-1',
snData('test', '1', 'us-east-1',
new Subnet(
subnetId: 'subnet-00000001',
state: 'available',
Expand All @@ -87,7 +89,7 @@ class AmazonSubnetProviderSpec extends Specification {
availabilityZone: 'us-east-1a',
tags: [new Tag(key: 'immutable_metadata', value: '{"purpose": "internal", "target": "EC2"}')]
)),
snData('prod', 'us-west-1', new Subnet(
snData('prod', '2','us-west-1', new Subnet(
subnetId: 'subnet-00000002',
state: 'available',
vpcId: 'vpc-1',
Expand All @@ -112,6 +114,7 @@ class AmazonSubnetProviderSpec extends Specification {
cidrBlock: '10',
availableIpAddressCount: 1,
account: 'test',
accountId: '1',
region: 'us-east-1',
availabilityZone: 'us-east-1a',
purpose: 'external (vpc0)',
Expand All @@ -121,7 +124,7 @@ class AmazonSubnetProviderSpec extends Specification {

and:
1 * cache.filterIdentifiers(Keys.Namespace.SUBNETS.ns, "aws:$Keys.Namespace.SUBNETS.ns:*:*:*")
1 * cache.getAll(Keys.Namespace.SUBNETS.ns, _, _ as CacheFilter) >> [snData('test', 'us-east-1', new Subnet(
1 * cache.getAll(Keys.Namespace.SUBNETS.ns, _, _ as CacheFilter) >> [snData('test', '1','us-east-1', new Subnet(
subnetId: 'subnet-00000001',
state: 'available',
vpcId: 'vpc-1',
Expand Down Expand Up @@ -149,6 +152,7 @@ class AmazonSubnetProviderSpec extends Specification {
cidrBlock: '10',
availableIpAddressCount: 1,
account: 'test',
accountId: 1,
region: 'us-east-1',
availabilityZone: 'us-east-1a',
purpose: 'external (vpc0)',
Expand All @@ -159,7 +163,7 @@ class AmazonSubnetProviderSpec extends Specification {

and:
1 * cache.filterIdentifiers(Keys.Namespace.SUBNETS.ns, "aws:$Keys.Namespace.SUBNETS.ns:*:*:*")
1 * cache.getAll(Keys.Namespace.SUBNETS.ns, _, _ as CacheFilter) >> [snData('test', 'us-east-1', new Subnet(
1 * cache.getAll(Keys.Namespace.SUBNETS.ns, _, _ as CacheFilter) >> [snData('test', '1','us-east-1', new Subnet(
subnetId: 'subnet-00000001',
state: 'available',
vpcId: 'vpc-1',
Expand All @@ -174,8 +178,9 @@ class AmazonSubnetProviderSpec extends Specification {
))]
}

CacheData snData(String account, String region, Subnet subnet) {
CacheData snData(String account, String accountId, String region, Subnet subnet) {
Map<String, Object> attributes = mapper.convertValue(subnet, AwsInfrastructureProvider.ATTRIBUTES)
attributes.putIfAbsent("accountId", accountId)
new DefaultCacheData(Keys.getSubnetKey(subnet.subnetId, region, account),
attributes,
[:]
Expand All @@ -196,6 +201,7 @@ class AmazonSubnetProviderSpec extends Specification {
cidrBlock: '10',
availableIpAddressCount: 1,
account: 'test',
accountId: '1',
region: 'us-east-1',
availabilityZone: 'us-east-1a',
purpose: 'external (vpc0)',
Expand All @@ -204,7 +210,7 @@ class AmazonSubnetProviderSpec extends Specification {

and:
1 * cache.filterIdentifiers(Keys.Namespace.SUBNETS.ns, "aws:$Keys.Namespace.SUBNETS.ns:*:*:*")
1 * cache.getAll(Keys.Namespace.SUBNETS.ns, _, _ as CacheFilter) >> [snData('test', 'us-east-1', new Subnet(
1 * cache.getAll(Keys.Namespace.SUBNETS.ns, _, _ as CacheFilter) >> [snData('test', '1', 'us-east-1', new Subnet(
subnetId: 'subnet-00000001',
state: 'available',
vpcId: 'vpc-1',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ public EcsSubnet(String type,
String cidrBlock,
Integer availableIpAddressCount,
String account,
String accountId,
String region,
String availabilityZone,
String purpose,
Expand All @@ -43,6 +44,7 @@ public EcsSubnet(String type,
cidrBlock,
availableIpAddressCount,
account,
accountId,
region,
availabilityZone,
purpose,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ public EcsSubnet convertToEcsSubnet(AmazonSubnet subnet) {
subnet.getCidrBlock(),
subnet.getAvailableIpAddressCount(),
ecsAccount.getName(),
ecsAccount.getAccountId(),
subnet.getRegion(),
subnet.getAvailabilityZone(),
subnet.getPurpose(),
Expand Down

0 comments on commit 714794e

Please sign in to comment.