Hi Alex,
The error thrown while deleting affinitygroup by Id is: " Account and domainId
are needed for resource creation "
Many of our APIs call AccntManager to figure out owner of the resources the API
is working on like this:
Account caller = CallContext.current().getCallingAccount(); //earlier
it was using UserContext and was replaced by CallContext
Account owner = _accountMgr.finalizeOwner(caller, account, domainId,
null);
And AccountManager: finalizeOwner has this check at start:
if (caller.getId() == Account.ACCOUNT_ID_SYSTEM && ((accountName ==
null || domainId == null) && projectId == null)) {
throw new InvalidParameterValueException("Account and domainId are
needed for resource creation");
}
Now the CallContext.current().getCallingAccount(); is returning the System user
causing the subsequent failure. Why would it return system user, if the caller
is admin user?
Thanks,
Prachi
-----Original Message-----
From: Prasanna Santhanam [mailto:[email protected]]
Sent: Thursday, July 18, 2013 6:09 AM
To: [email protected]
Subject: Re: deleteAffinityGroup API
On Thu, Jul 18, 2013 at 02:17:46PM +0530, Prasanna Santhanam wrote:
> On Thu, Jul 18, 2013 at 07:14:42AM +0000, Prachi Damle wrote:
> > Account and domainId are not required parameters of this API. It
> > works fine with just an id too.
> >
> > Account and domain will be used if delete is called providing a name
> > of the group instead of id, say by an admin for a regular user's
> > group.
> >
>
> Thanks Prachi - I think it is related to the recent changes in
> CallContext that is making the user system for the API call preventing
> it from deleteing the aff.group with just an id. Filed a bug for it.
Ok - Alex mentioned the bug is 'Not a Problem'. So it's only the background CS
workers which use the CallContext. But the affinity group is still failing to
delete using the id.
--
Prasanna.,
------------------------
Powered by BigRock.com