Skip to content

Commit 238a757

Browse files
committed
GEOWAVE-352
1 parent 71c28d1 commit 238a757

7 files changed

Lines changed: 36 additions & 17 deletions

File tree

docs/content/085-accumulo-config.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ config -s general.vfs.context.classpath.geowave=hdfs://NAME_NODE_FQDN:8020/accum
2727
config -ns geowave -s table.classpath.context=geowave
2828
exit // <2>
2929
# From the node with the GeoWave application server installed
30-
java -cp "/usr/local/geowave/geoserver/webapps/geoserver/WEB-INF/lib/*" mil.nga.giat.geowave.vector.plugin.GeoWaveGTDataStore -z ZOOKEEPER_NODE:2181 -i accumulo -u root -p ROOT_PASSWORD -n geowave -m 20
30+
java -cp "/usr/local/geowave/geoserver/webapps/geoserver/WEB-INF/lib/*" mil.nga.giat.geowave.vector.plugin.GeoWaveGTDataStore -z ZOOKEEPER_NODE:2181 -i accumulo -u root -p ROOT_PASSWORD -n geowave -m 20 -r geowave
3131
----
3232
<1> You'll be prompted for a password
3333
<2> Done with Accumulo specific configs

geowave-accumulo/src/main/java/mil/nga/giat/geowave/accumulo/AccumuloOperations.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,7 @@ public long getRowCount(
313313
* Insure user has the given operations.
314314
*/
315315
public void insureAuthorization(
316+
final String clientUser,
316317
final String... authorizations )
317318
throws AccumuloException,
318319
AccumuloSecurityException;

geowave-accumulo/src/main/java/mil/nga/giat/geowave/accumulo/BasicAccumuloOperations.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -550,11 +550,12 @@ public BatchScanner createBatchScanner(
550550

551551
@Override
552552
public void insureAuthorization(
553+
final String clientUser,
553554
final String... authorizations )
554555
throws AccumuloException,
555556
AccumuloSecurityException {
556557
Authorizations auths = connector.securityOperations().getUserAuthorizations(
557-
connector.whoami());
558+
clientUser);
558559
final List<byte[]> newSet = new ArrayList<byte[]>();
559560
for (final String auth : authorizations) {
560561
if (!auths.contains(auth)) {
@@ -564,12 +565,12 @@ public void insureAuthorization(
564565
if (newSet.size() > 0) {
565566
newSet.addAll(auths.getAuthorizations());
566567
connector.securityOperations().changeUserAuthorizations(
567-
connector.whoami(),
568+
clientUser,
568569
new Authorizations(
569570
newSet));
570571
auths = connector.securityOperations().getUserAuthorizations(
571-
connector.whoami());
572-
LOGGER.trace(connector.whoami() + " has authorizations " + ArrayUtils.toString(auths.getAuthorizations()));
572+
clientUser);
573+
LOGGER.trace(clientUser + " has authorizations " + ArrayUtils.toString(auths.getAuthorizations()));
573574
}
574575
}
575576

geowave-vector/src/main/java/mil/nga/giat/geowave/vector/plugin/GeoWaveGTDataStore.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ public GeoWaveGTDataStore(
169169
init(config);
170170
transactionsAllocater = new ZooKeeperTransactionsAllocater(
171171
config.getZookeeperServers(),
172-
"gt",
172+
config.getUserName(),
173173
this);
174174

175175
featureNameSpaceURI = config.getFeatureNamespace();
@@ -865,7 +865,9 @@ public boolean transactionCreated(
865865
final String clientID,
866866
final String txID ) {
867867
try {
868-
((BasicAccumuloOperations) storeOperations).insureAuthorization(txID);
868+
((BasicAccumuloOperations) storeOperations).insureAuthorization(
869+
clientID,
870+
txID);
869871
return true;
870872
}
871873
catch (final Exception ex) {
@@ -908,13 +910,19 @@ public static void main(
908910
"help",
909911
false,
910912
"Display help"));
911-
baseOptionGroup.addOption(new Option(
913+
options.addOptionGroup(baseOptionGroup);
914+
options.addOption(new Option(
912915
"m",
913916
"maximum",
914917
true,
915918
"Maximum number of simulataneous transactions"));
916-
options.addOptionGroup(baseOptionGroup);
919+
options.addOption(new Option(
920+
"r",
921+
"recipient",
922+
true,
923+
"Recipient application user account for the set of transactions"));
917924
GeoWavePluginConfig.applyOptions(options);
925+
918926
final BasicParser parser = new BasicParser();
919927
final CommandLine commandLine = parser.parse(
920928
options,
@@ -929,7 +937,9 @@ public static void main(
929937
final int maximum = Integer.parseInt(commandLine.getOptionValue('m'));
930938
final GeoWaveGTDataStore dataStore = new GeoWaveGTDataStore(
931939
plugin);
932-
((ZooKeeperTransactionsAllocater) dataStore.transactionsAllocater).preallocateTransactionIDs(maximum);
940+
((ZooKeeperTransactionsAllocater) dataStore.transactionsAllocater).preallocateTransactionIDs(
941+
maximum,
942+
commandLine.getOptionValue('r'));
933943
}
934944
catch (final Exception ex) {
935945
LOGGER.error(

geowave-vector/src/main/java/mil/nga/giat/geowave/vector/transaction/ZooKeeperTransactionsAllocater.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,8 @@ public void releaseTransaction(
126126
}
127127

128128
public void preallocateTransactionIDs(
129-
final int maximuAmount ) {
129+
final int maximuAmount,
130+
String userAccount ) {
130131
try {
131132
final List<String> children = zk.getChildren(
132133
clientTXPath,
@@ -135,7 +136,7 @@ public void preallocateTransactionIDs(
135136
for (int i = 0; i < amountToAdd; i++) {
136137
final String transId = UUID.randomUUID().toString();
137138
if (notificationRequester.transactionCreated(
138-
clientID,
139+
userAccount,
139140
transId)) {
140141
zk.create(
141142
clientTXPath + "/" + transId,

geowave-vector/src/test/java/mil/nga/giat/geowave/vector/plugin/GeoWaveGTMemDataStore.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ public GeoWaveGTMemDataStore(
2929
throws AccumuloException,
3030
AccumuloSecurityException {
3131
super(
32-
new MemoryTransactionsAllocater());
32+
new MemoryTransactionsAllocater(
33+
"root"));
3334
((MemoryTransactionsAllocater) super.getTransactionsAllocater()).setNotificationRequester(this);
3435
init(instanceName);
3536

@@ -39,7 +40,8 @@ public GeoWaveGTMemDataStore()
3940
throws AccumuloException,
4041
AccumuloSecurityException {
4142
super(
42-
new MemoryTransactionsAllocater());
43+
new MemoryTransactionsAllocater(
44+
"root"));
4345
((MemoryTransactionsAllocater) super.getTransactionsAllocater()).setNotificationRequester(this);
4446
init(UUID.randomUUID().toString());
4547

@@ -52,7 +54,8 @@ public GeoWaveGTMemDataStore(
5254
throws AccumuloException,
5355
AccumuloSecurityException {
5456
super(
55-
new MemoryTransactionsAllocater(),
57+
new MemoryTransactionsAllocater(
58+
"root"),
5659
authorizationFactorySPI.create(authURL));
5760
((MemoryTransactionsAllocater) super.getTransactionsAllocater()).setNotificationRequester(this);
5861
init(instanceName);

geowave-vector/src/test/java/mil/nga/giat/geowave/vector/plugin/MemoryTransactionsAllocater.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,14 @@ public class MemoryTransactionsAllocater implements
1212
{
1313

1414
private TransactionNotification notificationRequester;
15+
private String userId;
1516

1617
private final LinkedList<String> lockPaths = new LinkedList<String>();
1718

18-
public MemoryTransactionsAllocater() {
19+
public MemoryTransactionsAllocater(
20+
String userId ) {
1921
super();
22+
this.userId = userId;
2023
}
2124

2225
public MemoryTransactionsAllocater(
@@ -55,7 +58,7 @@ public String getTransaction()
5558
}
5659
String id = UUID.randomUUID().toString();
5760
if (notificationRequester != null) notificationRequester.transactionCreated(
58-
"me",
61+
userId,
5962
id);
6063
return id;
6164
}

0 commit comments

Comments
 (0)