Code Monkey home page Code Monkey logo

compat's Introduction

chevah-compat

Chevah OS Compatibility Layer.

Depends on:

  • pam - for pam authentication
  • arpy - for loading libraries on AIX.

Only Python 2.7 is supported for now.

Unified interface for working with operating system accounts on Unix and Windows, see IOSUsers.

Support for starting Unix daemons.

Importing this module on Windows populates sys.argv with Unicode values.

The unified interface for working with operating system file systems provides:

  • Unicode
  • allowing impersonated filesystem access
  • allowing chrooted filesystem access
  • single internal path separator: always '/'.
  • listing root directory (on Windows, '/' lists all available drives, while '/c/' lists drive c:)
  • setting/getting filesystem node owner/groups
  • open files in various modes: read-only, write-only, append.

compat's People

Contributors

adiroiban avatar alibotean avatar bgola avatar danuker avatar dumol avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

garrybrayn

compat's Issues

Add a testing harness for JS

T479 task was created by adiroiban on 2012-03-10 14:07:20Z.
Last changed on 2012-07-01 06:19:06Z.

Beside running tests in Selenium, we also want to have a fast way for running js unit tests.

Build Python with ctypes

T636 task was created by adiroiban on 2012-06-04 08:23:28Z.
Last changed on 2012-06-04 09:34:44Z.

Refactor configuration_file to use the system_filesystem

T317 task was created by adiroiban on 2011-11-01 21:37:48Z.
Last changed on 2012-07-01 06:21:03Z.

Rightn now the configuration_file module uses its own os call for opening and checking if a file exists.

It should use the 'higher' level methods from system_filesystem

Create RHEL 5 x86 Python Binary Dist

T396 task was created by adiroiban on 2011-12-29 03:02:56Z.
Last changed on 2012-07-01 06:21:03Z.

The current rhel-x86 should be renamed to rhel6-x86 and we should add a rhel5 version.

Look for a api documentation tool

T447 task was created by adiroiban on 2012-02-24 21:02:17Z.
Last changed on 2012-07-01 06:19:06Z.

We would like to export all docstrings and read them as html files

I tried pycco, but I was not happy.

  • it creates separate files
  • it does not creates an index
  • it does not creates a search

The Python sphinx Apidoc is already in place but needs to be tuned.

allow configuration options to start with space/tab characters

T165 task was created by adiroiban on 2011-06-02 14:41:17Z.
Last changed on 2011-11-01 14:15:42Z.

This is a bit tricky since we can have the following case

welcome_message: Some message from
                 mi side
   passive_port=1022
server_account: some account

Now it results in

welcome_message = "Some message from\n                 mi side\n   passive_port=1022"
server_account="some account"

We want the result:

welcome_message = "Some message from mi side"
passive_port="1022"
server_account="some account"

One possible solution is to look for the start of each line, and if starts with [ \t]*\w+[:=] then trim the white space and interpret it as a new rule.

Add an SQLite Logger Handler

T427 task was created by stas on 2012-01-16 14:34:35Z.
Last changed on 2012-07-01 06:18:50Z.

We need an SQLite Logger Handler

Duplicate of #2148

Add a version number to configuration files

T493 task was created by adiroiban on 2012-03-22 19:14:18Z.
Last changed on 2019-07-05 16:18:41Z.

All configuration files should have a version number, so that the upgrade process should know how to upgrade them.

Replace SpiderMonkey with Rhino

T117 task was created by adiroiban on 2011-04-19 01:32:56Z.
Last changed on 2012-07-20 08:00:04Z.

Right now SpiderMonkey is used for running JSLint.
It is fast but is not that easy to be distributed together with the development tools.

Rhino is java and can be distributed as a single cross platform JAR file.

We already need java for Selenium and Selenium is also distributed as a single.jar file.

Make conditional dependency on python-pam

T389 task was created by adiroiban on 2011-12-18 23:42:43Z.
Last changed on 2012-06-02 18:33:35Z.

agent or documentation don't actually need python-pam, but this dependency is due to commons.compat.unix_user.

See how to avoid this dependency, but for server make a startup-check, not runtime check.

also if ctypes is not there... unix_users should log a warning and continue.

copying pam.py should not be a big problem and we can live with it... but we should be able to work on systems witout ctypes

Add setproctitle module on all supported OS for server

T379 task was created by adiroiban on 2011-12-07 21:01:51Z.
Last changed on 2012-11-30 21:13:36Z.

sa/deps/binary-deps/python-setproctitle needs to be added to all supported binary-dist versions.

It would be cool to have a script that will run on each platform, and for each folder from sa/deps/binary-deps, will "run python setup.py build" and will copy the result files to binary-dist

Drop-privileges for Windows

T627 task was created by adiroiban on 2012-05-25 08:15:03Z.
Last changed on 2012-05-25 20:20:21Z.

