paasta
paasta copied to clipboard
Make CLI for getting history of deploy group - PAASTA-15923
Purpose of this PR
In this PR, we introduce paasta get-deploygroup-history command which will show the history of a deploy group or of all deploy groups for a service.
Testing
Tried running the command and viewing the output on the test service compute-infra-test-service.
To view history for a specific deploy group:
(py37-linux) emanelsabban@dev55-uswest1adevc:~/pg/paasta$ .tox/py37-linux/bin/python paasta_tools/cli/cli.py get-deploygroup-history -s compute-infra-test-service -l prod.main
Below is a list of deploy_groups History:
Timestamp -- UTC Human time deploy_group Version
20220908T194642 18 days ago prod.main 0ae13cf29612fb38bbf1ad40652cdf93abfe41df
20220908T191022 18 days ago prod.main 47af2040482b05296966d2b56a1d5c02d0b8ca7d
20220906T193440 20 days ago prod.main c4ac93a98809383a275df749318c5e04524fc3ab
20220823T011019 a month ago prod.main 1493a17af7af84c3867691563b1212adfa644a89
20220712T225935 2 months ago prod.main 833c8de1d7a4879aa2b5544c4f9bcd6fe035ffe2
20220412T092229 5 months ago prod.main 4d90f829a303bbaeb4e94532fc5bebef732853fe
20220406T212714 5 months ago prod.main d5b8f676542556d424c92fdd80406a640db1e345
20220310T120424 6 months ago prod.main ebd7c9ad2f81714782b27dc86b417c3e67e4a159
20211214T201524 9 months ago prod.main 5aadf994b454d79850bd8f8191d32f99bc648345
20211214T201204 9 months ago prod.main cb9a0f083499f37f9e553218609690cc41224c4b
20210827T105809 1 year, 30 days ago prod.main eaf5d595284c035c9b88b654e243a5dacfc1fd15
20210825T134913 1 year, 1 month ago prod.main da13432b5cc0174494c19db796511c407b1cdfd7
20210719T105609 1 year, 2 months ago prod.main b19363cbfa933e7f8f0b24deeba742b937ea8e9d
20210621T105555 1 year, 3 months ago prod.main fe7447a8356d905bf7af5d9f0b49a192ea663eed
20210428T105802 1 year, 4 months ago prod.main 54f7c6bad6ad08fd89e02b2217149dd3498ff62c
20210414T105616 1 year, 5 months ago prod.main 5e064f9903296fb4277338039d8b5e9c0ebd7cbe
20210326T105557 1 year, 6 months ago prod.main f8256d7d6d643cb1c2c49019c2a2417ce278b11a
20201016T105546 1 year, 11 months ago prod.main 191a485cce034b076748ff6fd054ade1726ea619
20200904T022358 2 years ago prod.main f90523c9ad2aeef60b0cfb7416d6bfd653de2ec7
20200903T105559 2 years ago prod.main 34e5ff0ff3e044f146e18f5ccfcdf3626e2c2ae7
20200828T030835 2 years ago prod.main 1a018479640555dc46345022b55fbcb13a19625e
20200827T202615 2 years ago prod.main 40402d777f942caddad72850afa633b6b37b9999
20200827T105535 2 years ago prod.main 41a908ac41851778a5ca95a379415b08fab8961c
20200213T115532 2 years ago prod.main be947a42838cb9c27f4b83b2c9cb422da4f33ac9
20200130T015451 2 years ago prod.main a8327cf91438d97d53bdccbaf429b0dfe57651dd
20200130T015111 2 years ago prod.main a0ec9b362e29123022e5cebb6612aedc58a0889b
20200109T010457 2 years ago prod.main 3244a68c69f0c95bb53969bc3237c6cfa439e011
20200102T214514 2 years ago prod.main b707f09df500d7ac3b48d25cf7b1f8e7369d3ed0
20191230T215249 2 years ago prod.main 291a339e3980273556e49e11fb67485ff437c812
20190610T211101 3 years ago prod.main 187304ff16d3ed6cc0cbd0e732992919acf988ee
20190610T203910 3 years ago prod.main ba55baead358a20a9f9ce15578a23b56408faac5
(py37-linux) emanelsabban@dev55-uswest1adevc:~/pg/paasta$
To view history for all deploy groups:
(py37-linux) emanelsabban@dev55-uswest1adevc:~/pg/paasta$ .tox/py37-linux/bin/python paasta_tools/cli/cli.py get-deploygroup-history -s compute-infra-test-service -a
Below is a list of deploy_groups History:
Timestamp -- UTC Human time deploy_group Version
20220923T192922 3 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220923T122331)
20220923T102901 3 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220923T032121)
20220922T225125 3 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220922T154401)
20220922T224305 3 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220922T153659)
20220922T200521 4 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220922T125701)
20220922T195448 4 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220922T124859)
20220922T102951 4 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220922T032122)
20220922T035325 4 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220921T204515)
20220922T032137 4 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220921T201327)
20220922T005531 4 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220921T174740)
20220922T003004 4 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220921T172220)
20220921T235521 4 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220921T164719)
20220921T232513 4 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220921T161712)
20220921T225620 4 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220921T032121)
20220921T225352 4 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220921T154547)
20220920T102912 6 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220920T032112)
20220919T102921 7 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220919T032120)
20220916T102921 10 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220916T032120)
20220915T103001 11 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220915T032136)
20220914T102922 12 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220914T032122)
20220913T102901 13 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220913T032131)
20220912T103252 14 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220912T032129)
20220909T102855 17 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220909T032121)
20220908T232129 17 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220908T161626)
20220908T225013 17 days ago kubestage.nocommits DeploymentVersion(sha=0ae13cf29612fb38bbf1ad40652cdf93abfe41df, image_version=20220908T124038)
20220908T194642 18 days ago prod.main 0ae13cf29612fb38bbf1ad40652cdf93abfe41df
20220908T191022 18 days ago prod.main 47af2040482b05296966d2b56a1d5c02d0b8ca7d
20220908T171211 18 days ago kubestage.nocommits DeploymentVersion(sha=c4ac93a98809383a275df749318c5e04524fc3ab, image_version=20220908T100242)
20220908T162027 18 days ago kubestage.nocommits DeploymentVersion(sha=c4ac93a98809383a275df749318c5e04524fc3ab, image_version=20220907T163740)
20220908T162009 18 days ago kubestage.nocommits DeploymentVersion(sha=c4ac93a98809383a275df749318c5e04524fc3ab, image_version=20220908T032120)
20220907T214815 18 days ago kubestage.nocommits DeploymentVersion(sha=c4ac93a98809383a275df749318c5e04524fc3ab, image_version=20220907T144031)
20220907T005510 19 days ago kubestage.nocommits DeploymentVersion(sha=c4ac93a98809383a275df749318c5e04524fc3ab, image_version=20220906T174732)
20220906T225438 19 days ago kubestage.nocommits DeploymentVersion(sha=c4ac93a98809383a275df749318c5e04524fc3ab, image_version=20220906T114521)
20220906T223252 19 days ago kubestage.nocommits DeploymentVersion(sha=1493a17af7af84c3867691563b1212adfa644a89, image_version=20220906T114521)
20220906T193440 20 days ago prod.main c4ac93a98809383a275df749318c5e04524fc3ab
20220906T102930 20 days ago kubestage.nocommits DeploymentVersion(sha=1493a17af7af84c3867691563b1212adfa644a89, image_version=20220906T032110)
20220905T102921 21 days ago kubestage.nocommits DeploymentVersion(sha=1493a17af7af84c3867691563b1212adfa644a89, image_version=20220905T032130)
20220902T102847 24 days ago kubestage.nocommits DeploymentVersion(sha=1493a17af7af84c3867691563b1212adfa644a89, image_version=20220902T032128)
20220901T102837 25 days ago kubestage.nocommits DeploymentVersion(sha=1493a17af7af84c3867691563b1212adfa644a89, image_version=20220901T032116)
20220831T102915 26 days ago kubestage.nocommits DeploymentVersion(sha=1493a17af7af84c3867691563b1212adfa644a89, image_version=20220831T032125)
20220830T102906 27 days ago kubestage.nocommits DeploymentVersion(sha=1493a17af7af84c3867691563b1212adfa644a89, image_version=20220830T032124)
20220829T102915 28 days ago kubestage.nocommits DeploymentVersion(sha=1493a17af7af84c3867691563b1212adfa644a89, image_version=20220829T032115)
20220826T102835 a month ago kubestage.nocommits DeploymentVersion(sha=1493a17af7af84c3867691563b1212adfa644a89, image_version=20220826T032125)
20220825T103408 a month ago kubestage.nocommits DeploymentVersion(sha=1493a17af7af84c3867691563b1212adfa644a89, image_version=20220825T032113)
20220824T102905 a month ago kubestage.nocommits DeploymentVersion(sha=1493a17af7af84c3867691563b1212adfa644a89, image_version=20220824T032124)
20220823T102948 a month ago kubestage.nocommits DeploymentVersion(sha=1493a17af7af84c3867691563b1212adfa644a89, image_version=20220823T032124)
20220823T063315 a month ago kubestage.nocommits DeploymentVersion(sha=1493a17af7af84c3867691563b1212adfa644a89, image_version=20220822T232534)
20220823T053935 a month ago kubestage.nocommits DeploymentVersion(sha=1493a17af7af84c3867691563b1212adfa644a89, image_version=20220822T223133)
20220823T032124 a month ago kubestage.nocommits DeploymentVersion(sha=1493a17af7af84c3867691563b1212adfa644a89, image_version=20220822T201247)
20220823T020716 a month ago kubestage.nocommits DeploymentVersion(sha=1493a17af7af84c3867691563b1212adfa644a89, image_version=20220822T185716)
20220823T011019 a month ago prod.main 1493a17af7af84c3867691563b1212adfa644a89
20220822T230630 a month ago kubestage.nocommits DeploymentVersion(sha=1493a17af7af84c3867691563b1212adfa644a89, image_version=hellothere)
20220822T102935 a month ago kubestage.nocommits DeploymentVersion(sha=1493a17af7af84c3867691563b1212adfa644a89, image_version=20220822T032125)
20220729T000542 a month ago kubestage.nocommits DeploymentVersion(sha=1493a17af7af84c3867691563b1212adfa644a89, image_version=image202207191115)
20220712T225935 2 months ago prod.main 833c8de1d7a4879aa2b5544c4f9bcd6fe035ffe2
20220412T092229 5 months ago prod.main 4d90f829a303bbaeb4e94532fc5bebef732853fe
20220406T212714 5 months ago prod.main d5b8f676542556d424c92fdd80406a640db1e345
20220310T120424 6 months ago prod.main ebd7c9ad2f81714782b27dc86b417c3e67e4a159
20211214T201524 9 months ago prod.main 5aadf994b454d79850bd8f8191d32f99bc648345
20211214T201204 9 months ago prod.main cb9a0f083499f37f9e553218609690cc41224c4b
20210827T105809 1 year, 30 days ago prod.main eaf5d595284c035c9b88b654e243a5dacfc1fd15
20210825T134913 1 year, 1 month ago prod.main da13432b5cc0174494c19db796511c407b1cdfd7
20210719T105609 1 year, 2 months ago prod.main b19363cbfa933e7f8f0b24deeba742b937ea8e9d
20210621T105555 1 year, 3 months ago prod.main fe7447a8356d905bf7af5d9f0b49a192ea663eed
20210428T105802 1 year, 4 months ago prod.main 54f7c6bad6ad08fd89e02b2217149dd3498ff62c
20210414T105616 1 year, 5 months ago prod.main 5e064f9903296fb4277338039d8b5e9c0ebd7cbe
20210326T105557 1 year, 6 months ago prod.main f8256d7d6d643cb1c2c49019c2a2417ce278b11a
20201016T105546 1 year, 11 months ago prod.main 191a485cce034b076748ff6fd054ade1726ea619
20200904T022358 2 years ago prod.main f90523c9ad2aeef60b0cfb7416d6bfd653de2ec7
20200903T105559 2 years ago prod.main 34e5ff0ff3e044f146e18f5ccfcdf3626e2c2ae7
20200828T030835 2 years ago prod.main 1a018479640555dc46345022b55fbcb13a19625e
20200828T024855 2 years ago dev-stage.everything 6136c31731bd07e612c30147ba48847d1cde7074
20200827T202615 2 years ago prod.main 40402d777f942caddad72850afa633b6b37b9999
20200827T105535 2 years ago prod.main 41a908ac41851778a5ca95a379415b08fab8961c
20200213T115532 2 years ago prod.main be947a42838cb9c27f4b83b2c9cb422da4f33ac9
20200130T015451 2 years ago prod.main a8327cf91438d97d53bdccbaf429b0dfe57651dd
20200130T015111 2 years ago prod.main a0ec9b362e29123022e5cebb6612aedc58a0889b
20200109T010457 2 years ago prod.main 3244a68c69f0c95bb53969bc3237c6cfa439e011
20200102T214514 2 years ago prod.main b707f09df500d7ac3b48d25cf7b1f8e7369d3ed0
20191230T215249 2 years ago prod.main 291a339e3980273556e49e11fb67485ff437c812
20190823T213824 3 years ago dev-stage.everything 5a88160c056967d48b9775adc63fb1459e30b9d0
20190610T211101 3 years ago prod.main 187304ff16d3ed6cc0cbd0e732992919acf988ee
20190610T203910 3 years ago prod.main ba55baead358a20a9f9ce15578a23b56408faac5
20190610T183800 3 years ago dev-stage.everything d24527d60eb44f091e95f3497d26d3679bdefdee
20190608T000104 3 years ago mesosstage.k8s 78765aefdb7d3824fe270c0f43ba9cb863720ab3
20190607T114544 3 years ago mesosstage.everything c8d9ad4ce8687768cd5ad2c54a7e94189ec70b9d
20190520T105409 3 years ago mesosstage.everything 679d7e1d639f7b5ed608bc8af0f457bdb10cd57f
20190424T162722 3 years ago mesosstage.everything 2e87a6d58a69723e58e1e0b18e5e803301fb7688
20190410T194133 3 years ago mesosstage.everything fd7cc1a5b53f7c9e697e0d68cbd785fcd3714dfc
20190325T231433 3 years ago mesosstage.k8s baaf4d7b2ddff5ee9bc0561b1095add5360195a3
20190221T115411 3 years ago mesosstage.everything dd147b42fcb2c9edcc7f7872b529c17133ae3eeb
20190201T121945 3 years ago mesosstage.everything 087afc573bcc7d41d25185315be7c282b721158a
20190201T121015 3 years ago mesosstage.everything 719952a8cf00ffa796a2a4bc45d195bb82103603
20190124T213322 3 years ago mesosstage.everything de5339e40bc870b54f29e7e408effff9e2ea5c73
20181004T145638 3 years ago mesosstage.everything 62709d551c32c70af2c44cbfca0407b56da539fd
20181004T062313 3 years ago mesosstage.everything 1f8cfbc20677cc259a281c1b7438a61292521dd2
20180911T143948 4 years ago mesosstage.everything ee161a4b1350339c0435939ef3b98e0a7c127fb3
20180828T182241 4 years ago mesosstage.everything aa80f20f4e0e8aa87cfb21a4ec9f0d97ab4e35d8
20180828T062329 4 years ago mesosstage.everything 2e4d373f597192ab7cdae158b68f5550a8cf76fa
20180723T215808 4 years ago mesosstage.everything d1f0b90ea0ea9edaf61a34944d1c20044d57a9b6
20180618T215756 4 years ago mesosstage.everything e9fc795ec881cfd1b9d4b68540504690deddd4ec
20180531T215816 4 years ago mesosstage.everything 395489a9ae8b14f8c9cb12a1b363bc1428c40e62
20180522T220738 4 years ago mesosstage.everything 5568eaf648248d62d7e4cc81fb50105436004873
20180307T225759 4 years ago mesosstage.everything a71f548bc87cd1b0c1a6f266a94d574dd037e5fd
20171031T152002 4 years ago mesosstage.everything 9fb40287488f5ce045698db39bcb7437130de2f8
20170913T124219 5 years ago mesosstage.everything 84555032a61310d4c52fdea9e654336ac89ebaa2
20170913T123836 5 years ago mesosstage.everything 7257a2babea88c9488bf952adf3a211d910e95c6
20170614T215756 5 years ago mesosstage.everything d9f2109d36a4978a50bd0c00a7568ecba747404f
20170602T215806 5 years ago mesosstage.everything 79393e1a6894677ec83977cce1c7e6cf85cec06b
20170511T215724 5 years ago mesosstage.everything 4af136c541ac931732e190b4f91748e4a5f99ba6
20170307T225734 5 years ago mesosstage.everything 9d2bb05633e67582fa6a415af086cce884e3b8c1
20170125T230743 5 years ago mesosstage.everything d9ff67d774205ddcd877a273845f39573677c931
20161202T211421 5 years ago mesosstage.everything 8863b92e2326326536d969f488f525582f9570cf
20161202T210958 5 years ago mesosstage.everything df43a9013faf5fef68ac65dd27938902a9fdc85a
20161025T215801 5 years ago mesosstage.everything ba88d9ce92690997b18acba18298e3ec2a08966f
20161019T145631 5 years ago mesosstage.everything 1d1e6dede0d63ed59596b6d0634175535b81ee4f
20160921T144728 6 years ago mesosstage.everything c64dcfdb29c80bbff0c1abd56bb34d73b40ff3aa
20160921T143241 6 years ago mesosstage.everything 72ac853077dbd21d807d173a8c1961ff3dffc48c
20160915T145353 6 years ago mesosstage.everything cd8ba8dda77cb6ce021769590ad55de915340d2b
20160728T215820 6 years ago mesosstage.everything 29f0937cf2206a8dba14c80142526d632095671a
(py37-linux) emanelsabban@dev55-uswest1adevc:~/pg/paasta$
So this functionality actually exists in the paasta rollback command; if you don't specify a git sha, it prints a table of the last versions. E.g:
Please specify a commit to mark for rollback (-k, --commit).
Below is a list of recent commits:
Timestamp -- UTC Human time deploy_group Version
20220908T194642 18 days ago prod.main 0ae13cf29612fb38bbf1ad40652cdf93abfe41df
20220908T191022 18 days ago prod.main 47af2040482b05296966d2b56a1d5c02d0b8ca7d
20220906T193440 20 days ago prod.main c4ac93a98809383a275df749318c5e04524fc3ab
20220706T210929 2 months ago prod.main 1493a17af7af84c3867691563b1212adfa644a89
20220502T212404 4 months ago prod.main 833c8de1d7a4879aa2b5544c4f9bcd6fe035ffe2
20220412T092229 5 months ago prod.main 4d90f829a303bbaeb4e94532fc5bebef732853fe
20220406T212714 5 months ago prod.main d5b8f676542556d424c92fdd80406a640db1e345
20220207T231255 7 months ago prod.main ebd7c9ad2f81714782b27dc86b417c3e67e4a159
20211119T200826 10 months ago prod.main 5aadf994b454d79850bd8f8191d32f99bc648345
20211105T184923 10 months ago prod.main cb9a0f083499f37f9e553218609690cc41224c4b
For example, to use the second to last version from 18 days ago used on prod.main, run:
paasta rollback -s compute-infra-test-service -l prod.main -k 47af2040482b05296966d2b56a1d5c02d0b8ca7d```
I really like the idea of having a separate command for it, though - nobody would really think to run `paasta rollback` to get the list of versions, and it feels scary to run `paasta rollback` on a production service without actually intending to change anything.
Can you refactor this to de-duplicate the code between these two commands? (Either by importing functions from this new command into rollback.py, importing functions from rollback.py into get_deploygroup_history.py, or moving the code into some common place like a new file in paasta_tools/ or something)
Can I suggest renaming it `get-deploy-history` though?
(it would also be nice if we could share some of this code with the code in paasta rollback so that we don't have two things that list deploy group history)
Cleaning up and closing some very old PRs. Please re-open or nudge me if you’re still planning to work on this.