Created
September 19, 2017 17:19
-
-
Save ethankhall/2d81c63d6fe568602da26b1bebf5b00f to your computer and use it in GitHub Desktop.
Nomad Test Main
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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