Skip to content

Commit 588e54b

Browse files
committed
Fixing issues in deployment, including #666, #667 and #668
1 parent f291f28 commit 588e54b

File tree

7 files changed

+59
-23
lines changed

7 files changed

+59
-23
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ plugins {
22
id 'nebula.netflixoss' version '5.0.0'
33
}
44

5-
ext.githubProjectName = 'Priam'
5+
ext.githubProjectName = 'Priam-parent'
66

77
allprojects {
88
apply plugin: 'nebula.netflixoss'

priam/src/main/java/com/netflix/priam/SimpleDBConfigSource.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,22 @@
4747
public final class SimpleDBConfigSource extends AbstractConfigSource {
4848
private static final Logger logger = LoggerFactory.getLogger(SimpleDBConfigSource.class.getName());
4949

50-
private static final String DOMAIN = "PriamProperties";
51-
private static String ALL_QUERY = "select * from " + DOMAIN + " where " + Attributes.APP_ID + "='%s'";
50+
private static final String DEFAULT_DOMAIN = "PriamProperties";
51+
private static String ALL_QUERY = "select * from `%s` where " + Attributes.APP_ID + "='%s'";
5252

5353
private final Map<String, String> data = Maps.newConcurrentMap();
5454
private final ICredential provider;
55-
55+
private final String domain;
56+
5657
@Inject
5758
public SimpleDBConfigSource(final ICredential provider) {
5859
this.provider = provider;
60+
String configuredDomain = System.getProperty("priam.sdb.properties.domain");
61+
if (configuredDomain == null) {
62+
domain = DEFAULT_DOMAIN;
63+
} else {
64+
domain = configuredDomain;
65+
}
5966
}
6067

6168
@Override
@@ -68,8 +75,9 @@ public void intialize(final String asgName, final String region) {
6875
String nextToken = null;
6976
String appid = asgName.lastIndexOf('-') > 0 ? asgName.substring(0, asgName.indexOf('-')) : asgName;
7077
logger.info("appid used to fetch properties is: {}", appid);
78+
logger.info("domain used to fetch properties is: {}", domain);
7179
do {
72-
SelectRequest request = new SelectRequest(String.format(ALL_QUERY, appid));
80+
SelectRequest request = new SelectRequest(String.format(ALL_QUERY, domain, appid));
7381
request.setNextToken(nextToken);
7482
SelectResult result = simpleDBClient.select(request);
7583
nextToken = result.getNextToken();

priam/src/main/java/com/netflix/priam/aws/SDBInstanceData.java

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,16 @@
2828

2929
import java.util.*;
3030

31+
import org.slf4j.Logger;
32+
import org.slf4j.LoggerFactory;
33+
3134
/**
3235
* DAO for handling Instance identity information such as token, zone, region
3336
*/
3437
@Singleton
3538
public class SDBInstanceData {
39+
private static final Logger logger = LoggerFactory.getLogger(SDBInstanceData.class.getName());
40+
3641
public static class Attributes {
3742
public final static String APP_ID = "appId";
3843
public final static String ID = "id";
@@ -45,17 +50,24 @@ public static class Attributes {
4550
public final static String HOSTNAME = "hostname";
4651
}
4752

48-
public static final String DOMAIN = "InstanceIdentity";
49-
public static final String ALL_QUERY = "select * from " + DOMAIN + " where " + Attributes.APP_ID + "='%s'";
50-
public static final String INSTANCE_QUERY = "select * from " + DOMAIN + " where " + Attributes.APP_ID + "='%s' and " + Attributes.LOCATION + "='%s' and " + Attributes.ID + "='%d'";
53+
public static final String DEFAULT_DOMAIN = "InstanceIdentity";
54+
public static final String ALL_QUERY = "select * from `%s` where " + Attributes.APP_ID + "='%s'";
55+
public static final String INSTANCE_QUERY = "select * from `%s` where " + Attributes.APP_ID + "='%s' and " + Attributes.LOCATION + "='%s' and " + Attributes.ID + "='%d'";
5156

5257
private final ICredential provider;
5358
private final IConfiguration configuration;
54-
59+
private final String domain;
60+
5561
@Inject
5662
public SDBInstanceData(ICredential provider, IConfiguration configuration) {
5763
this.provider = provider;
5864
this.configuration = configuration;
65+
String configuredDomain = System.getProperty("priam.sdb.instanceidentity.domain");
66+
if (configuredDomain == null) {
67+
domain = DEFAULT_DOMAIN;
68+
} else {
69+
domain = configuredDomain;
70+
}
5971
}
6072

6173
/**
@@ -67,7 +79,9 @@ public SDBInstanceData(ICredential provider, IConfiguration configuration) {
6779
*/
6880
public PriamInstance getInstance(String app, String dc, int id) {
6981
AmazonSimpleDB simpleDBClient = getSimpleDBClient();
70-
SelectRequest request = new SelectRequest(String.format(INSTANCE_QUERY, app, dc, id));
82+
String query = String.format(INSTANCE_QUERY, domain, app, dc, id);
83+
logger.info("Fetching instance data using query {}", query);
84+
SelectRequest request = new SelectRequest(query);
7185
SelectResult result = simpleDBClient.select(request);
7286
if (result.getItems().size() == 0)
7387
return null;
@@ -85,7 +99,9 @@ public Set<PriamInstance> getAllIds(String app) {
8599
Set<PriamInstance> inslist = new HashSet<PriamInstance>();
86100
String nextToken = null;
87101
do {
88-
SelectRequest request = new SelectRequest(String.format(ALL_QUERY, app));
102+
String query = String.format(ALL_QUERY, domain, app);
103+
logger.info("Fetching IDs using query {}", query);
104+
SelectRequest request = new SelectRequest(query);
89105
request.setNextToken(nextToken);
90106
SelectResult result = simpleDBClient.select(request);
91107
nextToken = result.getNextToken();
@@ -106,7 +122,7 @@ public Set<PriamInstance> getAllIds(String app) {
106122
*/
107123
public void createInstance(PriamInstance instance) throws AmazonServiceException {
108124
AmazonSimpleDB simpleDBClient = getSimpleDBClient();
109-
PutAttributesRequest putReq = new PutAttributesRequest(DOMAIN, getKey(instance), createAttributesToRegister(instance));
125+
PutAttributesRequest putReq = new PutAttributesRequest(domain, getKey(instance), createAttributesToRegister(instance));
110126
simpleDBClient.putAttributes(putReq);
111127
}
112128

@@ -118,7 +134,7 @@ public void createInstance(PriamInstance instance) throws AmazonServiceException
118134
*/
119135
public void registerInstance(PriamInstance instance) throws AmazonServiceException {
120136
AmazonSimpleDB simpleDBClient = getSimpleDBClient();
121-
PutAttributesRequest putReq = new PutAttributesRequest(DOMAIN, getKey(instance), createAttributesToRegister(instance));
137+
PutAttributesRequest putReq = new PutAttributesRequest(domain, getKey(instance), createAttributesToRegister(instance));
122138
UpdateCondition expected = new UpdateCondition();
123139
expected.setName(Attributes.INSTANCE_ID);
124140
expected.setExists(false);
@@ -134,7 +150,7 @@ public void registerInstance(PriamInstance instance) throws AmazonServiceExcepti
134150
*/
135151
public void deregisterInstance(PriamInstance instance) throws AmazonServiceException {
136152
AmazonSimpleDB simpleDBClient = getSimpleDBClient();
137-
DeleteAttributesRequest delReq = new DeleteAttributesRequest(DOMAIN, getKey(instance), createAttributesToDeRegister(instance));
153+
DeleteAttributesRequest delReq = new DeleteAttributesRequest(domain, getKey(instance), createAttributesToDeRegister(instance));
138154
simpleDBClient.deleteAttributes(delReq);
139155
}
140156

priam/src/main/java/com/netflix/priam/defaultimpl/PriamConfigSource.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public PriamConfigSource(final SimpleDBConfigSource simpleDBConfigSource,
3434
// this order was based off PriamConfigurations loading. W/e loaded last could override, but with Composite, first
3535
// has the highest priority.
3636
super(simpleDBConfigSource,
37-
propertiesConfigSource,
38-
systemPropertiesConfigSource);
37+
systemPropertiesConfigSource,
38+
propertiesConfigSource);
3939
}
4040
}

priam/src/main/java/com/netflix/priam/defaultimpl/PriamGuiceModule.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.netflix.priam.aws.auth.EC2RoleAssumptionCredential;
2727
import com.netflix.priam.aws.auth.IS3Credential;
2828
import com.netflix.priam.aws.auth.S3RoleAssumptionCredential;
29+
import com.netflix.priam.aws.IAMCredential;
2930
import com.netflix.priam.backup.BackupFileSystemContext;
3031
import com.netflix.priam.backup.IBackupFileSystem;
3132
import com.netflix.priam.backup.IBackupMetrics;
@@ -63,7 +64,7 @@ protected void configure() {
6364
bind(IFileCryptography.class).annotatedWith(Names.named("filecryptoalgorithm")).to(PgpCryptography.class);
6465
bind(ICredentialGeneric.class).annotatedWith(Names.named("gcscredential")).to(GcsCredential.class);
6566
bind(ICredentialGeneric.class).annotatedWith(Names.named("pgpcredential")).to(PgpCredential.class);
66-
bind(ICredential.class).to(ClearCredential.class);
67+
bind(ICredential.class).to(IAMCredential.class);
6768
bind(IDeadTokenRetriever.class).to(DeadTokenRetriever.class);
6869
bind(IPreGeneratedTokenRetriever.class).to(PreGeneratedTokenRetriever.class);
6970
bind(INewTokenRetriever.class).to(NewTokenRetriever.class);

priam/src/main/java/com/netflix/priam/tuner/StandardTuner.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,10 @@ public void writeAllProperties(String yamlLocation, String hostname, String seed
5757
map.put("rpc_port", config.getThriftPort());
5858
map.put("start_native_transport", config.isNativeTransportEnabled());
5959
map.put("native_transport_port", config.getNativeTransportPort());
60-
map.put("listen_address", hostname);
61-
map.put("rpc_address", hostname);
60+
if (hostname != null) {
61+
map.put("listen_address", hostname);
62+
map.put("rpc_address", hostname);
63+
}
6264
//Dont bootstrap in restore mode
6365
if (!Restore.isRestoreEnabled(config)) {
6466
map.put("auto_bootstrap", config.getAutoBoostrap());

priam/src/main/resources/Priam.properties

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,27 @@ priam.backup.retention=
1010
priam.backup.threads=2
1111
priam.bootcluster=
1212
priam.cache.location=/var/lib/cassandra/saved_caches
13-
priam.cass.home=/mnt/cassandra
13+
priam.cass.home=/etc/cassandra
1414
priam.cass.manual.start.enable=
1515
priam.cass.process=
16-
priam.cass.startscript=/mnt/cassandra/bin/cassandra
17-
priam.cass.stopscript=/mnt/cassandra/bin/cassandra
16+
priam.cass.startscript=/etc/init.d/cassandra start
17+
priam.cass.stopscript=/etc/init.d/cassandra stop
1818
priam.clustername=cass_cluster
1919
priam.commitlog.location=/var/lib/cassandra/commitlog
2020
priam.compaction.throughput=
2121
priam.data.location=/var/lib/cassandra/data
2222
priam.direct.memory.size.m1.large=1G
2323
priam.endpoint_snitch=org.apache.cassandra.locator.Ec2Snitch
2424
priam.heap.newgen.size.m1.large=2G
25-
priam.heap.size.m1.large=4G
25+
priam.heap.size.m1.large=1G
26+
priam.heap.newgen.size.t2.small=1G
27+
priam.heap.size.t2.small=1G
28+
priam.heap.newgen.size.t2.micro=512M
29+
priam.heap.size.t2.micro=512M
30+
priam.heap.newgen.size.m3.medium=1G
31+
priam.heap.size.m3.medium=1G
32+
priam.heap.newgen.size.m3.large=1G
33+
priam.heap.size.m3.large=1G
2634
priam.hint.delay=
2735
priam.hint.window=
2836
priam.jmx.port=7199
@@ -53,3 +61,4 @@ priam.thrift.port=9160
5361
priam.upload.throttle=
5462
priam.yamlLocation=
5563
priam.zones.available=
64+
priam.nativeTransport.enabled=true

0 commit comments

Comments
 (0)