Changeset 23842
- Timestamp:
- Apr 13, 2009, 4:32:41 PM (17 years ago)
- Location:
- trunk/ippTools
- Files:
-
- 1 added
- 6 edited
-
share/Makefile.am (modified) (1 diff)
-
share/disttool_pendingfileset.sql (added)
-
share/disttool_processedcomponent.sql (modified) (1 diff)
-
share/pxadmin_create_tables.sql (modified) (2 diffs)
-
src/disttool.c (modified) (3 diffs)
-
src/disttool.h (modified) (1 diff)
-
src/disttoolConfig.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/share/Makefile.am
r23774 r23842 100 100 disttool_definebyquery_warp.sql \ 101 101 disttool_pendingcomponent.sql \ 102 disttool_pendingfileset.sql \ 102 103 disttool_processedcomponent.sql \ 103 104 disttool_revertrun_update.sql \ -
trunk/ippTools/share/disttool_processedcomponent.sql
r23246 r23842 1 SELECT * 2 FROM distComponent 1 SELECT 2 dist_id, 3 target_id, 4 stage, 5 stage_id, 6 component, 7 CONCAT_WS('.', outroot, CONVERT(dist_id, CHAR)) as outdir, 8 bytes, 9 md5sum, 10 name, 11 distComponent.state, 12 distComponent.fault 13 FROM distRun 14 JOIN distComponent USING(dist_id) -
trunk/ippTools/share/pxadmin_create_tables.sql
r23776 r23842 1250 1250 dbname VARCHAR(64), 1251 1251 dbhost VARCHAR(64), 1252 prod_root VARCHAR(255),1253 1252 PRIMARY KEY(prod_id) 1254 1253 ) ENGINE=innodb DEFAULT CHARSET=latin1; … … 1281 1280 dist_id BIGINT, 1282 1281 prod_id BIGINT, 1283 name VARCHAR( 64),1282 name VARCHAR(255), 1284 1283 state VARCHAR(64), 1285 1284 registered TIMESTAMP DEFAULT CURRENT_TIMESTAMP, 1286 PRIMARY KEY(fs_id), 1285 fault SMALLINT DEFAULT 0, 1286 PRIMARY KEY(dist_id, prod_id), 1287 KEY(fs_id), 1287 1288 FOREIGN KEY(dist_id) REFERENCES distRun(dist_id), 1288 1289 FOREIGN KEY(prod_id) REFERENCES rcDSProduct(prod_id) 1290 -- KEY(dist_id, prod_id) 1289 1291 ) ENGINE=innodb DEFAULT CHARSET=latin1; 1290 1292 -
trunk/ippTools/src/disttool.c
r23783 r23842 39 39 static bool processedcomponentMode(pxConfig *config); 40 40 static bool toadvanceMode(pxConfig *config); 41 static bool pendingfilesetMode(pxConfig *config); 42 static bool addfilesetMode(pxConfig *config); 41 43 42 44 # define MODECASE(caseName, func) \ … … 67 69 MODECASE(DISTTOOL_MODE_PROCESSEDCOMPONENT, processedcomponentMode); 68 70 MODECASE(DISTTOOL_MODE_TOADVANCE, toadvanceMode); 71 MODECASE(DISTTOOL_MODE_PENDINGFILESET, pendingfilesetMode); 72 MODECASE(DISTTOOL_MODE_ADDFILESET, addfilesetMode); 69 73 default: 70 74 psAbort("invalid option (this should not happen)"); … … 790 794 return true; 791 795 } 796 797 static bool pendingfilesetMode(pxConfig *config) 798 { 799 PS_ASSERT_PTR_NON_NULL(config, false); 800 801 psMetadata *where = psMetadataAlloc(); 802 PXOPT_COPY_S64(config->args, where, "-dist_id", "dist_id", "=="); 803 PXOPT_COPY_STR(config->args, where, "-label", "label", "=="); 804 805 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 806 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 807 808 // look for "inputs" that need to processed 809 psString query = pxDataGet("disttool_pendingfileset.sql"); 810 if (!query) { 811 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 812 return false; 813 } 814 815 if (psListLength(where->list)) { 816 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 817 psStringAppend(&query, " AND %s", whereClause); 818 psFree(whereClause); 819 } 820 psFree(where); 821 822 // treat limit == 0 as "no limit" 823 if (limit) { 824 psString limitString = psDBGenerateLimitSQL(limit); 825 psStringAppend(&query, " %s", limitString); 826 psFree(limitString); 827 } 828 829 if (!p_psDBRunQuery(config->dbh, query)) { 830 psError(PS_ERR_UNKNOWN, false, "database error"); 831 psFree(query); 832 return false; 833 } 834 psFree(query); 835 836 psArray *output = p_psDBFetchResult(config->dbh); 837 if (!output) { 838 psErrorCode err = psErrorCodeLast(); 839 switch (err) { 840 case PS_ERR_DB_CLIENT: 841 psError(PXTOOLS_ERR_SYS, false, "database error"); 842 case PS_ERR_DB_SERVER: 843 psError(PXTOOLS_ERR_PROG, false, "database error"); 844 default: 845 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 846 } 847 848 return false; 849 } 850 if (!psArrayLength(output)) { 851 psTrace("disttool", PS_LOG_INFO, "no rows found"); 852 psFree(output); 853 return true; 854 } 855 856 if (psArrayLength(output)) { 857 // negative simple so the default is true 858 if (!ippdbPrintMetadatas(stdout, output, "pendingfileset", !simple)) { 859 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 860 psFree(output); 861 return false; 862 } 863 } 864 865 psFree(output); 866 867 return true; 868 } 869 static bool addfilesetMode(pxConfig *config) 870 { 871 872 // required values 873 PXOPT_LOOKUP_S64(dist_id, config->args, "-dist_id", true, false); 874 PXOPT_LOOKUP_S64(prod_id, config->args, "-prod_id", true, false); 875 876 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 877 878 // unless fault code is set require name 879 PXOPT_LOOKUP_STR(name, config->args, "-name", fault == 0, false); 880 881 if (!rcDSFilesetInsert(config->dbh, 882 0, // fs_id 883 dist_id, 884 prod_id, 885 name, 886 "full", 887 fault)) { 888 psError(PS_ERR_UNKNOWN, false, "database error"); 889 return false; 890 } 891 892 return true; 893 } 894 -
trunk/ippTools/src/disttool.h
r23247 r23842 33 33 DISTTOOL_MODE_PROCESSEDCOMPONENT, 34 34 DISTTOOL_MODE_TOADVANCE, 35 DISTTOOL_MODE_PENDINGFILESET, 36 DISTTOOL_MODE_ADDFILESET, 35 37 } disttoolMode; 36 38 -
trunk/ippTools/src/disttoolConfig.c
r23765 r23842 124 124 psMetadataAddBool(toadvanceArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 125 125 126 // -pendingfileset 127 psMetadata *pendingfilesetArgs = psMetadataAlloc(); 128 psMetadataAddS64(pendingfilesetArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 129 psMetadataAddStr(pendingfilesetArgs, PS_LIST_TAIL, "-label", 0, "limit results to label", NULL); 130 psMetadataAddStr(pendingfilesetArgs, PS_LIST_TAIL, "-stage", 0, "limit results to runs for stage", NULL); 131 psMetadataAddU64(pendingfilesetArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 132 psMetadataAddBool(pendingfilesetArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 133 134 // -addfileset 135 psMetadata *addfilesetArgs = psMetadataAlloc(); 136 psMetadataAddS64(addfilesetArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0); 137 psMetadataAddS64(addfilesetArgs, PS_LIST_TAIL, "-prod_id", 0, "define prod_id", 0); 138 psMetadataAddStr(addfilesetArgs, PS_LIST_TAIL, "-name", 0, "define file name", NULL); 139 psMetadataAddS32(addfilesetArgs, PS_LIST_TAIL, "-fault", 0, "define fault code", 0); 126 140 psMetadata *argSets = psMetadataAlloc(); 127 141 psMetadata *modes = psMetadataAlloc(); … … 135 149 PXOPT_ADD_MODE("-processedcomponent", "", DISTTOOL_MODE_PROCESSEDCOMPONENT, processedcomponentArgs); 136 150 PXOPT_ADD_MODE("-toadvance", "", DISTTOOL_MODE_TOADVANCE, toadvanceArgs); 151 PXOPT_ADD_MODE("-pendingfileset", "", DISTTOOL_MODE_PENDINGFILESET, pendingfilesetArgs); 152 PXOPT_ADD_MODE("-addfileset", "", DISTTOOL_MODE_ADDFILESET, addfilesetArgs); 137 153 138 154 if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Note:
See TracChangeset
for help on using the changeset viewer.
