Exemple #1
0
    def test_manage_servers_with_db_exception(self,
                                              get_manageable_mock,
                                              manage_mock,
                                              umanage_mock,
                                              server_create_mock,
                                              rollback_quota_mock):
        get_manageable_mock.side_effect = None
        manage_mock.side_effect = None
        server_create_mock.side_effect = exception.ServerAlreadyExists(
            "test-server")

        server = obj_utils.get_test_server(
            self.context, status=None, node_uuid=None,
            power_state=states.NOSTATE, availability_zone=None,
            image_uuid=None)
        node_uuid = 'aacdbd78-d670-409e-95aa-ecfcfb94fee2'

        self.assertRaises(exception.ServerAlreadyExists,
                          self.service.manage_server,
                          self.context, server, node_uuid)

        get_manageable_mock.assert_called_once_with(node_uuid)
        manage_mock.assert_called_once()
        umanage_mock.assert_called_once()
        server_create_mock.assert_called_once()
        rollback_quota_mock.assert_called_once_with(self.context, -1)
Exemple #2
0
    def server_create(self, context, values):
        if not values.get('uuid'):
            values['uuid'] = uuidutils.generate_uuid()

        server_nics = values.pop('nics', [])
        server = models.Server()
        server.update(values)
        nic_refs = []
        for nic in server_nics:
            nic_ref = models.ServerNic()
            nic_ref.update(nic)
            nic_refs.append(nic_ref)
        with _session_for_write() as session:
            try:
                session.add(server)
                for nic_r in nic_refs:
                    session.add(nic_r)
                session.flush()
            except db_exc.DBDuplicateEntry:
                raise exception.ServerAlreadyExists(name=values['name'])
            return server