@@ -58,7 +58,7 @@ func setMachineDataFromVMMetrics(vmResponse *cloudstack.VirtualMachinesMetric, c
58
58
func (c * client ) ResolveVMInstanceDetails (csMachine * infrav1.CloudStackMachine ) error {
59
59
// Attempt to fetch by ID.
60
60
if csMachine .Spec .InstanceID != nil {
61
- vmResp , count , err := c .cs .VirtualMachine .GetVirtualMachinesMetricByID (* csMachine .Spec .InstanceID )
61
+ vmResp , count , err := c .cs .VirtualMachine .GetVirtualMachinesMetricByID (* csMachine .Spec .InstanceID , cloudstack . WithProject ( c . config . ProjectID ) )
62
62
if err != nil && ! strings .Contains (strings .ToLower (err .Error ()), "no match found" ) {
63
63
c .customMetrics .EvaluateErrorAndIncrementAcsReconciliationErrorCounter (err )
64
64
return err
@@ -72,7 +72,7 @@ func (c *client) ResolveVMInstanceDetails(csMachine *infrav1.CloudStackMachine)
72
72
73
73
// Attempt fetch by name.
74
74
if csMachine .Name != "" {
75
- vmResp , count , err := c .cs .VirtualMachine .GetVirtualMachinesMetricByName (csMachine .Name ) // add opts usage
75
+ vmResp , count , err := c .cs .VirtualMachine .GetVirtualMachinesMetricByName (csMachine .Name , cloudstack . WithProject ( c . config . ProjectID ))
76
76
if err != nil && ! strings .Contains (strings .ToLower (err .Error ()), "no match" ) {
77
77
c .customMetrics .EvaluateErrorAndIncrementAcsReconciliationErrorCounter (err )
78
78
return err
@@ -88,7 +88,7 @@ func (c *client) ResolveVMInstanceDetails(csMachine *infrav1.CloudStackMachine)
88
88
89
89
func (c * client ) ResolveServiceOffering (csMachine * infrav1.CloudStackMachine , zoneID string ) (offering cloudstack.ServiceOffering , retErr error ) {
90
90
if len (csMachine .Spec .Offering .ID ) > 0 {
91
- csOffering , count , err := c .cs .ServiceOffering .GetServiceOfferingByID (csMachine .Spec .Offering .ID )
91
+ csOffering , count , err := c .cs .ServiceOffering .GetServiceOfferingByID (csMachine .Spec .Offering .ID , cloudstack . WithProject ( c . config . ProjectID ) )
92
92
if err != nil {
93
93
c .customMetrics .EvaluateErrorAndIncrementAcsReconciliationErrorCounter (err )
94
94
return cloudstack.ServiceOffering {}, multierror .Append (retErr , errors .Wrapf (
@@ -104,7 +104,7 @@ func (c *client) ResolveServiceOffering(csMachine *infrav1.CloudStackMachine, zo
104
104
}
105
105
return * csOffering , nil
106
106
}
107
- csOffering , count , err := c .cs .ServiceOffering .GetServiceOfferingByName (csMachine .Spec .Offering .Name , cloudstack .WithZone (zoneID ))
107
+ csOffering , count , err := c .cs .ServiceOffering .GetServiceOfferingByName (csMachine .Spec .Offering .Name , cloudstack .WithZone (zoneID ), cloudstack . WithProject ( c . config . ProjectID ) )
108
108
if err != nil {
109
109
c .customMetrics .EvaluateErrorAndIncrementAcsReconciliationErrorCounter (err )
110
110
return cloudstack.ServiceOffering {}, multierror .Append (retErr , errors .Wrapf (
@@ -122,7 +122,7 @@ func (c *client) ResolveTemplate(
122
122
zoneID string ,
123
123
) (templateID string , retErr error ) {
124
124
if len (csMachine .Spec .Template .ID ) > 0 {
125
- csTemplate , count , err := c .cs .Template .GetTemplateByID (csMachine .Spec .Template .ID , "executable" )
125
+ csTemplate , count , err := c .cs .Template .GetTemplateByID (csMachine .Spec .Template .ID , "executable" , cloudstack . WithProject ( c . config . ProjectID ) )
126
126
if err != nil {
127
127
c .customMetrics .EvaluateErrorAndIncrementAcsReconciliationErrorCounter (err )
128
128
return "" , multierror .Append (retErr , errors .Wrapf (
@@ -138,7 +138,7 @@ func (c *client) ResolveTemplate(
138
138
}
139
139
return csMachine .Spec .Template .ID , nil
140
140
}
141
- templateID , count , err := c .cs .Template .GetTemplateID (csMachine .Spec .Template .Name , "executable" , zoneID )
141
+ templateID , count , err := c .cs .Template .GetTemplateID (csMachine .Spec .Template .Name , "executable" , zoneID , cloudstack . WithProject ( c . config . ProjectID ) )
142
142
if err != nil {
143
143
c .customMetrics .EvaluateErrorAndIncrementAcsReconciliationErrorCounter (err )
144
144
return "" , multierror .Append (retErr , errors .Wrapf (
@@ -156,7 +156,7 @@ func (c *client) ResolveTemplate(
156
156
func (c * client ) ResolveDiskOffering (csMachine * infrav1.CloudStackMachine , zoneID string ) (diskOfferingID string , retErr error ) {
157
157
diskOfferingID = csMachine .Spec .DiskOffering .ID
158
158
if len (csMachine .Spec .DiskOffering .Name ) > 0 {
159
- diskID , count , err := c .cs .DiskOffering .GetDiskOfferingID (csMachine .Spec .DiskOffering .Name , cloudstack .WithZone (zoneID ))
159
+ diskID , count , err := c .cs .DiskOffering .GetDiskOfferingID (csMachine .Spec .DiskOffering .Name , cloudstack .WithZone (zoneID ), cloudstack . WithProject ( c . config . ProjectID ) )
160
160
if err != nil {
161
161
c .customMetrics .EvaluateErrorAndIncrementAcsReconciliationErrorCounter (err )
162
162
return "" , multierror .Append (retErr , errors .Wrapf (
@@ -183,7 +183,7 @@ func (c *client) ResolveDiskOffering(csMachine *infrav1.CloudStackMachine, zoneI
183
183
}
184
184
185
185
func verifyDiskoffering (csMachine * infrav1.CloudStackMachine , c * client , diskOfferingID string , retErr error ) (string , error ) {
186
- csDiskOffering , count , err := c .cs .DiskOffering .GetDiskOfferingByID (diskOfferingID )
186
+ csDiskOffering , count , err := c .cs .DiskOffering .GetDiskOfferingByID (diskOfferingID , cloudstack . WithProject ( c . config . ProjectID ) )
187
187
if err != nil {
188
188
c .customMetrics .EvaluateErrorAndIncrementAcsReconciliationErrorCounter (err )
189
189
return "" , multierror .Append (retErr , errors .Wrapf (
@@ -300,6 +300,7 @@ func (c *client) DeployVM(
300
300
setIfNotEmpty (csMachine .Name , p .SetName )
301
301
setIfNotEmpty (capiMachine .Name , p .SetDisplayname )
302
302
setIfNotEmpty (diskOfferingID , p .SetDiskofferingid )
303
+ setIfNotEmpty (c .config .ProjectID , p .SetProjectid )
303
304
setIntIfPositive (csMachine .Spec .DiskOffering .CustomSize , p .SetSize )
304
305
305
306
setIfNotEmpty (csMachine .Spec .SSHKey , p .SetKeypair )
@@ -330,7 +331,7 @@ func (c *client) DeployVM(
330
331
// CloudStack may have created the VM even though it reported an error. We attempt to
331
332
// retrieve the VM so we can populate the CloudStackMachine for the user to manually
332
333
// clean up.
333
- vm , findErr := findVirtualMachine (c .cs .VirtualMachine , templateID , fd , csMachine )
334
+ vm , findErr := findVirtualMachine (c .cs .VirtualMachine , templateID , fd , csMachine , c . config . ProjectID )
334
335
if findErr != nil {
335
336
c .customMetrics .EvaluateErrorAndIncrementAcsReconciliationErrorCounter (findErr )
336
337
return fmt .Errorf ("%v; find virtual machine: %v" , err , findErr )
@@ -394,13 +395,14 @@ func findVirtualMachine(
394
395
client cloudstack.VirtualMachineServiceIface ,
395
396
templateID string ,
396
397
failureDomain * infrav1.CloudStackFailureDomain ,
397
- machine * infrav1.CloudStackMachine ,
398
+ machine * infrav1.CloudStackMachine , projectID string ,
398
399
) (* cloudstack.VirtualMachine , error ) {
399
400
params := client .NewListVirtualMachinesParams ()
400
401
params .SetTemplateid (templateID )
401
402
params .SetZoneid (failureDomain .Spec .Zone .ID )
402
403
params .SetNetworkid (failureDomain .Spec .Zone .Network .ID )
403
404
params .SetName (machine .Name )
405
+ setIfNotEmpty (projectID , params .SetProjectid )
404
406
405
407
response , err := client .ListVirtualMachines (params )
406
408
if err != nil {
@@ -453,6 +455,7 @@ func (c *client) listVMInstanceDatadiskVolumeIDs(instanceID string) ([]string, e
453
455
p .SetVirtualmachineid (instanceID )
454
456
// VM root volumes are destroyed automatically, no need to explicitly include
455
457
p .SetType ("DATADISK" )
458
+ setIfNotEmpty (c .config .ProjectID , p .SetProjectid )
456
459
457
460
listVOLResp , err := c .csAsync .Volume .ListVolumes (p )
458
461
if err != nil {
0 commit comments