← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1615024] [NEW] Forbid invalid operations in expand, migrate, and contract repositories

 

Public bug reported:

In the legacy migration repository, we've traditionally allowed any sort
of database manipulation, including tables to be created, data to be
migrated, columns to be dropped, etc. Recently, we introduced a
constraint on those upgrades to prevent non-additive operations from
occurring as a first step towards minimal downtime upgrades.

The 3 new repositories allow us to have zero downtime upgrades, but come
with their own constraints that we should enforce via tests.

1. The expand repo should only be allowed to create tables, columns,
indexes, and triggers. It should not be allowed to INSERT, UPDATE, or
DELETE any data. It should not be allowed to drop tables, columns,
indexes, or triggers.

1. The migrate repo should only be allowed to INSERT, UPDATE, and DELETE
data. It should not be allowed to create or drop tables, columns,
indexes, or triggers.

1. The contract repo should only be allowed to drop tables, columns,
indexes, and triggers. It should not be allowed to INSERT, UPDATE, or
DELETE any data. It should not be allowed to create tables, columns,
indexes, or triggers.

** Affects: keystone
     Importance: Medium
     Assignee: Henry Nash (henry-nash)
         Status: Triaged


** Tags: test-improvement upgrades

** Changed in: keystone
       Status: New => Triaged

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Identity (keystone).
https://bugs.launchpad.net/bugs/1615024

Title:
  Forbid invalid operations in expand, migrate, and contract
  repositories

Status in OpenStack Identity (keystone):
  Triaged

Bug description:
  In the legacy migration repository, we've traditionally allowed any
  sort of database manipulation, including tables to be created, data to
  be migrated, columns to be dropped, etc. Recently, we introduced a
  constraint on those upgrades to prevent non-additive operations from
  occurring as a first step towards minimal downtime upgrades.

  The 3 new repositories allow us to have zero downtime upgrades, but
  come with their own constraints that we should enforce via tests.

  1. The expand repo should only be allowed to create tables, columns,
  indexes, and triggers. It should not be allowed to INSERT, UPDATE, or
  DELETE any data. It should not be allowed to drop tables, columns,
  indexes, or triggers.

  1. The migrate repo should only be allowed to INSERT, UPDATE, and
  DELETE data. It should not be allowed to create or drop tables,
  columns, indexes, or triggers.

  1. The contract repo should only be allowed to drop tables, columns,
  indexes, and triggers. It should not be allowed to INSERT, UPDATE, or
  DELETE any data. It should not be allowed to create tables, columns,
  indexes, or triggers.

To manage notifications about this bug go to:
https://bugs.launchpad.net/keystone/+bug/1615024/+subscriptions


Follow ups