예제 #1
0
 def _port_update(self, exc_msg=None):
     b = self._create_resource('port', self.rsrc_defn, self.stack)
     scheduler.TaskRunner(b.create)()
     if exc_msg:
         self.client.port.update.side_effect = ic_exc.Conflict(exc_msg)
     t = template_format.parse(port_template)
     new_t = copy.deepcopy(t)
     new_extra = {'foo': 'bar'}
     m_pg = mock.Mock(extra=new_extra)
     self.client.port.get.return_value = m_pg
     new_t['resources'][self.fake_name]['properties']['extra'] = new_extra
     rsrc_defns = template.Template(new_t).resource_definitions(self.stack)
     new_port = rsrc_defns[self.fake_name]
     if exc_msg:
         exc = self.assertRaises(exception.ResourceFailure,
                                 scheduler.TaskRunner(b.update, new_port))
         self.assertIn(exc_msg, str(exc))
     else:
         scheduler.TaskRunner(b.update, new_port)()
         self.client.port.update.assert_called_once_with(
             self.resource_id, [{
                 'op': 'replace',
                 'path': '/extra',
                 'value': new_extra
             }])
예제 #2
0
 def test_port_check_delete_complete_with_exception(self):
     b = self._create_resource('port',
                               self.rsrc_defn,
                               self.stack,
                               get_exception=ic_exc.Conflict())
     exc = self.assertRaises(ic_exc.Conflict, b.check_delete_complete,
                             self.resource_id)
     self.assertIn('Conflict', str(exc))