@@ -43,61 +43,57 @@ func NewPluginSPISwitch() *PluginSPISwitch {
4343}
4444
4545// CreateMachine creates a VM by cloning from a template
46- func (spi * PluginSPISwitch ) CreateMachine (ctx context.Context , machineName string , providerSpec api.VsphereProviderSpec , secrets * corev1.Secret ) (string , error ) {
47- switch providerSpec .SpecVersion () {
48- case 1 :
49- return spi .spec1 .CreateMachine (ctx , machineName , providerSpec .(* api.VsphereProviderSpec1 ), secrets )
50- case 2 :
51- return spi .spec2 .CreateMachine (ctx , machineName , providerSpec .(* api.VsphereProviderSpec2 ), secrets )
52- default :
53- return "" , fmt .Errorf ("invalid spec version" )
46+ func (spi * PluginSPISwitch ) CreateMachine (ctx context.Context , machineName string , providerSpec * api.VsphereProviderSpec , secrets * corev1.Secret ) (string , error ) {
47+ if providerSpec .V1 != nil {
48+ return spi .spec1 .CreateMachine (ctx , machineName , providerSpec .V1 , secrets )
5449 }
50+ if providerSpec .V2 != nil {
51+ return spi .spec2 .CreateMachine (ctx , machineName , providerSpec .V2 , secrets )
52+ }
53+ return "" , fmt .Errorf ("invalid spec version" )
5554}
5655
5756// DeleteMachine deletes a VM by name
58- func (spi * PluginSPISwitch ) DeleteMachine (ctx context.Context , machineName string , providerID string , providerSpec api.VsphereProviderSpec , secrets * corev1.Secret ) (string , error ) {
59- switch providerSpec .SpecVersion () {
60- case 1 :
61- return spi .spec1 .DeleteMachine (ctx , machineName , providerID , providerSpec .(* api.VsphereProviderSpec1 ), secrets )
62- case 2 :
63- return spi .spec2 .DeleteMachine (ctx , machineName , providerID , providerSpec .(* api.VsphereProviderSpec2 ), secrets )
64- default :
65- return "" , fmt .Errorf ("invalid spec version" )
57+ func (spi * PluginSPISwitch ) DeleteMachine (ctx context.Context , machineName string , providerID string , providerSpec * api.VsphereProviderSpec , secrets * corev1.Secret ) (string , error ) {
58+ if providerSpec .V1 != nil {
59+ return spi .spec1 .DeleteMachine (ctx , machineName , providerID , providerSpec .V1 , secrets )
60+ }
61+ if providerSpec .V2 != nil {
62+ return spi .spec2 .DeleteMachine (ctx , machineName , providerID , providerSpec .V2 , secrets )
6663 }
64+ return "" , fmt .Errorf ("invalid spec version" )
6765}
6866
6967// ShutDownMachine shuts down a machine by name
70- func (spi * PluginSPISwitch ) ShutDownMachine (ctx context.Context , machineName string , providerID string , providerSpec api.VsphereProviderSpec , secrets * corev1.Secret ) (string , error ) {
71- switch providerSpec .SpecVersion () {
72- case 1 :
73- return spi .spec1 .ShutDownMachine (ctx , machineName , providerID , providerSpec .(* api.VsphereProviderSpec1 ), secrets )
74- case 2 :
75- return spi .spec2 .ShutDownMachine (ctx , machineName , providerID , providerSpec .(* api.VsphereProviderSpec2 ), secrets )
76- default :
77- return "" , fmt .Errorf ("invalid spec version" )
68+ func (spi * PluginSPISwitch ) ShutDownMachine (ctx context.Context , machineName string , providerID string , providerSpec * api.VsphereProviderSpec , secrets * corev1.Secret ) (string , error ) {
69+ if providerSpec .V1 != nil {
70+ return spi .spec1 .ShutDownMachine (ctx , machineName , providerID , providerSpec .V1 , secrets )
71+ }
72+ if providerSpec .V2 != nil {
73+ return spi .spec2 .ShutDownMachine (ctx , machineName , providerID , providerSpec .V2 , secrets )
7874 }
75+ return "" , fmt .Errorf ("invalid spec version" )
7976}
8077
8178// GetMachineStatus checks for existence of VM by name
82- func (spi * PluginSPISwitch ) GetMachineStatus (ctx context.Context , machineName string , providerID string , providerSpec api.VsphereProviderSpec , secrets * corev1.Secret ) (string , error ) {
83- switch providerSpec .SpecVersion () {
84- case 1 :
85- return spi .spec1 .GetMachineStatus (ctx , machineName , providerID , providerSpec .(* api.VsphereProviderSpec1 ), secrets )
86- case 2 :
87- return spi .spec2 .GetMachineStatus (ctx , machineName , providerID , providerSpec .(* api.VsphereProviderSpec2 ), secrets )
88- default :
89- return "" , fmt .Errorf ("invalid spec version" )
79+ func (spi * PluginSPISwitch ) GetMachineStatus (ctx context.Context , machineName string , providerID string , providerSpec * api.VsphereProviderSpec , secrets * corev1.Secret ) (string , error ) {
80+ if providerSpec .V1 != nil {
81+ return spi .spec1 .GetMachineStatus (ctx , machineName , providerID , providerSpec .V1 , secrets )
9082 }
83+ if providerSpec .V2 != nil {
84+ return spi .spec2 .GetMachineStatus (ctx , machineName , providerID , providerSpec .V2 , secrets )
85+ }
86+ return "" , fmt .Errorf ("invalid spec version" )
87+
9188}
9289
9390// ListMachines lists all VMs in the DC or folder
94- func (spi * PluginSPISwitch ) ListMachines (ctx context.Context , providerSpec api.VsphereProviderSpec , secrets * corev1.Secret ) (map [string ]string , error ) {
95- switch providerSpec .SpecVersion () {
96- case 1 :
97- return spi .spec1 .ListMachines (ctx , providerSpec .(* api.VsphereProviderSpec1 ), secrets )
98- case 2 :
99- return spi .spec2 .ListMachines (ctx , providerSpec .(* api.VsphereProviderSpec2 ), secrets )
100- default :
101- return nil , fmt .Errorf ("invalid spec version" )
91+ func (spi * PluginSPISwitch ) ListMachines (ctx context.Context , providerSpec * api.VsphereProviderSpec , secrets * corev1.Secret ) (map [string ]string , error ) {
92+ if providerSpec .V1 != nil {
93+ return spi .spec1 .ListMachines (ctx , providerSpec .V1 , secrets )
94+ }
95+ if providerSpec .V2 != nil {
96+ return spi .spec2 .ListMachines (ctx , providerSpec .V2 , secrets )
10297 }
98+ return nil , fmt .Errorf ("invalid spec version" )
10399}
0 commit comments