1414#
1515import argparse
1616import collections
17+ import copy
1718import getpass
1819
1920import mock
@@ -65,9 +66,22 @@ def setUp(self):
6566 self .methods = {}
6667
6768 def setup_servers_mock (self , count ):
68- servers = compute_fakes .FakeServer .create_servers (attrs = self .attrs ,
69- methods = self .methods ,
70- count = count )
69+ # If we are creating more than one server, make one of them
70+ # boot-from-volume
71+ include_bfv = count > 1
72+ servers = compute_fakes .FakeServer .create_servers (
73+ attrs = self .attrs ,
74+ methods = self .methods ,
75+ count = count - 1 if include_bfv else count
76+ )
77+ if include_bfv :
78+ attrs = copy .deepcopy (self .attrs )
79+ attrs ['image' ] = ''
80+ bfv_server = compute_fakes .FakeServer .create_one_server (
81+ attrs = attrs ,
82+ methods = self .methods
83+ )
84+ servers .append (bfv_server )
7185
7286 # This is the return value for utils.find_resource()
7387 self .servers_mock .get = compute_fakes .FakeServer .get_servers (servers ,
@@ -2129,7 +2143,8 @@ def setUp(self):
21292143 Image = collections .namedtuple ('Image' , 'id name' )
21302144 self .images_mock .list .return_value = [
21312145 Image (id = s .image ['id' ], name = self .image .name )
2132- for s in self .servers
2146+ # Image will be an empty string if boot-from-volume
2147+ for s in self .servers if s .image
21332148 ]
21342149
21352150 Flavor = collections .namedtuple ('Flavor' , 'id name' )
@@ -2144,7 +2159,8 @@ def setUp(self):
21442159 s .name ,
21452160 s .status ,
21462161 server ._format_servers_list_networks (s .networks ),
2147- self .image .name ,
2162+ # Image will be an empty string if boot-from-volume
2163+ self .image .name if s .image else s .image ,
21482164 self .flavor .name ,
21492165 ))
21502166 self .data_long .append ((
@@ -2156,8 +2172,9 @@ def setUp(self):
21562172 getattr (s , 'OS-EXT-STS:power_state' )
21572173 ),
21582174 server ._format_servers_list_networks (s .networks ),
2159- self .image .name ,
2160- s .image ['id' ],
2175+ # Image will be an empty string if boot-from-volume
2176+ self .image .name if s .image else s .image ,
2177+ s .image ['id' ] if s .image else s .image ,
21612178 self .flavor .name ,
21622179 s .flavor ['id' ],
21632180 getattr (s , 'OS-EXT-AZ:availability_zone' ),
@@ -2169,7 +2186,8 @@ def setUp(self):
21692186 s .name ,
21702187 s .status ,
21712188 server ._format_servers_list_networks (s .networks ),
2172- s .image ['id' ],
2189+ # Image will be an empty string if boot-from-volume
2190+ s .image ['id' ] if s .image else s .image ,
21732191 s .flavor ['id' ]
21742192 ))
21752193
0 commit comments