Changes between Initial Version and Version 1 of GeniDesktop_gec23_report


Ignore:
Timestamp:
08/11/15 13:45:04 (9 years ago)
Author:
griff@netlab.uky.edu
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GeniDesktop_gec23_report

    v1 v1  
     1[[PageOutline]]
     2
     3= GENI Desktop Project Status Report =
     4
     5Period: Post GEC 23 Report
     6
     7== I. Major accomplishments ==
     8
     9The following highlights our accomplishments during the last reporting period.
     10
     11=== A. Milestones achieved ===
     12
     13 * Enhanced the set of scriptable resource management, instrumentation, and monitoring available to experimenters and other tools.
     14 
     15 * Enabled integration of the GENI Desktop with other experimenter tools.
     16
     17 * Created documentation and tutorial materials to reflect this latest version of the GENI Desktop.
     18
     19=== B. Deliverables made ===
     20
     21 * We designed and implemented a GENI Desktop Command Line Interface (gdcli) that enables users to write scripts that control, manage, and measure the performance of their slices through the GENI Desktop.
     22
     23 * We demonstrated how the new gdcli can be used by other experimenter tools to integrate with the GENI Desktop.
     24
     25 * We developed online documentation for the new gdcli interface and gave a tutorial entitled "Monitoring and Controlling Experiments with GENI Desktop Scripts and Modules" at the GEC 23 conference.
     26
     27== II. Description of work performed during last quarter ==
     28
     29The following provides a description of the progress made during the last reporting period.
     30
     31=== A. Activities and findings ===
     32
     33Our activities this last reporting period have been primarily focused on
     34the design, implementation, and deployment of a GENI Desktop Command Line Interface (gdcli)
     35that enables experimenters and tool developers to integrate the GENI Desktop into
     36their experiments and tools.  We also presented a tutorial at the GEC 23 conference that
     37showed attendees how they could integrate the GENI Desktop into their experiments.
     38
     39The GENI Desktop greatly simplifies the task of instrumenting and monitoring
     40a users' experiment (slice).   However, users could only access the GENI
     41Desktop via a web interface.   In other words, there was not programmatic way
     42for experimenters or tool developers to leverage the GENI Desktop
     43functionality.
     44
     45To address this need we designed a new interface to the GENI Desktop that
     46could be used to programatically upload files, run commands, download
     47measurement graphs, etc --- functions previously only possible via the GENI
     48Desktop web interface.  In particular, we developed an application that runs
     49on Linux (or other Unix-based systems), Mac, and Window called the gdcli
     50program that can be used to interact with the GENI Desktop.  The gdcli
     51program can be used to:
     52
     53 * Upload files to a select set of nodes
     54 * Run a command on a select set of nodes
     55 * Download a traffic measurement graph (as PNG or CSV) from a select set of nodes
     56 * Download a normal file from a select set of nodes
     57 * Get a list of slices
     58 * Check the status of a slice
     59 * Get the topology of a slice
     60 * Validate the setup of a slice
     61 * List the nodes in a slice
     62 * List the links in a slice
     63
     64The gdcli program can be called from any scripting language (e.g.,
     65python, perl, sh (bash), .BAT files, etc).  As a result, users are able to
     66write programs in their favorite scripting language that make calls to the
     67GENI Desktop to upload/download files, download measurement graphs, run
     68commands, etc.
     69
     70There were several challenges that we had to address
     71while implementing the gdcli scripting interface.
     72First, we needed a way to make calls to the GENI Desktop server (e.g., to
     73download a traffic graph, or run a command).  To solve this problem we
     74enhanced the GENI Desktop server to support HTTP posts that included
     75parameters to the request specifying, for example, the list of traffic graphs to be
     76downloaded (i.e., the nodes/links names and the types of graphs desired).
     77We implemented a python backend server specifically designed to process the
     78request, perform the action, and return the results.
     79The python backend shares access
     80with the previous GENI Desktop PHP code to the databases and files used by the
     81GENI Desktop, thereby ensuring that the results returned by the gdcli are the
     82same information as would be seen in the GENI Desktop web interface.
     83
     84A second challenge was securing the access to, and communication with, the
     85new python backend server.  To ensure communication is secure, all communication
     86occurs over a secure connection using https.  The problem of authorization
     87requires not only that the user authenticate themselves to the server, but
     88that the server obtain a "speaks-for" certificate to act on behalf of the
     89user.   Because the existing speaks-for generation tools are designed for
     90interactive web use, not scripting, we decided to require that users first
     91authorize a speaks-for using the existing GENI Desktop web interface which
     92can then be stored and used by the GENI Desktop (and our new backend server)
     93until the speaks-for expires.  However, this does not solve the authorization
     94problem. To ensure the users has the right to issue commands to our python
     95backend server, the web interface of the GENI Desktop also creates a secret
     96key (say at the same time the user authorizes the speaks for) that the user
     97must store on their local machine.  The secret key is used when communicating
     98with the python backend server to prove that the user has the right to invoke
     99the requested operations on the GENI Desktop.  In that sense, users can think
     100of the gdcli secret key like an ssh key that must be present on their local
     101machine in order to access the service.
     102
     103A third issue involved handling the results/output of a gdcli request.  The
     104gdcli tool provide two mechanisms for handling the output from a request.
     105The first, and most simple mechanism, concatenates all the output files/graphs and prints
     106them to standard output, allowing users to redirect output to other programs
     107or tools. The second way gdcli handles output is to deposit each graph,
     108downloaded file, or output from a run command into a different file on the
     109local machine.  Files are automatically assigned names that describe their
     110content (based on the slice, the aggregate, the node or link, and the type
     111of graph).  Because the naming convention is known to experimenters, they can
     112easily write scripts that know what filenames to look for, and then feed
     113those files to the appropriate program for processing (e.g., copying traffic
     114graphs into a web directory to create a user-defined traffic mashup view).
     115
     116
     117=== B. Project participants ===
     118
     119The following individuals are involved with the project in one way or another:
     120 * Jim Griffioen - Project PI
     121 * Zongming Fei - Project Co-PI
     122 * Hussamuddin Nasir - Technician/Programmer
     123 * Charles Carpenter - Technician/Programmer
     124 * Xiongqi Wu - Ph.D. Student
     125 * Jeremy Reed - Ph.D. Student
     126
     127=== C. Publications (individual and organizational) ===
     128
     129=== D. Outreach activities ===
     130
     131 * We presented the GENI Desktop during the Introduction to GENI Instrumentation & Measurement Tools portion of the Getting Started with GENI tutorial at GEC 23.
     132 * We participated in the demo session at GEC 23, demonstrating the new gdcli interface
     133 * We gave a tutorial entitled "Monitoring and Controlling Experiments with GENI Desktop Scripts and Modules" at the GEC 23 conference.
     134 * We developed and posted online documentation for the new gdcli interface
     135
     136=== E. Collaborations ===
     137
     138 * Most of our collaborations have been between the GPO Portal team and the aggregate teams at Utah and RENCI.
     139
     140=== F. Other Contributions ===
     141