Skip to content

Commit e6c7331

Browse files
author
Rob Rudin
committed
#143 Added tasks for add/remove host, and changed up properties for InitTask and InstallAdminTask to be more consistent
1 parent b84d81e commit e6c7331

File tree

6 files changed

+54
-16
lines changed

6 files changed

+54
-16
lines changed

src/main/groovy/com/marklogic/gradle/MarkLogicPlugin.groovy

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ package com.marklogic.gradle
33
import com.marklogic.appdeployer.command.clusters.ModifyLocalClusterCommand
44
import com.marklogic.appdeployer.command.databases.DeployOtherDatabasesCommand
55
import com.marklogic.appdeployer.command.forests.DeployCustomForestsCommand
6+
import com.marklogic.gradle.task.cluster.AddHostTask
67
import com.marklogic.gradle.task.cluster.ModifyClusterTask
8+
import com.marklogic.gradle.task.cluster.RemoveHostTask
79
import com.marklogic.gradle.task.databases.DeleteCollectionTask
810
import com.marklogic.gradle.task.es.GenerateModelArtifactsTask
911
import com.marklogic.gradle.task.forests.DeployCustomForestsTask
@@ -153,8 +155,8 @@ class MarkLogicPlugin implements Plugin<Project> {
153155
project.task("mlRedeploy", group: deployGroup, dependsOn: ["mlClearModulesDatabase", "mlDeploy"], description: "Clears the modules database and then deploys the application")
154156

155157
String adminGroup = "ml-gradle Admin"
156-
project.task("mlInit", type: InitTask, group: adminGroup, description: "Perform a one-time initialization of a MarkLogic server")
157-
project.task("mlInstallAdmin", type: InstallAdminTask, group: adminGroup, description: "Perform a one-time installation of an admin user")
158+
project.task("mlInit", type: InitTask, group: adminGroup, description: "Perform a one-time initialization of a MarkLogic server; uses the properties 'mlLicenseKey' and 'mlLicensee'")
159+
project.task("mlInstallAdmin", type: InstallAdminTask, group: adminGroup, description: "Perform a one-time installation of an admin user; uses the properties 'mlAdminUsername'/'mlUsername' and 'mlAdminPassword'/'mlPassword'")
158160

159161
String alertGroup = "ml-gradle Alert"
160162
project.task("mlDeleteAllAlertConfigs", type: DeleteAllAlertConfigsTask, group: alertGroup, description: "Delete all alert configs, which also deletes all of the actions rules associated with them")
@@ -166,9 +168,11 @@ class MarkLogicPlugin implements Plugin<Project> {
166168
project.task("mlLoadDefaultPipelines", type: LoadDefaultPipelinesTask, group: cpfGroup, description: "Load default pipelines into a triggers database")
167169

168170
String clusterGroup = "ml-gradle Cluster"
171+
project.task("mlAddHost", type: AddHostTask, group: clusterGroup, description: "Add host to the cluster; must define 'host', 'hostGroup' (optional), and 'hostZone' (optional) properties")
169172
project.task("mlModifyCluster", type: ModifyClusterTask, group: clusterGroup, description: "Modify the properties of the local cluster based on the ml-config/clusters/local-cluster.json file")
170173
project.task("mlDisableSslFips", type: DisableSslFipsTask, group: clusterGroup, description: "Disable SSL FIPS across the cluster")
171174
project.task("mlEnableSslFips", type: EnableSslFipsTask, group: clusterGroup, description: "Enable SSL FIPS across the cluster")
175+
project.task("mlRemoveHost", type: RemoveHostTask, group: clusterGroup, description: "Remove a host from the cluster; must define 'host' property")
172176
project.task("mlRestartCluster", type: RestartClusterTask, group: clusterGroup, description: "Restart the local cluster")
173177

174178
String dbGroup = "ml-gradle Database"

src/main/groovy/com/marklogic/gradle/task/MarkLogicTask.groovy

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,14 @@ class MarkLogicTask extends DefaultTask {
3636
getProject().property("mlAdminManager")
3737
}
3838

39+
String getAdminUsername() {
40+
project.hasProperty("mlAdminUsername") ? project.property("mlAdminUsername") : project.property("mlUsername")
41+
}
42+
43+
String getAdminPassword() {
44+
project.hasProperty("mlAdminPassword") ? project.property("mlAdminPassword") : project.property("mlPassword")
45+
}
46+
3947
DatabaseClient newClient() {
4048
getAppConfig().newDatabaseClient()
4149
}

src/main/groovy/com/marklogic/gradle/task/admin/InitTask.groovy

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ class InitTask extends MarkLogicTask {
1111

1212
@TaskAction
1313
void initializeMarkLogic() {
14-
if (project.hasProperty("licenseKey")) {
15-
licenseKey = project.property("licenseKey")
14+
if (project.hasProperty("mlLicenseKey")) {
15+
licenseKey = project.property("mlLicenseKey")
1616
}
17-
if (project.hasProperty("licensee")) {
18-
licensee = project.property("licensee")
17+
if (project.hasProperty("mlLicensee")) {
18+
licensee = project.property("mlLicensee")
1919
}
2020
getAdminManager().init(licenseKey, licensee)
2121
}

src/main/groovy/com/marklogic/gradle/task/admin/InstallAdminTask.groovy

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,8 @@ import com.marklogic.gradle.task.MarkLogicTask
66

77
class InstallAdminTask extends MarkLogicTask {
88

9-
String adminUsername
10-
String adminPassword
11-
129
@TaskAction
1310
void installAdmin() {
14-
if (project.hasProperty("adminUsername")) {
15-
adminUsername = project.property("adminUsername")
16-
}
17-
if (project.hasProperty("adminPassword")) {
18-
adminPassword = project.property("adminPassword")
19-
}
20-
getAdminManager().installAdmin(adminUsername, adminPassword)
11+
getAdminManager().installAdmin(getAdminUsername(), getAdminPassword())
2112
}
2213
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.marklogic.gradle.task.cluster
2+
3+
import com.marklogic.appdeployer.AppConfig
4+
import com.marklogic.gradle.task.MarkLogicTask
5+
import com.marklogic.mgmt.clusters.ClusterManager
6+
import com.marklogic.mgmt.hosts.HostManager
7+
import org.gradle.api.tasks.TaskAction
8+
9+
class AddHostTask extends MarkLogicTask {
10+
11+
@TaskAction
12+
void addHost() {
13+
String host = project.property("host")
14+
String group = project.hasProperty("hostGroup") ? project.property("hostGroup") : "Default"
15+
String zone = project.hasProperty("hostZone") ? project.property("hostZone") : null
16+
17+
ClusterManager mgr = new ClusterManager(getManageClient())
18+
mgr.addHost(getAdminManager(), host, group, zone)
19+
}
20+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.marklogic.gradle.task.cluster
2+
3+
import com.marklogic.gradle.task.MarkLogicTask
4+
import com.marklogic.mgmt.clusters.ClusterManager
5+
import org.gradle.api.tasks.TaskAction
6+
7+
class RemoveHostTask extends MarkLogicTask {
8+
9+
@TaskAction
10+
void removeHost() {
11+
String host = project.property("host")
12+
ClusterManager mgr = new ClusterManager(getManageClient())
13+
mgr.removeHost(host)
14+
}
15+
}

0 commit comments

Comments
 (0)