Skip to content

Commit

Permalink
Adds support for masters without hypervisors (#76)
Browse files Browse the repository at this point in the history
* Fixes attempts to look up hypervisor on unmanaged masters

* Updates test data to cover hypervisor-less master nodes

* Inverts fail-fast-able condition
  • Loading branch information
Eagerod authored Feb 22, 2025
1 parent 20b03f9 commit 92feab9
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 17 deletions.
36 changes: 22 additions & 14 deletions cmd/hope/utils/nodes.go
Original file line number Diff line number Diff line change
Expand Up @@ -187,24 +187,32 @@ func GetAvailableMasters() ([]hope.Node, error) {
}

for _, node := range nodes {
if node.IsMaster() {
hv, err := GetHypervisor(node.Hypervisor)
if err != nil {
return nil, err
}
if !node.IsMaster() {
continue
}

if node.Hypervisor == "" {
retVal = append(retVal, node)
continue
}

hvNodes, err := hv.ListNodes()
// Need to get more node details from hypervisor
hv, err := GetHypervisor(node.Hypervisor)
if err != nil {
return nil, err
}

hvNodes, err := hv.ListNodes()
if err != nil {
return nil, err
}

if sliceutil.StringInSlice(node.Name, hvNodes) {
exNode, err := expandHypervisor(node)
if err != nil {
return nil, err
}

if sliceutil.StringInSlice(node.Name, hvNodes) {
exNode, err := expandHypervisor(node)
if err != nil {
return nil, err
}
retVal = append(retVal, exNode)
}
retVal = append(retVal, exNode)
}
}

Expand Down
10 changes: 8 additions & 2 deletions cmd/hope/utils/nodes_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ var testNodes []hope.Node = []hope.Node{
{
Name: "test-master-02",
Role: hope.NodeRoleMaster.String(),
Hypervisor: "beast1",
User: "packer",
Host: "192.168.1.10",
Cpu: 2,
Memory: 2048,
},
Expand Down Expand Up @@ -278,8 +278,14 @@ func (s *NodesTestSuite) TestGetAvailableMasters() {

expectedOrig := testNodes[2:5]
expected := []hope.Node{}

for i, n := range expectedOrig {
n.Host = fmt.Sprintf("test-master-0%d", i+1)
if i == 1 {
n.Host = "192.168.1.10"
} else {
n.Host = fmt.Sprintf("test-master-0%d", i+1)
}

n.Hypervisor = ""
expected = append(expected, n)
}
Expand Down
2 changes: 1 addition & 1 deletion hope.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ nodes:
user: packer
- name: test-master-02
role: master
hypervisor: beast1
host: 192.168.1.10
cpu: 2
memory: 2048
user: packer
Expand Down

0 comments on commit 92feab9

Please sign in to comment.