Fix the logic to check compute node
and add unit test for it Change-Id: Icb7691c1f520a357f214b8cae19a748c278b22c9
This commit is contained in:
parent
3f16ae5ab8
commit
9f265beb2b
2
go.mod
2
go.mod
@ -3,12 +3,14 @@ module github.com/vexxhost/node-labeler
|
|||||||
go 1.13
|
go 1.13
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
github.com/avast/retry-go v2.6.0+incompatible
|
||||||
github.com/evanphx/json-patch v4.5.0+incompatible
|
github.com/evanphx/json-patch v4.5.0+incompatible
|
||||||
github.com/googleapis/gnostic v0.3.1 // indirect
|
github.com/googleapis/gnostic v0.3.1 // indirect
|
||||||
github.com/gosimple/slug v1.7.0
|
github.com/gosimple/slug v1.7.0
|
||||||
github.com/jaypipes/ghw v0.5.0
|
github.com/jaypipes/ghw v0.5.0
|
||||||
github.com/prometheus/common v0.7.0
|
github.com/prometheus/common v0.7.0
|
||||||
github.com/rainycape/unidecode v0.0.0-20150907023854-cb7f23ec59be // indirect
|
github.com/rainycape/unidecode v0.0.0-20150907023854-cb7f23ec59be // indirect
|
||||||
|
github.com/stretchr/testify v1.3.0
|
||||||
go.uber.org/atomic v1.4.0 // indirect
|
go.uber.org/atomic v1.4.0 // indirect
|
||||||
go.uber.org/multierr v1.1.0 // indirect
|
go.uber.org/multierr v1.1.0 // indirect
|
||||||
go.uber.org/zap v1.10.0
|
go.uber.org/zap v1.10.0
|
||||||
|
2
go.sum
2
go.sum
@ -9,6 +9,8 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy
|
|||||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||||
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4 h1:Hs82Z41s6SdL1CELW+XaDYmOH4hkBN4/N9og/AsOv7E=
|
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4 h1:Hs82Z41s6SdL1CELW+XaDYmOH4hkBN4/N9og/AsOv7E=
|
||||||
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||||
|
github.com/avast/retry-go v2.6.0+incompatible h1:FelcMrm7Bxacr1/RM8+/eqkDkmVN7tjlsy51dOzB3LI=
|
||||||
|
github.com/avast/retry-go v2.6.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY=
|
||||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
||||||
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
||||||
github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
18
main.go
18
main.go
@ -64,7 +64,7 @@ func main() {
|
|||||||
"node.vexxhost.com/product": slug.Make(product.Name),
|
"node.vexxhost.com/product": slug.Make(product.Name),
|
||||||
}
|
}
|
||||||
|
|
||||||
if !checkComputeNode() {
|
if checkComputeNode() {
|
||||||
labels["node-role.openstack.org"] = "compute"
|
labels["node-role.openstack.org"] = "compute"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,17 +94,23 @@ func main() {
|
|||||||
// checkComputeNode checks if the current node is a compute node.
|
// checkComputeNode checks if the current node is a compute node.
|
||||||
func checkComputeNode() bool {
|
func checkComputeNode() bool {
|
||||||
|
|
||||||
|
hostname, err := os.Hostname()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err.Error())
|
||||||
|
}
|
||||||
|
// Now there is only one check logic for now using hostname
|
||||||
|
return CheckComputeSubstring(hostname)
|
||||||
|
}
|
||||||
|
|
||||||
|
// checkComputeSubstring checks if the string includes compute substring.
|
||||||
|
func CheckComputeSubstring(label string) bool {
|
||||||
compute_tag := []string{
|
compute_tag := []string{
|
||||||
"kvm",
|
"kvm",
|
||||||
"compute",
|
"compute",
|
||||||
}
|
}
|
||||||
|
|
||||||
hostname, err := os.Hostname()
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err.Error())
|
|
||||||
}
|
|
||||||
for _, sub := range compute_tag {
|
for _, sub := range compute_tag {
|
||||||
if strings.Contains(hostname, sub) {
|
if strings.Contains(label, sub) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
33
units_test.go
Normal file
33
units_test.go
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func assertCheckComputeSubstring(t *testing.T, label string, expected bool) {
|
||||||
|
res := CheckComputeSubstring(label)
|
||||||
|
assert.Equal(t, expected, res)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCheckComputeSubstringWithkvmHostname(t *testing.T) {
|
||||||
|
hostname := string("kvm10.specterops.iad1.vexxhost.net")
|
||||||
|
expected := bool(true)
|
||||||
|
assertCheckComputeSubstring(t, hostname, expected)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCheckComputeSubstringWithcomputeHostname(t *testing.T) {
|
||||||
|
hostname := string("compute.specterops.iad1.vexxhost.net")
|
||||||
|
expected := bool(true)
|
||||||
|
assertCheckComputeSubstring(t, hostname, expected)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCheckComputeSubstringWithNoneComputeHostname(t *testing.T) {
|
||||||
|
hostname := string("ctl1.specterops.iad1.vexxhost.net")
|
||||||
|
expected := bool(false)
|
||||||
|
assertCheckComputeSubstring(t, hostname, expected)
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user