Skip to content

Instantly share code, notes, and snippets.

@jmeekhof
Created December 22, 2019 15:09
Show Gist options
  • Save jmeekhof/fc4e84f16956065b75f95a547bd90403 to your computer and use it in GitHub Desktop.
Save jmeekhof/fc4e84f16956065b75f95a547bd90403 to your computer and use it in GitHub Desktop.
import com.optum.giraffle.tasks.GsqlTask
import com.optum.giraffle.tasks.GsqlTokenTask
import io.github.httpbuilderng.http.HttpTask
buildscript {
this.dependencies{
this.classpath("com.opencsv:opencsv:3.8")
}
}
plugins {
id("com.optum.giraffle") version "1.3.3-SNAPSHOT"
// id("com.optum.giraffle") version "1.3.2.1"
id("net.saliman.properties") version "1.5.1"
id("io.github.http-builder-ng.http-plugin") version "0.1.1"
}
repositories {
jcenter()
}
http {
config{
it.request.setUri("${gHostUriType}://${gHost}:${gRestPort}")
it.request.headers["Authorization"] = "Bearer ${tigergraph.token.get()}"
}
}
val gSecret: String? by project
val gHost: String by project
val gAdminUserName: String by project
val gAdminPassword: String by project
val gUserName: String by project
val gPassword: String by project
val gGraphName: String by project
val gClientVersion: String? by project
val gCertPath: String? by project
val gHostUriType: String by project
val gRestPort: String by project
val tokenMap: LinkedHashMap<String, String> = linkedMapOf("graphname" to gGraphName)
val schemaGroup: String = "Schema Tasks"
val loadingGroup: String = "Loading Tasks"
tigergraph {
scriptDir.set(file("db_scripts"))
tokens.set(tokenMap)
serverName.set(gHost)
userName.set(gUserName)
password.set(gPassword)
adminUserName.set(gAdminUserName)
adminPassword.set(gAdminPassword)
gClientVersion?.let {
gsqlClientVersion.set(it)
}
gCertPath?.let {
caCert.set(it)
}
logDir.set("./logs")
graphName.set(gGraphName)
}
tasks {
wrapper {
gradleVersion = "6.0.1"
}
val showSchema by registering(GsqlTask::class) {
scriptCommand = "ls"
group = schemaGroup
}
val createSchema by registering(GsqlTask::class) {
scriptPath = "schema/create.gsql"
useGlobal = true
group = schemaGroup
}
val dropSchema by registering(GsqlTask::class) {
scriptPath = "schema/drop.gsql"
group = schemaGroup
}
val createLoadPartType by registering(GsqlTask::class) {
scriptPath = "load/create/load_part_type.gsql"
group = loadingGroup
}
val loadPartType by registering(HttpTask::class) {
description = "Load data via the REST++ endpoint"
post { httpConfig ->
httpConfig.request.uri.setPath("/ddl/${gGraphName}")
httpConfig.request.uri.setQuery(
mapOf(
"tag" to "loadPartType",
"filename" to "f1",
"sep" to ",",
"eol" to "\n"
)
)
httpConfig.request.setContentType("text/csv")
val stream = File("data.csv").inputStream()
httpConfig.request.setBody(stream)
}
}
val getToken by registering(GsqlTokenTask::class) {
gSecret?.let {
secret = it
}
ssl = true
doLast {
println(tigergraph.token.get())
}
}
val getVersion by registering(HttpTask::class) {
description = "Get the server version from Tigergraph"
get {
it.request.uri.setPath("/version")
it.response.success { fs, x ->
println(fs )
println(x)
println("Success")
}
}
}
withType<HttpTask>().configureEach {
dependsOn(getToken)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment