1. 23 May, 2011 1 commit
  2. 02 May, 2011 1 commit
  3. 21 Apr, 2011 1 commit
  4. 20 Apr, 2011 1 commit
    • Leigh B Stoller's avatar
      Changes our ssh key/account handling in RedeemTicket() and · 03c2107c
      Leigh B Stoller authored
      CreateSliver(), to handle multiple accounts.  This somewhat reflects
      the Geni AM API for keys, which allows the client to specify multiple
      users, each with a set of ssh keys.
      The keys argument to the CM now looks like the following (note that
      the old format is still accepted and will be for a while).
      [{'urn'   => 'urn:blabla'
        'login' => 'dopey',
        'keys'  => [ list of keys like before ]},
       {'login' => "leebee",
        'keys'  => [ list of keys ... ]}];
      Key Points:
      1. You can supply a urn or a login or both. Typically, it is going to
         be the result of getkeys() at the PG SA, and so it will include
      2. If a login is provided, use that. Otherwise use the id from the urn.
      3. No matter what, verify that the token is valid for Emulab an uid
         (standard 8 char unix login that is good on just about any unix
         variant), and transform it if not.
      4. For now, getkeys() at the SA will continue to return the old format
         (unless you supply version=2 argument) since we do not want to
         default to a keylist that most CMs will barf on.
      5. I have modified the AM code to transform the Geni AM version of the
         "users" argument into the above structure. Bottom line here, is
         that users of the AM interface will not actually need to do
         anything, although now multiple users are actually supported
         instead of ignored.
      Still to be done are the changes to the login services structure in
      the manifest. We have yet to settle on what these changes will look
      like, but since people generally supply valid login ids, you probably
      will not need this, since no transformation will take place.
  5. 15 Apr, 2011 1 commit
  6. 03 Apr, 2011 1 commit
    • David Johnson's avatar
      Add domanifest command. · a12ed9ed
      David Johnson authored
      domanifest returns service configuration info (both static,
      administrator info and per-experiment info), and also service hook
  7. 09 Mar, 2011 1 commit
  8. 16 Feb, 2011 1 commit
    • Mike Hibler's avatar
      Frisbee master server compatibility mode fix for vnodes. · a173e553
      Mike Hibler authored
      The mserver wants to validate nodes by looking up their IP address in the
      interfaces table, and vnodes have no interfaces table entries.  So when we
      invoke the frisbeehelper in compat mode, do so with the pnode identity
      instead. For validation purposes, this is identical.
      Is this an issue for non-compat mode? Not right now since all our vnode
      implementations that load images make their loadinfo request from the
      physical host.  If vnodes start to call the master server on boss directly,
      we will have an issue.
  9. 08 Feb, 2011 1 commit
  10. 03 Feb, 2011 1 commit
  11. 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
      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.
  12. 19 Jan, 2011 1 commit
  13. 11 Jan, 2011 1 commit
    • Mike Hibler's avatar
      More work toward getting this working on subboss. · 8d80301e
      Mike Hibler authored
      More work on the hierarchical configuration for subboss. When doing host-based
      authentication, allow client to pass an explicit host (IP) to the mserver.
      If the mserver is configured to allow it, that IP is used for authenticating
      the request instead of the caller's IP. Add a default ("null") configuration
      so the mserver can operate out-of-the-box with no config file. The goal of
      these two changes is for an mserver instance with the default config and a
      proxy option to serve the needs of a subboss node (i.e., so no explicit
      configuration will be needed).
  14. 07 Dec, 2010 4 commits
  15. 16 Nov, 2010 1 commit
    • Kevin Atkinson's avatar
      Add support for all node "tb-set-tarfiles". · a0d0c95e
      Kevin Atkinson authored
      "tb-set-tarfiles" is like "tb-set-node-tarfiles" except that it
      distributes the tarfile to all nodes rather than just one and that it
      uses frisbee to distribute the file.
      These changes involved 1) refactoring frisbee info from images table
      into a new table, frisbee_blobs, 2) a new experiment_blobs table, and
      3) a new tmcd command so the node knows how to get the files from the
      The changes where designed to be general purpose enough to eventually
        1) Distributing arbitrary files (not just tarfiles) to nodes
        2) Perform arbitrary actions on those files
        3) Use arbitrary methods to get the files
      As such the tmcd line is as follows:
        URL=* ACTION=*
      where URL is currently:
      for example
      and when we get around to using a master Frisbee server it could be
      or it could be a file://, http://, etc.
      and ACTION is currently:
      for example
      with future syntax to be determined.
  16. 12 Nov, 2010 1 commit
  17. 09 Nov, 2010 2 commits
  18. 20 Oct, 2010 1 commit
    • Mike Hibler's avatar
      Support for no shared filesystem (unsupport for shared filesystem?) and · c1c1bce2
      Mike Hibler authored
      (eventual) support for NFS servers without race conditions!
      This means no NFS between nodes and ops/fs. There are still NFS mounts of
      ops on boss however.
      Added new defs-* variable NOSHAREDFS, which when set non-zero will disable
      the export of NFS filesystems to nodes.  Involved lots of little changes:
       * /users, /proj, and /share filesystems are not exported to nodes.
       * Returned mount info now includes an FSTYPE key which will be set to "LOCAL"
         if NOSHAREDFS is in effect (by default it is set to "NFS-RACY"; more on
         this later).  In the case where it is set to LOCAL, the other mount lines
         no longer contain REMOTE=foo settings.  Because of this change,
       * The client rc.mounts script will now create local versions of /users/*,
         /proj/<pid>, and /share when FSTYPE=LOCAL.  It first runs mkextrafs to
         create a large partition for these, since someday we will likely want
         to pre-populate these with a non-trivial amount of data.  Right now,
         the only thing that is put in the user's homedir is the standard dotfiles
         for the OS and the Emulab authorized_keys file (so you can login).
       * Linktest had to be modified to fetch the various results files (via
         loghole) rather than just assuming they were in /proj.  And also changed
         to invoke tevc with the local copy of the event key so it won't try to
         read it over NFS.
       * create_image was modified to ssh to the node and run the imagezip
         command, capturing the output of ssh.  This is controlled via the "-s"
         option which defaults to on for a NOSHAREDFS system, but can also be
         used on a normal system.
       * elabinelab's can be configured with/without a shared FS via the
         CONFIG_SHAREDFS attribute (note polarity change) which defaults to 1.
      Another new defs-* variable, NFSRACY, will some day allow you to specify
      (by setting to 0) that your NFS server does NOT have the nefarious mountd
      race condition when changing /etc/exports.  Currently, this defaults to 1
      since all versions of FreeBSD supported as an "fs" node have this "feature."
      Rumor has it that FreeBSD 8 does not have this problem nor, presumably,
      would a Linux NFS server.
      The only use of this variable right now is to set the FSTYPE returned by the
      tmcd "mounts" call, which in turn is used by one client script, rc.topomap
      (via a libsetup function) to determine whether it should try copying
      the topo file multiple times.
      Random: add python2.6 to list of python's checked for in configure.
      Random: resync defs-example-privatecnet with defs-example.
      Random: did a little code-pissin here and there.
  19. 18 Oct, 2010 1 commit
  20. 12 Oct, 2010 1 commit
    • Cody Cutler's avatar
      This reverts commit 0450a43c. · 4cbd3447
      Cody Cutler authored
      This patch added a bunch of NULL checks throughout TMCD.  While most of
      the NULL checks did handle it properly some didn't, so I'd rather leave
      it all be and let it be fixed properly later.
      Such a patch shouldn't be snuck in with all the TDLS changes, anyway.
  21. 11 Oct, 2010 1 commit
  22. 29 Sep, 2010 1 commit
  23. 31 Aug, 2010 1 commit
  24. 23 Aug, 2010 1 commit
  25. 03 Aug, 2010 1 commit
  26. 14 Jul, 2010 1 commit
  27. 23 Jun, 2010 1 commit
  28. 22 Jun, 2010 1 commit
  29. 16 Jun, 2010 1 commit
  30. 11 Jun, 2010 1 commit
  31. 28 May, 2010 2 commits
  32. 26 May, 2010 1 commit
    • Cody Cutler's avatar
      Roll my own ASCII to binary conversion and put quote size back to 1024 · 3a97b620
      Cody Cutler authored
      sscanf() with "%2x" requires an unsigned int * and writes sizeof(int) to
      the pointer.  I made my own conversion because we were writing NULLs to
      neighbor strings since we were passing characters to sscanf() and the
      remaining three bytes were 00.  I feel there must be a library function
      to do this two character ASCII to byte conversion though.
      I forgot that the quote would be written in ASCII so I have to double
      quote's size.
  33. 25 May, 2010 2 commits
  34. 24 May, 2010 1 commit