)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"14658941c3bb4bb1c2e2fc029fe3a7764cb16479","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This is POC for running df as k8s networking infratrcute by writing"},{"line_number":10,"context_line":"drivers for kuryr. (this code isn\u0027t tested yet so probebly it\u0027s"},{"line_number":11,"context_line":"not working ..)"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ib172acbcbf7bb68daf73f963d74b0406e2312e64"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bf8cb3f7_21896cc9","line":12,"updated":"2017-12-24 10:16:19.000000000","message":"worth to add a bot more details. How the k8s services are going to be supported? How the IPAM is going to be supplied?","commit_id":"350dd567a44a99fc2a804bab8a9426893884c2ad"}],"doc/source/containers.rst":[{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"f90a442bc620a8623575d6518a2954d1d6821990","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Containers"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"We belive that dragnflow can be also as networking backend for"},{"line_number":6,"context_line":"containers."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Currently we create a poc for dragnflow as network-provider for"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9f91af0f_ab883471","line":5,"range":{"start_line":5,"start_character":3,"end_line":5,"end_character":9},"updated":"2017-12-28 15:13:09.000000000","message":"believe","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c60f052191d9acf9cc26825757c15e7bab39a19b","unresolved":false,"context_lines":[{"line_number":6,"context_line":"containers."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Currently we create a poc for dragnflow as network-provider for"},{"line_number":9,"context_line":"kuberenetes by implanting kuryr-kubernetes drivers that connected"},{"line_number":10,"context_line":"update directly dragonflow northbound database."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"the flowing openstack project that needed in POC:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9f91af0f_ce726b12","line":9,"range":{"start_line":9,"start_character":15,"end_line":9,"end_character":25},"updated":"2017-12-28 12:21:48.000000000","message":"implementing?","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c60f052191d9acf9cc26825757c15e7bab39a19b","unresolved":false,"context_lines":[{"line_number":12,"context_line":"the flowing openstack project that needed in POC:"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"  * kuryr - for all interaction with k8s that\u0027s include :"},{"line_number":15,"context_line":"    api-server , cni and container network configuration."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"  * ov-vif - for plug the pod port to ovs."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9f91af0f_ce4b4bae","line":15,"range":{"start_line":15,"start_character":3,"end_line":15,"end_character":14},"updated":"2017-12-28 12:21:48.000000000","message":"this one is K8s","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c60f052191d9acf9cc26825757c15e7bab39a19b","unresolved":false,"context_lines":[{"line_number":17,"context_line":"  * ov-vif - for plug the pod port to ovs."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"  * oslo-config - for configuration loading."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"what not included in the POC:"},{"line_number":22,"context_line":"(an hardcoded values supplied in the code)"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9f91af0f_4ed5fbb8","line":20,"updated":"2017-12-28 12:21:48.000000000","message":"I think you may need keystone for the AA as well","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"6a10067187cdd75e895bcedb9ae6983b84d51ccf","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"  * Mac allocation"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"  * Segmation allocation"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  * ID\u0027s and naming of objects"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9f91af0f_13d71cc2","line":28,"range":{"start_line":28,"start_character":4,"end_line":28,"end_character":13},"updated":"2017-12-28 08:39:20.000000000","message":"Segmentation","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c60f052191d9acf9cc26825757c15e7bab39a19b","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  * ID\u0027s and naming of objects"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  * Any k8s future except - pod to pod communication"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"How to install:"},{"line_number":35,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9f91af0f_0ed7f3c1","line":32,"range":{"start_line":32,"start_character":4,"end_line":32,"end_character":52},"updated":"2017-12-28 12:21:48.000000000","message":"Maybe better to emphases what is included in the PoC","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"6a10067187cdd75e895bcedb9ae6983b84d51ccf","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  * ID\u0027s and naming of objects"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  * Any k8s future except - pod to pod communication"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"How to install:"},{"line_number":35,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9f91af0f_f3cab84d","line":32,"range":{"start_line":32,"start_character":12,"end_line":32,"end_character":18},"updated":"2017-12-28 08:39:20.000000000","message":"feature","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c60f052191d9acf9cc26825757c15e7bab39a19b","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"  * Run dev stack with kuryr_without_neutron.conf as local.conf"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"  * Update dargflow code with that patch and run: \"pyton setup.py install\""},{"line_number":40,"context_line":"    for intalling driver entry-point"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  * update /etc/kuryr/kuryr.conf with the follwing lines :"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9f91af0f_8ef4635d","line":39,"range":{"start_line":39,"start_character":11,"end_line":39,"end_character":19},"updated":"2017-12-28 12:21:48.000000000","message":"Dragonflow","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"f90a442bc620a8623575d6518a2954d1d6821990","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"  * Run dev stack with kuryr_without_neutron.conf as local.conf"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"  * Update dargflow code with that patch and run: \"pyton setup.py install\""},{"line_number":40,"context_line":"    for intalling driver entry-point"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  * update /etc/kuryr/kuryr.conf with the follwing lines :"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9f91af0f_2b94248b","line":39,"range":{"start_line":39,"start_character":30,"end_line":39,"end_character":34},"updated":"2017-12-28 15:13:09.000000000","message":"this?","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c60f052191d9acf9cc26825757c15e7bab39a19b","unresolved":false,"context_lines":[{"line_number":54,"context_line":"  * install 2 pods by run \"/usr/local/bin/kubectl apply -f"},{"line_number":55,"context_line":"    https://k8s.io/docs/tasks/run-application/deployment.yaml\""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"  * check that pods are up - and  check ping between pods"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9f91af0f_0e005334","line":57,"updated":"2017-12-28 12:21:48.000000000","message":"you can add a sample command how to exec command from the pod","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"}],"doc/source/single-node-conf/kuryr_without_neutron.conf":[{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c60f052191d9acf9cc26825757c15e7bab39a19b","unresolved":false,"context_lines":[{"line_number":40,"context_line":"enable_service q-svc"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"# Keystone"},{"line_number":43,"context_line":"enable_service key"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"# Dependencies"},{"line_number":46,"context_line":"enable_service mysql"}],"source_content_type":"text/plain","patch_set":4,"id":"9f91af0f_f4937e5b","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":18},"updated":"2017-12-28 12:21:48.000000000","message":"As I mentioned in the documentation part, you do have keystone","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c60f052191d9acf9cc26825757c15e7bab39a19b","unresolved":false,"context_lines":[{"line_number":54,"context_line":"TUNNEL_TYPE\u003dvxlan"},{"line_number":55,"context_line":"DF_SELECTIVE_TOPO_DIST\u003dFalse"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"# OCTAVIA"},{"line_number":58,"context_line":"KURYR_K8S_LBAAS_USE_OCTAVIA\u003dFalse"},{"line_number":59,"context_line":"# Uncomment it to use L2 communication between loadbalancer and member pods"},{"line_number":60,"context_line":"# KURYR_K8S_OCTAVIA_MEMBER_MODE\u003dL2"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"if [[ \"$KURYR_K8S_LBAAS_USE_OCTAVIA\" \u003d\u003d \"True\" ]]; then"},{"line_number":63,"context_line":"    # Octavia LBaaSv2"},{"line_number":64,"context_line":"    LIBS_FROM_GIT+\u003dpython-octaviaclient"},{"line_number":65,"context_line":"    enable_plugin octavia https://git.openstack.org/openstack/octavia"},{"line_number":66,"context_line":"    enable_service octavia"},{"line_number":67,"context_line":"    enable_service o-api"},{"line_number":68,"context_line":"    enable_service o-cw"},{"line_number":69,"context_line":"    enable_service o-hm"},{"line_number":70,"context_line":"    enable_service o-hk"},{"line_number":71,"context_line":"    ## Octavia Deps"},{"line_number":72,"context_line":"    ### Image"},{"line_number":73,"context_line":"    ### Barbican"},{"line_number":74,"context_line":"    enable_plugin barbican https://git.openstack.org/openstack/barbican"},{"line_number":75,"context_line":"    ### Nova"},{"line_number":76,"context_line":"    enable_service n-api"},{"line_number":77,"context_line":"    enable_service n-api-meta"},{"line_number":78,"context_line":"    enable_service n-cpu"},{"line_number":79,"context_line":"    enable_service n-cond"},{"line_number":80,"context_line":"    enable_service n-sch"},{"line_number":81,"context_line":"    enable_service placement-api"},{"line_number":82,"context_line":"    enable_service placement-client"},{"line_number":83,"context_line":"    ### Glance"},{"line_number":84,"context_line":"    enable_service g-api"},{"line_number":85,"context_line":"    enable_service g-reg"},{"line_number":86,"context_line":"    ### Neutron-lbaas"},{"line_number":87,"context_line":"    #### In case Octavia is older than Pike, neutron-lbaas is needed"},{"line_number":88,"context_line":"    enable_plugin neutron-lbaas \\"},{"line_number":89,"context_line":"        git://git.openstack.org/openstack/neutron-lbaas"},{"line_number":90,"context_line":"    enable_service q-lbaasv2"},{"line_number":91,"context_line":"else"},{"line_number":92,"context_line":"    # LBaaSv2 service and Haproxy agent"},{"line_number":93,"context_line":"    enable_plugin neutron-lbaas \\"},{"line_number":94,"context_line":"        git://git.openstack.org/openstack/neutron-lbaas"},{"line_number":95,"context_line":"    enable_service q-lbaasv2"},{"line_number":96,"context_line":"fi"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"# By default use all the services from the kuryr-kubernetes plugin"},{"line_number":99,"context_line":""}],"source_content_type":"text/plain","patch_set":4,"id":"9f91af0f_b49df667","line":96,"range":{"start_line":57,"start_character":0,"end_line":96,"end_character":2},"updated":"2017-12-28 12:21:48.000000000","message":"you can remove this part","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c60f052191d9acf9cc26825757c15e7bab39a19b","unresolved":false,"context_lines":[{"line_number":214,"context_line":"# KURYR_VIF_POOL_BATCH\u003d10"},{"line_number":215,"context_line":"# KURYR_VIF_POOL_UPDATE_FREQ\u003d20"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"# Increase Octavia amphorae timeout so that the first LB amphora has time to"},{"line_number":218,"context_line":"# build and boot"},{"line_number":219,"context_line":"if [[ \"$KURYR_K8S_LBAAS_USE_OCTAVIA\" \u003d\u003d \"True\" ]]; then"},{"line_number":220,"context_line":"    IMAGE_URLS+\u003d\",http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img\""},{"line_number":221,"context_line":"else"},{"line_number":222,"context_line":"    NEUTRON_LBAAS_SERVICE_PROVIDERV2\u003d\"LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default\""},{"line_number":223,"context_line":"fi"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"[[post-config|$OCTAVIA_CONF]]"},{"line_number":226,"context_line":"[controller_worker]"},{"line_number":227,"context_line":"amp_active_retries\u003d9999"}],"source_content_type":"text/plain","patch_set":4,"id":"9f91af0f_d49afa6c","line":227,"range":{"start_line":217,"start_character":0,"end_line":227,"end_character":23},"updated":"2017-12-28 12:21:48.000000000","message":"you can remove this part as well","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"}],"dragonflow/cni/kuryr_kubernetes/drivers/project_driver.py":[{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c60f052191d9acf9cc26825757c15e7bab39a19b","unresolved":false,"context_lines":[{"line_number":19,"context_line":"class DfProjectDriver(base.PodProjectDriver):"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def get_project(self, pod):"},{"line_number":22,"context_line":"        return \"POC_TOPIC\""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_54882a1e","line":22,"range":{"start_line":22,"start_character":8,"end_line":22,"end_character":26},"updated":"2017-12-28 12:21:48.000000000","message":"why not keep getting it from config?","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"}],"dragonflow/cni/kuryr_kubernetes/drivers/security_groups_driver.py":[{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"14658941c3bb4bb1c2e2fc029fe3a7764cb16479","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from kuryr_kubernetes.controller.drivers import base"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    class KuryrSecuirtyGroupDriver(base.PodSecurityGroupsDriver):"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def get_security_groups(self, pod, project_id):"},{"line_number":22,"context_line":"        # TODO(leyal): build secuirty groups with df api"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf8cb3f7_4184b0b1","line":19,"range":{"start_line":19,"start_character":15,"end_line":19,"end_character":23},"updated":"2017-12-24 10:16:19.000000000","message":"typo","commit_id":"350dd567a44a99fc2a804bab8a9426893884c2ad"}],"dragonflow/cni/kuryr_kubernetes/drivers/subnet_driver.py":[{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c60f052191d9acf9cc26825757c15e7bab39a19b","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        self.nb_api \u003d None"},{"line_number":31,"context_line":"        self.df_subnet \u003d None"},{"line_number":32,"context_line":"        self.df_lswitch \u003d None"},{"line_number":33,"context_line":"        self._init_nb_api()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def _init_nb_api(self):"},{"line_number":36,"context_line":"        # TODO(leyal) check initialize df_db in global scope"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_f4a13e97","line":33,"range":{"start_line":33,"start_character":8,"end_line":33,"end_character":27},"updated":"2017-12-28 12:21:48.000000000","message":"I think this is  not the right place to init the nb_api","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"f90a442bc620a8623575d6518a2954d1d6821990","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def _init_nb_api(self):"},{"line_number":36,"context_line":"        # TODO(leyal) check initialize df_db in global scope"},{"line_number":37,"context_line":"        df_utils.config_parse(args\u003d[\"--config-file\", \"/etc/kuryr/kuryr.conf\"])"},{"line_number":38,"context_line":"        db_driver \u003d df_utils.load_driver(cfg.CONF.df.nb_db_class,"},{"line_number":39,"context_line":"                                         df_utils.DF_NB_DB_DRIVER_NAMESPACE)"},{"line_number":40,"context_line":"        db_driver.initialize(db_ip\u003dcfg.CONF.df.remote_db_ip,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_cbe5783a","line":37,"range":{"start_line":37,"start_character":17,"end_line":37,"end_character":78},"updated":"2017-12-28 15:13:09.000000000","message":"This can be loaded in a shared location (and loaded from config),\nand then it can be used also by the vif driver","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c60f052191d9acf9cc26825757c15e7bab39a19b","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    def _init_nb_api(self):"},{"line_number":36,"context_line":"        # TODO(leyal) check initialize df_db in global scope"},{"line_number":37,"context_line":"        df_utils.config_parse(args\u003d[\"--config-file\", \"/etc/kuryr/kuryr.conf\"])"},{"line_number":38,"context_line":"        db_driver \u003d df_utils.load_driver(cfg.CONF.df.nb_db_class,"},{"line_number":39,"context_line":"                                         df_utils.DF_NB_DB_DRIVER_NAMESPACE)"},{"line_number":40,"context_line":"        db_driver.initialize(db_ip\u003dcfg.CONF.df.remote_db_ip,"},{"line_number":41,"context_line":"                             db_port\u003dcfg.CONF.df.remote_db_port,"},{"line_number":42,"context_line":"                             config\u003dcfg.CONF.df)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        self.nb_api \u003d api_nb.NbApi(db_driver, False)"},{"line_number":45,"context_line":"        self._build_subnet()"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def _build_default_network(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_34980669","line":44,"range":{"start_line":38,"start_character":5,"end_line":44,"end_character":52},"updated":"2017-12-28 12:21:48.000000000","message":"I think better to have df_utils or clinet module so you can just retrieve the df_db from there. I think you may need to invoke df_db from different modules","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"6a10067187cdd75e895bcedb9ae6983b84d51ccf","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    def _init_nb_api(self):"},{"line_number":36,"context_line":"        # TODO(leyal) check initialize df_db in global scope"},{"line_number":37,"context_line":"        df_utils.config_parse(args\u003d[\"--config-file\", \"/etc/kuryr/kuryr.conf\"])"},{"line_number":38,"context_line":"        db_driver \u003d df_utils.load_driver(cfg.CONF.df.nb_db_class,"},{"line_number":39,"context_line":"                                         df_utils.DF_NB_DB_DRIVER_NAMESPACE)"},{"line_number":40,"context_line":"        db_driver.initialize(db_ip\u003dcfg.CONF.df.remote_db_ip,"},{"line_number":41,"context_line":"                             db_port\u003dcfg.CONF.df.remote_db_port,"},{"line_number":42,"context_line":"                             config\u003dcfg.CONF.df)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        self.nb_api \u003d api_nb.NbApi(db_driver, False)"},{"line_number":45,"context_line":"        self._build_subnet()"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def _build_default_network(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_13007c34","line":44,"range":{"start_line":38,"start_character":0,"end_line":44,"end_character":52},"updated":"2017-12-28 08:39:20.000000000","message":"Please use api_nb.NbApi.get_instance","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"6a10067187cdd75e895bcedb9ae6983b84d51ccf","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        self.nb_api \u003d api_nb.NbApi(db_driver, False)"},{"line_number":45,"context_line":"        self._build_subnet()"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def _build_default_network(self):"},{"line_number":48,"context_line":"        # TODO(leyal) build real network"},{"line_number":49,"context_line":"        lswitch \u003d l2.LogicalSwitch("},{"line_number":50,"context_line":"            id\u003d\"POC_switch\","}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_d3f9b44d","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":30},"updated":"2017-12-28 08:39:20.000000000","message":"Move creation of lswitch and lsubnet to destack?","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c60f052191d9acf9cc26825757c15e7bab39a19b","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        self.nb_api \u003d api_nb.NbApi(db_driver, False)"},{"line_number":45,"context_line":"        self._build_subnet()"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def _build_default_network(self):"},{"line_number":48,"context_line":"        # TODO(leyal) build real network"},{"line_number":49,"context_line":"        lswitch \u003d l2.LogicalSwitch("},{"line_number":50,"context_line":"            id\u003d\"POC_switch\","}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_b4abb673","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":30},"in_reply_to":"9f91af0f_d3f9b44d","updated":"2017-12-28 12:21:48.000000000","message":"+1","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"6a10067187cdd75e895bcedb9ae6983b84d51ccf","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    def _build_default_network(self):"},{"line_number":48,"context_line":"        # TODO(leyal) build real network"},{"line_number":49,"context_line":"        lswitch \u003d l2.LogicalSwitch("},{"line_number":50,"context_line":"            id\u003d\"POC_switch\","},{"line_number":51,"context_line":"            topic\u003d\"POC_topic\","},{"line_number":52,"context_line":"            name\u003d\"POC_switch_name\","},{"line_number":53,"context_line":"            network_type\u003d\"vxlan\","}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_b3fc303f","line":50,"range":{"start_line":50,"start_character":16,"end_line":50,"end_character":19},"updated":"2017-12-28 08:39:20.000000000","message":"Please use a useful name, e.g. df_k8s instead of POC","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c60f052191d9acf9cc26825757c15e7bab39a19b","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            topic\u003d\"POC_topic\","},{"line_number":92,"context_line":"            name\u003d\"POC_subnet_name\","},{"line_number":93,"context_line":"            enable_dhcp\u003dFalse,"},{"line_number":94,"context_line":"            cidr\u003d\"192.168.10.0/24\","},{"line_number":95,"context_line":"            gateway_ip\u003d\"192.168.100.1\","},{"line_number":96,"context_line":"            dns_nameservers\u003d[],"},{"line_number":97,"context_line":"            host_routes\u003d[]"},{"line_number":98,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_94bc72bc","line":95,"range":{"start_line":94,"start_character":18,"end_line":95,"end_character":39},"updated":"2017-12-28 12:21:48.000000000","message":"better be driven from config","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"}],"dragonflow/cni/kuryr_kubernetes/drivers/vif_driver.py":[{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"f90a442bc620a8623575d6518a2954d1d6821990","unresolved":false,"context_lines":[{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"def _make_vif_subnets(df_port, subnets):"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    # TODO(leyal) handle multiple ips"},{"line_number":41,"context_line":"    ip \u003d df_port.ip"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_4ba40809","line":38,"range":{"start_line":38,"start_character":4,"end_line":38,"end_character":21},"updated":"2017-12-28 15:13:09.000000000","message":"You can move the object converters to a shared location, same as we do with the neutron-to-df-objects","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"f90a442bc620a8623575d6518a2954d1d6821990","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        network \u003d next(net.obj_clone() for net in subnets.values()"},{"line_number":53,"context_line":"                       if net.id \u003d\u003d df_port.lswitch.id)"},{"line_number":54,"context_line":"    except StopIteration:"},{"line_number":55,"context_line":"        raise ValueError(_(\"netwrok not found\"))"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    network.subnets \u003d osv_subnet.SubnetList("},{"line_number":58,"context_line":"        objects\u003d_make_vif_subnets(df_port, subnets))"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_6ba9ccdd","line":55,"range":{"start_line":55,"start_character":14,"end_line":55,"end_character":24},"updated":"2017-12-28 15:13:09.000000000","message":"Please replace this with a more helpfull error message","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c60f052191d9acf9cc26825757c15e7bab39a19b","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        network \u003d next(net.obj_clone() for net in subnets.values()"},{"line_number":53,"context_line":"                       if net.id \u003d\u003d df_port.lswitch.id)"},{"line_number":54,"context_line":"    except StopIteration:"},{"line_number":55,"context_line":"        raise ValueError(_(\"netwrok not found\"))"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    network.subnets \u003d osv_subnet.SubnetList("},{"line_number":58,"context_line":"        objects\u003d_make_vif_subnets(df_port, subnets))"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_f4ca9e4d","line":55,"range":{"start_line":55,"start_character":28,"end_line":55,"end_character":35},"updated":"2017-12-28 12:21:48.000000000","message":"typo","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c60f052191d9acf9cc26825757c15e7bab39a19b","unresolved":false,"context_lines":[{"line_number":63,"context_line":"class DFVifDriver(base.PodVIFDriver):"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def __init__(self):"},{"line_number":66,"context_line":"        df_utils.config_parse(args\u003d[\"--config-file\", \"/etc/kuryr/kuryr.conf\"])"},{"line_number":67,"context_line":"        db_driver \u003d df_utils.load_driver(cfg.CONF.df.nb_db_class,"},{"line_number":68,"context_line":"                                         df_utils.DF_NB_DB_DRIVER_NAMESPACE)"},{"line_number":69,"context_line":"        db_driver.initialize(db_ip\u003dcfg.CONF.df.remote_db_ip,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_14c86253","line":66,"range":{"start_line":66,"start_character":6,"end_line":66,"end_character":78},"updated":"2017-12-28 12:21:48.000000000","message":"please try to avoid this in the driver","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"6a10067187cdd75e895bcedb9ae6983b84d51ccf","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        subnet \u003d osv_network.subnets.objects[0]"},{"line_number":107,"context_line":"        net_addr \u003d subnet.cidr.network"},{"line_number":108,"context_line":"        ret \u003d str(net_addr + self.addr_offset)"},{"line_number":109,"context_line":"        self.addr_offset +\u003d 1"},{"line_number":110,"context_line":"        return ret"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def _build_l2_port(self, ip_addr, topic,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_f38718b6","line":109,"range":{"start_line":109,"start_character":0,"end_line":109,"end_character":29},"updated":"2017-12-28 08:39:20.000000000","message":"Use DB\u0027s unique_key rather than an in-memory counter","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c60f052191d9acf9cc26825757c15e7bab39a19b","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def _build_l2_port(self, ip_addr, topic,"},{"line_number":113,"context_line":"                       subnet_id, security_groups, node_name):"},{"line_number":114,"context_line":"        # TODO(leyal) find a way to pass network id from subnet driver"},{"line_number":115,"context_line":"        return l2.LogicalPort("},{"line_number":116,"context_line":"            id\u003dstr(uuid.uuid4()),"},{"line_number":117,"context_line":"            lswitch\u003d\"POC_switch\","}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_f4cffe54","line":114,"range":{"start_line":114,"start_character":41,"end_line":114,"end_character":51},"updated":"2017-12-28 12:21:48.000000000","message":"I think the api should be based on df entities, such as lswtich and not network","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"6a10067187cdd75e895bcedb9ae6983b84d51ccf","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            id\u003dstr(uuid.uuid4()),"},{"line_number":117,"context_line":"            lswitch\u003d\"POC_switch\","},{"line_number":118,"context_line":"            topic\u003dtopic,"},{"line_number":119,"context_line":"            macs\u003d[\"aa:bb:cc:dd:ee:\" + \"{:02x}\".format(self.addr_offset - 1)],"},{"line_number":120,"context_line":"            ips\u003d[ip_addr],"},{"line_number":121,"context_line":"            subnets\u003d[subnet_id],"},{"line_number":122,"context_line":"            name\u003d\"POC_PORT_{}\".format((self.addr_offset - 1)),"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_53a36450","line":119,"range":{"start_line":119,"start_character":0,"end_line":119,"end_character":77},"updated":"2017-12-28 08:39:20.000000000","message":"Move to external method (similar to get_ip_addr)","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"}],"setup.cfg":[{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"14658941c3bb4bb1c2e2fc029fe3a7764cb16479","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    df-sg \u003d dragonflow.cni.kuryr_kubernetes.drivers.security_groups_driver.KuryrSecuirtyGroupDriver"},{"line_number":111,"context_line":"    df-subnets \u003d dragonflow.cni.kuryr_kubernetes.drivers.subnet_driver.KuryrSubnetDriver"},{"line_number":112,"context_line":"    df-project \u003d dragonflow.cni.kuryr_kubernetes.drivers.project_driver.DfProjectDriver"},{"line_number":113,"context_line":"    df-vif \u003d dragonflow.cni.kuryr_kubernetes.drivers.vif_driver."}],"source_content_type":"text/x-ttcn-cfg","patch_set":1,"id":"bf8cb3f7_81a2b84a","line":113,"range":{"start_line":113,"start_character":63,"end_line":113,"end_character":64},"updated":"2017-12-24 10:16:19.000000000","message":"remove .","commit_id":"350dd567a44a99fc2a804bab8a9426893884c2ad"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c60f052191d9acf9cc26825757c15e7bab39a19b","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    sg \u003d dragonflow.controller.apps.sg:SGApp"},{"line_number":107,"context_line":"    trunk \u003d dragonflow.controller.apps.trunk:TrunkApp"},{"line_number":108,"context_line":"    tunneling \u003d dragonflow.controller.apps.tunneling:TunnelingApp"},{"line_number":109,"context_line":"kuryr_kubernetes.controller.drivers.pod_security_groups:"},{"line_number":110,"context_line":"    df-sg \u003d dragonflow.cni.kuryr_kubernetes.drivers.security_groups_driver:KuryrSecuirtyGroupDriver"},{"line_number":111,"context_line":"kuryr_kubernetes.controller.drivers.pod_subnets:"},{"line_number":112,"context_line":"    df-subnets \u003d dragonflow.cni.kuryr_kubernetes.drivers.subnet_driver:KuryrSubnetDriver"},{"line_number":113,"context_line":"kuryr_kubernetes.controller.drivers.pod_project:"},{"line_number":114,"context_line":"    df-project \u003d dragonflow.cni.kuryr_kubernetes.drivers.project_driver:DfProjectDriver"},{"line_number":115,"context_line":"kuryr_kubernetes.controller.drivers.pod_vif:"},{"line_number":116,"context_line":"    df-vif \u003d dragonflow.cni.kuryr_kubernetes.drivers.vif_driver:DFVifDriver"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"9f91af0f_d4d67af2","line":116,"range":{"start_line":109,"start_character":56,"end_line":116,"end_character":75},"updated":"2017-12-28 12:21:48.000000000","message":"please try to keep consistent naming convention","commit_id":"7a34178ae4acc1b56e7f9b638f19e3028a1fec26"}]}
