2828
2929import 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
3538public 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
0 commit comments