Skip to content

Commit

Permalink
Fix up get migrations output
Browse files Browse the repository at this point in the history
  • Loading branch information
marccampbell committed Apr 7, 2020
1 parent 1e66c8f commit 5234883
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 26 deletions.
55 changes: 33 additions & 22 deletions pkg/cli/schemaherokubectlcli/get_migrations.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (

schemasv1alpha3 "github.com/schemahero/schemahero/pkg/apis/schemas/v1alpha3"
schemasclientv1alpha3 "github.com/schemahero/schemahero/pkg/client/schemaheroclientset/typed/schemas/v1alpha3"
"github.com/schemahero/schemahero/pkg/controller/migration"
"github.com/spf13/cobra"
"github.com/spf13/viper"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
Expand Down Expand Up @@ -72,19 +73,19 @@ func GetMigrationsCmd() *cobra.Command {
return err
}

for _, migration := range migrations.Items {
for _, m := range migrations.Items {
if databaseNameFilter == "" {
matchingMigrations = append(matchingMigrations, migration)
matchingMigrations = append(matchingMigrations, m)
continue
}

table, err := schemasClient.Tables(migration.Spec.TableNamespace).Get(ctx, migration.Spec.TableName, metav1.GetOptions{})
table, err := schemasClient.Tables(m.Spec.TableNamespace).Get(ctx, m.Spec.TableName, metav1.GetOptions{})
if err != nil {
return err
}

if table.Spec.Database == databaseNameFilter {
matchingMigrations = append(matchingMigrations, migration)
matchingMigrations = append(matchingMigrations, m)
}
}
}
Expand All @@ -95,27 +96,37 @@ func GetMigrationsCmd() *cobra.Command {
}

rows := [][]string{}
for _, migration := range matchingMigrations {
// TODO should we show these?
if migration.Status.ExecutedAt > 0 {
continue
}
if migration.Status.RejectedAt > 0 {
continue
for _, m := range matchingMigrations {
table, err := migration.TableFromMigration(context.Background(), &m)
if err != nil {
return err
}
if migration.Status.ApprovedAt > 0 {
continue

database, err := migration.DatabaseFromTable(context.Background(), table)
if err != nil {
return err
}

rows = append(rows, []string{
migration.Name,
"<Database Unknown>",
migration.Spec.TableName,
timestampToAge(migration.Status.PlannedAt),
timestampToAge(migration.Status.ExecutedAt),
timestampToAge(migration.Status.ApprovedAt),
timestampToAge(migration.Status.RejectedAt),
})
isIncluded := true
// if m.Status.ExecutedAt > 0 {
// continue
// } else if m.Status.RejectedAt > 0 {
// continue
// } else if m.Status.ApprovedAt > 0 {
// continue
// }

if isIncluded {
rows = append(rows, []string{
m.Name,
database.Name,
table.Name,
timestampToAge(m.Status.PlannedAt),
timestampToAge(m.Status.ExecutedAt),
timestampToAge(m.Status.ApprovedAt),
timestampToAge(m.Status.RejectedAt),
})
}
}

if len(rows) == 0 {
Expand Down
4 changes: 2 additions & 2 deletions pkg/controller/migration/lookup.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client/config"
)

func tableFromMigration(ctx context.Context, migration *schemasv1alpha3.Migration) (*schemasv1alpha3.Table, error) {
func TableFromMigration(ctx context.Context, migration *schemasv1alpha3.Migration) (*schemasv1alpha3.Table, error) {
cfg, err := config.GetConfig()
if err != nil {
return nil, errors.Wrap(err, "failed to get config")
Expand All @@ -31,7 +31,7 @@ func tableFromMigration(ctx context.Context, migration *schemasv1alpha3.Migratio
return table, nil
}

func databaseFromTable(ctx context.Context, table *schemasv1alpha3.Table) (*databasesv1alpha3.Database, error) {
func DatabaseFromTable(ctx context.Context, table *schemasv1alpha3.Table) (*databasesv1alpha3.Database, error) {
cfg, err := config.GetConfig()
if err != nil {
return nil, errors.Wrap(err, "failed to get config")
Expand Down
4 changes: 2 additions & 2 deletions pkg/controller/migration/reconcile_migration.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ func (r *ReconcileMigration) reconcileMigration(ctx context.Context, instance *s
zap.String("tableName", instance.Spec.TableName))

if instance.Status.ApprovedAt > 0 && instance.Status.ExecutedAt == 0 {
table, err := tableFromMigration(ctx, instance)
table, err := TableFromMigration(ctx, instance)
if err != nil {
return reconcile.Result{}, errors.Wrap(err, "failed to get table")
}
database, err := databaseFromTable(ctx, table)
database, err := DatabaseFromTable(ctx, table)
if err != nil {
return reconcile.Result{}, errors.Wrap(err, "failed to get database")
}
Expand Down

0 comments on commit 5234883

Please sign in to comment.