Changeset 18526
- Timestamp:
- Jul 14, 2008, 6:21:12 PM (18 years ago)
- Location:
- trunk/ippTools
- Files:
-
- 3 added
- 1 deleted
- 4 edited
-
share/Makefile.am (modified) (1 diff)
-
share/magictool_addmask.sql (added)
-
share/magictool_inputs.sql (added)
-
share/magictool_mask.sql (added)
-
share/magictool_node.sql (deleted)
-
src/magictool.c (modified) (4 diffs)
-
src/magictool.h (modified) (1 diff)
-
src/magictoolConfig.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/share/Makefile.am
r18524 r18526 70 70 magictool_toprocess_tree.sql \ 71 71 magictool_toskyfilemask.sql \ 72 magictool_node.sql \ 72 magictool_inputs.sql \ 73 magictool_addmask.sql \ 74 magictool_mask.sql \ 73 75 pxadmin_create_tables.sql \ 74 76 pxadmin_drop_tables.sql \ -
trunk/ippTools/src/magictool.c
r18525 r18526 43 43 static bool tomaskMode(pxConfig *config); 44 44 static bool addmaskMode(pxConfig *config); 45 static bool maskMode(pxConfig *config); 45 46 46 47 static bool setmagicRunState(pxConfig *config, psS64 magic_id, const char *state); … … 77 78 MODECASE(MAGICTOOL_MODE_TOMASK, tomaskMode); 78 79 MODECASE(MAGICTOOL_MODE_ADDMASK, addmaskMode); 80 MODECASE(MAGICTOOL_MODE_MASK, maskMode); 79 81 default: 80 82 psAbort("invalid option (this should not happen)"); … … 878 880 PXOPT_LOOKUP_S16(code, config->args, "-code", false, false); 879 881 882 if (!psDBTransaction(config->dbh)) { 883 psError(PS_ERR_UNKNOWN, false, "database error"); 884 return false; 885 } 886 880 887 if (!magicMaskInsert(config->dbh, 881 888 (psS64)atoll(magic_id), … … 887 894 return false; 888 895 } 896 897 // Set the magicRun state 898 psString query = pxDataGet("magictool_addmask.sql"); 899 if (!query) { 900 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 901 return false; 902 } 903 904 // Add "magic_id = value" 905 psString whereClause = psDBGenerateWhereConditionSQL(config->where, NULL); 906 psStringAppend(&query, " AND %s", whereClause); 907 psFree(whereClause); 908 909 if (!p_psDBRunQuery(config->dbh, query)) { 910 psError(PS_ERR_UNKNOWN, false, "database error"); 911 psFree(query); 912 return false; 913 } 914 psFree(query); 915 916 if (!psDBCommit(config->dbh)) { 917 psError(PS_ERR_UNKNOWN, false, "database error"); 918 return false; 919 } 920 921 return true; 922 } 923 924 925 static bool maskMode(pxConfig *config) 926 { 927 PS_ASSERT_PTR_NON_NULL(config, false); 928 929 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 930 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 931 932 psString query = pxDataGet("magictool_mask.sql"); 933 if (!query) { 934 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 935 return false; 936 } 937 938 if (config->where) { 939 psString whereClause = psDBGenerateWhereConditionSQL(config->where, NULL); 940 psStringAppend(&query, " AND %s", whereClause); 941 psFree(whereClause); 942 } 943 944 // treat limit == 0 as "no limit" 945 if (limit) { 946 psString limitString = psDBGenerateLimitSQL(limit); 947 psStringAppend(&query, " %s", limitString); 948 psFree(limitString); 949 } 950 951 if (!p_psDBRunQuery(config->dbh, query)) { 952 psError(PS_ERR_UNKNOWN, false, "database error"); 953 psFree(query); 954 return false; 955 } 956 psFree(query); 957 958 psArray *output = p_psDBFetchResult(config->dbh); 959 if (!output) { 960 psErrorCode err = psErrorCodeLast(); 961 switch (err) { 962 case PS_ERR_DB_CLIENT: 963 psError(PXTOOLS_ERR_SYS, false, "database error"); 964 case PS_ERR_DB_SERVER: 965 psError(PXTOOLS_ERR_PROG, false, "database error"); 966 default: 967 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 968 } 969 970 return false; 971 } 972 if (!psArrayLength(output)) { 973 psTrace("magictool", PS_LOG_INFO, "no rows found"); 974 psFree(output); 975 return true; 976 } 977 978 if (psArrayLength(output)) { 979 // negative simple so the default is true 980 if (!ippdbPrintMetadatas(stdout, output, "magicNode", !simple)) { 981 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 982 psFree(output); 983 return false; 984 } 985 } 986 987 psFree(output); 889 988 890 989 return true; -
trunk/ippTools/src/magictool.h
r18524 r18526 33 33 MAGICTOOL_MODE_INPUTTREE, 34 34 MAGICTOOL_MODE_TOPROCESS, 35 MAGICTOOL_MODE_INPUTS, 35 36 MAGICTOOL_MODE_ADDRESULT, 36 MAGICTOOL_MODE_NODE,37 37 MAGICTOOL_MODE_TOMASK, 38 38 MAGICTOOL_MODE_ADDMASK, 39 MAGICTOOL_MODE_MASK, 39 40 } MAGICtoolMode; 40 41 -
trunk/ippTools/src/magictoolConfig.c
r18524 r18526 112 112 psMetadataAddS16(inputtreeArgs, PS_LIST_TAIL, "-code", 0, "set fault code", 0); 113 113 114 // - node115 psMetadata * nodeArgs = psMetadataAlloc();116 psMetadataAddStr( nodeArgs, PS_LIST_TAIL, "-magic_id", 0,114 // -inputs 115 psMetadata *inputsArgs = psMetadataAlloc(); 116 psMetadataAddStr(inputsArgs, PS_LIST_TAIL, "-magic_id", 0, 117 117 "search by magictool ID", NULL); 118 psMetadataAddStr( nodeArgs, PS_LIST_TAIL, "-node", 0,118 psMetadataAddStr(inputsArgs, PS_LIST_TAIL, "-node", 0, 119 119 "search by symbolic node name", NULL); 120 psMetadataAddU64( nodeArgs, PS_LIST_TAIL, "-limit", 0,121 "limit result set to N items", 0); 122 psMetadataAddBool( nodeArgs, PS_LIST_TAIL, "-simple", 0,120 psMetadataAddU64(inputsArgs, PS_LIST_TAIL, "-limit", 0, 121 "limit result set to N items", 0); 122 psMetadataAddBool(inputsArgs, PS_LIST_TAIL, "-simple", 0, 123 123 "use the simple output format", false); 124 124 … … 155 155 psMetadataAddStr(addmaskArgs, PS_LIST_TAIL, "-uri", 0, "define URI", NULL); 156 156 psMetadataAddS32(addmaskArgs, PS_LIST_TAIL, "-streaks", 0, "define number of streaks", 0); 157 psMetadataAddS16(addmaskArgs, PS_LIST_TAIL, "-code", 0, "set fault code", 0); 158 159 // -mask 160 psMetadata *maskArgs = psMetadataAlloc(); 161 psMetadataAddStr(maskArgs, PS_LIST_TAIL, "-magic_id", 0, "define magictool ID", NULL); 162 psMetadataAddU64(maskArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 163 psMetadataAddBool(maskArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 157 164 158 165 psFree(now); … … 169 176 PXOPT_ADD_MODE("-inputtree", "", MAGICTOOL_MODE_INPUTTREE, inputtreeArgs); 170 177 PXOPT_ADD_MODE("-toprocess", "", MAGICTOOL_MODE_TOPROCESS, toprocessArgs); 178 PXOPT_ADD_MODE("-inputs", "", MAGICTOOL_MODE_INPUTS, inputsArgs); 171 179 PXOPT_ADD_MODE("-addresult", "", MAGICTOOL_MODE_ADDRESULT, addresultArgs); 172 PXOPT_ADD_MODE("-node", "", MAGICTOOL_MODE_NODE, nodeArgs);173 180 PXOPT_ADD_MODE("-tomask", "", MAGICTOOL_MODE_TOMASK, tomaskArgs); 174 181 PXOPT_ADD_MODE("-addmask", "", MAGICTOOL_MODE_ADDMASK, addmaskArgs); 182 PXOPT_ADD_MODE("-mask", "", MAGICTOOL_MODE_MASK, maskArgs); 175 183 176 184 if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) { … … 219 227 psString str = NULL; 220 228 bool status = false; 221 if ((str = psMetadataLookupStr(&status, config->args, "- warp_id"))) {222 if (!psMetadataAddS64(config->where, PS_LIST_TAIL, " warp_id", 0, "==", (psS64)atoll(str))) {223 psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");229 if ((str = psMetadataLookupStr(&status, config->args, "-magic_id"))) { 230 if (!psMetadataAddS64(config->where, PS_LIST_TAIL, "magic_id", 0, "==", (psS64)atoll(str))) { 231 psError(PS_ERR_UNKNOWN, false, "failed to add item magic_id"); 224 232 psFree(config); 225 233 return NULL;
Note:
See TracChangeset
for help on using the changeset viewer.
