Skip to content

Commit

Permalink
Merge pull request #39 from chrroberts-pure/correctportreadme
Browse files Browse the repository at this point in the history
Correct README to show correct port number (9491)
  • Loading branch information
sdodsley authored Nov 1, 2023
2 parents 6adaf47 + ff0032e commit 15e97b4
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 54 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ Arguments:

-h --help Print help information
-a --address IP address for this exporter to bind to. Default: 0.0.0.0
-p --port Port for this exporter to listen. Default: 9490
-p --port Port for this exporter to listen. Default: 9491
-d --debug Enable debug. Default: false
-t --tokens API token(s) map file
-c --cert SSL/TLS certificate file. Required only for TLS
Expand Down
106 changes: 53 additions & 53 deletions cmd/fb-om-exporter/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,77 +12,77 @@ import (
client "purestorage/fb-openmetrics-exporter/internal/rest-client"
"strings"

"github.com/akamensky/argparse"
"github.com/akamensky/argparse"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
"gopkg.in/yaml.v3"
"gopkg.in/yaml.v3"
)

var version string = "development"
var debug bool = false
var arraytokens config.FlashBladeList

func fileExists(args []string) error {
_, err := os.Stat(args[0])
return err
_, err := os.Stat(args[0])
return err
}

func isFile(filename string) bool {
info, err := os.Stat(filename)
if os.IsNotExist(err) {
return false
}
return !info.IsDir()
info, err := os.Stat(filename)
if os.IsNotExist(err) {
return false
}
return !info.IsDir()
}

func main() {

parser := argparse.NewParser("pure-fb-om-exporter", "Pure Storage FB OpenMetrics exporter")
host := parser.String("a", "address", &argparse.Options{Required: false, Help: "IP address for this exporter to bind to", Default: "0.0.0.0"})
port := parser.Int("p", "port", &argparse.Options{Required: false, Help: "Port for this exporter to listen", Default: 9491})
d := parser.Flag("d", "debug", &argparse.Options{Required: false, Help: "Enable debug", Default: false})
at := parser.File("t", "tokens", os.O_RDONLY, 0600, &argparse.Options{Required: false, Validate: fileExists, Help: "API token(s) map file"})
cert := parser.String("c", "cert", &argparse.Options{Required: false, Help: "TLS certificate file"})
key := parser.String("k", "key", &argparse.Options{Required: false, Help: "TLS key file"})
err := parser.Parse(os.Args)
if err != nil {
log.Fatalf("Error in token file: %v", err)
}
if !isNilFile(*at) {
defer at.Close()
buf := make([]byte, 1024)
arrlist := ""
for {
n, err := at.Read(buf)
if err == io.EOF {
break
}
if err != nil {
log.Fatalf("Reading token file: %v", err)
}
if n > 0 {
arrlist = arrlist + string(buf[:n])
}
}
buf = []byte(arrlist)
err := yaml.Unmarshal(buf, &arraytokens)
if err != nil {
log.Fatalf("Unmarshalling token file: %v", err)
}
}
parser := argparse.NewParser("pure-fb-om-exporter", "Pure Storage FB OpenMetrics exporter")
host := parser.String("a", "address", &argparse.Options{Required: false, Help: "IP address for this exporter to bind to", Default: "0.0.0.0"})
port := parser.Int("p", "port", &argparse.Options{Required: false, Help: "Port for this exporter to listen", Default: 9491})
d := parser.Flag("d", "debug", &argparse.Options{Required: false, Help: "Enable debug", Default: false})
at := parser.File("t", "tokens", os.O_RDONLY, 0600, &argparse.Options{Required: false, Validate: fileExists, Help: "API token(s) map file"})
cert := parser.String("c", "cert", &argparse.Options{Required: false, Help: "SSL/TLS certificate file. Required only for TLS"})
key := parser.String("k", "key", &argparse.Options{Required: false, Help: "SSL/TLS private key file. Required only for TLS"})
err := parser.Parse(os.Args)
if err != nil {
log.Fatalf("Error in token file: %v", err)
}
if !isNilFile(*at) {
defer at.Close()
buf := make([]byte, 1024)
arrlist := ""
for {
n, err := at.Read(buf)
if err == io.EOF {
break
}
if err != nil {
log.Fatalf("Reading token file: %v", err)
}
if n > 0 {
arrlist = arrlist + string(buf[:n])
}
}
buf = []byte(arrlist)
err := yaml.Unmarshal(buf, &arraytokens)
if err != nil {
log.Fatalf("Unmarshalling token file: %v", err)
}
}
if (len(*cert) > 0 && len(*key) == 0) || (len(*cert) == 0 && len(*key) > 0) {
log.Fatal("Both certificate and key must be specified to enable TLS")
}
if (len(*cert) > 0 && len(*key) > 0) {
}
if len(*cert) > 0 && len(*key) > 0 {
if !isFile(*cert) {
log.Fatal("TLS cert file not found")
} else if !isFile (*key) {
} else if !isFile(*key) {
log.Fatal("TLS key file not found")
}
}
debug = *d
addr := fmt.Sprintf("%s:%d", *host, *port)
log.Printf("Start Pure FlashBlade exporter %s on %s", version, addr)
}
debug = *d
addr := fmt.Sprintf("%s:%d", *host, *port)
log.Printf("Start Pure FlashBlade exporter %s on %s", version, addr)

http.HandleFunc("/", index)
http.HandleFunc("/metrics/array", func(w http.ResponseWriter, r *http.Request) {
Expand Down Expand Up @@ -136,8 +136,8 @@ func metricsHandler(w http.ResponseWriter, r *http.Request) {
authHeader := r.Header.Get("Authorization")
authFields := strings.Fields(authHeader)
address, apitoken := arraytokens.GetArrayParams(endpoint)
if len(authFields) == 2 && strings.ToLower(authFields[0]) == "bearer" {
apitoken = authFields[1]
if len(authFields) == 2 && strings.ToLower(authFields[0]) == "bearer" {
apitoken = authFields[1]
address = endpoint
}
if apitoken == "" {
Expand Down Expand Up @@ -211,6 +211,6 @@ func index(w http.ResponseWriter, r *http.Request) {
}

func isNilFile(f os.File) bool {
var tf os.File
return f == tf
var tf os.File
return f == tf
}

0 comments on commit 15e97b4

Please sign in to comment.