Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 6 additions & 7 deletions cmd/metal-api/internal/datastore/image_integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (
"testing"

"github.com/metal-stack/metal-api/cmd/metal-api/internal/metal"
"github.com/metal-stack/metal-lib/pkg/pointer"
"github.com/stretchr/testify/require"
)

Expand Down Expand Up @@ -100,7 +99,7 @@ func TestRethinkStore_SearchImages(t *testing.T) {
{
name: "empty result",
q: &ImageSearchQuery{
ID: pointer.Pointer("2"),
ID: new("2"),
},
mock: []*metal.Image{
{Base: metal.Base{ID: "1"}},
Expand All @@ -111,7 +110,7 @@ func TestRethinkStore_SearchImages(t *testing.T) {
{
name: "search by id",
q: &ImageSearchQuery{
ID: pointer.Pointer("2"),
ID: new("2"),
},
mock: []*metal.Image{
{Base: metal.Base{ID: "1"}},
Expand All @@ -126,7 +125,7 @@ func TestRethinkStore_SearchImages(t *testing.T) {
{
name: "search by name",
q: &ImageSearchQuery{
Name: pointer.Pointer("b"),
Name: new("b"),
},
mock: []*metal.Image{
{Base: metal.Base{ID: "1", Name: "a"}},
Expand Down Expand Up @@ -172,7 +171,7 @@ func TestRethinkStore_SearchImages(t *testing.T) {
{
name: "search by os",
q: &ImageSearchQuery{
OS: pointer.Pointer("ubuntu"),
OS: new("ubuntu"),
},
mock: []*metal.Image{
{Base: metal.Base{ID: "1"}, OS: "debian"},
Expand All @@ -187,7 +186,7 @@ func TestRethinkStore_SearchImages(t *testing.T) {
{
name: "search by version",
q: &ImageSearchQuery{
Version: pointer.Pointer("v2"),
Version: new("v2"),
},
mock: []*metal.Image{
{Base: metal.Base{ID: "1"}, Version: "v2"},
Expand All @@ -203,7 +202,7 @@ func TestRethinkStore_SearchImages(t *testing.T) {
{
name: "search by classification",
q: &ImageSearchQuery{
Classification: pointer.Pointer(string(metal.ClassificationPreview)),
Classification: new(string(metal.ClassificationPreview)),
},
mock: []*metal.Image{
{Base: metal.Base{ID: "1"}, Classification: metal.ClassificationPreview},
Expand Down
55 changes: 27 additions & 28 deletions cmd/metal-api/internal/datastore/machine_integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import (
"time"

"github.com/metal-stack/metal-api/cmd/metal-api/internal/metal"
"github.com/metal-stack/metal-lib/pkg/pointer"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
r "gopkg.in/rethinkdb/rethinkdb-go.v6"
Expand Down Expand Up @@ -173,7 +172,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "empty result",
q: &MachineSearchQuery{
ID: pointer.Pointer("2"),
ID: new("2"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}},
Expand All @@ -184,7 +183,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by id",
q: &MachineSearchQuery{
ID: pointer.Pointer("2"),
ID: new("2"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}},
Expand All @@ -199,7 +198,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by name",
q: &MachineSearchQuery{
Name: pointer.Pointer("b"),
Name: new("b"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1", Name: "a"}},
Expand All @@ -214,7 +213,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by partition",
q: &MachineSearchQuery{
PartitionID: pointer.Pointer("b"),
PartitionID: new("b"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, PartitionID: "a"},
Expand All @@ -229,7 +228,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by size",
q: &MachineSearchQuery{
SizeID: pointer.Pointer("b"),
SizeID: new("b"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, SizeID: "a"},
Expand All @@ -245,7 +244,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by rack",
q: &MachineSearchQuery{
RackID: pointer.Pointer("b"),
RackID: new("b"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, RackID: "a"},
Expand Down Expand Up @@ -276,7 +275,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by allocation name",
q: &MachineSearchQuery{
AllocationName: pointer.Pointer("b-name"),
AllocationName: new("b-name"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, Allocation: &metal.MachineAllocation{Name: "a-name"}},
Expand All @@ -291,7 +290,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by allocation project",
q: &MachineSearchQuery{
AllocationProject: pointer.Pointer("a-project"),
AllocationProject: new("a-project"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, Allocation: &metal.MachineAllocation{Project: "a-project"}},
Expand All @@ -306,7 +305,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by allocation image id",
q: &MachineSearchQuery{
AllocationImageID: pointer.Pointer("ubuntu"),
AllocationImageID: new("ubuntu"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, Allocation: &metal.MachineAllocation{ImageID: "ubuntu"}},
Expand All @@ -322,7 +321,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by allocation hostname",
q: &MachineSearchQuery{
AllocationHostname: pointer.Pointer("host-c"),
AllocationHostname: new("host-c"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, Allocation: &metal.MachineAllocation{Hostname: "host-a"}},
Expand All @@ -337,7 +336,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by allocation role",
q: &MachineSearchQuery{
AllocationRole: pointer.Pointer(metal.RoleMachine),
AllocationRole: new(metal.RoleMachine),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, Allocation: &metal.MachineAllocation{Role: metal.RoleFirewall}},
Expand All @@ -355,7 +354,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by allocation succeeded",
q: &MachineSearchQuery{
AllocationSucceeded: pointer.Pointer(true),
AllocationSucceeded: new(true),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, Allocation: &metal.MachineAllocation{Succeeded: false}},
Expand Down Expand Up @@ -476,7 +475,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by hardware memory",
q: &MachineSearchQuery{
HardwareMemory: pointer.Pointer(int64(1000)),
HardwareMemory: new(int64(1000)),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, Hardware: metal.MachineHardware{Memory: 1000}},
Expand Down Expand Up @@ -614,7 +613,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by state value reserved",
q: &MachineSearchQuery{
StateValue: pointer.Pointer(string(metal.ReservedState)),
StateValue: new(string(metal.ReservedState)),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, State: metal.MachineState{Value: metal.AvailableState}},
Expand All @@ -630,7 +629,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by state value available",
q: &MachineSearchQuery{
StateValue: pointer.Pointer(string(metal.AvailableState)),
StateValue: new(string(metal.AvailableState)),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, State: metal.MachineState{Value: metal.AvailableState}},
Expand All @@ -647,7 +646,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by ipmi address",
q: &MachineSearchQuery{
IpmiAddress: pointer.Pointer("1.1.1.2"),
IpmiAddress: new("1.1.1.2"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Address: "1.1.1.1"}},
Expand All @@ -662,7 +661,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by ipmi mac",
q: &MachineSearchQuery{
IpmiMacAddress: pointer.Pointer("mac-b"),
IpmiMacAddress: new("mac-b"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{MacAddress: "mac-a"}},
Expand All @@ -677,7 +676,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by ipmi user",
q: &MachineSearchQuery{
IpmiUser: pointer.Pointer("metal"),
IpmiUser: new("metal"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{User: "metal"}},
Expand All @@ -693,7 +692,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by ipmi interface",
q: &MachineSearchQuery{
IpmiInterface: pointer.Pointer("lanplus"),
IpmiInterface: new("lanplus"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Interface: "lanplus"}},
Expand All @@ -709,7 +708,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by fru chassis part number",
q: &MachineSearchQuery{
FruChassisPartNumber: pointer.Pointer("b-number"),
FruChassisPartNumber: new("b-number"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Fru: metal.Fru{ChassisPartNumber: "a-number"}}},
Expand All @@ -724,7 +723,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by fru chassis part serial",
q: &MachineSearchQuery{
FruChassisPartSerial: pointer.Pointer("b-serial"),
FruChassisPartSerial: new("b-serial"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Fru: metal.Fru{ChassisPartSerial: "a-serial"}}},
Expand All @@ -739,7 +738,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by fru board mfg",
q: &MachineSearchQuery{
FruBoardMfg: pointer.Pointer("b"),
FruBoardMfg: new("b"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Fru: metal.Fru{BoardMfg: "a"}}},
Expand All @@ -754,7 +753,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by fru board mfg serial",
q: &MachineSearchQuery{
FruBoardMfgSerial: pointer.Pointer("b"),
FruBoardMfgSerial: new("b"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Fru: metal.Fru{BoardMfgSerial: "a"}}},
Expand All @@ -769,7 +768,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by fru board part number",
q: &MachineSearchQuery{
FruBoardPartNumber: pointer.Pointer("b-number"),
FruBoardPartNumber: new("b-number"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Fru: metal.Fru{BoardPartNumber: "a-number"}}},
Expand All @@ -784,7 +783,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by fru product manufacturer",
q: &MachineSearchQuery{
FruProductManufacturer: pointer.Pointer("b"),
FruProductManufacturer: new("b"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Fru: metal.Fru{ProductManufacturer: "a"}}},
Expand All @@ -799,7 +798,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by fru product part number",
q: &MachineSearchQuery{
FruProductPartNumber: pointer.Pointer("b-number"),
FruProductPartNumber: new("b-number"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Fru: metal.Fru{ProductPartNumber: "a-number"}}},
Expand All @@ -814,7 +813,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) {
{
name: "search by fru product part serial",
q: &MachineSearchQuery{
FruProductSerial: pointer.Pointer("b-serial"),
FruProductSerial: new("b-serial"),
},
mock: []*metal.Machine{
{Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Fru: metal.Fru{ProductSerial: "a-serial"}}},
Expand Down
24 changes: 11 additions & 13 deletions cmd/metal-api/internal/datastore/migrations/09_networktype.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ package migrations
import (
"slices"

"github.com/metal-stack/metal-lib/pkg/pointer"

"github.com/metal-stack/metal-api/cmd/metal-api/internal/datastore"
"github.com/metal-stack/metal-api/cmd/metal-api/internal/metal"

Expand Down Expand Up @@ -48,37 +46,37 @@ func init() {

// now convert all networks
for _, old := range nws {
new := old
newNetwork := old

// assume external network by default
new.NetworkType = pointer.Pointer(metal.ExternalNetworkType)
newNetwork.NetworkType = new(metal.ExternalNetworkType)

if old.Shared && old.ParentNetworkID != "" {
new.NetworkType = pointer.Pointer(metal.ChildSharedNetworkType)
newNetwork.NetworkType = new(metal.ChildSharedNetworkType)
}
if old.Shared && old.ParentNetworkID == "" {
new.NetworkType = pointer.Pointer(metal.ExternalNetworkType)
newNetwork.NetworkType = new(metal.ExternalNetworkType)
}
if !old.Shared && old.ParentNetworkID != "" && !slices.Contains(sharedVrfs, old.Vrf) {
new.NetworkType = pointer.Pointer(metal.ChildNetworkType)
newNetwork.NetworkType = new(metal.ChildNetworkType)
}
if old.ProjectID == "" && old.ParentNetworkID == "" && !slices.Contains(sharedVrfs, old.Vrf) {
new.NetworkType = pointer.Pointer(metal.ExternalNetworkType)
newNetwork.NetworkType = new(metal.ExternalNetworkType)
}
if old.PrivateSuper {
new.NetworkType = pointer.Pointer(metal.SuperNetworkType)
newNetwork.NetworkType = new(metal.SuperNetworkType)
}
if old.Underlay {
new.NetworkType = pointer.Pointer(metal.UnderlayNetworkType)
newNetwork.NetworkType = new(metal.UnderlayNetworkType)
}

if old.Nat {
new.NATType = pointer.Pointer(metal.IPv4MasqueradeNATType)
newNetwork.NATType = new(metal.IPv4MasqueradeNATType)
} else {
new.NATType = pointer.Pointer(metal.NoneNATType)
newNetwork.NATType = new(metal.NoneNATType)
}

err := ds.UpdateNetwork(&old, &new)
err := ds.UpdateNetwork(&old, &newNetwork)
if err != nil {
return err
}
Expand Down
Loading
Loading