@@ -205,43 +205,47 @@ def tear_down(node_name, inventory)
205205 { status : 'ok' }
206206end
207207
208- params = JSON . parse ( $stdin. read )
209- warn params
210- platform = params [ 'platform' ]
211- action = params [ 'action' ]
212- node_name = params [ 'node_name' ]
213- vars = params [ 'vars' ]
214- inventory = InventoryHelper . open ( params [ 'inventory' ] )
215- enable_synced_folder = params [ 'enable_synced_folder' ] . nil? ? ENV . fetch ( 'VAGRANT_ENABLE_SYNCED_FOLDER' , nil ) : params [ 'enable_synced_folder' ]
216- enable_synced_folder = enable_synced_folder . casecmp ( 'true' ) . zero? if enable_synced_folder . is_a? ( String )
217- provider = params [ 'provider' ] . nil? ? ENV . fetch ( 'VAGRANT_PROVIDER' , nil ) : params [ 'provider' ]
218- cpus = params [ 'cpus' ] . nil? ? ENV . fetch ( 'VAGRANT_CPUS' , nil ) : params [ 'cpus' ]
219- memory = params [ 'memory' ] . nil? ? ENV . fetch ( 'VAGRANT_MEMORY' , nil ) : params [ 'memory' ]
220- hyperv_vswitch = params [ 'hyperv_vswitch' ] . nil? ? ENV . fetch ( 'VAGRANT_HYPERV_VSWITCH' , nil ) : params [ 'hyperv_vswitch' ]
221- hyperv_smb_username = params [ 'hyperv_smb_username' ] . nil? ? ENV . fetch ( 'VAGRANT_HYPERV_SMB_USERNAME' , nil ) : params [ 'hyperv_smb_username' ]
222- hyperv_smb_password = params [ 'hyperv_smb_password' ] . nil? ? ENV . fetch ( 'VAGRANT_HYPERV_SMB_PASSWORD' , nil ) : params [ 'hyperv_smb_password' ]
223- box_url = params [ 'box_url' ] . nil? ? ENV . fetch ( 'VAGRANT_BOX_URL' , nil ) : params [ 'box_url' ]
224- password = params [ 'password' ] . nil? ? ENV . fetch ( 'VAGRANT_PASSWORD' , nil ) : params [ 'password' ]
225- raise 'specify a node_name when tearing down' if action == 'tear_down' && node_name . nil?
226- raise 'specify a platform when provisioning' if action == 'provision' && platform . nil?
227-
228- unless node_name . nil? ^ platform . nil?
229- case action
230- when 'tear_down'
231- raise 'specify only a node_name, not platform, when tearing down'
232- when 'provision'
233- raise 'specify only a platform, not node_name, when provisioning'
234- else
235- raise 'specify only one of: node_name, platform'
208+ def vagrant
209+ params = JSON . parse ( $stdin. read )
210+ warn params
211+ platform = params [ 'platform' ]
212+ action = params [ 'action' ]
213+ node_name = params [ 'node_name' ]
214+ vars = params [ 'vars' ]
215+ inventory = InventoryHelper . open ( params [ 'inventory' ] )
216+ enable_synced_folder = params [ 'enable_synced_folder' ] . nil? ? ENV . fetch ( 'VAGRANT_ENABLE_SYNCED_FOLDER' , nil ) : params [ 'enable_synced_folder' ]
217+ enable_synced_folder = enable_synced_folder . casecmp ( 'true' ) . zero? if enable_synced_folder . is_a? ( String )
218+ provider = params [ 'provider' ] . nil? ? ENV . fetch ( 'VAGRANT_PROVIDER' , nil ) : params [ 'provider' ]
219+ cpus = params [ 'cpus' ] . nil? ? ENV . fetch ( 'VAGRANT_CPUS' , nil ) : params [ 'cpus' ]
220+ memory = params [ 'memory' ] . nil? ? ENV . fetch ( 'VAGRANT_MEMORY' , nil ) : params [ 'memory' ]
221+ hyperv_vswitch = params [ 'hyperv_vswitch' ] . nil? ? ENV . fetch ( 'VAGRANT_HYPERV_VSWITCH' , nil ) : params [ 'hyperv_vswitch' ]
222+ hyperv_smb_username = params [ 'hyperv_smb_username' ] . nil? ? ENV . fetch ( 'VAGRANT_HYPERV_SMB_USERNAME' , nil ) : params [ 'hyperv_smb_username' ]
223+ hyperv_smb_password = params [ 'hyperv_smb_password' ] . nil? ? ENV . fetch ( 'VAGRANT_HYPERV_SMB_PASSWORD' , nil ) : params [ 'hyperv_smb_password' ]
224+ box_url = params [ 'box_url' ] . nil? ? ENV . fetch ( 'VAGRANT_BOX_URL' , nil ) : params [ 'box_url' ]
225+ password = params [ 'password' ] . nil? ? ENV . fetch ( 'VAGRANT_PASSWORD' , nil ) : params [ 'password' ]
226+ raise 'specify a node_name when tearing down' if action == 'tear_down' && node_name . nil?
227+ raise 'specify a platform when provisioning' if action == 'provision' && platform . nil?
228+
229+ unless node_name . nil? ^ platform . nil?
230+ case action
231+ when 'tear_down'
232+ raise 'specify only a node_name, not platform, when tearing down'
233+ when 'provision'
234+ raise 'specify only a platform, not node_name, when provisioning'
235+ else
236+ raise 'specify only one of: node_name, platform'
237+ end
236238 end
237- end
238239
239- begin
240- result = provision ( platform , inventory , enable_synced_folder , provider , cpus , memory , hyperv_vswitch , hyperv_smb_username , hyperv_smb_password , box_url , password , vars ) if action == 'provision'
241- result = tear_down ( node_name , inventory ) if action == 'tear_down'
242- puts result . to_json
243- exit 0
244- rescue StandardError => e
245- puts ( { _error : { kind : 'provision/vagrant_failure' , msg : e . message } } . to_json )
246- exit 1
240+ begin
241+ result = provision ( platform , inventory , enable_synced_folder , provider , cpus , memory , hyperv_vswitch , hyperv_smb_username , hyperv_smb_password , box_url , password , vars ) if action == 'provision'
242+ result = tear_down ( node_name , inventory ) if action == 'tear_down'
243+ puts result . to_json
244+ exit 0
245+ rescue StandardError => e
246+ puts ( { _error : { kind : 'provision/vagrant_failure' , msg : e . message } } . to_json )
247+ exit 1
248+ end
247249end
250+
251+ vagrant if __FILE__ == $PROGRAM_NAME
0 commit comments