When we update a BgpAsAService object from ui, it is updating all fields including bgp-router-refs. Also, it sends vmi refs to empty first, then sets it to the old value again later. This interferes with schema transformer updating bgp-router-refs. Please see the logs below that were seen when we created the object with a vmi, then added an ip address: 2016 Feb 08 17:54:08.378434 csol1-node3 [:contrail-api:] : VncApiConfigLog: [VncApiCommon: object_type = bgp_as_a_service, identifier_name = default-domain:bgp-test:bgpaas-3, url = http://172.16.80.3:9100/bgp-as-a-services, operation = post, useragent = Restler for node.js, remote_ip = 172.16.80.3:9100, body = {"bgp-as-a-service": {"bgpaas_session_attributes": {"auth_data": null, "admin_down": false, "loop_count": 0, "passive": true, "family_attributes": [{"prefix_limit": {"maximum": 0}, "loop_count": 0, "address_family": "inet"}, {"prefix_limit": {"maximum": 0}, "loop_count": 0, "address_family": "inet6"}], "hold_time": 0, "address_families": {"family": ["inet", "inet6"]}}, "fq_name": ["default-domain", "bgp-test", "bgpaas-3"], "name": "bgpaas-3", "parent_type": "project", "virtual_machine_interface_refs": [{"to": ["default-domain", "bgp-test", "p0"], "uuid": "347feb2e-82b3-4156-8bf5-91d50414c45b"}], "perms2": {"owner": null, "owner_access": 7, "global_access": 0, "share": []}, "id_perms": {"enable": true, "uuid": null, "creator": null, "created": 0, "user_visible": true, "last_modified": 0, "permissions": {"owner": "cloud-admin", "owner_access": 7, "other_access": 7, "group": "cloud-admin-group", "group_access": 7}, "description": null}, "display_name": "bgpaas-3", "bgpaas_ip_address": null, "autonomous_system": 1}}, domain = default-domain] 2016 Feb 08 17:54:08.442099 csol1-node3 [:contrail-api:] : VncApiConfigLog: [VncApiCommon: identifier_uuid = 9bf9710c-eb2e-41c9-a851-ed1c5316a8e3, object_type = bgp_as_a_service, identifier_name = default-domain:bgp-test:bgpaas-3, url = http://172.16.80.200:8082/ref-update, operation = ref-update, useragent = csol1-node3:/usr/bin/contrail-schema, remote_ip = 172.16.80.200:8082, body = {"ref-type": "bgp-router", "uuid": "9bf9710c-eb2e-41c9-a851-ed1c5316a8e3", "ref-fq-name": ["default-domain", "bgp-test", "vn_private-x1-0", "vn_private-x1-0", "p0"], "ref-uuid": "ef13d906-3b2d-4aed-ad48-722d8ec372a2", "operation": "ADD", "type": "bgp-as-a-service", "attr": null}, domain = default-domain] 2016 Feb 08 17:54:16.815633 csol1-node3 [:contrail-api:] : VncApiConfigLog: [VncApiCommon: identifier_uuid = 9bf9710c-eb2e-41c9-a851-ed1c5316a8e3, object_type = bgp_as_a_service, identifier_name = default-domain:bgp-test:bgpaas-3, url = http://172.16.80.3:9100/bgp-as-a-service/9bf9710c-eb2e-41c9-a851-ed1c5316a8e3, operation = put, useragent = Restler for node.js, remote_ip = 172.16.80.3:9100, body = {"bgp-as-a-service": {"bgpaas_session_attributes": {"auth_data": null, "admin_down": false, "loop_count": 0, "passive": true, "family_attributes": [{"prefix_limit": {"maximum": 0}, "loop_count": 0, "address_family": "inet"}, {"prefix_limit": {"maximum": 0}, "loop_count": 0, "address_family": "inet6"}], "hold_time": 0, "address_families": {"family": ["inet", "inet6"]}}, "fq_name": ["default-domain", "bgp-test", "bgpaas-3"], "name": "bgpaas-3", "href": "http://172.16.80.3:9100/bgp-as-a-service/9bf9710c-eb2e-41c9-a851-ed1c5316a8e3", "parent_href": "http://172.16.80.3:9100/project/f3f6b3f6-39e2-4b06-86e1-ed024b14290d", "parent_type": "project", "uuid": "9bf9710c-eb2e-41c9-a851-ed1c5316a8e3", "virtual_machine_interface_refs": [], "perms2": {"owner": null, "owner_access": 7, "global_access": 0, "share": []}, "bgp_router_refs": [{"to": ["default-domain", "bgp-test", "vn_private-x1-0", "vn_private-x1-0", "p0"], "href": "http://172.16.80.3:9100/bgp-router/ef13d906-3b2d-4aed-ad48-722d8ec372a2", "attr": null, "uuid": "ef13d906-3b2d-4aed-ad48-722d8ec372a2"}], "display_name": "bgpaas-3", "autonomous_system": 1, "id_perms": {"enable": true, "description": null, "created": "2016-02-09T01:54:08.388155", "creator": null, "uuid": {"uuid_mslong": 11239138645379006000, "uuid_lslong": 12128735977394317000}, "user_visible": true, "last_modified": "2016-02-09T01:54:08.441114", "permissions": {"owner": "cloud-admin", "owner_access": 7, "other_access": 7, "group": "cloud-admin-group", "group_access": 7}}, "parent_uuid": "f3f6b3f6-39e2-4b06-86e1-ed024b14290d"}}, domain = default-domain, error = bgp_as_a_service:UUID mismatch from 172.16.80.3:Restler for node.js] 2016 Feb 08 17:54:16.818041 csol1-node3 [:contrail-api:] : VncApiConfigLog: [VncApiCommon: identifier_uuid = 9bf9710c-eb2e-41c9-a851-ed1c5316a8e3, object_type = bgp_as_a_service, identifier_name = default-domain:bgp-test:bgpaas-3, url = http://172.16.80.3:9100/bgp-as-a-service/9bf9710c-eb2e-41c9-a851-ed1c5316a8e3, operation = put, useragent = Restler for node.js, remote_ip = 172.16.80.3:9100, body = {"bgp-as-a-service": {"bgpaas_session_attributes": {"auth_data": null, "admin_down": false, "loop_count": 0, "passive": true, "family_attributes": [{"prefix_limit": {"maximum": 0}, "loop_count": 0, "address_family": "inet"}, {"prefix_limit": {"maximum": 0}, "loop_count": 0, "address_family": "inet6"}], "hold_time": 0, "address_families": {"family": ["inet", "inet6"]}}, "fq_name": ["default-domain", "bgp-test", "bgpaas-3"], "name": "bgpaas-3", "href": "http://172.16.80.3:9100/bgp-as-a-service/9bf9710c-eb2e-41c9-a851-ed1c5316a8e3", "parent_href": "http://172.16.80.3:9100/project/f3f6b3f6-39e2-4b06-86e1-ed024b14290d", "parent_type": "project", "uuid": "9bf9710c-eb2e-41c9-a851-ed1c5316a8e3", "virtual_machine_interface_refs": [], "perms2": {"owner": null, "owner_access": 7, "global_access": 0, "share": []}, "bgp_router_refs": [{"to": ["default-domain", "bgp-test", "vn_private-x1-0", "vn_private-x1-0", "p0"], "href": "http://172.16.80.3:9100/bgp-router/ef13d906-3b2d-4aed-ad48-722d8ec372a2", "attr": null, "uuid": "ef13d906-3b2d-4aed-ad48-722d8ec372a2"}], "display_name": "bgpaas-3", "autonomous_system": 1, "id_perms": {"enable": true, "uuid": {"uuid_mslong": 11239138645379006921, "uuid_lslong": 12128735977394317539}, "creator": null, "created": "2016-02-09T01:54:08.388155", "user_visible": true, "last_modified": "2016-02-09T01:54:08.441114", "permissions": {"owner": "cloud-admin", "owner_access": 7, "other_access": 7, "group": "cloud-admin-group", "group_access": 7}, "description": null}, "parent_uuid": "f3f6b3f6-39e2-4b06-86e1-ed024b14290d"}}, domain = default-domain] 2016 Feb 08 17:54:16.843269 csol1-node3 [:contrail-api:] : VncApiConfigLog: [VncApiCommon: identifier_uuid = 9bf9710c-eb2e-41c9-a851-ed1c5316a8e3, object_type = bgp_as_a_service, identifier_name = default-domain:bgp-test:bgpaas-3, url = http://172.16.80.3:9100/bgp-as-a-service/9bf9710c-eb2e-41c9-a851-ed1c5316a8e3, operation = put, useragent = Restler for node.js, remote_ip = 172.16.80.3:9100, body = {"bgp-as-a-service": {"bgpaas_session_attributes": {"auth_data": null, "admin_down": false, "loop_count": 0, "passive": true, "family_attributes": [{"prefix_limit": {"maximum": 0}, "loop_count": 0, "address_family": "inet"}, {"prefix_limit": {"maximum": 0}, "loop_count": 0, "address_family": "inet6"}], "hold_time": 0, "address_families": {"family": ["inet", "inet6"]}}, "fq_name": ["default-domain", "bgp-test", "bgpaas-3"], "name": "bgpaas-3", "href": "http://172.16.80.3:9100/bgp-as-a-service/9bf9710c-eb2e-41c9-a851-ed1c5316a8e3", "parent_href": "http://172.16.80.3:9100/project/f3f6b3f6-39e2-4b06-86e1-ed024b14290d", "parent_type": "project", "uuid": "9bf9710c-eb2e-41c9-a851-ed1c5316a8e3", "virtual_machine_interface_refs": [{"to": ["default-domain", "bgp-test", "p0"], "uuid": "347feb2e-82b3-4156-8bf5-91d50414c45b"}], "perms2": {"owner_access": 7, "global_access": 0, "share": []}, "bgp_router_refs": [{"to": ["default-domain", "bgp-test", "vn_private-x1-0", "vn_private-x1-0", "p0"], "href": "http://172.16.80.3:9100/bgp-router/ef13d906-3b2d-4aed-ad48-722d8ec372a2", "uuid": "ef13d906-3b2d-4aed-ad48-722d8ec372a2"}], "display_name": "bgpaas-3", "bgpaas_ip_address": "2.0.0.1", "autonomous_system": 1, "parent_uuid": "f3f6b3f6-39e2-4b06-86e1-ed024b14290d"}}, domain = default-domain] 2016 Feb 08 17:54:16.848929 csol1-node3 [:contrail-api:] : VncApiConfigLog: [VncApiCommon: identifier_uuid = 9bf9710c-eb2e-41c9-a851-ed1c5316a8e3, object_type = bgp_as_a_service, identifier_name = default-domain:bgp-test:bgpaas-3, url = http://172.16.80.200:8082/ref-update, operation = ref-update, useragent = csol1-node3:/usr/bin/contrail-schema, remote_ip = 172.16.80.200:8082, body = {"ref-type": "bgp-router", "uuid": "9bf9710c-eb2e-41c9-a851-ed1c5316a8e3", "ref-fq-name": ["default-domain", "bgp-test", "vn_private-x1-0", "vn_private-x1-0", "p0"], "ref-uuid": "ef13d906-3b2d-4aed-ad48-722d8ec372a2", "operation": "DELETE", "type": "bgp-as-a-service", "attr": null}, domain = default-domain] 2016 Feb 08 17:54:24.313193 csol1-node3 [:contrail-api:] : VncApiConfigLog: [VncApiCommon: identifier_uuid = 9bf9710c-eb2e-41c9-a851-ed1c5316a8e3, object_type = bgp_as_a_service, identifier_name = default-domain:bgp-test:bgpaas-3, url = http://172.16.80.3:9100/bgp-as-a-service/9bf9710c-eb2e-41c9-a851-ed1c5316a8e3, operation = put, useragent = Restler for node.js, remote_ip = 172.16.80.3:9100, body = {"bgp-as-a-service": {"bgpaas_session_attributes": {"auth_data": null, "admin_down": false, "loop_count": 0, "passive": true, "family_attributes": [{"prefix_limit": {"maximum": 0}, "loop_count": 0, "address_family": "inet"}, {"prefix_limit": {"maximum": 0}, "loop_count": 0, "address_family": "inet6"}], "hold_time": 0, "address_families": {"family": ["inet", "inet6"]}}, "fq_name": ["default-domain", "bgp-test", "bgpaas-3"], "name": "bgpaas-3", "href": "http://172.16.80.3:9100/bgp-as-a-service/9bf9710c-eb2e-41c9-a851-ed1c5316a8e3", "parent_href": "http://172.16.80.3:9100/project/f3f6b3f6-39e2-4b06-86e1-ed024b14290d", "parent_type": "project", "uuid": "9bf9710c-eb2e-41c9-a851-ed1c5316a8e3", "virtual_machine_interface_refs": [], "perms2": {"owner_access": 7, "global_access": 0, "share": []}, "bgp_router_refs": [{"to": ["ERROR"], "href": "http://172.16.80.3:9100/bgp-router/ef13d906-3b2d-4aed-ad48-722d8ec372a2", "attr": null, "uuid": "ef13d906-3b2d-4aed-ad48-722d8ec372a2"}], "display_name": "bgpaas-3", "bgpaas_ip_address": "2.0.0.1", "autonomous_system": 1, "id_perms": {"enable": true, "uuid": {"uuid_mslong": 11239138645379006000, "uuid_lslong": 12128735977394317000}, "creator": null, "created": "2016-02-09T01:54:08.388155", "user_visible": true, "last_modified": "2016-02-09T01:54:16.856499", "permissions": {"owner": "cloud-admin", "owner_access": 7, "other_access": 7, "group": "cloud-admin-group", "group_access": 7}, "description": null}, "parent_uuid": "f3f6b3f6-39e2-4b06-86e1-ed024b14290d"}}, domain = default-domain, error = bgp_as_a_service:UUID mismatch from 172.16.80.3:Restler for node.js] 2016 Feb 08 17:54:24.315734 csol1-node3 [:contrail-api:] : VncApiConfigLog: [VncApiCommon: identifier_uuid = 9bf9710c-eb2e-41c9-a851-ed1c5316a8e3, object_type = bgp_as_a_service, identifier_name = default-domain:bgp-test:bgpaas-3, url = http://172.16.80.3:9100/bgp-as-a-service/9bf9710c-eb2e-41c9-a851-ed1c5316a8e3, operation = put, useragent = Restler for node.js, remote_ip = 172.16.80.3:9100, body = {"bgp-as-a-service": {"bgpaas_session_attributes": {"auth_data": null, "admin_down": false, "loop_count": 0, "passive": true, "family_attributes": [{"prefix_limit": {"maximum": 0}, "loop_count": 0, "address_family": "inet"}, {"prefix_limit": {"maximum": 0}, "loop_count": 0, "address_family": "inet6"}], "hold_time": 0, "address_families": {"family": ["inet", "inet6"]}}, "fq_name": ["default-domain", "bgp-test", "bgpaas-3"], "name": "bgpaas-3", "href": "http://172.16.80.3:9100/bgp-as-a-service/9bf9710c-eb2e-41c9-a851-ed1c5316a8e3", "parent_href": "http://172.16.80.3:9100/project/f3f6b3f6-39e2-4b06-86e1-ed024b14290d", "parent_type": "project", "uuid": "9bf9710c-eb2e-41c9-a851-ed1c5316a8e3", "virtual_machine_interface_refs": [], "perms2": {"owner_access": 7, "global_access": 0, "share": []}, "bgp_router_refs": [{"to": ["ERROR"], "href": "http://172.16.80.3:9100/bgp-router/ef13d906-3b2d-4aed-ad48-722d8ec372a2", "attr": null, "uuid": "ef13d906-3b2d-4aed-ad48-722d8ec372a2"}], "display_name": "bgpaas-3", "bgpaas_ip_address": "2.0.0.1", "autonomous_system": 1, "id_perms": {"enable": true, "uuid": {"uuid_mslong": 11239138645379006921, "uuid_lslong": 12128735977394317539}, "creator": null, "created": "2016-02-09T01:54:08.388155", "user_visible": true, "last_modified": "2016-02-09T01:54:16.856499", "permissions": {"owner": "cloud-admin", "owner_access": 7, "other_access": 7, "group": "cloud-admin-group", "group_access": 7}, "description": null}, "parent_uuid": "f3f6b3f6-39e2-4b06-86e1-ed024b14290d"}}, domain = default-domain] 2016 Feb 08 17:54:24.326238 csol1-node3 [:contrail-api:] : VncApiConfigLog: [VncApiCommon: identifier_uuid = 9bf9710c-eb2e-41c9-a851-ed1c5316a8e3, object_type = bgp_as_a_service, identifier_name = default-domain:bgp-test:bgpaas-3, url = http://172.16.80.3:9100/bgp-as-a-service/9bf9710c-eb2e-41c9-a851-ed1c5316a8e3, operation = put, useragent = Restler for node.js, remote_ip = 172.16.80.3:9100, body = {"bgp-as-a-service": {"bgpaas_session_attributes": {"auth_data": null, "admin_down": false, "loop_count": 0, "passive": true, "family_attributes": [{"prefix_limit": {"maximum": 0}, "loop_count": 0, "address_family": "inet"}, {"prefix_limit": {"maximum": 0}, "loop_count": 0, "address_family": "inet6"}], "hold_time": 0, "address_families": {"family": ["inet", "inet6"]}}, "fq_name": ["default-domain", "bgp-test", "bgpaas-3"], "name": "bgpaas-3", "href": "http://172.16.80.3:9100/bgp-as-a-service/9bf9710c-eb2e-41c9-a851-ed1c5316a8e3", "parent_href": "http://172.16.80.3:9100/project/f3f6b3f6-39e2-4b06-86e1-ed024b14290d", "parent_type": "project", "uuid": "9bf9710c-eb2e-41c9-a851-ed1c5316a8e3", "virtual_machine_interface_refs": [{"to": ["default-domain", "bgp-test", "p0"], "uuid": "347feb2e-82b3-4156-8bf5-91d50414c45b"}], "perms2": {"owner_access": 7, "global_access": 0, "share": []}, "bgp_router_refs": [{"to": ["ERROR"], "href": "http://172.16.80.3:9100/bgp-router/ef13d906-3b2d-4aed-ad48-722d8ec372a2", "uuid": "ef13d906-3b2d-4aed-ad48-722d8ec372a2"}], "display_name": "bgpaas-3", "bgpaas_ip_address": "", "autonomous_system": 1, "parent_uuid": "f3f6b3f6-39e2-4b06-86e1-ed024b14290d"}}, domain = default-domain]