IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 42737


Ignore:
Timestamp:
Dec 6, 2024, 12:00:04 PM (20 months ago)
Author:
eugene
Message:

cleanup of the logic for setting minidvodb_name and path to avoid changing a value on the config metadta

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20230313/ippTools/src/addtool.c

    r41213 r42737  
    16831683  // required
    16841684  PXOPT_LOOKUP_STR(minidvodb_group, config->args, "-set_minidvodb_group", true, false);
    1685   PXOPT_LOOKUP_STR(minidvodb_path, config->args, "-set_minidvodb_path", false, false);
     1685  PXOPT_LOOKUP_STR(minidvodb_path_raw, config->args, "-set_minidvodb_path", false, false);
    16861686  PXOPT_LOOKUP_STR(minidvodb_host, config->args, "-set_minidvodb_host", false, false);
    16871687  //optional
    1688   PXOPT_LOOKUP_STR(minidvodb_name, config->args, "-set_minidvodb_name", false, false);
     1688  PXOPT_LOOKUP_STR(minidvodb_name_raw, config->args, "-set_minidvodb_name", false, false);
    16891689  PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false);
    16901690  PXOPT_LOOKUP_STR(note,            config->args, "-set_note",            false, false);
     
    16951695  }
    16961696
    1697 //  psString minidvodbpath = "NULL";
    1698 
    1699   // I don't know how to get around the complaints of minidvodb_path can't be null. this 'fixes' it, but someone smarter can fix it properly.
    1700 //  if (minidvodb_path) {
    1701 //    minidvodbpath = minidvodb_path;
    1702 //  } else {
    1703 //    psError(PS_ERR_UNKNOWN, false, "require minidvodb_path");
    1704 //    return false;
    1705 //  }
    1706  
    17071697  if (!minidvodbRunInsert(config->dbh,
    17081698                          0, // job_id
    1709                           minidvodb_name,
     1699                          minidvodb_name_raw,
    17101700                          minidvodb_group,
    1711                           minidvodb_path,
     1701                          minidvodb_path_raw,
    17121702                          minidvodb_host,
    17131703                          "new",
     
    17301720  printf("%" PRId64 "\n", minidvodb_id);
    17311721
    1732  
    1733   if (!minidvodb_name) {
    1734     psStringAppend(&minidvodb_name, "%s.%" PRIu64,minidvodb_group,minidvodb_id);
    1735   }
    1736   if (minidvodb_path) {
    1737     psStringAppend(&minidvodb_path,"/%s",minidvodb_name);
    1738   }
    1739 
    1740   psString query = NULL;
    1741 
    1742   psStringAppend(&query, "UPDATE minidvodbRun SET minidvodb_path = '%s', minidvodb_name = '%s' where minidvodb_id = %" PRIu64";", minidvodb_path, minidvodb_name, minidvodb_id);
    1743 
    1744   if (!p_psDBRunQuery(config->dbh, query)) {
    1745     psError(PS_ERR_UNKNOWN, false, "database error");
    1746     psFree(query);
    1747     return false;
    1748   }
    1749 
    1750   if (!psDBCommit(config->dbh)) {
    1751     psError(PS_ERR_UNKNOWN, false, "database error");
    1752     return false;
    1753   }
     1722  // we created a new entry using the values supplied above for minidvodb_name_raw, minidvodb_host_raw.
     1723  // If minidvodb_name is not specified, it will be generated based on the value of minidvodb_group and
     1724  // the minidvodb_id of the new entry.  But this means we need to insert first, get the ID, then update.
     1725
     1726  bool doUpdate = false;
     1727
     1728  // if minidvodb_name_raw is not specified above, create it from minidvodb_group
     1729  psString minidvodb_name = NULL;
     1730  if (minidvodb_name_raw) {
     1731    minidvodb_name = psStringCopy (minidvodb_name_raw);
     1732  } else {
     1733    psStringAppend(&minidvodb_name, "%s.%" PRIu64, minidvodb_group, minidvodb_id);
     1734    doUpdate = true;
     1735  }
     1736
     1737  // if minidvodb_path_raw IS specified above, update it with the minidvodb_name
     1738  psString minidvodb_path = NULL;
     1739  if (minidvodb_path_raw) {
     1740    psStringAppend(&minidvodb_path, "%s/%s", minidvodb_path_raw, minidvodb_name);
     1741    doUpdate = true;
     1742  }
     1743
     1744  if (doUpdate) {
     1745    psString query = NULL;
     1746
     1747    psStringAppend(&query, "UPDATE minidvodbRun SET minidvodb_path = '%s', minidvodb_name = '%s' where minidvodb_id = %" PRIu64";", minidvodb_path, minidvodb_name, minidvodb_id);
     1748
     1749    if (!p_psDBRunQuery(config->dbh, query)) {
     1750      psError(PS_ERR_UNKNOWN, false, "database error");
     1751      psFree(query);
     1752      return false;
     1753    }
     1754
     1755    if (!psDBCommit(config->dbh)) {
     1756      psError(PS_ERR_UNKNOWN, false, "database error");
     1757      return false;
     1758    }
     1759  }
     1760
     1761  psFree (minidvodb_name);
     1762  psFree (minidvodb_path);
    17541763
    17551764  return true;
Note: See TracChangeset for help on using the changeset viewer.