Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fly: behaviour: add archive-pipeline command #5367

Closed
wants to merge 12 commits into from
Closed

Commits on Mar 30, 2020

  1. atc: behaviour: add ArchivePipeline endpoint

    #5315
    
    Driving this change with tests had some pain points. We decided to work
    outside-in, starting with an ATC integration test. It was difficult to
    move from the outer TDD loop to the inner - I was surprised by the
    number of seemingly-far-flung changes that were required to move from
    one failure to the next. These included:
    
    * adding an entry to the auditor to overcome a panic
    * modifying the `atc/api/present` package to link the DB entity to the
      API entity
    
    both of these things feel so easy to forget, and it might be nice if
    they could be described by a change in the same part of the codebase.
    
    Signed-off-by: Jamie Klassen <cklassen@pivotal.io>
    Co-authored-by: Bishoy Youssef <byoussef@pivotal.io>
    Co-authored-by: Aidan Oldershaw <aoldershaw@pivotal.io>
    3 people committed Mar 30, 2020
    Configuration menu
    Copy the full SHA
    ef631fe View commit details
    Browse the repository at this point in the history
  2. atc: behaviour: add flag to enable archive pipeline

    #5315 - as per
    #5346 (comment),
    the ability to archive pipelines is now behind an api flag
    `enable-archive-pipeline`.
    
    Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>
    Co-authored-by: James Thomson <jthomson@pivotal.io>
    aoldershaw and James Thomson committed Mar 30, 2020
    Configuration menu
    Copy the full SHA
    44d2670 View commit details
    Browse the repository at this point in the history
  3. atc: remove mig binary

    Not sure how that got in there!
    
    Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>
    aoldershaw committed Mar 30, 2020
    Configuration menu
    Copy the full SHA
    b404fbf View commit details
    Browse the repository at this point in the history

Commits on Apr 6, 2020

  1. api: add 401 test for archiving

    Specifically for the pipelines/:pipeline_name/archive endpoint
    
    Signed-off-by: Bishoy Youssef <byoussef@pivotal.io>
    Co-authored-by: Taylor Silva <tsilva@pivotal.io>
    YoussB and taylorsilva committed Apr 6, 2020
    Configuration menu
    Copy the full SHA
    99071ef View commit details
    Browse the repository at this point in the history
  2. atc: behaviour: unpausing archived pipelines fails

    #5316
    
    Rather than adding a concrete error type to check against, we elected to
    create an interface for our domain-specific error to satisfy - see:
    
    https://dave.cheney.net/2016/04/27/dont-just-check-errors-handle-them-gracefully
    
    Following the example of trigger-job we decided that 409 Conflict was the
    most logical http status to use to represent this kind of policy
    violation.
    
    We decided to add the `Conflict` interface to the `db` package because
    it seems there is no more-appropriate "business logic" or "policy" layer
    to place this kind of validation error. Since multiple backend members
    in the web node interact with pipelines directly via the database, it
    seems justified to place the business logic as close to that integration
    boundary as possible.
    
    Recent painful experiences with observability motivated the choice to
    treat logging more like a feature, and have unit tests that specifically
    require it.
    
    Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>
    Co-authored-by: Jamie Klassen <cklassen@pivotal.io>
    Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>
    2 people authored and YoussB committed Apr 6, 2020
    Configuration menu
    Copy the full SHA
    9ee4dfd View commit details
    Browse the repository at this point in the history
  3. atc: behaviour: setting a pipeline unarchives it

    Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>
    Co-authored-by: Jamie Klassen <cklassen@pivotal.io>
    2 people authored and YoussB committed Apr 6, 2020
    Configuration menu
    Copy the full SHA
    f813969 View commit details
    Browse the repository at this point in the history
  4. atc: behaviour: archiving a pipeline pauses it

    #5318
    
    Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>
    aoldershaw authored and YoussB committed Apr 6, 2020
    Configuration menu
    Copy the full SHA
    2760694 View commit details
    Browse the repository at this point in the history
  5. go-concourse: behaviour: add ArchivePipeline

    #5319
    
    Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>
    Co-authored-by: James Thomson <jthomson@pivotal.io>
    2 people authored and YoussB committed Apr 6, 2020
    Configuration menu
    Copy the full SHA
    308e815 View commit details
    Browse the repository at this point in the history
  6. go-concourse: re-generate fake

    #5319
    
    Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>
    Co-authored-by: James Thomson <jthomson@pivotal.io>
    2 people authored and YoussB committed Apr 6, 2020
    Configuration menu
    Copy the full SHA
    042ebea View commit details
    Browse the repository at this point in the history
  7. atc: structure: use go-concourse in archive integration

    #5319
    
    Now that we have an `ArchivePipeline` method in go-concourse, we can use
    that in the integration tests for archiving pipelines (rather than
    caling the endpoint directly).
    
    Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>
    Co-authored-by: James Thomson <jthomson@pivotal.io>
    2 people authored and YoussB committed Apr 6, 2020
    Configuration menu
    Copy the full SHA
    48237c6 View commit details
    Browse the repository at this point in the history
  8. fly: behaviour: add archive-pipeline command

    #5320
    
    Adds an archive-pipeline command that functions nearly identically to
    pause-pipeline
    
    Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>
    Co-authored-by: James Thomson <jthomson@pivotal.io>
    2 people authored and YoussB committed Apr 6, 2020
    Configuration menu
    Copy the full SHA
    d95e953 View commit details
    Browse the repository at this point in the history
  9. fly: behaviour: add confirm to archive-pipelines

    #5320
    
    Since archiving pipelines can be destructive, the fly archive-pipelines
    command should have a confirm dialog before making any changes. This is
    overridable by a --non-interactive flag.
    
    In the case of --all, print a table of all the pipelines that will be
    archived if the user confirms.
    
    Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>
    Co-authored-by: James Thomson <jthomson@pivotal.io>
    2 people authored and YoussB committed Apr 6, 2020
    Configuration menu
    Copy the full SHA
    2daee8c View commit details
    Browse the repository at this point in the history