{"push_id":1210421038,"size":1,"distinct_size":1,"ref":"refs/heads/stable/mitaka","head":"1bf2d1df9df24169997d131ed3b44949fd5796d3","before":"39158749202adb0b02a8f069bdae556533b764ff","commits":[{"sha":"1bf2d1df9df24169997d131ed3b44949fd5796d3","author":{"name":"Sumit Naiksatam","email":"0abfae75886b3901418ac06195e9dbe03539bf4b@gmail.com"},"message":"AIM Policy Driver - Part 1\n\nThis is the first, in what is expected to be a series patches (not\nnecessarily sequential), that implements a new GBP Policy Driver. This\nnew Policy Driver is meant to be used in conjunction with the new\nAPIC mechanism driver, and the ACI Integration Module (AIM) library\nthat are being developed in parallel. This new Policy Driver is being\ncalled the AIM Mapping driver.\n\nThe are at least a couple of goals that are foremost in the design of\nthis driver -\n\n(1) Transactional consistency - the driver performs all orchestration\noperations in the pre-commit hook that is part of the same transaction\nas that which is created by the GBP plugin in response to the API call.\nApart from the implementation in this new driver, some refactoring of\nthe local_api module was required to optionally avoid creating a new\ntransaction every time the driver orchestrated changes to other parts\nof the policy model, and/or Neutron resources.\n\n(2) Asynchronous behavior - the driver will not directly interact\nwith external backends. As stated before, it will interface with Neutron\nand/or AIM, and appropriately populate the status of the GBP resources\nusing the status and status_details attributes available for each GBP\nresource (this does not happen in this patch).\n\nThe AIM driver attempts to reuse as much of the existing implementation\nas possible. Towards this end, some parts of the Implicit Policy, and\nthe Resource Mapping drivers have been refactored to allow the code to\nbe shared and reused. The AIM driver effectively reuses these two existing\npolicy drivers as libraries, but is self-sufficient and should be the\nonly one configured.\n\nWherever possible, an attempt is being made to implement the mapping to\nthe Neutron resources in a base class, which in future, can help to build\na replacement for the current Resource Mapping driver with the same\ntransactional consistency goal.\n\nA new “ensure_tenant” hook is being added to the Policy Driver interface.\nThis allows each driver to perform the tenant related bookkeeping prior\nto proceeding with any orchestration for a resource itself. The hook is\ninvoked from the GBP plugin for the create operation of each resource.\nThis invocation happens prior to the transaction that is started to\ncreate the resource.\n\nThe APIC mechanism driver uses a name-mapper module to map GBP resource\nnames to qualified names that are used by the AIM library. This AIM\npolicy driver holds a reference to that same name-mapper module (and\nsubsequently the cache that it uses) to perform name mapping for the\nGBP resources.\n\nIn addition to the UTs that test the new code, specific UTs have been\nadded for validating the transactional consistency by testing the\nrollback of created/updated/deleted resources if a downstream\noperation fails.\n\nChange-Id: I945d700c1a5e670de48d9c0d22e456e2d45f78a8\n(cherry picked from commit fb3aa33f042815d25533fba8a4ce62cf097b0b8d)","distinct":true,"url":"https://api.github.com/repos/noironetworks/group-based-policy/commits/1bf2d1df9df24169997d131ed3b44949fd5796d3"}]}
{"actor":{"display_login":"noirobot"}}