public Task <ServerResponse> New(Action <QueueBinding> binding, Action <QueueBindingBehavior> behavior,
                                         Action <VirtualHostTarget> virtualHost,
                                         CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var behaviorImpl = new QueueBindingBehaviorImpl();

            behavior(behaviorImpl);

            var bindingImpl = new QueueBindingImpl();

            binding(bindingImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();

            virtualHost(virtualHostTargetImpl);

            string url = string.Format("api/bindings/{0}/e/{1}/q/{2}",
                                       virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       bindingImpl.Exchange, bindingImpl.Queue);

            LogInfo(
                string.Format(
                    "Sent request to RabbitMQ server to bind queue '{0}' to exchange '{1}' belonging to virtual host '{2}'.",
                    bindingImpl.Queue, bindingImpl.Exchange, virtualHostTargetImpl.Target));

            return(base.Post(url, behaviorImpl, cancellationToken).Response <ServerResponse>(cancellationToken));
        }
        public Task <ServerResponse> Set(Action <UserTarget> user, Action <UserPermissionsBehavior> behavior,
                                         Action <VirtualHostTarget> virtualHost,
                                         CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var argsImpl = new UserPermissionsBehaviorImpl();

            behavior(argsImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();

            virtualHost(virtualHostTargetImpl);

            var userTargetImpl = new UserTargetImpl();

            user(userTargetImpl);

            string url = string.Format("api/permissions/{0}/{1}", virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       userTargetImpl.Target);

            LogInfo(
                string.Format(
                    "Sent request to the RabbitMQ server to set permissions for user '{0}' on virtual host '{1}'.",
                    userTargetImpl.Target, virtualHostTargetImpl.Target));

            return(base.Put(url, argsImpl, cancellationToken).Response <ServerResponse>(cancellationToken));
        }
Esempio n. 3
0
        public Task <ServerResponse> New(Action <PolicyTarget> policy, Action <PolicyCharacteristics> characteristics,
                                         Action <VirtualHostTarget> virtualHost,
                                         CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var characteristicsImpl = new PolicyCharacteristicsImpl();

            characteristics(characteristicsImpl);

            var policyTargetImpl = new PolicyTargetImpl();

            policy(policyTargetImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();

            virtualHost(virtualHostTargetImpl);

            LogInfo(
                string.Format("Sent request to RabbitMQ server to create a new policy '{0}' on virtual host '{1}'.",
                              policyTargetImpl.Target, virtualHostTargetImpl.Target));

            string url = string.Format("api/policies/{0}/{1}", virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       policyTargetImpl.Target);

            return(base.Put(url, characteristicsImpl, cancellationToken).Response <ServerResponse>(cancellationToken));
        }
Esempio n. 4
0
        public Task <ServerResponse> New(Action <ExchangeTarget> exchange, Action <ExchangeBehavior> behavior,
                                         Action <VirtualHostTarget> virtualHost,
                                         CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var behaviorImpl = new ExchangeBehaviorImpl();

            behavior(behaviorImpl);

            var exchangeTargetImpl = new ExchangeTargetImpl();

            exchange(exchangeTargetImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();

            virtualHost(virtualHostTargetImpl);

            string url = string.Format("api/exchanges/{0}/{1}", virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       exchangeTargetImpl.Target);

            LogInfo(
                string.Format(
                    "Sent request to RabbitMQ server to create a new exchange '{0}' within virtual host '{1}'.",
                    exchangeTargetImpl.Target, virtualHostTargetImpl.Target));

            return(base.Put(url, behaviorImpl, cancellationToken).Response <ServerResponse>(cancellationToken));
        }
Esempio n. 5
0
        public Task<Binding> Get(Action<QueueTarget> queue, Action<ExchangeTarget> exchange,
                                 Action<VirtualHostTarget> virtualHost, Action<PropertiesKeyTarget> propertiesKey,
                                 CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var queueTargetImpl = new QueueTargetImpl();
            queue(queueTargetImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();
            virtualHost(virtualHostTargetImpl);

            var exchangeTargetImpl = new ExchangeTargetImpl();
            exchange(exchangeTargetImpl);

            var propertiesKeyTargetImpl = new PropertiesKeyTargetImpl();
            propertiesKey(propertiesKeyTargetImpl);

            string url = string.Format("api/bindings/{0}/e/{1}/q/{2}/{3}",
                                       virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       exchangeTargetImpl.Target, queueTargetImpl.Target,
                                       propertiesKeyTargetImpl.Target.SanitizePropertiesKey());

            LogInfo(
                string.Format(
                    "Sent request to RabbitMQ server to return queue binding between queue '{0}' and exchange '{1}' in virtual host '{2}'.",
                    queueTargetImpl.Target, exchangeTargetImpl.Target, virtualHostTargetImpl.Target));

            return base.Get(url, cancellationToken).As<Binding>(cancellationToken);
        }
Esempio n. 6
0
        public Task <IEnumerable <Binding> > GetAllBindings(Action <ExchangeTarget> exchange,
                                                            Action <VirtualHostTarget> virtualHost,
                                                            Action <BindingDirection> direction,
                                                            CancellationToken cancellationToken =
                                                            default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var exchangeTargetImpl = new ExchangeTargetImpl();

            exchange(exchangeTargetImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();

            virtualHost(virtualHostTargetImpl);

            var directionImpl = new BindingDirectionImpl();

            direction(directionImpl);

            string url = string.Format("api/exchanges/{0}/{1}/bindings/{2}",
                                       virtualHostTargetImpl.Target.SanitizeVirtualHostName(), exchangeTargetImpl.Target,
                                       directionImpl.BindingDirection);

            LogInfo(
                string.Format(
                    "Sent request to RabbitMQ server to return all the bindings for exchange '{0}' belonging to virtual host '{1}'.",
                    exchangeTargetImpl.Target, virtualHostTargetImpl.Target));

            return(base.Get(url, cancellationToken).As <IEnumerable <Binding> >(cancellationToken));
        }
Esempio n. 7
0
        public Task <ServerResponse> New(Action <QueueTarget> queue, Action <QueueBehavior> behavior,
                                         Action <VirtualHostTarget> virtualHost,
                                         CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var queueTargetImpl = new QueueTargetImpl();

            queue(queueTargetImpl);

            var behaviorImpl = new QueueBehaviorImpl();

            behavior(behaviorImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();

            virtualHost(virtualHostTargetImpl);

            string url = string.Format("api/queues/{0}/{1}", virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       queueTargetImpl.Target);

            LogInfo(string.IsNullOrEmpty(behaviorImpl.Node)
                        ? string.Format(
                        "Sent request to RabbitMQ server to create queue '{0}' on virtual host '{1}'.",
                        queueTargetImpl.Target,
                        virtualHostTargetImpl.Target)
                        : string.Format(
                        "Sent request to RabbitMQ server to create queue '{0}' on virtual host '{1}' on node '{2}'.",
                        queueTargetImpl.Target, virtualHostTargetImpl.Target, behaviorImpl.Node));

            return(base.Put(url, behaviorImpl, cancellationToken).Response <ServerResponse>(cancellationToken));
        }
        public Task <ServerResponse> Delete(Action <QueueTarget> queue, Action <ExchangeTarget> exchange,
                                            Action <VirtualHostTarget> virtualHost,
                                            Action <PropertiesKeyTarget> propertiesKey,
                                            CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var queueTargetImpl = new QueueTargetImpl();

            queue(queueTargetImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();

            virtualHost(virtualHostTargetImpl);

            var exchangeTargetImpl = new ExchangeTargetImpl();

            exchange(exchangeTargetImpl);

            var propertiesKeyTargetImpl = new PropertiesKeyTargetImpl();

            propertiesKey(propertiesKeyTargetImpl);

            string url = string.Format("api/bindings/{0}/e/{1}/q/{2}/{3}",
                                       virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       exchangeTargetImpl.Target, queueTargetImpl.Target,
                                       propertiesKeyTargetImpl.Target.SanitizePropertiesKey());

            LogInfo(
                string.Format(
                    "Sent request to RabbitMQ server to delete queue binding between queue '{0}' and exchange '{1}' in virtual host '{2}'.",
                    queueTargetImpl.Target, exchangeTargetImpl.Target, virtualHostTargetImpl.Target));

            return(base.Delete(url, cancellationToken).Response <ServerResponse>(cancellationToken));
        }
Esempio n. 9
0
        public Task <AlivenessTestResponse> IsAlive(Action <VirtualHostTarget> virtualHost,
                                                    CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();

            virtualHost(virtualHostTargetImpl);

            string url = string.Format("api/aliveness-test/{0}", virtualHostTargetImpl.Target.SanitizeVirtualHostName());

            LogInfo(
                string.Format(
                    "Sent request to execute an aliveness test on virtual host '{0}' on current RabbitMQ server.",
                    virtualHostTargetImpl.Target));

            return(base.Get(url, cancellationToken)
                   .ContinueWith(t =>
            {
                t.Result.EnsureSuccessStatusCode();
                var response = t.Result.Content.ReadAsAsync <AlivenessTestResponse>().Result;
                response.StatusCode = t.Result.StatusCode;
                response.ServerResponseReason = t.Result.ReasonPhrase;

                return response;
            }, cancellationToken, TaskContinuationOptions.OnlyOnRanToCompletion,
                                 TaskScheduler.Current));
        }
Esempio n. 10
0
        public Task <IEnumerable <Queue> > GetAll(Action <VirtualHostTarget> virtualHost, CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();

            virtualHost(virtualHostTargetImpl);

            string url = string.Format("api/queues/{0}", virtualHostTargetImpl.Target);

            LogInfo(
                "Sent request to return all information on all queues on all virtual hosts on current RabbitMQ server.");

            return(base.Get(url, cancellationToken).As <IEnumerable <Queue> >(cancellationToken));
        }
Esempio n. 11
0
        public Task<Parameter> Get(string component, string name, Action<VirtualHostTarget> target,
                                   CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            LogInfo(
                "Sent request to return all information pertaining to all parameters on all virtual hosts on current RabbitMQ server.");

            var targetImpl = new VirtualHostTargetImpl();
            target(targetImpl);

            string url = string.Format("api/parameters/{0}/{1}/{2}", component,
                                       targetImpl.Target.SanitizeVirtualHostName(), name);

            return base.Get(url, cancellationToken).As<Parameter>(cancellationToken);
        }
Esempio n. 12
0
        public Task <Parameter> Get(string component, string name, Action <VirtualHostTarget> target,
                                    CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            LogInfo(
                "Sent request to return all information pertaining to all parameters on all virtual hosts on current RabbitMQ server.");

            var targetImpl = new VirtualHostTargetImpl();

            target(targetImpl);

            string url = string.Format("api/parameters/{0}/{1}/{2}", component,
                                       targetImpl.Target.SanitizeVirtualHostName(), name);

            return(base.Get(url, cancellationToken).As <Parameter>(cancellationToken));
        }
Esempio n. 13
0
        public Task<ServerResponse> Delete(string component, string name, Action<VirtualHostTarget> target,
                                           CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var targetImpl = new VirtualHostTargetImpl();
            target(targetImpl);

            LogInfo(
                string.Format(
                    "Sent request to RabbitMQ server to delete parameter '{0}' of component '{1}' on virtual host '{2}'.",
                    name, component, targetImpl.Target));

            string url = string.Format("api/parameters/{0}/{1}/{2}", component,
                                       targetImpl.Target.SanitizeVirtualHostName(), name);

            return base.Delete(url, cancellationToken).Response<ServerResponse>(cancellationToken);
        }
Esempio n. 14
0
        public Task <ServerResponse> New(Action <VirtualHostTarget> virtualHost,
                                         CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();

            virtualHost(virtualHostTargetImpl);

            string url = string.Format("api/vhosts/{0}", virtualHostTargetImpl.Target.SanitizeVirtualHostName());

            LogInfo(string.Format("Sent request to RabbitMQ server to create virtual host '{0}'.",
                                  virtualHostTargetImpl.Target));

            return
                (base.Put(url, new StringContent(string.Empty), cancellationToken)
                 .Response <ServerResponse>(cancellationToken));
        }
Esempio n. 15
0
        public Task <IEnumerable <Policy> > GetAll(Action <VirtualHostTarget> virtualHost,
                                                   CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();

            virtualHost(virtualHostTargetImpl);

            LogInfo(
                string.Format(
                    "Sent request to return all policy information pertaining to virtual host {0} on current RabbitMQ server.",
                    virtualHostTargetImpl.Target));

            string url = string.Format("api/policies/{0}", virtualHostTargetImpl.Target.SanitizeVirtualHostName());

            return(base.Get(url, cancellationToken).As <IEnumerable <Policy> >(cancellationToken));
        }
Esempio n. 16
0
        public Task<ServerResponse> Delete(Action<QueueTarget> queue, Action<VirtualHostTarget> virtualHost,
                                           CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var queueTargetImpl = new QueueTargetImpl();
            queue(queueTargetImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();
            virtualHost(virtualHostTargetImpl);

            string url = string.Format("api/queues/{0}/{1}", virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       queueTargetImpl.Target);

            LogInfo(string.Format("Sent request to RabbitMQ server to delete queue '{0}' from virtual host '{1}'.",
                                  queueTargetImpl.Target, virtualHostTargetImpl.Target));

            return base.Delete(url, cancellationToken).Response<ServerResponse>(cancellationToken);
        }
Esempio n. 17
0
        public Task <IEnumerable <Parameter> > GetAll(string component, Action <VirtualHostTarget> target,
                                                      CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var targetImpl = new VirtualHostTargetImpl();

            target(targetImpl);

            LogInfo(
                string.Format(
                    "Sent request to return all information pertaining to all parameters for component '{0} on virtual host '{1}' on current RabbitMQ server.",
                    component, targetImpl.Target));

            string url = string.Format("api/parameters/{0}/{1}", component,
                                       targetImpl.Target.SanitizeVirtualHostName());

            return(base.Get(url, cancellationToken).As <IEnumerable <Parameter> >(cancellationToken));
        }
Esempio n. 18
0
        public Task <ServerResponse> Delete(string component, string name, Action <VirtualHostTarget> target,
                                            CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var targetImpl = new VirtualHostTargetImpl();

            target(targetImpl);

            LogInfo(
                string.Format(
                    "Sent request to RabbitMQ server to delete parameter '{0}' of component '{1}' on virtual host '{2}'.",
                    name, component, targetImpl.Target));

            string url = string.Format("api/parameters/{0}/{1}/{2}", component,
                                       targetImpl.Target.SanitizeVirtualHostName(), name);

            return(base.Delete(url, cancellationToken).Response <ServerResponse>(cancellationToken));
        }
Esempio n. 19
0
        public Task<Permissions> Get(Action<UserTarget> user, Action<VirtualHostTarget> virtualHost,
                                     CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();
            virtualHost(virtualHostTargetImpl);

            var userTargetImpl = new UserTargetImpl();
            user(userTargetImpl);

            string url = string.Format("api/permissions/{0}/{1}", virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       userTargetImpl.Target);

            LogInfo(
                string.Format(
                    "Sent request to return user permission information pertaining to user '{0}' on virtual host '{1}' users on current RabbitMQ server.",
                    userTargetImpl.Target, virtualHostTargetImpl.Target));

            return base.Get(url, cancellationToken).As<Permissions>(cancellationToken);
        }
Esempio n. 20
0
        public Task<Policy> Get(Action<PolicyTarget> policy, Action<VirtualHostTarget> virtualHost,
                                CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var policyTargetImpl = new PolicyTargetImpl();
            policy(policyTargetImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();
            virtualHost(virtualHostTargetImpl);

            LogInfo(
                string.Format(
                    "Sent request to RabbitMQ server to return policy information pertaining to policy '{0}' belonging to virtual host '{1}'.",
                    policyTargetImpl.Target, virtualHostTargetImpl.Target));

            string url = string.Format("api/policies/{0}/{1}", virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       policyTargetImpl.Target);

            return base.Get(url, cancellationToken).As<Policy>(cancellationToken);
        }
Esempio n. 21
0
        public Task <ServerResponse> Delete(Action <QueueTarget> queue, Action <VirtualHostTarget> virtualHost,
                                            CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var queueTargetImpl = new QueueTargetImpl();

            queue(queueTargetImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();

            virtualHost(virtualHostTargetImpl);

            string url = string.Format("api/queues/{0}/{1}", virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       queueTargetImpl.Target);

            LogInfo(string.Format("Sent request to RabbitMQ server to delete queue '{0}' from virtual host '{1}'.",
                                  queueTargetImpl.Target, virtualHostTargetImpl.Target));

            return(base.Delete(url, cancellationToken).Response <ServerResponse>(cancellationToken));
        }
Esempio n. 22
0
        public Task<Exchange> Get(Action<ExchangeTarget> exchange, Action<VirtualHostTarget> virtualHost,
                                  CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var exchangeTargetImpl = new ExchangeTargetImpl();
            exchange(exchangeTargetImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();
            virtualHost(virtualHostTargetImpl);

            LogInfo(
                string.Format(
                    "Sent request to RabbitMQ server to return information pertaining to exchange '{0}' belonging to virtual host '{1}'.",
                    exchangeTargetImpl.Target, virtualHostTargetImpl.Target));

            string url = string.Format("api/exchanges/{0}/{1}", virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       exchangeTargetImpl.Target);

            return base.Get(url, cancellationToken).As<Exchange>(cancellationToken);
        }
Esempio n. 23
0
        public Task<ServerResponse> Delete(Action<UserTarget> user, Action<VirtualHostTarget> virtualHost,
                                           CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();
            virtualHost(virtualHostTargetImpl);

            var userTargetImpl = new UserTargetImpl();
            user(userTargetImpl);

            string url = string.Format("api/permissions/{0}/{1}", virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       userTargetImpl.Target);

            LogInfo(
                string.Format(
                    "Sent request to the RabbitMQ server to delete permissions for user '{0}' on virtual host '{1}'.",
                    userTargetImpl.Target, virtualHostTargetImpl.Target));

            return base.Delete(url, cancellationToken).Response<ServerResponse>(cancellationToken);
        }
Esempio n. 24
0
        public Task<ServerResponse> Delete(Action<VirtualHostTarget> virtualHost,
                                           CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();
            virtualHost(virtualHostTargetImpl);

            if (virtualHostTargetImpl.Target.SanitizeVirtualHostName() == "2%f")
            {
                LogError(
                    "VirtualHost.Delete method threw a CannotDeleteVirtualHostException exception for attempting to delete the default virtual host.");
                throw new CannotDeleteVirtualHostException("Cannot delete the default virtual host.");
            }

            string url = string.Format("api/vhosts/{0}", virtualHostTargetImpl.Target.SanitizeVirtualHostName());

            LogInfo(string.Format("Sent request to RabbitMQ server to delete virtual host '{0}'.",
                                  virtualHostTargetImpl.Target));

            return base.Delete(url, cancellationToken).Response<ServerResponse>(cancellationToken);
        }
Esempio n. 25
0
        public Task <Policy> Get(Action <PolicyTarget> policy, Action <VirtualHostTarget> virtualHost,
                                 CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var policyTargetImpl = new PolicyTargetImpl();

            policy(policyTargetImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();

            virtualHost(virtualHostTargetImpl);

            LogInfo(
                string.Format(
                    "Sent request to RabbitMQ server to return policy information pertaining to policy '{0}' belonging to virtual host '{1}'.",
                    policyTargetImpl.Target, virtualHostTargetImpl.Target));

            string url = string.Format("api/policies/{0}/{1}", virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       policyTargetImpl.Target);

            return(base.Get(url, cancellationToken).As <Policy>(cancellationToken));
        }
        public Task <Permissions> Get(Action <UserTarget> user, Action <VirtualHostTarget> virtualHost,
                                      CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();

            virtualHost(virtualHostTargetImpl);

            var userTargetImpl = new UserTargetImpl();

            user(userTargetImpl);

            string url = string.Format("api/permissions/{0}/{1}", virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       userTargetImpl.Target);

            LogInfo(
                string.Format(
                    "Sent request to return user permission information pertaining to user '{0}' on virtual host '{1}' users on current RabbitMQ server.",
                    userTargetImpl.Target, virtualHostTargetImpl.Target));

            return(base.Get(url, cancellationToken).As <Permissions>(cancellationToken));
        }
Esempio n. 27
0
        public Task <ServerResponse> Delete(Action <VirtualHostTarget> virtualHost,
                                            CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();

            virtualHost(virtualHostTargetImpl);

            if (virtualHostTargetImpl.Target.SanitizeVirtualHostName() == "2%f")
            {
                LogError(
                    "VirtualHost.Delete method threw a CannotDeleteVirtualHostException exception for attempting to delete the default virtual host.");
                throw new CannotDeleteVirtualHostException("Cannot delete the default virtual host.");
            }

            string url = string.Format("api/vhosts/{0}", virtualHostTargetImpl.Target.SanitizeVirtualHostName());

            LogInfo(string.Format("Sent request to RabbitMQ server to delete virtual host '{0}'.",
                                  virtualHostTargetImpl.Target));

            return(base.Delete(url, cancellationToken).Response <ServerResponse>(cancellationToken));
        }
Esempio n. 28
0
        public Task <Exchange> Get(Action <ExchangeTarget> exchange, Action <VirtualHostTarget> virtualHost,
                                   CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var exchangeTargetImpl = new ExchangeTargetImpl();

            exchange(exchangeTargetImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();

            virtualHost(virtualHostTargetImpl);

            LogInfo(
                string.Format(
                    "Sent request to RabbitMQ server to return information pertaining to exchange '{0}' belonging to virtual host '{1}'.",
                    exchangeTargetImpl.Target, virtualHostTargetImpl.Target));

            string url = string.Format("api/exchanges/{0}/{1}", virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       exchangeTargetImpl.Target);

            return(base.Get(url, cancellationToken).As <Exchange>(cancellationToken));
        }
        public Task <IEnumerable <Binding> > GetAll(Action <QueueTarget> queue, Action <VirtualHostTarget> virtualHost,
                                                    CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var queueTargetImpl = new QueueTargetImpl();

            queue(queueTargetImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();

            virtualHost(virtualHostTargetImpl);

            LogInfo(
                string.Format(
                    "Sent request to RabbitMQ server to return all bindings on queue '{0}' belonging to virtual host '{1}'.",
                    queueTargetImpl.Target, virtualHostTargetImpl.Target));

            string url = string.Format("api/queues/{0}/{1}/bindings",
                                       virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       queueTargetImpl.Target);

            return(base.Get(url, cancellationToken).As <IEnumerable <Binding> >(cancellationToken));
        }
Esempio n. 30
0
        public Task<IEnumerable<Parameter>> GetAll(string component, Action<VirtualHostTarget> target,
                                                   CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var targetImpl = new VirtualHostTargetImpl();
            target(targetImpl);

            LogInfo(
                string.Format(
                    "Sent request to return all information pertaining to all parameters for component '{0} on virtual host '{1}' on current RabbitMQ server.",
                    component, targetImpl.Target));

            string url = string.Format("api/parameters/{0}/{1}", component,
                                       targetImpl.Target.SanitizeVirtualHostName());

            return base.Get(url, cancellationToken).As<IEnumerable<Parameter>>(cancellationToken);
        }
Esempio n. 31
0
        public Task<IEnumerable<Binding>> GetAllBindings(Action<ExchangeTarget> exchange,
                                                         Action<VirtualHostTarget> virtualHost,
                                                         Action<BindingDirection> direction,
                                                         CancellationToken cancellationToken =
                                                             default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var exchangeTargetImpl = new ExchangeTargetImpl();
            exchange(exchangeTargetImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();
            virtualHost(virtualHostTargetImpl);

            var directionImpl = new BindingDirectionImpl();
            direction(directionImpl);

            string url = string.Format("api/exchanges/{0}/{1}/bindings/{2}",
                                       virtualHostTargetImpl.Target.SanitizeVirtualHostName(), exchangeTargetImpl.Target,
                                       directionImpl.BindingDirection);

            LogInfo(
                string.Format(
                    "Sent request to RabbitMQ server to return all the bindings for exchange '{0}' belonging to virtual host '{1}'.",
                    exchangeTargetImpl.Target, virtualHostTargetImpl.Target));

            return base.Get(url, cancellationToken).As<IEnumerable<Binding>>(cancellationToken);
        }
Esempio n. 32
0
        public Task<IEnumerable<Policy>> GetAll(Action<VirtualHostTarget> virtualHost,
                                                CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();
            virtualHost(virtualHostTargetImpl);

            LogInfo(
                string.Format(
                    "Sent request to return all policy information pertaining to virtual host {0} on current RabbitMQ server.",
                    virtualHostTargetImpl.Target));

            string url = string.Format("api/policies/{0}", virtualHostTargetImpl.Target.SanitizeVirtualHostName());

            return base.Get(url, cancellationToken).As<IEnumerable<Policy>>(cancellationToken);
        }
Esempio n. 33
0
        public Task<ServerResponse> New(string policy, Action<VirtualHostTarget> target,
                                        Action<PolicyCharacteristics> characteristics,
                                        CancellationToken cancellationToken = new CancellationToken())
        {
            cancellationToken.RequestCanceled(LogInfo);

            var characteristicsImpl = new PolicyCharacteristicsImpl();
            characteristics(characteristicsImpl);

            var targetImpl = new VirtualHostTargetImpl();
            target(targetImpl);

            LogInfo(
                string.Format("Sent request to RabbitMQ server to create a new policy '{0}' on virtual host '{1}'.",
                              policy, targetImpl.VirtualHost));

            string url = string.Format("api/policies/{0}/{1}", targetImpl.VirtualHost.SanitizeVirtualHostName(), policy);

            return base.Put(url, characteristicsImpl, cancellationToken).Response<ServerResponse>(cancellationToken);
        }
Esempio n. 34
0
        public Task<IEnumerable<Binding>> GetAll(Action<QueueTarget> queue, Action<VirtualHostTarget> virtualHost,
                                                 CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var queueTargetImpl = new QueueTargetImpl();
            queue(queueTargetImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();
            virtualHost(virtualHostTargetImpl);

            LogInfo(
                string.Format(
                    "Sent request to RabbitMQ server to return all bindings on queue '{0}' belonging to virtual host '{1}'.",
                    queueTargetImpl.Target, virtualHostTargetImpl.Target));

            string url = string.Format("api/queues/{0}/{1}/bindings",
                                       virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       queueTargetImpl.Target);

            return base.Get(url, cancellationToken).As<IEnumerable<Binding>>(cancellationToken);
        }
Esempio n. 35
0
        public Task<ServerResponse> New(Action<VirtualHostTarget> virtualHost,
                                        CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();
            virtualHost(virtualHostTargetImpl);

            string url = string.Format("api/vhosts/{0}", virtualHostTargetImpl.Target.SanitizeVirtualHostName());

            LogInfo(string.Format("Sent request to RabbitMQ server to create virtual host '{0}'.",
                                  virtualHostTargetImpl.Target));

            return
                base.Put(url, new StringContent(string.Empty), cancellationToken)
                    .Response<ServerResponse>(cancellationToken);
        }
Esempio n. 36
0
        public Task<AlivenessTestResponse> IsAlive(Action<VirtualHostTarget> virtualHost,
                                                   CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();
            virtualHost(virtualHostTargetImpl);

            string url = string.Format("api/aliveness-test/{0}", virtualHostTargetImpl.Target.SanitizeVirtualHostName());

            LogInfo(
                string.Format(
                    "Sent request to execute an aliveness test on virtual host '{0}' on current RabbitMQ server.",
                    virtualHostTargetImpl.Target));

            return base.Get(url, cancellationToken)
                       .ContinueWith(t =>
                                         {
                                             t.Result.EnsureSuccessStatusCode();
                                             var response = t.Result.Content.ReadAsAsync<AlivenessTestResponse>().Result;
                                             response.StatusCode = t.Result.StatusCode;
                                             response.ServerResponseReason = t.Result.ReasonPhrase;

                                             return response;
                                         }, cancellationToken, TaskContinuationOptions.OnlyOnRanToCompletion,
                                     TaskScheduler.Current);
        }
Esempio n. 37
0
        public Task<IEnumerable<Queue>> GetAll(Action<VirtualHostTarget> virtualHost, CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();
            virtualHost(virtualHostTargetImpl);

            string url = string.Format("api/queues/{0}", virtualHostTargetImpl.Target);

            LogInfo(
                "Sent request to return all information on all queues on all virtual hosts on current RabbitMQ server.");

            return base.Get(url, cancellationToken).As<IEnumerable<Queue>>(cancellationToken);
        }
Esempio n. 38
0
        public Task<ServerResponse> New(Action<QueueBinding> binding, Action<QueueBindingBehavior> behavior,
                                        Action<VirtualHostTarget> virtualHost,
                                        CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var behaviorImpl = new QueueBindingBehaviorImpl();
            behavior(behaviorImpl);

            var bindingImpl = new QueueBindingImpl();
            binding(bindingImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();
            virtualHost(virtualHostTargetImpl);

            string url = string.Format("api/bindings/{0}/e/{1}/q/{2}",
                                       virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       bindingImpl.Exchange, bindingImpl.Queue);

            LogInfo(
                string.Format(
                    "Sent request to RabbitMQ server to bind queue '{0}' to exchange '{1}' belonging to virtual host '{2}'.",
                    bindingImpl.Queue, bindingImpl.Exchange, virtualHostTargetImpl.Target));

            return base.Post(url, behaviorImpl, cancellationToken).Response<ServerResponse>(cancellationToken);
        }
Esempio n. 39
0
        public Task<ServerResponse> New(Action<QueueTarget> queue, Action<QueueBehavior> behavior,
                                        Action<VirtualHostTarget> virtualHost,
                                        CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var queueTargetImpl = new QueueTargetImpl();
            queue(queueTargetImpl);

            var behaviorImpl = new QueueBehaviorImpl();
            behavior(behaviorImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();
            virtualHost(virtualHostTargetImpl);

            string url = string.Format("api/queues/{0}/{1}", virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       queueTargetImpl.Target);

            LogInfo(string.IsNullOrEmpty(behaviorImpl.Node)
                        ? string.Format(
                            "Sent request to RabbitMQ server to create queue '{0}' on virtual host '{1}'.",
                            queueTargetImpl.Target,
                            virtualHostTargetImpl.Target)
                        : string.Format(
                            "Sent request to RabbitMQ server to create queue '{0}' on virtual host '{1}' on node '{2}'.",
                            queueTargetImpl.Target, virtualHostTargetImpl.Target, behaviorImpl.Node));

            return base.Put(url, behaviorImpl, cancellationToken).Response<ServerResponse>(cancellationToken);
        }
Esempio n. 40
0
        public Task<ServerResponse> New(Action<ExchangeTarget> exchange, Action<ExchangeBehavior> behavior,
                                        Action<VirtualHostTarget> virtualHost,
                                        CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.RequestCanceled(LogInfo);

            var behaviorImpl = new ExchangeBehaviorImpl();
            behavior(behaviorImpl);

            var exchangeTargetImpl = new ExchangeTargetImpl();
            exchange(exchangeTargetImpl);

            var virtualHostTargetImpl = new VirtualHostTargetImpl();
            virtualHost(virtualHostTargetImpl);

            string url = string.Format("api/exchanges/{0}/{1}", virtualHostTargetImpl.Target.SanitizeVirtualHostName(),
                                       exchangeTargetImpl.Target);

            LogInfo(
                string.Format(
                    "Sent request to RabbitMQ server to create a new exchange '{0}' within virtual host '{1}'.",
                    exchangeTargetImpl.Target, virtualHostTargetImpl.Target));

            return base.Put(url, behaviorImpl, cancellationToken).Response<ServerResponse>(cancellationToken);
        }