| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
This behaviour will change in Python 3.0, so we should make sure it's explicit
right now.
|
|
|
|
|
| |
* try..finally instead of osp.exists()
* Explicit relative imports
|
|
|
|
|
|
|
|
|
| |
This is the kind of bug that is easy to miss without proper testing :)
init_gpghome() would never work because it would check if self.gpghome
was a valid gpghome before creating it :p
Reported by Anielkis Herrera González (p0w3r3d)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Slave can "take" jobs from the master now
- Asymmetrical encryption is used via GPG
- models.Slave stores the gpg fingerprint in models.GPGFingerprintField
- Slave imports the master's GPG key (/slave_api/autotua_master.asc)
* Currently, Slave registration is manual (./manage.py shell)
- Slave does fancy encrypted pickle talking (autotua.talk()) :)
* "Take" jobs via autotua.Jobs().takejob(maintainer, job_name)
- slave/autotua/crypt/__init__.py:
* Implements the glue with `gpg` (maybe pygnupg later?)
* Crypto() object. Has encrypt() and decrypt()
- Also see autotua.decrypt_if_required()
- GNUPGHOME for the slave is /var/tmp/autotua
* => Job().fetch() requires root access (userpriv/sandbox later)
* Phases store state to allow pausing/stopping and resuming of jobs
- Future feature, not really used ATM
- Job().everything() has prelim support for "resume"
* Various small bug fixes and tweaks
- Yes, I know I need to make this stuff more atomic :p
|
|
|
|
|
| |
- For compatibility with AGPL-3
- Include COPYING
|
| |
|
|
|
|
|
|
|
|
|
| |
- Allow the master to run with a non-installed autotua-slave by not
failing if /etc/autotua/slave.cfg doesn't exist
- Use os.makedirs instead of os.mkdir in config.py for creating the
autotua dirs
- The user needs to manually enter the URL to the master server
(temporary change)
|
| |
|
|
|
|
| |
If we can't write to the logfile, don't :p
|
|
|
|
|
|
|
|
|
|
| |
* Compatibility with git-1.6 (git-* commands are gone)
* atexit.register() needs a function *reference* you dope :)
* job_data['atoms'] is no longer an array, but is a space-separated string
* jobuild.name -> jobuild.atom (a while ago)
* Replace string exceptions with Exception(); for compatibility with
unicode objects sent by django-1.0
* jobtagedir is different when using a chroot and not (duh)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Move configurable constants from const.py to config.py
- These values are now overidden by /etc/autotua/slave.cfg
* config.VERBOSE is overidden in slave.cfg
- Fix all packages to import config.py instead
- Change USE_PROXY to IGNORE_PROXY
* bai bai test_modules.py. Testing is now done by executing modules
* Install git-proxy-cmd.sh into /usr/bin
Advantages:
* python setup.py sdist
* python setup.py install --root ~/autotua-slave
* python setup.py help # ;-)
|
|
|
|
| |
don't mount DISTFILES_DIR if it's PORTAGE_DIR+'/distfiles'
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
slave/autotua/jobuild/__init__.py:Resolver()
* Basic dependency resolution; gives back a list of the job order
* Does not deal with circular dependencies
* Does not parse SIDEPEND
slave/autotua/__init__.py
slave/autotua/bin/jobuild.sh
slave/autotua/bin/jobuild-functions.sh
slave/autotua/jobuild/__init__.py
* Pass jobtagedir around; don't assume it's always /tmp/autotua/jobtage inside a chroot
slave/autotua/daemon/__init__.py
slave/autotua/jobuild/__init__.py
* Change things so we don't always have to chroot for parsing. Major speedup for dep resolution.
* jobtagedir needs to be passed since we might not be chrooting for parsing
slave/autotua/chroot/__init__.py
* const.CHAUTOTUA_DIR could change from /tmp/autotua; use that instead of hardcoding the path
slave/autotua/const.py
* Use abspath for AUTOTUA_DIR
|
|
|
|
|
|
|
|
|
| |
* stage url processing is shifted to the master now
* Communication is via protocol 2 (binary) pickles
* slave API can be accessed via
/slave_api/jobs
/slave_api/jobs/<username>
/slave_api/jobs/<username>/<job_name>
|
| |
|
| |
|
|
|
|
| |
git-proxy-cmd.sh uses the http_proxy variable to tunnel the git connections
|
|
|
|
| |
- Document a few functions in jobuild-functions.sh
|
| |
|
|
|
|
|
|
| |
to be a missing '/'
Tell me. What did I do to deserve this?
|
|
|
|
| |
(reduce clutter)
|
| |
|
| |
|
| |
|
|
|
|
|
| |
- Another bug! (armin76 you... :P)
RMTREE_INIT was incomplete and incorrect
|
|
|
|
|
|
|
|
|
|
| |
in most cases. (Found by armin76)
- Use names for the return values of is_repo() (I should've implemented Ford_Prefect's suggestion earlier)
- Renovate git cloning/fetching; inspired from git.eclass (Thanks for git.eclass dberkholz!)
- Fix detection of repository for bzr
- rm -rf properly when {git,bzr}-export-ing
- Add a few comments explaining what's going on
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
slave/autotua/__init__.py:
- _fetch_src -> _setup_jobfiles
* Fetch jobfiles and hardlink them inside the chroot
* Copy them if hardlinking fails
- Job().run()
slave/autotua/bin/jobuild-functions.sh:
- Flick unpack() from pkgcore ;p
- Skeleton src_unpack()
- run_all_phases()
- Fix indentation in get_param()
slave/autotua/bin/jobuild.sh:
- run_phase() -- implement "all" -> run_all_phases()
slave/autotua/chroot/__init__.py:
- mkdir -p $chrootdir/{bin,jobfiles,jobtage,src}
* jobfiles will be linked into jobfiles/
* Extracted into src/
- Don't need to import sys
slave/autotua/jobuild/__init__.py:
- Document run_phase()
- Check for returncode in _msg(msg)
slave/autotua/const.py:
- New 2008.0 release! :)
slave/autotua/test_modules.py:
- Update to run jobs
- Update TODO
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
chroot :P
Why? Because everything has to be done in that enviroment stupid!
slave/autotua/jobuild/__init__.py:
- self.jobuild is now relative to the jobtagedir
slave/autotua/bin/jobuild.sh:
- Get AUTOTUA_DIR from autotua.daemon.Spawn()
- Prepend AUTOTUA_DIR (inside the chroot) to the jobuild path
slave/autotua/daemon/__init__.py:
- Chroot all spawned processes
- Send const.CHAUTOTUA_DIR (AUTOTUA_DIR inside the chroot) to the process
slave/autotua/__init__.py:
- Prepare chroot before parsing
|
|
|
|
|
| |
- Bind-mount read-only by default
- Everything except ${DISTDIR} is bind,ro
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Revamp _clean_mounts()
* Reads /proc/mounts to find all mounts inside chrootdir
- Move out bind mount code in _setup_mounts() to _bind()
- Bind mount ${workdir}/jobtage and autotua/bin into ${chrootdir}/tmp/autotua
- Tidy up in setup() before preparing chroot
- Move ${chrootdir}/tmp/autotua to ${chrootdir}/tmp/aututua-${timestamp}
- Replace useless osp.joins with direct path separators
autotua.Job():
- Tidy before cleaning in clean()
|
| |
|
| |
|
|
|
|
|
|
| |
* Makes the jobuild processor cleaner
- Fix a bug in autotua.Job()._fetch_src() -- processing is no longer handled via the Jobuild() object
- Update TODO to reflect this commit
|
|
|
|
| |
default will be to fetch portage snapshot
|
|
|
|
|
| |
- Insert placeholder for running phases inside a chroot (autotua/bin/jobuild.sh)
- Remove a stray debug print
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Here's a load of further changes:
- Move jobtage repo to git; incorporate that change here
* Massive changes in autotua.sync =p
* No way I'm sitting and documenting the changes
* Syncing is still ugly, will document how it works once it's finalised
- Print some more status info in Job() and autotua.sync
- autotua.Job(),autotua.chroot:s/clean/tidy/
- Introduce new variable autotua.const.FULL_CLEAN to remove chroot data (unused atm)
- Update test_modules.py
- Update TODO
|
| |
|
|
|
|
| |
FTR, r'[0-9]+\.[0-9]+' + native python sorting is the sort order
|
|
|
|
| |
- add --progress to rsync
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- "jobuilds" -> "atoms"
* autotua:
- Fix bad bug where jobuild objects were created before the jobtage tree was exported
- We can't parse jobuild src_uri before the objects are created => move to prepare()
- Jobuild portconf will now be stored inside the jobtage tree
* autotua.fetch:
- If a filename is omitted, assume basename(uri)
* autotua.chroot:
- rename prepare() to setup() -- prepare() sounds like it's about to be ready for running jobs :P
* autotua.jobuild:
- Read everything instead of just one line -- results of a single request will often be on multiple lines
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
autotua.jobuild.Jobuild()._best_jobuild() (incomplete)
- Always use a tuple in autotua.sync.Command()._get_args(); fixes a nasty runtime bug
- Use subprocess module in autotua.chroot
- Implement an (incomplete) autotua.chroot.WorkChroot().clean()
- Implement an (incomplete) autotua.Job().clean() which calls autotua.chroot.WorkChroot().clean()
- Pass around jobdir = '/var/tmp/autotua/work/<job_atom>/' instead of jobtagedir, chrootdir etc
- Add testing for autotua.Job() in test_modules.py
- scripts/init-autotua-tmpdirs.sh for initialising the tmpdir structure
- Add README
|
|
|
|
|
|
|
|
|
|
|
|
| |
jobuild/__init__.py)
- autotua.chroot doesn't take a Job() object as a param, specific params are needed now
- WorkChroot().prepare() calls self.pristine.prepare()
- Skeleton Jobuild().split_atom() function (to be moved out later)
- Only supports fully versioned atoms atm
- Integrate chroot and jobuild with autotua.Job() [messy atm]
- Update TODO
- test_module.py updated, but cannot test Job() right now
|
|
|
|
|
|
|
| |
- Use the subprocess module instead of os.system()
- Verbosity control via autotua.const.VERBOSE
- Don't compress rsync data (add a flag|AI later)
- .gitignore
|
| |
|
|
|
|
|
|
| |
return value checking.
- Abstract out the commands used to sync and init, support for non-standard behaviour via "params" (ugly)
|
|
|
|
|
|
|
|
|
|
|
| |
autotua.chroot:
- /usr/portage does not exist in the stage3, os.mkdir it
- Rename force_reset to reset
- Quote the umount command
- Fix chrootdir typo
test_modules.py:
- Testing for autotua.chroot
|
|
|
|
|
|
|
|
| |
- chroot.PristineChroot().prepare() implemented
- Use the stage filename instead of a stage fetchable for init-ing chroot.PristineChroot()
- chroot.WorkChroot().prepare() works now
- Define const.{TARBALL_DIR, JOBFILE_DIR}
- (Finally) make sync.Syncer() consistent -- it syncs contents into destdir
|
| |
|
|
|
|
|
|
|
|
|
| |
- autotua.chroot -- self.destdir -> self.workdir
- Make autotua.sync.Syncer().sync() behaviour consistent (rsync was different)
- autotua.const -- CHROOT_WORKDIR -> WORKDIR
- MAIN_JOBTAGE_DIR -> JOBTAGE_DIR
- Each job has it's own exported jobtage tree (WORKDIR+'/jobtage')
- Support bzr-export as a Sync scheme
|