Exemple #1
0
    def testGetAllStrippedCloudSqlInstanceIds(
            self, mock_secrets: mock.MagicMock) -> None:
        # Arrange
        mock_secrets.side_effect = [
            "project:region:111",
            "project:region:222",
            "project:region:333",
            "project:region:444",
            "project:region:555",
        ]

        # Act
        ids = SQLAlchemyEngineManager.get_all_stripped_cloudsql_instance_ids()

        # Assert
        self.assertEqual(ids, ["111", "222", "333", "444", "555"])
        mock_secrets.assert_has_calls(
            [
                mock.call("sqlalchemy_cloudsql_instance_id"),
                mock.call("state_cloudsql_instance_id"),
                mock.call("operations_cloudsql_instance_id"),
                mock.call("justice_counts_cloudsql_instance_id"),
                mock.call("case_triage_cloudsql_instance_id"),
            ],
            any_order=True,
        )
def update_long_term_backups() -> Tuple[str, HTTPStatus]:
    """Create manual backups for all cloudsql instances and delete
    manual backups for each instance that are older than _MAX_BACKUP_AGE_DAYS.
    """
    project_id = metadata.project_id()
    logging.info("Starting backup of all cloudsql instances in [%s]", project_id)
    for instance_id in SQLAlchemyEngineManager.get_all_stripped_cloudsql_instance_ids():
        update_long_term_backups_for_cloudsql_instance(project_id, instance_id)

    logging.info("All backup operations completed successfully")
    return "", HTTPStatus.OK
    def testGetAllStrippedCloudSqlInstanceIds_returnsOnlyConfiguredIds(
            self, mock_secrets):
        # Arrange
        mock_secrets.side_effect = [
            'project:zone:111', 'project:zone:222', 'project:zone:333',
            'project:zone:444'
        ]

        # Act
        ids = SQLAlchemyEngineManager.get_all_stripped_cloudsql_instance_ids()

        # Assert
        assert ids == ['111', '222', '333', '444']
    def testGetAllStrippedCloudSqlInstanceIds_returnsOnlyConfiguredIds(
            self, mock_secrets):
        # Arrange
        mock_secrets.side_effect = [
            "project:zone:111",
            "project:zone:222",
            "project:zone:333",
            "project:zone:444",
            "project:zone:555",
        ]

        # Act
        ids = SQLAlchemyEngineManager.get_all_stripped_cloudsql_instance_ids()

        # Assert
        assert ids == ["111", "222", "333", "444", "555"]