2015-09-08 22:37:07 +00:00
|
|
|
package api
|
|
|
|
|
|
|
|
import (
|
2015-09-17 19:40:51 +00:00
|
|
|
"reflect"
|
|
|
|
"sort"
|
2015-09-08 22:37:07 +00:00
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
2015-09-09 00:49:31 +00:00
|
|
|
func TestAllocations_List(t *testing.T) {
|
2017-07-21 23:33:04 +00:00
|
|
|
t.Parallel()
|
2015-09-08 22:37:07 +00:00
|
|
|
c, s := makeClient(t, nil, nil)
|
|
|
|
defer s.Stop()
|
2015-09-09 00:49:31 +00:00
|
|
|
a := c.Allocations()
|
2015-09-08 22:37:07 +00:00
|
|
|
|
|
|
|
// Querying when no allocs exist returns nothing
|
2015-09-09 20:18:50 +00:00
|
|
|
allocs, qm, err := a.List(nil)
|
2015-09-08 22:37:07 +00:00
|
|
|
if err != nil {
|
|
|
|
t.Fatalf("err: %s", err)
|
|
|
|
}
|
2015-09-08 23:45:16 +00:00
|
|
|
if qm.LastIndex != 0 {
|
|
|
|
t.Fatalf("bad index: %d", qm.LastIndex)
|
|
|
|
}
|
2015-09-08 22:37:07 +00:00
|
|
|
if n := len(allocs); n != 0 {
|
|
|
|
t.Fatalf("expected 0 allocs, got: %d", n)
|
|
|
|
}
|
2015-09-09 00:20:52 +00:00
|
|
|
|
|
|
|
// TODO: do something that causes an allocation to actually happen
|
|
|
|
// so we can query for them.
|
|
|
|
return
|
|
|
|
|
2017-02-28 00:00:19 +00:00
|
|
|
//job := &Job{
|
|
|
|
//ID: helper.StringToPtr("job1"),
|
|
|
|
//Name: helper.StringToPtr("Job #1"),
|
|
|
|
//Type: helper.StringToPtr(JobTypeService),
|
|
|
|
//}
|
|
|
|
//eval, _, err := c.Jobs().Register(job, nil)
|
|
|
|
//if err != nil {
|
|
|
|
//t.Fatalf("err: %s", err)
|
|
|
|
//}
|
|
|
|
|
|
|
|
//// List the allocations again
|
|
|
|
//allocs, qm, err = a.List(nil)
|
|
|
|
//if err != nil {
|
|
|
|
//t.Fatalf("err: %s", err)
|
|
|
|
//}
|
|
|
|
//if qm.LastIndex == 0 {
|
|
|
|
//t.Fatalf("bad index: %d", qm.LastIndex)
|
|
|
|
//}
|
|
|
|
|
|
|
|
//// Check that we got the allocation back
|
|
|
|
//if len(allocs) == 0 || allocs[0].EvalID != eval {
|
|
|
|
//t.Fatalf("bad: %#v", allocs)
|
|
|
|
//}
|
2015-09-08 22:37:07 +00:00
|
|
|
}
|
2015-09-17 19:40:51 +00:00
|
|
|
|
2015-12-24 10:46:59 +00:00
|
|
|
func TestAllocations_PrefixList(t *testing.T) {
|
2017-07-21 23:33:04 +00:00
|
|
|
t.Parallel()
|
2015-12-24 10:46:59 +00:00
|
|
|
c, s := makeClient(t, nil, nil)
|
|
|
|
defer s.Stop()
|
|
|
|
a := c.Allocations()
|
|
|
|
|
|
|
|
// Querying when no allocs exist returns nothing
|
|
|
|
allocs, qm, err := a.PrefixList("")
|
|
|
|
if err != nil {
|
|
|
|
t.Fatalf("err: %s", err)
|
|
|
|
}
|
|
|
|
if qm.LastIndex != 0 {
|
|
|
|
t.Fatalf("bad index: %d", qm.LastIndex)
|
|
|
|
}
|
|
|
|
if n := len(allocs); n != 0 {
|
|
|
|
t.Fatalf("expected 0 allocs, got: %d", n)
|
|
|
|
}
|
|
|
|
|
|
|
|
// TODO: do something that causes an allocation to actually happen
|
|
|
|
// so we can query for them.
|
|
|
|
return
|
|
|
|
|
2017-02-28 00:00:19 +00:00
|
|
|
//job := &Job{
|
|
|
|
//ID: helper.StringToPtr("job1"),
|
|
|
|
//Name: helper.StringToPtr("Job #1"),
|
|
|
|
//Type: helper.StringToPtr(JobTypeService),
|
|
|
|
//}
|
|
|
|
|
|
|
|
//eval, _, err := c.Jobs().Register(job, nil)
|
|
|
|
//if err != nil {
|
|
|
|
//t.Fatalf("err: %s", err)
|
|
|
|
//}
|
|
|
|
|
|
|
|
//// List the allocations by prefix
|
|
|
|
//allocs, qm, err = a.PrefixList("foobar")
|
|
|
|
//if err != nil {
|
|
|
|
//t.Fatalf("err: %s", err)
|
|
|
|
//}
|
|
|
|
//if qm.LastIndex == 0 {
|
|
|
|
//t.Fatalf("bad index: %d", qm.LastIndex)
|
|
|
|
//}
|
|
|
|
|
|
|
|
//// Check that we got the allocation back
|
|
|
|
//if len(allocs) == 0 || allocs[0].EvalID != eval {
|
|
|
|
//t.Fatalf("bad: %#v", allocs)
|
|
|
|
//}
|
2015-12-24 10:46:59 +00:00
|
|
|
}
|
|
|
|
|
2015-09-17 19:40:51 +00:00
|
|
|
func TestAllocations_CreateIndexSort(t *testing.T) {
|
2017-07-21 23:33:04 +00:00
|
|
|
t.Parallel()
|
2015-09-17 19:40:51 +00:00
|
|
|
allocs := []*AllocationListStub{
|
2017-09-26 22:26:33 +00:00
|
|
|
{CreateIndex: 2},
|
|
|
|
{CreateIndex: 1},
|
|
|
|
{CreateIndex: 5},
|
2015-09-17 19:40:51 +00:00
|
|
|
}
|
|
|
|
sort.Sort(AllocIndexSort(allocs))
|
|
|
|
|
|
|
|
expect := []*AllocationListStub{
|
2017-09-26 22:26:33 +00:00
|
|
|
{CreateIndex: 5},
|
|
|
|
{CreateIndex: 2},
|
|
|
|
{CreateIndex: 1},
|
2015-09-17 19:40:51 +00:00
|
|
|
}
|
|
|
|
if !reflect.DeepEqual(allocs, expect) {
|
|
|
|
t.Fatalf("\n\n%#v\n\n%#v", allocs, expect)
|
|
|
|
}
|
|
|
|
}
|