Merge pull request #2898 from influxdb/opentsdb_db

Ensure openTSDB target database exists
pull/2895/head
Philip O'Toole 2015-06-10 20:07:28 -07:00
commit 9c7f23ef51
4 changed files with 21 additions and 0 deletions

View File

@ -6,6 +6,7 @@
- [#2849](https://github.com/influxdb/influxdb/issues/2849): RC32: Frequent write errors
- [#2700](https://github.com/influxdb/influxdb/issues/2700): Incorrect error message in database EncodeFields
- [#2897](https://github.com/influxdb/influxdb/pull/2897): Ensure target Graphite database exists
- [#2898](https://github.com/influxdb/influxdb/pull/2898): Ensure target openTSDB database exists
## v0.9.0-rc33 [2015-06-09]

View File

@ -158,6 +158,7 @@ func (s *Server) appendOpenTSDBService(c opentsdb.Config) error {
return err
}
srv.PointsWriter = s.PointsWriter
srv.MetaStore = s.MetaStore
s.Services = append(s.Services, srv)
return nil
}

View File

@ -15,6 +15,7 @@ import (
"time"
"github.com/influxdb/influxdb/cluster"
"github.com/influxdb/influxdb/meta"
"github.com/influxdb/influxdb/tsdb"
)
@ -34,6 +35,9 @@ type Service struct {
PointsWriter interface {
WritePoints(p *cluster.WritePointsRequest) error
}
MetaStore interface {
CreateDatabaseIfNotExists(name string) (*meta.DatabaseInfo, error)
}
Logger *log.Logger
}
@ -58,6 +62,12 @@ func NewService(c Config) (*Service, error) {
// Open starts the service
func (s *Service) Open() error {
if _, err := s.MetaStore.CreateDatabaseIfNotExists(s.Database); err != nil {
s.Logger.Printf("failed to ensure target database %s exists: %s", s.Database, err.Error())
return err
}
s.Logger.Printf("ensured target database %s exists", s.Database)
// Open listener.
ln, err := net.Listen("tcp", s.BindAddress)
if err != nil {

View File

@ -13,6 +13,7 @@ import (
"github.com/davecgh/go-spew/spew"
"github.com/influxdb/influxdb/cluster"
"github.com/influxdb/influxdb/meta"
"github.com/influxdb/influxdb/services/opentsdb"
"github.com/influxdb/influxdb/tsdb"
)
@ -136,6 +137,7 @@ func NewService(database string) *Service {
})
s := &Service{Service: srv}
s.Service.PointsWriter = &s.PointsWriter
s.Service.MetaStore = &DatabaseCreator{}
if !testing.Verbose() {
s.Logger = log.New(ioutil.Discard, "", log.LstdFlags)
@ -152,3 +154,10 @@ type PointsWriter struct {
func (w *PointsWriter) WritePoints(p *cluster.WritePointsRequest) error {
return w.WritePointsFn(p)
}
type DatabaseCreator struct {
}
func (d *DatabaseCreator) CreateDatabaseIfNotExists(name string) (*meta.DatabaseInfo, error) {
return nil, nil
}