Skip to content

Commit

Permalink
Added the VMID type
Browse files Browse the repository at this point in the history
  • Loading branch information
Janos Bonic committed May 5, 2022
1 parent a3b4b4c commit e04711b
Show file tree
Hide file tree
Showing 35 changed files with 153 additions and 144 deletions.
24 changes: 12 additions & 12 deletions affinitygroup.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ type AffinityGroupClient interface {
// RemoveAffinityGroup removes the affinity group specified.
RemoveAffinityGroup(clusterID ClusterID, id AffinityGroupID, retries ...RetryStrategy) error

AddVMToAffinityGroup(clusterID ClusterID, vmID string, agID AffinityGroupID, retries ...RetryStrategy) error
RemoveVMFromAffinityGroup(clusterID ClusterID, vmID string, agID AffinityGroupID, retries ...RetryStrategy) error
AddVMToAffinityGroup(clusterID ClusterID, vmID VMID, agID AffinityGroupID, retries ...RetryStrategy) error
RemoveVMFromAffinityGroup(clusterID ClusterID, vmID VMID, agID AffinityGroupID, retries ...RetryStrategy) error
}

// CreateAffinityGroupOptionalParams is a list of optional parameters that can be passed for affinity group creation.
Expand Down Expand Up @@ -109,7 +109,7 @@ type AffinityGroupData interface {
// VMsRule contains the rule for the virtual machines.
VMsRule() AffinityVMsRule
// VMIDs returns the list of current virtual machine IDs assigned to this affinity group.
VMIDs() []string
VMIDs() []VMID
}

// AffinityGroup labels virtual machines, so they run / don't run on the same host.
Expand All @@ -122,9 +122,9 @@ type AffinityGroup interface {
Remove(retries ...RetryStrategy) error

// AddVM adds the specified VM to the current affinity group.
AddVM(id string, retries ...RetryStrategy) error
AddVM(id VMID, retries ...RetryStrategy) error
// RemoveVM removes the specified VM from the current affinity group.
RemoveVM(id string, retries ...RetryStrategy) error
RemoveVM(id VMID, retries ...RetryStrategy) error
}

// AffinityRule is a rule for either hosts or virtual machines.
Expand Down Expand Up @@ -172,10 +172,10 @@ type affinityGroup struct {

hostsRule AffinityRule
vmsRule AffinityRule
vmids []string
vmids []VMID
}

