Esempio n. 1
0
    def test_purge_deleted_rows_older(self):
        dialect = self.engine.url.get_dialect()
        if dialect == sqlite.dialect:
            # We're seeing issues with foreign key support in SQLite 3.6.20
            # SQLAlchemy doesn't support it at all with < SQLite 3.6.19
            # It works fine in SQLite 3.7.
            # Force foreign_key checking if running SQLite >= 3.7
            import sqlite3
            tup = sqlite3.sqlite_version_info
            if tup[0] > 3 or (tup[0] == 3 and tup[1] >= 7):
                self.conn.execute("PRAGMA foreign_keys = ON")
        # Purge at 10 days old now, should delete 2 more rows
        db.purge_deleted_rows(self.context, age_in_days=10)

        vol_rows = self.session.query(self.volumes).count()
        vol_meta_rows = self.session.query(self.vm).count()
        vol_type_rows = self.session.query(self.vol_types).count()
        vol_type_proj_rows = self.session.query(self.vol_type_proj).count()
        snap_rows = self.session.query(self.snapshots).count()
        snap_meta_rows = self.session.query(self.sm).count()
        vol_glance_meta_rows = self.session.query(self.vgm).count()
        qos_rows = self.session.query(self.qos).count()

        # Verify that we only have 2 rows now
        self.assertEqual(2, vol_rows)
        self.assertEqual(2, vol_meta_rows)
        self.assertEqual(4, vol_type_rows)
        self.assertEqual(2, vol_type_proj_rows)
        self.assertEqual(2, snap_rows)
        self.assertEqual(2, snap_meta_rows)
        self.assertEqual(4, vol_glance_meta_rows)
        self.assertEqual(4, qos_rows)
Esempio n. 2
0
    def test_purge_deleted_rows_older(self):
        dialect = self.engine.url.get_dialect()
        if dialect == sqlite.dialect:
            # We're seeing issues with foreign key support in SQLite 3.6.20
            # SQLAlchemy doesn't support it at all with < SQLite 3.6.19
            # It works fine in SQLite 3.7.
            # Force foreign_key checking if running SQLite >= 3.7
            import sqlite3
            tup = sqlite3.sqlite_version_info
            if tup[0] > 3 or (tup[0] == 3 and tup[1] >= 7):
                self.conn.execute("PRAGMA foreign_keys = ON")
        # Purge at 10 days old now, should delete 2 more rows
        db.purge_deleted_rows(self.context, age_in_days=10)

        vol_rows = self.session.query(self.volumes).count()
        vol_meta_rows = self.session.query(self.vm).count()
        vol_type_rows = self.session.query(self.vol_types).count()
        vol_type_proj_rows = self.session.query(self.vol_type_proj).count()
        snap_rows = self.session.query(self.snapshots).count()
        snap_meta_rows = self.session.query(self.sm).count()
        vol_glance_meta_rows = self.session.query(self.vgm).count()

        # Verify that we only have 2 rows now
        self.assertEqual(2, vol_rows)
        self.assertEqual(2, vol_meta_rows)
        self.assertEqual(2, vol_type_rows)
        self.assertEqual(2, vol_type_proj_rows)
        self.assertEqual(2, snap_rows)
        self.assertEqual(2, snap_meta_rows)
        self.assertEqual(4, vol_glance_meta_rows)
Esempio n. 3
0
    def test_purge_deleted_rows_older(self):
        dialect = self.engine.url.get_dialect()
        if dialect == sqlite.dialect:
            self.conn.execute("PRAGMA foreign_keys = ON")
        # Purge at 10 days old now, should delete 2 more rows
        db.purge_deleted_rows(self.context, age_in_days=10)

        vol_rows = self.session.query(self.volumes).count()
        vol_meta_rows = self.session.query(self.vm).count()
        vol_type_rows = self.session.query(self.vol_types).count()
        vol_type_proj_rows = self.session.query(self.vol_type_proj).count()
        snap_rows = self.session.query(self.snapshots).count()
        snap_meta_rows = self.session.query(self.sm).count()
        vol_glance_meta_rows = self.session.query(self.vgm).count()
        qos_rows = self.session.query(self.qos).count()

        # Verify that we only have 2 rows now
        self.assertEqual(2, vol_rows)
        self.assertEqual(2, vol_meta_rows)
        self.assertEqual(5, vol_type_rows)
        self.assertEqual(2, vol_type_proj_rows)
        self.assertEqual(2, snap_rows)
        self.assertEqual(2, snap_meta_rows)
        self.assertEqual(4, vol_glance_meta_rows)
        self.assertEqual(4, qos_rows)
Esempio n. 4
0
    def test_purge_deleted_rows_old(self):
        dialect = self.engine.url.get_dialect()
        if dialect == sqlite.dialect:
            self.conn.execute("PRAGMA foreign_keys = ON")
        # Purge at 30 days old, should only delete 2 rows
        db.purge_deleted_rows(self.context, age_in_days=30)

        with db_api.main_context_manager.writer.using(self.context):
            vol_rows = self.context.session.query(self.volumes).count()
            vol_meta_rows = self.context.session.query(self.vm).count()
            vol_type_rows = self.context.session.query(self.vol_types).count()
            vol_type_proj_rows = self.context.session.query(
                self.vol_type_proj, ).count()
            snap_rows = self.context.session.query(self.snapshots).count()
            snap_meta_rows = self.context.session.query(self.sm).count()
            vol_glance_meta_rows = self.context.session.query(self.vgm).count()
            qos_rows = self.context.session.query(self.qos).count()

        # Verify that we only deleted 2
        self.assertEqual(4, vol_rows)
        self.assertEqual(4, vol_meta_rows)
        self.assertEqual(9, vol_type_rows)
        self.assertEqual(4, vol_type_proj_rows)
        self.assertEqual(4, snap_rows)
        self.assertEqual(4, snap_meta_rows)
        self.assertEqual(8, vol_glance_meta_rows)
        self.assertEqual(8, qos_rows)
