Code Monkey home page Code Monkey logo

yabtool's People

Contributors

jff-bohdan avatar

Stargazers

 avatar

Watchers

 avatar  avatar

yabtool's Issues

Add support of logging into file (continuous log and session log)

Add support of logging into file. File path need to be specified in command.

Should be supported two types of log files:

  • big log file that will be appended;
  • log file for each execution.

Big log file need to be rotated with some rule (by size, by age).

Small file should be used in future to send as packed attachment in email notification.

Add statistics for flow execution

Show information (for example in table format) with statistical information about:

  • time required for each step in flow;
  • which steps voted for flow skipping and why (detailed explanation);
  • individual statistics for each step (if step want to show some data). S3 backup can show: how many objects were uploaded (names + size), copied between buckets (where and from), deleted (names), time required for object upload.

Add garbage collector for session log - `--add-session-log`

Add simple garbage collector for session logs that added using key --add-session-log. This collector should:

  • start in folder for session logs;
  • find possible candidates for session logs by analyzing file names by mask;
  • remove outdated files (by date when file was created).

Add ability to configure `--add-main-log`

Add ability to configure --add-main-log. Add into configuration file (with ability to overwrite from secrets file) options for:

  • file retention policy;
  • file rotation policy;
  • flag that compression enabled.

Improve dry run for S3 upload step

Improve dry run for S3 upload step to check that all required permissions given.

This step should:

  • check that bucket exists;
  • list keys in bucket;
  • create non empty object (with dummy data) for each upload rule;
  • tag object with some tags;
  • copy object from one key to another.

In future dry run should perform also:

  • set life-cycle for object;
  • set end-of-life for object.

Add ability to override parameters for specific steps in flow

Add ability to override parameters for specific steps in flow. For example, step firebird_backup contains parameter command_template which is useful to override for debugging purpose by adding -metadata. This parameter allows to dramatically decrease time required for one iteration

Add ability to passthrough command line arguments to the flow steps

Add ability to passthrough command line arguments to the flow steps. Yabtool flow orchestrator should be able to passthrough unknown arguments to flow steps. argparse.ArgumentParser::parse_known_args should be used to perform this operation, unknown arguments should be passed for further parsing by flow steps

Add ability to skip flow in case if artifacts already available

Some flows may be skipped in case if required artifacts already available in target storage.

For example: entire fb7zs3-flow may be skipped if step s3_multipart_upload will decide that all artifacts required for this execution already available in target S3 bucket.

In some cases more than one step may vote for skipping and/or flow execution. Yabtool should support multi-vote scenario

Command line argument --force-flow should allow to disable voting for flow skipping

Add new flow - single run S3 backup (ET approaches in work)

Add new flow - single run S3 backup (ET approaches in work).

Flow should execute FB backup and perform regular steps and then upload result object to the S3 bucket with specific key. No object rotations should be applied.

Flow should:

  • perform backup;
  • compress and encrypt file, calculate hashed;
  • generate name folder (in S3) with current timestamp and optional suffix provided by user (from command line). Example key 20191119T200304_new_backup;
  • upload backup file to S3 with generated key.

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.