1. 08 Feb, 2002 9 commits
  2. 07 Feb, 2002 4 commits
  3. 04 Feb, 2002 1 commit
    • Robert Ricci's avatar
      Improved output (include column name in the output for violations.) · a9532a33
      Robert Ricci authored
      Also implemented a simple cache for previously-queried keys. Now
      stores the keys found in, say, nodes.node_id, so when another
      table references this key, we don't need to do another database
      query. This improves performance significantly, and is nicer to
      the databse server.
      a9532a33
  4. 01 Feb, 2002 6 commits
    • Robert Ricci's avatar
      Added some checks for key types, etc. that are currently not used in · 6d6d755b
      Robert Ricci authored
      the testbed database anywhere. Otherwise, they could accidentally be
      mistaken for columns.
      
      Now, all table options (the 'create_definition' rule in the MySQL
      documentation for 'CREATE TABLE') are recognized.
      6d6d755b
    • Leigh B. Stoller's avatar
      Fix up mounts command to make sure that groups are respected; we were · 35e306cc
      Leigh B. Stoller authored
      return mount specs for people in the project instead of the group.
      Harmless, since the mounts would fail as long as exports_setup was
      doing the right thing.
      35e306cc
    • Mike Hibler's avatar
      Yet another attempt to Get It Right based on our latest half-assed · 609c547e
      Mike Hibler authored
      understanding of how mountd operates.
      
      Things that should be fixed:
      
      1. It iterates over every node calculating what directories are exported,
         what FSes they are on, etc.  Most of that work only needs to happen
         per experiment.
      
      2. The algorithm to determine what FS a directory is on is a hack.  I just
         take the first component of the path provided.  As long as we mount all
         our FSes at the top level and configure with canonical pathes, this is
         ok.  Other solutions require calling out to the ops node to get actual
         mount info.
      
      3. Once shared experiments are revived, the code to determine exported
         directories will need to change.  The algorithm for computing the
         exports lines should still be correct.
      609c547e
    • Robert Ricci's avatar
    • Robert Ricci's avatar
      New script: schemadiff - a script to sync up the schemas of two · 83341399
      Robert Ricci authored
      databases. This script is not quite ready for usage - I've done some
      testing, but more testing shuld be done before it's widely used.
      
      From the usage message:
      Prints on stdout a set of SQL commands to change the database
      from file1 so that it has the same schema as the database from
      file2 (same argument order as diff)
      
      The files given are the output of mysqldump for the two databases -
      the dump ouput can contain oly column definitions, or it can contain
      row information (which is ignored.)
      
      This script can find and fix: created/dropped tables, created/dropped
      columns, columns that have had type chages, renamed columns, changes
      in primary and other (non-primary) keys. It keeps columns in order
      when creating new tables and adding columns.
      
      There a few things that I still want to do with this script:
      
      Make a framework for populating columns. For example, if column 'foo'
      is added, it would look in some location for a script that would
      populate this column.
      
      Create a wrapper that connects to the database to be updated, backs it
      up, locks all tables, applies the changes, and can recover if
      something goes wrong.
      
      Add a 'safe mode' (which would be the default), which won't remove
      columns or tables.
      
      There are a few caveats:
      
      Columns that have been _both_ renamed and had their type changed will
      be dropped and re-created, since it's impossible to detect this case.
      
      There may be some ordering issues. For example, the primary key for a
      table may need to be dropped before you can allow a column that used
      to be in the primary key in the primary key to contain NULLs.
      
      Will only work in one direction - a master-slave type relationship. If
      used between databases that have _both_ been changed, changes in the
      database being updated first will be lost.
      83341399
    • Leigh B. Stoller's avatar
      Fix up the hostnames command after much bitrot and frobification. · f670883d
      Leigh B. Stoller authored
      Started from scratch! Much simpler now that most of the information
      is stored in the virt_nodes and virt_lans table.
      f670883d
  5. 31 Jan, 2002 4 commits
  6. 30 Jan, 2002 4 commits
  7. 29 Jan, 2002 8 commits
    • Robert Ricci's avatar
      New script: interswitch · da928f5a
      Robert Ricci authored
      A simple little script to find links/lans that cross between switches,
      and print them out (including which switches they use, and how many
      members they have on each switch.)
      da928f5a
    • Ian Murdock's avatar
      Added test for event scheduler. · f0fd5d86
      Ian Murdock authored
      f0fd5d86
    • Ian Murdock's avatar
      *** empty log message *** · a3794773
      Ian Murdock authored
      a3794773
    • Ian Murdock's avatar
      *** empty log message *** · 100d3592
      Ian Murdock authored
      100d3592
    • Ian Murdock's avatar
      Added -lpthread to LIBS. · 7c260921
      Ian Murdock authored
      7c260921
    • Ian Murdock's avatar
      Rewrote event scheduler. Event system clients may now call · 29563eb0
      Ian Murdock authored
      event_schedule (see event library), which essentially operates as a
      deferred event_notify. event_schedule accepts a notification and a
      firing time, alters the notification to change the type attribute to
      EVENT_SCHEDULE and add a firing time attribute, and then sends the
      altered notification using event_notify.  The event scheduler
      subscribes to EVENT_SCHEDULE notifications. As they arrive,
      it restores the type in the notification to that of the
      original event and enqueues the notification in a priority queue
      for firing at the indicated time. When the time arrives, the
      scheduler removes the notification from the queue and resends it
      using event_notify.
      
      With these changes, the event system now supports dynamic events.
      29563eb0
    • Ian Murdock's avatar
      7a518579
    • Ian Murdock's avatar
      * Added event_schedule to the event API, which allows events · e9f9388a
      Ian Murdock authored
      to be scheduled at a later time. The interface to event_schedule is
      identical to event_notify, except it takes an additional struct
      timeval argument that specifies when the event should be fired.  We
      assume time synchronization between nodes.
      
      * Revamped the attribute interface. Rather than a single get and put
      function that takes a union "type" argument, we now have separate
      event_notification_get_<type> and event_notification_put_<type>
      functions, where <type> is one of "double", "int32", "int64",
      "opaque", "string". These changes should greatly simply the attribute
      interface. The opaque attribute type is new, and allows
      arbitrary data structures to be added to notifications as attributes.
      
      * Added event_notification_remove, which deletes an attribute from a
      notification.
      
      * Modified the event notification callback to take "host" and "type"
      parameters, which contain the "host" and "type" attributes from the
      event notification, respectively.
      e9f9388a
  8. 28 Jan, 2002 2 commits
  9. 25 Jan, 2002 2 commits