public RecoveryEnabledConnection(IEnumerable <string> hostnames, Connection connection, AutoRecoverySettings recoverySettings)
        {
            _hostnames           = hostnames;
            _connection          = connection;
            _recoverySettings    = recoverySettings;
            _connection.Recovery = this;
            _channelRecoveries   = new List <RecoveryEnabledChannel>();

            _recoveryCancellationTokenSource = new CancellationTokenSource();
        }
Exemplo n.º 2
0
        public RecoveryEnabledChannel(Channel channel, AutoRecoverySettings recoverySettings)
        {
            _channel          = channel;
            _recoverySettings = recoverySettings;

            _declaredExchanges   = new List <ExchangeDeclaredRecovery>();
            _boundExchanges      = new List <ExchangeBindRecovery>();
            _declaredQueues      = new List <QueueDeclaredRecovery>();
            _boundQueues         = new List <QueueBoundRecovery>();
            _consumersRegistered = new List <QueueConsumerRecovery>();
            _rpcHelpers          = new List <BaseRpcHelper>();
        }
Exemplo n.º 3
0
        public async Task <IConnection> StartConnection(AutoRecoverySettings autoRecovery)
        {
            using (var console = new RestConsole(_host, _username, _password))
            {
                var vhosts = await console.GetVHosts();

                var users = await console.GetUsers();

                Console.WriteLine("vhosts: " + vhosts.Aggregate(" ", (agg, vhst) => agg + " " + vhst.Name));
                Console.WriteLine("users: " + users.Aggregate(" ", (agg, u) => agg + " " + u.Name + "[" + u.Tags + "]"));

                if (!vhosts.Any(v => v.Name == _vhost))
                {
                    await console.CreateVHost(_vhost);

                    await console.SetUserVHostPermission(_username, _vhost);
                }
            }

            LogAdapter.LogDebugFn = (cat, msg, exc) =>
            {
                Console.WriteLine("DEBUG [{0}] : {1} - {2}", cat, msg, exc);
            };
            LogAdapter.LogErrorFn = (cat, msg, exc) =>
            {
                var color = Console.ForegroundColor;
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Error.WriteLine("ERROR [{0}] : {1} - {2}", cat, msg, exc);
                Console.ForegroundColor = color;
            };
            LogAdapter.LogWarnFn = (cat, msg, exc) =>
            {
                var color = Console.ForegroundColor;
                Console.ForegroundColor = ConsoleColor.Magenta;
                Console.WriteLine("WARN  [{0}] : {1} - {2}", cat, msg, exc);
                Console.ForegroundColor = color;
            };

            var conn = await ConnectionFactory.Connect(_host, _vhost, _username, _password, recoverySettings : autoRecovery);

            if (conn is Connection)
            {
                _io = (conn as Connection)._io;
            }
            else if (conn is RecoveryEnabledConnection)
            {
                _io = (conn as RecoveryEnabledConnection)._connection._io;
            }

            _conn = conn;
            return(conn);
        }
 public RecoveryEnabledConnection(string hostname, Connection connection, AutoRecoverySettings recoverySettings)
     : this(new[] { hostname }, connection, recoverySettings)
 {
 }