)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"87a7d8d25f808aabcf7fc41b3a1fe344c157dad3","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This adds the Scheduler Hints step to the angular Launch Instance"},{"line_number":10,"context_line":"workflow and allows specifying arbitrary hints when launching an"},{"line_number":11,"context_line":"instance. It also displays available hints from the glance metadata"},{"line_number":12,"context_line":"definitions catalog OS::Nova::Instance namespace that use the"},{"line_number":13,"context_line":"\"scheduler_hints\" properties target."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Implements: blueprint add-scheduler-hints"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5a5ae5dd_0c1ec06f","line":12,"updated":"2016-02-08 21:40:30.000000000","message":"OS::Nova::Server","commit_id":"94a82b0bf44f7cc321d882f05946e3b6afd7f378"},{"author":{"_account_id":9647,"name":"Justin Pomeroy","email":"jpomero@linux.vnet.ibm.com","username":"jpomero"},"change_message_id":"691a2b6c2f69f3788502a9e88efee6620e3b6b81","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This adds the Scheduler Hints step to the angular Launch Instance"},{"line_number":10,"context_line":"workflow and allows specifying arbitrary hints when launching an"},{"line_number":11,"context_line":"instance. It also displays available hints from the glance metadata"},{"line_number":12,"context_line":"definitions catalog OS::Nova::Instance namespace that use the"},{"line_number":13,"context_line":"\"scheduler_hints\" properties target."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Implements: blueprint add-scheduler-hints"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5a5ae5dd_415bf12e","line":12,"in_reply_to":"5a5ae5dd_0c1ec06f","updated":"2016-02-09 15:39:47.000000000","message":"Done","commit_id":"94a82b0bf44f7cc321d882f05946e3b6afd7f378"}],"openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/launch-instance-model.service.js":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"87a7d8d25f808aabcf7fc41b3a1fe344c157dad3","unresolved":false,"context_lines":[{"line_number":564,"context_line":"        flavor: [\u0027OS::Nova::Flavor\u0027, \u0027\u0027],"},{"line_number":565,"context_line":"        image: [\u0027OS::Glance::Image\u0027, \u0027\u0027],"},{"line_number":566,"context_line":"        volume: [\u0027OS::Cinder::Volumes\u0027, \u0027\u0027],"},{"line_number":567,"context_line":"        instance: [\u0027OS::Nova::Instance\u0027, \u0027metadata\u0027]"},{"line_number":568,"context_line":"      };"},{"line_number":569,"context_line":""},{"line_number":570,"context_line":"      angular.forEach(resourceTypes, applyForResourceType);"}],"source_content_type":"text/javascript","patch_set":3,"id":"5a5ae5dd_6cde54de","line":567,"updated":"2016-02-08 21:40:30.000000000","message":"Looks like this needs to be rebased","commit_id":"94a82b0bf44f7cc321d882f05946e3b6afd7f378"},{"author":{"_account_id":9647,"name":"Justin Pomeroy","email":"jpomero@linux.vnet.ibm.com","username":"jpomero"},"change_message_id":"691a2b6c2f69f3788502a9e88efee6620e3b6b81","unresolved":false,"context_lines":[{"line_number":564,"context_line":"        flavor: [\u0027OS::Nova::Flavor\u0027, \u0027\u0027],"},{"line_number":565,"context_line":"        image: [\u0027OS::Glance::Image\u0027, \u0027\u0027],"},{"line_number":566,"context_line":"        volume: [\u0027OS::Cinder::Volumes\u0027, \u0027\u0027],"},{"line_number":567,"context_line":"        instance: [\u0027OS::Nova::Instance\u0027, \u0027metadata\u0027]"},{"line_number":568,"context_line":"      };"},{"line_number":569,"context_line":""},{"line_number":570,"context_line":"      angular.forEach(resourceTypes, applyForResourceType);"}],"source_content_type":"text/javascript","patch_set":3,"id":"5a5ae5dd_41ce91b5","line":567,"in_reply_to":"5a5ae5dd_6cde54de","updated":"2016-02-09 15:39:47.000000000","message":"Done","commit_id":"94a82b0bf44f7cc321d882f05946e3b6afd7f378"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"87a7d8d25f808aabcf7fc41b3a1fe344c157dad3","unresolved":false,"context_lines":[{"line_number":573,"context_line":"      policy.ifAllowed("},{"line_number":574,"context_line":"        { rules: [[\u0027compute\u0027, \u0027os_compute_api:os-scheduler-hints:discoverable\u0027]] }"},{"line_number":575,"context_line":"      ).then(function getSchedulerHints() {"},{"line_number":576,"context_line":"        applyForResourceType([\u0027OS::Nova::Instance\u0027, \u0027scheduler_hints\u0027], \u0027hints\u0027);"},{"line_number":577,"context_line":"      });"},{"line_number":578,"context_line":"    }"},{"line_number":579,"context_line":""}],"source_content_type":"text/javascript","patch_set":3,"id":"5a5ae5dd_8c52b065","line":576,"updated":"2016-02-08 21:40:30.000000000","message":"Need to change to OS::Nova::Server","commit_id":"94a82b0bf44f7cc321d882f05946e3b6afd7f378"},{"author":{"_account_id":9647,"name":"Justin Pomeroy","email":"jpomero@linux.vnet.ibm.com","username":"jpomero"},"change_message_id":"691a2b6c2f69f3788502a9e88efee6620e3b6b81","unresolved":false,"context_lines":[{"line_number":573,"context_line":"      policy.ifAllowed("},{"line_number":574,"context_line":"        { rules: [[\u0027compute\u0027, \u0027os_compute_api:os-scheduler-hints:discoverable\u0027]] }"},{"line_number":575,"context_line":"      ).then(function getSchedulerHints() {"},{"line_number":576,"context_line":"        applyForResourceType([\u0027OS::Nova::Instance\u0027, \u0027scheduler_hints\u0027], \u0027hints\u0027);"},{"line_number":577,"context_line":"      });"},{"line_number":578,"context_line":"    }"},{"line_number":579,"context_line":""}],"source_content_type":"text/javascript","patch_set":3,"id":"5a5ae5dd_01c17980","line":576,"in_reply_to":"5a5ae5dd_8c52b065","updated":"2016-02-09 15:39:47.000000000","message":"Done","commit_id":"94a82b0bf44f7cc321d882f05946e3b6afd7f378"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"e904969ce44d738564cb95bd4928be0186f3bdd8","unresolved":false,"context_lines":[{"line_number":583,"context_line":""},{"line_number":584,"context_line":"      // Need to check policy for scheduler hints"},{"line_number":585,"context_line":"      policy.ifAllowed("},{"line_number":586,"context_line":"        { rules: [[\u0027compute\u0027, \u0027os_compute_api:os-scheduler-hints:discoverable\u0027]] }"},{"line_number":587,"context_line":"      ).then(function getSchedulerHints() {"},{"line_number":588,"context_line":"        applyForResourceType([\u0027OS::Nova::Server\u0027, \u0027scheduler_hints\u0027], \u0027hints\u0027);"},{"line_number":589,"context_line":"      });"}],"source_content_type":"text/javascript","patch_set":5,"id":"dae33548_bbd66725","line":586,"updated":"2016-02-19 02:43:08.000000000","message":"wonder if we should put the rule in a constant somewhere? thoughts?  current django side doesn\u0027t constant any of these.","commit_id":"6898b8f7f73be0c70dca4fb815ce3b658efe08a0"},{"author":{"_account_id":9647,"name":"Justin Pomeroy","email":"jpomero@linux.vnet.ibm.com","username":"jpomero"},"change_message_id":"6586f428d01edb4b1752af6eb4633d68976c6943","unresolved":false,"context_lines":[{"line_number":583,"context_line":""},{"line_number":584,"context_line":"      // Need to check policy for scheduler hints"},{"line_number":585,"context_line":"      policy.ifAllowed("},{"line_number":586,"context_line":"        { rules: [[\u0027compute\u0027, \u0027os_compute_api:os-scheduler-hints:discoverable\u0027]] }"},{"line_number":587,"context_line":"      ).then(function getSchedulerHints() {"},{"line_number":588,"context_line":"        applyForResourceType([\u0027OS::Nova::Server\u0027, \u0027scheduler_hints\u0027], \u0027hints\u0027);"},{"line_number":589,"context_line":"      });"}],"source_content_type":"text/javascript","patch_set":5,"id":"bae84128_41e9f07f","line":586,"in_reply_to":"dae33548_bbd66725","updated":"2016-02-20 21:55:19.000000000","message":"Yes, I think it makes sense to make this a constant.  Then it will be a very simple change once we figure out what this should be.","commit_id":"6898b8f7f73be0c70dca4fb815ce3b658efe08a0"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"f8cd82041e2aa6696b9b3a4e12b3d3467330aa66","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    \u0027horizon.dashboard.project.workflow.launch-instance.non_bootable_image_types\u0027,"},{"line_number":32,"context_line":"    \u0027horizon.framework.widgets.toast.service\u0027,"},{"line_number":33,"context_line":"    \u0027horizon.app.core.openstack-service-api.policy\u0027,"},{"line_number":34,"context_line":"    \u0027horizon.dashboard.project.workflow.launch-instance.step-policy\u0027"},{"line_number":35,"context_line":"  ];"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"  /**"}],"source_content_type":"text/javascript","patch_set":9,"id":"1a122d0e_25ff8368","line":34,"updated":"2016-04-18 17:36:42.000000000","message":"should alphabetize","commit_id":"42541652505cbf8629cc87a0d34729f374cf1e90"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"f8cd82041e2aa6696b9b3a4e12b3d3467330aa66","unresolved":false,"context_lines":[{"line_number":606,"context_line":"        var hints \u003d model.hintsTree.getExisting();"},{"line_number":607,"context_line":"        if (!angular.equals({}, hints)) {"},{"line_number":608,"context_line":"          angular.forEach(hints, function(value, key) {"},{"line_number":609,"context_line":"            hints[key] \u003d value + \u0027\u0027;"},{"line_number":610,"context_line":"          });"},{"line_number":611,"context_line":"          finalSpec.scheduler_hints \u003d hints;"},{"line_number":612,"context_line":"        }"}],"source_content_type":"text/javascript","patch_set":9,"id":"1a122d0e_409f0d50","line":609,"updated":"2016-04-18 17:36:42.000000000","message":"theres actually a toString method you can use.","commit_id":"42541652505cbf8629cc87a0d34729f374cf1e90"}],"openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/launch-instance-workflow.service.js":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"87a7d8d25f808aabcf7fc41b3a1fe344c157dad3","unresolved":false,"context_lines":[{"line_number":88,"context_line":"          formName: \u0027launchInstanceSchedulerHintsForm\u0027,"},{"line_number":89,"context_line":"          // TODO(jpomero): Need to determine the correct policy to use. This is currently the"},{"line_number":90,"context_line":"          // only one in the nova policy file related to scheduler hints."},{"line_number":91,"context_line":"          policy: { rules: [[\u0027compute\u0027, \u0027os_compute_api:os-scheduler-hints:discoverable\u0027]] }"},{"line_number":92,"context_line":"        },"},{"line_number":93,"context_line":"        {"},{"line_number":94,"context_line":"          id: \u0027metadata\u0027,"}],"source_content_type":"text/javascript","patch_set":3,"id":"5a5ae5dd_a71ea75c","line":91,"updated":"2016-02-08 21:40:30.000000000","message":"I like adding Policy on here as an explicit param, but should it now be documented on the workflow service and / or in the decorator service?","commit_id":"94a82b0bf44f7cc321d882f05946e3b6afd7f378"},{"author":{"_account_id":9647,"name":"Justin Pomeroy","email":"jpomero@linux.vnet.ibm.com","username":"jpomero"},"change_message_id":"691a2b6c2f69f3788502a9e88efee6620e3b6b81","unresolved":false,"context_lines":[{"line_number":88,"context_line":"          formName: \u0027launchInstanceSchedulerHintsForm\u0027,"},{"line_number":89,"context_line":"          // TODO(jpomero): Need to determine the correct policy to use. This is currently the"},{"line_number":90,"context_line":"          // only one in the nova policy file related to scheduler hints."},{"line_number":91,"context_line":"          policy: { rules: [[\u0027compute\u0027, \u0027os_compute_api:os-scheduler-hints:discoverable\u0027]] }"},{"line_number":92,"context_line":"        },"},{"line_number":93,"context_line":"        {"},{"line_number":94,"context_line":"          id: \u0027metadata\u0027,"}],"source_content_type":"text/javascript","patch_set":3,"id":"5a5ae5dd_7cc014e1","line":91,"in_reply_to":"5a5ae5dd_a71ea75c","updated":"2016-02-09 15:39:47.000000000","message":"I updated the inline doc on the decorator service since that\u0027s the only place we really talk about the similar requiredServiceTypes property. Is there another place this should be mentioned?","commit_id":"94a82b0bf44f7cc321d882f05946e3b6afd7f378"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"e904969ce44d738564cb95bd4928be0186f3bdd8","unresolved":false,"context_lines":[{"line_number":87,"context_line":"          helpUrl: basePath + \u0027scheduler-hints/scheduler-hints.help.html\u0027,"},{"line_number":88,"context_line":"          formName: \u0027launchInstanceSchedulerHintsForm\u0027,"},{"line_number":89,"context_line":"          // TODO(jpomero): Need to determine the correct policy to use. This is currently the"},{"line_number":90,"context_line":"          // only one in the nova policy file related to scheduler hints."},{"line_number":91,"context_line":"          policy: { rules: [[\u0027compute\u0027, \u0027os_compute_api:os-scheduler-hints:discoverable\u0027]] }"},{"line_number":92,"context_line":"        },"},{"line_number":93,"context_line":"        {"}],"source_content_type":"text/javascript","patch_set":5,"id":"dae33548_fba8efdd","line":90,"updated":"2016-02-19 02:43:08.000000000","message":"i really don\u0027t know if this is right or not or if we should make up our own.  probably need david\u0027s opinion.","commit_id":"6898b8f7f73be0c70dca4fb815ce3b658efe08a0"}],"openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/scheduler-hints/scheduler-hints.controller.js":[{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"f8cd82041e2aa6696b9b3a4e12b3d3467330aa66","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    ctrl.text \u003d {"},{"line_number":39,"context_line":"      /* eslint-disable max-len */"},{"line_number":40,"context_line":"      help: gettext(\u0027You can specify scheduler hints by moving items from the left column to the right column. In the left column there are scheduler hint definitions from the Glance Metadata Catalog. Use the \"Custom\" option to add scheduler hints with the key of your choice.\u0027),"},{"line_number":41,"context_line":"      /* eslint-enable max-len */"},{"line_number":42,"context_line":"      available: gettext(\u0027Available Scheduler Hints\u0027),"},{"line_number":43,"context_line":"      existing: gettext(\u0027Existing Scheduler Hints\u0027),"}],"source_content_type":"text/javascript","patch_set":9,"id":"1a122d0e_401c2d13","line":40,"updated":"2016-04-18 17:36:42.000000000","message":"my eyes...","commit_id":"42541652505cbf8629cc87a0d34729f374cf1e90"}],"openstack_dashboard/static/app/core/workflow/decorator.service.js":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"e904969ce44d738564cb95bd4928be0186f3bdd8","unresolved":false,"context_lines":[{"line_number":31,"context_line":"   * the checkReadiness method is added to the step. The checkReadiness method will"},{"line_number":32,"context_line":"   * make sure the necessary OpenStack services are enabled and the policy check passes"},{"line_number":33,"context_line":"   * in order for the step to be displayed."},{"line_number":34,"context_line":"   *"},{"line_number":35,"context_line":"   * Injected dependencies:"},{"line_number":36,"context_line":"   * - $q"},{"line_number":37,"context_line":"   * - serviceCatalog horizon.app.core.openstack-service-api.serviceCatalog"}],"source_content_type":"text/javascript","patch_set":5,"id":"dae33548_1b567306","line":34,"updated":"2016-02-19 02:43:08.000000000","message":"I think we really need to add documentation to the workflow service... an example would speak volumes (maybe just copy paste simplified from here or from images create volume):\n\nhttps://github.com/openstack/horizon/blob/master/openstack_dashboard/static/app/core/workflow/workflow.service.js#L30","commit_id":"6898b8f7f73be0c70dca4fb815ce3b658efe08a0"},{"author":{"_account_id":9647,"name":"Justin Pomeroy","email":"jpomero@linux.vnet.ibm.com","username":"jpomero"},"change_message_id":"6586f428d01edb4b1752af6eb4633d68976c6943","unresolved":false,"context_lines":[{"line_number":31,"context_line":"   * the checkReadiness method is added to the step. The checkReadiness method will"},{"line_number":32,"context_line":"   * make sure the necessary OpenStack services are enabled and the policy check passes"},{"line_number":33,"context_line":"   * in order for the step to be displayed."},{"line_number":34,"context_line":"   *"},{"line_number":35,"context_line":"   * Injected dependencies:"},{"line_number":36,"context_line":"   * - $q"},{"line_number":37,"context_line":"   * - serviceCatalog horizon.app.core.openstack-service-api.serviceCatalog"}],"source_content_type":"text/javascript","patch_set":5,"id":"bae84128_0c4eff6e","line":34,"in_reply_to":"dae33548_1b567306","updated":"2016-02-20 21:55:19.000000000","message":"Done","commit_id":"6898b8f7f73be0c70dca4fb815ce3b658efe08a0"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"e904969ce44d738564cb95bd4928be0186f3bdd8","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    }"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    function decorateStep(step) {"},{"line_number":70,"context_line":"      var promises \u003d [];"},{"line_number":71,"context_line":"      var types \u003d step.requiredServiceTypes;"},{"line_number":72,"context_line":"      if (types \u0026\u0026 types.length \u003e 0) {"},{"line_number":73,"context_line":"        promises \u003d promises.concat(types.map(function checkServiceEnabled(type) {"}],"source_content_type":"text/javascript","patch_set":5,"id":"dae33548_f0ebee76","line":70,"updated":"2016-02-19 02:43:08.000000000","message":"This is a actually a very big addition no matter what the rest of this patch does. I\u0027d vote this in on its own. This means workflows in angular now have declarative step by step policy (in addition to extensibility).","commit_id":"6898b8f7f73be0c70dca4fb815ce3b658efe08a0"}],"releasenotes/notes/bp-add-scheduler-hints-77600faec041e134.yaml":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"e904969ce44d738564cb95bd4928be0186f3bdd8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added the Scheduler Hints tab to the new Launch Instance workflow to allow"},{"line_number":4,"context_line":"    adding scheduler hints to an instance at launch. In addition to adding"},{"line_number":5,"context_line":"    custom key-value pairs, the user can also choose from properties in the"},{"line_number":6,"context_line":"    glance metadata definitions catalog that have the OS::Nova::Server resource"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"dae33548_9b4a8354","line":3,"updated":"2016-02-19 02:43:08.000000000","message":"the workflow policy feature should also be a release note, i think.","commit_id":"6898b8f7f73be0c70dca4fb815ce3b658efe08a0"},{"author":{"_account_id":9647,"name":"Justin Pomeroy","email":"jpomero@linux.vnet.ibm.com","username":"jpomero"},"change_message_id":"6586f428d01edb4b1752af6eb4633d68976c6943","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added the Scheduler Hints tab to the new Launch Instance workflow to allow"},{"line_number":4,"context_line":"    adding scheduler hints to an instance at launch. In addition to adding"},{"line_number":5,"context_line":"    custom key-value pairs, the user can also choose from properties in the"},{"line_number":6,"context_line":"    glance metadata definitions catalog that have the OS::Nova::Server resource"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"bae84128_ec859b59","line":3,"in_reply_to":"dae33548_9b4a8354","updated":"2016-02-20 21:55:19.000000000","message":"Done","commit_id":"6898b8f7f73be0c70dca4fb815ce3b658efe08a0"}]}
