On 8/3/2011 10:21 AM, Dan Wendlandt wrote:
Hi Tyler,
If we go this route, I still hope that people will be able to make
"generic" clients that manage the "core" functionality of Quantum
regardless of the plugin (I would expect that the dashboard will work
this way). It may, however, be that we tell people to write these
clients in such a way that they ignore any fields that they do not
understand, thus, so that the client doesn't choke on any extra "data
extensions".
Yeah, perhaps I should have been more clear on that. What I was
referring to was a client that would say, attempt to automatically
handle a "QoS" field, or something else non-standard. A client (such as
the CLI) would still be able to perform core operations to any Quantum
server.
Salvatore's issue was a client that may handle "QoS" from a cisco
plugin, that would fail when trying to talk to a different plugin with a
"QoS" field. What I was saying is that I think clients will need to
only be able to handle extra extensions from a set list of plugins.
Yes, no matter what we decide on data extensions in particular, I
definitely would like to see the client be able to confirm what API
extensions are running. I would imagine a flow like:
conn = create_api_connection()
conn.confirm_extension_support("Cisco-awesome-extension1")
conn.confirm_extension_support("Cisco-awesome-extension2")
conn.create_network()
conn.create_port() // perhaps this call takes another field when
using cisco-awesome-extension1, if we support data extension of
default objects
conn.do_request("v1.0/csco/do_something_awesome2", { "foo" : "bar"})
// do_request allows you to access entirely new calls introduced by an
API extension
Thoughts?
Dan
That's exactly what I had in mind. create_network(), create_port(),
etc, can already send/receive any data you want. You would only need
the extension verification to ensure you're sending the data you want.
-Tyler
--
Mailing list: https://launchpad.net/~netstack
Post to : netstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~netstack
More help : https://help.launchpad.net/ListHelp