forked from toolshed/abra
		
	fix: ensure force upgrade/rollback works
This commit is contained in:
		@ -109,15 +109,19 @@ EXAMPLE:
 | 
			
		||||
		if specificVersion != "" {
 | 
			
		||||
			parsedDeployedVersion, err := tagcmp.Parse(deployMeta.Version)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				log.Fatal(err)
 | 
			
		||||
				log.Fatalf("'%s' is not a known version for %s", deployMeta.Version, app.Recipe.Name)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			parsedSpecificVersion, err := tagcmp.Parse(specificVersion)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				log.Fatal(err)
 | 
			
		||||
				log.Fatalf("'%s' is not a known version for %s", specificVersion, app.Recipe.Name)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if parsedSpecificVersion.IsGreaterThan(parsedDeployedVersion) || parsedSpecificVersion.Equals(parsedDeployedVersion) {
 | 
			
		||||
			if parsedSpecificVersion.IsGreaterThan(parsedDeployedVersion) && !parsedSpecificVersion.Equals(parsedDeployedVersion) {
 | 
			
		||||
				log.Fatalf("%s is not a downgrade for %s?", deployMeta.Version, specificVersion)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if parsedSpecificVersion.Equals(parsedDeployedVersion) && !internal.Force {
 | 
			
		||||
				log.Fatalf("%s is not a downgrade for %s?", deployMeta.Version, specificVersion)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -108,15 +108,21 @@ EXAMPLE:
 | 
			
		||||
		if specificVersion != "" {
 | 
			
		||||
			parsedDeployedVersion, err := tagcmp.Parse(deployMeta.Version)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				log.Fatal(err)
 | 
			
		||||
				log.Fatalf("'%s' is not a known version for %s", deployMeta.Version, app.Recipe.Name)
 | 
			
		||||
			}
 | 
			
		||||
			parsedSpecificVersion, err := tagcmp.Parse(specificVersion)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				log.Fatal(err)
 | 
			
		||||
				log.Fatalf("'%s' is not a known version for %s", specificVersion, app.Recipe.Name)
 | 
			
		||||
			}
 | 
			
		||||
			if parsedSpecificVersion.IsLessThan(parsedDeployedVersion) || parsedSpecificVersion.Equals(parsedDeployedVersion) {
 | 
			
		||||
 | 
			
		||||
			if parsedSpecificVersion.IsLessThan(parsedDeployedVersion) && !parsedSpecificVersion.Equals(parsedDeployedVersion) {
 | 
			
		||||
				log.Fatalf("%s is not an upgrade for %s?", deployMeta.Version, specificVersion)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if parsedSpecificVersion.Equals(parsedDeployedVersion) && !internal.Force {
 | 
			
		||||
				log.Fatalf("%s is not an upgrade for %s?", deployMeta.Version, specificVersion)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			availableUpgrades = append(availableUpgrades, specificVersion)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -111,6 +111,26 @@ teardown(){
 | 
			
		||||
  assert_output --partial "0.1.0+1.20.0"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# bats test_tags=slow
 | 
			
		||||
@test "force rollback to previous version" {
 | 
			
		||||
  run $ABRA app deploy "$TEST_APP_DOMAIN" "0.1.1+1.20.2" --no-input --no-converge-checks
 | 
			
		||||
  assert_success
 | 
			
		||||
  assert_output --partial '0.1.1+1.20.2'
 | 
			
		||||
 | 
			
		||||
  run $ABRA app rollback "$TEST_APP_DOMAIN" "0.1.0+1.20.0" --no-input --no-converge-checks
 | 
			
		||||
  assert_success
 | 
			
		||||
  assert_output --partial "0.1.0+1.20.0"
 | 
			
		||||
 | 
			
		||||
  run $ABRA app rollback "$TEST_APP_DOMAIN" "0.1.0+1.20.0" --no-input --no-converge-checks
 | 
			
		||||
  assert_failure
 | 
			
		||||
  assert_output --partial "not a downgrade"
 | 
			
		||||
 | 
			
		||||
  run $ABRA app rollback "$TEST_APP_DOMAIN" "0.1.0+1.20.0" \
 | 
			
		||||
    --no-input --no-converge-checks --force
 | 
			
		||||
  assert_success
 | 
			
		||||
  assert_output --partial "0.1.0+1.20.0"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# bats test_tags=slow
 | 
			
		||||
@test "rollback to a version 2 tags behind" {
 | 
			
		||||
  run $ABRA app deploy "$TEST_APP_DOMAIN" "0.2.0+1.21.0" --no-input --no-converge-checks
 | 
			
		||||
 | 
			
		||||
@ -97,6 +97,26 @@ teardown(){
 | 
			
		||||
  assert_output --partial '0.2.0+1.21.0'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# bats test_tags=slow
 | 
			
		||||
@test "force upgrade specific version" {
 | 
			
		||||
  run $ABRA app deploy "$TEST_APP_DOMAIN" "0.1.0+1.20.0" --no-input --no-converge-checks
 | 
			
		||||
  assert_success
 | 
			
		||||
  assert_output --partial '0.1.0+1.20.0'
 | 
			
		||||
 | 
			
		||||
  run $ABRA app upgrade "$TEST_APP_DOMAIN" "0.2.0+1.21.0" --no-input --no-converge-checks
 | 
			
		||||
  assert_success
 | 
			
		||||
  assert_output --partial '0.2.0+1.21.0'
 | 
			
		||||
 | 
			
		||||
  run $ABRA app upgrade "$TEST_APP_DOMAIN" "0.2.0+1.21.0" --no-input --no-converge-checks
 | 
			
		||||
  assert_failure
 | 
			
		||||
  assert_output --partial 'not an upgrade'
 | 
			
		||||
 | 
			
		||||
  run $ABRA app upgrade "$TEST_APP_DOMAIN" "0.2.0+1.21.0" \
 | 
			
		||||
    --no-input --no-converge-checks --force
 | 
			
		||||
  assert_success
 | 
			
		||||
  assert_output --partial '0.2.0+1.21.0'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# bats test_tags=slow
 | 
			
		||||
@test "upgrade to latest" {
 | 
			
		||||
  run $ABRA app deploy "$TEST_APP_DOMAIN" "0.1.0+1.20.0" --no-input --no-converge-checks
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user