Fix: when rsDataObjUnlink detects a remote zone data object, it returns not the return value of rcDataObjUnlink, but the remoteFlag, which does not indicate the status of the api.

git-svn-id: svn://irodssvn.ucsd.edu/trunk@5535 ea137bd6-aa86-47b6-b90d-b101d9f19a90
Add a 'mkgroup' command to igroupadmin and allow the groupadmin to add
themselves to an empty group so they can create and manage new groups.

To perform other groupadmin operations, the restrictions are as they
were before, the user must be of type 'groupadmin' and be a member of
the group.  But with these changes, the groupadmin is allowed to
create a group and there's a 'igroupadmin mkgroup' command to do so
and also a user of type 'groupadmin' is allowed to add themselves to a
group as long as that group currently has no members.  Thus the
groupadmin still has fairly limited powers but can now create and
manage new groups.

This was requested by Sanger.  See irod-chat thread 'Group
administrator' for the discussion.

clients/icommands/src/igroupadmin.c:
server/api/src/rsUserAdmin.c:
Add the mkgroup sub-command.

server/test/bin/icatTest.pl:
Add some tests for the new capabilities (at part of 'devtest').

server/icat/include/icatMidLevelRoutines.h
server/icat/src/icatMidLevelRoutines.c:
Add cmlGetGroupMemberCount function

server/icat/src/icatHighLevelRoutines.c
Add logic to make the new groupadmin permission checks.



git-svn-id: svn://irodssvn.ucsd.edu/trunk@5536 ea137bd6-aa86-47b6-b90d-b101d9f19a90
Significantly improve the performance of 3 SQL statements used with
tickets as provided by Tony Edwin of iPlant.

Three of the SQL statements in icatMidLevelRoutines.c used in handling
tickets could cause significant memory and processor loads.  Although
the SQL will eventually only return a few rows, the cross join could
cause large numbers of records to be returned (tens of millions for
iplant) in some portion of the processing, causing the irodsAgent, for
iPlant, to consume about 10GB of memory and take around 2 minutes to
complete. When a handful of these calls would overlap in time, their
server would have a swap storm, bringing the server to a crawl.  The
problem with the cross join is subtle but in this case can be avoided
by using some sub-queries.

Again, thanks to Tony Edwin of iPlant for these SQL fixes.

I also updated the icatTicketTest.pl script, adding some additional
comments to further explain how to run it (some items I had to
re-learn to run it again).  I also modified a few of the defines to
be more convenient for current testing.

This new version passes the all the icatTicketTest.pl tests and is
somewhat faster even on small instances, especially, when one makes
the instance somewhat larger.  On Pivo (and old PC running Ubuntu
12.04.3 LTS), with 20,000 data-objects the old version of the code
(the old SQL) would take about 2m53s to run icatTicketTest.pl and the
new version takes about 2m25s.



git-svn-id: svn://irodssvn.ucsd.edu/trunk@5537 ea137bd6-aa86-47b6-b90d-b101d9f19a90
Correction to previous commit:Tony Edgin of iPlant provided these SQL
fixes to significantly improve the performance of 3 SQL statements.

Made some cosmetic updates to I	   could revise the log messages.

Thanks to Tony Edgin of iPlant for these SQL fixes (svn commmit
r5537).  (I had mistyped his name in the previous commit).


git-svn-id: svn://irodssvn.ucsd.edu/trunk@5538 ea137bd6-aa86-47b6-b90d-b101d9f19a90