1. 25 Aug, 2011 3 commits
  2. 23 Aug, 2011 1 commit
  3. 16 Aug, 2011 2 commits
  4. 27 Jul, 2011 1 commit
  5. 19 Jul, 2011 2 commits
  6. 13 Jul, 2011 1 commit
  7. 06 Jul, 2011 1 commit
    • Mike Hibler's avatar
      Add -f option for reporting hashes. · bfaa986c
      Mike Hibler authored
      This forces imagehash to hash pieces on aligned sector boundaries rather
      than just doing it from the start of each chunk. Result now is that there
      may be a partial hash piece at the beginning of each range and another
      partial piece at the end. Ideally, we would avoid those partial pieces,
      but we are only using this as a point of comparison right now.
      bfaa986c
  8. 01 Jul, 2011 1 commit
  9. 30 Jun, 2011 1 commit
    • Mike Hibler's avatar
      Make sure upload/download server run with proper group list. · bf97b597
      Mike Hibler authored
      Attempts to load an image from a subgroup of a project didn't work because
      I was only setting the primary group ID based on the node's experiment's
      project. Now we use setgroups() to establish all groups that the swapper
      of the experiment belongs to.
      bf97b597
  10. 29 Jun, 2011 1 commit
  11. 22 Jun, 2011 2 commits
  12. 15 Jun, 2011 1 commit
    • Ryan Jackson's avatar
      Change rindex() to strrchr() · 4c75d2cf
      Ryan Jackson authored
      Default builds of uClibc (used for the Linux MFS) don't include
      support for index() and rindex() (gone from the POSIX standard as of
      POSIX.1-2008).  I've fixed the uClibc config to include them now, but
      I need to build frisbee for an existing build of the Linux MFS with
      the old uClibc.
      4c75d2cf
  13. 02 Jun, 2011 1 commit
  14. 01 Jun, 2011 1 commit
  15. 31 May, 2011 2 commits
    • Mike Hibler's avatar
      Added compat option and assorted cleanups. · d8de4d6a
      Mike Hibler authored
      Added WITH_V3COMPAT to make sure that we can still generated V3 images
      (for other sites) if checksum/encryption is not used.
      
      Try to clean up the command line options some. Be more consistent by putting
      generated uuid into a file instead of just spitting it out on stderr. Make
      sure that if the decryption specifies signing and/or encryption that we
      require the image to have that info. Add some more assertions. (Re)distinguish
      checksums from signed-checksums.
      d8de4d6a
    • Mike Hibler's avatar
      3bc2d561
  16. 27 May, 2011 3 commits
  17. 18 May, 2011 3 commits
    • Mike Hibler's avatar
    • Mike Hibler's avatar
      Lint. · b0b994a8
      Mike Hibler authored
      b0b994a8
    • Mike Hibler's avatar
      Support image PUT (aka, "upload") and assorted minor changes. · 77dbad39
      Mike Hibler authored
      1. Support for PUT.
      
      The big change is support for uploading via the master server, based heavily
      on the prototype that Grant did. Currently only host-based (IP-based)
      authentication is done as is the case with download. Grant's SSL-based
      authentication code is "integrated" but has not even been compiled in.
      
      The PUT protocol allows for assorted gewgaws, like specifying a maximum size,
      setting a timeout value, returning size and signature info, etc.
      
      There is a new, awkwardly-named client utility "frisupload" which, like the
      download client, takes an "image ID" as an argument and requests to upload
      (PUT) that image via the master server. As with download, the image ID can
      be either of the form "<pid>/<emulab-image-name>", to upload/update an actual
      Emulab image or it can start with a "/" in which case it is considered to
      be a pathname on the server.
      
      On the server side, the master server takes PUT requests, verifies permission
      to upload the image, fires up a separate instance of an upload daemon (with
      the even catchier moniker "frisuploadd"), and returns the unicast addr/port
      info to the client which then begins the upload. The master server also acts
      as a traffic cop to make sure that downloads and uploads (or uploads and
      uploads) don't overlap.
      
      This has been integrated into the Emulab "create image" process in a
      backward-compatible way (i.e., so old admin MFSes will continue to work).
      Boy, was that fun. One not-so-desirable effect of this integration is that
      images now traverse our network twice, once to upload from node to boss and
      once for boss to write out the image file across NFS to ops. This is not
      really something that should be "fixed" in frisbee, it is only "undesirable"
      because we have a crappy NFS server.
      
      What has NOT been done includes: support of hierarchical PUT operations
      (we don't need it for either the elabinelab or subboss case), support for
      uploading standard images stored on boss (we really want something better
      than host-based authentication here), and the aforementioned support of
      SSL-based authentication.
      
      2. Other tidbits that got mixed in with PUT support:
      
      Added two new site variables:
          images/frisbee/maxrate_std
          images/frisbee/maxrate_usr
      which replace the hardwired (in mfrisbeed and frisbeelauncher before that)
      bandwidth limits for image download. mfrisbeed reads these (and the
      images/create/* variables) when it starts up or receives a HUP signal.
      These could be read from the DB on every GET/PUT, but they really don't change
      much and I needed something to test the reread-the-config-on-a-HUP code!
      
      Fixed avoidance of "problematic multicast addresses" so it would actually
      work as intended.
      
      Lots of internal "refactoring" to make up for things I did wrong the first
      time and to give the general impression that "Wow, Mike did a LOT!"
      77dbad39
  18. 04 May, 2011 2 commits
  19. 07 Apr, 2011 1 commit
  20. 04 Apr, 2011 1 commit
    • Mike Hibler's avatar
      Bug fix: ensure we run any spawned frisbeed as "the appropriate user." · 7f775c7d
      Mike Hibler authored
      Previously, frisbeed's were always running as the uid/gid of the master server
      which generally meant root. This was not a security issue, as we did not rely
      on file permissions to enforce accessibility.
      
      For the Emulab config, "appropriate user" means the uid of the experiment
      swapper and the gid of the experiment. For the null (default) config, it
      still means the uid/gid of the master server--if you don't want them running
      as root, don't run the master server as root.
      
      For now, and frisbee clients spawned (e.g., to fetch an image from a parent)
      are still run with the uid/gid of the master server. This can easily be
      changed if necessary.
      7f775c7d
  21. 08 Mar, 2011 1 commit
  22. 15 Feb, 2011 1 commit
  23. 10 Feb, 2011 1 commit
  24. 08 Feb, 2011 1 commit
  25. 04 Feb, 2011 1 commit
  26. 03 Feb, 2011 2 commits
  27. 02 Feb, 2011 1 commit
    • Mike Hibler's avatar
      Various changes related to the port mfrisbeed listens on. · d77c33b7
      Mike Hibler authored
      1. Add -i option to tie mfrisbeed to a particular interface and use that
         option for a multi-homed boss node (only listen on inside interface).
      
      2. Make that option play nice with the localhost proxying features of a
         previous commit: we also listen on localhost in this case.  The localhost
         proxying feature now has the compile time option USE_LOCALHOST_PROXY
         rather than mixing it up with the USE_EMULAB_CONFIG option (even though
         it probably will only ever be used in the Emulab config).
      
      3. Both of those were really to fix one bug: if we got a request from
         localhost to start up a frisbeed daemon, we were starting it up bound
         to the localhost interface.  Now we will make sure the server gets
         started up using the "other" interface, i.e., the one specified with -i.
      d77c33b7
  28. 01 Feb, 2011 1 commit
    • Mike Hibler's avatar
      Implement limited backward compatibility with the old frisbee setup. · 1017ccce
      Mike Hibler authored
      The big backward compatibility issue is that we no longer store running
      frisbeed info in the DB.  This means that loadinfo could not return
      address:port info to clients and thus old frisbee MFSes could no longer
      work.  While not a show stopper to require people to update their MFS first,
      I made a token effort to implement backward compat as follows.
      
      When an old frisbee MFS does "tmcc loadinfo" (as identified by a tmcd
      version < 33), tmcd will invoke "frisbeehelper" to startup a daemon.
      Sound like frisbeelauncher?  Well sorta, but vastly simplified and I only
      want this to be temporary.  The helper just uses the frisbee client to make
      a "proxy" request to the localhost master server.  The Emulab configuration
      of the master server now allows requests from localhost to proxy for another
      node.
      
      frisbeehelper is also used by webfrisbeekiller to kill a running daemon
      (yes, just like frisbeelauncher).  It makes a proxy status request on
      localhost and uses the returned info to identify the particular instance
      and kill it.
      1017ccce