)]}'
{"shade/openstackcloud.py":[{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"5db19424ef8de7e6b97a281726139bf7aab76102","unresolved":false,"context_lines":[{"line_number":830,"context_line":""},{"line_number":831,"context_line":"        pushdown, filters \u003d _normalize._split_filters(**kwargs)"},{"line_number":832,"context_line":""},{"line_number":833,"context_line":"        try:"},{"line_number":834,"context_line":"            if pushdown:"},{"line_number":835,"context_line":"                query_str \u003d \u0027\u0026\u0027.join([k + \u0027\u003d\u0027 + v for k,v in pushdown.items()])"},{"line_number":836,"context_line":"                query_str \u003d \u0027?\u0027 + query_str"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_1505c7c2","line":833,"updated":"2017-06-12 12:43:28.000000000","message":"You don\u0027t need to do the query string generation like this - you can just do:\n\n  self._identity_client.get(\u0027/projects\u0027, params\u003dpushdown)","commit_id":"fed53a3a9add815519c0228553ea7c750f27be9c"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"60212d4ccfd265f59472ddb0e1fdb8250cb552be","unresolved":false,"context_lines":[{"line_number":830,"context_line":""},{"line_number":831,"context_line":"        pushdown, filters \u003d _normalize._split_filters(**kwargs)"},{"line_number":832,"context_line":""},{"line_number":833,"context_line":"        try:"},{"line_number":834,"context_line":"            if pushdown:"},{"line_number":835,"context_line":"                query_str \u003d \u0027\u0026\u0027.join([k + \u0027\u003d\u0027 + v for k,v in pushdown.items()])"},{"line_number":836,"context_line":"                query_str \u003d \u0027?\u0027 + query_str"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_32d8cb51","line":833,"in_reply_to":"7f231b9d_1505c7c2","updated":"2017-06-12 18:35:20.000000000","message":"Done","commit_id":"fed53a3a9add815519c0228553ea7c750f27be9c"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"3ee20bd963f09bafec07c0181a9a3c2acd4f5ec1","unresolved":false,"context_lines":[{"line_number":885,"context_line":"                raise OpenStackCloudException("},{"line_number":886,"context_line":"                    \"Project %s not found.\" % name_or_id)"},{"line_number":887,"context_line":""},{"line_number":888,"context_line":"            project_ref \u003d {\u0027description\u0027: description, \u0027enabled\u0027: enabled}"},{"line_number":889,"context_line":"            # NOTE(samueldmq): Current code only allow us to update description"},{"line_number":890,"context_line":"            # or enabled fields. It is also taking enable\u003dTrue as default,"},{"line_number":891,"context_line":"            # meaning it will enable a project if you try to simply update its"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_35ffa3ab","line":888,"updated":"2017-06-12 12:44:09.000000000","message":"We might want to take description out for the same reason (if it is None). How do we figure out the user was not setting description\u003dNone explicitly?","commit_id":"fed53a3a9add815519c0228553ea7c750f27be9c"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"fde1d8361454ae2845960d39187dff21a1a102ab","unresolved":false,"context_lines":[{"line_number":885,"context_line":"                raise OpenStackCloudException("},{"line_number":886,"context_line":"                    \"Project %s not found.\" % name_or_id)"},{"line_number":887,"context_line":""},{"line_number":888,"context_line":"            project_ref \u003d {\u0027description\u0027: description, \u0027enabled\u0027: enabled}"},{"line_number":889,"context_line":"            # NOTE(samueldmq): Current code only allow us to update description"},{"line_number":890,"context_line":"            # or enabled fields. It is also taking enable\u003dTrue as default,"},{"line_number":891,"context_line":"            # meaning it will enable a project if you try to simply update its"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_75ccfb88","line":888,"in_reply_to":"7f231b9d_35ffa3ab","updated":"2017-06-12 12:49:35.000000000","message":"Look at the \"valid_kwargs\" decorator use on neutron methods. We can use that here, and description will not be in the kwargs.","commit_id":"fed53a3a9add815519c0228553ea7c750f27be9c"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"60212d4ccfd265f59472ddb0e1fdb8250cb552be","unresolved":false,"context_lines":[{"line_number":885,"context_line":"                raise OpenStackCloudException("},{"line_number":886,"context_line":"                    \"Project %s not found.\" % name_or_id)"},{"line_number":887,"context_line":""},{"line_number":888,"context_line":"            project_ref \u003d {\u0027description\u0027: description, \u0027enabled\u0027: enabled}"},{"line_number":889,"context_line":"            # NOTE(samueldmq): Current code only allow us to update description"},{"line_number":890,"context_line":"            # or enabled fields. It is also taking enable\u003dTrue as default,"},{"line_number":891,"context_line":"            # meaning it will enable a project if you try to simply update its"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_454c9f9d","line":888,"in_reply_to":"7f231b9d_75ccfb88","updated":"2017-06-12 18:35:20.000000000","message":"description *will* be in kwargs, correct? meaning they will be not passed if not provided by the user","commit_id":"fed53a3a9add815519c0228553ea7c750f27be9c"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"fde1d8361454ae2845960d39187dff21a1a102ab","unresolved":false,"context_lines":[{"line_number":897,"context_line":"                # NOTE(samueldmq): I do not see this API exposed in keystone"},{"line_number":898,"context_line":"                # Is it possible at all to update tenants? Double-check"},{"line_number":899,"context_line":"                # https://github.com/openstack/keystone/blob/1000501/keystone/resource/routers.py#L24-L35"},{"line_number":900,"context_line":"                project \u003d self._identity_client.patch(\u0027/tenants/\u0027 + proj[\u0027id\u0027],"},{"line_number":901,"context_line":"                                                      data\u003dproject_ref)"},{"line_number":902,"context_line":"            project \u003d self._normalize_project(project)"},{"line_number":903,"context_line":"        self.list_projects.invalidate(self)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_f58ecb2c","line":900,"updated":"2017-06-12 12:49:35.000000000","message":"It\u0027s possible we just need to throw an error if someone tries to update a tenant in v2","commit_id":"fed53a3a9add815519c0228553ea7c750f27be9c"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"60212d4ccfd265f59472ddb0e1fdb8250cb552be","unresolved":false,"context_lines":[{"line_number":897,"context_line":"                # NOTE(samueldmq): I do not see this API exposed in keystone"},{"line_number":898,"context_line":"                # Is it possible at all to update tenants? Double-check"},{"line_number":899,"context_line":"                # https://github.com/openstack/keystone/blob/1000501/keystone/resource/routers.py#L24-L35"},{"line_number":900,"context_line":"                project \u003d self._identity_client.patch(\u0027/tenants/\u0027 + proj[\u0027id\u0027],"},{"line_number":901,"context_line":"                                                      data\u003dproject_ref)"},{"line_number":902,"context_line":"            project \u003d self._normalize_project(project)"},{"line_number":903,"context_line":"        self.list_projects.invalidate(self)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_0857de04","line":900,"in_reply_to":"7f231b9d_f58ecb2c","updated":"2017-06-12 18:35:20.000000000","message":"Yes, I just wanna see what the -legacy gate says first","commit_id":"fed53a3a9add815519c0228553ea7c750f27be9c"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"fde1d8361454ae2845960d39187dff21a1a102ab","unresolved":false,"context_lines":[{"line_number":918,"context_line":"            else:"},{"line_number":919,"context_line":"                # NOTE(samueldmq): I do not see this API exposed in keystone"},{"line_number":920,"context_line":"                # Is it possible at all to create tenants? Double-check"},{"line_number":921,"context_line":"                # https://github.com/openstack/keystone/blob/1000501/keystone/resource/routers.py#L24-L35"},{"line_number":922,"context_line":"                project \u003d self._identity_client.patch(\u0027/tenants/\u0027, json\u003dproject_ref)"},{"line_number":923,"context_line":"            project \u003d self._normalize_project(project)"},{"line_number":924,"context_line":"        self.list_projects.invalidate(self)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_f5936b4e","line":921,"updated":"2017-06-12 12:49:35.000000000","message":"Well, it should be post not patch, right?\n\nBut also WEIRD","commit_id":"fed53a3a9add815519c0228553ea7c750f27be9c"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"60212d4ccfd265f59472ddb0e1fdb8250cb552be","unresolved":false,"context_lines":[{"line_number":918,"context_line":"            else:"},{"line_number":919,"context_line":"                # NOTE(samueldmq): I do not see this API exposed in keystone"},{"line_number":920,"context_line":"                # Is it possible at all to create tenants? Double-check"},{"line_number":921,"context_line":"                # https://github.com/openstack/keystone/blob/1000501/keystone/resource/routers.py#L24-L35"},{"line_number":922,"context_line":"                project \u003d self._identity_client.patch(\u0027/tenants/\u0027, json\u003dproject_ref)"},{"line_number":923,"context_line":"            project \u003d self._normalize_project(project)"},{"line_number":924,"context_line":"        self.list_projects.invalidate(self)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_e85b822b","line":921,"in_reply_to":"7f231b9d_f5936b4e","updated":"2017-06-12 18:35:20.000000000","message":"Yes","commit_id":"fed53a3a9add815519c0228553ea7c750f27be9c"}],"shade/tests/unit/test_project.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"0e445b7c3ffe44dfb2110fc907d3ce6f6df9adab","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        self.assertThat("},{"line_number":208,"context_line":"            projects[0].id, matchers.Equals(project_data.project_id))"},{"line_number":209,"context_line":"        for c in self.calls():"},{"line_number":210,"context_line":"            print(c)"},{"line_number":211,"context_line":"        self.assert_calls()"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    def test_list_projects_v3_kwarg(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f231b9d_1e6838f3","line":210,"updated":"2017-06-12 20:00:51.000000000","message":"lol","commit_id":"2183e22cbd12f8d49fba7c2e86136da6ff6e130a"}]}
