{ "info": { "author": "OpenSight", "author_email": "UNKNOWN", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Pyramid", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU Affero General Public License v3", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", "Topic :: System :: Monitoring", "Topic :: System :: Networking :: Monitoring", "Topic :: System :: Systems Administration" ], "description": "Introduction\r\n===========\r\n\r\nStorLever is a management, configuration, monitor system for storage & network resource of Linux, \r\nwhich provides a set of well-designed RESTful-styled web API as well as a web panel. \r\n\r\nThe primary goal of StorLever is to ease the management of storage resources on Linux server. \r\nBuilt on top of existing Linux management tools, StorLever provides a user-friendly web panel \r\nfor system administrators, which can reduce the learning curve and enhance the user experience for them. \r\n\r\nBesides web panel, StorLever offers a set of RESTful-style(HTTP+JSON) APIs to manage the Linux system remotely, \r\nwhich is another powerful feature. Based on it, the third-party management software on another host\r\n(such as central manage system) can easily manage the remote Linux system no matter what language and platform \r\nit is built on. Human can pleasently understand the REST API's output as well as the computer program can interpret it easily.\r\nAny program language has its mature library to handle HTTP protocol and interpret JSON string. SDK for StorLever \r\ncan easily develop on any language and platform.\r\n\r\nStorLever focus on the management of storage resource of Linux system, which is the most diverse and difficult part \r\nof Linux, including block device, LVM, MD, FileSystem, NAS, IP-SAN and etc. They are usually the nightmare for system \r\nadministrators, and often take a week or more time of them to configure these functions but not sure they are working in\r\nthe best state. StorLever is the saviour of this situation.\r\nThrough accumulating rich storage management experience and exporting a clear, simple interface, StorLever can solve these \r\nproblem in minutes. \r\n\r\nStorLever is not just a frozen software, but also a extensible framework. Anyone who want to manage another object by StorLever, \r\ncan easily develop an extension(plug-in) in a separate project without the need to change even one line of code in StorLever.\r\n\r\nStorLever is built on the pure python so that it's simple, understandable, stable and reliable, easy to develop and deploy, \r\nThe principle of StorLever's design is Simple, Extensible, Easy to use.\r\n \r\n\r\nHighlights:\r\n----------------\r\n\r\n* Integrates various storage technologies of Linux,including LVM, Raid, NAS/SAN, etc.\r\n* Provides various interface, including RESTful API, Web UI, CLI(in sub-project), SDK(in sub-project)\r\n* Extensible, easy to add a extension(plug-in) \r\n* Simple, pure python\r\n\r\n\r\nStorage Resources\r\n-----------------\r\n\r\nBy \"storage resources\" we mean block devices, RAID, LVM, NAS etc.\r\nFollowing is a non-exhaustive list of what is under the control of the newest StorLever:\r\n\r\n* Block device\r\n* SCSI device\r\n* MD Raid\r\n* LSI Raid (LSISAS2108, LSISAS2008 chip)\r\n* LVM\r\n* XFS\r\n* EXT4\r\n* NFS(Client & Server)\r\n* SAMBA\r\n* FTP\r\n* iSCSI(Initiator & Target)\r\n\r\nFor the complete list of software packages involved, check out the dependency document.\r\n\r\nWhy StorLever\r\n-------------------\r\n\r\nTraditionally, Linux distribution would provides two kinds of local operation interface for \r\nsystem administrator, typical CLI and GUI. They used to be the most popular approach to manage\r\nLinux system. As the network, especially Internet becomes universal, Linux system usually locates\r\non the remote machine(especially VPS, Virtual Private Sever). Local interface does not make sense \r\nany more, administrator like to use SSH to login the remote system to manage them. Management with \r\nSSH is flexible, but difficult, painful, time-consuming. Some Web Control Panel project is developed \r\nto assist the administrators to fulfill this task. \r\nWith the popularity of cloud computing, more and more VPS must be managed by the administrators, \r\nso that they need the assist of a central management platform to perform the management task, \r\nwhich need the simple management APIs of the remote system. \r\n \r\nStorLever is the answer of these problem.\r\n\r\nWhy Web API\r\n-----------\r\n\r\nAll those \"resources\" mentioned above, come with their own utilities like command line\r\nand configuration files for the management purpose, but unfortunately all in different style.\r\nTo master all those the command lines and configuration files requires non-trivial effort, \r\nand to access these utilities remotely and programmatically requires another set of skills,\r\nwhich make things even worse.\r\n\r\nSo StorLever comes to the rescue. By providing a set of uniformed, well-designed web API, \r\nwe abstract away all the configuration and command line details, with simplicity and consistency\r\nin mind during API designing, people will find them easy to understand. \r\n\r\nAll those API are HTTP based, which makes them totally platform and programming language independent.\r\n\r\nDifferences with other similar projects\r\n---------------------------------------\r\n\r\nThere are already projects like openfiler which service the similar purpose, but what's\r\nthe difference?\r\n\r\nOpenfiler or freeNAS are both storage systems delivered with the whole operation system\r\nand all the utilities sit on it, on the contrary, StorLever is only a set of API that helps the user\r\nto ease the management of storage resources. It is based on top of existing management tools in Linux \r\ndistribution, e.g. RHEL/CentOS. RHEL/CentOS 6/7, which is maintained by a bunch of Linux experts\r\nand has already proven itself the most rock-solid enterprise-class Linux distribution. StorLever also depends\r\non the packages/RPMs delivered by RHEL/CentOS, but user has the freedom to install only the packages they\r\nactually required. \r\n\r\nAjenti is another excellent project which is also developed in Python, and its purpose to provide a web control\r\npanel for Linux on VPS and it's also extensible. It is a general control panel including some general utilities of \r\nLinux, but not focus on the storage management, and also does not provides software development API to other system\r\n\r\nOpenLMI is a very similar project to StorLever, and it has been included in the RHEL 7, which also provides APIs for \r\nadministrators to remotely manage, configure, monitor Linux system. But we don't think it's on the right way, \r\nOpenLMI is based on the technology so called \"WBEM\" to implement its scalability (extensibility). \r\nWBEM is a very complex technology architecture initiated by some big enterprise like Microsoft\u3001Compaq, Cisco at 1990s \r\nto support enterprise distributed computing environment. \r\nIt is consist of many components and many protocol, flexible and considerate, but difficult to understand, \r\ndifficult to deploy, difficult to develop. The network datagram is also difficult to read by human. \r\nWe don't think we need such a complex architecture to implement remote management of Linux system. \r\nStorLever is simple framework to implement scalability, provides simple API, friendly web page. As to OpenLMI, \r\nStorLever is an alternative lightweight solution to fulfill the same mission. \r\n\r\n\r\n\r\nInstall\r\n====================\r\n\r\nStorLever is web service designed to ease the management of various\r\nstorage resource on your CentOS/RHEL 6 server. It is based on the brilliant \r\nPython web framework [Pyramid](http://www.pylonsproject.org/) to build its web service, \r\nand make use of [PasteDeploy](http://pythonpaste.org/deploy/) system to deploy its WSGI server/app configurations\r\n\r\nIt requires Python 2.6 or higher, but Python 3k is not supported. \r\n\r\n\r\nInstalling from source code\r\n-------------------\r\n\r\nDownload and unzip StorLever's source package in your Linux system. StorLever can be run on RHEL/CentOS 6 or above,\r\nfor other Linux distribution(like Fedora, Ubuntu), it's not sure can be run. \r\n\r\nAt the StorLever project's root directory, enter the following command to install StorLever into your Linux system \r\n\r\n\t$ python setup.py install\r\n\t\r\nThis installation process would check any require project and download them from pypi. \r\n\r\n\r\nConfigure\r\n---------------------\r\n\r\nStorLever would install its paste config file into your system at the following path:\r\n\r\n $ /etc/storlever.ini\r\n\r\nThis configure file would be read at StorLever startup by default. You should keep the most option values default \r\nin this file, except the server port. Server listen port for StorLever is 6543 by default, and you can change it as you want.\r\n\r\n\r\nStartup\r\n---------------------\r\n\r\nAfter installing StorLever successfully, you can start up StorLever's service in two way: 1) daemon mode; 2) foreground mode.\r\n\r\n### Daemon mode:\r\n\r\nIf you want to start up Storlever's Web server at background, so that it can run alone from your console, \r\nyou can enter the following command: \r\n \r\n $ pserve --daemon --log-file=[log file] --pid-file=[pid file] [paste config file]\r\n\r\nIn this situation, StorLever would read paste configurations from the given [paste config file] \r\n(StorLever project root directory contains some sample ini file), store its process pid into the [pid file] for stop, \r\nredirect its stderr/stdout to /dev/null, and output the log to [log file]\r\n\r\nIf you want to stop the StorLever's server in daemon mode, enter the following command: \r\n\r\n $ pserve --stop-daemon --pid-file=[pid file] \r\n\r\n[pid file] is the file contains the pid of the daemon. \r\n \r\n\r\n### Foreground mode:\r\n\r\nIf you want to debug or test StorLever, you may want to start StorLever's server at foreground mode, \r\nso that you can read the stdout/stderr from StorLever's Server. Enter the following command would start up StorLever's \r\nServer in foreground mode\r\n\r\n $ pserve [StorLever paste config file]\r\n\r\nStorLever's paste config file can be chosen the ini file under StorLever project root directory. \r\n\r\nIf StorLever is running at foreground mode, just type Ctrl+C can terminate it. \r\n\r\nAfter that, StorLever is running, enjoy!!!! \r\n\r\n\r\nStartup On Boot\r\n------------------------------\r\n\r\nIf you want to automatically start up StorLever on system boot, you can make use of the init.d script of StorLever\r\nand chkconfig utility to add StorLever's service into the system rc.d directory. Follow the guide below: \r\n\r\nFirst, you should copy the init.d script and configure file from StorLever project into your system \r\n/etc directory. At the StorLever's root directory, type the following commands: \r\n\r\n $ cp initscripts/storlever /etc/init.d/\r\n $ cp storlever.ini /etc/\r\n \r\nThen, Add StorLever into the system rc.d directory through \"chkconfig\" utility: \r\n\r\n $ chkconfig --add storlever \r\n\r\nThen, reboot the machine, and you can see StorLever would run in daemon mode. \r\n\t\r\nFor Developer\r\n------------------------\r\n\r\nIf you are a developer who want to debug/develop StorLever, maybe you don't want to install StorLever in your system \r\nbut just want to run it. You can enter the following command at the StorLever's project root directory: \r\n\r\n\t$ python setup.py develop\r\n\r\nThis instruction would never install the StorLever in your python's site-packages directory. Instead, it just makes a link \r\nin your python's site-packages directory to the StorLever's project root directory. Also, this process would not \r\ninstall the init script and paste configure file into your system /etc/ directory.\r\n\r\nThen, you can enter the following command to start up StorLever in foreground mode \r\n\r\n $ pserve --reload storlever_dev.ini\r\n\t\r\nthis command can automatically reload your code when code change found, and it can printout useful debug information \r\nwhen unexpected exception raised in the code, and some other helpful functionality for code debug.\r\n\r\n\r\nVirtualenv\r\n----------\r\n\r\nIf you are a new comer of python, you can skip this section. \r\n\r\nIt is recommended to use virtualenv for Python library management. Though there might\r\nbe only one Python interpreter install, virtualenv can make your system looks like having \r\nmultiple Python installations, with each has its own set of libraries independently from others,\r\ntherefor there will never be library version conflicts for different projects.\r\n\r\nFor more about this topic, check out its official document \r\n[virtualenv](http://www.virtualenv.org/en/latest/)\r\n\r\n\r\n\r\nUsage\r\n====================\r\n\r\nAfter you successfully install StorLever and start it up in your system, your can use StorLever service in two way. \r\nBy default, StorLever listens on TCP port 6543, and you can change it in the paste ini configure file. \r\n\r\n\r\nUse StorLever with web panel\r\n-----------------------------------\r\n\r\nYou can enter the following URL in your browser to get into StorLever's login Page. \r\n\r\n http://[host_ip]:[port]/\r\n\r\n[host_ip] is the IP address of the system running StorLever, [port] is the TCP port StorLever listens on. \r\nThe login user by default is admin, password is 123456. \r\n\r\n\r\nUse StorLever with RESTful API\r\n-----------------------------------\r\n\r\nOn the other hand, StorLever highlights its RESTful-style API, you can use a http tools or browser to test them.\r\nAll API URI starts with the following string, and does not need authentication by now. \r\n\r\n http://[host_ip]:[port]/storlever/api/\r\n\r\nYou can refer to doc/api_ref.rst for more detail about each API's usage. \r\n\r\n\r\n\r\nDevelopment\r\n====================\r\n\r\nStorLever make use of Github to host its latest code with the following URL:\r\n\r\n https://github.com/OpenSight/StorLever\r\n\t\r\nDevelopers should use the issue system of Github to feedback some bug/requirement to StorLever\r\n\r\nIf Developers want to participate in StorLever's development and contribute their code, \r\nthey should use the Fork + Pull Request mechanism against StorLever's master branch. \r\nIf StorLever adopt your code, we would put your name in StorLever author list. Thanks for your suppport\r\n\r\nArchitecture\r\n----------------------\r\n\r\nWe provides a architecture picture in doc/ directory to help developer to understand StorLever's structure. \r\n\r\nStorLever includes 3 layer which implements different functions:\r\n\r\n* manager layer\r\n\r\nThis layer contains many manager objects, each one is responsible for a specific sub-system's management, \r\nsuch as LVM, FTP, File System, etc.\r\nThese manager objects are the core of StorLever, which locate at the bottom, \r\nand provides object-oriented interfaces to upper layer. \r\n\r\n* REST layer\r\n\r\nThis layer is responsible to output RESTful-style API to client. It get the RESTful request from clients, \r\ncheck parameters, and communicate with manager layer to get result. \r\nThis layer make use of manager layer and provides RERTful API to upper layer. \r\n\r\n* Web layer\r\n\r\nThis layer is to provides the Web Panel to administrator to manage the system. It call StorLever's RESTful \r\nAPI to show the result to administrator in their browser. \r\nThis layer make use of REST layer and provide a Web UI to administrator\r\nWe provide a specific document to describe the Web Page's design in doc/ directory.\r\n\r\n\r\nWrite an extension\r\n-----------------------\r\n\r\nIf you want to develop an extension(plug-in) for StorLever, you should follow some convention of StroLever. \r\nAnd each extension has the same architecture with StorLever, also includes three layers. \r\nWe would provide a How-to document to detail this topic. \r\n\n\nStorLever Changelog\r\n===================\r\n\r\nHere you can see the full list of changes between each release.\r\n\r\nVersion 0.1\r\n-----------\r\n- Initial version, not yet ready", "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/OpenSight/StorLever", "keywords": "storage restful web", "license": "AGPLv3", "maintainer": null, "maintainer_email": null, "name": "storlever", "package_url": "https://pypi.org/project/storlever/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/storlever/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/OpenSight/StorLever" }, "release_url": "https://pypi.org/project/storlever/0.1.2/", "requires_dist": null, "requires_python": null, "summary": "Management/Configure System for network and storage resource in linux system, with RESTful API", "version": "0.1.2" }, "last_serial": 1630753, "releases": { "0.1.0": [], "0.1.1": [ { "comment_text": "", "digests": { "md5": "774a707e790108a62404b5ed64f38d79", "sha256": "9990430a9775c7972439598371212a3e393b98c662710698305282fc2b1cffd0" }, "downloads": -1, "filename": "storlever-0.1.1.tar.gz", "has_sig": false, "md5_digest": "774a707e790108a62404b5ed64f38d79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2306199, "upload_time": "2015-07-13T05:55:55", "url": "https://files.pythonhosted.org/packages/63/5a/8a8cce169cec646f0b5602bef16dfee046b04a3932f8022c93369387e753/storlever-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "45575868dab6e56e8a6d0f7c581a975f", "sha256": "62bddc472dfb700bbe9d1447767bc2236169e6a7b87fa97059e4b6fc5b617ec4" }, "downloads": -1, "filename": "storlever-0.1.2.tar.gz", "has_sig": false, "md5_digest": "45575868dab6e56e8a6d0f7c581a975f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2308698, "upload_time": "2015-07-13T06:28:17", "url": "https://files.pythonhosted.org/packages/e2/2f/8370e674e5b2ab90d2fb5176bc977d4bc536ea07216f190a63990a180461/storlever-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "45575868dab6e56e8a6d0f7c581a975f", "sha256": "62bddc472dfb700bbe9d1447767bc2236169e6a7b87fa97059e4b6fc5b617ec4" }, "downloads": -1, "filename": "storlever-0.1.2.tar.gz", "has_sig": false, "md5_digest": "45575868dab6e56e8a6d0f7c581a975f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2308698, "upload_time": "2015-07-13T06:28:17", "url": "https://files.pythonhosted.org/packages/e2/2f/8370e674e5b2ab90d2fb5176bc977d4bc536ea07216f190a63990a180461/storlever-0.1.2.tar.gz" } ] }