Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled
Concelier Attestation Tests / attestation-tests (push) Has been cancelled
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
- Implemented MigrationCategoryTests to validate migration categorization for startup, release, seed, and data migrations. - Added tests for edge cases, including null, empty, and whitespace migration names. - Created StartupMigrationHostTests to verify the behavior of the migration host with real PostgreSQL instances using Testcontainers. - Included tests for migration execution, schema creation, and handling of pending release migrations. - Added SQL migration files for testing: creating a test table, adding a column, a release migration, and seeding data.
42 lines
1.5 KiB
C#
42 lines
1.5 KiB
C#
using System;
|
|
|
|
namespace StellaOps.Cli.Services;
|
|
|
|
/// <summary>
|
|
/// Guard for operations that require network connectivity.
|
|
/// Stub implementation - will be wired to actual offline mode detection.
|
|
/// </summary>
|
|
internal static class OfflineModeGuard
|
|
{
|
|
/// <summary>
|
|
/// Gets whether the CLI is currently in offline mode.
|
|
/// </summary>
|
|
public static bool IsOffline { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets whether network operations are allowed.
|
|
/// </summary>
|
|
public static bool IsNetworkAllowed() => !IsOffline;
|
|
|
|
/// <summary>
|
|
/// Gets whether network operations are allowed, checking options and logging operation.
|
|
/// </summary>
|
|
/// <param name="options">CLI options (used to check offline mode setting).</param>
|
|
/// <param name="operationName">Name of the operation being checked.</param>
|
|
public static bool IsNetworkAllowed(object? options, string operationName) => !IsOffline;
|
|
|
|
/// <summary>
|
|
/// Throws if the CLI is in offline mode and the operation requires network.
|
|
/// </summary>
|
|
/// <param name="operationName">Name of the operation being guarded.</param>
|
|
/// <exception cref="InvalidOperationException">Thrown when offline and network required.</exception>
|
|
public static void ThrowIfOffline(string operationName)
|
|
{
|
|
if (IsOffline)
|
|
{
|
|
throw new InvalidOperationException(
|
|
$"Operation '{operationName}' requires network connectivity but CLI is in offline mode.");
|
|
}
|
|
}
|
|
}
|