mirror of https://github.com/docker/docs.git
add events to mesos and a few tests
Signed-off-by: Victor Vieux <vieux@docker.com>
This commit is contained in:
parent
6ecab7f5b7
commit
f00e6aa967
|
@ -137,6 +137,17 @@ func NewCluster(scheduler *scheduler.Scheduler, store *state.Store, TLSConfig *t
|
||||||
return cluster, nil
|
return cluster, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Handle callbacks for the events
|
||||||
|
func (c *Cluster) Handle(e *cluster.Event) error {
|
||||||
|
if c.eventHandler == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if err := c.eventHandler.Handle(e); err != nil {
|
||||||
|
log.Error(err)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// RegisterEventHandler registers an event handler.
|
// RegisterEventHandler registers an event handler.
|
||||||
func (c *Cluster) RegisterEventHandler(h cluster.EventHandler) error {
|
func (c *Cluster) RegisterEventHandler(h cluster.EventHandler) error {
|
||||||
if c.eventHandler != nil {
|
if c.eventHandler != nil {
|
||||||
|
|
|
@ -49,6 +49,9 @@ func (c *Cluster) ResourceOffers(_ mesosscheduler.SchedulerDriver, offers []*mes
|
||||||
} else {
|
} else {
|
||||||
s = newSlave(slaveID, engine)
|
s = newSlave(slaveID, engine)
|
||||||
c.slaves[slaveID] = s
|
c.slaves[slaveID] = s
|
||||||
|
if err := s.engine.RegisterEventHandler(c); err != nil {
|
||||||
|
log.Error(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
c.addOffer(offer)
|
c.addOffer(offer)
|
||||||
|
|
|
@ -7,17 +7,4 @@ function teardown() {
|
||||||
stop_docker
|
stop_docker
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "docker build" {
|
|
||||||
start_docker 2
|
|
||||||
swarm_manage
|
|
||||||
|
|
||||||
run docker_swarm images -q
|
|
||||||
[ "$status" -eq 0 ]
|
|
||||||
[ "${#lines[@]}" -eq 0 ]
|
|
||||||
|
|
||||||
docker_swarm build -t test $TESTDATA/build
|
|
||||||
|
|
||||||
run docker_swarm images -q
|
|
||||||
[ "$status" -eq 0 ]
|
|
||||||
[ "${#lines[@]}" -eq 1 ]
|
|
||||||
}
|
|
||||||
|
|
|
@ -8,10 +8,10 @@ function teardown() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "docker info" {
|
@test "docker info" {
|
||||||
start_docker 1 --label foo=bar
|
start_docker 2 --label foo=bar
|
||||||
swarm_manage
|
swarm_manage
|
||||||
run docker_swarm info
|
run docker_swarm info
|
||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
[[ "${output}" == *"Nodes: 1"* ]]
|
[[ "${output}" == *"Nodes: 2"* ]]
|
||||||
[[ "${output}" == *"└ Labels:"*"foo=bar"* ]]
|
[[ "${output}" == *"└ Labels:"*"foo=bar"* ]]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
#!/usr/bin/env bats
|
|
||||||
|
|
||||||
load mesos_helpers
|
|
||||||
|
|
||||||
function teardown() {
|
|
||||||
swarm_manage_cleanup
|
|
||||||
stop_mesos
|
|
||||||
stop_docker
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "docker info" {
|
|
||||||
start_docker 2
|
|
||||||
start_mesos
|
|
||||||
swarm_manage_mesos
|
|
||||||
run docker_swarm info
|
|
||||||
[ "$status" -eq 0 ]
|
|
||||||
[[ "${output}" == *'Offers: 2'* ]]
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "docker run no resources" {
|
|
||||||
start_docker 1
|
|
||||||
start_mesos
|
|
||||||
swarm_manage_mesos
|
|
||||||
run docker_swarm run -d busybox ls
|
|
||||||
[ "$status" -ne 0 ]
|
|
||||||
[[ "${output}" == *'resources constraints (-c and/or -m) are required by mesos'* ]]
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "docker run" {
|
|
||||||
start_docker_with_busybox 1
|
|
||||||
start_mesos
|
|
||||||
swarm_manage_mesos
|
|
||||||
docker_swarm run -d -m 20m busybox ls
|
|
||||||
docker_swarm run -d -m 20m busybox ls
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load ../mesos_helpers
|
||||||
|
|
||||||
|
function teardown() {
|
||||||
|
swarm_manage_cleanup
|
||||||
|
stop_mesos
|
||||||
|
stop_docker
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "mesos - docker build" {
|
||||||
|
start_docker 2
|
||||||
|
start_mesos
|
||||||
|
swarm_manage_mesos
|
||||||
|
|
||||||
|
run docker_swarm images -q
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[ "${#lines[@]}" -eq 0 ]
|
||||||
|
|
||||||
|
docker_swarm build -t test $TESTDATA/build
|
||||||
|
|
||||||
|
run docker_swarm images -q
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[ "${#lines[@]}" -eq 1 ]
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load ../mesos_helpers
|
||||||
|
|
||||||
|
function teardown() {
|
||||||
|
swarm_manage_cleanup
|
||||||
|
stop_mesos
|
||||||
|
stop_docker
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "mesos - docker commit" {
|
||||||
|
start_docker_with_busybox 2
|
||||||
|
start_mesos
|
||||||
|
swarm_manage_mesos
|
||||||
|
|
||||||
|
docker_swarm run -d -m 20m --name test_container busybox sleep 500
|
||||||
|
|
||||||
|
# make sure container exists
|
||||||
|
run docker_swarm ps -l
|
||||||
|
[ "${#lines[@]}" -eq 2 ]
|
||||||
|
[[ "${lines[1]}" == *"test_container"* ]]
|
||||||
|
|
||||||
|
# no comming name before commit
|
||||||
|
run docker_swarm images
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[[ "${output}" != *"commit_image_busybox"* ]]
|
||||||
|
|
||||||
|
# commit container
|
||||||
|
docker_swarm commit test_container commit_image_busybox
|
||||||
|
|
||||||
|
# verify after commit
|
||||||
|
run docker_swarm images
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[[ "${output}" == *"commit_image_busybox"* ]]
|
||||||
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load ../mesos_helpers
|
||||||
|
|
||||||
|
function teardown() {
|
||||||
|
swarm_manage_cleanup
|
||||||
|
stop_mesos
|
||||||
|
stop_docker
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "docker events" {
|
||||||
|
start_docker_with_busybox 2
|
||||||
|
start_mesos
|
||||||
|
swarm_manage_mesos
|
||||||
|
|
||||||
|
# start events, report real time events to $log_file
|
||||||
|
local log_file=$(mktemp)
|
||||||
|
docker_swarm events > "$log_file" &
|
||||||
|
local events_pid="$!"
|
||||||
|
|
||||||
|
# This should emit 3 events: create, start, die.
|
||||||
|
docker_swarm run -m 20m --name test_container -e constraint:node==node-0 busybox true
|
||||||
|
|
||||||
|
# events might take a little big to show up, wait until we get the last one.
|
||||||
|
retry 5 0.5 grep -q "die" "$log_file"
|
||||||
|
|
||||||
|
# clean up `docker events`
|
||||||
|
kill "$events_pid"
|
||||||
|
|
||||||
|
# verify
|
||||||
|
run cat "$log_file"
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[[ "${output}" == *"node:node-0"* ]]
|
||||||
|
[[ "${output}" == *"create"* ]]
|
||||||
|
[[ "${output}" == *"start"* ]]
|
||||||
|
[[ "${output}" == *"die"* ]]
|
||||||
|
|
||||||
|
# after ok, remove the log file
|
||||||
|
rm -f "$log_file"
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load ../mesos_helpers
|
||||||
|
|
||||||
|
function teardown() {
|
||||||
|
swarm_manage_cleanup
|
||||||
|
stop_mesos
|
||||||
|
stop_docker
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "mesos - docker info" {
|
||||||
|
start_docker 2
|
||||||
|
start_mesos
|
||||||
|
swarm_manage_mesos
|
||||||
|
run docker_swarm info
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[[ "${output}" == *'Offers: 2'* ]]
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load ../mesos_helpers
|
||||||
|
|
||||||
|
function teardown() {
|
||||||
|
swarm_manage_cleanup
|
||||||
|
stop_mesos
|
||||||
|
stop_docker
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "mesos - docker run" {
|
||||||
|
start_docker_with_busybox 2
|
||||||
|
start_mesos
|
||||||
|
swarm_manage_mesos
|
||||||
|
|
||||||
|
# make sure no container exist
|
||||||
|
run docker_swarm ps -qa
|
||||||
|
[ "${#lines[@]}" -eq 0 ]
|
||||||
|
|
||||||
|
# run
|
||||||
|
docker_swarm run -m 20m -d --name test_container busybox sleep 100
|
||||||
|
|
||||||
|
# verify, container is running
|
||||||
|
[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]
|
||||||
|
|
||||||
|
# error check
|
||||||
|
run docker_swarm run -m 20m -d 4e8aa3148a132f19ec560952231c4d39522043994df7d2dc239942c0f9424ebd
|
||||||
|
[[ "${output}" == *"cannot specify 64-byte hexadecimal strings"* ]]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "mesos - docker run no resources" {
|
||||||
|
start_docker 1
|
||||||
|
start_mesos
|
||||||
|
swarm_manage_mesos
|
||||||
|
|
||||||
|
run docker_swarm run -d busybox ls
|
||||||
|
[ "$status" -ne 0 ]
|
||||||
|
[[ "${output}" == *'resources constraints (-c and/or -m) are required by mesos'* ]]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "mesos - docker run big" {
|
||||||
|
start_docker_with_busybox 3
|
||||||
|
start_mesos
|
||||||
|
swarm_manage_mesos
|
||||||
|
|
||||||
|
for i in `seq 1 100`; do
|
||||||
|
docker_swarm run -d -m 20m busybox echo $i
|
||||||
|
done
|
||||||
|
|
||||||
|
run docker_swarm ps -aq
|
||||||
|
[ "${#lines[@]}" -eq 100 ]
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
load ../helpers
|
load ../../helpers
|
||||||
|
|
||||||
MESOS_IMAGE=jimenez/mesos-dev:clang
|
MESOS_IMAGE=jimenez/mesos-dev:clang
|
||||||
MESOS_MASTER_PORT=$(( ( RANDOM % 1000 ) + 10000 ))
|
MESOS_MASTER_PORT=$(( ( RANDOM % 1000 ) + 10000 ))
|
||||||
|
|
Loading…
Reference in New Issue