Changeset 26088
- Timestamp:
- Nov 10, 2009, 12:18:24 PM (16 years ago)
- Location:
- trunk/ippTools/src
- Files:
-
- 3 edited
-
disttool.c (modified) (4 diffs)
-
disttool.h (modified) (1 diff)
-
disttoolConfig.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/src/disttool.c
r26015 r26088 42 42 static bool addfilesetMode(pxConfig *config); 43 43 static bool revertfilesetMode(pxConfig *config); 44 static bool updatefilesetMode(pxConfig *config); 44 45 static bool queuercrunMode(pxConfig *config); 45 46 static bool updatercrunMode(pxConfig *config); 46 47 static bool revertrcrunMode(pxConfig *config); 47 48 static bool pendingdestMode(pxConfig *config); 49 static bool pendingcleanupMode(pxConfig *config); 50 static bool listfilesetsMode(pxConfig *config); 48 51 49 52 static bool definetargetMode(pxConfig *config); … … 86 89 MODECASE(DISTTOOL_MODE_TOADVANCE, toadvanceMode); 87 90 MODECASE(DISTTOOL_MODE_PENDINGFILESET, pendingfilesetMode); 91 MODECASE(DISTTOOL_MODE_PENDINGCLEANUP, pendingcleanupMode); 88 92 MODECASE(DISTTOOL_MODE_ADDFILESET, addfilesetMode); 89 93 MODECASE(DISTTOOL_MODE_REVERTFILESET, revertfilesetMode); 94 MODECASE(DISTTOOL_MODE_LISTFILESETS, listfilesetsMode); 95 MODECASE(DISTTOOL_MODE_UPDATEFILESET, updatefilesetMode); 90 96 MODECASE(DISTTOOL_MODE_QUEUERCRUN, queuercrunMode); 91 97 MODECASE(DISTTOOL_MODE_UPDATERCRUN, updatercrunMode); … … 910 916 return true; 911 917 } 918 912 919 static bool revertfilesetMode(pxConfig *config) 913 920 { … … 1716 1723 return true; 1717 1724 } 1725 static bool pendingcleanupMode(pxConfig *config) 1726 { 1727 PS_ASSERT_PTR_NON_NULL(config, false); 1728 1729 psMetadata *where = psMetadataAlloc(); 1730 PXOPT_COPY_S64(config->args, where, "-dist_id", "dist_id", "=="); 1731 PXOPT_COPY_STR(config->args, where, "-stage", "stage", "=="); 1732 pxAddLabelSearchArgs (config, where, "-label", "distRun.label", "=="); 1733 1734 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1735 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1736 1737 if (!psListLength(where->list)) { 1738 psFree(where); 1739 psError(PXTOOLS_ERR_DATA, false, "search parameters are required"); 1740 return false; 1741 } 1742 1743 psString query = pxDataGet("disttool_pendingcleanup.sql"); 1744 1745 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1746 psStringAppend(&query, " AND %s", whereClause); 1747 psFree(whereClause); 1748 psFree(where); 1749 1750 // treat limit == 0 as "no limit" 1751 if (limit) { 1752 psString limitString = psDBGenerateLimitSQL(limit); 1753 psStringAppend(&query, " %s", limitString); 1754 psFree(limitString); 1755 } 1756 1757 if (!p_psDBRunQuery(config->dbh, query)) { 1758 psError(PS_ERR_UNKNOWN, false, "database error"); 1759 psFree(query); 1760 if (!psDBRollback(config->dbh)) { 1761 psError(PS_ERR_UNKNOWN, false, "database error"); 1762 } 1763 return false; 1764 } 1765 psFree(query); 1766 1767 psArray *output = p_psDBFetchResult(config->dbh); 1768 if (!output) { 1769 psError(PS_ERR_UNKNOWN, false, "database error"); 1770 return false; 1771 } 1772 if (!psArrayLength(output)) { 1773 psTrace("disttool", PS_LOG_INFO, "no rows found"); 1774 psFree(output); 1775 return true; 1776 } 1777 1778 if (!ippdbPrintMetadatas(stdout, output, "distToCleanup", !simple)) { 1779 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1780 psFree(output); 1781 return false; 1782 } 1783 1784 psFree(output); 1785 1786 return true; 1787 } 1788 static bool listfilesetsMode(pxConfig *config) 1789 { 1790 PS_ASSERT_PTR_NON_NULL(config, false); 1791 1792 psMetadata *where = psMetadataAlloc(); 1793 PXOPT_COPY_S64(config->args, where, "-dist_id", "dist_id", "=="); 1794 PXOPT_COPY_S64(config->args, where, "-int_id", "int_id", "=="); 1795 PXOPT_COPY_S64(config->args, where, "-dest_id", "dest_id", "=="); 1796 PXOPT_COPY_STR(config->args, where, "-dest_name", "name", "=="); 1797 PXOPT_COPY_S64(config->args, where, "-target_id", "target_id", "=="); 1798 PXOPT_COPY_STR(config->args, where, "-stage", "stage", "=="); 1799 PXOPT_COPY_STR(config->args, where, "-dist_group", "dist_group", "LIKE"); 1800 PXOPT_COPY_STR(config->args, where, "-filter", "filter", "LIKE"); 1801 PXOPT_COPY_STR(config->args, where, "-state", "state", "=="); 1802 1803 PXOPT_LOOKUP_BOOL(clean, config->args, "-clean", false); 1804 PXOPT_LOOKUP_BOOL(full, config->args, "-full", false); 1805 1806 pxAddLabelSearchArgs (config, where, "-label", "distRun.label", "=="); 1807 1808 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1809 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1810 1811 if (!psListLength(where->list)) { 1812 psFree(where); 1813 psError(PXTOOLS_ERR_DATA, false, "search parameters are required"); 1814 return false; 1815 } 1816 1817 psString query = pxDataGet("disttool_listfilesets.sql"); 1818 1819 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1820 psStringAppend(&query, " WHERE %s", whereClause); 1821 psFree(whereClause); 1822 psFree(where); 1823 1824 // treat limit == 0 as "no limit" 1825 if (limit) { 1826 psString limitString = psDBGenerateLimitSQL(limit); 1827 psStringAppend(&query, " %s", limitString); 1828 psFree(limitString); 1829 } 1830 1831 if (!p_psDBRunQuery(config->dbh, query)) { 1832 psError(PS_ERR_UNKNOWN, false, "database error"); 1833 psFree(query); 1834 if (!psDBRollback(config->dbh)) { 1835 psError(PS_ERR_UNKNOWN, false, "database error"); 1836 } 1837 return false; 1838 } 1839 psFree(query); 1840 1841 psArray *output = p_psDBFetchResult(config->dbh); 1842 if (!output) { 1843 psError(PS_ERR_UNKNOWN, false, "database error"); 1844 return false; 1845 } 1846 if (!psArrayLength(output)) { 1847 psTrace("disttool", PS_LOG_INFO, "no rows found"); 1848 psFree(output); 1849 return true; 1850 } 1851 1852 if (!ippdbPrintMetadatas(stdout, output, "distFilesets", !simple)) { 1853 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1854 psFree(output); 1855 return false; 1856 } 1857 1858 psFree(output); 1859 1860 return true; 1861 } 1862 static bool updatefilesetMode(pxConfig *config) 1863 { 1864 psMetadata *where = psMetadataAlloc(); 1865 PXOPT_COPY_S64(config->args, where, "-fs_id", "fs_id", "=="); 1866 1867 if (!psListLength(where->list)) { 1868 psFree(where); 1869 psError(PXTOOLS_ERR_DATA, false, "search parameters are required"); 1870 return false; 1871 } 1872 1873 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false); 1874 1875 // We don't use PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); here 1876 // because we want -fault 0 to work 1877 bool gotFault = false; 1878 psS16 fault = psMetadataLookupS16(&gotFault, config->args, "-fault"); 1879 1880 if ((!state) && (!gotFault)) { 1881 psError(PXTOOLS_ERR_DATA, false, "parameters (-fault or -set_state) is required"); 1882 psFree(where); 1883 return false; 1884 } 1885 1886 psString query = psStringCopy("UPDATE rcDSFileset SET "); 1887 1888 if (state) { 1889 psStringAppend(&query, " state = '%s'", state); 1890 } 1891 1892 if (gotFault) { 1893 psStringAppend(&query, "%s fault = %d", state ? ", " : "", fault); 1894 } 1895 1896 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1897 psStringAppend(&query, " WHERE %s", whereClause); 1898 psFree(whereClause); 1899 psFree(where); 1900 1901 if (!p_psDBRunQuery(config->dbh, query)) { 1902 psError(PS_ERR_UNKNOWN, false, "database error"); 1903 psFree(query); 1904 return false; 1905 } 1906 1907 return true; 1908 } -
trunk/ippTools/src/disttool.h
r25835 r26088 33 33 DISTTOOL_MODE_PROCESSEDCOMPONENT, 34 34 DISTTOOL_MODE_TOADVANCE, 35 DISTTOOL_MODE_PENDINGCLEANUP, 35 36 DISTTOOL_MODE_PENDINGFILESET, 36 37 DISTTOOL_MODE_ADDFILESET, 37 38 DISTTOOL_MODE_REVERTFILESET, 39 DISTTOOL_MODE_LISTFILESETS, 40 DISTTOOL_MODE_UPDATEFILESET, 38 41 DISTTOOL_MODE_QUEUERCRUN, 39 42 DISTTOOL_MODE_UPDATERCRUN, -
trunk/ippTools/src/disttoolConfig.c
r26015 r26088 94 94 psMetadataAddBool(pendingcomponentArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 95 95 96 // -pendingcleanup 97 psMetadata *pendingcleanupArgs = psMetadataAlloc(); 98 psMetadataAddS64(pendingcleanupArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 99 psMetadataAddStr(pendingcleanupArgs, PS_LIST_TAIL, "-stage", 0, "limit results to runs for stage", NULL); 100 psMetadataAddStr(pendingcleanupArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "limit results to label", NULL); 101 psMetadataAddU64(pendingcleanupArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 102 psMetadataAddBool(pendingcleanupArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 103 96 104 97 105 // -addprocessedcomponent … … 143 151 psMetadataAddS64(addfilesetArgs, PS_LIST_TAIL, "-dest_id", 0, "define dest_id", 0); 144 152 psMetadataAddStr(addfilesetArgs, PS_LIST_TAIL, "-name", 0, "define file name", NULL); 145 psMetadataAddS32(addfilesetArgs, PS_LIST_TAIL, "-fault", 0, "define fault code", 0); 153 154 // -updatefileset 155 psMetadata *updatefilesetArgs = psMetadataAlloc(); 156 psMetadataAddS64(updatefilesetArgs, PS_LIST_TAIL, "-fs_id", 0, "define fs_id", 0); 157 // psMetadataAddS64(updatefilesetArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 158 psMetadataAddStr(updatefilesetArgs, PS_LIST_TAIL, "-set_state",0, "new value for state", NULL); 159 psMetadataAddS32(updatefilesetArgs, PS_LIST_TAIL, "-fault", 0, "define fault code", 0); 146 160 147 161 // -pendingdest … … 163 177 psMetadataAddS16(revertfilesetArgs, PS_LIST_TAIL, "-fault", 0, "define fault code", 0); 164 178 psMetadataAddBool(revertfilesetArgs, PS_LIST_TAIL, "-all", 0, "revert all faulted runs", NULL); 179 180 // -listfileset 181 psMetadata *listfilesetsArgs = psMetadataAlloc(); 182 psMetadataAddS64(listfilesetsArgs, PS_LIST_TAIL, "-dist_id", 0, "list filesets with dist_id", 0); 183 psMetadataAddS64(listfilesetsArgs, PS_LIST_TAIL, "-target_id", 0, "list filesets with target_id", 0); 184 psMetadataAddS64(listfilesetsArgs, PS_LIST_TAIL, "-dest_id", 0, "list filesets with dest_id", 0); 185 psMetadataAddS64(listfilesetsArgs, PS_LIST_TAIL, "-int_id", 0, "list filesets with int_id", 0); 186 psMetadataAddStr(listfilesetsArgs, PS_LIST_TAIL, "-dest_name", 0, "list filesets for destinationn name)", NULL); 187 psMetadataAddStr(listfilesetsArgs, PS_LIST_TAIL, "-dist_group", 0, "list filesets for dist_group (LIKE comparison)", NULL); 188 psMetadataAddStr(listfilesetsArgs, PS_LIST_TAIL, "-filter", 0, "list filesets by filter (LIKE comparison)", NULL); 189 psMetadataAddStr(listfilesetsArgs, PS_LIST_TAIL, "-stage", 0, "list filesets for stage", NULL); 190 psMetadataAddBool(listfilesetsArgs, PS_LIST_TAIL,"-clean", 0, "list clean filesets", false); 191 psMetadataAddBool(listfilesetsArgs, PS_LIST_TAIL,"-full", 0, "list full filesets", false); 192 psMetadataAddStr(listfilesetsArgs, PS_LIST_TAIL, "-state", 0, "list filesets in state", NULL); 193 psMetadataAddStr(listfilesetsArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "limit results to label", NULL); 194 psMetadataAddU64(listfilesetsArgs, PS_LIST_TAIL, "-limit", 0, "limit number of filesets listed to N", 0); 195 psMetadataAddBool(listfilesetsArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 165 196 166 197 // -queuercrun … … 287 318 PXOPT_ADD_MODE("-processedcomponent", "", DISTTOOL_MODE_PROCESSEDCOMPONENT, processedcomponentArgs); 288 319 PXOPT_ADD_MODE("-toadvance", "", DISTTOOL_MODE_TOADVANCE, toadvanceArgs); 320 PXOPT_ADD_MODE("-pendingcleanup", "", DISTTOOL_MODE_PENDINGCLEANUP, pendingcleanupArgs); 289 321 PXOPT_ADD_MODE("-pendingfileset", "", DISTTOOL_MODE_PENDINGFILESET, pendingfilesetArgs); 290 322 PXOPT_ADD_MODE("-addfileset", "", DISTTOOL_MODE_ADDFILESET, addfilesetArgs); 323 PXOPT_ADD_MODE("-updatefileset", "", DISTTOOL_MODE_UPDATEFILESET, updatefilesetArgs); 324 PXOPT_ADD_MODE("-listfilesets", "", DISTTOOL_MODE_LISTFILESETS, listfilesetsArgs); 291 325 PXOPT_ADD_MODE("-revertfileset", "", DISTTOOL_MODE_REVERTFILESET, revertfilesetArgs); 292 326 PXOPT_ADD_MODE("-queuercrun", "", DISTTOOL_MODE_QUEUERCRUN, queuercrunArgs);
Note:
See TracChangeset
for help on using the changeset viewer.
