1. 17 Jan, 2002 1 commit
  2. 16 Jan, 2002 1 commit
  3. 15 Jan, 2002 1 commit
  4. 10 Jan, 2002 1 commit
    • Leigh B. Stoller's avatar
      A set of capture/capserver/DB changes. · 8ec05f0d
      Leigh B. Stoller authored
      Capserver and capture now handshake the owner/group of the tipline.
      Owner is defaults to root, and the group defaults to root when the
      node is not allocated. Capture will do the chmod after the handshake,
      so if boss is down when capture starts, the acl/run file will get 0,0,
      but will get the proper owner/group later after its able to handshake.
      As a result, console_setup.proxy was trimmed down and cleaned up a
      bit, since it no longer has to muck with some of this stuff.
      
      A second change was to support multiple tiplines per node. I have
      modified the tiplines table as such:
      
      	| Field   | Type        | Null | Key | Default | Extra |
      	+---------+-------------+------+-----+---------+-------+
      	| tipname | varchar(32) |      | PRI |         |       |
      	| node_id | varchar(10) |      |     |         |       |
      	| server  | varchar(64) |      |     |         |       |
      
      That is, the name of the tip device (given to capture) is the unique
      key, and there can be multiple tiplines associated with each node.
      console_setup now uses the tiplines table to determine what tiplines
      need to be reset; used to be just the name of the node_id passed into
      console_setup. Conversely, capserver uses the tipname to map back to
      the node_id, so that it can get the owner/group from the reserved
      table.
      
      I also removed the shark hack from nalloc, nfree, and console_reset,
      since there is no longer any need for that; this can be described
      completely now with tiplines table entries. If we ever bring the
      sharks back, we will need to generate new entries. Hah!
      8ec05f0d
  5. 08 Jan, 2002 1 commit
  6. 07 Jan, 2002 1 commit
  7. 04 Jan, 2002 1 commit
    • Robert Ricci's avatar
      New script: unixgroups . Pretty simple - just a convenient way to manage the · 469dacdb
      Robert Ricci authored
      unixgroup_membershit table from the command line. Runs the appropriate
      commands to make changes in the 'real world' after the database has been
      updated. From the usage message:
      
      Usage: unixgroups <-h | -p | < <-a | -r> uid gid...> >
      -h            This message
      -p            Print group information
      -a uid gid... Add a user to one (or more) groups
      -r uid gid... Remove a user from one (or more) groups
      469dacdb
  8. 03 Jan, 2002 1 commit
  9. 13 Dec, 2001 1 commit
  10. 06 Dec, 2001 2 commits
  11. 05 Dec, 2001 1 commit
    • Leigh B. Stoller's avatar
      Even *more* inventive ways to avoid real work; Add DB table to hold · c884cd89
      Leigh B. Stoller authored
      extra unix groups (unixgroup_membership) for special local users that
      need more groups than just their project membership (ie: flux, wheel,
      etc). In mkacct-ctrl, no longer use the admin bit to determine extra
      groups (which were hardwired in), but get the extra group list from
      the DB. This applies to accounts on boss/users; experimental nodes
      still use the admin bit (via tmcd) to get wheel added to the group
      set. Might be worth doing at some point.
      c884cd89
  12. 30 Nov, 2001 1 commit
  13. 06 Nov, 2001 2 commits
  14. 05 Nov, 2001 1 commit
    • Leigh B. Stoller's avatar
      Changes to node control (web page). Added a backend script to do this · f9cfddd4
      Leigh B. Stoller authored
      stuff so that the web page did not need to do anything except display
      and form processing. Add tbsetup/node_control for backend so that it
      can be called from the command line too. The virt_nodes table is also
      updated (for those values that have virt_nodes equivalents), and this
      mostly implies that changes can be applied only to swapped in
      experiments since we use the reserved table to map pcXXX to its vname
      so that the virt_nodes table can be updated. It is an easy extension
      to allow changes based on the pid/eid/vname, but I do not see a reason
      to support this ability yet. Note usage:
      
          Usage: node_control name=value [name=value ...] node [node ...]
                 node_control -e pid,eid name=value [name=value ...]
                 node_control -l
          For multiword values, use name='word0 ... wordN'
          Use -l to get a list of operational parameters you can change.
          Use -e to change parameters of all nodes in an experiment.
      
          {824} stoller$ /build/testbed/install//bin/node_control -l
            next_boot_osid            - (administrators only)
            startup_command
            bios_version              - (administrators only)
            rpms                      - (multiple options allowed)
            default_boot_cmdline
            default_boot_path
            default_boot_osid
            next_pxe_boot_path        - (administrators only)
            tarfiles                  - (multiple options allowed)
            pxe_boot_path             - (administrators only)
            next_boot_cmdline         - (administrators only)
            deltas                    - (multiple options allowed)
            next_boot_path            - (administrators only)
      f9cfddd4
  15. 30 Oct, 2001 1 commit
  16. 29 Oct, 2001 1 commit
    • Leigh B. Stoller's avatar
      A bunch of lastlogin changes! The user and experiment information · 4658545e
      Leigh B. Stoller authored
      pages now show the lastlogin info that is gathered from sshd syslog
      reporting to users. That info is parsed by security/genlastlog.c, and
      entered into the DB in the nodeuidlastlogin and uidnodelastlogin
      tables. If not obvious from the names, for each user we want the last time
      they logged in anyplace, and for each node we want the last time anyone
      logged into it. The latter is obviously more useful for scheduling
      purposes. All of the various images have new /etc/syslog.conf files,
      and the 6.2 got new sshd_configs (all cvsup'ed with kill -HUP). There
      is an entry in boss:/etc/crontab and users:/etc/syslog.conf. All of
      this is decribed in greater detail in security/genlastlog.c.
      4658545e
  17. 25 Oct, 2001 1 commit
  18. 24 Oct, 2001 2 commits
    • Leigh B. Stoller's avatar
    • Leigh B. Stoller's avatar
      Largish rework of nfree. Started out that I just wanted to map the · 895a44f6
      Leigh B. Stoller authored
      default OSID from the node_types table, to a specific OSID from the
      partition table on the actual node. This is to avoid setting the boot
      OSID to RHL_STD when the node is released, which causes a boot
      failure. Okay, so I added a library routine to do this (yanked out of
      os_setup where I did the code originally). This would solve most of
      the problems, except where there was no OS loaded that would satisfy
      the mapping, in which case the user must have done an os_load, and now
      that auto schedules a reload. Anyway, seemed like this should work.
      Ha! Mysql locking is downright dumb; all tables used within a lock
      region must be locked. nfree was already locking 9 tables, and in
      order to call out to library routines (which might use anything) I
      would have to lock the world, which is not actually possible anyway.
      Why all this locking in nfree in the first place? The idea is that
      there is a race between releasing the node from reserved, and cleaning
      up all those tables (interfaces, delays, nodes, etc). We don't want to
      free a node, and have it get allocated to another experiment before
      the cleanup is done, since that would mess up the state of the node.
      The solution (albiet a crufty one) was to lock just the reserved table
      (which guards against multiple people trying to nfree the same node at
      the same time) and switch the reservation out of the pid,eid and into
      a holding reservation. This effectively removes the node from the
      users control, but keeps it reserved. Then I unlock the reserved
      table. With that done, I can clean up all those tables without any
      locking, since the node is still reserved. After cleanup, I can either
      delete the reservation, or move it to the next reserve or reload
      reservation if those were pending. No locking is needed at this point
      since single table changes are atomic (and nalloc locks reserved
      anyway). Okay, so now we sit back and see if this was a good idea.
      895a44f6
  19. 22 Oct, 2001 1 commit
    • Leigh B. Stoller's avatar
      Add -e pid,eid option to sched_reload to make it easier to schedule · 6adf504b
      Leigh B. Stoller authored
      reloads for nodes in an experiment.
      Change os_load to schedule a default image reload whenever a mereuser
      loads an image that is not the default image for that node type.
      Add some support stuff in libdb (TBSetSchedReload) and some constant
      definitions for sched_reload and for nodelog.
      6adf504b
  20. 20 Oct, 2001 1 commit
  21. 18 Oct, 2001 1 commit
  22. 17 Oct, 2001 3 commits
    • Leigh B. Stoller's avatar
      Rework of the batch experiment code. Unified it with the immediate · 4d420b21
      Leigh B. Stoller authored
      experiment code. No longer uses another table. Rather, the experiment
      record contains a couple of extra fields for the batch system. Also
      combined some of the backend code (no longer a killbatch script).
      Also added scriptable experiments; the batchexp program in the bin
      directory can start an experiment from the command line, and in fact
      is used from the web page for both batch experiments and immediate
      experiments (-i option). All of the DB code that was in the web
      interfaces was moved to batchexp.
      4d420b21
    • Robert Ricci's avatar
    • Robert Ricci's avatar
      DB-ification major reformatting and commenting pass. · 11950a44
      Robert Ricci authored
      Now back to its old behavior, where frisbee reloads are handled no differently
      than other reloads, because this difference is now taken care of in the
      reload_daemon.
      
      Note that the '-w' flag has been removed. This is due to an error that perl
      reports on line 123, which, as far as I can tell, is not real. The code works
      fine, anyway.
      11950a44
  23. 16 Oct, 2001 1 commit
  24. 11 Oct, 2001 1 commit
  25. 09 Oct, 2001 1 commit
  26. 05 Oct, 2001 1 commit
  27. 02 Oct, 2001 1 commit
  28. 30 Sep, 2001 1 commit
  29. 29 Sep, 2001 2 commits
  30. 28 Sep, 2001 2 commits
    • Robert Ricci's avatar
      More lib-ification. These scripts now all use libdb for their database access. · e9aaf165
      Robert Ricci authored
      Some minor cleanup/commenting as well.
      
      Also, a few more access checks. Only admins are able to run 'inuse' (to prevent
      users from seeing each other's experiments.) You are also only allowed to run
      tbreport for experiments in projects that you are trusted by.
      e9aaf165
    • Leigh B. Stoller's avatar
      Interface change: · f870a7e9
      Leigh B. Stoller authored
      	Usage: os_load [-s | -w] [-r] [-i <imageid>] <node> [node ...]
              Usage: sched_reload [-f | -p] [-r] [-i <imageid>] <node> [node ...]
      
      The imageid is now an optional argument. After continually forgetting
      what imageid to use, or just plain forgetting the argument, and having
      it try to load imageid pc53 on pcXX, I decided this interface was
      bogus. With now imageid, select the default imageid for each node
      provided. This is actually convenient since you can load multiple
      types of nodes in one shot.
      f870a7e9
  31. 27 Sep, 2001 2 commits
  32. 26 Sep, 2001 1 commit