func startNewServer() *kvTestServer { s := &kvTestServer{} // Initialize engine, store, and localDB. engine := storage.NewInMem(storage.Attributes{}, 1<<20) localDB, err := server.BootstrapCluster("test-cluster", engine) if err != nil { panic(err) } s.db = localDB // Rip through the stores (should be just one) and grab the first range (there should also just be one). localDB.VisitStores(func(store *storage.Store) error { rs := store.GetRanges() if len(rs) > 0 { s.firstRange = rs[0] } return nil }) if s.firstRange == nil { panic("Internal Error: Expected to find a range while initializing test server!") } // Initialize the REST server. s.rest = rest.NewRESTServer(s.db) s.httpServer = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { s.rest.HandleAction(w, r) })) return s }
func runInit(cmd *commander.Command, args []string) { // Initialize the engine based on the first argument and // then verify it's not in-memory. err := Context.Init() if err != nil { log.Errorf("Failed to initialize context: %v", err) return } e := Context.Engines[0] if _, ok := e.(*engine.InMem); ok { log.Errorf("Cannot initialize a cluster using an in-memory store") return } // Generate a new UUID for cluster ID and bootstrap the cluster. clusterID := uuid.New() localDB, err := server.BootstrapCluster(clusterID, e) if err != nil { log.Errorf("Failed to bootstrap cluster: %v", err) return } // Close localDB and bootstrap engine. localDB.Close() e.Stop() fmt.Printf("Cockroach cluster %s has been initialized\n", clusterID) if Context.BootstrapOnly { fmt.Printf("To start the cluster, run \"cockroach start\"\n") return } runStart(cmd, args) }
func TestPutGetDeleteSchema(t *testing.T) { s, err := createTestSchema() if err != nil { t.Fatalf("could not create test schema: %v", err) } e := engine.NewInMem(proto.Attributes{}, 1<<20) localDB, err := server.BootstrapCluster("test-cluster", e) if err != nil { t.Fatalf("unable to boostrap cluster: %v", err) } db := structured.NewDB(localDB) if err := db.PutSchema(s); err != nil { t.Fatalf("could not register schema: %v", err) } if s, err = db.GetSchema(s.Key); err != nil { t.Errorf("could not get schema with key %q: %v", s.Key, err) } expectedName := "PhotoDB" if s.Name != expectedName { t.Errorf("expected schema to be named %q; got %q", expectedName, s.Name) } if err := db.DeleteSchema(s); err != nil { t.Errorf("could not delete schema: %v", err) } if s, err = db.GetSchema(s.Key); err != nil { t.Errorf("could not get schema with key %q: %v", s.Key, err) } if s != nil { t.Errorf("expected schema to be nil; got %+v", s) } }
func startNewServer() *kvTestServer { s := &kvTestServer{} // Initialize engine, store, and localDB. e := engine.NewInMem(proto.Attributes{}, 1<<20) db, err := server.BootstrapCluster("test-cluster", e) if err != nil { panic(err) } s.db = db // Initialize the REST server. s.rest = rest.NewRESTServer(s.db) s.httpServer = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { s.rest.HandleAction(w, r) })) return s }
// runInit initializes the engine based on the first // store. The bootstrap engine may not be an in-memory type. func runInit(cmd *cobra.Command, args []string) { // Default user for servers. context.User = security.NodeUser if err := context.InitStores(); err != nil { log.Errorf("failed to initialize stores: %s", err) return } // Generate a new UUID for cluster ID and bootstrap the cluster. clusterID := uuid.NewUUID4().String() stopper := stop.NewStopper() if _, err := server.BootstrapCluster(clusterID, context.Engines, stopper); err != nil { log.Errorf("unable to bootstrap cluster: %s", err) return } stopper.Stop() log.Infof("cockroach cluster %s has been initialized", clusterID) }
// runInit initializes the engine based on the first // store. The bootstrap engine may not be an in-memory type. func runInit(cmd *cobra.Command, args []string) { // Default user for servers. Context.User = security.NodeUser // First initialize the Context as it is used in other places. err := Context.Init("init") if err != nil { log.Errorf("failed to initialize context: %s", err) return } // Generate a new UUID for cluster ID and bootstrap the cluster. clusterID := util.NewUUID4().String() stopper := util.NewStopper() if _, err := server.BootstrapCluster(clusterID, Context.Engines, stopper); err != nil { log.Errorf("unable to bootstrap cluster: %s", err) return } stopper.Stop() log.Infof("cockroach cluster %s has been initialized", clusterID) }