Return-Path: X-Original-To: apmail-qpid-users-archive@www.apache.org Delivered-To: apmail-qpid-users-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2225F11E35 for ; Fri, 29 Aug 2014 21:10:19 +0000 (UTC) Received: (qmail 65777 invoked by uid 500); 29 Aug 2014 21:10:18 -0000 Delivered-To: apmail-qpid-users-archive@qpid.apache.org Received: (qmail 65741 invoked by uid 500); 29 Aug 2014 21:10:18 -0000 Mailing-List: contact users-help@qpid.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@qpid.apache.org Delivered-To: mailing list users@qpid.apache.org Received: (qmail 65724 invoked by uid 99); 29 Aug 2014 21:10:18 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 29 Aug 2014 21:10:18 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of rob.j.godfrey@gmail.com designates 209.85.192.43 as permitted sender) Received: from [209.85.192.43] (HELO mail-qg0-f43.google.com) (209.85.192.43) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 29 Aug 2014 21:09:52 +0000 Received: by mail-qg0-f43.google.com with SMTP id f51so2852356qge.16 for ; Fri, 29 Aug 2014 14:09:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=m/IGQkxWsn0KsG/1O/r9Zk0CHXtvF5iMcTmTYvyvoMM=; b=SNCWX2h8rsGjo4VJiXTfF2rKOAXtNKk50zsqP/UjuCC5Z9GwvXa2qhfoQrWkk4U2HS SPibFk6fxevNVPO3ChlQf7AWJ9Cnoyl9bJuaw6CrtZc1ET+hZxG/nUdat9fgJZlkwC0l Ei3eCo0faOWDeyytHSQkjzKEfHZM1A9WHLc732+KwPVJxiVxcMxd3oD8Z7y5CkjkCsLK 3GGejbl/a8jVIBByeMKxkvdfHDXWdQBuFr97A7QsFttHJ2bXFGj6Dgs+Er3cCqTs0N7V kn8skiHo4HKtLljOTWUvqfbpQWlvrSvBNEollmoLR3mKdj713Ps1V4WU3yWtMaqsIRDi SidA== MIME-Version: 1.0 X-Received: by 10.140.104.69 with SMTP id z63mr20474620qge.81.1409346590987; Fri, 29 Aug 2014 14:09:50 -0700 (PDT) Received: by 10.140.101.6 with HTTP; Fri, 29 Aug 2014 14:09:50 -0700 (PDT) In-Reply-To: <1409345959.13978.30.camel@localhost> References: <1409341222.13978.4.camel@localhost> <1409345959.13978.30.camel@localhost> Date: Fri, 29 Aug 2014 23:09:50 +0200 Message-ID: Subject: Re: REST API for AMQP management? From: Rob Godfrey To: "users@qpid.apache.org" Content-Type: multipart/alternative; boundary=001a11354780ebdab40501cb1263 X-Virus-Checked: Checked by ClamAV on apache.org --001a11354780ebdab40501cb1263 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Can you give an example of how you would create / read / update / delete a named object of a given type through this API. Are you using the name or the identity field as the identifier to generate the URI for the "resource" being described? -- Rob On 29 August 2014 22:59, Alan Conway wrote: > On Fri, 2014-08-29 at 19:45 +0000, Gibson, Jack wrote: > > Alan - > > > > I have been playing with vertx to amqp 1.0 set of restful services to > > manage dispatch routers. So, I wouldn=C2=B9t mind helping out. Let me= know > to > > engage. > > > > I've been distracted for a while so I need to get my head back into the > dispatch management code. I have some work to finish up, mostly merging > functionality from the old C agent into the new python agent. > > The python agent is basically a schema validater and dispatcher of AMQP > management requests into the C code. The management requests and > responses are essentially just name/value maps or lists of maps. The > type system is simple for now: strings, bools, integers and floats. I > doubt it will get much more complicated than that. > > So I think for REST all we need is a HTTP server (presumably the default > python one would do) that converts HTTP requests to and from a > router.Message with python maps as properties and body. The management > code is already quite JSON friendly so that might be an easy way to do > it. > > Have a look at > dispatch/python/qpid_dispatch_internal/management/agent.py > > Agent.receive() is wired up to get AMQP management messages. It calls > Agent.handle() to process the message, and returns an AMQP response. > > The REST listener would be similar to receive() - create a request from > the HTTP request, feed it to Agent.handle() and convert the response to > a HTTP response. > > We can tidy things up a bit to make a clean interface between REST, AMQP > messages and whatever other feeds might come along and a more generic > Agent. With a clean API we should be able to re-use the same REST code > for inside dispatch, in your vertx services, or as a stand alone tool > that converts between REST and AMQP, or in tools for managing Qpid or > other AMQP services. I want to separate and make public the AMQP > management client for scripting, so that could be the basis of a > stand-alone REST to AMQP gateway. > > Let me know what you think! > Cheers, > Alan. > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org > For additional commands, e-mail: users-help@qpid.apache.org > > --001a11354780ebdab40501cb1263--