@@ -166,6 +166,52 @@ def _test_empty_network(self, func):
166166 "cloudify_libvirt.network_tasks.libvirt.open" ,
167167 func , [], {'ctx' : _ctx }, 'resource' )
168168
169+ def test_reuse_network_create_not_exist (self ):
170+ # check correct handle exception with empty network
171+ _ctx = self ._create_ctx ()
172+ self ._check_no_such_object_network (
173+ "cloudify_libvirt.network_tasks.libvirt.open" ,
174+ network_tasks .create , [], {'ctx' : _ctx , 'params' : {
175+ "resource_id" : 'resource' ,
176+ "use_external_resource" : True ,
177+ }}, 'resource' )
178+
179+ def test_reuse_network_create_exist (self ):
180+ # check that we can use network
181+ _ctx = self ._create_ctx ()
182+
183+ network = mock .Mock ()
184+ network .name = mock .Mock (return_value = "resource" )
185+
186+ connect = self ._create_fake_connection ()
187+ connect .networkLookupByName = mock .Mock (return_value = network )
188+ with mock .patch (
189+ "cloudify_libvirt.domain_tasks.libvirt.open" ,
190+ mock .Mock (return_value = connect )
191+ ):
192+ network_tasks .create (ctx = _ctx , params = {
193+ "resource_id" : 'resource' ,
194+ "use_external_resource" : True })
195+ connect .networkLookupByName .assert_called_with ('resource' )
196+ self .assertEqual (
197+ _ctx .instance .runtime_properties ['resource_id' ], 'resource'
198+ )
199+ self .assertTrue (
200+ _ctx .instance .runtime_properties ['use_external_resource' ]
201+ )
202+
203+ def _test_reused_network (self , func , use_existed = True ):
204+ # check use prexisted network
205+ _ctx = self ._create_ctx ()
206+ _ctx .instance .runtime_properties ['resource_id' ] = 'resource'
207+ _ctx .instance .runtime_properties ['use_external_resource' ] = use_existed
208+ connect = self ._create_fake_connection ()
209+ with mock .patch (
210+ "cloudify_libvirt.network_tasks.libvirt.open" ,
211+ mock .Mock (return_value = connect )
212+ ):
213+ func (ctx = _ctx )
214+
169215 def _test_empty_network_backup (self , func ):
170216 # check correct handle exception with empty network
171217 _ctx = self ._create_ctx ()
@@ -407,6 +453,7 @@ def test_delete(self):
407453 self ._test_no_resource_id (network_tasks .delete )
408454 self ._test_empty_connection (network_tasks .delete )
409455 self ._test_empty_network (network_tasks .delete )
456+ self ._test_reused_network (network_tasks .delete )
410457
411458 # delete with error
412459 _ctx = self ._create_ctx ()
@@ -494,6 +541,9 @@ def test_create(self):
494541 self .assertEqual (
495542 _ctx .instance .runtime_properties ['resource_id' ], "network_name"
496543 )
544+ self .assertFalse (
545+ _ctx .instance .runtime_properties ['use_external_resource' ]
546+ )
497547
498548 # unactive
499549 network .isActive = mock .Mock (return_value = 0 )
0 commit comments