)]}'
{"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"352afc4802a63040a0d96305378483b572354622","unresolved":false,"context_lines":[{"line_number":505,"context_line":"    service_ref.update(values)"},{"line_number":506,"context_line":"    if not CONF.enable_new_services:"},{"line_number":507,"context_line":"        service_ref.disabled \u003d True"},{"line_number":508,"context_line":"        service_ref.disabled_reason \u003d CONF.new_services_disable_reason"},{"line_number":509,"context_line":"    try:"},{"line_number":510,"context_line":"        service_ref.save()"},{"line_number":511,"context_line":"    except db_exc.DBDuplicateEntry as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_53467024","line":508,"updated":"2015-02-03 11:15:54.000000000","message":"As per Sean\u0027s comment, let\u0027s put it unvariable first","commit_id":"86f4f73aac7727eb0336c148f815581d5aed9169"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"992980d4a507feaf7ac2c1193b848d12c58b2770","unresolved":false,"context_lines":[{"line_number":505,"context_line":"    service_ref.update(values)"},{"line_number":506,"context_line":"    if not CONF.enable_new_services:"},{"line_number":507,"context_line":"        service_ref.disabled \u003d True"},{"line_number":508,"context_line":"        service_ref.disabled_reason \u003d \u0027New service\u0027"},{"line_number":509,"context_line":"    try:"},{"line_number":510,"context_line":"        service_ref.save()"},{"line_number":511,"context_line":"    except db_exc.DBDuplicateEntry as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_f32acd8e","line":508,"updated":"2015-02-04 13:13:12.000000000","message":"Could you please i18n it, ie. _(\"New service\")","commit_id":"2077bed685bc4190c211298f786aa2ff744bc339"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"cd7553f8d407160b616b84dc9de1440bdf530bba","unresolved":false,"context_lines":[{"line_number":505,"context_line":"    service_ref.update(values)"},{"line_number":506,"context_line":"    if not CONF.enable_new_services:"},{"line_number":507,"context_line":"        service_ref.disabled \u003d True"},{"line_number":508,"context_line":"        service_ref.disabled_reason \u003d \u0027New service\u0027"},{"line_number":509,"context_line":"    try:"},{"line_number":510,"context_line":"        service_ref.save()"},{"line_number":511,"context_line":"    except db_exc.DBDuplicateEntry as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_c4609dd1","line":508,"in_reply_to":"da86d52c_f32acd8e","updated":"2015-02-04 16:48:01.000000000","message":"yes, you\u0027re right. Thanks.","commit_id":"2077bed685bc4190c211298f786aa2ff744bc339"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"81d965085fe33c63083004e31c04f5ff3bda07de","unresolved":false,"context_lines":[{"line_number":503,"context_line":"def service_create(context, values):"},{"line_number":504,"context_line":"    service_ref \u003d models.Service()"},{"line_number":505,"context_line":"    service_ref.update(values)"},{"line_number":506,"context_line":"    if not CONF.enable_new_services:"},{"line_number":507,"context_line":"        service_ref.disabled \u003d True"},{"line_number":508,"context_line":"        service_ref.disabled_reason \u003d _(\"New service\")"},{"line_number":509,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_3793245c","line":506,"updated":"2015-02-06 01:55:58.000000000","message":"ideally to say this shouldn\u0027t be done at db layer?","commit_id":"b4f93b06ce96686e76b59da692a59a0ba239ecf0"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"83b28f018204755b47484ea08190516b653e2516","unresolved":false,"context_lines":[{"line_number":503,"context_line":"def service_create(context, values):"},{"line_number":504,"context_line":"    service_ref \u003d models.Service()"},{"line_number":505,"context_line":"    service_ref.update(values)"},{"line_number":506,"context_line":"    if not CONF.enable_new_services:"},{"line_number":507,"context_line":"        service_ref.disabled \u003d True"},{"line_number":508,"context_line":"        service_ref.disabled_reason \u003d _(\"New service\")"},{"line_number":509,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_3c178446","line":506,"in_reply_to":"da86d52c_3793245c","updated":"2015-02-06 04:52:52.000000000","message":"It does feel weird to me that this is being done at the DB layer. I\u0027d say this should be in the object layer...","commit_id":"b4f93b06ce96686e76b59da692a59a0ba239ecf0"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"de421b5cc82b0193bb7ddf98dda83ea844aa515c","unresolved":false,"context_lines":[{"line_number":503,"context_line":"def service_create(context, values):"},{"line_number":504,"context_line":"    service_ref \u003d models.Service()"},{"line_number":505,"context_line":"    service_ref.update(values)"},{"line_number":506,"context_line":"    if not CONF.enable_new_services:"},{"line_number":507,"context_line":"        service_ref.disabled \u003d True"},{"line_number":508,"context_line":"        service_ref.disabled_reason \u003d _(\"New service\")"},{"line_number":509,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_7ca73cbd","line":506,"in_reply_to":"da86d52c_3c178446","updated":"2015-02-06 05:08:16.000000000","message":"I don\u0027t think it should be in the object layer for the same reason it doesn\u0027t belong here. We don\u0027t have a lot of CONF-dependent behavior in the object layer (although we do have some). The reason for that is that it effectively encodes CONF-dependent behaviors into the object APIs, which could drift over time. Since that is our upgrade insulation layer, it\u0027s generally a bad place for such things, IMHO. We have some (see cells compatibility) but I think we should keep it to a minimum.\n\nI don\u0027t see any reason why this (the disabled-by-default and reason setting behavior) shouldn\u0027t be in service.py where our high-level service startup logic is.","commit_id":"b4f93b06ce96686e76b59da692a59a0ba239ecf0"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"0cfefd264df16b50d688ccb43e1a701fcdeda72e","unresolved":false,"context_lines":[{"line_number":503,"context_line":"def service_create(context, values):"},{"line_number":504,"context_line":"    service_ref \u003d models.Service()"},{"line_number":505,"context_line":"    service_ref.update(values)"},{"line_number":506,"context_line":"    if not CONF.enable_new_services:"},{"line_number":507,"context_line":"        service_ref.disabled \u003d True"},{"line_number":508,"context_line":"        service_ref.disabled_reason \u003d _(\"New service\")"},{"line_number":509,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_7f43a56b","line":506,"in_reply_to":"da86d52c_7ca73cbd","updated":"2015-02-06 12:04:16.000000000","message":"+1 for service.py","commit_id":"b4f93b06ce96686e76b59da692a59a0ba239ecf0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8a16099be7bc15d461b6fa33cacf2d86e980aa19","unresolved":false,"context_lines":[{"line_number":503,"context_line":"def service_create(context, values):"},{"line_number":504,"context_line":"    service_ref \u003d models.Service()"},{"line_number":505,"context_line":"    service_ref.update(values)"},{"line_number":506,"context_line":"    if not CONF.enable_new_services:"},{"line_number":507,"context_line":"        service_ref.disabled \u003d True"},{"line_number":508,"context_line":"        service_ref.disabled_reason \u003d _(\"New service\")"},{"line_number":509,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_e980dff8","line":506,"in_reply_to":"da86d52c_7f43a56b","updated":"2015-02-12 14:20:01.000000000","message":"Well, it requires further work for using the Service object, as when creating a new service, it doesn\u0027t use the object :\n\nhttp://git.openstack.org/cgit/openstack/nova/tree/nova/service.py#n226\n\nSo, I\u0027m OK with you for using the Service object, but it needs a dependent patch","commit_id":"b4f93b06ce96686e76b59da692a59a0ba239ecf0"}],"nova/service.py":[{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"910ac9597c1911d9990ea27821368fa5f90d7e71","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        }"},{"line_number":229,"context_line":"        if not CONF.enable_new_services:"},{"line_number":230,"context_line":"            svc_values[\u0027disabled\u0027] \u003d True"},{"line_number":231,"context_line":"            svc_values[\u0027disabled_reason\u0027] \u003d _(\"New service\")"},{"line_number":232,"context_line":"        service \u003d self.conductor_api.service_create(context, svc_values)"},{"line_number":233,"context_line":"        self.service_id \u003d service[\u0027id\u0027]"},{"line_number":234,"context_line":"        return service"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_3c66a2bb","line":231,"updated":"2015-02-26 13:26:57.000000000","message":"Is this message detailed enough? The reason is that it\u0027s a new service *and* new services are automatically disabled due to a config option.","commit_id":"253a68bc002586480b992d58f89499fce197654d"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"861817a8245091b604df91c3409d0d93d03f45c5","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        }"},{"line_number":229,"context_line":"        if not CONF.enable_new_services:"},{"line_number":230,"context_line":"            svc_values[\u0027disabled\u0027] \u003d True"},{"line_number":231,"context_line":"            svc_values[\u0027disabled_reason\u0027] \u003d _(\"New service\")"},{"line_number":232,"context_line":"        service \u003d self.conductor_api.service_create(context, svc_values)"},{"line_number":233,"context_line":"        self.service_id \u003d service[\u0027id\u0027]"},{"line_number":234,"context_line":"        return service"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_a2a17297","line":231,"in_reply_to":"ba7be1f8_3c66a2bb","updated":"2015-02-26 21:48:08.000000000","message":"Agreed.\nUsing what @Matthew suggested how about:\n\"New service disabled due to config option\"","commit_id":"253a68bc002586480b992d58f89499fce197654d"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"e7eb2c04a4a4cbd30bc4c4b8754cbdda62f71afe","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        }"},{"line_number":229,"context_line":"        if not CONF.enable_new_services:"},{"line_number":230,"context_line":"            svc_values[\u0027disabled\u0027] \u003d True"},{"line_number":231,"context_line":"            svc_values[\u0027disabled_reason\u0027] \u003d _(\"New service\")"},{"line_number":232,"context_line":"        service \u003d self.conductor_api.service_create(context, svc_values)"},{"line_number":233,"context_line":"        self.service_id \u003d service[\u0027id\u0027]"},{"line_number":234,"context_line":"        return service"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_2a5bbb54","line":231,"in_reply_to":"ba7be1f8_a2a17297","updated":"2015-03-16 08:04:11.000000000","message":"Works for me.","commit_id":"253a68bc002586480b992d58f89499fce197654d"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"3bd55c1c3082043feec0e1852ae77295b1fc94a3","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        }"},{"line_number":229,"context_line":"        if not CONF.enable_new_services:"},{"line_number":230,"context_line":"            svc_values[\u0027disabled\u0027] \u003d True"},{"line_number":231,"context_line":"            msg \u003d _(\"New service disabled due to config option\")"},{"line_number":232,"context_line":"            svc_values[\u0027disabled_reason\u0027] \u003d msg"},{"line_number":233,"context_line":"        service \u003d self.conductor_api.service_create(context, svc_values)"},{"line_number":234,"context_line":"        self.service_id \u003d service[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"5aa745d1_d4ced482","line":231,"updated":"2015-04-16 08:29:02.000000000","message":"nit: This variable is probably not necessary.","commit_id":"45cd3a294f5375b20c4118867f0869475c661110"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f811ecaeaabb639ed8f3b847607cbcc14f4e515","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        }"},{"line_number":229,"context_line":"        if not CONF.enable_new_services:"},{"line_number":230,"context_line":"            svc_values[\u0027disabled\u0027] \u003d True"},{"line_number":231,"context_line":"            msg \u003d _(\"New service disabled due to config option\")"},{"line_number":232,"context_line":"            svc_values[\u0027disabled_reason\u0027] \u003d msg"},{"line_number":233,"context_line":"        service \u003d self.conductor_api.service_create(context, svc_values)"},{"line_number":234,"context_line":"        self.service_id \u003d service[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"5aa745d1_da9ddb5a","line":231,"in_reply_to":"5aa745d1_d4ced482","updated":"2015-04-16 09:21:12.000000000","message":"We discussed it before and we agreed it was nice.","commit_id":"45cd3a294f5375b20c4118867f0869475c661110"}],"nova/tests/unit/test_service.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"3bd55c1c3082043feec0e1852ae77295b1fc94a3","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        app.stop()"},{"line_number":116,"context_line":"        ref \u003d db.service_get(context.get_admin_context(), app.service_id)"},{"line_number":117,"context_line":"        db.service_destroy(context.get_admin_context(), app.service_id)"},{"line_number":118,"context_line":"        self.assertTrue(ref[\u0027disabled\u0027])"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"class ServiceTestCase(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5aa745d1_14e79ce5","side":"PARENT","line":118,"updated":"2015-04-16 08:29:02.000000000","message":"Please just update this test:\n\n  msg \u003d \u0027New service disabled due to config option\u0027\n  self.assertEqual(msg, ref[\u0027disabled_reason\u0027])","commit_id":"09ec805d4eeb63ce9ab75e138e8352e12613fc62"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"3bd55c1c3082043feec0e1852ae77295b1fc94a3","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        app.stop()"},{"line_number":127,"context_line":"        ref \u003d db.service_get(context.get_admin_context(), app.service_id)"},{"line_number":128,"context_line":"        db.service_destroy(context.get_admin_context(), app.service_id)"},{"line_number":129,"context_line":"        msg \u003d \u0027New service disabled due to config option\u0027"},{"line_number":130,"context_line":"        self.assertEqual(msg, ref[\u0027disabled_reason\u0027])"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5aa745d1_149f9c04","line":129,"updated":"2015-04-16 08:29:02.000000000","message":"It\u0027s not necessary to recreate a new test from scratch here. They are consuming resources since call database.\n\nNote: A work is in review to remove those tests since they do not need to live here https://review.openstack.org/#/c/164168/ You can base your work on top but this is not mandatory, just suggestion.","commit_id":"45cd3a294f5375b20c4118867f0869475c661110"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f811ecaeaabb639ed8f3b847607cbcc14f4e515","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        app.stop()"},{"line_number":127,"context_line":"        ref \u003d db.service_get(context.get_admin_context(), app.service_id)"},{"line_number":128,"context_line":"        db.service_destroy(context.get_admin_context(), app.service_id)"},{"line_number":129,"context_line":"        msg \u003d \u0027New service disabled due to config option\u0027"},{"line_number":130,"context_line":"        self.assertEqual(msg, ref[\u0027disabled_reason\u0027])"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5aa745d1_7ac4873f","line":129,"in_reply_to":"5aa745d1_149f9c04","updated":"2015-04-16 09:21:12.000000000","message":"Well, fair enough but I don\u0027t see the need of rebasing on top of the patch you mentioned","commit_id":"45cd3a294f5375b20c4118867f0869475c661110"}]}
