Skip to content

Instantly share code, notes, and snippets.

@ethankhall
Created September 19, 2017 17:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ethankhall/2d81c63d6fe568602da26b1bebf5b00f to your computer and use it in GitHub Desktop.
Save ethankhall/2d81c63d6fe568602da26b1bebf5b00f to your computer and use it in GitHub Desktop.
Nomad Test Main
import com.hashicorp.nomad.apimodel.EphemeralDisk
import com.hashicorp.nomad.apimodel.Job
import com.hashicorp.nomad.apimodel.Resources
import com.hashicorp.nomad.apimodel.RestartPolicy
import com.hashicorp.nomad.apimodel.Task
import com.hashicorp.nomad.apimodel.TaskGroup
import com.hashicorp.nomad.javasdk.NomadApiClient
import com.hashicorp.nomad.javasdk.NomadApiConfiguration
import org.apache.commons.lang.RandomStringUtils
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import java.util.UUID
import java.util.concurrent.TimeUnit
private val logger: Logger = LoggerFactory.getLogger("nomad-test")
fun main(args: Array<String>) {
val config: NomadApiConfiguration = NomadApiConfiguration.Builder().setAddress("<server url>").build()
val nomadClient = NomadApiClient(config)
val jobOperation = nomadClient.jobsApi
val job = makeJob()
(0..1000).forEach {
jobOperation.register(job)
if(it % 100 == 0) {
logger.info("Running {} of 1000", it)
}
}
}
fun makeJob(): Job {
val job = Job()
// Bad things start happening if the job ID ends up longer than 32 characters so let's just truncate it.
job.id = UUID.randomUUID().toString()
val tag = RandomStringUtils.randomAlphanumeric(10)
job.name = "test_job_$tag"
job.datacenters = listOf("dc1")
job.type = "batch"
val group = TaskGroup()
group.name = "sample-job"
group.count = 1
group.restartPolicy = RestartPolicy()
group.restartPolicy.attempts = 10
group.restartPolicy.mode = "delay"
group.restartPolicy.interval = TimeUnit.MINUTES.toNanos(5)
group.restartPolicy.delay = TimeUnit.SECONDS.toNanos(25)
group.ephemeralDisk = EphemeralDisk()
group.ephemeralDisk.sizeMb = 300
val task = Task()
task.name = "PCX"
task.driver = "exec"
task.config = mapOf(
Pair("command", "sleep"),
Pair("args", listOf("1"))
)
task.resources = Resources()
task.resources.cpu = 1000
task.resources.memoryMb = 256
group.tasks = listOf(task)
job.taskGroups = listOf(group)
return job
}
17:11:04.949 [main] INFO nomad-test - Running 0 of 1000
17:11:22.561 [main] INFO nomad-test - Running 100 of 1000
17:11:44.596 [main] INFO nomad-test - Running 200 of 1000
17:12:02.036 [main] INFO nomad-test - Running 300 of 1000
17:12:19.170 [main] INFO nomad-test - Running 400 of 1000
17:12:41.843 [main] INFO nomad-test - Running 500 of 1000
17:13:00.686 [main] INFO nomad-test - Running 600 of 1000
17:13:19.864 [main] INFO nomad-test - Running 700 of 1000
17:13:37.997 [main] INFO nomad-test - Running 800 of 1000
17:13:56.410 [main] INFO nomad-test - Running 900 of 1000
17:14:15.545 [main] INFO nomad-test - Running 1000 of 1000
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment