Skip to content

Commit

Permalink
change the check for nil power object & update the generators to crea…
Browse files Browse the repository at this point in the history
…te some nodes power nullable

Co-authored-by: Mario Wassef <mariobassem12@gmail.com>
  • Loading branch information
Omarabdul3ziz and mariobassem committed Dec 31, 2023
1 parent d3f89bb commit a258ab1
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 11 deletions.
2 changes: 1 addition & 1 deletion grid-proxy/pkg/nodestatus/nodestatus.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ const (
func DecideNodeStatusCondition(status string) string {
condition := "TRUE"

nilPower := "node.power->> 'state' = '' AND node.power->> 'target' = ''"
nilPower := "node.power IS NULL"

poweredOn := "node.power->> 'state' = 'Up' AND node.power->> 'target' = 'Up'"
poweredOff := "node.power->> 'state' = 'Down' AND node.power->> 'target' = 'Down'"
Expand Down
13 changes: 8 additions & 5 deletions grid-proxy/tools/db/crafter/generator.go
Original file line number Diff line number Diff line change
Expand Up @@ -166,12 +166,15 @@ func (c *Crafter) GenerateNodes() error {
secure: false,
virtualized: false,
serial_number: "",
power: nodePower{
extra_fee: 0,
dedicated: false,
}

if flip(.3) {
node.power = &nodePower{
State: powerState[r.Intn(len(powerState))],
Target: powerState[r.Intn(len(powerState))],
},
extra_fee: 0,
dedicated: false,
}
}

total_resources := node_resources_total{
Expand Down Expand Up @@ -230,7 +233,7 @@ func (c *Crafter) GenerateNodes() error {
}

if err := c.insertTuples(node{}, nodes); err != nil {
return fmt.Errorf("failed to isnert nodes: %w", err)
return fmt.Errorf("failed to insert nodes: %w", err)
}

if err := c.insertTuples(node_resources_total{}, totalResources); err != nil {
Expand Down
2 changes: 1 addition & 1 deletion grid-proxy/tools/db/crafter/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ type node struct {
created_at uint64
updated_at uint64
location_id string
power nodePower `gorm:"type:jsonb"`
power *nodePower `gorm:"type:jsonb"`
extra_fee uint64
dedicated bool
}
Expand Down
8 changes: 4 additions & 4 deletions grid-proxy/tools/db/crafter/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ func objectToTupleString(v interface{}) (string, error) {
for i := 0; i < val.NumField(); i++ {
if i == 0 {
v := fmt.Sprint(val.Field(i))
if v == "" {
if v == "" || (val.Field(i).Kind() == reflect.Pointer && val.Field(i).IsNil()) {
v = null
}
if v != null && val.Field(i).Type().Name() == "string" {
Expand All @@ -71,15 +71,15 @@ func objectToTupleString(v interface{}) (string, error) {
vals = fmt.Sprintf("%s%s", vals, v)
} else {
v := fmt.Sprint(val.Field(i))
if v == "" {
if v == "" || (val.Field(i).Kind() == reflect.Pointer && val.Field(i).IsNil()) {
v = null
}
if v != null && val.Field(i).Type().Name() == "string" {
v = fmt.Sprintf(`'%s'`, v)
}
if v != null && val.Field(i).Type().Name() == "nodePower" {
if v != null && val.Type().Field(i).Name == "power" {
// Construct the nodePower object
val2 := val.Field(i)
val2 := reflect.Indirect(val.Field(i))
power := make(map[string]string)
for j := 0; j < val2.NumField(); j++ {
fieldName := strings.ToLower(val2.Type().Field(j).Name)
Expand Down

0 comments on commit a258ab1

Please sign in to comment.