)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},"change_message_id":"83915dd237d4cdca2b6fba1e50869833314c2f01","unresolved":false,"context_lines":[{"line_number":135,"context_line":"- Everything is discussed openly either on the review board, the Tricircle"},{"line_number":136,"context_line":"  IRC channel, or the ML, or Google doc[20], or etherpad[21][22]."},{"line_number":137,"context_line":"- The Tricircle\u0027s mission statement is to become an integral part of OpenStack"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"[1] https://docs.google.com/presentation/d/1Zkoi4vMOGN713Vv_YO0GP6YLyjLpQ7fRbHlirpq6ZK4/edit?usp\u003dsharing"},{"line_number":140,"context_line":"[2] https://review.openstack.org/#/c/329740/"},{"line_number":141,"context_line":"[3] https://github.com/openstack/tricircle/blob/master/tricircle/tempestplugin/post_test_hook.sh"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1aa78d24_6c35dc44","line":138,"updated":"2016-07-11 16:22:32.000000000","message":"Your mission statement is different from this: I\u0027d suggest they match. Simply integrating with OpenStack isn\u0027t really a mission as much as serving use cases.","commit_id":"1aa20a1b3161210eef9171d0211575e2ac374320"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"e68f29733e20b31039c23af637ed75d5c6045d8c","unresolved":false,"context_lines":[{"line_number":135,"context_line":"- Everything is discussed openly either on the review board, the Tricircle"},{"line_number":136,"context_line":"  IRC channel, or the ML, or Google doc[20], or etherpad[21][22]."},{"line_number":137,"context_line":"- The Tricircle\u0027s mission statement is to become an integral part of OpenStack"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"[1] https://docs.google.com/presentation/d/1Zkoi4vMOGN713Vv_YO0GP6YLyjLpQ7fRbHlirpq6ZK4/edit?usp\u003dsharing"},{"line_number":140,"context_line":"[2] https://review.openstack.org/#/c/329740/"},{"line_number":141,"context_line":"[3] https://github.com/openstack/tricircle/blob/master/tricircle/tempestplugin/post_test_hook.sh"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1aa78d24_565338e2","line":138,"in_reply_to":"1aa78d24_6c35dc44","updated":"2016-07-12 01:55:52.000000000","message":"Thank you Anne, this statement is copied and not removed (or incorrectly expressed), will update in next patch.","commit_id":"1aa20a1b3161210eef9171d0211575e2ac374320"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"91237716c8bf82720aced0efea0a0ff7388d6faa","unresolved":false,"context_lines":[{"line_number":29,"context_line":"The Tricircle is composed of the followings:"},{"line_number":30,"context_line":"    Nova API-GW"},{"line_number":31,"context_line":"    Cinder API-GW"},{"line_number":32,"context_line":"    Neutron API Server with Neutron Tricircle plugin"},{"line_number":33,"context_line":"    Admin API"},{"line_number":34,"context_line":"    XJob"},{"line_number":35,"context_line":"    DB"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1aa78d24_9f9d7ebe","line":32,"updated":"2016-07-12 20:31:49.000000000","message":"Is this a pure Neutron API? Because I would guess with Tricircle you\u0027re interacting not with Neutron but instead with Tricircle through the API GW, and I\u0027m concerned about diverging from the underlying Neutron API here.","commit_id":"66547773cb17e1742bbf7e3582d1a26ce06fabec"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"f944bfba56d39398bbeb60fa0a4d26ffc0fbcbad","unresolved":false,"context_lines":[{"line_number":29,"context_line":"The Tricircle is composed of the followings:"},{"line_number":30,"context_line":"    Nova API-GW"},{"line_number":31,"context_line":"    Cinder API-GW"},{"line_number":32,"context_line":"    Neutron API Server with Neutron Tricircle plugin"},{"line_number":33,"context_line":"    Admin API"},{"line_number":34,"context_line":"    XJob"},{"line_number":35,"context_line":"    DB"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1aa78d24_6ba60f10","line":32,"in_reply_to":"1aa78d24_9f9d7ebe","updated":"2016-07-13 02:00:33.000000000","message":"Thank you for your comment.\n\nThis is pure Neutron API Server, and in the Tricircle will be configured with Neutron Tricircle Plugin.\n\nIt\u0027ll be easier to explain in deployment scenario: when the cloud operator wants to install the Tricircle, the Neutron (https://github.com/openstack/neutron) should be installed first, then install the Neutron Tricircle Plugin, and configure the Neutron to use the Neutron Tricircle Plugin. After the installation and configuration is finished, then run the Neutron, Neutron will load the Neutron Tricircle plugin, just like OVN plugin or Dragonflow plugin or ODL plugin running under Neutron. The Neutron API server and Neutron database are required for Neutron to run. But for the Neutron Tricircle plugin, no agent node is needed, the Neutron Tricircle will call the bottom Neutron API as needed(L2GW API in some scenario) through Neutron RESTful API.\n\nIn fact, in the Tricircle repository( https://github.com/openstack/neutron), only the Neutron Tricircle Plugin source code is developed and delivered. Neutron API server and database is what developed in Neutron project today, and in the repository https://github.com/openstack/neutron. The Tricircle project will not touch the Neutron source code in the Tricircle repository.","commit_id":"66547773cb17e1742bbf7e3582d1a26ce06fabec"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"91237716c8bf82720aced0efea0a0ff7388d6faa","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    API request. The Tricircle project treats Neutron API Server like a"},{"line_number":53,"context_line":"    libary, and no part of the Neutron API server code resides in the Tricrcle"},{"line_number":54,"context_line":"    repository."},{"line_number":55,"context_line":"    Neutron Tricircle Plugin runs under Neutron API server in the same process"},{"line_number":56,"context_line":"    like OVN Neutron plugin. The Tricircle plugin serves for tenant level L2/L3"},{"line_number":57,"context_line":"    networking automation across multi-OpenStack instances. It will use driver"},{"line_number":58,"context_line":"    interface to call bottom OpenStack Neutron API and L2GW API if needed,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1aa78d24_3fe1ea2a","line":55,"updated":"2016-07-12 20:31:49.000000000","message":"Are you mapping Neutron networks across Neutron installs using L2GW? If so, if a tenant interacts with the individual neutron servers, they will see different values for things like VLANs/VNIs, which may be confusing.","commit_id":"66547773cb17e1742bbf7e3582d1a26ce06fabec"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"f944bfba56d39398bbeb60fa0a4d26ffc0fbcbad","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    API request. The Tricircle project treats Neutron API Server like a"},{"line_number":53,"context_line":"    libary, and no part of the Neutron API server code resides in the Tricrcle"},{"line_number":54,"context_line":"    repository."},{"line_number":55,"context_line":"    Neutron Tricircle Plugin runs under Neutron API server in the same process"},{"line_number":56,"context_line":"    like OVN Neutron plugin. The Tricircle plugin serves for tenant level L2/L3"},{"line_number":57,"context_line":"    networking automation across multi-OpenStack instances. It will use driver"},{"line_number":58,"context_line":"    interface to call bottom OpenStack Neutron API and L2GW API if needed,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1aa78d24_6b9a8f63","line":55,"in_reply_to":"1aa78d24_3fe1ea2a","updated":"2016-07-13 02:00:33.000000000","message":"Good question. Thank you for your comment.\n\nThe Tricircle planned to support several cross OpenStack L2 networking model:\n1) local_network: a network will only spread in one bottom OpenStack\n2) shared_vlan: a same VLAN segment network can spread into multiple bottom OpenStack clouds\n3) shared_vxlan: a same VxLAN segment network can spread into multiple bottom OpenStack clouds\n4) mixed_vlan_vxlan: a L2 network which can spread into multiple OpenStack clouds, and is consisted of different physical network type and different segment id.\n\nUsually the Tenant can not see the network type and segment id, if the tenant can see, then for 1)2)3) cases, the tenant can see same network segment id, for 4), it\u0027s like hierarchy port binding in neutron, the network has one master VxLAN network, with several dynamic binding VLAN or VxLAN networks in different bottom Neutrons.\n\nJust like the handling in current Neutron, if the network is multi-provider network, if the tenant is allowed to see the provider network information, then the tenant will see the network is consisted of different network type and segment id, especially for hierarchy port binding implementation. The Tricircle has similar handling.\n\nThe spec about the cross OpenStack L2 networking is here: https://github.com/openstack/tricircle/blob/master/specs/cross-pod-l2-networking.rst\n\nThe original discussion about the cross OpenStack L2 networking is at [21] https://etherpad.openstack.org/p/TricircleCrossPodL2Networking","commit_id":"66547773cb17e1742bbf7e3582d1a26ce06fabec"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"d25cf62069c63ceccd01da207bee780f218dec75","unresolved":false,"context_lines":[{"line_number":84,"context_line":"the Tricircle will dynamicly shedule one. One AZ can include many OpenStack"},{"line_number":85,"context_line":"instances, the Tricircle can schedule and bind OpenStack instance for the"},{"line_number":86,"context_line":"tenant inside one AZ. A tenant\u0027s resources could be bound to multiple specific"},{"line_number":87,"context_line":"bottom OpenStack instances in one or multiple AZs automatically."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"As an OpenStack API gateway, the Tricircle to OpenStack is like HAProxy to"},{"line_number":90,"context_line":"web server. The Tricircle reuses Tempest test cases for integration test to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1aa78d24_df81c6c4","line":87,"updated":"2016-07-12 20:40:17.000000000","message":"I\u0027m curious how Tricircle does the scheduling. Does it choose an OpenStack instance at random, or does it actually inspect the resources available in each instance and schedule based on that? I worry that this will eventually reimplement Nova\u0027s scheduler, or even be different enough that a request would be scheduled to an OpenStack instance that cannot satisfy the request.\n\nFor instance, imagine that instance A has compute nodes with capability X, and instance B does not. How does tricircle ensure that a request for a VM with capability X get to instance A, without reimplementing Nova\u0027s scheduler?\n\nAlso, are the AZs discussed here the group of AZs defined in Nova, or does tricircle have its own idea of what an AZ is?","commit_id":"66547773cb17e1742bbf7e3582d1a26ce06fabec"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"dc656ea8744374f960344fd56b05183d9d19878c","unresolved":false,"context_lines":[{"line_number":84,"context_line":"the Tricircle will dynamicly shedule one. One AZ can include many OpenStack"},{"line_number":85,"context_line":"instances, the Tricircle can schedule and bind OpenStack instance for the"},{"line_number":86,"context_line":"tenant inside one AZ. A tenant\u0027s resources could be bound to multiple specific"},{"line_number":87,"context_line":"bottom OpenStack instances in one or multiple AZs automatically."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"As an OpenStack API gateway, the Tricircle to OpenStack is like HAProxy to"},{"line_number":90,"context_line":"web server. The Tricircle reuses Tempest test cases for integration test to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1aa78d24_b865dee1","line":87,"in_reply_to":"1aa78d24_8efc2973","updated":"2016-07-13 08:07:57.000000000","message":"update on the scheduling concerns:\n\n1. It\u0027s actually not scheduling per VM/Volume creation request, it\u0027s to find an OpenStack instance and then bind the tenant to this OpenStack instance, if resources in this OpenStack instance reaches the limit or the threshold, then tenant-id has to be bound to another OpenStack instance.\n\n2. Correction in this statement: In production cloud, at first, only one OpenStack instance will be put in one AZ, and prefer to add more compute nodes to this OpenStack instance, if almost all compute nodes have been occupied with VMs, and no more compute nodes *will be able to be* added into the OpenStack, then we have to add one more OpenStack instance into the AZ. Note, it\u0027s really up to cloud operator if it\u0027s reasonable for them to build a new OpenStack instance(s) or not.","commit_id":"66547773cb17e1742bbf7e3582d1a26ce06fabec"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"f944bfba56d39398bbeb60fa0a4d26ffc0fbcbad","unresolved":false,"context_lines":[{"line_number":84,"context_line":"the Tricircle will dynamicly shedule one. One AZ can include many OpenStack"},{"line_number":85,"context_line":"instances, the Tricircle can schedule and bind OpenStack instance for the"},{"line_number":86,"context_line":"tenant inside one AZ. A tenant\u0027s resources could be bound to multiple specific"},{"line_number":87,"context_line":"bottom OpenStack instances in one or multiple AZs automatically."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"As an OpenStack API gateway, the Tricircle to OpenStack is like HAProxy to"},{"line_number":90,"context_line":"web server. The Tricircle reuses Tempest test cases for integration test to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1aa78d24_8efc2973","line":87,"in_reply_to":"1aa78d24_df81c6c4","updated":"2016-07-13 02:00:33.000000000","message":"Thank you for your comment.\n\nIn fact, the scheduling in Tricircle is mostly for capacity expansion in one AZ(AZ is \"availability zone\" in short) if one AZ includes more than one bottom OpenStacks. \n\nIn production cloud, at first, only one OpenStack instance will be put in one AZ, and prefer to add more compute node to this OpenStack instance, if almost all compute nodes have been occupied with VMs and no more compute nodes will be added into the OpenStack, then we have to add one more OpenStack instance into the AZ.\n\nBecause one more OpenStack instance is added, so we need to forward all new VM/volume provision request to the new OpenStack instance, we have to build the relationship tenant-id and OpenStack, this binding could be done dynamically by the Tricircle, or by admin through admin api for maintenance purpose. \n\nMoreover, OpenStack instances inside one AZ can be classified into different categories. For example, servers in one OpenStack are only for general purposes, and the other OpenStack may be built for heavy load CAD modeling with GPU. So OpenStack in one AZ could be divided into different groups. Different OpenStack groups for different purposes, and the VM\u0027s cost and performance are also different.\n\nresource_affinity_tag will be used to organize the OpenStack group for different category, and the binding relationship will be built based on the same tag in the flavor/volume extra_spec.\n\n\nAll the binding is for forwarding request purpose, and the most common binding policy is based on the OpenStack instance establishment time: it\u0027s quite reasonable in capacity expansion, if one OpenStack resource is exhausted, then a new one is added, and all new request should be forwarded to the new one. Unlike the scheduling in Nova, the scheduling is based on lots of factors, and try to realize load balancing among compute nodes. Load balancing among OpenStack instances is not the purpose of scheduling(binding relationship) in the Tricircle, although it can. And absolutely never care about the scheduling on compute node base, that is what is done in Nova.\n\nYou can refer to the spec of \"dynamic pod binding\" https://github.com/openstack/tricircle/blob/master/specs/dynamic-pod-binding.rst\n\nThe AZ is the parameter used in the Nova/Cinder API, so it\u0027s same concept, but in the Tricircle, one AZ may includes more than one bottom OpenStack instance.","commit_id":"66547773cb17e1742bbf7e3582d1a26ce06fabec"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"c0be089b43d236079882ee1fc4848504c26da97d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"KeyStones."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The Tricircle is composed of the followings:"},{"line_number":47,"context_line":"1)Tricircle Local Neutron Plugin"},{"line_number":48,"context_line":"  It runs under local Neutron server in the same process like"},{"line_number":49,"context_line":"  OVN/Dragonflow Neutron plugin, it is a shim layer between real core"},{"line_number":50,"context_line":"  plugin and Neutron server"},{"line_number":51,"context_line":"  The Tricircle Local Neutron Plugin serve for cross Neutron networking"},{"line_number":52,"context_line":"  automation triggering."},{"line_number":53,"context_line":"2)Tricircle Central Neutron Plugin"},{"line_number":54,"context_line":"  It runs under central Neutron server in the same process like"},{"line_number":55,"context_line":"  OVN/Dragonflow Neutron plugin."},{"line_number":56,"context_line":"  The Tricircle Central Neutron Plugin serve for tenant level L2/L3"},{"line_number":57,"context_line":"  networking automation across multi-OpenStack instances."},{"line_number":58,"context_line":"3)Admin API"},{"line_number":59,"context_line":"  A web service introduced by the Tricircle to manage the mappings"},{"line_number":60,"context_line":"  between OpenStack instances and availability zone which is used"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a629dbe_ff3b38e9","line":57,"range":{"start_line":47,"start_character":0,"end_line":57,"end_character":57},"updated":"2016-11-09 01:44:38.000000000","message":"The local neutron plugin inherits from the ML2 plugin whereas the central neutron plugin inherits from a base class usually known as monolithic base. IMO, both design decisions may lead to a fragile neutron solution (in other words, neutron code changes may break tricircle all the time), in that neither are \u0027blessed\u0027 pluggable points. ML2 drivers and service plugins are, but nothing else.\n\nI did look at the code a bit and I must admit I am not sure what to think. Some decisions look like are taken without any feedback from the neutron team. I personally find the concept of \u0027real\u0027 core plugin a bit troubling [1]. This means two core plugins are running at any given time in each local neutron deployment with no care of transactionality (what happens in partial failure scenarios?). Network services composability does not seem to be taken into account. What happens to L3+ services?  All of this is unclear.\n\n[1] https://github.com/openstack/tricircle/blob/master/tricircle/network/local_plugin.py#L40-L63","commit_id":"342ff2010c36adac6cf902be6c217801b2694593"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"1a02b1754f771fd15948edea6f5969db958c8002","unresolved":false,"context_lines":[{"line_number":44,"context_line":"KeyStones."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The Tricircle is composed of the followings:"},{"line_number":47,"context_line":"1)Tricircle Local Neutron Plugin"},{"line_number":48,"context_line":"  It runs under local Neutron server in the same process like"},{"line_number":49,"context_line":"  OVN/Dragonflow Neutron plugin, it is a shim layer between real core"},{"line_number":50,"context_line":"  plugin and Neutron server"},{"line_number":51,"context_line":"  The Tricircle Local Neutron Plugin serve for cross Neutron networking"},{"line_number":52,"context_line":"  automation triggering."},{"line_number":53,"context_line":"2)Tricircle Central Neutron Plugin"},{"line_number":54,"context_line":"  It runs under central Neutron server in the same process like"},{"line_number":55,"context_line":"  OVN/Dragonflow Neutron plugin."},{"line_number":56,"context_line":"  The Tricircle Central Neutron Plugin serve for tenant level L2/L3"},{"line_number":57,"context_line":"  networking automation across multi-OpenStack instances."},{"line_number":58,"context_line":"3)Admin API"},{"line_number":59,"context_line":"  A web service introduced by the Tricircle to manage the mappings"},{"line_number":60,"context_line":"  between OpenStack instances and availability zone which is used"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a629dbe_e8d0adf8","line":57,"range":{"start_line":47,"start_character":0,"end_line":57,"end_character":57},"in_reply_to":"9a629dbe_1060d600","updated":"2016-11-10 01:10:36.000000000","message":"Thanks, that helps.\n\nThat said, I want to stress the fact that the Tricircle neutron plugins extend/exploit points that are not considered stable and pluggable. tricircle is importing neutron directly and subclassing these entities. The neutron team is working hard to decouple neutron and its related projects (neutron-* as well as networking-*) by means of neutron-lib. At some point we will force projects to stop importing neutron directly. This was a necessary (temporary evil) that allowed us to get on with the project decomposition. Please, be aware of that and put contingencies in place, otherwise, you might end up forking neutron in order to make tricircle work.","commit_id":"342ff2010c36adac6cf902be6c217801b2694593"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"e89784506df795da9dafb2a10ad4a05920359771","unresolved":false,"context_lines":[{"line_number":44,"context_line":"KeyStones."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The Tricircle is composed of the followings:"},{"line_number":47,"context_line":"1)Tricircle Local Neutron Plugin"},{"line_number":48,"context_line":"  It runs under local Neutron server in the same process like"},{"line_number":49,"context_line":"  OVN/Dragonflow Neutron plugin, it is a shim layer between real core"},{"line_number":50,"context_line":"  plugin and Neutron server"},{"line_number":51,"context_line":"  The Tricircle Local Neutron Plugin serve for cross Neutron networking"},{"line_number":52,"context_line":"  automation triggering."},{"line_number":53,"context_line":"2)Tricircle Central Neutron Plugin"},{"line_number":54,"context_line":"  It runs under central Neutron server in the same process like"},{"line_number":55,"context_line":"  OVN/Dragonflow Neutron plugin."},{"line_number":56,"context_line":"  The Tricircle Central Neutron Plugin serve for tenant level L2/L3"},{"line_number":57,"context_line":"  networking automation across multi-OpenStack instances."},{"line_number":58,"context_line":"3)Admin API"},{"line_number":59,"context_line":"  A web service introduced by the Tricircle to manage the mappings"},{"line_number":60,"context_line":"  between OpenStack instances and availability zone which is used"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a629dbe_62a9197b","line":57,"range":{"start_line":47,"start_character":0,"end_line":57,"end_character":57},"in_reply_to":"9a629dbe_e8d0adf8","updated":"2016-11-10 03:24:10.000000000","message":"Understand your concern on Neutron decoupling and decomposition with related projects (neutron-* as well as networking-*) as well as Tricircle. During the later development of Tricircle, Tricircle team will actively involve in the decomposition and make necessary changes to Tricircle to adapt neutron decomposition.","commit_id":"342ff2010c36adac6cf902be6c217801b2694593"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"83853e5af99422c11ddce11bfafdbca51b19ae7a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"KeyStones."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The Tricircle is composed of the followings:"},{"line_number":47,"context_line":"1)Tricircle Local Neutron Plugin"},{"line_number":48,"context_line":"  It runs under local Neutron server in the same process like"},{"line_number":49,"context_line":"  OVN/Dragonflow Neutron plugin, it is a shim layer between real core"},{"line_number":50,"context_line":"  plugin and Neutron server"},{"line_number":51,"context_line":"  The Tricircle Local Neutron Plugin serve for cross Neutron networking"},{"line_number":52,"context_line":"  automation triggering."},{"line_number":53,"context_line":"2)Tricircle Central Neutron Plugin"},{"line_number":54,"context_line":"  It runs under central Neutron server in the same process like"},{"line_number":55,"context_line":"  OVN/Dragonflow Neutron plugin."},{"line_number":56,"context_line":"  The Tricircle Central Neutron Plugin serve for tenant level L2/L3"},{"line_number":57,"context_line":"  networking automation across multi-OpenStack instances."},{"line_number":58,"context_line":"3)Admin API"},{"line_number":59,"context_line":"  A web service introduced by the Tricircle to manage the mappings"},{"line_number":60,"context_line":"  between OpenStack instances and availability zone which is used"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a629dbe_1060d600","line":57,"range":{"start_line":47,"start_character":0,"end_line":57,"end_character":57},"in_reply_to":"9a629dbe_ff3b38e9","updated":"2016-11-09 06:55:05.000000000","message":"The reason we introduce local plugin is that we need to make sure the UUID of port in central Neutron server and local Neutron server will be kept same, it was described in the page 11 \"Why the Tricircle Local Neutron Plugin is needed\" reference[2]https://docs.google.com/presentation/d/1Zkoi4vMOGN713Vv_YO0GP6YLyjLpQ7fRbHlirpq6ZK4/edit?usp\u003dsharing\n\nTo make local Nova correctly recognize the port, we need ports created in the central and local Neutron servers to have the same UUID. A ML2 driver cannot change the port UUID so we decide to write a new shim core plugin layer to make sure the UUID issue could be solved. And to save effort, we inherit from ML2 plugin. In fact, local plugin works more like a wrapper that interacts with central Neutron server to make sure IP/segment allocations are done by the central Neutron server and guarantee UUIDs are the same in both local and central Neutron servers. All the left work(update database record, handling RPC) in local Neutron server is done by real_core_plugin. If you have other way to make local Nova/local Neutron work well with central Neutron, please don\u0027t hesitate to share and contribute to improve Tricircle, design can always be improved with better solution with backward compatibility.\n\nFor central Neutron plugin, the reason to inherit like this https://github.com/openstack/tricircle/blob/master/tricircle/network/central_plugin.py#L99 is that the central Neutron server need to handle port \"get\" operation which is different from the ML2 plugin: the real port is located in local Neutron, and the status of port only exist in local Neutron, if the port info returned to the end user is queried from the central Neutron server, then either no status, or need another thread to sync port status periodically from the local Neutron server. But state-full designed central Neutron server is not good idea. So when port query request is received from the central Neutron server, the query will be forwarded to local Neutron server(s), and aggregate the result in central Neutron server, then return to end user. The second consideration is because there is no data plane back-end in central Neutron server, and long time interaction with local Neutron servers will be handled in asynchronous job in XJOB, that\u0027s why it\u0027s better to be designed as monolithic plugin, no different back-ends needs to adapt, and monolithic plugin will help asynchronous job processing for coordination for L2/L3 jobs . Of course the design may have some drawback which could be improved, your more concrete comments are welcome.\n\nYes, Neutron code changes will affect Tricircle. Actually we have already adapted Tricircle with Neutron changes with many patches. The unit tests in Tricircle will tell Tricircle developers when a change is needed if Neutron has updated its code.\n\nFor the last point, transactionality (what happens in partial failure scenarios?), this is done by re-entry（or reentrant?） . If one operation from local Nova -\u003e local Neutron -\u003e central Neutron is failed, the operation to boot VM will be failed, and then through re-entry(reentrant) design, make sure next time the already created resources can be reused, and no need to create again, but these resources which have not been created successfully in last operation could be done again. If you find there is some issues in the bug, please help us to improve that.","commit_id":"342ff2010c36adac6cf902be6c217801b2694593"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"c0be089b43d236079882ee1fc4848504c26da97d","unresolved":false,"context_lines":[{"line_number":62,"context_line":"  central Neutron."},{"line_number":63,"context_line":"  Retrieve object uuid routing."},{"line_number":64,"context_line":"  Expose RESTful API for maintenance purpose."},{"line_number":65,"context_line":"  Running together with central Neutron Server."},{"line_number":66,"context_line":"4)XJob"},{"line_number":67,"context_line":"  Receive and handle cross Neutron networking functionalities and"},{"line_number":68,"context_line":"  other async jobs from Admin API or the Tricircle Central Neutron"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a629dbe_ff125861","line":65,"range":{"start_line":65,"start_character":2,"end_line":65,"end_character":47},"updated":"2016-11-09 01:44:38.000000000","message":"What does \u0027running together\u0027 actually mean? Can you provide a quick pointer to how this API looks like? It seems these APIs are extensions to the Neutron API, exposed solely by the central neutron server; am I correct? If so, this is somewhat going against the neutron team\u0027s desire of consolidating all networking API efforts back into the hands of the neutron drivers.","commit_id":"342ff2010c36adac6cf902be6c217801b2694593"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"83853e5af99422c11ddce11bfafdbca51b19ae7a","unresolved":false,"context_lines":[{"line_number":62,"context_line":"  central Neutron."},{"line_number":63,"context_line":"  Retrieve object uuid routing."},{"line_number":64,"context_line":"  Expose RESTful API for maintenance purpose."},{"line_number":65,"context_line":"  Running together with central Neutron Server."},{"line_number":66,"context_line":"4)XJob"},{"line_number":67,"context_line":"  Receive and handle cross Neutron networking functionalities and"},{"line_number":68,"context_line":"  other async jobs from Admin API or the Tricircle Central Neutron"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a629dbe_a427ef62","line":65,"range":{"start_line":65,"start_character":2,"end_line":65,"end_character":47},"in_reply_to":"9a629dbe_ff125861","updated":"2016-11-09 06:55:05.000000000","message":"the \"Admin API\" is standalone web service to provide API, it\u0027s not any extensions to the Neutron API,\n\nIf you run \"openstack endpoint list\", you can find the Admin API service: there are two endpoints in CentralRegion, the service endpoint of UUID\"8d374672c09845f297755117ec868e11\" service name \"tricircle\" in the following output is the Admin API. The other one UUID\"c8bdae9506cd443995ee3c89e811fb45\" is neutron service.\n\n+----------------------------------+---------------+--------------+----------------+\n| ID                               | Region        | Service Name | Service Type   |\n+----------------------------------+---------------+--------------+----------------+\n| 4adaab1426d94959be46314b4bd277c2 | RegionOne     | glance       | image          |\n| 5314a11d168042ed85a1f32d40030b31 | RegionTwo     | nova_legacy  | compute_legacy |\n| ea43c53a8ab7493dacc4db079525c9b1 | RegionOne     | keystone     | identity       |\n| a1f263473edf4749853150178be1328d | RegionOne     | neutron      | network        |\n| ebea16ec07d94ed2b5356fb0a2a3223d | RegionTwo     | neutron      | network        |\n| 8d374672c09845f297755117ec868e11 | CentralRegion | tricircle    | Tricircle      |\n| e62e543bb9cf45f593641b2d00d72700 | RegionOne     | nova_legacy  | compute_legacy |\n| 540bdedfc449403b9befef3c2bfe3510 | RegionOne     | nova         | compute        |\n| d533429712954b29b9f37debb4f07605 | RegionTwo     | glance       | image          |\n| c8bdae9506cd443995ee3c89e811fb45 | CentralRegion | neutron      | network        |\n| 991d304dfcc14ccf8de4f00271fbfa22 | RegionTwo     | nova         | compute        |\n+----------------------------------+---------------+--------------+----------------+\n\nThe implementation of part of these APIs: https://github.com/openstack/tricircle/tree/master/tricircle/api\n\nWe are also planning to add API for async. job management like \"redo\", \"cancel\", \"list\"","commit_id":"342ff2010c36adac6cf902be6c217801b2694593"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"c0be089b43d236079882ee1fc4848504c26da97d","unresolved":false,"context_lines":[{"line_number":72,"context_line":"5)Database"},{"line_number":73,"context_line":"  The Tricircle has its own database to store jobs, resource routing"},{"line_number":74,"context_line":"  tables for the Tricircle Central Neutron plugin, Admin API and XJob."},{"line_number":75,"context_line":"  The Tricircle Neutron Central Plugin will also reuse database of"},{"line_number":76,"context_line":"  central Neutron server to do the global management of tenant\u0027s"},{"line_number":77,"context_line":"  resources like IP/MAC/network/router."},{"line_number":78,"context_line":"  The Tricircle Local Neutron Plugin is a shim layer between real"},{"line_number":79,"context_line":"  core plugin and Neutron server, so Neutron database will be still"},{"line_number":80,"context_line":"  there for local Neutron server and real core plugin."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a629dbe_fb142b45","line":77,"range":{"start_line":75,"start_character":49,"end_line":77,"end_character":38},"updated":"2016-11-09 01:44:38.000000000","message":"reuse how?","commit_id":"342ff2010c36adac6cf902be6c217801b2694593"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"83853e5af99422c11ddce11bfafdbca51b19ae7a","unresolved":false,"context_lines":[{"line_number":72,"context_line":"5)Database"},{"line_number":73,"context_line":"  The Tricircle has its own database to store jobs, resource routing"},{"line_number":74,"context_line":"  tables for the Tricircle Central Neutron plugin, Admin API and XJob."},{"line_number":75,"context_line":"  The Tricircle Neutron Central Plugin will also reuse database of"},{"line_number":76,"context_line":"  central Neutron server to do the global management of tenant\u0027s"},{"line_number":77,"context_line":"  resources like IP/MAC/network/router."},{"line_number":78,"context_line":"  The Tricircle Local Neutron Plugin is a shim layer between real"},{"line_number":79,"context_line":"  core plugin and Neutron server, so Neutron database will be still"},{"line_number":80,"context_line":"  there for local Neutron server and real core plugin."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a629dbe_d00ade20","line":77,"range":{"start_line":75,"start_character":49,"end_line":77,"end_character":38},"in_reply_to":"9a629dbe_fb142b45","updated":"2016-11-09 06:55:05.000000000","message":"100% reuse Neutron database.Central plugin inherits from NeutronDbPluginV2 so the database operations are reused.\n\nTricircle central plugin will access its own separate database too, which is used to store the openstack instance and az mapping, resource routing, async. job, etc.\n\nThat means Tricircle central plugin can connect two databases, one is Neutron database, the other one is its own database. Not extend the existing Neutron database.","commit_id":"342ff2010c36adac6cf902be6c217801b2694593"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"c0be089b43d236079882ee1fc4848504c26da97d","unresolved":false,"context_lines":[{"line_number":90,"context_line":"  components where applicable."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Open Community:"},{"line_number":93,"context_line":"- The leadership is chosen by the contributors to the project[5][6][7]."},{"line_number":94,"context_line":"- We are working closely with the community to share use cases and problems"},{"line_number":95,"context_line":"  and decide on future priorities for the project. It is our mission to"},{"line_number":96,"context_line":"  collaborate with as many members/companies in the community as possible"},{"line_number":97,"context_line":"  and we welcome any feedback and any desire to help us shape the Tricircle\u0027s"},{"line_number":98,"context_line":"  future."},{"line_number":99,"context_line":"  This is done using the mailing list, etherpad, IRC, weekly meetings, patches,"},{"line_number":100,"context_line":"  and OpenStack summit sessions[8][9][10][11][12][13][14]."},{"line_number":101,"context_line":"- Contributors of the Tricircle comes from different companies and"},{"line_number":102,"context_line":"  universities[15][16][17][18][19][20], some of them are working as"},{"line_number":103,"context_line":"  independent contributors."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Open Development:"},{"line_number":106,"context_line":"- All the Tricircle code is being code reviewed in OpenStack Gerrit[21]."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a629dbe_9b516f11","line":103,"range":{"start_line":93,"start_character":0,"end_line":103,"end_character":27},"updated":"2016-11-09 01:44:38.000000000","message":"can you share pointers on how the neutron community was approached when presenting the tricircle use case?","commit_id":"342ff2010c36adac6cf902be6c217801b2694593"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"83853e5af99422c11ddce11bfafdbca51b19ae7a","unresolved":false,"context_lines":[{"line_number":90,"context_line":"  components where applicable."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Open Community:"},{"line_number":93,"context_line":"- The leadership is chosen by the contributors to the project[5][6][7]."},{"line_number":94,"context_line":"- We are working closely with the community to share use cases and problems"},{"line_number":95,"context_line":"  and decide on future priorities for the project. It is our mission to"},{"line_number":96,"context_line":"  collaborate with as many members/companies in the community as possible"},{"line_number":97,"context_line":"  and we welcome any feedback and any desire to help us shape the Tricircle\u0027s"},{"line_number":98,"context_line":"  future."},{"line_number":99,"context_line":"  This is done using the mailing list, etherpad, IRC, weekly meetings, patches,"},{"line_number":100,"context_line":"  and OpenStack summit sessions[8][9][10][11][12][13][14]."},{"line_number":101,"context_line":"- Contributors of the Tricircle comes from different companies and"},{"line_number":102,"context_line":"  universities[15][16][17][18][19][20], some of them are working as"},{"line_number":103,"context_line":"  independent contributors."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Open Development:"},{"line_number":106,"context_line":"- All the Tricircle code is being code reviewed in OpenStack Gerrit[21]."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a629dbe_f510b4aa","line":103,"range":{"start_line":93,"start_character":0,"end_line":103,"end_character":27},"in_reply_to":"9a629dbe_9b516f11","updated":"2016-11-09 06:55:05.000000000","message":"1. \"Although Tricircle splitting and cleaning is WIP, some draft materials were prepared for open comments and to be improved with your contribution...\",  the mail sent to Neutron team describe the use cases and ask for contribution in Sept.2016, and attend BoF in Barcelona: http://lists.openstack.org/pipermail/openstack-dev/2016-September/103953.html\n\n\n2.line 39 \u0026 40 Tricircle use cases mentioned in this Neutron patch, and actively review this patch from Feb. to Oct. https://review.openstack.org/#/c/282180/29/specs/ocata/Add_Unicast_Flooding_VTEPs_2_Provider_Network.rst \n\n\n3. During Barcelona summit, Steve_Ruan and I (the author of patch 282180, from IBM ) talked to Neutron core Henry, Carl about this patch, and also discussed with Kevin Benton about Tricicle use cases and this VTEP patch, Kevin said he preferred the way to add VTEP in port \"Eliminate L2pop as a mech driver, keeping l2pop functionality\" line 26 ~ 34 https://etherpad.openstack.org/p/ocata-neutron-agents . We attended the sessions, but this topic has not been discussed with enough time.\n\n\n4. We(Steve,Lucky and I) also attended the Neutron social event in Thursday(Oct.27) evening for dinner together. Because the seat was fixed, only talk with quite few people seating around the same table.","commit_id":"342ff2010c36adac6cf902be6c217801b2694593"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"c0be089b43d236079882ee1fc4848504c26da97d","unresolved":false,"context_lines":[{"line_number":109,"context_line":"  tests[23][24]."},{"line_number":110,"context_line":"- The Tricircle collaborates other projects such as Neutron and L2GW to"},{"line_number":111,"context_line":"  try and find optimal cross OpenStack L2 networking solutions[8]."},{"line_number":112,"context_line":"- The Tricircle collobarates with Neutron via its plugin mechanism to do"},{"line_number":113,"context_line":"  the cross OpenStack networking automation."},{"line_number":114,"context_line":"- Bugs are managed by OpenStack launchpad[25]."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Open Design:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a629dbe_db5be72c","line":113,"range":{"start_line":112,"start_character":0,"end_line":113,"end_character":44},"updated":"2016-11-09 01:44:38.000000000","message":"This is not entirely accurate. See above.","commit_id":"342ff2010c36adac6cf902be6c217801b2694593"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"83853e5af99422c11ddce11bfafdbca51b19ae7a","unresolved":false,"context_lines":[{"line_number":109,"context_line":"  tests[23][24]."},{"line_number":110,"context_line":"- The Tricircle collaborates other projects such as Neutron and L2GW to"},{"line_number":111,"context_line":"  try and find optimal cross OpenStack L2 networking solutions[8]."},{"line_number":112,"context_line":"- The Tricircle collobarates with Neutron via its plugin mechanism to do"},{"line_number":113,"context_line":"  the cross OpenStack networking automation."},{"line_number":114,"context_line":"- Bugs are managed by OpenStack launchpad[25]."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Open Design:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a629dbe_64bb17e6","line":113,"range":{"start_line":112,"start_character":0,"end_line":113,"end_character":44},"in_reply_to":"9a629dbe_db5be72c","updated":"2016-11-09 06:55:05.000000000","message":"Same answer for the first comment","commit_id":"342ff2010c36adac6cf902be6c217801b2694593"}],"reference/projects.yaml":[{"author":{"_account_id":19060,"name":"Shinobu KINJO","email":"shinobu@redhat.com","username":"shinobu"},"change_message_id":"a10e17706e6d45769850829391c45a1975ce0e37","unresolved":false,"context_lines":[{"line_number":4061,"context_line":"  irc-channel: openstack-tricircle"},{"line_number":4062,"context_line":"  service: OpenStack API Gateway And Networking Automation Service"},{"line_number":4063,"context_line":"  mission: \u003e"},{"line_number":4064,"context_line":"    to provide an OpenStack API gateway and networking automation funtionality"},{"line_number":4065,"context_line":"    to allow multiple OpenStack instances, spanning in one site or multiple"},{"line_number":4066,"context_line":"    sites or in hybrid cloud, to be managed as a single OpenStack cloud."},{"line_number":4067,"context_line":"  url: https://wiki.openstack.org/wiki/Tricircle"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1aa78d24_a2d011ca","line":4064,"range":{"start_line":4064,"start_character":28,"end_line":4064,"end_character":39},"updated":"2016-07-07 12:00:06.000000000","message":"APIs gateway","commit_id":"95719f20638dc961a54e1eab5bd92f65e1914ab0"},{"author":{"_account_id":19060,"name":"Shinobu KINJO","email":"shinobu@redhat.com","username":"shinobu"},"change_message_id":"a10e17706e6d45769850829391c45a1975ce0e37","unresolved":false,"context_lines":[{"line_number":4061,"context_line":"  irc-channel: openstack-tricircle"},{"line_number":4062,"context_line":"  service: OpenStack API Gateway And Networking Automation Service"},{"line_number":4063,"context_line":"  mission: \u003e"},{"line_number":4064,"context_line":"    to provide an OpenStack API gateway and networking automation funtionality"},{"line_number":4065,"context_line":"    to allow multiple OpenStack instances, spanning in one site or multiple"},{"line_number":4066,"context_line":"    sites or in hybrid cloud, to be managed as a single OpenStack cloud."},{"line_number":4067,"context_line":"  url: https://wiki.openstack.org/wiki/Tricircle"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1aa78d24_e2e0592b","line":4064,"range":{"start_line":4064,"start_character":4,"end_line":4064,"end_character":6},"updated":"2016-07-07 12:00:06.000000000","message":"To","commit_id":"95719f20638dc961a54e1eab5bd92f65e1914ab0"},{"author":{"_account_id":19060,"name":"Shinobu KINJO","email":"shinobu@redhat.com","username":"shinobu"},"change_message_id":"a10e17706e6d45769850829391c45a1975ce0e37","unresolved":false,"context_lines":[{"line_number":4061,"context_line":"  irc-channel: openstack-tricircle"},{"line_number":4062,"context_line":"  service: OpenStack API Gateway And Networking Automation Service"},{"line_number":4063,"context_line":"  mission: \u003e"},{"line_number":4064,"context_line":"    to provide an OpenStack API gateway and networking automation funtionality"},{"line_number":4065,"context_line":"    to allow multiple OpenStack instances, spanning in one site or multiple"},{"line_number":4066,"context_line":"    sites or in hybrid cloud, to be managed as a single OpenStack cloud."},{"line_number":4067,"context_line":"  url: https://wiki.openstack.org/wiki/Tricircle"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1aa78d24_225541c5","line":4064,"range":{"start_line":4064,"start_character":66,"end_line":4064,"end_character":78},"updated":"2016-07-07 12:00:06.000000000","message":"functionalities","commit_id":"95719f20638dc961a54e1eab5bd92f65e1914ab0"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"c36d87b01c1a0a88e55a9e51205a36ac925b9e20","unresolved":false,"context_lines":[{"line_number":4061,"context_line":"  irc-channel: openstack-tricircle"},{"line_number":4062,"context_line":"  service: OpenStack API Gateway And Networking Automation Service"},{"line_number":4063,"context_line":"  mission: \u003e"},{"line_number":4064,"context_line":"    to provide an OpenStack API gateway and networking automation funtionality"},{"line_number":4065,"context_line":"    to allow multiple OpenStack instances, spanning in one site or multiple"},{"line_number":4066,"context_line":"    sites or in hybrid cloud, to be managed as a single OpenStack cloud."},{"line_number":4067,"context_line":"  url: https://wiki.openstack.org/wiki/Tricircle"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1aa78d24_f75bcbf4","line":4064,"range":{"start_line":4064,"start_character":66,"end_line":4064,"end_character":78},"in_reply_to":"1aa78d24_225541c5","updated":"2016-07-08 01:36:59.000000000","message":"Done","commit_id":"95719f20638dc961a54e1eab5bd92f65e1914ab0"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"c36d87b01c1a0a88e55a9e51205a36ac925b9e20","unresolved":false,"context_lines":[{"line_number":4061,"context_line":"  irc-channel: openstack-tricircle"},{"line_number":4062,"context_line":"  service: OpenStack API Gateway And Networking Automation Service"},{"line_number":4063,"context_line":"  mission: \u003e"},{"line_number":4064,"context_line":"    to provide an OpenStack API gateway and networking automation funtionality"},{"line_number":4065,"context_line":"    to allow multiple OpenStack instances, spanning in one site or multiple"},{"line_number":4066,"context_line":"    sites or in hybrid cloud, to be managed as a single OpenStack cloud."},{"line_number":4067,"context_line":"  url: https://wiki.openstack.org/wiki/Tricircle"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1aa78d24_5771ff76","line":4064,"range":{"start_line":4064,"start_character":28,"end_line":4064,"end_character":39},"in_reply_to":"1aa78d24_a2d011ca","updated":"2016-07-08 01:36:59.000000000","message":"Done","commit_id":"95719f20638dc961a54e1eab5bd92f65e1914ab0"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"c36d87b01c1a0a88e55a9e51205a36ac925b9e20","unresolved":false,"context_lines":[{"line_number":4061,"context_line":"  irc-channel: openstack-tricircle"},{"line_number":4062,"context_line":"  service: OpenStack API Gateway And Networking Automation Service"},{"line_number":4063,"context_line":"  mission: \u003e"},{"line_number":4064,"context_line":"    to provide an OpenStack API gateway and networking automation funtionality"},{"line_number":4065,"context_line":"    to allow multiple OpenStack instances, spanning in one site or multiple"},{"line_number":4066,"context_line":"    sites or in hybrid cloud, to be managed as a single OpenStack cloud."},{"line_number":4067,"context_line":"  url: https://wiki.openstack.org/wiki/Tricircle"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1aa78d24_376ef396","line":4064,"range":{"start_line":4064,"start_character":4,"end_line":4064,"end_character":6},"in_reply_to":"1aa78d24_e2e0592b","updated":"2016-07-08 01:36:59.000000000","message":"Done","commit_id":"95719f20638dc961a54e1eab5bd92f65e1914ab0"},{"author":{"_account_id":19060,"name":"Shinobu KINJO","email":"shinobu@redhat.com","username":"shinobu"},"change_message_id":"a10e17706e6d45769850829391c45a1975ce0e37","unresolved":false,"context_lines":[{"line_number":4062,"context_line":"  service: OpenStack API Gateway And Networking Automation Service"},{"line_number":4063,"context_line":"  mission: \u003e"},{"line_number":4064,"context_line":"    to provide an OpenStack API gateway and networking automation funtionality"},{"line_number":4065,"context_line":"    to allow multiple OpenStack instances, spanning in one site or multiple"},{"line_number":4066,"context_line":"    sites or in hybrid cloud, to be managed as a single OpenStack cloud."},{"line_number":4067,"context_line":"  url: https://wiki.openstack.org/wiki/Tricircle"},{"line_number":4068,"context_line":"  deliverables:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1aa78d24_02712544","line":4065,"range":{"start_line":4065,"start_character":32,"end_line":4065,"end_character":51},"updated":"2016-07-07 12:00:06.000000000","message":"instances running","commit_id":"95719f20638dc961a54e1eab5bd92f65e1914ab0"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"c36d87b01c1a0a88e55a9e51205a36ac925b9e20","unresolved":false,"context_lines":[{"line_number":4062,"context_line":"  service: OpenStack API Gateway And Networking Automation Service"},{"line_number":4063,"context_line":"  mission: \u003e"},{"line_number":4064,"context_line":"    to provide an OpenStack API gateway and networking automation funtionality"},{"line_number":4065,"context_line":"    to allow multiple OpenStack instances, spanning in one site or multiple"},{"line_number":4066,"context_line":"    sites or in hybrid cloud, to be managed as a single OpenStack cloud."},{"line_number":4067,"context_line":"  url: https://wiki.openstack.org/wiki/Tricircle"},{"line_number":4068,"context_line":"  deliverables:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1aa78d24_976b6785","line":4065,"range":{"start_line":4065,"start_character":32,"end_line":4065,"end_character":51},"in_reply_to":"1aa78d24_02712544","updated":"2016-07-08 01:36:59.000000000","message":"Done","commit_id":"95719f20638dc961a54e1eab5bd92f65e1914ab0"},{"author":{"_account_id":19060,"name":"Shinobu KINJO","email":"shinobu@redhat.com","username":"shinobu"},"change_message_id":"a10e17706e6d45769850829391c45a1975ce0e37","unresolved":false,"context_lines":[{"line_number":4063,"context_line":"  mission: \u003e"},{"line_number":4064,"context_line":"    to provide an OpenStack API gateway and networking automation funtionality"},{"line_number":4065,"context_line":"    to allow multiple OpenStack instances, spanning in one site or multiple"},{"line_number":4066,"context_line":"    sites or in hybrid cloud, to be managed as a single OpenStack cloud."},{"line_number":4067,"context_line":"  url: https://wiki.openstack.org/wiki/Tricircle"},{"line_number":4068,"context_line":"  deliverables:"},{"line_number":4069,"context_line":"    tricircle:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1aa78d24_229381fb","line":4066,"range":{"start_line":4066,"start_character":23,"end_line":4066,"end_character":43},"updated":"2016-07-07 12:00:06.000000000","message":"cloud to act","commit_id":"95719f20638dc961a54e1eab5bd92f65e1914ab0"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"c36d87b01c1a0a88e55a9e51205a36ac925b9e20","unresolved":false,"context_lines":[{"line_number":4063,"context_line":"  mission: \u003e"},{"line_number":4064,"context_line":"    to provide an OpenStack API gateway and networking automation funtionality"},{"line_number":4065,"context_line":"    to allow multiple OpenStack instances, spanning in one site or multiple"},{"line_number":4066,"context_line":"    sites or in hybrid cloud, to be managed as a single OpenStack cloud."},{"line_number":4067,"context_line":"  url: https://wiki.openstack.org/wiki/Tricircle"},{"line_number":4068,"context_line":"  deliverables:"},{"line_number":4069,"context_line":"    tricircle:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1aa78d24_d7032fbd","line":4066,"range":{"start_line":4066,"start_character":23,"end_line":4066,"end_character":43},"in_reply_to":"1aa78d24_229381fb","updated":"2016-07-08 01:36:59.000000000","message":"Done","commit_id":"95719f20638dc961a54e1eab5bd92f65e1914ab0"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"73f2924f8f16119bc972ebd25d07da5f9633d074","unresolved":false,"context_lines":[{"line_number":4064,"context_line":"    To provide an OpenStack APIs gateway and networking automation"},{"line_number":4065,"context_line":"    funtionalities to allow multiple OpenStack instances running in one"},{"line_number":4066,"context_line":"    site or multiple sites or in hybrid cloud to act as a single OpenStack"},{"line_number":4067,"context_line":"    cloud."},{"line_number":4068,"context_line":"  url: https://wiki.openstack.org/wiki/Tricircle"},{"line_number":4069,"context_line":"  deliverables:"},{"line_number":4070,"context_line":"    tricircle:"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"1aa78d24_0792334b","line":4067,"updated":"2016-07-11 16:49:19.000000000","message":"We can tighten this up a bit. I don\u0027t think you need to list all of the use cases, for example. Saying \"multiple OpenStack instances\" is sufficient. Although calling them deployments would remove confusion with \"compute instances\". How about\n\n  To provide an API gateway and networking automation to allow multiple \n  OpenStack deployments to act as a single cloud.","commit_id":"1aa20a1b3161210eef9171d0211575e2ac374320"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"8ee04150e0af37e6e1647d2d4a9b021615fa3b1e","unresolved":false,"context_lines":[{"line_number":4064,"context_line":"    To provide an OpenStack APIs gateway and networking automation"},{"line_number":4065,"context_line":"    funtionalities to allow multiple OpenStack instances running in one"},{"line_number":4066,"context_line":"    site or multiple sites or in hybrid cloud to act as a single OpenStack"},{"line_number":4067,"context_line":"    cloud."},{"line_number":4068,"context_line":"  url: https://wiki.openstack.org/wiki/Tricircle"},{"line_number":4069,"context_line":"  deliverables:"},{"line_number":4070,"context_line":"    tricircle:"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"1aa78d24_f66b441c","line":4067,"in_reply_to":"1aa78d24_0792334b","updated":"2016-07-12 02:36:00.000000000","message":"Good, will update in next patch.","commit_id":"1aa20a1b3161210eef9171d0211575e2ac374320"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"91237716c8bf82720aced0efea0a0ff7388d6faa","unresolved":false,"context_lines":[{"line_number":4061,"context_line":"  irc-channel: openstack-tricircle"},{"line_number":4062,"context_line":"  service: OpenStack API Gateway And Networking Automation Service"},{"line_number":4063,"context_line":"  mission: \u003e"},{"line_number":4064,"context_line":"    To provide an API gateway and networking automation to allow multiple"},{"line_number":4065,"context_line":"    OpenStack instances to act as a single cloud."},{"line_number":4066,"context_line":"  url: https://wiki.openstack.org/wiki/Tricircle"},{"line_number":4067,"context_line":"  deliverables:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1aa78d24_bf583a32","line":4064,"updated":"2016-07-12 20:31:49.000000000","message":"By \"networking automation\" do you mean automation of the physical networking constructing the underlying HW these OpenStack instances are installed on?","commit_id":"66547773cb17e1742bbf7e3582d1a26ce06fabec"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"f944bfba56d39398bbeb60fa0a4d26ffc0fbcbad","unresolved":false,"context_lines":[{"line_number":4061,"context_line":"  irc-channel: openstack-tricircle"},{"line_number":4062,"context_line":"  service: OpenStack API Gateway And Networking Automation Service"},{"line_number":4063,"context_line":"  mission: \u003e"},{"line_number":4064,"context_line":"    To provide an API gateway and networking automation to allow multiple"},{"line_number":4065,"context_line":"    OpenStack instances to act as a single cloud."},{"line_number":4066,"context_line":"  url: https://wiki.openstack.org/wiki/Tricircle"},{"line_number":4067,"context_line":"  deliverables:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1aa78d24_88e6e1ad","line":4064,"in_reply_to":"1aa78d24_bf583a32","updated":"2016-07-13 02:00:33.000000000","message":"Thank you for your comment.\n\nThe networking automation is to call bottom Neutron APIs (L2GW APIs in some scenario) to establish L2 or L3 network across Neutrons for the same tenant.","commit_id":"66547773cb17e1742bbf7e3582d1a26ce06fabec"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"c27a522a19082c5b538322a924c79bb692c96c38","unresolved":false,"context_lines":[{"line_number":4062,"context_line":"  service: OpenStack API Gateway And Networking Automation Service"},{"line_number":4063,"context_line":"  mission: \u003e"},{"line_number":4064,"context_line":"    To provide an API gateway and networking automation to allow multiple"},{"line_number":4065,"context_line":"    OpenStack instances to act as a single cloud."},{"line_number":4066,"context_line":"  url: https://wiki.openstack.org/wiki/Tricircle"},{"line_number":4067,"context_line":"  deliverables:"},{"line_number":4068,"context_line":"    tricircle:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1aa78d24_b9008802","line":4065,"range":{"start_line":4065,"start_character":14,"end_line":4065,"end_character":23},"updated":"2016-07-12 05:22:02.000000000","message":"consideration to use \"instance\" but not \"deployment\" in the mission statement\n\n\"instance\" is object which is *already* existing somewhere.\n\"deployment\" is a process that \"instance\" is being built.\n\nFrom time sequence of views, there is a much difference.\n\nStart|\u003c------- Processing -------\u003e|Complete|\u003c------- Running / Stopping-------\u003e|\n\ninstance: Running / Stopping status\ndeployment: Start \u003c---\u003e Complete status\n\nIn other words, \"deployment\" does not mean any kind of result.\nBut \"instance\" means some kind of result.","commit_id":"66547773cb17e1742bbf7e3582d1a26ce06fabec"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"9d789e4ea365d4f7c5f3d92346b46f036c3a0fc5","unresolved":false,"context_lines":[{"line_number":4062,"context_line":"  service: OpenStack API Gateway And Networking Automation Service"},{"line_number":4063,"context_line":"  mission: \u003e"},{"line_number":4064,"context_line":"    To provide an API gateway and networking automation to allow multiple"},{"line_number":4065,"context_line":"    OpenStack instances to act as a single cloud."},{"line_number":4066,"context_line":"  url: https://wiki.openstack.org/wiki/Tricircle"},{"line_number":4067,"context_line":"  deliverables:"},{"line_number":4068,"context_line":"    tricircle:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1aa78d24_bc5b2885","line":4065,"range":{"start_line":4065,"start_character":14,"end_line":4065,"end_character":23},"in_reply_to":"1aa78d24_b9008802","updated":"2016-07-12 20:19:56.000000000","message":"How about if we say \"OpenStack clouds\" then instead of \"OpenStack instances\"? Because I\u0027m worried that folks will misunderstand \"instance\" here to mean \"compute instance\" and that\u0027s not at all what you\u0027re doing.","commit_id":"66547773cb17e1742bbf7e3582d1a26ce06fabec"},{"author":{"_account_id":11819,"name":"Chaoyi Huang","email":"joehuang@huawei.com","username":"joehuang"},"change_message_id":"f944bfba56d39398bbeb60fa0a4d26ffc0fbcbad","unresolved":false,"context_lines":[{"line_number":4062,"context_line":"  service: OpenStack API Gateway And Networking Automation Service"},{"line_number":4063,"context_line":"  mission: \u003e"},{"line_number":4064,"context_line":"    To provide an API gateway and networking automation to allow multiple"},{"line_number":4065,"context_line":"    OpenStack instances to act as a single cloud."},{"line_number":4066,"context_line":"  url: https://wiki.openstack.org/wiki/Tricircle"},{"line_number":4067,"context_line":"  deliverables:"},{"line_number":4068,"context_line":"    tricircle:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1aa78d24_08767105","line":4065,"range":{"start_line":4065,"start_character":14,"end_line":4065,"end_character":23},"in_reply_to":"1aa78d24_bc5b2885","updated":"2016-07-13 02:00:33.000000000","message":"OK, thank you for your suggestion, I will update it in next patch","commit_id":"66547773cb17e1742bbf7e3582d1a26ce06fabec"}]}
