From ff15b64e9f51357afba0576a2a7eaa6fb3808fe1 Mon Sep 17 00:00:00 2001 From: Cody Soyland Date: Mon, 7 Apr 2014 12:44:41 -0500 Subject: [PATCH] Make it work if the etcd is empty --- core/etcd.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/core/etcd.go b/core/etcd.go index d1387f3b3..adb0b9c13 100644 --- a/core/etcd.go +++ b/core/etcd.go @@ -22,9 +22,18 @@ type TopologyMapper struct { func (self *TopologyMapper) Run() { log.Println(self.namespace + "/db") - resp, err := self.service.Etcd.Get(self.namespace+"/db", false, true) + db_path := self.namespace + "/db" + resp, err := self.service.Etcd.Get(db_path, false, true) if err != nil { - log.Fatal(err) + ee, ok := err.(*etcd.EtcdError) + if ok && ee.ErrorCode == 100 { // node does not exist + resp, err = self.service.Etcd.CreateDir(db_path, 0) + if err != nil { + log.Fatal(err) + } + } else { + log.Fatal(err) + } } for _, node := range flatten(resp.Node) { err := self.handlenode(node)