@@ -58,7 +58,7 @@ func setMachineDataFromVMMetrics(vmResponse *cloudstack.VirtualMachinesMetric, c
5858func (c * client ) ResolveVMInstanceDetails (csMachine * infrav1.CloudStackMachine ) error {
5959 // Attempt to fetch by ID.
6060 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 ) )
6262 if err != nil && ! strings .Contains (strings .ToLower (err .Error ()), "no match found" ) {
6363 c .customMetrics .EvaluateErrorAndIncrementAcsReconciliationErrorCounter (err )
6464 return err
@@ -72,7 +72,7 @@ func (c *client) ResolveVMInstanceDetails(csMachine *infrav1.CloudStackMachine)
7272
7373 // Attempt fetch by name.
7474 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 ))
7676 if err != nil && ! strings .Contains (strings .ToLower (err .Error ()), "no match" ) {
7777 c .customMetrics .EvaluateErrorAndIncrementAcsReconciliationErrorCounter (err )
7878 return err
@@ -88,7 +88,7 @@ func (c *client) ResolveVMInstanceDetails(csMachine *infrav1.CloudStackMachine)
8888
8989func (c * client ) ResolveServiceOffering (csMachine * infrav1.CloudStackMachine , zoneID string ) (offering cloudstack.ServiceOffering , retErr error ) {
9090 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 ) )
9292 if err != nil {
9393 c .customMetrics .EvaluateErrorAndIncrementAcsReconciliationErrorCounter (err )
9494 return cloudstack.ServiceOffering {}, multierror .Append (retErr , errors .Wrapf (
@@ -104,7 +104,7 @@ func (c *client) ResolveServiceOffering(csMachine *infrav1.CloudStackMachine, zo
104104 }
105105 return * csOffering , nil
106106 }
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 ) )
108108 if err != nil {
109109 c .customMetrics .EvaluateErrorAndIncrementAcsReconciliationErrorCounter (err )
110110 return cloudstack.ServiceOffering {}, multierror .Append (retErr , errors .Wrapf (
@@ -122,7 +122,7 @@ func (c *client) ResolveTemplate(
122122 zoneID string ,
123123) (templateID string , retErr error ) {
124124 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 ) )
126126 if err != nil {
127127 c .customMetrics .EvaluateErrorAndIncrementAcsReconciliationErrorCounter (err )
128128 return "" , multierror .Append (retErr , errors .Wrapf (
@@ -138,7 +138,7 @@ func (c *client) ResolveTemplate(
138138 }
139139 return csMachine .Spec .Template .ID , nil
140140 }
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 ) )
142142 if err != nil {
143143 c .customMetrics .EvaluateErrorAndIncrementAcsReconciliationErrorCounter (err )
144144 return "" , multierror .Append (retErr , errors .Wrapf (
@@ -156,7 +156,7 @@ func (c *client) ResolveTemplate(
156156func (c * client ) ResolveDiskOffering (csMachine * infrav1.CloudStackMachine , zoneID string ) (diskOfferingID string , retErr error ) {
157157 diskOfferingID = csMachine .Spec .DiskOffering .ID
158158 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 ) )
160160 if err != nil {
161161 c .customMetrics .EvaluateErrorAndIncrementAcsReconciliationErrorCounter (err )
162162 return "" , multierror .Append (retErr , errors .Wrapf (
@@ -183,7 +183,7 @@ func (c *client) ResolveDiskOffering(csMachine *infrav1.CloudStackMachine, zoneI
183183}
184184
185185func 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 ) )
187187 if err != nil {
188188 c .customMetrics .EvaluateErrorAndIncrementAcsReconciliationErrorCounter (err )
189189 return "" , multierror .Append (retErr , errors .Wrapf (
@@ -300,6 +300,7 @@ func (c *client) DeployVM(
300300 setIfNotEmpty (csMachine .Name , p .SetName )
301301 setIfNotEmpty (capiMachine .Name , p .SetDisplayname )
302302 setIfNotEmpty (diskOfferingID , p .SetDiskofferingid )
303+ setIfNotEmpty (c .config .ProjectID , p .SetProjectid )
303304 setIntIfPositive (csMachine .Spec .DiskOffering .CustomSize , p .SetSize )
304305
305306 setIfNotEmpty (csMachine .Spec .SSHKey , p .SetKeypair )
@@ -330,7 +331,7 @@ func (c *client) DeployVM(
330331 // CloudStack may have created the VM even though it reported an error. We attempt to
331332 // retrieve the VM so we can populate the CloudStackMachine for the user to manually
332333 // 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 )
334335 if findErr != nil {
335336 c .customMetrics .EvaluateErrorAndIncrementAcsReconciliationErrorCounter (findErr )
336337 return fmt .Errorf ("%v; find virtual machine: %v" , err , findErr )
@@ -394,13 +395,14 @@ func findVirtualMachine(
394395 client cloudstack.VirtualMachineServiceIface ,
395396 templateID string ,
396397 failureDomain * infrav1.CloudStackFailureDomain ,
397- machine * infrav1.CloudStackMachine ,
398+ machine * infrav1.CloudStackMachine , projectID string ,
398399) (* cloudstack.VirtualMachine , error ) {
399400 params := client .NewListVirtualMachinesParams ()
400401 params .SetTemplateid (templateID )
401402 params .SetZoneid (failureDomain .Spec .Zone .ID )
402403 params .SetNetworkid (failureDomain .Spec .Zone .Network .ID )
403404 params .SetName (machine .Name )
405+ setIfNotEmpty (projectID , params .SetProjectid )
404406
405407 response , err := client .ListVirtualMachines (params )
406408 if err != nil {
@@ -453,6 +455,7 @@ func (c *client) listVMInstanceDatadiskVolumeIDs(instanceID string) ([]string, e
453455 p .SetVirtualmachineid (instanceID )
454456 // VM root volumes are destroyed automatically, no need to explicitly include
455457 p .SetType ("DATADISK" )
458+ setIfNotEmpty (c .config .ProjectID , p .SetProjectid )
456459
457460 listVOLResp , err := c .csAsync .Volume .ListVolumes (p )
458461 if err != nil {
0 commit comments