Skip to content

Commit

Permalink
titus - set apiversion at the regional level rather than at the accou…
Browse files Browse the repository at this point in the history
…nt level
  • Loading branch information
tomaslin committed Mar 26, 2018
1 parent 187509f commit 2a29ce6
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class TitusClientProvider {
TitusClient getTitusClient(NetflixTitusCredentials account, String region) {
final TitusRegion titusRegion = Objects.requireNonNull(account.regions.find { it.name == region }, "region")
final TitusClientKey key = new TitusClientKey(Objects.requireNonNull(account.name), titusRegion)
return titusClients.computeIfAbsent(key, { k -> account.apiVersion == '3' ? new RegionScopedV3TitusClient(k.region, registry, titusJobCustomizers) : new RegionScopedTitusClient(k.region, registry, titusJobCustomizers) })
return titusClients.computeIfAbsent(key, { k -> k.region.apiVersion == '3' ? new RegionScopedV3TitusClient(k.region, registry, titusJobCustomizers) : new RegionScopedTitusClient(k.region, registry, titusJobCustomizers) })
}

@Immutable(knownImmutableClasses = [TitusRegion])
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public class TitusRegion {
private final String account;
private final String endpoint;
private final List<TitusFaultDomain> faultDomains;
private final String apiVersion;

private <T> T notNull(T val, String name) {
if (val == null) {
Expand All @@ -35,15 +36,17 @@ private <T> T notNull(T val, String name) {
public TitusRegion(String name,
String account,
String endpoint,
List<TitusFaultDomain> faultDomains) {
List<TitusFaultDomain> faultDomains,
String apiVersion) {
this.name = notNull(name, "name");
this.account = notNull(account, "account");
this.endpoint = EndpointValidator.validateEndpoint(endpoint);
this.faultDomains = faultDomains == null ? Collections.emptyList() : Collections.unmodifiableList(faultDomains);
this.apiVersion = apiVersion;
}

public TitusRegion(String name, String account, String endpoint) {
this(name, account, endpoint, Collections.emptyList());
public TitusRegion(String name, String account, String endpoint, String apiVersion) {
this(name, account, endpoint, Collections.emptyList(), apiVersion);
}

public String getAccount() {
Expand All @@ -58,6 +61,10 @@ public String getEndpoint() {
return endpoint;
}

public String getApiVersion() {
return apiVersion;
}

public List<TitusFaultDomain> getFaultDomains() {
return faultDomains;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ class NetflixTitusCredentials implements AccountCredentials<TitusCredentials> {
final String discovery
final String awsAccount
final String awsVpc
final String apiVersion
final boolean discoveryEnabled
final String stack

Expand All @@ -50,7 +49,6 @@ class NetflixTitusCredentials implements AccountCredentials<TitusCredentials> {
boolean discoveryEnabled,
String discovery,
String stack,
String apiVersion,
List<String> requiredGroupMembership
) {
this.name = name
Expand All @@ -64,7 +62,6 @@ class NetflixTitusCredentials implements AccountCredentials<TitusCredentials> {
this.discoveryEnabled = discoveryEnabled
this.discovery = discovery
this.stack = stack
this.apiVersion = apiVersion
this.requiredGroupMembership = requiredGroupMembership
}

Expand Down Expand Up @@ -102,10 +99,6 @@ class NetflixTitusCredentials implements AccountCredentials<TitusCredentials> {
return discoveryEnabled
}

String getApiVersion(){
return apiVersion
}

String getStack() {
return stack
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,11 @@ class TitusConfiguration {
AccountCredentialsRepository repository) {
List<NetflixTitusCredentials> accounts = new ArrayList<>()
for (TitusCredentialsConfig.Account account in titusCredentialsConfig.accounts) {
List<TitusRegion> regions = account.regions.collect { new TitusRegion(it.name, account.name, it.endpoint) }
List<TitusRegion> regions = account.regions.collect { new TitusRegion(it.name, account.name, it.endpoint, it.apiVersion) }
if (!account.bastionHost && titusCredentialsConfig.defaultBastionHostTemplate) {
account.bastionHost = titusCredentialsConfig.defaultBastionHostTemplate.replaceAll(Pattern.quote('{{environment}}'), account.environment)
}
NetflixTitusCredentials credentials = new NetflixTitusCredentials(account.name, account.environment, account.accountType, regions, account.bastionHost, account.registry, account.awsAccount, account.awsVpc ?: titusCredentialsConfig.awsVpc, account.discoveryEnabled, account.discovery, account.stack ?: 'mainvpc', account.apiVersion, account.requiredGroupMembership)
NetflixTitusCredentials credentials = new NetflixTitusCredentials(account.name, account.environment, account.accountType, regions, account.bastionHost, account.registry, account.awsAccount, account.awsVpc ?: titusCredentialsConfig.awsVpc, account.discoveryEnabled, account.discovery, account.stack ?: 'mainvpc', account.requiredGroupMembership)
accounts.add(credentials)
repository.save(account.name, credentials)
}
Expand Down Expand Up @@ -96,13 +96,13 @@ class TitusConfiguration {
List<Region> regions
String awsVpc
String stack
String apiVersion
List<String> requiredGroupMembership
}

static class Region {
String name
String endpoint
String apiVersion
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,7 @@ class TitusDeployHandlerSpec extends Specification {
}

NetflixTitusCredentials testCredentials = new NetflixTitusCredentials(
'test', 'test', 'test', [new TitusRegion('us-east-1', 'test', 'http://foo')], 'test', 'test', 'test', 'test', false, '', 'mainvpc',
'2', []
'test', 'test', 'test', [new TitusRegion('us-east-1', 'test', 'http://foo', '2')], 'test', 'test', 'test', 'test', false, '', 'mainvpc', []
)

@Subject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class DestroyTitusServerGroupAtomicOperationSpec extends Specification {
}

NetflixTitusCredentials testCredentials = new NetflixTitusCredentials(
'test', 'test', 'test', [new TitusRegion('us-east-1', 'test', 'http://foo')], 'test', 'test', 'test', 'test', false, '', 'mainvpc', '2', []
'test', 'test', 'test', [new TitusRegion('us-east-1', 'test', 'http://foo', '2')], 'test', 'test', 'test', 'test', false, '', 'mainvpc', []
)

DestroyTitusServerGroupDescription description = new DestroyTitusServerGroupDescription(
Expand Down

0 comments on commit 2a29ce6

Please sign in to comment.