@@ -582,71 +582,58 @@ def test__get_node_list_fail(self):
582
582
583
583
@mock .patch .object (objects .Instance , 'get_by_uuid' )
584
584
def test_list_instances (self , mock_inst_by_uuid ):
585
- nodes = []
585
+ nodes = {}
586
586
instances = []
587
587
for i in range (2 ):
588
588
uuid = uuidutils .generate_uuid ()
589
+ node_uuid = uuidutils .generate_uuid ()
589
590
instances .append (fake_instance .fake_instance_obj (self .ctx ,
590
591
id = i ,
591
592
uuid = uuid ))
592
- nodes . append ( ironic_utils .get_test_node (instance_id = uuid ,
593
- fields = [ 'instance_id' ] ))
593
+ nodes [ node_uuid ] = ironic_utils .get_test_node (
594
+ id = node_uuid , instance_id = uuid , fields = ( 'instance_id' , ))
594
595
mock_inst_by_uuid .side_effect = instances
595
- self .mock_conn . nodes . return_value = iter ( nodes )
596
+ self .driver . node_cache = nodes
596
597
597
598
response = self .driver .list_instances ()
598
599
599
- self .mock_conn .nodes .assert_called_with (associated = True ,
600
- fields = ['instance_uuid' ])
601
600
expected_calls = [mock .call (mock .ANY , instances [0 ].uuid ),
602
601
mock .call (mock .ANY , instances [1 ].uuid )]
603
602
mock_inst_by_uuid .assert_has_calls (expected_calls )
604
603
self .assertEqual (['instance-00000000' , 'instance-00000001' ],
605
604
sorted (response ))
606
605
607
- # NOTE(dustinc) This test ensures we use instance_uuid not instance_id in
608
- # 'fields' when calling ironic.
606
+ @mock .patch .object (ironic_driver .IronicDriver , '_refresh_cache' )
609
607
@mock .patch .object (objects .Instance , 'get_by_uuid' )
610
- def test_list_instances_uses_instance_uuid (self , mock_inst_by_uuid ):
611
- self .driver .list_instances ()
612
-
613
- self .mock_conn .nodes .assert_called_with (associated = True ,
614
- fields = ['instance_uuid' ])
615
-
616
- @mock .patch .object (objects .Instance , 'get_by_uuid' )
617
- def test_list_instances_fail (self , mock_inst_by_uuid ):
618
- self .mock_conn .nodes .side_effect = exception .NovaException
608
+ def test_list_instances_fail (self , mock_inst_by_uuid , mock_cache ):
609
+ mock_cache .side_effect = exception .VirtDriverNotReady
619
610
620
611
self .assertRaises (exception .VirtDriverNotReady ,
621
612
self .driver .list_instances )
622
- self .mock_conn .nodes .assert_called_with (associated = True ,
623
- fields = ['instance_uuid' ])
624
613
self .assertFalse (mock_inst_by_uuid .called )
625
614
626
615
def test_list_instance_uuids (self ):
627
616
num_nodes = 2
628
- nodes = []
617
+ nodes = {}
629
618
for n in range (num_nodes ):
630
- nodes .append (ironic_utils .get_test_node (
631
- instance_id = uuidutils .generate_uuid (),
632
- fields = ['instance_id' ]))
633
- self .mock_conn .nodes .return_value = iter (nodes )
619
+ node_uuid = uuidutils .generate_uuid ()
620
+ instance_uuid = uuidutils .generate_uuid ()
621
+ nodes [instance_uuid ] = ironic_utils .get_test_node (
622
+ id = node_uuid ,
623
+ instance_id = instance_uuid ,
624
+ fields = ('instance_id' ,))
625
+ self .driver .node_cache = nodes
626
+ instance_uuids = self .driver .list_instance_uuids ()
627
+ expected = nodes .keys ()
628
+
629
+ self .assertEqual (sorted (expected ), sorted (instance_uuids ))
630
+
631
+ @mock .patch .object (ironic_driver .IronicDriver , '_refresh_cache' )
632
+ def test_list_instance_uuids_fail (self , mock_cache ):
633
+ mock_cache .side_effect = exception .VirtDriverNotReady
634
634
635
- uuids = self .driver .list_instance_uuids ()
636
-
637
- self .mock_conn .nodes .assert_called_with (associated = True ,
638
- fields = ['instance_uuid' ])
639
- expected = [n .instance_id for n in nodes ]
640
- self .assertEqual (sorted (expected ), sorted (uuids ))
641
-
642
- # NOTE(dustinc) This test ensures we use instance_uuid not instance_id in
643
- # 'fields' when calling ironic.
644
- @mock .patch .object (objects .Instance , 'get_by_uuid' )
645
- def test_list_instance_uuids_uses_instance_uuid (self , mock_inst_by_uuid ):
646
- self .driver .list_instance_uuids ()
647
-
648
- self .mock_conn .nodes .assert_called_with (associated = True ,
649
- fields = ['instance_uuid' ])
635
+ self .assertRaises (exception .VirtDriverNotReady ,
636
+ self .driver .list_instance_uuids )
650
637
651
638
@mock .patch .object (objects .InstanceList , 'get_uuids_by_host' )
652
639
@mock .patch .object (objects .ServiceList , 'get_all_computes_by_hv_type' )
0 commit comments