Esempio n. 5
0
    def test_purge_deleted_rows_in_zero_age_in(self):
        dialect = self.engine.url.get_dialect()
        if dialect == sqlite.dialect:
            self.conn.execute("PRAGMA foreign_keys = ON")
        # Purge at age_in_days=0, should delete one more row
        db.purge_deleted_rows(self.context, age_in_days=0)

        with db_api.main_context_manager.writer.using(self.context):
            vol_rows = self.context.session.query(self.volumes).count()
            vol_meta_rows = self.context.session.query(self.vm).count()
            vol_type_rows = self.context.session.query(self.vol_types).count()
            vol_type_proj_rows = self.context.session.query(
                self.vol_type_proj, ).count()
            snap_rows = self.context.session.query(self.snapshots).count()
            snap_meta_rows = self.context.session.query(self.sm).count()
            vol_glance_meta_rows = self.context.session.query(self.vgm).count()
            qos_rows = self.context.session.query(self.qos).count()

        # Verify that we only have 1 rows now
        self.assertEqual(1, vol_rows)
        self.assertEqual(1, vol_meta_rows)
        self.assertEqual(3, vol_type_rows)
        self.assertEqual(1, vol_type_proj_rows)
        self.assertEqual(1, snap_rows)
        self.assertEqual(1, snap_meta_rows)
        self.assertEqual(2, vol_glance_meta_rows)
        self.assertEqual(2, qos_rows)
Esempio n. 6
0
 def purge(self, age_in_days):
     """Purge deleted rows older than a given age from cinder tables."""
     age_in_days = int(age_in_days)
     if age_in_days <= 0:
         print(_("Must supply a positive, non-zero value for age"))
         exit(1)
     ctxt = context.get_admin_context()
     db.purge_deleted_rows(ctxt, age_in_days)
Esempio n. 7
0
 def test_purge_deleted_rows_older(self):
     # Purge at 10 days old now, should delete 2 more rows
     db.purge_deleted_rows(self.context, age_in_days=10)
     rows = self.session.query(self.volumes).count()
     meta_rows = self.session.query(self.vm).count()
     # Verify that we only have 2 rows now
     self.assertEqual(2, rows)
     self.assertEqual(2, meta_rows)
Esempio n. 8
0
 def test_purge_deleted_rows_old(self):
     # Purge at 30 days old, should only delete 2 rows
     db.purge_deleted_rows(self.context, age_in_days=30)
     rows = self.session.query(self.volumes).count()
     meta_rows = self.session.query(self.vm).count()
     # Verify that we only deleted 2
     self.assertEqual(4, rows)
     self.assertEqual(4, meta_rows)
Esempio n. 9
0
 def purge(self, age_in_days):
     """Purge deleted rows older than a given age from cinder tables."""
     age_in_days = int(age_in_days)
     if age_in_days <= 0:
         print(_("Must supply a positive, non-zero value for age"))
         exit(1)
     ctxt = context.get_admin_context()
     db.purge_deleted_rows(ctxt, age_in_days)
Esempio n. 10
0
    def purge(self, age_in_days):
        """Purge deleted rows older than a given age from cinder tables."""
        age_in_days = int(age_in_days)
        if age_in_days <= 0:
            print(_("Must supply a positive, non-zero value for age"))
            sys.exit(1)
        ctxt = context.get_admin_context()

        try:
            db.purge_deleted_rows(ctxt, age_in_days)
        except db_exc.DBReferenceError:
            print(_("Purge command failed, check cinder-manage "
                    "logs for more details."))
            sys.exit(1)
Esempio n. 11
0
    def purge(self, age_in_days):
        """Purge deleted rows older than a given age from cinder tables."""
        age_in_days = int(age_in_days)
        if age_in_days <= 0:
            print(_("Must supply a positive, non-zero value for age"))
            sys.exit(1)
        ctxt = context.get_admin_context()

        try:
            db.purge_deleted_rows(ctxt, age_in_days)
        except db_exc.DBReferenceError:
            print(
                _("Purge command failed, check cinder-manage "
                  "logs for more details."))
            sys.exit(1)
Esempio n. 12
0
    def purge(self, age_in_days):
        """Purge deleted rows older than a given age from cinder tables."""
        age_in_days = int(age_in_days)
        if age_in_days < 0:
            print(_("Must supply a positive value for age"))
            sys.exit(1)
        if age_in_days >= (int(time.time()) / 86400):
            print(_("Maximum age is count of days since epoch."))
            sys.exit(1)
        ctxt = context.get_admin_context()

        try:
            db.purge_deleted_rows(ctxt, age_in_days)
        except db_exc.DBReferenceError:
            print(_("Purge command failed, check cinder-manage "
                    "logs for more details."))
            sys.exit(1)
Esempio n. 13
0
    def purge(self, age_in_days):
        """Purge deleted rows older than a given age from cinder tables."""
        age_in_days = int(age_in_days)
        if age_in_days < 0:
            print(_("Must supply a positive value for age"))
            sys.exit(1)
        if age_in_days >= (int(time.time()) / 86400):
            print(_("Maximum age is count of days since epoch."))
            sys.exit(1)
        ctxt = context.get_admin_context()

        try:
            db.purge_deleted_rows(ctxt, age_in_days)
        except db_exc.DBReferenceError:
            print(_("Purge command failed, check cinder-manage "
                    "logs for more details."))
            sys.exit(1)