)]}'
{"my-list":[{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"b989e2e7bbc90f911da89fb0b34a17bc7923b999","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"dfeb2761_21992ac3","updated":"2017-04-05 08:00:59.000000000","message":"what is this file for ?","commit_id":"5cdb255c3c30b8871bf68bcbfdaaf1e31c58bd35"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"2a06b6113f84e064cdcc46738a36fe7f533ca135","unresolved":false,"context_lines":[{"line_number":1,"context_line":"running\u003dOS_STDOUT_CAPTURE\u003d${OS_STDOUT_CAPTURE:-1} \\"},{"line_number":2,"context_line":"OS_STDERR_CAPTURE\u003d${OS_STDERR_CAPTURE:-1} \\"},{"line_number":3,"context_line":"OS_TEST_TIMEOUT\u003d${OS_TEST_TIMEOUT:-120} \\"},{"line_number":4,"context_line":"${PYTHON:-python} -m subunit.run discover $DISCOVER_DIRECTORY --list "}],"source_content_type":"application/octet-stream","patch_set":8,"id":"dfeb2761_818a3667","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":51},"updated":"2017-04-05 07:58:23.000000000","message":"Did you plan to push this file?...","commit_id":"5cdb255c3c30b8871bf68bcbfdaaf1e31c58bd35"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"2a89e62647b680325c88fc94860cd92e1b9fee6e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"running\u003dOS_STDOUT_CAPTURE\u003d${OS_STDOUT_CAPTURE:-1} \\"},{"line_number":2,"context_line":"OS_STDERR_CAPTURE\u003d${OS_STDERR_CAPTURE:-1} \\"},{"line_number":3,"context_line":"OS_TEST_TIMEOUT\u003d${OS_TEST_TIMEOUT:-120} \\"},{"line_number":4,"context_line":"${PYTHON:-python} -m subunit.run discover $DISCOVER_DIRECTORY --list "}],"source_content_type":"application/octet-stream","patch_set":8,"id":"dfeb2761_e19b4270","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":51},"in_reply_to":"dfeb2761_818a3667","updated":"2017-04-05 08:04:43.000000000","message":"eh, sorry, this file is for testing. I\u0027ll delete it.","commit_id":"5cdb255c3c30b8871bf68bcbfdaaf1e31c58bd35"}],"vitrage/api/controllers/v1/resource.py":[{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"0562b23fbb295dc9588f308fdaa14839d18d969d","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    @pecan.expose(\u0027json\u0027)"},{"line_number":26,"context_line":"    def get(self, **kwargs):"},{"line_number":27,"context_line":"        LOG.info(\u0027get list resource with args: %s\u0027, kwargs)"},{"line_number":28,"context_line":"        resource_type \u003d kwargs.get(\"resource_type\", None)"},{"line_number":29,"context_line":"        all_tenants \u003d kwargs.get(\"all_tenants\", False)"},{"line_number":30,"context_line":"        if type(all_tenants) !\u003d bool:"},{"line_number":31,"context_line":"            all_tenants \u003d str(True) \u003d\u003d all_tenants"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_3fa2ac4c","line":28,"range":{"start_line":28,"start_character":35,"end_line":28,"end_character":36},"updated":"2017-04-03 15:30:44.000000000","message":"please use this \u0027 instead of this \"\nRest of the code here looks good.","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"3bea5a518f4d5d5289b71611f6ba84bf0ac3a369","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    @pecan.expose(\u0027json\u0027)"},{"line_number":26,"context_line":"    def get(self, **kwargs):"},{"line_number":27,"context_line":"        LOG.info(\u0027get list resource with args: %s\u0027, kwargs)"},{"line_number":28,"context_line":"        resource_type \u003d kwargs.get(\"resource_type\", None)"},{"line_number":29,"context_line":"        all_tenants \u003d kwargs.get(\"all_tenants\", False)"},{"line_number":30,"context_line":"        if type(all_tenants) !\u003d bool:"},{"line_number":31,"context_line":"            all_tenants \u003d str(True) \u003d\u003d all_tenants"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_4169d71e","line":28,"range":{"start_line":28,"start_character":35,"end_line":28,"end_character":36},"in_reply_to":"dfeb2761_3fa2ac4c","updated":"2017-04-05 02:42:07.000000000","message":"Done","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"dce3c641f34e2c7148d1f0fdcb4cd4b03e28b41e","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            abort(404, str(e))"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @staticmethod"},{"line_number":49,"context_line":"    def get_resources(resource_type\u003dNone, all_tenants\u003dFalse):"},{"line_number":50,"context_line":"        try:"},{"line_number":51,"context_line":"            resources \u003d pecan.request.client.call(pecan.request.context,"},{"line_number":52,"context_line":"                                                  \u0027get_resources\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_bc31450e","line":49,"range":{"start_line":49,"start_character":4,"end_line":49,"end_character":60},"updated":"2017-04-02 06:24:02.000000000","message":"I think you should add an info message here as well","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"3bea5a518f4d5d5289b71611f6ba84bf0ac3a369","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            abort(404, str(e))"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @staticmethod"},{"line_number":49,"context_line":"    def get_resources(resource_type\u003dNone, all_tenants\u003dFalse):"},{"line_number":50,"context_line":"        try:"},{"line_number":51,"context_line":"            resources \u003d pecan.request.client.call(pecan.request.context,"},{"line_number":52,"context_line":"                                                  \u0027get_resources\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_c15e0743","line":49,"range":{"start_line":49,"start_character":4,"end_line":49,"end_character":60},"in_reply_to":"dfeb2761_bc31450e","updated":"2017-04-05 02:42:07.000000000","message":"Done","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"f3bcc11de73d9b478ca79a93848ab5b6f185cdc6","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        bool_from_string(all_tenants)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        if all_tenants:"},{"line_number":34,"context_line":"            enforce(\"list resources:all_tenants\", pecan.request.headers,"},{"line_number":35,"context_line":"                    pecan.request.enforcer, {})"},{"line_number":36,"context_line":"        else:"},{"line_number":37,"context_line":"            enforce(\"list resources\", pecan.request.headers,"}],"source_content_type":"text/x-python","patch_set":7,"id":"dfeb2761_2d06c21e","line":34,"range":{"start_line":34,"start_character":20,"end_line":34,"end_character":21},"updated":"2017-04-05 04:28:17.000000000","message":"just a nit, use single quote and double quote consistently","commit_id":"f7033263b4fa8522b56aee0ad09ff538b31654d6"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"421acfcbd7be5fe31de562f11a36c85070cefb6c","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        bool_from_string(all_tenants)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        if all_tenants:"},{"line_number":34,"context_line":"            enforce(\"list resources:all_tenants\", pecan.request.headers,"},{"line_number":35,"context_line":"                    pecan.request.enforcer, {})"},{"line_number":36,"context_line":"        else:"},{"line_number":37,"context_line":"            enforce(\"list resources\", pecan.request.headers,"}],"source_content_type":"text/x-python","patch_set":7,"id":"dfeb2761_33f504ee","line":34,"range":{"start_line":34,"start_character":20,"end_line":34,"end_character":21},"in_reply_to":"dfeb2761_2d06c21e","updated":"2017-04-05 07:53:39.000000000","message":"Done","commit_id":"f7033263b4fa8522b56aee0ad09ff538b31654d6"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"3685ede68236b5d32221b1371a6221e352aa66b1","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        LOG.info(\u0027received resources list with filter %s\u0027, resource_type)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        try:"},{"line_number":43,"context_line":"            return self.get_resources(resource_type, all_tenants)"},{"line_number":44,"context_line":"        except Exception as e:"},{"line_number":45,"context_line":"            LOG.exception(\u0027failed to get resources %s\u0027, e)"},{"line_number":46,"context_line":"            abort(404, str(e))"}],"source_content_type":"text/x-python","patch_set":14,"id":"bff0334d_9a4148ac","line":43,"range":{"start_line":43,"start_character":24,"end_line":43,"end_character":37},"updated":"2017-04-12 05:38:56.000000000","message":"please call it \"_get_resources\"","commit_id":"3b3d19b2a59eb37612641242fab11d2bb31b7637"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"aa73b790968c362d61f81038aafcc1fe6e7a136c","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        LOG.info(\u0027received resources list with filter %s\u0027, resource_type)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        try:"},{"line_number":43,"context_line":"            return self.get_resources(resource_type, all_tenants)"},{"line_number":44,"context_line":"        except Exception as e:"},{"line_number":45,"context_line":"            LOG.exception(\u0027failed to get resources %s\u0027, e)"},{"line_number":46,"context_line":"            abort(404, str(e))"}],"source_content_type":"text/x-python","patch_set":14,"id":"bff0334d_95dd99e1","line":43,"range":{"start_line":43,"start_character":24,"end_line":43,"end_character":37},"in_reply_to":"bff0334d_9a4148ac","updated":"2017-04-12 07:00:17.000000000","message":"Done","commit_id":"3b3d19b2a59eb37612641242fab11d2bb31b7637"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"3685ede68236b5d32221b1371a6221e352aa66b1","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            abort(404, str(e))"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @staticmethod"},{"line_number":49,"context_line":"    def get_resources(resource_type\u003dNone, all_tenants\u003dFalse):"},{"line_number":50,"context_line":"        LOG.info(\u0027get_resources with type: %s, all_tenants: %s\u0027,"},{"line_number":51,"context_line":"                 resource_type, all_tenants)"},{"line_number":52,"context_line":"        try:"},{"line_number":53,"context_line":"            resources \u003d pecan.request.client.call(pecan.request.context,"},{"line_number":54,"context_line":"                                                  \u0027get_resources\u0027,"},{"line_number":55,"context_line":"                                                  resource_type\u003dresource_type,"},{"line_number":56,"context_line":"                                                  all_tenants\u003dall_tenants)"},{"line_number":57,"context_line":"            LOG.info(resources)"},{"line_number":58,"context_line":"            return resources"},{"line_number":59,"context_line":"        except Exception as e:"},{"line_number":60,"context_line":"            LOG.exception(\u0027failed to get resources %s \u0027, e)"},{"line_number":61,"context_line":"            abort(404, str(e))"}],"source_content_type":"text/x-python","patch_set":14,"id":"bff0334d_fa7e14e2","line":60,"range":{"start_line":49,"start_character":0,"end_line":60,"end_character":59},"updated":"2017-04-12 05:38:56.000000000","message":"Shouldn\u0027t you use here somewhere the \"vitrage_id\" that you pass in the vitrageclient?","commit_id":"3b3d19b2a59eb37612641242fab11d2bb31b7637"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"aa73b790968c362d61f81038aafcc1fe6e7a136c","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            abort(404, str(e))"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @staticmethod"},{"line_number":49,"context_line":"    def get_resources(resource_type\u003dNone, all_tenants\u003dFalse):"},{"line_number":50,"context_line":"        LOG.info(\u0027get_resources with type: %s, all_tenants: %s\u0027,"},{"line_number":51,"context_line":"                 resource_type, all_tenants)"},{"line_number":52,"context_line":"        try:"},{"line_number":53,"context_line":"            resources \u003d pecan.request.client.call(pecan.request.context,"},{"line_number":54,"context_line":"                                                  \u0027get_resources\u0027,"},{"line_number":55,"context_line":"                                                  resource_type\u003dresource_type,"},{"line_number":56,"context_line":"                                                  all_tenants\u003dall_tenants)"},{"line_number":57,"context_line":"            LOG.info(resources)"},{"line_number":58,"context_line":"            return resources"},{"line_number":59,"context_line":"        except Exception as e:"},{"line_number":60,"context_line":"            LOG.exception(\u0027failed to get resources %s \u0027, e)"},{"line_number":61,"context_line":"            abort(404, str(e))"}],"source_content_type":"text/x-python","patch_set":14,"id":"bff0334d_d5cfa126","line":60,"range":{"start_line":49,"start_character":0,"end_line":60,"end_character":59},"in_reply_to":"bff0334d_fa7e14e2","updated":"2017-04-12 07:00:17.000000000","message":"\"vitrage_id\" is used in \"resource show\" API. This is the implement of the \"resource list\" API.","commit_id":"3b3d19b2a59eb37612641242fab11d2bb31b7637"}],"vitrage/api_handler/apis/resource.py":[{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"3685ede68236b5d32221b1371a6221e352aa66b1","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                EntityCategory.RESOURCE,"},{"line_number":44,"context_line":"                project_id,"},{"line_number":45,"context_line":"                is_admin_project)"},{"line_number":46,"context_line":"        query \u003d copy.deepcopy(resource_query)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        if resource_type is not None:"},{"line_number":49,"context_line":"            type_query \u003d {\u0027\u003d\u003d\u0027: {VProps.TYPE: resource_type}}"}],"source_content_type":"text/x-python","patch_set":14,"id":"bff0334d_b571bdaa","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":45},"updated":"2017-04-12 05:38:56.000000000","message":"shouldn\u0027t this line be inside the if statement?","commit_id":"3b3d19b2a59eb37612641242fab11d2bb31b7637"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"aa73b790968c362d61f81038aafcc1fe6e7a136c","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                EntityCategory.RESOURCE,"},{"line_number":44,"context_line":"                project_id,"},{"line_number":45,"context_line":"                is_admin_project)"},{"line_number":46,"context_line":"        query \u003d copy.deepcopy(resource_query)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        if resource_type is not None:"},{"line_number":49,"context_line":"            type_query \u003d {\u0027\u003d\u003d\u0027: {VProps.TYPE: resource_type}}"}],"source_content_type":"text/x-python","patch_set":14,"id":"bff0334d_15986919","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":45},"in_reply_to":"bff0334d_b571bdaa","updated":"2017-04-12 07:00:17.000000000","message":"No, it should be out of the if-else.","commit_id":"3b3d19b2a59eb37612641242fab11d2bb31b7637"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"3685ede68236b5d32221b1371a6221e352aa66b1","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                is_admin_project)"},{"line_number":46,"context_line":"        query \u003d copy.deepcopy(resource_query)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        if resource_type is not None:"},{"line_number":49,"context_line":"            type_query \u003d {\u0027\u003d\u003d\u0027: {VProps.TYPE: resource_type}}"},{"line_number":50,"context_line":"            query[\u0027and\u0027].append(type_query)"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"bff0334d_75ac55ec","line":48,"range":{"start_line":48,"start_character":11,"end_line":48,"end_character":36},"updated":"2017-04-12 05:38:56.000000000","message":"just write \u0027if resource_type\u0027","commit_id":"3b3d19b2a59eb37612641242fab11d2bb31b7637"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"aa73b790968c362d61f81038aafcc1fe6e7a136c","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                is_admin_project)"},{"line_number":46,"context_line":"        query \u003d copy.deepcopy(resource_query)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        if resource_type is not None:"},{"line_number":49,"context_line":"            type_query \u003d {\u0027\u003d\u003d\u0027: {VProps.TYPE: resource_type}}"},{"line_number":50,"context_line":"            query[\u0027and\u0027].append(type_query)"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"bff0334d_f59aa511","line":48,"range":{"start_line":48,"start_character":11,"end_line":48,"end_character":36},"in_reply_to":"bff0334d_75ac55ec","updated":"2017-04-12 07:00:17.000000000","message":"Done","commit_id":"3b3d19b2a59eb37612641242fab11d2bb31b7637"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"3685ede68236b5d32221b1371a6221e352aa66b1","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            type_query \u003d {\u0027\u003d\u003d\u0027: {VProps.TYPE: resource_type}}"},{"line_number":50,"context_line":"            query[\u0027and\u0027].append(type_query)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        return self.entity_graph.get_vertices(query_dict\u003dquery)"}],"source_content_type":"text/x-python","patch_set":14,"id":"bff0334d_959a39b6","line":52,"range":{"start_line":52,"start_character":15,"end_line":52,"end_character":63},"updated":"2017-04-12 05:38:56.000000000","message":"I think you are supposed to return here a json output.\nmeaning use json.dumps or graph.json_output_graph()","commit_id":"3b3d19b2a59eb37612641242fab11d2bb31b7637"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"aa73b790968c362d61f81038aafcc1fe6e7a136c","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            type_query \u003d {\u0027\u003d\u003d\u0027: {VProps.TYPE: resource_type}}"},{"line_number":50,"context_line":"            query[\u0027and\u0027].append(type_query)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        return self.entity_graph.get_vertices(query_dict\u003dquery)"}],"source_content_type":"text/x-python","patch_set":14,"id":"bff0334d_d59d610a","line":52,"range":{"start_line":52,"start_character":15,"end_line":52,"end_character":63},"in_reply_to":"bff0334d_959a39b6","updated":"2017-04-12 07:00:17.000000000","message":"Done","commit_id":"3b3d19b2a59eb37612641242fab11d2bb31b7637"}],"vitrage/api_handler/apis/resources.py":[{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"0562b23fbb295dc9588f308fdaa14839d18d969d","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class ResourceApis(EntityGraphApisBase):"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def __init__(self, entity_graph, conf):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_fa0d7235","line":25,"updated":"2017-04-03 15:30:44.000000000","message":"I think this file should be called \u0027resource.py\u0027 like \u0027alarm.py\u0027","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"3bea5a518f4d5d5289b71611f6ba84bf0ac3a369","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class ResourceApis(EntityGraphApisBase):"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def __init__(self, entity_graph, conf):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_3c54bafe","line":25,"in_reply_to":"dfeb2761_fa0d7235","updated":"2017-04-05 02:42:07.000000000","message":"Done","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"dce3c641f34e2c7148d1f0fdcb4cd4b03e28b41e","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def get_resources(self, ctx, resource_type\u003dNone, all_tenants\u003dFalse):"},{"line_number":33,"context_line":"        LOG.debug(\"ResourceApis get_resources - resource_type: %s,\""},{"line_number":34,"context_line":"                  \"all_tenants\u003d%s\", str(resource_type), all_tenants)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        project_id \u003d ctx.get(self.TENANT_PROPERTY, None)"},{"line_number":37,"context_line":"        is_admin_project \u003d ctx.get(self.IS_ADMIN_PROJECT_PROPERTY, False)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_5c3eb9da","line":34,"range":{"start_line":34,"start_character":30,"end_line":34,"end_character":31},"updated":"2017-04-02 06:24:02.000000000","message":"\u0027:\u0027 instead of \u0027\u003d\u0027 would be nicer, like in resource_type:. I mean it should be \n\nresource_type:\nall_tenants:","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"3bea5a518f4d5d5289b71611f6ba84bf0ac3a369","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def get_resources(self, ctx, resource_type\u003dNone, all_tenants\u003dFalse):"},{"line_number":33,"context_line":"        LOG.debug(\"ResourceApis get_resources - resource_type: %s,\""},{"line_number":34,"context_line":"                  \"all_tenants\u003d%s\", str(resource_type), all_tenants)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        project_id \u003d ctx.get(self.TENANT_PROPERTY, None)"},{"line_number":37,"context_line":"        is_admin_project \u003d ctx.get(self.IS_ADMIN_PROJECT_PROPERTY, False)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_dc426e3e","line":34,"range":{"start_line":34,"start_character":30,"end_line":34,"end_character":31},"in_reply_to":"dfeb2761_5c3eb9da","updated":"2017-04-05 02:42:07.000000000","message":"Done","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"0562b23fbb295dc9588f308fdaa14839d18d969d","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                is_admin_project)"},{"line_number":46,"context_line":"        query \u003d copy.deepcopy(resource_query)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        if resource_type is not None:"},{"line_number":49,"context_line":"            type_query \u003d {\u0027\u003d\u003d\u0027: {VProps.TYPE: resource_type}}"},{"line_number":50,"context_line":"            query[\u0027and\u0027].append(type_query)"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_957639a4","line":48,"range":{"start_line":48,"start_character":11,"end_line":48,"end_character":36},"updated":"2017-04-03 15:30:44.000000000","message":"you can write just resource_type","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"3bea5a518f4d5d5289b71611f6ba84bf0ac3a369","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                is_admin_project)"},{"line_number":46,"context_line":"        query \u003d copy.deepcopy(resource_query)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        if resource_type is not None:"},{"line_number":49,"context_line":"            type_query \u003d {\u0027\u003d\u003d\u0027: {VProps.TYPE: resource_type}}"},{"line_number":50,"context_line":"            query[\u0027and\u0027].append(type_query)"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_fc865213","line":48,"range":{"start_line":48,"start_character":11,"end_line":48,"end_character":36},"in_reply_to":"dfeb2761_957639a4","updated":"2017-04-05 02:42:07.000000000","message":"see http://stackoverflow.com/questions/7816363/if-a-vs-if-a-is-not-none","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"}],"vitrage/tests/functional/api_handler/test_apis.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"dce3c641f34e2c7148d1f0fdcb4cd4b03e28b41e","unresolved":false,"context_lines":[{"line_number":237,"context_line":"            all_tenants\u003dFalse)"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        # Test assertions"},{"line_number":240,"context_line":"        self.assertEqual(0, len(resources))"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    def test_resource_list_with_all_tenants(self):"},{"line_number":243,"context_line":"        # Setup"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_fc2eada3","line":240,"range":{"start_line":240,"start_character":0,"end_line":240,"end_character":43},"updated":"2017-04-02 06:24:02.000000000","message":"Please add, in addition, a test that returns non-zero (for a resource type that exists the graph)","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"3bea5a518f4d5d5289b71611f6ba84bf0ac3a369","unresolved":false,"context_lines":[{"line_number":237,"context_line":"            all_tenants\u003dFalse)"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        # Test assertions"},{"line_number":240,"context_line":"        self.assertEqual(0, len(resources))"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    def test_resource_list_with_all_tenants(self):"},{"line_number":243,"context_line":"        # Setup"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_fcb412d3","line":240,"range":{"start_line":240,"start_character":0,"end_line":240,"end_character":43},"in_reply_to":"dfeb2761_fc2eada3","updated":"2017-04-05 02:42:07.000000000","message":"Done","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"dce3c641f34e2c7148d1f0fdcb4cd4b03e28b41e","unresolved":false,"context_lines":[{"line_number":252,"context_line":"            all_tenants\u003dTrue)"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        # Test assertions"},{"line_number":255,"context_line":"        self.assertEqual(7, len(resources))"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    def _check_projects_entities(self,"},{"line_number":258,"context_line":"                                 alarms,"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_dc29a99b","line":255,"range":{"start_line":255,"start_character":0,"end_line":255,"end_character":43},"updated":"2017-04-02 06:24:02.000000000","message":"Why should we get 7 resources here, while in test_resource_list_with_admin_project() we only get 5?","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"3bea5a518f4d5d5289b71611f6ba84bf0ac3a369","unresolved":false,"context_lines":[{"line_number":252,"context_line":"            all_tenants\u003dTrue)"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        # Test assertions"},{"line_number":255,"context_line":"        self.assertEqual(7, len(resources))"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    def _check_projects_entities(self,"},{"line_number":258,"context_line":"                                 alarms,"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_1cfe966a","line":255,"range":{"start_line":255,"start_character":0,"end_line":255,"end_character":43},"in_reply_to":"dfeb2761_dc29a99b","updated":"2017-04-05 02:42:07.000000000","message":"The param \"all_tenants\" and \"is_admin\" are different. :）","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"fb2068b9062937e191b10356237b872f0334bd0b","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        # Test assertions"},{"line_number":240,"context_line":"        self.assertEqual(0, len(resources))"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    def test_resource_list_with_not_admin_project_and_instance_type(self):"},{"line_number":243,"context_line":"        # Setup"},{"line_number":244,"context_line":"        graph \u003d self._create_graph()"},{"line_number":245,"context_line":"        apis \u003d ResourceApis(graph, None)"}],"source_content_type":"text/x-python","patch_set":7,"id":"dfeb2761_6d296a99","line":242,"range":{"start_line":242,"start_character":8,"end_line":242,"end_character":67},"updated":"2017-04-05 06:29:31.000000000","message":"I would rename this test and the previous one, to something like:\ntest_resource_list_with_not_admin_project_and_existing_type\ntest_resource_list_with_not_admin_project_and_non_existing_type","commit_id":"f7033263b4fa8522b56aee0ad09ff538b31654d6"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"421acfcbd7be5fe31de562f11a36c85070cefb6c","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        # Test assertions"},{"line_number":240,"context_line":"        self.assertEqual(0, len(resources))"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    def test_resource_list_with_not_admin_project_and_instance_type(self):"},{"line_number":243,"context_line":"        # Setup"},{"line_number":244,"context_line":"        graph \u003d self._create_graph()"},{"line_number":245,"context_line":"        apis \u003d ResourceApis(graph, None)"}],"source_content_type":"text/x-python","patch_set":7,"id":"dfeb2761_b3b23448","line":242,"range":{"start_line":242,"start_character":8,"end_line":242,"end_character":67},"in_reply_to":"dfeb2761_6d296a99","updated":"2017-04-05 07:53:39.000000000","message":"Done","commit_id":"f7033263b4fa8522b56aee0ad09ff538b31654d6"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"f3bcc11de73d9b478ca79a93848ab5b6f185cdc6","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        # Action"},{"line_number":249,"context_line":"        resources \u003d apis.get_resources("},{"line_number":250,"context_line":"            ctx,"},{"line_number":251,"context_line":"            resource_type\u003d\"NOVA_INSTANCE_DATASOURCE\","},{"line_number":252,"context_line":"            all_tenants\u003dFalse)"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        # Test assertions"}],"source_content_type":"text/x-python","patch_set":7,"id":"dfeb2761_0d077e1a","line":251,"range":{"start_line":251,"start_character":26,"end_line":251,"end_character":27},"updated":"2017-04-05 04:28:17.000000000","message":"here too","commit_id":"f7033263b4fa8522b56aee0ad09ff538b31654d6"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"421acfcbd7be5fe31de562f11a36c85070cefb6c","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        # Action"},{"line_number":249,"context_line":"        resources \u003d apis.get_resources("},{"line_number":250,"context_line":"            ctx,"},{"line_number":251,"context_line":"            resource_type\u003d\"NOVA_INSTANCE_DATASOURCE\","},{"line_number":252,"context_line":"            all_tenants\u003dFalse)"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        # Test assertions"}],"source_content_type":"text/x-python","patch_set":7,"id":"dfeb2761_537be879","line":251,"range":{"start_line":251,"start_character":26,"end_line":251,"end_character":27},"in_reply_to":"dfeb2761_0d077e1a","updated":"2017-04-05 07:53:39.000000000","message":"Done","commit_id":"f7033263b4fa8522b56aee0ad09ff538b31654d6"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"3685ede68236b5d32221b1371a6221e352aa66b1","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        # Test assertions"},{"line_number":270,"context_line":"        self.assertEqual(7, len(resources))"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    def _check_projects_entities(self,"},{"line_number":273,"context_line":"                                 alarms,"},{"line_number":274,"context_line":"                                 project_id,"}],"source_content_type":"text/x-python","patch_set":14,"id":"bff0334d_1af3f875","line":271,"updated":"2017-04-12 05:38:56.000000000","message":"I think you also need to check here the \"all_tenants\" and not admin user and see that it returns the correct result.","commit_id":"3b3d19b2a59eb37612641242fab11d2bb31b7637"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"aa73b790968c362d61f81038aafcc1fe6e7a136c","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        # Test assertions"},{"line_number":270,"context_line":"        self.assertEqual(7, len(resources))"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    def _check_projects_entities(self,"},{"line_number":273,"context_line":"                                 alarms,"},{"line_number":274,"context_line":"                                 project_id,"}],"source_content_type":"text/x-python","patch_set":14,"id":"bff0334d_90b48781","line":271,"in_reply_to":"bff0334d_1af3f875","updated":"2017-04-12 07:00:17.000000000","message":"The test case of \u0027test_resource_list_with_all_tenants\u0027 above exactly test for the situation.","commit_id":"3b3d19b2a59eb37612641242fab11d2bb31b7637"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"79e9b431aeedf8cc410728246d7c7a6535acc4b4","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        # Test assertions"},{"line_number":270,"context_line":"        self.assertEqual(7, len(resources))"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    def _check_projects_entities(self,"},{"line_number":273,"context_line":"                                 alarms,"},{"line_number":274,"context_line":"                                 project_id,"}],"source_content_type":"text/x-python","patch_set":14,"id":"bff0334d_f92737c6","line":271,"in_reply_to":"bff0334d_90b48781","updated":"2017-04-12 11:15:05.000000000","message":"My bad, I meant that you will add a test that checks all_tenants\u003dTrue","commit_id":"3b3d19b2a59eb37612641242fab11d2bb31b7637"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"fcf55b977d174f95fd4bf0831b2885eaf7347534","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        # Test assertions"},{"line_number":270,"context_line":"        self.assertEqual(7, len(resources))"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    def _check_projects_entities(self,"},{"line_number":273,"context_line":"                                 alarms,"},{"line_number":274,"context_line":"                                 project_id,"}],"source_content_type":"text/x-python","patch_set":14,"id":"9ff52f3f_d37f94a9","line":271,"in_reply_to":"bff0334d_f92737c6","updated":"2017-04-13 01:42:49.000000000","message":"Sorry, also confused. Do you mean \"all_tenants\u003dTrue\" \u0026 admin user?\nPS: I\u0027m a little confused about the \"is_amdin\" in ctx. From the hook(https://github.com/openstack/vitrage/blob/master/vitrage/api/hooks.py#L73), \"is_admin\" means admin user, but we define the macro as \"admin project\"(https://github.com/openstack/vitrage/blob/master/vitrage/api_handler/apis/base.py#L86). \nBut in my opinion, i think it should be the admin role. Correct me if i\u0027m wrong :).","commit_id":"3b3d19b2a59eb37612641242fab11d2bb31b7637"}],"vitrage_tempest_tests/tests/api/resources/test_resources.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"dce3c641f34e2c7148d1f0fdcb4cd4b03e28b41e","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            self._delete_instances()"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @utils.tempest_logger"},{"line_number":53,"context_line":"    def test_defaultS_resource_list(self):"},{"line_number":54,"context_line":"        \"\"\"resource list with default query\"\"\""},{"line_number":55,"context_line":"        try:"},{"line_number":56,"context_line":"            instances \u003d self._create_instances(num_instances\u003d1)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_bc1a657a","line":53,"range":{"start_line":53,"start_character":20,"end_line":53,"end_character":21},"updated":"2017-04-02 06:24:02.000000000","message":"Remove the S (or change it to lower case)","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"3bea5a518f4d5d5289b71611f6ba84bf0ac3a369","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            self._delete_instances()"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @utils.tempest_logger"},{"line_number":53,"context_line":"    def test_defaultS_resource_list(self):"},{"line_number":54,"context_line":"        \"\"\"resource list with default query\"\"\""},{"line_number":55,"context_line":"        try:"},{"line_number":56,"context_line":"            instances \u003d self._create_instances(num_instances\u003d1)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_7c71220c","line":53,"range":{"start_line":53,"start_character":20,"end_line":53,"end_character":21},"in_reply_to":"dfeb2761_bc1a657a","updated":"2017-04-05 02:42:07.000000000","message":"Done","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"dce3c641f34e2c7148d1f0fdcb4cd4b03e28b41e","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            self.assertNotEqual(len(instances), 0,"},{"line_number":58,"context_line":"                                \u0027The instances list is empty\u0027)"},{"line_number":59,"context_line":"            resources \u003d self.vitrage_client.resource.list()"},{"line_number":60,"context_line":"            self.assertEqual(4, len(resources))"},{"line_number":61,"context_line":"        except Exception as e:"},{"line_number":62,"context_line":"            LOG.exception(e)"},{"line_number":63,"context_line":"            traceback.print_exc()"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_3c0e553b","line":60,"range":{"start_line":60,"start_character":12,"end_line":60,"end_character":47},"updated":"2017-04-02 06:24:02.000000000","message":"Please explain why there should be 4 (I assume it includes the cluster, zone and host?)","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"3bea5a518f4d5d5289b71611f6ba84bf0ac3a369","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            self.assertNotEqual(len(instances), 0,"},{"line_number":58,"context_line":"                                \u0027The instances list is empty\u0027)"},{"line_number":59,"context_line":"            resources \u003d self.vitrage_client.resource.list()"},{"line_number":60,"context_line":"            self.assertEqual(4, len(resources))"},{"line_number":61,"context_line":"        except Exception as e:"},{"line_number":62,"context_line":"            LOG.exception(e)"},{"line_number":63,"context_line":"            traceback.print_exc()"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_bc544a54","line":60,"range":{"start_line":60,"start_character":12,"end_line":60,"end_character":47},"in_reply_to":"dfeb2761_3c0e553b","updated":"2017-04-05 02:42:07.000000000","message":"cluster, zone, host and one instance.","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"27d326b87f487c3c20b56d08115d2b4e1d526f64","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            self.assertNotEqual(len(instances), 0,"},{"line_number":58,"context_line":"                                \u0027The instances list is empty\u0027)"},{"line_number":59,"context_line":"            resources \u003d self.vitrage_client.resource.list()"},{"line_number":60,"context_line":"            self.assertEqual(4, len(resources))"},{"line_number":61,"context_line":"        except Exception as e:"},{"line_number":62,"context_line":"            LOG.exception(e)"},{"line_number":63,"context_line":"            traceback.print_exc()"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_3043ba15","line":60,"range":{"start_line":60,"start_character":12,"end_line":60,"end_character":47},"in_reply_to":"dfeb2761_bc544a54","updated":"2017-04-05 06:30:57.000000000","message":"I meant please explain in a comment :-)","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"dce3c641f34e2c7148d1f0fdcb4cd4b03e28b41e","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            resources \u003d self.vitrage_client.resource.list("},{"line_number":92,"context_line":"                resource_type\u003dNOVA_INSTANCE_DATASOURCE,"},{"line_number":93,"context_line":"                all_tenants\u003dFalse)"},{"line_number":94,"context_line":"            self.assertEqual(1, len(resources))"},{"line_number":95,"context_line":"        except Exception as e:"},{"line_number":96,"context_line":"            LOG.exception(e)"},{"line_number":97,"context_line":"            traceback.print_exc()"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_1c095130","line":94,"range":{"start_line":94,"start_character":0,"end_line":94,"end_character":47},"updated":"2017-04-02 06:24:02.000000000","message":"Please add another test, where the result is 0 (e.g. for Cinder volumes). Or simply call the same query before and after adding an instance.","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"3bea5a518f4d5d5289b71611f6ba84bf0ac3a369","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            resources \u003d self.vitrage_client.resource.list("},{"line_number":92,"context_line":"                resource_type\u003dNOVA_INSTANCE_DATASOURCE,"},{"line_number":93,"context_line":"                all_tenants\u003dFalse)"},{"line_number":94,"context_line":"            self.assertEqual(1, len(resources))"},{"line_number":95,"context_line":"        except Exception as e:"},{"line_number":96,"context_line":"            LOG.exception(e)"},{"line_number":97,"context_line":"            traceback.print_exc()"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_5cc09ee1","line":94,"range":{"start_line":94,"start_character":0,"end_line":94,"end_character":47},"in_reply_to":"dfeb2761_1c095130","updated":"2017-04-05 02:42:07.000000000","message":"Done","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"dce3c641f34e2c7148d1f0fdcb4cd4b03e28b41e","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            api_resources,"},{"line_number":113,"context_line":"            key\u003dlambda resource: resource(\"vitrage_id\"))"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        self.assertNotEqual(len(sorted_cli_resources),"},{"line_number":116,"context_line":"                            len(sorted_api_resources))"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        properties \u003d (\u0027vitrage_id\u0027, \u0027type\u0027, \u0027name\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_bffff7ff","line":115,"range":{"start_line":115,"start_character":13,"end_line":115,"end_character":27},"updated":"2017-04-02 06:24:02.000000000","message":"You mean assertEqual, right?","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"3bea5a518f4d5d5289b71611f6ba84bf0ac3a369","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            api_resources,"},{"line_number":113,"context_line":"            key\u003dlambda resource: resource(\"vitrage_id\"))"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        self.assertNotEqual(len(sorted_cli_resources),"},{"line_number":116,"context_line":"                            len(sorted_api_resources))"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        properties \u003d (\u0027vitrage_id\u0027, \u0027type\u0027, \u0027name\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_9ca98625","line":115,"range":{"start_line":115,"start_character":13,"end_line":115,"end_character":27},"in_reply_to":"dfeb2761_bffff7ff","updated":"2017-04-05 02:42:07.000000000","message":"Done","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"dce3c641f34e2c7148d1f0fdcb4cd4b03e28b41e","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                      \u0027id\u0027, \u0027state\u0027, \u0027project_id\u0027)"},{"line_number":120,"context_line":"        for index in range(len(sorted_cli_resources)):"},{"line_number":121,"context_line":"            for i in range(len(properties)):"},{"line_number":122,"context_line":"                self.assertNotEqual("},{"line_number":123,"context_line":"                    sorted_cli_resources[index].get(properties[i]),"},{"line_number":124,"context_line":"                    sorted_api_resources[index].get(properties[i], None))"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_9f02f308","line":122,"range":{"start_line":122,"start_character":21,"end_line":122,"end_character":35},"updated":"2017-04-02 06:24:02.000000000","message":"assertEqual","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"3bea5a518f4d5d5289b71611f6ba84bf0ac3a369","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                      \u0027id\u0027, \u0027state\u0027, \u0027project_id\u0027)"},{"line_number":120,"context_line":"        for index in range(len(sorted_cli_resources)):"},{"line_number":121,"context_line":"            for i in range(len(properties)):"},{"line_number":122,"context_line":"                self.assertNotEqual("},{"line_number":123,"context_line":"                    sorted_cli_resources[index].get(properties[i]),"},{"line_number":124,"context_line":"                    sorted_api_resources[index].get(properties[i], None))"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_5c653e1d","line":122,"range":{"start_line":122,"start_character":21,"end_line":122,"end_character":35},"in_reply_to":"dfeb2761_9f02f308","updated":"2017-04-05 02:42:07.000000000","message":"Done","commit_id":"91bd818f2490bd6f95b31c23985dadcd53ae1d13"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"fb2068b9062937e191b10356237b872f0334bd0b","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            self._delete_instances()"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @utils.tempest_logger"},{"line_number":86,"context_line":"    def test_resource_list_with_specify_exit_type(self):"},{"line_number":87,"context_line":"        \"\"\"resource list with default query\"\"\""},{"line_number":88,"context_line":"        try:"},{"line_number":89,"context_line":"            instances \u003d self._create_instances(num_instances\u003d1)"}],"source_content_type":"text/x-python","patch_set":7,"id":"dfeb2761_305cdaeb","line":86,"range":{"start_line":86,"start_character":40,"end_line":86,"end_character":44},"updated":"2017-04-05 06:29:31.000000000","message":"exist (or existing)","commit_id":"f7033263b4fa8522b56aee0ad09ff538b31654d6"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"421acfcbd7be5fe31de562f11a36c85070cefb6c","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            self._delete_instances()"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @utils.tempest_logger"},{"line_number":86,"context_line":"    def test_resource_list_with_specify_exit_type(self):"},{"line_number":87,"context_line":"        \"\"\"resource list with default query\"\"\""},{"line_number":88,"context_line":"        try:"},{"line_number":89,"context_line":"            instances \u003d self._create_instances(num_instances\u003d1)"}],"source_content_type":"text/x-python","patch_set":7,"id":"dfeb2761_f3955c88","line":86,"range":{"start_line":86,"start_character":40,"end_line":86,"end_character":44},"in_reply_to":"dfeb2761_305cdaeb","updated":"2017-04-05 07:53:39.000000000","message":"Done","commit_id":"f7033263b4fa8522b56aee0ad09ff538b31654d6"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"b989e2e7bbc90f911da89fb0b34a17bc7923b999","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        properties \u003d (\u0027vitrage_id\u0027, \u0027type\u0027, \u0027name\u0027,"},{"line_number":145,"context_line":"                      \u0027id\u0027, \u0027state\u0027, \u0027project_id\u0027)"},{"line_number":146,"context_line":"        for index in range(len(sorted_cli_resources)):"},{"line_number":147,"context_line":"            for i in range(len(properties)):"},{"line_number":148,"context_line":"                self.assertEqual("},{"line_number":149,"context_line":"                    sorted_cli_resources[index].get(properties[i]),"},{"line_number":150,"context_line":"                    sorted_api_resources[index].get(properties[i], None))"}],"source_content_type":"text/x-python","patch_set":8,"id":"dfeb2761_81d8f67a","line":147,"range":{"start_line":146,"start_character":7,"end_line":147,"end_character":44},"updated":"2017-04-05 08:00:59.000000000","message":"you can use enumerate here","commit_id":"5cdb255c3c30b8871bf68bcbfdaaf1e31c58bd35"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"ed25ab0a0be9ab12c7efeb68a2dd7b64475a9e57","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        properties \u003d (\u0027vitrage_id\u0027, \u0027type\u0027, \u0027name\u0027,"},{"line_number":145,"context_line":"                      \u0027id\u0027, \u0027state\u0027, \u0027project_id\u0027)"},{"line_number":146,"context_line":"        for index in range(len(sorted_cli_resources)):"},{"line_number":147,"context_line":"            for item in properties:"},{"line_number":148,"context_line":"                self.assertEqual("},{"line_number":149,"context_line":"                    sorted_cli_resources[index].get(item),"}],"source_content_type":"text/x-python","patch_set":9,"id":"dfeb2761_827fd4de","line":146,"range":{"start_line":146,"start_character":8,"end_line":146,"end_character":54},"updated":"2017-04-05 09:27:13.000000000","message":"this is a more pythonic way\n\nfor index,_ in enumarate(sorted_cli_resources):","commit_id":"cc66006456bdef3a5a7a4a98aa50798ffb726d15"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"ca4bdd075b2bf247f0352f9ef2f33b0b5b3ff4d2","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        properties \u003d (\u0027vitrage_id\u0027, \u0027type\u0027, \u0027name\u0027,"},{"line_number":145,"context_line":"                      \u0027id\u0027, \u0027state\u0027, \u0027project_id\u0027)"},{"line_number":146,"context_line":"        for index in range(len(sorted_cli_resources)):"},{"line_number":147,"context_line":"            for item in properties:"},{"line_number":148,"context_line":"                self.assertEqual("},{"line_number":149,"context_line":"                    sorted_cli_resources[index].get(item),"}],"source_content_type":"text/x-python","patch_set":9,"id":"dfeb2761_e0957388","line":146,"range":{"start_line":146,"start_character":8,"end_line":146,"end_character":54},"in_reply_to":"dfeb2761_769c95bf","updated":"2017-04-05 11:35:06.000000000","message":"Ok, i\u0027ll fix it.Thanks.","commit_id":"cc66006456bdef3a5a7a4a98aa50798ffb726d15"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"b6d7cc7f8ab531e829e22fa7b9d0521c8ceb70bb","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        properties \u003d (\u0027vitrage_id\u0027, \u0027type\u0027, \u0027name\u0027,"},{"line_number":145,"context_line":"                      \u0027id\u0027, \u0027state\u0027, \u0027project_id\u0027)"},{"line_number":146,"context_line":"        for index in range(len(sorted_cli_resources)):"},{"line_number":147,"context_line":"            for item in properties:"},{"line_number":148,"context_line":"                self.assertEqual("},{"line_number":149,"context_line":"                    sorted_cli_resources[index].get(item),"}],"source_content_type":"text/x-python","patch_set":9,"id":"dfeb2761_769c95bf","line":146,"range":{"start_line":146,"start_character":8,"end_line":146,"end_character":54},"in_reply_to":"dfeb2761_827fd4de","updated":"2017-04-05 09:34:19.000000000","message":"or a better way\nfor index,resource in enumarate(sorted_cli_resources):\n\nand then use \nresource instead of sorted_cli_resources[index]\n\nyou should also consider using zip function which allows you to iterate on multiple lists and then you don\u0027t need the index","commit_id":"cc66006456bdef3a5a7a4a98aa50798ffb726d15"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"ed25ab0a0be9ab12c7efeb68a2dd7b64475a9e57","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            for item in properties:"},{"line_number":148,"context_line":"                self.assertEqual("},{"line_number":149,"context_line":"                    sorted_cli_resources[index].get(item),"},{"line_number":150,"context_line":"                    sorted_api_resources[index].get(item, None))"}],"source_content_type":"text/x-python","patch_set":9,"id":"dfeb2761_82f6b462","line":150,"range":{"start_line":150,"start_character":48,"end_line":150,"end_character":63},"updated":"2017-04-05 09:27:13.000000000","message":"isn\u0027t the default to return a non existence key is None when you do get ?","commit_id":"cc66006456bdef3a5a7a4a98aa50798ffb726d15"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"ca4bdd075b2bf247f0352f9ef2f33b0b5b3ff4d2","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            for item in properties:"},{"line_number":148,"context_line":"                self.assertEqual("},{"line_number":149,"context_line":"                    sorted_cli_resources[index].get(item),"},{"line_number":150,"context_line":"                    sorted_api_resources[index].get(item, None))"}],"source_content_type":"text/x-python","patch_set":9,"id":"dfeb2761_d63ec1b6","line":150,"range":{"start_line":150,"start_character":48,"end_line":150,"end_character":63},"in_reply_to":"dfeb2761_82f6b462","updated":"2017-04-05 11:35:06.000000000","message":"These is the problem i want to discuess. In vitrageclient i want to show the properties of (\u0027vitrage_id\u0027, \u0027type\u0027, \u0027name\u0027, \u0027id\u0027, \u0027state\u0027, \u0027project_id\u0027). But cluster, zone and nova.host don\u0027t have \"project_id\" property, neutron.port don\u0027t have \"name\" property.\nIt seems that using (\u0027vitrage_id\u0027, \u0027type\u0027, \u0027id\u0027, \u0027state\u0027) as the metadata is better, so here we don\u0027t need to return None because all the  keys are existed.  But i think show the \"project_id\" of resources is nicer when we query with \"all_tenants\". So what do you think, using what metadatas are better?","commit_id":"cc66006456bdef3a5a7a4a98aa50798ffb726d15"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"4869b71d18919661eeda3733b5126303b1a77352","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            for item in properties:"},{"line_number":148,"context_line":"                self.assertEqual("},{"line_number":149,"context_line":"                    sorted_cli_resources[index].get(item),"},{"line_number":150,"context_line":"                    sorted_api_resources[index].get(item, None))"}],"source_content_type":"text/x-python","patch_set":9,"id":"bff0334d_520a4726","line":150,"range":{"start_line":150,"start_character":48,"end_line":150,"end_character":63},"in_reply_to":"dfeb2761_d63ec1b6","updated":"2017-04-06 00:29:33.000000000","message":"I would suggest listing different resources in different tables.\n\nIf we want to keep a single table, then keep only the mandatory columns for all resources.","commit_id":"cc66006456bdef3a5a7a4a98aa50798ffb726d15"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"3685ede68236b5d32221b1371a6221e352aa66b1","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            raise"},{"line_number":90,"context_line":"        finally:"},{"line_number":91,"context_line":"            self._delete_instances()"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    @utils.tempest_logger"},{"line_number":94,"context_line":"    def test_resource_list_with_existing_type(self):"},{"line_number":95,"context_line":"        \"\"\"resource list with existing type"}],"source_content_type":"text/x-python","patch_set":14,"id":"bff0334d_1a66582b","line":92,"updated":"2017-04-12 05:38:56.000000000","message":"Also here, please add a test that checks when a user uses \u0027all_tenants\u0027 and he isn\u0027t the admin that it returns the correct result.","commit_id":"3b3d19b2a59eb37612641242fab11d2bb31b7637"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"aa73b790968c362d61f81038aafcc1fe6e7a136c","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            raise"},{"line_number":90,"context_line":"        finally:"},{"line_number":91,"context_line":"            self._delete_instances()"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    @utils.tempest_logger"},{"line_number":94,"context_line":"    def test_resource_list_with_existing_type(self):"},{"line_number":95,"context_line":"        \"\"\"resource list with existing type"}],"source_content_type":"text/x-python","patch_set":14,"id":"bff0334d_ab584030","line":92,"in_reply_to":"bff0334d_1a66582b","updated":"2017-04-12 07:00:17.000000000","message":"Is there any no admin user in the tempest test env? \u0027demo\u0027 user?","commit_id":"3b3d19b2a59eb37612641242fab11d2bb31b7637"}]}
