Skip to content

Commit 690f083

Browse files
rjrudinaebadirad
authored andcommitted
DHFPROD-1645 Added fix for which databases should have their indexes … (#1690)
* DHFPROD-1645 Added fix for which databases should have their indexes updated * DHFPROD-1645 Using SimpleAppDeployer so that filename pattern is applied
1 parent 985c1c1 commit 690f083

File tree

2 files changed

+43
-2
lines changed

2 files changed

+43
-2
lines changed

marklogic-data-hub/src/main/java/com/marklogic/hub/impl/DataHubImpl.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -506,20 +506,33 @@ public void install(HubDeployStatusListener listener) {
506506
*/
507507
@Override
508508
public void updateIndexes() {
509-
HubAppDeployer deployer = new HubAppDeployer(getManageClient(), getAdminManager(), null, hubConfig.newStagingClient());
509+
SimpleAppDeployer deployer = new SimpleAppDeployer(getManageClient(), getAdminManager());
510510
deployer.setCommands(buildCommandMap().get("mlDatabaseCommands"));
511-
DeployOtherDatabasesCommand c = null;
512511

513512
AppConfig appConfig = hubConfig.getAppConfig();
514513
final boolean originalCreateForests = appConfig.isCreateForests();
514+
final Pattern originalIncludePattern = appConfig.getResourceFilenamesIncludePattern();
515515
try {
516516
appConfig.setCreateForests(false);
517+
if (hubConfig.getIsProvisionedEnvironment()) {
518+
appConfig.setResourceFilenamesIncludePattern(buildPatternForDatabasesToUpdateIndexesFor());
519+
}
517520
deployer.deploy(hubConfig.getAppConfig());
518521
} finally {
519522
appConfig.setCreateForests(originalCreateForests);
523+
appConfig.setResourceFilenamesIncludePattern(originalIncludePattern);
520524
}
521525
}
522526

527+
/**
528+
* In a provisioned environment, only the databases defined by this pattern can be updated.
529+
*
530+
* @return
531+
*/
532+
protected Pattern buildPatternForDatabasesToUpdateIndexesFor() {
533+
return Pattern.compile("(staging|final|job)-database.json");
534+
}
535+
523536
/**
524537
* Uninstalls the data hub configuration and server-side config files from MarkLogic
525538
*/
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.marklogic.hub.impl;
2+
3+
import org.junit.jupiter.api.Test;
4+
import static org.junit.jupiter.api.Assertions.*;
5+
6+
public class BuildPatternForDatabasesToUpdateIndexesForTest {
7+
8+
DataHubImpl dataHub = new DataHubImpl();
9+
10+
@Test
11+
public void test() {
12+
assertTrue(matches("staging-database.json"));
13+
assertTrue(matches("final-database.json"));
14+
assertTrue(matches("job-database.json"));
15+
16+
assertFalse(matches("schema-database.json"));
17+
assertFalse(matches("triggers-database.json"));
18+
assertFalse(matches("final-schemas-database.json"));
19+
assertFalse(matches("final-triggers-database.json"));
20+
assertFalse(matches("modules-database.json"));
21+
assertFalse(matches("staging-schemas-database.json"));
22+
assertFalse(matches("staging-triggers-database.json"));
23+
}
24+
25+
private boolean matches(String filename) {
26+
return dataHub.buildPatternForDatabasesToUpdateIndexesFor().matcher(filename).matches();
27+
}
28+
}

0 commit comments

Comments
 (0)