Git Product home page Git Product logo

rrst's People

Contributors

catay avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

xiaoruiguo

rrst's Issues

drpm files required

Testing an upgrade from sles12 sp3 to sp4 during the zypper dup process, it asks about some *.drpm files which are not present in the repos.

These files *drpm are needed to perform the zypper dup, including them in the download scope will solve this problem.

Implement revision consistency check

The feature request in Issue #8 generates a new revision when packages are deleted on the local filesystem. This might result in metadata inconsistencies in previous revisions.
A package still listed in the metadata will not be available anymore on the local repo.

Implement a revision consistency check that invalidates the revisions with a metadata mismatch.

Implement local repository stages

Add a configuration option 'repo_stages' which should be an array defining the different stages.

repo_stages:
  - development
  - acceptance
  - production

New downloaded packages will be downloaded to the local repository in the first stage directory.
The tool should make it possible to promote a lower stage to a higher one.
It basically comes down to moving packages from one stage to the other.

Clean command fails as of the second run.

Problem

Running the clean command more than one time bails out because it can't find the file to remove.

$ ./rrst -c examples/config.yaml clean   
Clean cache repositories:  
Clean all  
2018/04/16 23:16:35 remove /var/tmp/rrst/cache/SLES-12-3-X86_64-updates/repomd.xml: no such file or directory

Cause

The error handling of the os.Remove function returns an error when removing a file that doesn't exists.
Issue is in repomd/repomd.go line 172.

Solution

Code needs to be refactored so the clean up of the cache gets simplified.
In the end you simply want to clean up the entire cache_dir/<repo_name> in one go.
Currently that's not happening which also leaves an empty directory.

Enhance the lookup order of the configuration file.

In the current implementation the default config location is /etc/rrst.yaml.
This can be changed through the -c option on the command line.

This should be enhanced with a proper lookup order which is more in line with the standard behaviour of Linux tools.

The lookup order of the configuration file should be:

  1. value provided as argument on the command line with the -c option
  2. value set as environment variable RRST_CONFIG_FILE
  3. default local location ${HOME}/.rrst/config.yaml
  4. default global location /etc/rrst/config.yaml

RedHat support

might be possible in future versions to have another different provider to handle RedHat repositories ?

Implement interactive mode for some commands

Commands that tend to do a lot of changes should ask for confirmation.

For example rrst update.

Additionally a flag should be foreseen to disable interactive questions.
It should also be possible to disable this at the configuration level.

tag command fails when not providing a revision

Creating a tag without specifying the revisions fails with:

$ rrst tag CENTOS-7-6-X86_64-updates bla
tag error:  Revision 0 not found.

The revision parameter should not be optional or in case it's optional, the tag should be automatically applied to the latest revision.

Probably best to make the revision parameter required to avoid confusion.

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.