{ "info": { "author": "Steven Cox", "author_email": "scox@renci.org", "bugtrack_url": null, "classifiers": [], "description": "GRAYSON\n=======\n\nGrayson is a toolchain for designing, executing, debugging and sharing scientific workflows. It consists of\n 1. An editor, yEd by yWorks, for creating visual workflow components\n 2. A compiler for parsing and linking components into a workflow\n 3. A visual debugger for executing and troubleshooting workflows\n\nEditor: \n-------\n\nyEd is a desktop application and GraphML editor. It provides point and click, drag and drop and other familiar user interface metaphors. Graph nodes may be annotated and all artifacts are saved as XML.\n\nCompiler:\n---------\n\nThe compiler is a python command line program which assembles GraphML models into an abstract syntax tree and emits a Pegasus DAX with all necessary catalogs.\n\nIt also proivides a packager which assembles workflow artifacts into a compressed archive for submission to the execution environment.\n\nExecution Environment:\n----------------------\n\nThe execution environment is a web application allowing upload and execution of packaged workflows.\n\nIt reads GraphML workflows with embedded JSON annotations and renders them using the HTML5 Canvas API. \n\nIt also compiles the workflow to a Pegasus WMS DAX and submits it for execution.\n\nIt provides monitoring infrastructure consisting of:\n - An AMQP message queue\n - A distributed task queue - Celery\n - Asynchronous event notification to the client via Node.js\n\nThis allows workflow events to be dynamically rendered on the user interface.\n\nInstallation\n============\n\nPrerequisites:\n-------------\n\n 1. Pegasus 3.0.1\n 2. Condor 7.7.5+\n 3. Globus\n 4. Python 2.7\n\nOverview:\n---------\n\n Grayson is very much alpha. These are preliminary install instructions.\n\n These have been tested on Fedora and CentOS 5.7\n\n git clone git://github.com/stevencox/grayson.git\n export GRAYSON_HOME=$PWD/grayson\n source $GRAYSON_HOME/bin/setup.sh\n grayson-install --clean --frozen --python=$(which python2.7)\n\n This should leave you with these directories:\n\n grayson\n \u251c\u2500\u2500 bin\n \u251c\u2500\u2500 conf\n \u251c\u2500\u2500 event\n \u251c\u2500\u2500 lib\n \u251c\u2500\u2500 samples\n \u251c\u2500\u2500 target\n \u251c\u2500\u2500 var\n \u251c\u2500\u2500 venv\n \u2514\u2500\u2500 web\n stack\n \u251c\u2500\u2500 apache\n \u251c\u2500\u2500 erlang\n \u251c\u2500\u2500 java\n \u251c\u2500\u2500 modwsgi\n \u251c\u2500\u2500 node\n \u251c\u2500\u2500 pegasus\n \u2514\u2500\u2500 rabbitmq\n\n\nDevelopment Environment:\n------------------------\n\nTo run in a development environment - \n\n cd grayson\n export GRAYSON_HOME=$PWD\n source $GRAYSON_HOME/bin/setup.sh\n\n cp conf/dev.conf conf/grayson.conf \n web/manage.py runserver 0.0.0.0:8000\n sudo bin/grayson-rabbit.sh\n web/manage.py celeryd -l debug\n node event/server.js\n\nProduction Instance:\n--------------------\n \nInstall mod_wsgi in your apache instance and add this to the apache config:\n\n LoadModule wsgi_module modules/mod_wsgi.so\n WSGIDaemonProcess host.domain.name user= group= processes=2 threads=25\n WSGIProcessGroup host.domain.name\n WSGISocketPrefix run/wsgi\n WSGIScriptAlias /grayson /opt/grayson/current/web/apache/django.wsgi\n Alias /grayson/static/ /web/graysonapp/static/\n /web/graysonapp/static/>\n Order deny,allow\n Allow from all\n \n LogLevel info\n\nCopy /bin/init.d/* to /etc/init.d and make sure they are executable.\n\nYou'll need to change paths in these to match your environment.\n\nCopy /prod.conf to /grayson.conf\nEdit /grayson.conf to provide paths to web server certificates.\n\nAs root,\n\n /start-rabbitmq\n /etc/init.d/grayson-httpd\n /etc/init.d/grayson-celeryd\n /etc/init.d/grayson-event\n\nModify firewall settings appropriately to allow access to both httpd and node. The default port for node is 8080 and can be set in /grayson.conf.\n\nGrayson is at https:///grayson\n\n\nNext Steps\n==========\n\nGrayson is in early alpha. It has been tested with Pegasus 3.0.1.\n\nSome things are clear:\n\n * Add support for, and move all samples to Pegasus 4.0.x\n * Move to using Pegasus STAMPEDE for event detection \n * Use the SQLAlchemy STAMPEDE API provided by Pegasus\n * Modify event notification to scope events to the selected subworkflow - not the whole thing.\n * A non-graphical approach is needed at least as an option.\n\n\nBuild Environment\n=================\n\nGrayson's built at the [RENCI continuous integration system](http://continuousintegration.wordpress.com).\n\n* [Automated Build](http://ci-dev.renci.org/hudson/view/RCI/job/rci-grayson/)\n* [API Docs](http://ci-dev.renci.org/hudson/view/RCI/job/rci-grayson/javadoc/)\n* [Coverage Report](http://ci-dev.renci.org/hudson/view/RCI/job/rci-grayson/507/cobertura/)\n* [Static Analysis](https://ci-dev.renci.org/hudson/view/RCI/job/rci-grayson/ws/pylint.html)\n\nAutomated unit test output can be seen in the build log. Tests currently focus on Pegasus DAX generation. PhantomJS is also used to test the user interface.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/stevencox/grayson", "keywords": null, "license": "LICENSE.txt", "maintainer": null, "maintainer_email": null, "name": "grayson", "package_url": "https://pypi.org/project/grayson/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/grayson/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/stevencox/grayson" }, "release_url": "https://pypi.org/project/grayson/0.1.0/", "requires_dist": null, "requires_python": null, "summary": "Grayson cluster, grid and cloud computing SDK.", "version": "0.1.0" }, "last_serial": 792681, "releases": { "0.1.0": [ { "comment_text": "built for Linux-3.4.7-1.fc16.x86_64-x86_64-with-glibc2.2.5", "digests": { "md5": "39bfa6b0596338b756a96c6b568c4db6", "sha256": "aadddfd30649cd0ae34b818b5a84dcfc95033f40b3038ccf65f523134150c199" }, "downloads": -1, "filename": "grayson-0.1.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "39bfa6b0596338b756a96c6b568c4db6", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 291355, "upload_time": "2012-08-13T22:02:01", "url": "https://files.pythonhosted.org/packages/d2/13/3a65888162a5ca2b99a0b4f83333787c1e00d8bd8224ae510528370a593a/grayson-0.1.0.linux-x86_64.tar.gz" } ], "alpha-0.8": [] }, "urls": [ { "comment_text": "built for Linux-3.4.7-1.fc16.x86_64-x86_64-with-glibc2.2.5", "digests": { "md5": "39bfa6b0596338b756a96c6b568c4db6", "sha256": "aadddfd30649cd0ae34b818b5a84dcfc95033f40b3038ccf65f523134150c199" }, "downloads": -1, "filename": "grayson-0.1.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "39bfa6b0596338b756a96c6b568c4db6", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 291355, "upload_time": "2012-08-13T22:02:01", "url": "https://files.pythonhosted.org/packages/d2/13/3a65888162a5ca2b99a0b4f83333787c1e00d8bd8224ae510528370a593a/grayson-0.1.0.linux-x86_64.tar.gz" } ] }