Changeset 19760
- Timestamp:
- Sep 25, 2008, 2:05:59 PM (18 years ago)
- Location:
- trunk
- Files:
-
- 8 edited
-
dbconfig/changes.txt (modified) (1 diff)
-
dbconfig/pstamp.md (modified) (1 diff)
-
ippTools/share/Makefile.am (modified) (1 diff)
-
ippTools/share/pxadmin_create_tables.sql (modified) (1 diff)
-
ippTools/share/pxadmin_drop_tables.sql (modified) (1 diff)
-
ippTools/src/pstamptool.c (modified) (3 diffs)
-
ippTools/src/pstamptool.h (modified) (1 diff)
-
ippTools/src/pstamptoolConfig.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/dbconfig/changes.txt
r19690 r19760 521 521 ALTER TABLE rawImfile ADD COLUMN moon_alt FLOAT AFTER moon_angle; 522 522 ALTER TABLE rawImfile ADD COLUMN moon_phase FLOAT AFTER moon_alt; 523 524 CREATE TABLE pstampProject ( 525 proj_id BIGINT AUTO_INCREMENT, 526 state VARCHAR(64), 527 dbname VARCHAR(64), 528 dvodb VARCHAR(64), 529 camera VARCHAR(64), 530 telescope VARCHAR(64), 531 need_magic TINYINT, 532 PRIMARY KEY(proj_id), 533 KEY(proj_id) 534 ) ENGINE=innodb DEFAULT CHARSET=latin1; 535 536 -
trunk/dbconfig/pstamp.md
r19223 r19760 5 5 outProduct STR 64 6 6 uri STR 255 7 END 8 9 pstampProject METADATA 10 proj_id S64 0 # Primary Key AUTO_INCREMENT 11 name STR 64 # UNIQUE 12 state STR 64 13 dbname STR 64 14 dvodb STR 64 15 camera STR 64 16 telescope STR 64 17 need_magic BOOL f 7 18 END 8 19 -
trunk/ippTools/share/Makefile.am
r19702 r19760 118 118 pstamptool_pendingjob.sql \ 119 119 pstamptool_pendingreq.sql \ 120 pstamptool_project.sql \ 120 121 pxadmin_create_tables.sql \ 121 122 pxadmin_drop_tables.sql \ -
trunk/ippTools/share/pxadmin_create_tables.sql
r19693 r19760 1047 1047 ) ENGINE=innodb DEFAULT CHARSET=latin1; 1048 1048 1049 CREATE TABLE pstampProject ( 1050 proj_id BIGINT AUTO_INCREMENT, 1051 name VARCHAR(64) UNIQUE, 1052 state VARCHAR(64), 1053 dbname VARCHAR(64), 1054 dvodb VARCHAR(64), 1055 camera VARCHAR(64), 1056 telescope VARCHAR(64), 1057 need_magic TINYINT, 1058 PRIMARY KEY(proj_id), 1059 KEY(proj_id) 1060 ) ENGINE=innodb DEFAULT CHARSET=latin1; 1061 1049 1062 CREATE TABLE pstampRequest ( 1050 1063 req_id BIGINT AUTO_INCREMENT, -
trunk/ippTools/share/pxadmin_drop_tables.sql
r19338 r19760 53 53 DROP TABLE IF EXISTS flatcorrCamLink; 54 54 DROP TABLE IF EXISTS pstampDataStore; 55 DROP TABLE IF EXISTS pstampProject; 55 56 DROP TABLE IF EXISTS pstampRequest; 56 57 DROP TABLE IF EXISTS pstampJob; -
trunk/ippTools/src/pstamptool.c
r19219 r19760 44 44 static bool pendingJobMode(pxConfig *config); 45 45 static bool updateJobMode(pxConfig *config); 46 static bool addProjectMode(pxConfig *config); 47 static bool projectMode(pxConfig *config); 48 static bool modProjectMode(pxConfig *config); 46 49 47 50 # define MODECASE(caseName, func) \ … … 77 80 MODECASE(PSTAMPTOOL_MODE_PENDINGJOB, pendingJobMode); 78 81 MODECASE(PSTAMPTOOL_MODE_UPDATEJOB, updateJobMode); 82 MODECASE(PSTAMPTOOL_MODE_ADDPROJECT, addProjectMode); 83 MODECASE(PSTAMPTOOL_MODE_MODPROJECT, modProjectMode); 84 MODECASE(PSTAMPTOOL_MODE_PROJECT, projectMode); 79 85 default: 80 86 psAbort("invalid option (this should not happen)"); … … 718 724 return true; 719 725 } 726 static bool addProjectMode(pxConfig *config) 727 { 728 PS_ASSERT_PTR_NON_NULL(config, false); 729 730 PXOPT_LOOKUP_STR(name, config->args, "-name", true, false); 731 PXOPT_LOOKUP_STR(state, config->args, "-state", false, false); 732 PXOPT_LOOKUP_STR(imagedb, config->args, "-imagedb", true, false); 733 PXOPT_LOOKUP_STR(dvodb, config->args, "-dvodb", false, false); 734 PXOPT_LOOKUP_STR(camera, config->args, "-inst", true, false); 735 PXOPT_LOOKUP_STR(telescope, config->args, "-telescope", true, false); 736 PXOPT_LOOKUP_BOOL(need_magic, config->args, "-need_magic", false); 737 738 if (!pstampProjectInsert(config->dbh, 739 0, 740 name, 741 state, 742 imagedb, 743 dvodb, 744 camera, 745 telescope, 746 need_magic 747 )) { 748 psError(PS_ERR_UNKNOWN, false, "database error"); 749 return false; 750 } 751 752 return true; 753 } 754 755 static bool projectMode(pxConfig *config) 756 { 757 PS_ASSERT_PTR_NON_NULL(config, false); 758 psMetadata *where = psMetadataAlloc(); 759 760 PXOPT_COPY_STR(config->args, where, "-name", "name", "=="); 761 762 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 763 764 psString query = pxDataGet("pstamptool_project.sql"); 765 if (!query) { 766 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 767 return false; 768 } 769 770 if (psListLength(where->list)) { 771 psString whereClause = psDBGenerateWhereSQL(where, NULL); 772 psStringAppend(&query, " %s", whereClause); 773 psFree(whereClause); 774 } 775 psFree(where); 776 777 if (!p_psDBRunQuery(config->dbh, query)) { 778 psError(PS_ERR_UNKNOWN, false, "database error"); 779 return false; 780 } 781 782 psArray *output = p_psDBFetchResult(config->dbh); 783 if (!output) { 784 psError(PS_ERR_UNKNOWN, false, "database error"); 785 return false; 786 } 787 if (!psArrayLength(output)) { 788 psTrace("pstamptool", PS_LOG_INFO, "no rows found"); 789 psFree(output); 790 return true; 791 } 792 793 // negative simple so the default is true 794 if (!ippdbPrintMetadatas(stdout, output, "pstampDataStore", !simple)) { 795 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 796 psFree(output); 797 return false; 798 } 799 800 psFree(output); 801 802 return true; 803 } 804 static bool modProjectMode(pxConfig *config) 805 { 806 PS_ASSERT_PTR_NON_NULL(config, false); 807 808 PXOPT_LOOKUP_S64(proj_id, config->args, "-proj_id", true, false); 809 PXOPT_LOOKUP_STR(state, config->args, "-state", true, false); 810 811 char *query = psStringCopy ("UPDATE pstampProject SET"); 812 813 psStringAppend(&query, " state = '%s'", state); 814 815 psStringAppend(&query, " WHERE proj_id = %" PRId64, proj_id); 816 817 if (!p_psDBRunQuery(config->dbh, query)) { 818 psError(PS_ERR_UNKNOWN, false, "database error"); 819 psFree(query); 820 return false; 821 } 822 823 psU64 affected = psDBAffectedRows(config->dbh); 824 if (affected != 1) { 825 psError(PS_ERR_UNKNOWN, false, "should have affected one row but %" 826 PRIu64 " rows were modified", affected); 827 return false; 828 } 829 830 return true; 831 } 832 -
trunk/ippTools/src/pstamptool.h
r19219 r19760 39 39 PSTAMPTOOL_MODE_JOBRESULT, 40 40 PSTAMPTOOL_MODE_UPDATEJOB, 41 PSTAMPTOOL_MODE_ADDPROJECT, 42 PSTAMPTOOL_MODE_MODPROJECT, 43 PSTAMPTOOL_MODE_PROJECT, 41 44 } pstamptoolMode; 42 45 -
trunk/ippTools/src/pstamptoolConfig.c
r19219 r19760 58 58 psMetadata *moddatastoreArgs = psMetadataAlloc(); 59 59 psMetadataAddS64(moddatastoreArgs, PS_LIST_TAIL, "-ds_id", 0, "define ds_id", 0); 60 psMetadataAddStr(moddatastoreArgs, PS_LIST_TAIL, "-last_fileset", 0, "define storage uri", NULL);61 psMetadataAddStr(moddatastoreArgs, PS_LIST_TAIL, "-state", 0, " define storage uri", NULL);60 psMetadataAddStr(moddatastoreArgs, PS_LIST_TAIL, "-last_fileset", 0, "set last_fileset seen", NULL); 61 psMetadataAddStr(moddatastoreArgs, PS_LIST_TAIL, "-state", 0, "set state", NULL); 62 62 63 63 // -addreq 64 64 psMetadata *addreqArgs = psMetadataAlloc(); 65 psMetadataAddStr(addreqArgs, PS_LIST_TAIL, "-uri", 0, "define request file uri ", NULL);65 psMetadataAddStr(addreqArgs, PS_LIST_TAIL, "-uri", 0, "define request file uri (required)", NULL); 66 66 psMetadataAddS64(addreqArgs, PS_LIST_TAIL, "-ds_id", 0, "define request ds_id", 0); 67 67 // psMetadataAddStr(addreqArgs, PS_LIST_TAIL, "-out_fileset", 0, "define request output_fileset", NULL); … … 131 131 psMetadataAddStr(updatejobArgs, PS_LIST_TAIL, "-fault", 0, "new result", NULL); 132 132 133 // -addproject 134 psMetadata *addprojectArgs = psMetadataAlloc(); 135 psMetadataAddStr(addprojectArgs, PS_LIST_TAIL, "-name", 0, "define project name (required)", NULL); 136 psMetadataAddStr(addprojectArgs, PS_LIST_TAIL, "-state", 0, "define state for project (enabled, disabled)", "enabled"); 137 psMetadataAddStr(addprojectArgs, PS_LIST_TAIL, "-imagedb", 0, "define name of database for project (required)", NULL); 138 psMetadataAddStr(addprojectArgs, PS_LIST_TAIL, "-dvodb", 0, "define name of dvo database for project", NULL); 139 psMetadataAddStr(addprojectArgs, PS_LIST_TAIL, "-inst", 0, "define name of camera for project (required)", NULL); 140 psMetadataAddStr(addprojectArgs, PS_LIST_TAIL, "-telescope", 0, "define name of telescope for project (required)", NULL); 141 psMetadataAddBool(addprojectArgs, PS_LIST_TAIL, "-need_magic", 0, "define need_magic for project", false); 142 143 // -modproject 144 psMetadata *modprojectArgs = psMetadataAlloc(); 145 psMetadataAddS64(modprojectArgs, PS_LIST_TAIL, "-proj_id", 0, "define project ID to modify (required)", 0); 146 psMetadataAddStr(modprojectArgs, PS_LIST_TAIL, "-imagedb", 0, "define name of database for project", NULL); 147 psMetadataAddStr(modprojectArgs, PS_LIST_TAIL, "-state", 0, "define state for project (enabled, disabled)", NULL); 148 psMetadataAddStr(modprojectArgs, PS_LIST_TAIL, "-dvodb", 0, "define name of dvo database for project", NULL); 149 psMetadataAddStr(modprojectArgs, PS_LIST_TAIL, "-camera", 0, "define name of camera for project", NULL); 150 psMetadataAddStr(modprojectArgs, PS_LIST_TAIL, "-telescope", 0, "define name of telescope for project", NULL); 151 psMetadataAddBool(modprojectArgs, PS_LIST_TAIL, "-need_magic", 0, "define need_magic for project", false); 152 153 // -project 154 psMetadata *projectArgs = psMetadataAlloc(); 155 psMetadataAddStr(projectArgs, PS_LIST_TAIL, "-name", 0, "define project name to list (required)", NULL); 156 psMetadataAddBool(projectArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 157 133 158 psMetadata *argSets = psMetadataAlloc(); 134 159 psMetadata *modes = psMetadataAlloc(); … … 149 174 PXOPT_ADD_MODE("-datastore", "", PSTAMPTOOL_MODE_DATASTORE, datastoreArgs); 150 175 PXOPT_ADD_MODE("-moddatastore", "", PSTAMPTOOL_MODE_MODDATASTORE, moddatastoreArgs); 176 177 PXOPT_ADD_MODE("-addproject", "", PSTAMPTOOL_MODE_ADDPROJECT, addprojectArgs); 178 PXOPT_ADD_MODE("-modproject", "", PSTAMPTOOL_MODE_MODPROJECT, modprojectArgs); 179 PXOPT_ADD_MODE("-project", "", PSTAMPTOOL_MODE_PROJECT, projectArgs); 151 180 152 181 if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Note:
See TracChangeset
for help on using the changeset viewer.