func (a affinityGroup) hasVM(id string) bool {
func (a affinityGroup) hasVM(id VMID) bool {
for _, vmid := range a.vmids {
if vmid == id {
return true
Expand All @@ -184,11 +184,11 @@ func (a affinityGroup) hasVM(id string) bool {
return false
}

func (a affinityGroup) AddVM(id string, retries ...RetryStrategy) error {
func (a affinityGroup) AddVM(id VMID, retries ...RetryStrategy) error {
return a.client.AddVMToAffinityGroup(a.clusterID, id, a.id, retries...)
}

func (a affinityGroup) RemoveVM(id string, retries ...RetryStrategy) error {
func (a affinityGroup) RemoveVM(id VMID, retries ...RetryStrategy) error {
return a.client.RemoveVMFromAffinityGroup(a.clusterID, id, a.id, retries...)
}

Expand Down Expand Up @@ -228,7 +228,7 @@ func (a affinityGroup) Enforcing() bool {
return a.enforcing
}

func (a affinityGroup) VMIDs() []string {
func (a affinityGroup) VMIDs() []VMID {
return a.vmids
}

Expand Down Expand Up @@ -308,13 +308,13 @@ func convertSDKAffinityGroupVMsList(sdkObject *ovirtsdk.AffinityGroup, result *a
if !ok {
return newFieldNotFound("affinity group", "VMs list")
}
convertedVMIDs := make([]string, len(vmsList.Slice()))
convertedVMIDs := make([]VMID, len(vmsList.Slice()))
for i, vm := range vmsList.Slice() {
vmid, ok := vm.Id()
if !ok {
return newFieldNotFound("VM on affinity group", "id")
}
convertedVMIDs[i] = vmid
convertedVMIDs[i] = VMID(vmid)
}
result.vmids = convertedVMIDs
return nil
Expand Down
6 changes: 3 additions & 3 deletions affinitygroup_vm_add.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ import (

func (o *oVirtClient) AddVMToAffinityGroup(
clusterID ClusterID,
vmID string,
vmID VMID,
agID AffinityGroupID,
retries ...RetryStrategy,
) error {
retries = defaultRetries(retries, defaultWriteTimeouts(o))
vm, err := ovirtsdk4.NewVmBuilder().Id(vmID).Build()
vm, err := ovirtsdk4.NewVmBuilder().Id(string(vmID)).Build()
if err != nil {
return wrap(err, EBug, "Failed to build SDK VM object")
}
Expand Down Expand Up @@ -44,7 +44,7 @@ func (o *oVirtClient) AddVMToAffinityGroup(

func (m *mockClient) AddVMToAffinityGroup(
clusterID ClusterID,
vmID string,
vmID VMID,
agID AffinityGroupID,
_ ...RetryStrategy,
) error {
Expand Down
6 changes: 3 additions & 3 deletions affinitygroup_vm_remove.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (

func (o *oVirtClient) RemoveVMFromAffinityGroup(
clusterID ClusterID,
vmID string,
vmID VMID,
agID AffinityGroupID,
retries ...RetryStrategy,
) error {
Expand All @@ -23,7 +23,7 @@ func (o *oVirtClient) RemoveVMFromAffinityGroup(
AffinityGroupsService().
GroupService(string(agID)).
VmsService().
VmService(vmID).
VmService(string(vmID)).
Remove().
Send()
return err
Expand All @@ -33,7 +33,7 @@ func (o *oVirtClient) RemoveVMFromAffinityGroup(

func (m *mockClient) RemoveVMFromAffinityGroup(
clusterID ClusterID,
vmID string,
vmID VMID,
agID AffinityGroupID,
_ ...RetryStrategy,
) error {
Expand Down
4 changes: 2 additions & 2 deletions disk.go
Original file line number Diff line number Diff line change
Expand Up @@ -503,7 +503,7 @@ type Disk interface {

// AttachToVM attaches a disk to this VM.
AttachToVM(
vmID string,
vmID VMID,
diskInterface DiskInterface,
params CreateDiskAttachmentOptionalParams,
retries ...RetryStrategy,
Expand Down Expand Up @@ -738,7 +738,7 @@ func (d *disk) Sparse() bool {
}

func (d *disk) AttachToVM(
vmID string,
vmID VMID,
diskInterface DiskInterface,
params CreateDiskAttachmentOptionalParams,
retries ...RetryStrategy,
Expand Down
22 changes: 14 additions & 8 deletions disk_attachment.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,19 @@ import (
// DiskAttachmentClient contains the methods required for handling disk attachments.
type DiskAttachmentClient interface {
// CreateDiskAttachment attaches a disk to a VM.
CreateDiskAttachment(vmID string, diskID string, diskInterface DiskInterface, params CreateDiskAttachmentOptionalParams, retries ...RetryStrategy) (DiskAttachment, error)
CreateDiskAttachment(
vmID VMID,
diskID string,
diskInterface DiskInterface,
params CreateDiskAttachmentOptionalParams,
retries ...RetryStrategy,
) (DiskAttachment, error)
// GetDiskAttachment returns a single disk attachment in a virtual machine.
GetDiskAttachment(vmID string, id string, retries ...RetryStrategy) (DiskAttachment, error)
GetDiskAttachment(vmID VMID, id string, retries ...RetryStrategy) (DiskAttachment, error)
// ListDiskAttachments lists all disk attachments for a virtual machine.
ListDiskAttachments(vmID string, retries ...RetryStrategy) ([]DiskAttachment, error)
ListDiskAttachments(vmID VMID, retries ...RetryStrategy) ([]DiskAttachment, error)
// RemoveDiskAttachment removes the disk attachment in question.
RemoveDiskAttachment(vmID string, diskAttachmentID string, retries ...RetryStrategy) error
RemoveDiskAttachment(vmID VMID, diskAttachmentID string, retries ...RetryStrategy) error
}

// DiskInterface describes the means by which a disk will appear to the VM.
Expand Down Expand Up @@ -148,7 +154,7 @@ type DiskAttachment interface {
// ID returns the identifier of the attachment.
ID() string
// VMID returns the ID of the virtual machine this attachment belongs to.
VMID() string
VMID() VMID
// DiskID returns the ID of the disk in this attachment.
DiskID() string
// DiskInterface describes the means by which a disk will appear to the VM.
Expand All @@ -171,7 +177,7 @@ type diskAttachment struct {
client Client

id string
vmid string
vmid VMID
diskID string
diskInterface DiskInterface
active bool
Expand All @@ -190,7 +196,7 @@ func (d *diskAttachment) ID() string {
return d.id
}

func (d *diskAttachment) VMID() string {
func (d *diskAttachment) VMID() VMID {
return d.vmid
}

Expand Down Expand Up @@ -251,7 +257,7 @@ func convertSDKDiskAttachment(object *ovirtsdk4.DiskAttachment, o *oVirtClient)
client: o,

id: id,
vmid: vmID,
vmid: VMID(vmID),
diskID: diskID,
diskInterface: DiskInterface(diskInterface),
bootable: bootable,
Expand Down
8 changes: 4 additions & 4 deletions disk_attachment_create.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
)

func (o *oVirtClient) CreateDiskAttachment(
vmID string,
vmID VMID,
diskID string,
diskInterface DiskInterface,
params CreateDiskAttachmentOptionalParams,
Expand All @@ -25,7 +25,7 @@ func (o *oVirtClient) CreateDiskAttachment(
attachmentBuilder := ovirtsdk.NewDiskAttachmentBuilder()
attachmentBuilder.Disk(ovirtsdk.NewDiskBuilder().Id(diskID).MustBuild())
attachmentBuilder.Interface(ovirtsdk.DiskInterface(diskInterface))
attachmentBuilder.Vm(ovirtsdk.NewVmBuilder().Id(vmID).MustBuild())
attachmentBuilder.Vm(ovirtsdk.NewVmBuilder().Id(string(vmID)).MustBuild())
attachmentBuilder.Active(true)
if params != nil {
if active := params.Active(); active != nil {
Expand All @@ -37,7 +37,7 @@ func (o *oVirtClient) CreateDiskAttachment(
}
attachment := attachmentBuilder.MustBuild()

addRequest := o.conn.SystemService().VmsService().VmService(vmID).DiskAttachmentsService().Add()
addRequest := o.conn.SystemService().VmsService().VmService(string(vmID)).DiskAttachmentsService().Add()
addRequest.Attachment(attachment)
response, err := addRequest.Send()
if err != nil {
Expand Down Expand Up @@ -66,7 +66,7 @@ func (o *oVirtClient) CreateDiskAttachment(
}

func (m *mockClient) CreateDiskAttachment(
vmID string,
vmID VMID,
diskID string,
diskInterface DiskInterface,
params CreateDiskAttachmentOptionalParams,
Expand Down
6 changes: 3 additions & 3 deletions disk_attachment_get.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
)

func (o *oVirtClient) GetDiskAttachment(
vmid string,
vmid VMID,
id string,
retries ...RetryStrategy,
) (result DiskAttachment, err error) {
Expand All @@ -18,7 +18,7 @@ func (o *oVirtClient) GetDiskAttachment(
response, err := o.conn.
SystemService().
VmsService().
VmService(vmid).
VmService(string(vmid)).
DiskAttachmentsService().
AttachmentService(id).
Get().
Expand All @@ -44,7 +44,7 @@ func (o *oVirtClient) GetDiskAttachment(
return result, err
}

func (m *mockClient) GetDiskAttachment(vmID string, diskAttachmentID string, _ ...RetryStrategy) (DiskAttachment, error) {
func (m *mockClient) GetDiskAttachment(vmID VMID, diskAttachmentID string, _ ...RetryStrategy) (DiskAttachment, error) {
m.lock.Lock()
defer m.lock.Unlock()

Expand Down
6 changes: 3 additions & 3 deletions disk_attachment_list.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
)

func (o *oVirtClient) ListDiskAttachments(
vmid string,
vmid VMID,
retries ...RetryStrategy,
) (result []DiskAttachment, err error) {
retries = defaultRetries(retries, defaultReadTimeouts(o))
Expand All @@ -15,7 +15,7 @@ func (o *oVirtClient) ListDiskAttachments(
o.logger,
retries,
func() error {
response, e := o.conn.SystemService().VmsService().VmService(vmid).DiskAttachmentsService().List().Send()
response, e := o.conn.SystemService().VmsService().VmService(string(vmid)).DiskAttachmentsService().List().Send()
if e != nil {
return e
}
Expand All @@ -35,7 +35,7 @@ func (o *oVirtClient) ListDiskAttachments(
return
}

func (m *mockClient) ListDiskAttachments(vmID string, _ ...RetryStrategy) ([]DiskAttachment, error) {
func (m *mockClient) ListDiskAttachments(vmID VMID, _ ...RetryStrategy) ([]DiskAttachment, error) {
m.lock.Lock()
defer m.lock.Unlock()

Expand Down
6 changes: 3 additions & 3 deletions disk_attachment_remove.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"fmt"
)

func (o *oVirtClient) RemoveDiskAttachment(vmID string, diskAttachmentID string, retries ...RetryStrategy) error {
func (o *oVirtClient) RemoveDiskAttachment(vmID VMID, diskAttachmentID string, retries ...RetryStrategy) error {
retries = defaultRetries(retries, defaultWriteTimeouts(o))
return retry(
fmt.Sprintf("removing disk attachment %s on VM %s", diskAttachmentID, vmID),
Expand All @@ -14,7 +14,7 @@ func (o *oVirtClient) RemoveDiskAttachment(vmID string, diskAttachmentID string,
_, err := o.conn.
SystemService().
VmsService().
VmService(vmID).
VmService(string(vmID)).
DiskAttachmentsService().
AttachmentService(diskAttachmentID).
Remove().
Expand All @@ -24,7 +24,7 @@ func (o *oVirtClient) RemoveDiskAttachment(vmID string, diskAttachmentID string,
)
}

func (m *mockClient) RemoveDiskAttachment(vmID string, diskAttachmentID string, _ ...RetryStrategy) error {
func (m *mockClient) RemoveDiskAttachment(vmID VMID, diskAttachmentID string, _ ...RetryStrategy) error {
m.lock.Lock()
defer m.lock.Unlock()

Expand Down
6 changes: 3 additions & 3 deletions mock.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ type mockClient struct {
url string
lock *sync.Mutex
nonSecureRandom *rand.Rand
vms map[string]*vm
vms map[VMID]*vm
storageDomains map[string]*storageDomain
disks map[string]*diskWithData
clusters map[ClusterID]*cluster
Expand All @@ -34,13 +34,13 @@ type mockClient struct {
vnicProfiles map[string]*vnicProfile
networks map[string]*network
dataCenters map[string]*datacenterWithClusters
vmDiskAttachmentsByVM map[string]map[string]*diskAttachment
vmDiskAttachmentsByVM map[VMID]map[string]*diskAttachment
vmDiskAttachmentsByDisk map[string]*diskAttachment
templateDiskAttachmentsByTemplate map[TemplateID][]*templateDiskAttachment
templateDiskAttachmentsByDisk map[string]*templateDiskAttachment
tags map[string]*tag
affinityGroups map[ClusterID]map[AffinityGroupID]*affinityGroup
vmIPs map[string]map[string][]net.IP
vmIPs map[VMID]map[string][]net.IP
instanceTypes map[InstanceTypeID]*instanceType
}

Expand Down
6 changes: 3 additions & 3 deletions newmock.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ func getClient(
logger: logger,
url: "https://localhost/ovirt-engine/api",
lock: &sync.Mutex{},
vms: map[string]*vm{},
vms: map[VMID]*vm{},
tags: map[string]*tag{},
nonSecureRandom: rand.New(rand.NewSource(time.Now().UnixNano())), //nolint:gosec
storageDomains: map[string]*storageDomain{
Expand All @@ -108,7 +108,7 @@ func getClient(
dataCenters: map[string]*datacenterWithClusters{
testDatacenter.ID(): testDatacenter,
},
vmDiskAttachmentsByVM: map[string]map[string]*diskAttachment{},
vmDiskAttachmentsByVM: map[VMID]map[string]*diskAttachment{},
vmDiskAttachmentsByDisk: map[string]*diskAttachment{},
templateDiskAttachmentsByTemplate: map[TemplateID][]*templateDiskAttachment{
blankTemplate.ID(): {},
Expand All @@ -117,7 +117,7 @@ func getClient(
affinityGroups: map[ClusterID]map[AffinityGroupID]*affinityGroup{
testCluster.ID(): {},
},
vmIPs: map[string]map[string][]net.IP{},
vmIPs: map[VMID]map[string][]net.IP{},
instanceTypes: nil,
}
client.instanceTypes = getInstanceTypes(client)
Expand Down
Loading

0 comments on commit e04711b

Please sign in to comment.