package headscale import ( "encoding/json" "gopkg.in/check.v1" ) func (s *Suite) TestGetMachine(c *check.C) { n, err := h.CreateNamespace("test") c.Assert(err, check.IsNil) pak, err := h.CreatePreAuthKey(n.Name, false, false, nil) c.Assert(err, check.IsNil) _, err = h.GetMachine("test", "testmachine") c.Assert(err, check.NotNil) m := Machine{ ID: 0, MachineKey: "foo", NodeKey: "bar", DiscoKey: "faa", Name: "testmachine", NamespaceID: n.ID, Registered: true, RegisterMethod: "authKey", AuthKeyID: uint(pak.ID), } h.db.Save(&m) m1, err := h.GetMachine("test", "testmachine") c.Assert(err, check.IsNil) _, err = m1.GetHostInfo() c.Assert(err, check.IsNil) } func (s *Suite) TestGetMachineByID(c *check.C) { n, err := h.CreateNamespace("test") c.Assert(err, check.IsNil) pak, err := h.CreatePreAuthKey(n.Name, false, false, nil) c.Assert(err, check.IsNil) _, err = h.GetMachineByID(0) c.Assert(err, check.NotNil) m := Machine{ ID: 0, MachineKey: "foo", NodeKey: "bar", DiscoKey: "faa", Name: "testmachine", NamespaceID: n.ID, Registered: true, RegisterMethod: "authKey", AuthKeyID: uint(pak.ID), } h.db.Save(&m) m1, err := h.GetMachineByID(0) c.Assert(err, check.IsNil) _, err = m1.GetHostInfo() c.Assert(err, check.IsNil) } func (s *Suite) TestDeleteMachine(c *check.C) { n, err := h.CreateNamespace("test") c.Assert(err, check.IsNil) m := Machine{ ID: 0, MachineKey: "foo", NodeKey: "bar", DiscoKey: "faa", Name: "testmachine", NamespaceID: n.ID, Registered: true, RegisterMethod: "authKey", AuthKeyID: uint(1), } h.db.Save(&m) err = h.DeleteMachine(&m) c.Assert(err, check.IsNil) v, err := h.getValue("namespaces_pending_updates") c.Assert(err, check.IsNil) names := []string{} err = json.Unmarshal([]byte(v), &names) c.Assert(err, check.IsNil) c.Assert(names, check.DeepEquals, []string{n.Name}) h.checkForNamespacesPendingUpdates() v, _ = h.getValue("namespaces_pending_updates") c.Assert(v, check.Equals, "") _, err = h.GetMachine(n.Name, "testmachine") c.Assert(err, check.NotNil) } func (s *Suite) TestHardDeleteMachine(c *check.C) { n, err := h.CreateNamespace("test") c.Assert(err, check.IsNil) m := Machine{ ID: 0, MachineKey: "foo", NodeKey: "bar", DiscoKey: "faa", Name: "testmachine3", NamespaceID: n.ID, Registered: true, RegisterMethod: "authKey", AuthKeyID: uint(1), } h.db.Save(&m) err = h.HardDeleteMachine(&m) c.Assert(err, check.IsNil) _, err = h.GetMachine(n.Name, "testmachine3") c.Assert(err, check.NotNil) }