Changeset 38134 for trunk/ippTools
- Timestamp:
- Apr 16, 2015, 2:01:54 PM (11 years ago)
- Location:
- trunk/ippTools
- Files:
-
- 1 added
- 4 edited
-
share/Makefile.am (modified) (1 diff)
-
share/pstamptool_listuser.sql (added)
-
src/pstamptool.c (modified) (3 diffs)
-
src/pstamptool.h (modified) (1 diff)
-
src/pstamptoolConfig.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/share/Makefile.am
r38080 r38134 347 347 pstamptool_listjob.sql \ 348 348 pstamptool_listfile.sql \ 349 pstamptool_listuser.sql \ 349 350 pstamptool_pendingcleanup.sql \ 350 351 pstamptool_pendingdependent.sql \ -
trunk/ippTools/src/pstamptool.c
r38009 r38134 60 60 static bool listfileMode(pxConfig *config); 61 61 static bool deletefileMode(pxConfig *config); 62 63 static bool listdomainMode(pxConfig *config); 64 static bool listuserMode(pxConfig * config); 62 65 63 66 # define MODECASE(caseName, func) \ … … 110 113 MODECASE(PSTAMPTOOL_MODE_LISTFILE, listfileMode); 111 114 MODECASE(PSTAMPTOOL_MODE_DELETEFILE, deletefileMode); 115 116 MODECASE(PSTAMPTOOL_MODE_LISTDOMAIN, listdomainMode); 117 MODECASE(PSTAMPTOOL_MODE_LISTUSER, listuserMode); 112 118 113 119 default: … … 1702 1708 return true; 1703 1709 } 1710 1711 static bool listdomainMode(pxConfig *config) 1712 { 1713 PS_ASSERT_PTR_NON_NULL(config, false); 1714 1715 psMetadata *where = psMetadataAlloc(); 1716 PXOPT_COPY_STR(config->args, where, "-domain", "domainName", "="); 1717 PXOPT_COPY_S32(config->args, where, "-access_level", "accessLevel", "="); 1718 1719 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1720 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1721 1722 psString query = psStringCopy("SELECT * from pstampUserDomain"); 1723 1724 if (psListLength(where->list)) { 1725 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1726 psStringAppend(&query, " WHERE %s", whereClause); 1727 psFree(whereClause); 1728 } 1729 psFree(where); 1730 1731 // treat limit == 0 as "no limit" 1732 if (limit) { 1733 psString limitString = psDBGenerateLimitSQL(limit); 1734 psStringAppend(&query, " %s", limitString); 1735 psFree(limitString); 1736 } 1737 1738 if (!p_psDBRunQuery(config->dbh, query)) { 1739 psError(PS_ERR_UNKNOWN, false, "database error"); 1740 psFree(query); 1741 return false; 1742 } 1743 psFree(query); 1744 1745 psArray *output = p_psDBFetchResult(config->dbh); 1746 if (!output) { 1747 psError(PS_ERR_UNKNOWN, false, "database error"); 1748 return false; 1749 } 1750 if (!psArrayLength(output)) { 1751 psFree(output); 1752 return true; 1753 } 1754 1755 // negative simple so the default is true 1756 if (!ippdbPrintMetadatas(stdout, output, "pstampUserDomain", !simple)) { 1757 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1758 psFree(output); 1759 return false; 1760 } 1761 1762 psFree(output); 1763 1764 return true; 1765 } 1766 static bool listuserMode(pxConfig *config) 1767 { 1768 PS_ASSERT_PTR_NON_NULL(config, false); 1769 1770 psMetadata *where = psMetadataAlloc(); 1771 PXOPT_COPY_STR(config->args, where, "-user", "userName", "="); 1772 PXOPT_COPY_STR(config->args, where, "-domain", "domainName", "="); 1773 PXOPT_COPY_S32(config->args, where, "-access_level", "pstampUser.accessLevel", "="); 1774 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1775 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1776 1777 if (!psListLength(where->list)) { 1778 psError(PS_ERR_UNKNOWN, true, "search paramters are required"); 1779 return false; 1780 } 1781 1782 psString query = pxDataGet("pstamptool_listuser.sql"); 1783 1784 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1785 psStringAppend(&query, " WHERE %s", whereClause); 1786 psFree(whereClause); 1787 psFree(where); 1788 1789 // treat limit == 0 as "no limit" 1790 if (limit) { 1791 psString limitString = psDBGenerateLimitSQL(limit); 1792 psStringAppend(&query, " %s", limitString); 1793 psFree(limitString); 1794 } 1795 1796 if (!p_psDBRunQuery(config->dbh, query)) { 1797 psError(PS_ERR_UNKNOWN, false, "database error"); 1798 psFree(query); 1799 return false; 1800 } 1801 psFree(query); 1802 1803 psArray *output = p_psDBFetchResult(config->dbh); 1804 if (!output) { 1805 psError(PS_ERR_UNKNOWN, false, "database error"); 1806 return false; 1807 } 1808 if (!psArrayLength(output)) { 1809 psFree(output); 1810 return true; 1811 } 1812 1813 // negative simple so the default is true 1814 if (!ippdbPrintMetadatas(stdout, output, "pstampUser", !simple)) { 1815 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1816 psFree(output); 1817 return false; 1818 } 1819 1820 psFree(output); 1821 1822 return true; 1823 } 1704 1824 # endif -
trunk/ippTools/src/pstamptool.h
r32786 r38134 53 53 PSTAMPTOOL_MODE_LISTFILE, 54 54 PSTAMPTOOL_MODE_DELETEFILE, 55 56 PSTAMPTOOL_MODE_ADDUSER, 57 PSTAMPTOOL_MODE_UPDATEUSER, 58 PSTAMPTOOL_MODE_LISTUSER, 59 // PSTAMPTOOL_MODE_GETUSERINFO, 60 61 PSTAMPTOOL_MODE_ADDDOMAIN, 62 PSTAMPTOOL_MODE_UPDATEDOMAIN, 63 PSTAMPTOOL_MODE_LISTDOMAIN, 64 65 PSTAMPTOOL_MODE_ADDACCESSLEVEL, 66 PSTAMPTOOL_MODE_UPDATEACCESSLEVEL, 67 PSTAMPTOOL_MODE_LISTACCCESSLEVEL, 55 68 } pstamptoolMode; 56 69 -
trunk/ippTools/src/pstamptoolConfig.c
r35673 r38134 303 303 psMetadataAddS64(deletefileArgs, PS_LIST_TAIL, "-job_id", 0, "select by job ID (required)", 0); 304 304 305 // -adduserdomain 306 psMetadata *adduserdomainArgs = psMetadataAlloc(); 307 psMetadataAddStr(adduserdomainArgs, PS_LIST_TAIL, "-domain", 0, "define domain name (required)", NULL); 308 psMetadataAddS32(adduserdomainArgs, PS_LIST_TAIL, "-access_level", 0, "define default access level for users in this domain (required)", 0); 309 psMetadataAddStr(adduserdomainArgs, PS_LIST_TAIL, "-default_product", 0, "define default data store product for users in this domain", NULL); 310 psMetadataAddStr(adduserdomainArgs, PS_LIST_TAIL, "-default_label", 0, "define default label for requests from users in this domain", NULL); 311 312 // -listdomain 313 psMetadata *listdomainArgs = psMetadataAlloc(); 314 psMetadataAddStr(listdomainArgs, PS_LIST_TAIL, "-domain", 0, "define domain name", NULL); 315 psMetadataAddS32(listdomainArgs, PS_LIST_TAIL, "-access_level", 0, "select by access level", 0); 316 psMetadataAddU64(listdomainArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 317 psMetadataAddBool(listdomainArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 318 319 // -adduser 320 psMetadata *adduserArgs = psMetadataAlloc(); 321 psMetadataAddStr(adduserArgs, PS_LIST_TAIL, "-user", 0, "define user name (required)", NULL); 322 psMetadataAddStr(adduserArgs, PS_LIST_TAIL, "-domain", 0, "define user's domain name (required)", NULL); 323 psMetadataAddS32(adduserArgs, PS_LIST_TAIL, "-access_level", 0, "define maximum access level for this user (required)", 0); 324 psMetadataAddStr(adduserArgs, PS_LIST_TAIL, "-default_product", 0, "define default data store product for this user", NULL); 325 psMetadataAddStr(adduserArgs, PS_LIST_TAIL, "-default_label", 0, "define default label for requests from this user", NULL); 326 327 // -listuser 328 psMetadata *listuserArgs = psMetadataAlloc(); 329 psMetadataAddStr(listuserArgs, PS_LIST_TAIL, "-user", 0, "select by user name", NULL); 330 psMetadataAddStr(listuserArgs, PS_LIST_TAIL, "-domain", 0, "select by user's domain name", NULL); 331 psMetadataAddS32(listuserArgs, PS_LIST_TAIL, "-access_level", 0, "select by maximum access level", 0); 332 psMetadataAddU64(listuserArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 333 psMetadataAddBool(listuserArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 334 305 335 PXOPT_ADD_MODE("-addreq", "", PSTAMPTOOL_MODE_ADDREQ, addreqArgs); 306 336 PXOPT_ADD_MODE("-pendingreq", "", PSTAMPTOOL_MODE_PENDINGREQ, pendingreqArgs); … … 334 364 PXOPT_ADD_MODE("-listfile", "", PSTAMPTOOL_MODE_LISTFILE, listfileArgs); 335 365 PXOPT_ADD_MODE("-deletefile", "", PSTAMPTOOL_MODE_DELETEFILE, deletefileArgs); 366 367 PXOPT_ADD_MODE("-listdomain", "", PSTAMPTOOL_MODE_LISTDOMAIN, listdomainArgs); 368 PXOPT_ADD_MODE("-listuser", "", PSTAMPTOOL_MODE_LISTUSER, listuserArgs); 336 369 337 370 if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Note:
See TracChangeset
for help on using the changeset viewer.
