)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8749,"name":"Evgeniy L","email":"eli@mirantis.com","username":"evgeniyl"},"change_message_id":"16d17a92bfcbbfc0b2ef7d91c6b18345a32d0bc0","unresolved":false,"context_lines":[{"line_number":12,"context_line":" the un-needed code"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ibb5c907fb572ac4445d3e4e09afaab0d8d04ceef"},{"line_number":15,"context_line":"Closes-bug: 1396495"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a890539_f4c872aa","line":15,"updated":"2014-11-27 14:01:16.000000000","message":"The ticket doesn\u0027t have priorities and is not targeted to any release.","commit_id":"54683b2a76cff560b56f9472d201a95494bf3ec1"}],"fuel_plugin_builder/fuel_plugin_builder/actions/build.py":[{"author":{"_account_id":8749,"name":"Evgeniy L","email":"eli@mirantis.com","username":"evgeniyl"},"change_message_id":"0f2c7fd7b1ba0f6f66e39ee56fdb04e109d7ae19","unresolved":false,"context_lines":[{"line_number":26,"context_line":"logger \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class BuildPlugin(BaseAction):"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    # Requirements to run build action"},{"line_number":32,"context_line":"    build_requires \u003d[]"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_71e3b4a4","line":29,"updated":"2014-11-27 14:00:17.000000000","message":"Unit tests are required.","commit_id":"54683b2a76cff560b56f9472d201a95494bf3ec1"},{"author":{"_account_id":8749,"name":"Evgeniy L","email":"eli@mirantis.com","username":"evgeniyl"},"change_message_id":"0f2c7fd7b1ba0f6f66e39ee56fdb04e109d7ae19","unresolved":false,"context_lines":[{"line_number":29,"context_line":"class BuildPlugin(BaseAction):"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    # Requirements to run build action"},{"line_number":32,"context_line":"    build_requires \u003d[]"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    # Requirements to build package repos"},{"line_number":35,"context_line":"    build_repos_requires \u003d [\u0027rpm\u0027, \u0027createrepo\u0027, \u0027dpkg-scanpackages\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_51ab181e","line":32,"updated":"2014-11-27 14:00:17.000000000","message":"Why is it always empty and why is it singletone?\n\nAlso put a space after \u003d","commit_id":"54683b2a76cff560b56f9472d201a95494bf3ec1"},{"author":{"_account_id":12200,"name":"Sebastian Kalinowski","email":"sebastian@kalinowski.eu","username":"prmtl"},"change_message_id":"74734043768c2461638bf2ea8998eb442313a2e4","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        logger.debug(\u0027Start plugin building \"%s\"\u0027, self.plugin_path)"},{"line_number":45,"context_line":"        self.run_pre_build_hook()"},{"line_number":46,"context_line":"        self.check()"},{"line_number":47,"context_line":"        self.build()"},{"line_number":48,"context_line":"        if [ item for item in self.meta[\u0027releases\u0027] if"},{"line_number":49,"context_line":"              item.get(\u0027repository_path\u0027, None)]:"},{"line_number":50,"context_line":"            self._check_requirements(self.build_repos_requires)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_0ee24c01","line":47,"updated":"2014-11-27 12:37:53.000000000","message":"IMHO if I call \u0027check\u0027 or \u0027build\u0027 I would expect that all necessary steps will be executed. So maybe it\u0027s better to add a check for repos there.","commit_id":"54683b2a76cff560b56f9472d201a95494bf3ec1"},{"author":{"_account_id":8749,"name":"Evgeniy L","email":"eli@mirantis.com","username":"evgeniyl"},"change_message_id":"0f2c7fd7b1ba0f6f66e39ee56fdb04e109d7ae19","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        logger.debug(\u0027Start plugin building \"%s\"\u0027, self.plugin_path)"},{"line_number":45,"context_line":"        self.run_pre_build_hook()"},{"line_number":46,"context_line":"        self.check()"},{"line_number":47,"context_line":"        self.build()"},{"line_number":48,"context_line":"        if [ item for item in self.meta[\u0027releases\u0027] if"},{"line_number":49,"context_line":"              item.get(\u0027repository_path\u0027, None)]:"},{"line_number":50,"context_line":"            self._check_requirements(self.build_repos_requires)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_3123ecbf","line":47,"in_reply_to":"5a890539_0ee24c01","updated":"2014-11-27 14:00:17.000000000","message":"Agree that it\u0027s not \"build\" at all, it should be \"prepare_for_build\" or \"prepare_build_dir\"","commit_id":"54683b2a76cff560b56f9472d201a95494bf3ec1"},{"author":{"_account_id":8749,"name":"Evgeniy L","email":"eli@mirantis.com","username":"evgeniyl"},"change_message_id":"0f2c7fd7b1ba0f6f66e39ee56fdb04e109d7ae19","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.run_pre_build_hook()"},{"line_number":46,"context_line":"        self.check()"},{"line_number":47,"context_line":"        self.build()"},{"line_number":48,"context_line":"        if [ item for item in self.meta[\u0027releases\u0027] if"},{"line_number":49,"context_line":"              item.get(\u0027repository_path\u0027, None)]:"},{"line_number":50,"context_line":"            self._check_requirements(self.build_repos_requires)"},{"line_number":51,"context_line":"            self.build_repos()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_d14d489b","line":48,"updated":"2014-11-27 14:00:17.000000000","message":"Extract all this logic in separate method, run() should have easy to read and flat structure.","commit_id":"54683b2a76cff560b56f9472d201a95494bf3ec1"},{"author":{"_account_id":8829,"name":"Ryan Moe","email":"rmoe@mirantis.com","username":"rmoe"},"change_message_id":"41c8948c20dffd061c4c8b22eb0676e6b8918cc5","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.run_pre_build_hook()"},{"line_number":46,"context_line":"        self.check()"},{"line_number":47,"context_line":"        self.build()"},{"line_number":48,"context_line":"        if [ item for item in self.meta[\u0027releases\u0027] if"},{"line_number":49,"context_line":"              item.get(\u0027repository_path\u0027, None)]:"},{"line_number":50,"context_line":"            self._check_requirements(self.build_repos_requires)"},{"line_number":51,"context_line":"            self.build_repos()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_4fb9c4ca","line":48,"updated":"2014-11-26 21:20:11.000000000","message":"What about something like:\n\nif any([i.get(\u0027repository_path\u0027) for i in self.meta[\u0027releases\u0027]):","commit_id":"54683b2a76cff560b56f9472d201a95494bf3ec1"},{"author":{"_account_id":12200,"name":"Sebastian Kalinowski","email":"sebastian@kalinowski.eu","username":"prmtl"},"change_message_id":"74734043768c2461638bf2ea8998eb442313a2e4","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.run_pre_build_hook()"},{"line_number":46,"context_line":"        self.check()"},{"line_number":47,"context_line":"        self.build()"},{"line_number":48,"context_line":"        if [ item for item in self.meta[\u0027releases\u0027] if"},{"line_number":49,"context_line":"              item.get(\u0027repository_path\u0027, None)]:"},{"line_number":50,"context_line":"            self._check_requirements(self.build_repos_requires)"},{"line_number":51,"context_line":"            self.build_repos()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_ce292439","line":48,"in_reply_to":"5a890539_4a2a9230","updated":"2014-11-27 12:37:53.000000000","message":"Could be a separate method like \u0027has_plugin_repositories\u0027 or similiar.","commit_id":"54683b2a76cff560b56f9472d201a95494bf3ec1"},{"author":{"_account_id":8797,"name":"Andrew Woodward","email":"xarses@gmail.com","username":"xarses"},"change_message_id":"cedb959222a7074ffc6709dc8c6713b4881e811a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.run_pre_build_hook()"},{"line_number":46,"context_line":"        self.check()"},{"line_number":47,"context_line":"        self.build()"},{"line_number":48,"context_line":"        if [ item for item in self.meta[\u0027releases\u0027] if"},{"line_number":49,"context_line":"              item.get(\u0027repository_path\u0027, None)]:"},{"line_number":50,"context_line":"            self._check_requirements(self.build_repos_requires)"},{"line_number":51,"context_line":"            self.build_repos()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_4a2a9230","line":48,"in_reply_to":"5a890539_4fb9c4ca","updated":"2014-11-26 22:34:50.000000000","message":"Done","commit_id":"54683b2a76cff560b56f9472d201a95494bf3ec1"},{"author":{"_account_id":8749,"name":"Evgeniy L","email":"eli@mirantis.com","username":"evgeniyl"},"change_message_id":"0f2c7fd7b1ba0f6f66e39ee56fdb04e109d7ae19","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        if [ item for item in self.meta[\u0027releases\u0027] if"},{"line_number":49,"context_line":"              item.get(\u0027repository_path\u0027, None)]:"},{"line_number":50,"context_line":"            self._check_requirements(self.build_repos_requires)"},{"line_number":51,"context_line":"            self.build_repos()"},{"line_number":52,"context_line":"        self.make_package()"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def run_pre_build_hook(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_54aa26d3","line":51,"updated":"2014-11-27 14:00:17.000000000","message":"You run repos build for all of the releases even if some of them doesn\u0027t have this repository.","commit_id":"54683b2a76cff560b56f9472d201a95494bf3ec1"},{"author":{"_account_id":8749,"name":"Evgeniy L","email":"eli@mirantis.com","username":"evgeniyl"},"change_message_id":"0f2c7fd7b1ba0f6f66e39ee56fdb04e109d7ae19","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            utils.exec_cmd(\u0027createrepo -o {0} {0}\u0027.format(repo_path))"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def check(self):"},{"line_number":107,"context_line":"        self._check_requirements(self.build_requires)"},{"line_number":108,"context_line":"        self._check_structure()"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def _check_requirements(self, requirements):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_948bae67","line":107,"updated":"2014-11-27 14:00:17.000000000","message":"Could you please clarify what are this changes for? (107-111)","commit_id":"54683b2a76cff560b56f9472d201a95494bf3ec1"}]}
