mirror of
https://github.com/nikdoof/vsphere-influxdb-go.git
synced 2025-12-19 21:49:21 +00:00
add vendoring with go dep
This commit is contained in:
145
vendor/github.com/influxdata/influxdb/stress/config.go
generated
vendored
Normal file
145
vendor/github.com/influxdata/influxdb/stress/config.go
generated
vendored
Normal file
@@ -0,0 +1,145 @@
|
||||
package stress
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/BurntSushi/toml"
|
||||
)
|
||||
|
||||
// Config is a struct for the Stress test configuration
|
||||
type Config struct {
|
||||
Provision Provision `toml:"provision"`
|
||||
Write Write `toml:"write"`
|
||||
Read Read `toml:"read"`
|
||||
}
|
||||
|
||||
// Provision is a struct that contains the configuration
|
||||
// parameters for all implemented Provisioner's.
|
||||
type Provision struct {
|
||||
Basic BasicProvisioner `toml:"basic"`
|
||||
}
|
||||
|
||||
// Write is a struct that contains the configuration
|
||||
// parameters for the stress test Writer.
|
||||
type Write struct {
|
||||
PointGenerators PointGenerators `toml:"point_generator"`
|
||||
InfluxClients InfluxClients `toml:"influx_client"`
|
||||
}
|
||||
|
||||
// PointGenerators is a struct that contains the configuration
|
||||
// parameters for all implemented PointGenerator's.
|
||||
type PointGenerators struct {
|
||||
Basic *BasicPointGenerator `toml:"basic"`
|
||||
}
|
||||
|
||||
// InfluxClients is a struct that contains the configuration
|
||||
// parameters for all implemented InfluxClient's.
|
||||
type InfluxClients struct {
|
||||
Basic BasicClient `toml:"basic"`
|
||||
}
|
||||
|
||||
// Read is a struct that contains the configuration
|
||||
// parameters for the stress test Reader.
|
||||
type Read struct {
|
||||
QueryGenerators QueryGenerators `toml:"query_generator"`
|
||||
QueryClients QueryClients `toml:"query_client"`
|
||||
}
|
||||
|
||||
// QueryGenerators is a struct that contains the configuration
|
||||
// parameters for all implemented QueryGenerator's.
|
||||
type QueryGenerators struct {
|
||||
Basic BasicQuery `toml:"basic"`
|
||||
}
|
||||
|
||||
// QueryClients is a struct that contains the configuration
|
||||
// parameters for all implemented QueryClient's.
|
||||
type QueryClients struct {
|
||||
Basic BasicQueryClient `toml:"basic"`
|
||||
}
|
||||
|
||||
// NewConfig returns a pointer to a Config
|
||||
func NewConfig(s string) (*Config, error) {
|
||||
var c *Config
|
||||
var err error
|
||||
|
||||
if s == "" {
|
||||
c, err = BasicStress()
|
||||
} else {
|
||||
c, err = DecodeFile(s)
|
||||
}
|
||||
|
||||
return c, err
|
||||
}
|
||||
|
||||
// DecodeFile takes a file path for a toml config file
|
||||
// and returns a pointer to a Config Struct.
|
||||
func DecodeFile(s string) (*Config, error) {
|
||||
t := &Config{}
|
||||
|
||||
// Decode the toml file
|
||||
if _, err := toml.DecodeFile(s, t); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return t, nil
|
||||
}
|
||||
|
||||
// DecodeConfig takes a file path for a toml config file
|
||||
// and returns a pointer to a Config Struct.
|
||||
func DecodeConfig(s string) (*Config, error) {
|
||||
t := &Config{}
|
||||
|
||||
// Decode the toml file
|
||||
if _, err := toml.Decode(s, t); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return t, nil
|
||||
}
|
||||
|
||||
type outputConfig struct {
|
||||
tags map[string]string
|
||||
addr string
|
||||
database string
|
||||
retentionPolicy string
|
||||
}
|
||||
|
||||
func (t *outputConfig) SetParams(addr, db, rp string) {
|
||||
t.addr = addr
|
||||
t.database = db
|
||||
t.retentionPolicy = rp
|
||||
}
|
||||
|
||||
func NewOutputConfig() *outputConfig {
|
||||
var o outputConfig
|
||||
tags := make(map[string]string)
|
||||
o.tags = tags
|
||||
database := flag.String("database", "stress", "name of database where the response times will persist")
|
||||
retentionPolicy := flag.String("retention-policy", "", "name of the retention policy where the response times will persist")
|
||||
address := flag.String("addr", "http://localhost:8086", "IP address and port of database where response times will persist (e.g., localhost:8086)")
|
||||
flag.Var(&o, "tags", "A comma seperated list of tags")
|
||||
flag.Parse()
|
||||
|
||||
o.SetParams(*address, *database, *retentionPolicy)
|
||||
|
||||
return &o
|
||||
|
||||
}
|
||||
|
||||
func (t *outputConfig) String() string {
|
||||
var s string
|
||||
for k, v := range t.tags {
|
||||
s += fmt.Sprintf("%v=%v ", k, v)
|
||||
}
|
||||
return fmt.Sprintf("%v %v %v %v", s, t.database, t.retentionPolicy, t.addr)
|
||||
}
|
||||
|
||||
func (t *outputConfig) Set(value string) error {
|
||||
for _, s := range strings.Split(value, ",") {
|
||||
tags := strings.Split(s, "=")
|
||||
t.tags[tags[0]] = tags[1]
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user