Bug 1085703

Summary: Can't delete group which is mentioned in an access policy
Product: [Retired] Beaker Reporter: xjia <xjia>
Component: web UIAssignee: Amit Saha <asaha>
Status: CLOSED CURRENTRELEASE QA Contact: tools-bugs <tools-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 0.16CC: aigao, asaha, dcallagh, ebaak, luliu, rmancy, xtian
Target Milestone: 0.17Keywords: Regression
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-06-10 23:27:52 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description xjia 2014-04-09 07:40:33 UTC
Description of problem:
Can't delete group which is mentioned in an access policy. It could be regress in 0.15

Version-Release number of selected component (if applicable):
0.16.1

How reproducible:
100%

Steps to Reproduce:
1.Create a group
2.Configure access policy on one system with this group
3.On group page, delete this group

Actual results:
ISE 500

Expected results:
This group can be deleted, and access policy configured with this group is deleted too.

Additional info:
Apr  9 07:19:30 beaker-devel beaker-server[7982]: bkr.server ERROR Exception on /groups/remove [POST]
Apr  9 07:19:30 beaker-devel beaker-server[7982]:  Traceback (most recent call last):
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib/python2.6/site-packages/flask/app.py", line 1817, in wsgi_app
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      response = self.full_dispatch_request()
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib/python2.6/site-packages/flask/app.py", line 1479, in full_dispatch_request
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      response = self.process_response(response)
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib/python2.6/site-packages/flask/app.py", line 1691, in process_response
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      response = handler(response)
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib/python2.6/site-packages/bkr/server/wsgi.py", line 106, in commit_or_rollback_session
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      session.commit()
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/scoping.py", line 139, in do
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      return getattr(self.registry(), name)(*args, **kwargs)
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/session.py", line 614, in commit
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      self.transaction.commit()
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/session.py", line 385, in commit
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      self._prepare_impl()
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/session.py", line 369, in _prepare_impl
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      self.session.flush()
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/session.py", line 1400, in flush
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      self._flush(objects)
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/session.py", line 1481, in _flush
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      flush_context.execute()
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/unitofwork.py", line 302, in execute
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      rec.execute(self)
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/unitofwork.py", line 469, in execute
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      uow
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/mapper.py", line 2092, in _delete_obj
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      c = connection.execute(statement, del_objects)
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py", line 1191, in execute
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      params)
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py", line 1271, in _execute_clauseelement
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      return self.__execute_context(context)
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py", line 1302, in __execute_context
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      context.parameters[0], context=context)
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py", line 1401, in _cursor_execute
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      context)
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py", line 1394, in _cursor_execute
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      context)
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/default.py", line 299, in do_execute
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      cursor.execute(statement, parameters)
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 173, in execute
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      self.errorhandler(self, exc, value)
Apr  9 07:19:30 beaker-devel beaker-server[7982]:    File "/usr/lib64/python2.6/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
Apr  9 07:19:30 beaker-devel beaker-server[7982]:      raise errorclass, errorvalue
Apr  9 07:19:30 beaker-devel beaker-server[7982]:  IntegrityError: (IntegrityError) (1451, 'Cannot delete or update a parent row: a foreign key constraint fails (`beaker_devel`.`system_access_policy_rule`, CONSTRAINT `system_access_policy_rule_group_id_fk` FOREIGN KEY (`group_id`) REFERENCES `tg_group` (`group_id`))') 'DELETE FROM tg_group WHERE tg_group.group_id = %s' (166L,)

Comment 2 Amit Saha 2014-04-09 09:41:28 UTC
http://gerrit.beaker-project.org/#/c/3013/

Comment 3 Amit Saha 2014-04-28 03:55:49 UTC
Moving this to 0.16.3: http://gerrit.beaker-project.org/#/c/3041/

Comment 6 Dan Callaghan 2014-06-02 04:39:50 UTC
This bug fix has been applied to the release-0.16 branch, however we have elected not to do another maintenance release of the 0.16.x series. This fix will be included in 0.17.0 instead.

Comment 7 Dan Callaghan 2014-06-10 23:27:52 UTC
Beaker 0.17.0 has been released.