On windows, once a privilege is droped, it can not be reobtained.

Maybe sometimes we will create a dedicated window services that will run in privileg mode and provide a simple API for the server.

refactor home_segments and root_segments

T183 task was created by adiroiban on 2011-06-27 13:23:31Z.
Last changed on 2011-09-27 12:42:18Z.

since home_segments and root_segments can not be changed and also they always return a new copy of the segmnets

Add tests for openFile and getFileSize

T397 task was created by adiroiban on 2012-01-01 22:46:25Z.
Last changed on 2012-06-04 08:00:43Z.

def openFileForReading(self, segments):
def openFileForWriting(self, segments):
def openFileForAppending(self, segments):
def getFileSize(self, segments):

Overall diagram from products interaction

T112 task was created by adiroiban on 2011-04-03 15:13:54Z.
Last changed on 2014-12-30 14:54:36Z.

Draw some diagrams to represent interaction between agent , server , central web manager.

Draw diagrams to represent interaction of each product with the operating system.

Decide License text for SFTPPlus products

T601 task was created by adiroiban on 2012-05-17 09:50:08Z.
Last changed on 2012-10-21 08:24:11Z.

We need to decide the license text for SFTPPlus Products and distribute it together with each copy of the product.

Right now we have:

  • SFTPPlus Client is not distributed with any License text.
  • SFTPPlus Server distributed with this https://github.com/chevah/server/blob/master/LICENSE , and in 'doc' folder the third party code library licenses are automatically copied when distributable package is created.

The license should be a single file and we will concatenate all licenses. This is how other companies are distributing the license.

The license text start with the specific product license and the it follows stating what part of the product are licensed with other type of license and then listing the third party license.


Tim, can you please propose the first draft for the text of the SFTPPlus product license.

Please create a document on Google Docs and share it with us.

Regarding the license text for third party libraries, I will take care of automatically including them in the final license text.

Create a changelog or revision history for documentation

T372 task was created by adiroiban on 2011-12-03 19:30:56Z.
Last changed on 2012-07-01 06:19:11Z.

The SFTPPlus documentation should have a dedicated Document Revisions page listing all changes to the documentation in an user friendly mode.

This should be generated from the BZR logs.

Fix setOwner method on Windows

T190 task was created by adiroiban on 2011-06-30 18:01:09Z.
Last changed on 2013-02-13 08:21:02Z.
PR at #4.

This needs to be fixed first in chevah.compat ... and the update the server to use the new code.

add test for system_users.getSuperAvatar

T196 task was created by adiroiban on 2011-07-14 14:14:27Z.
Last changed on 2013-02-06 12:16:24Z.

or see how we can refactor so that getSuperAvatar is not needed.

Fix ccc as a standalone script

T596 task was created by adiroiban on 2012-05-15 00:10:44Z.
Last changed on 2012-05-25 20:18:02Z.

ccc.sh can not depend on functions since it is designed to be executed standalone

Document the goals and design principle for events/hooks/triggers

T111 task was created by adiroiban on 2011-04-03 14:26:23Z.
Last changed on 2014-12-30 14:55:07Z.

Only use "trigger" for the idea of events/hooks .. etc

Add "trigger" to the terminolog page and explain the idea of triggers.

Add more documentation for triggers architecture

Add a better algorithm for finding project root folder

T301 task was created by adiroiban on 2011-10-25 22:43:49Z.
Last changed on 2012-07-01 06:25:58Z.

Right now, both paver.sh and pavement_lib.py scripts asumes that the project root is at '../..'

This is true for most of the project... but sometimes it can fails (ex. deps will not work.)

Include reference to dependent git revision

T597 task was created by adiroiban on 2012-05-15 02:43:00Z.
Last changed on 2012-05-25 20:18:13Z.

The files from deps should not be deleted.

When releasing a product we should record the version of the dependecneis

Create Python binary-dist for RHEL-5-X64

T395 task was created by adiroiban on 2011-12-27 19:07:40Z.
Last changed on 2012-07-01 06:21:03Z.

It looks like the current Python binary dist is not compatible with RHEL-5-X64.

We need to check if it works with RHEL6 and see if we need a special version.

$ paver deps
Update pavement_lib.py.
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/srv/buildslave/chevah/infrastructure/buildbot-slave/build-rhel-x86_64/lib/python2.5/paver/tasks.py", line 6, in <module>
    import inspect
  File "/srv/buildslave/chevah/infrastructure/buildbot-slave/build-rhel-x86_64/lib/python2.5/inspect.py", line 32, in <module>
    from operator import attrgetter
ImportError: /srv/buildslave/chevah/infrastructure/buildbot-slave/build-rhel-x86_64/lib/python2.5/lib-dynload/operator.so: ELF file OS ABI invalid

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.