@@ -309,9 +309,8 @@ def call_automate(obj_type, obj_id, open_url_task_id = nil)
309
309
310
310
it "will process an array of objects with a server and user" do
311
311
extras = "MiqServer%3A%3Amiq_server=12"
312
- FactoryBot . create ( :small_environment )
313
- attrs = { "MiqServer::miq_server" => "12" , "array::tag" => "Classification::1,Classification::2" }
314
- result_str = "array%3A%3Atag=Classification%3A%3A1%2CClassification%3A%3A2"
312
+ attrs = { "MiqServer::miq_server" => "12" , "Array::tags" => [ "Classification::1,Classification::2" ] }
313
+ result_str = "TagArray%3A%3Atags=Classification%3A%3A1%2CClassification%3A%3A2"
315
314
uri = "/System/Process/AUTOMATION?#{ extras } &#{ result_str } &object_name=AUTOMATION"
316
315
expect ( MiqAeEngine . create_automation_object ( "AUTOMATION" , attrs ) ) . to eq ( uri )
317
316
end
@@ -375,20 +374,22 @@ def call_automate(obj_type, obj_id, open_url_task_id = nil)
375
374
end
376
375
377
376
it "with an array of Vms" do
378
- result_arr = [ ]
379
377
hash = { "vms" => Vm . all }
380
- result_str = "vms=#{ hash [ "vms" ] . collect { |v | v . id . to_s } . join ( "=" ) } "
381
- hash [ "vms" ] . collect { |v | result_arr . push ( v . id . to_s ) }
378
+ result_str = "vms=#{ hash [ "vms" ] . collect { |v | "ManageIQ::Providers::Vmware::InfraManager::Vm::#{ v . id } " } . join ( "=" ) } "
382
379
result = MiqAeEngine . create_automation_attributes ( hash )
380
+ result_arr = if hash [ "vms" ] . length == 1
381
+ "ManageIQ::Providers::Vmware::InfraManager::Vm::#{ hash [ "vms" ] [ 0 ] . id } "
382
+ else
383
+ hash [ "vms" ] . collect { |v | "ManageIQ::Providers::Vmware::InfraManager::Vm::#{ v . id } " }
384
+ end
383
385
expect ( MiqAeEngine . create_automation_attributes_string ( hash ) ) . to eq ( result_str )
384
386
expect ( result [ "vms" ] ) . to eq ( result_arr )
385
387
end
386
388
387
389
it "with an array containing a single Vm" do
388
- result_arr = [ ]
389
390
hash = { "vms" => [ Vm . first ] }
390
- result_str = "vms=#{ hash [ "vms" ] . collect { |v | v . id . to_s } . join ( "=" ) } "
391
- hash [ "vms" ] . collect { | v | result_arr . push ( v . id . to_s ) }
391
+ result_str = "vms=#{ hash [ "vms" ] . collect { |v | "ManageIQ::Providers::Vmware::InfraManager::Vm:: #{ v . id } " } . join ( "=" ) } "
392
+ result_arr = [ "ManageIQ::Providers::Vmware::InfraManager::Vm:: #{ hash [ "vms" ] [ 0 ] . id } " ]
392
393
result = MiqAeEngine . create_automation_attributes ( hash )
393
394
expect ( MiqAeEngine . create_automation_attributes_string ( hash ) ) . to eq ( result_str )
394
395
expect ( result [ "vms" ] ) . to eq ( result_arr )
@@ -408,24 +409,21 @@ def call_automate(obj_type, obj_id, open_url_task_id = nil)
408
409
end
409
410
410
411
it "with an array of Hosts" do
411
- result_arr = [ ]
412
412
hash = { "hosts" => Host . all }
413
- result_str = "hosts=#{ hash [ "hosts" ] . collect { |h | h . id . to_s } . join ( "=" ) } "
414
- hash [ "hosts" ] . collect { |h | result_arr . push ( h . id . to_s ) }
413
+ result_str = "hosts=#{ hash [ "hosts" ] . collect { |h | "Host:: #{ h . id } " } . join ( "=" ) } "
414
+ result_arr = hash [ "hosts" ] . collect { |h | "Host:: #{ h . id } " }
415
415
result = MiqAeEngine . create_automation_attributes ( hash )
416
416
expect ( MiqAeEngine . create_automation_attributes_string ( hash ) ) . to eq ( result_str )
417
417
expect ( result [ "hosts" ] ) . to eq ( result_arr )
418
418
end
419
419
420
420
it "with multiple arrays" do
421
- vm_result_arr = [ ]
422
- host_result_arr = [ ]
423
421
hash = { "vms" => Vm . all }
424
- vm_result_str = "vms=#{ hash [ "vms" ] . collect { |v | v . id . to_s } . join ( "=" ) } "
425
- hash [ "vms" ] . collect { |v | vm_result_arr . push ( v . id . to_s ) }
422
+ vm_result_str = "vms=#{ hash [ "vms" ] . collect { |v | "ManageIQ::Providers::Vmware::InfraManager::Vm:: #{ v . id } " } . join ( "=" ) } "
423
+ vm_result_arr = hash [ "vms" ] . collect { |v | "ManageIQ::Providers::Vmware::InfraManager::Vm:: #{ v . id } " }
426
424
hash [ "hosts" ] = Host . all
427
- host_result_str = "hosts=#{ hash [ "hosts" ] . collect { |h | h . id . to_s } . join ( "=" ) } "
428
- hash [ "hosts" ] . collect { |h | host_result_arr . push ( h . id . to_s ) }
425
+ host_result_str = "hosts=#{ hash [ "hosts" ] . collect { |h | "Host:: #{ h . id } " } . join ( "=" ) } "
426
+ host_result_arr = hash [ "hosts" ] . collect { |h | "Host:: #{ h . id } " }
429
427
result = MiqAeEngine . create_automation_attributes ( hash )
430
428
expect ( result [ "vms" ] ) . to eq ( vm_result_arr )
431
429
expect ( result [ "hosts" ] ) . to eq ( host_result_arr )
@@ -434,6 +432,22 @@ def call_automate(obj_type, obj_id, open_url_task_id = nil)
434
432
expect ( result_str ) . to include ( host_result_str )
435
433
end
436
434
435
+ it "with an array of Tags" do
436
+ FactoryBot . create ( :classification )
437
+ FactoryBot . create ( :classification )
438
+ FactoryBot . create ( :classification )
439
+ hash = { "tags" => Classification . all }
440
+ result_str = "tags=#{ hash [ "tags" ] . collect { |h | "Classification::#{ h . id } " } . join ( "=" ) } "
441
+ result_arr = if hash [ "tags" ] . length == 1
442
+ "Classification::#{ hash [ "tags" ] [ 0 ] . id } "
443
+ else
444
+ hash [ "tags" ] . collect { |h | "Classification::#{ h . id } " }
445
+ end
446
+ result = MiqAeEngine . create_automation_attributes ( hash )
447
+ expect ( MiqAeEngine . create_automation_attributes_string ( hash ) ) . to eq ( result_str )
448
+ expect ( result [ "tags" ] ) . to eq ( result_arr )
449
+ end
450
+
437
451
it "with invalid object references" do
438
452
hash = { "vms" => [ "bogus::12" ] }
439
453
result = MiqAeEngine . create_automation_attributes ( hash )
@@ -789,6 +803,28 @@ def call_automate(obj_type, obj_id, open_url_task_id = nil)
789
803
my_objects_array . each { |o | o . kind_of? ( MiqAeMethodService ::MiqAeServiceModelBase ) }
790
804
end
791
805
806
+ it "processes tags array arguments properly" do
807
+ tag1 = FactoryBot . create ( :classification )
808
+ tag2 = FactoryBot . create ( :classification )
809
+ tag3 = FactoryBot . create ( :classification )
810
+
811
+ EvmSpecHelper . import_yaml_model ( File . join ( model_data_dir , "miq_ae_engine_spec5" ) , domain )
812
+ ws = MiqAeEngine . instantiate ( "/EVM/AUTOMATE/test1?TagArray::my_objects=Classification::#{ tag1 . id } \x1F Classification::#{ tag2 . id } \x1F Classification::#{ tag3 . id } " , user )
813
+ my_objects_array = ws . root ( "my_objects" )
814
+ expect ( my_objects_array . length ) . to eq ( 3 )
815
+ my_objects_array . each { |o | o . kind_of? ( MiqAeMethodService ::MiqAeServiceModelBase ) }
816
+ end
817
+
818
+ it "processes tags array with a single value arguments properly" do
819
+ tag1 = FactoryBot . create ( :classification )
820
+
821
+ EvmSpecHelper . import_yaml_model ( File . join ( model_data_dir , "miq_ae_engine_spec5" ) , domain )
822
+ ws = MiqAeEngine . instantiate ( "/EVM/AUTOMATE/test1?TagArray::my_objects=Classification::#{ tag1 . id } " , user )
823
+ my_objects_array = ws . root ( "my_objects" )
824
+ expect ( my_objects_array . length ) . to eq ( 1 )
825
+ my_objects_array . each { |o | o . kind_of? ( MiqAeMethodService ::MiqAeServiceModelBase ) }
826
+ end
827
+
792
828
it "processes an empty array properly" do
793
829
EvmSpecHelper . import_yaml_model ( File . join ( model_data_dir , "miq_ae_engine_spec6" ) , domain )
794
830
ws = MiqAeEngine . instantiate ( "/EVM/AUTOMATE/test1?Array::my_objects=" , user )
0 commit comments