@@ -582,71 +582,58 @@ def test__get_node_list_fail(self):
582582
583583 @mock .patch .object (objects .Instance , 'get_by_uuid' )
584584 def test_list_instances (self , mock_inst_by_uuid ):
585- nodes = []
585+ nodes = {}
586586 instances = []
587587 for i in range (2 ):
588588 uuid = uuidutils .generate_uuid ()
589+ node_uuid = uuidutils .generate_uuid ()
589590 instances .append (fake_instance .fake_instance_obj (self .ctx ,
590591 id = i ,
591592 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' , ))
594595 mock_inst_by_uuid .side_effect = instances
595- self .mock_conn . nodes . return_value = iter ( nodes )
596+ self .driver . node_cache = nodes
596597
597598 response = self .driver .list_instances ()
598599
599- self .mock_conn .nodes .assert_called_with (associated = True ,
600- fields = ['instance_uuid' ])
601600 expected_calls = [mock .call (mock .ANY , instances [0 ].uuid ),
602601 mock .call (mock .ANY , instances [1 ].uuid )]
603602 mock_inst_by_uuid .assert_has_calls (expected_calls )
604603 self .assertEqual (['instance-00000000' , 'instance-00000001' ],
605604 sorted (response ))
606605
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' )
609607 @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
619610
620611 self .assertRaises (exception .VirtDriverNotReady ,
621612 self .driver .list_instances )
622- self .mock_conn .nodes .assert_called_with (associated = True ,
623- fields = ['instance_uuid' ])
624613 self .assertFalse (mock_inst_by_uuid .called )
625614
626615 def test_list_instance_uuids (self ):
627616 num_nodes = 2
628- nodes = []
617+ nodes = {}
629618 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
634634
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 )
650637
651638 @mock .patch .object (objects .InstanceList , 'get_uuids_by_host' )
652639 @mock .patch .object (objects .ServiceList , 'get_all_computes_by_hv_type' )
0 commit comments