)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"5551025b4deeef555779e47e929f26d92e46161f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Ekaterina Chernova \u003cefedorova@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-07-06 17:35:22 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add spec, describing class loader improvement"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change is a part of new Murano testing framework."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_a772d7e1","line":7,"updated":"2015-07-07 10:58:53.000000000","message":"Usually in specs title of the commit message is the title of the spec and the body is the first block of the spec","commit_id":"ccc752ea6206a0900ad0576d7e193319966b4bae"}],"specs/liberty/new-engine-entry-point.rst":[{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"5551025b4deeef555779e47e929f26d92e46161f","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Rework package class loader logic"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/murano/+spec/new-engine-entry-point"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec describes rework of murano package class loader as part of the"},{"line_number":14,"context_line":"another blueprint:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba3cc151_271b2782","line":11,"updated":"2015-07-07 10:58:53.000000000","message":"The blueprint name and spec\u0027s filename do not match the spec contents: different class loader has nothing to do with the new engine entry point.","commit_id":"ccc752ea6206a0900ad0576d7e193319966b4bae"},{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"5551025b4deeef555779e47e929f26d92e46161f","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Class loader should accept packages not only from the external repository, but"},{"line_number":24,"context_line":"from local directory. It\u0027s needed not only for testing new packages, but for"},{"line_number":25,"context_line":"accepting packages on-the-fly. Suppose you want to use improved package and"},{"line_number":26,"context_line":"you can enable loading packages from local directory, put desired package to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba3cc151_aa0e1e30","line":23,"updated":"2015-07-07 10:58:53.000000000","message":"not \"accept\" - class loader should be able to LOAD packages","commit_id":"ccc752ea6206a0900ad0576d7e193319966b4bae"},{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"5551025b4deeef555779e47e929f26d92e46161f","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Class loader should accept packages not only from the external repository, but"},{"line_number":24,"context_line":"from local directory. It\u0027s needed not only for testing new packages, but for"},{"line_number":25,"context_line":"accepting packages on-the-fly. Suppose you want to use improved package and"},{"line_number":26,"context_line":"you can enable loading packages from local directory, put desired package to"},{"line_number":27,"context_line":"that directory and it will be looked up in the provided directory."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba3cc151_6a5d7614","line":25,"updated":"2015-07-07 10:58:53.000000000","message":"Addressing mysterious \"you\" is not a good practice in the spec which should contain more formal, documental text.\nTry rephrasing to something like \"During the development phase the package gets frequently updated, and the need to upload it to the repository on each update complicates the development. Ability to load it from the local filesystem will streamline the process\"","commit_id":"ccc752ea6206a0900ad0576d7e193319966b4bae"},{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"5551025b4deeef555779e47e929f26d92e46161f","unresolved":false,"context_lines":[{"line_number":26,"context_line":"you can enable loading packages from local directory, put desired package to"},{"line_number":27,"context_line":"that directory and it will be looked up in the provided directory."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Another case, when you don\u0027t have connection to the external repository."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Proposed change"},{"line_number":32,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba3cc151_2a3a0e99","line":29,"updated":"2015-07-07 10:58:53.000000000","message":"ditto","commit_id":"ccc752ea6206a0900ad0576d7e193319966b4bae"},{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"5551025b4deeef555779e47e929f26d92e46161f","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Need to create one more class, responsible for loading packages."},{"line_number":35,"context_line":"It will look up at the provided directory for a package, that name was requested."},{"line_number":36,"context_line":"It worth noting, that packages should not be zipped."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Class loader from repository (RCL) and new class loader from local dir (LCL) will provide"},{"line_number":39,"context_line":"the following logic:"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba3cc151_ea118605","line":37,"updated":"2015-07-07 10:58:53.000000000","message":"In fact, we already have a DirectoryPackageLoader class (see https://github.com/openstack/murano/blob/master/murano/engine/package_loader.py#L161) which already can load packages from the local filesystem.\n\nWhat we need is an ability to combine two (or more) package loaders in one, with the ability to prioritize the queries. For example, a CombinedPackageLoader may be created with an instances of DirectoryPackageLoader and ApiPackageLoader underneath. When a request for a package or class comes in, it is first executed against loader with the highest priority (say, DirectoryPackageLoader), and if it is not found there, then goes to the next one.","commit_id":"ccc752ea6206a0900ad0576d7e193319966b4bae"},{"author":{"_account_id":15168,"name":"Kirill Zaitsev","email":"k.zaitsev@me.com","username":"kzaitsev"},"change_message_id":"e1cfad520cdce04d7b1dde1dd79a61b736570a85","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Use separate class loader in test framework."},{"line_number":56,"context_line":"But support two different class loaders is not good."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Data model impact"},{"line_number":59,"context_line":"-----------------"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_ee48765e","line":57,"updated":"2015-07-08 13:45:57.000000000","message":"As an alternative we can also mention this approach: https://docs.djangoproject.com/en/1.7/ref/settings/#std:setting-TEMPLATE_LOADERS\n\nThat is: introduce package_loaders config parameter. It can be a list of python-dot-notation class names, that murano would import and try to import pkg from each loader.\n\nThis could further be modified to a list of lists, to allow params like this: \n  package_loaders: [pkg_loader1, [pkg_loader2, param1, param2]]`\n\nThis would allow to easily add custom loaders without changing murano code itself.","commit_id":"4702521b21ce462083bfb79a1911d1568cb98f12"},{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"f8964153d7e83fc87a31ca459b8c60af45a800f0","unresolved":false,"context_lines":[{"line_number":113,"context_line":"----------"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"* Implement ``CombinedPackageLoader``:"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"We do have both class loader implemented, we need an ability to combine two"},{"line_number":118,"context_line":"(or more) package loaders in one, with the ability to prioritize the queries."},{"line_number":119,"context_line":"For example, a ``CombinedPackageLoader`` may be created with an instances of"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_db0328b7","line":116,"updated":"2015-07-07 14:51:13.000000000","message":"This should go to \"Proposed Change\" section","commit_id":"4702521b21ce462083bfb79a1911d1568cb98f12"}]}
