)]}'
{"doc/source/devref/specs/pike/new-instance-reservation.rst":[{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"cba16b56d12ae47a074298234222397ac6d43da3","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/blazar/+spec/new-instance-reservation"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Telecom operators want to keep instance slots for planned scale-out for"},{"line_number":14,"context_line":"high priority VNF service on hypervisors in a specific time window in order to"},{"line_number":15,"context_line":"accept an expected workload increase in their network, such as big events,"},{"line_number":16,"context_line":"sports game and so on.  On the other hand, they also need to keep some free"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_36ed338b","line":13,"range":{"start_line":13,"start_character":50,"end_line":13,"end_character":67},"updated":"2017-04-26 06:59:56.000000000","message":"Not only scale-out, but also maintenance works, DR and launching a new service[1].\n\n[1] https://github.com/openstack/development-proposals/blob/master/development-proposals/proposed/capacity-management.rst#usage-scenarios-examples","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/blazar/+spec/new-instance-reservation"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Telecom operators want to keep instance slots for planned scale-out for"},{"line_number":14,"context_line":"high priority VNF service on hypervisors in a specific time window in order to"},{"line_number":15,"context_line":"accept an expected workload increase in their network, such as big events,"},{"line_number":16,"context_line":"sports game and so on.  On the other hand, they also need to keep some free"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_27faa374","line":13,"range":{"start_line":13,"start_character":50,"end_line":13,"end_character":67},"in_reply_to":"5ff73747_36ed338b","updated":"2017-05-17 09:54:41.000000000","message":"Done","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"cba16b56d12ae47a074298234222397ac6d43da3","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Problem description"},{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Some problems are well described in Capacity Management user story[1]. Please"},{"line_number":30,"context_line":"check the story for details of the problems."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_76c17be4","line":29,"range":{"start_line":29,"start_character":56,"end_line":29,"end_character":66},"updated":"2017-04-26 06:59:56.000000000","message":"Just a comment for a terminology. the \"user story\" has been renamed \"development proposal[1].\" So, it\u0027s better to use a new terminology.\n\n[1] https://wiki.openstack.org/wiki/ProductTeam/Development_Proposals","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Problem description"},{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Some problems are well described in Capacity Management user story[1]. Please"},{"line_number":30,"context_line":"check the story for details of the problems."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_276d0332","line":29,"range":{"start_line":29,"start_character":56,"end_line":29,"end_character":66},"in_reply_to":"5ff73747_76c17be4","updated":"2017-05-17 09:54:41.000000000","message":"Done","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"0febfc30822276b1ba1db75261c1385bcedccf27","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Proposed change"},{"line_number":43,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Blazar enables users to specify amount of instances with one flaver. As"},{"line_number":46,"context_line":"described in use cases, users reserving instances specify a tuple of"},{"line_number":47,"context_line":"amount of instances and flavor size of the instances."},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_eb077d17","line":45,"range":{"start_line":45,"start_character":61,"end_line":45,"end_character":67},"updated":"2017-04-28 13:34:13.000000000","message":"typo: flavor","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Proposed change"},{"line_number":43,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Blazar enables users to specify amount of instances with one flaver. As"},{"line_number":46,"context_line":"described in use cases, users reserving instances specify a tuple of"},{"line_number":47,"context_line":"amount of instances and flavor size of the instances."},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_a762333d","line":45,"range":{"start_line":45,"start_character":61,"end_line":45,"end_character":67},"in_reply_to":"5ff73747_eb077d17","updated":"2017-05-17 09:54:41.000000000","message":"Done","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"0febfc30822276b1ba1db75261c1385bcedccf27","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Blazar enables users to specify amount of instances with one flaver. As"},{"line_number":46,"context_line":"described in use cases, users reserving instances specify a tuple of"},{"line_number":47,"context_line":"amount of instances and flavor size of the instances."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Following is a basic idea and a sequence of the change:"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_0b53c918","line":47,"range":{"start_line":47,"start_character":24,"end_line":47,"end_character":35},"updated":"2017-04-28 13:34:13.000000000","message":"\"flavor size\"? what about \"and the required flavor of the instances\". In ETSI this is referred to as \"flavour\" (British English), see  VirtualComputeFlavour in IFA005 spec Clause 8.4.2.2 http://www.etsi.org/deliver/etsi_gs/NFV-IFA/001_099/005/02.01.01_60/gs_NFV-IFA005v020101p.pdf","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Blazar enables users to specify amount of instances with one flaver. As"},{"line_number":46,"context_line":"described in use cases, users reserving instances specify a tuple of"},{"line_number":47,"context_line":"amount of instances and flavor size of the instances."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Following is a basic idea and a sequence of the change:"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_c77bffbb","line":47,"range":{"start_line":47,"start_character":24,"end_line":47,"end_character":35},"in_reply_to":"5ff73747_0b53c918","updated":"2017-05-17 09:54:41.000000000","message":"\"flavor\" refers a term of OpenStack, especially Nova[1].  I\u0027ll add detail information about \"flavor\".\n\n1. https://developer.openstack.org/api-ref/compute/?expanded\u003dcreate-flavor-detail#flavors","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"0febfc30822276b1ba1db75261c1385bcedccf27","unresolved":false,"context_lines":[{"line_number":49,"context_line":"Following is a basic idea and a sequence of the change:"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    1. A tenant user creates their reservation, in term of Blazar called"},{"line_number":52,"context_line":"       \"lease\", with a time frame, a size of one instance and how many of"},{"line_number":53,"context_line":"       the instance."},{"line_number":54,"context_line":"    2. Blazar issues a reservation id to the user if the amount of usage of"},{"line_number":55,"context_line":"       instances defined in  the reservation (e.g. size of flavor times"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_4bb9d112","line":52,"range":{"start_line":52,"start_character":37,"end_line":52,"end_character":41},"updated":"2017-04-28 13:34:13.000000000","message":"see above discussion on \"size of flavor\" above. also please check other occurrences of this term.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":49,"context_line":"Following is a basic idea and a sequence of the change:"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    1. A tenant user creates their reservation, in term of Blazar called"},{"line_number":52,"context_line":"       \"lease\", with a time frame, a size of one instance and how many of"},{"line_number":53,"context_line":"       the instance."},{"line_number":54,"context_line":"    2. Blazar issues a reservation id to the user if the amount of usage of"},{"line_number":55,"context_line":"       instances defined in  the reservation (e.g. size of flavor times"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_5d57bc03","line":52,"range":{"start_line":52,"start_character":37,"end_line":52,"end_character":41},"in_reply_to":"5ff73747_4bb9d112","updated":"2017-05-17 09:54:41.000000000","message":"I replaced the term with \u0027definition of the flavor\u0027 or something similar term.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"0febfc30822276b1ba1db75261c1385bcedccf27","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    1. A tenant user creates their reservation, in term of Blazar called"},{"line_number":52,"context_line":"       \"lease\", with a time frame, a size of one instance and how many of"},{"line_number":53,"context_line":"       the instance."},{"line_number":54,"context_line":"    2. Blazar issues a reservation id to the user if the amount of usage of"},{"line_number":55,"context_line":"       instances defined in  the reservation (e.g. size of flavor times"},{"line_number":56,"context_line":"       number of instances) is less than amout of unused capacity for"},{"line_number":57,"context_line":"       reservations in the time frame."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_cb42810f","line":54,"range":{"start_line":54,"start_character":23,"end_line":54,"end_character":37},"updated":"2017-04-28 13:34:13.000000000","message":"should we use Blazar terminology in this spec, e.g. \"lease id\"?","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    1. A tenant user creates their reservation, in term of Blazar called"},{"line_number":52,"context_line":"       \"lease\", with a time frame, a size of one instance and how many of"},{"line_number":53,"context_line":"       the instance."},{"line_number":54,"context_line":"    2. Blazar issues a reservation id to the user if the amount of usage of"},{"line_number":55,"context_line":"       instances defined in  the reservation (e.g. size of flavor times"},{"line_number":56,"context_line":"       number of instances) is less than amout of unused capacity for"},{"line_number":57,"context_line":"       reservations in the time frame."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_fd39e83e","line":54,"range":{"start_line":54,"start_character":23,"end_line":54,"end_character":37},"in_reply_to":"5ff73747_cb42810f","updated":"2017-05-17 09:54:41.000000000","message":"Done","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"0febfc30822276b1ba1db75261c1385bcedccf27","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    3. The user creates their instance via Nova API with the reservation id."},{"line_number":59,"context_line":"       The request with the id only be accepted within the reservation\u0027s"},{"line_number":60,"context_line":"       time frame."},{"line_number":61,"context_line":"    4. Nova creates the instance onto the right slot of the reservation."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"To realize the sequence this BP introduces a new plugin: \"virtual:instance\"."},{"line_number":64,"context_line":"The plugin will take 2 phase implementations because of following reasons."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_4b1551e4","line":61,"range":{"start_line":61,"start_character":33,"end_line":61,"end_character":52},"updated":"2017-04-28 13:34:13.000000000","message":"can you clarify this point? I know what you mean but for the spec we may need to provide a bit more explanation.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    3. The user creates their instance via Nova API with the reservation id."},{"line_number":59,"context_line":"       The request with the id only be accepted within the reservation\u0027s"},{"line_number":60,"context_line":"       time frame."},{"line_number":61,"context_line":"    4. Nova creates the instance onto the right slot of the reservation."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"To realize the sequence this BP introduces a new plugin: \"virtual:instance\"."},{"line_number":64,"context_line":"The plugin will take 2 phase implementations because of following reasons."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_9d62e43d","line":61,"range":{"start_line":61,"start_character":33,"end_line":61,"end_character":52},"in_reply_to":"5ff73747_4b1551e4","updated":"2017-05-17 09:54:41.000000000","message":"Done","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"0febfc30822276b1ba1db75261c1385bcedccf27","unresolved":false,"context_lines":[{"line_number":60,"context_line":"       time frame."},{"line_number":61,"context_line":"    4. Nova creates the instance onto the right slot of the reservation."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"To realize the sequence this BP introduces a new plugin: \"virtual:instance\"."},{"line_number":64,"context_line":"The plugin will take 2 phase implementations because of following reasons."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Short-term goal"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_4beaf1d7","line":63,"range":{"start_line":63,"start_character":45,"end_line":63,"end_character":76},"updated":"2017-04-28 13:34:13.000000000","message":"a new plugin for which project?","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":60,"context_line":"       time frame."},{"line_number":61,"context_line":"    4. Nova creates the instance onto the right slot of the reservation."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"To realize the sequence this BP introduces a new plugin: \"virtual:instance\"."},{"line_number":64,"context_line":"The plugin will take 2 phase implementations because of following reasons."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Short-term goal"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_5dd1fccc","line":63,"range":{"start_line":63,"start_character":45,"end_line":63,"end_character":76},"in_reply_to":"5ff73747_4beaf1d7","updated":"2017-05-17 09:54:41.000000000","message":"For blazar project. revised.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"0febfc30822276b1ba1db75261c1385bcedccf27","unresolved":false,"context_lines":[{"line_number":67,"context_line":"```````````````"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Instance reservation only supports anti-affinity rule reservation because"},{"line_number":70,"context_line":"affitniy rule reservation has already been achived by host reservation."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Affinity rule reservation by host reservation feature is not an ideal goal."},{"line_number":73,"context_line":"For the datacenter usage efficiency, host reservation wouldn\u0027t be a better"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_0ba749bf","line":70,"range":{"start_line":70,"start_character":0,"end_line":70,"end_character":8},"updated":"2017-04-28 13:34:13.000000000","message":"typo","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":67,"context_line":"```````````````"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Instance reservation only supports anti-affinity rule reservation because"},{"line_number":70,"context_line":"affitniy rule reservation has already been achived by host reservation."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Affinity rule reservation by host reservation feature is not an ideal goal."},{"line_number":73,"context_line":"For the datacenter usage efficiency, host reservation wouldn\u0027t be a better"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_3da2b04c","line":70,"range":{"start_line":70,"start_character":0,"end_line":70,"end_character":8},"in_reply_to":"5ff73747_0ba749bf","updated":"2017-05-17 09:54:41.000000000","message":"Done","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"cba16b56d12ae47a074298234222397ac6d43da3","unresolved":false,"context_lines":[{"line_number":101,"context_line":"       the hypervisors onto which reserved instances are scheduled into the"},{"line_number":102,"context_line":"       aggregate."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"       The tricks Blazar is doing here are: "},{"line_number":105,"context_line":"        * create server-group with anti-affinity policy"},{"line_number":106,"context_line":"        * create a flavor with aggregate_instance_extra_specs of the"},{"line_number":107,"context_line":"          reservation and is_public\u003dFalse"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_9f1c1713","line":104,"range":{"start_line":104,"start_character":43,"end_line":104,"end_character":44},"updated":"2017-04-26 06:59:56.000000000","message":"Unexpected space","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":101,"context_line":"       the hypervisors onto which reserved instances are scheduled into the"},{"line_number":102,"context_line":"       aggregate."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"       The tricks Blazar is doing here are: "},{"line_number":105,"context_line":"        * create server-group with anti-affinity policy"},{"line_number":106,"context_line":"        * create a flavor with aggregate_instance_extra_specs of the"},{"line_number":107,"context_line":"          reservation and is_public\u003dFalse"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_bd8da0d4","line":104,"range":{"start_line":104,"start_character":43,"end_line":104,"end_character":44},"in_reply_to":"5ff73747_9f1c1713","updated":"2017-05-17 09:54:41.000000000","message":"Done","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"cba16b56d12ae47a074298234222397ac6d43da3","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"       The tricks Blazar is doing here are: "},{"line_number":105,"context_line":"        * create server-group with anti-affinity policy"},{"line_number":106,"context_line":"        * create a flavor with aggregate_instance_extra_specs of the"},{"line_number":107,"context_line":"          reservation and is_public\u003dFalse"},{"line_number":108,"context_line":"        * create a new host aggregate with above aggregate_instance_extra_specs"},{"line_number":109,"context_line":"          and filter_tenant_id of the requesting user\u0027s project id"},{"line_number":110,"context_line":"        * doesn\u0027t bring out the hypervisor from the freepool because other"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_3f2f43f7","line":107,"range":{"start_line":106,"start_character":31,"end_line":107,"end_character":21},"updated":"2017-04-26 06:59:56.000000000","message":"Could you give more explanation about what it means?","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"       The tricks Blazar is doing here are: "},{"line_number":105,"context_line":"        * create server-group with anti-affinity policy"},{"line_number":106,"context_line":"        * create a flavor with aggregate_instance_extra_specs of the"},{"line_number":107,"context_line":"          reservation and is_public\u003dFalse"},{"line_number":108,"context_line":"        * create a new host aggregate with above aggregate_instance_extra_specs"},{"line_number":109,"context_line":"          and filter_tenant_id of the requesting user\u0027s project id"},{"line_number":110,"context_line":"        * doesn\u0027t bring out the hypervisor from the freepool because other"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_f83696e7","line":107,"range":{"start_line":106,"start_character":31,"end_line":107,"end_character":21},"in_reply_to":"5ff73747_1f055914","updated":"2017-05-17 09:54:41.000000000","message":"I described more details.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"8a691ef147ece16e8ca39e0d2fb02b24837e6f3f","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"       The tricks Blazar is doing here are: "},{"line_number":105,"context_line":"        * create server-group with anti-affinity policy"},{"line_number":106,"context_line":"        * create a flavor with aggregate_instance_extra_specs of the"},{"line_number":107,"context_line":"          reservation and is_public\u003dFalse"},{"line_number":108,"context_line":"        * create a new host aggregate with above aggregate_instance_extra_specs"},{"line_number":109,"context_line":"          and filter_tenant_id of the requesting user\u0027s project id"},{"line_number":110,"context_line":"        * doesn\u0027t bring out the hypervisor from the freepool because other"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_85a7e6bd","line":107,"range":{"start_line":106,"start_character":31,"end_line":107,"end_character":21},"in_reply_to":"5ff73747_3f2f43f7","updated":"2017-04-27 18:42:46.000000000","message":"Blazar adds aggregate_instance_extra_specs to extra_specs of the flavor. The key is used for Nova\u0027s scheduling. I plan to use reservation name space for the specs like following because of easy tracking.\n\naggregate_instance_extra_specs:reservations:\u003creservation-id\u003e","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"454b8983e1ac2c051d3e50586c71d310cf3ddfd4","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"       The tricks Blazar is doing here are: "},{"line_number":105,"context_line":"        * create server-group with anti-affinity policy"},{"line_number":106,"context_line":"        * create a flavor with aggregate_instance_extra_specs of the"},{"line_number":107,"context_line":"          reservation and is_public\u003dFalse"},{"line_number":108,"context_line":"        * create a new host aggregate with above aggregate_instance_extra_specs"},{"line_number":109,"context_line":"          and filter_tenant_id of the requesting user\u0027s project id"},{"line_number":110,"context_line":"        * doesn\u0027t bring out the hypervisor from the freepool because other"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_1f055914","line":107,"range":{"start_line":106,"start_character":31,"end_line":107,"end_character":21},"in_reply_to":"5ff73747_85a7e6bd","updated":"2017-04-28 03:04:41.000000000","message":"Got it.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"cba16b56d12ae47a074298234222397ac6d43da3","unresolved":false,"context_lines":[{"line_number":107,"context_line":"          reservation and is_public\u003dFalse"},{"line_number":108,"context_line":"        * create a new host aggregate with above aggregate_instance_extra_specs"},{"line_number":109,"context_line":"          and filter_tenant_id of the requesting user\u0027s project id"},{"line_number":110,"context_line":"        * doesn\u0027t bring out the hypervisor from the freepool because other"},{"line_number":111,"context_line":"          user\u0027s reservations also use other instance slots in the hypervisor"},{"line_number":112,"context_line":"    4. The user fetches server_group id by calling flavor show API in Nova,"},{"line_number":113,"context_line":"       then creates reserved instances with scheduling hint, like"},{"line_number":114,"context_line":"        --hint group\u003dgroup-id, and the newly created flavor"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_dfdbbfea","line":111,"range":{"start_line":110,"start_character":10,"end_line":111,"end_character":77},"updated":"2017-04-26 06:59:56.000000000","message":"Do you plan to use the current Blazar\u0027s Nova scheduler filter of the blazar-nova for protecting resources in the freepool?","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"454b8983e1ac2c051d3e50586c71d310cf3ddfd4","unresolved":false,"context_lines":[{"line_number":107,"context_line":"          reservation and is_public\u003dFalse"},{"line_number":108,"context_line":"        * create a new host aggregate with above aggregate_instance_extra_specs"},{"line_number":109,"context_line":"          and filter_tenant_id of the requesting user\u0027s project id"},{"line_number":110,"context_line":"        * doesn\u0027t bring out the hypervisor from the freepool because other"},{"line_number":111,"context_line":"          user\u0027s reservations also use other instance slots in the hypervisor"},{"line_number":112,"context_line":"    4. The user fetches server_group id by calling flavor show API in Nova,"},{"line_number":113,"context_line":"       then creates reserved instances with scheduling hint, like"},{"line_number":114,"context_line":"        --hint group\u003dgroup-id, and the newly created flavor"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_bf52e539","line":111,"range":{"start_line":110,"start_character":10,"end_line":111,"end_character":77},"in_reply_to":"5ff73747_8552463a","updated":"2017-04-28 03:04:41.000000000","message":"I understood how blazar works, thanks. But still l thinks the BlazarFilter is needed for exclusion control.\nThe BlazarFilter works as you mentioned and also filters hosts in the freepool not to schedule any instance on them[1]. So, without the BlazarFilter, how does the Blazar guarantee no unexpected instance runs on hosts in the freepool?\nSo, we need to use the BlazarFilter or another solution is to set \"filter_tenant_id \u003dBlazar\u0027s project ID\" to the freepool aggregate.\n\n[1] https://github.com/openstack/blazar-nova/blob/master/blazarnova/scheduler/filters/blazar_filter.py#L54","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":107,"context_line":"          reservation and is_public\u003dFalse"},{"line_number":108,"context_line":"        * create a new host aggregate with above aggregate_instance_extra_specs"},{"line_number":109,"context_line":"          and filter_tenant_id of the requesting user\u0027s project id"},{"line_number":110,"context_line":"        * doesn\u0027t bring out the hypervisor from the freepool because other"},{"line_number":111,"context_line":"          user\u0027s reservations also use other instance slots in the hypervisor"},{"line_number":112,"context_line":"    4. The user fetches server_group id by calling flavor show API in Nova,"},{"line_number":113,"context_line":"       then creates reserved instances with scheduling hint, like"},{"line_number":114,"context_line":"        --hint group\u003dgroup-id, and the newly created flavor"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_3311c1ad","line":111,"range":{"start_line":110,"start_character":10,"end_line":111,"end_character":77},"in_reply_to":"5ff73747_bf52e539","updated":"2017-05-17 09:54:41.000000000","message":"Using filter_tenant_id looks better to me because it\u0027s more Nova-ish solution managing aggregates.  I wrote this as step 0.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"8a691ef147ece16e8ca39e0d2fb02b24837e6f3f","unresolved":false,"context_lines":[{"line_number":107,"context_line":"          reservation and is_public\u003dFalse"},{"line_number":108,"context_line":"        * create a new host aggregate with above aggregate_instance_extra_specs"},{"line_number":109,"context_line":"          and filter_tenant_id of the requesting user\u0027s project id"},{"line_number":110,"context_line":"        * doesn\u0027t bring out the hypervisor from the freepool because other"},{"line_number":111,"context_line":"          user\u0027s reservations also use other instance slots in the hypervisor"},{"line_number":112,"context_line":"    4. The user fetches server_group id by calling flavor show API in Nova,"},{"line_number":113,"context_line":"       then creates reserved instances with scheduling hint, like"},{"line_number":114,"context_line":"        --hint group\u003dgroup-id, and the newly created flavor"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_8552463a","line":111,"range":{"start_line":110,"start_character":10,"end_line":111,"end_character":77},"in_reply_to":"5ff73747_dfdbbfea","updated":"2017-04-27 18:42:46.000000000","message":"No. IIRC, BlazarFilter picks a host from an aggregate of the reservation when instance create requests have Blazar\u0027s specific scheduler hint.\n\nThis item describes how blazar works at start_lease event. In host reservations, Blazar moves hosts from freepool to an aggregate of the reservation.  Conversely, in instance reservation, Blazar adds hosts to the aggregate, but doesn\u0027t remove the hosts from freepool.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"cba16b56d12ae47a074298234222397ac6d43da3","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        * doesn\u0027t bring out the hypervisor from the freepool because other"},{"line_number":111,"context_line":"          user\u0027s reservations also use other instance slots in the hypervisor"},{"line_number":112,"context_line":"    4. The user fetches server_group id by calling flavor show API in Nova,"},{"line_number":113,"context_line":"       then creates reserved instances with scheduling hint, like"},{"line_number":114,"context_line":"        --hint group\u003dgroup-id, and the newly created flavor"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Summary of short term goal"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_3f3503f8","line":114,"range":{"start_line":113,"start_character":12,"end_line":114,"end_character":59},"updated":"2017-04-26 06:59:56.000000000","message":"I understood following 4 filters should be enabled:\n* AggregateInstanceExtraSpecsFilter\n* AggregateMultiTenancyIsolationFilter\n* ServerGroupAntiAffinityFilter\n* BlazarFilter","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        * doesn\u0027t bring out the hypervisor from the freepool because other"},{"line_number":111,"context_line":"          user\u0027s reservations also use other instance slots in the hypervisor"},{"line_number":112,"context_line":"    4. The user fetches server_group id by calling flavor show API in Nova,"},{"line_number":113,"context_line":"       then creates reserved instances with scheduling hint, like"},{"line_number":114,"context_line":"        --hint group\u003dgroup-id, and the newly created flavor"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Summary of short term goal"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_77c5f45a","line":114,"range":{"start_line":113,"start_character":12,"end_line":114,"end_character":59},"in_reply_to":"5ff73747_025e1e11","updated":"2017-05-17 09:54:41.000000000","message":"I wrote the list of schedulers as prerequisites.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"454b8983e1ac2c051d3e50586c71d310cf3ddfd4","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        * doesn\u0027t bring out the hypervisor from the freepool because other"},{"line_number":111,"context_line":"          user\u0027s reservations also use other instance slots in the hypervisor"},{"line_number":112,"context_line":"    4. The user fetches server_group id by calling flavor show API in Nova,"},{"line_number":113,"context_line":"       then creates reserved instances with scheduling hint, like"},{"line_number":114,"context_line":"        --hint group\u003dgroup-id, and the newly created flavor"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Summary of short term goal"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_025e1e11","line":114,"range":{"start_line":113,"start_character":12,"end_line":114,"end_character":59},"in_reply_to":"5ff73747_20148043","updated":"2017-04-28 03:04:41.000000000","message":"For the solution I mentioned above, the BlazarFilter is not required.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"8a691ef147ece16e8ca39e0d2fb02b24837e6f3f","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        * doesn\u0027t bring out the hypervisor from the freepool because other"},{"line_number":111,"context_line":"          user\u0027s reservations also use other instance slots in the hypervisor"},{"line_number":112,"context_line":"    4. The user fetches server_group id by calling flavor show API in Nova,"},{"line_number":113,"context_line":"       then creates reserved instances with scheduling hint, like"},{"line_number":114,"context_line":"        --hint group\u003dgroup-id, and the newly created flavor"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Summary of short term goal"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_20148043","line":114,"range":{"start_line":113,"start_character":12,"end_line":114,"end_character":59},"in_reply_to":"5ff73747_3f3503f8","updated":"2017-04-27 18:42:46.000000000","message":"Only for the instance reservation, BlazarFilter is not required.  But you\u0027re right. I\u0027ll add which filters we need.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"0febfc30822276b1ba1db75261c1385bcedccf27","unresolved":false,"context_lines":[{"line_number":131,"context_line":"placement API[1]. The API already has custom resource class[2] and is now"},{"line_number":132,"context_line":"implementing schduler function[3] that uses the custom resources class."},{"line_number":133,"context_line":"It enables operator to manage hypervisors in freepool more efficient."},{"line_number":134,"context_line":"p"},{"line_number":135,"context_line":"Blazar will do following steps:"},{"line_number":136,"context_line":"    1. A tenant user creates their reservation, in term of Blazar called"},{"line_number":137,"context_line":"       \"lease\", with a time frame, a size of one instance and how many"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_cb9a8160","line":134,"range":{"start_line":134,"start_character":0,"end_line":134,"end_character":1},"updated":"2017-04-28 13:34:13.000000000","message":"\"p\"?","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":131,"context_line":"placement API[1]. The API already has custom resource class[2] and is now"},{"line_number":132,"context_line":"implementing schduler function[3] that uses the custom resources class."},{"line_number":133,"context_line":"It enables operator to manage hypervisors in freepool more efficient."},{"line_number":134,"context_line":"p"},{"line_number":135,"context_line":"Blazar will do following steps:"},{"line_number":136,"context_line":"    1. A tenant user creates their reservation, in term of Blazar called"},{"line_number":137,"context_line":"       \"lease\", with a time frame, a size of one instance and how many"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_77a73451","line":134,"range":{"start_line":134,"start_character":0,"end_line":134,"end_character":1},"in_reply_to":"5ff73747_cb9a8160","updated":"2017-05-17 09:54:41.000000000","message":"removed.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"cba16b56d12ae47a074298234222397ac6d43da3","unresolved":false,"context_lines":[{"line_number":151,"context_line":"Alternatives"},{"line_number":152,"context_line":"------------"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"This feature could be achieved by Blazar side or Nova side. "},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Blazar side approach"},{"line_number":157,"context_line":"````````````````````"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_bf091332","line":154,"range":{"start_line":154,"start_character":59,"end_line":154,"end_character":60},"updated":"2017-04-26 06:59:56.000000000","message":"unexpected space","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":151,"context_line":"Alternatives"},{"line_number":152,"context_line":"------------"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"This feature could be achieved by Blazar side or Nova side. "},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Blazar side approach"},{"line_number":157,"context_line":"````````````````````"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_777cd4b4","line":154,"range":{"start_line":154,"start_character":59,"end_line":154,"end_character":60},"in_reply_to":"5ff73747_bf091332","updated":"2017-05-17 09:54:41.000000000","message":"Done","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"cba16b56d12ae47a074298234222397ac6d43da3","unresolved":false,"context_lines":[{"line_number":158,"context_line":"* one reservation represents one instance"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"In the above sequence, a tenant user creates a reservation with only size"},{"line_number":161,"context_line":"of the instance (e.g. flavor), the the reservation only reserves one instance."},{"line_number":162,"context_line":"It could work for the users. "},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"But they need to handle tons of reservation at client side for one reason they\u0027d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_020d4c36","line":161,"range":{"start_line":161,"start_character":31,"end_line":161,"end_character":34},"updated":"2017-04-26 06:59:56.000000000","message":"please remove it","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":158,"context_line":"* one reservation represents one instance"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"In the above sequence, a tenant user creates a reservation with only size"},{"line_number":161,"context_line":"of the instance (e.g. flavor), the the reservation only reserves one instance."},{"line_number":162,"context_line":"It could work for the users. "},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"But they need to handle tons of reservation at client side for one reason they\u0027d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_f749048b","line":161,"range":{"start_line":161,"start_character":31,"end_line":161,"end_character":34},"in_reply_to":"5ff73747_020d4c36","updated":"2017-05-17 09:54:41.000000000","message":"Done","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"cba16b56d12ae47a074298234222397ac6d43da3","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"In the above sequence, a tenant user creates a reservation with only size"},{"line_number":161,"context_line":"of the instance (e.g. flavor), the the reservation only reserves one instance."},{"line_number":162,"context_line":"It could work for the users. "},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"But they need to handle tons of reservation at client side for one reason they\u0027d"},{"line_number":165,"context_line":"like to use reservation.  The use-case shows the user\u0027d like to create multi"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_7f038b10","line":162,"range":{"start_line":162,"start_character":28,"end_line":162,"end_character":29},"updated":"2017-04-26 06:59:56.000000000","message":"unexpected space","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"In the above sequence, a tenant user creates a reservation with only size"},{"line_number":161,"context_line":"of the instance (e.g. flavor), the the reservation only reserves one instance."},{"line_number":162,"context_line":"It could work for the users. "},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"But they need to handle tons of reservation at client side for one reason they\u0027d"},{"line_number":165,"context_line":"like to use reservation.  The use-case shows the user\u0027d like to create multi"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_b75b7c52","line":162,"range":{"start_line":162,"start_character":28,"end_line":162,"end_character":29},"in_reply_to":"5ff73747_7f038b10","updated":"2017-05-17 09:54:41.000000000","message":"Done","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"cba16b56d12ae47a074298234222397ac6d43da3","unresolved":false,"context_lines":[{"line_number":212,"context_line":"Data model impact"},{"line_number":213,"context_line":"-----------------"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"One new table, \"instance_reservations\" table, is newly introduced in Blazar\u0027s"},{"line_number":216,"context_line":"database. The table has size of reserved flavor, vcpu, MB memory size and GB"},{"line_number":217,"context_line":"disk size, amount of instances created with the flavor and a flag of affinity."},{"line_number":218,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_e2ddc070","line":215,"range":{"start_line":215,"start_character":0,"end_line":215,"end_character":13},"updated":"2017-04-26 06:59:56.000000000","message":"What about the allocation info? The host reservation currently uses the computehost_allocations talbe. That should be modified for the \"instance\" (not a host) allocation algorithm.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":212,"context_line":"Data model impact"},{"line_number":213,"context_line":"-----------------"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"One new table, \"instance_reservations\" table, is newly introduced in Blazar\u0027s"},{"line_number":216,"context_line":"database. The table has size of reserved flavor, vcpu, MB memory size and GB"},{"line_number":217,"context_line":"disk size, amount of instances created with the flavor and a flag of affinity."},{"line_number":218,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_dadd0d71","line":215,"range":{"start_line":215,"start_character":0,"end_line":215,"end_character":13},"in_reply_to":"5ff73747_05ebc8db","updated":"2017-05-17 09:54:41.000000000","message":"I also added the ideas I\u0027m thinking.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"8a691ef147ece16e8ca39e0d2fb02b24837e6f3f","unresolved":false,"context_lines":[{"line_number":212,"context_line":"Data model impact"},{"line_number":213,"context_line":"-----------------"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"One new table, \"instance_reservations\" table, is newly introduced in Blazar\u0027s"},{"line_number":216,"context_line":"database. The table has size of reserved flavor, vcpu, MB memory size and GB"},{"line_number":217,"context_line":"disk size, amount of instances created with the flavor and a flag of affinity."},{"line_number":218,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_ebff99a8","line":215,"range":{"start_line":215,"start_character":0,"end_line":215,"end_character":13},"in_reply_to":"5ff73747_e2ddc070","updated":"2017-04-27 18:42:46.000000000","message":"IMO, instance reservation can use computehost_allocations table as well. It enables host reservation and instance reservation to use same freepool.  Followings are query and scenario I\u0027m thinking:\n\n1. In the create lease/reservation, blazar queries hosts that are used for instance reservations or are not used by any reservations.\n2. If the hosts are already used, blazar checks the instance of the reservation could be allocated onto the host.\n3. If the hosts aren\u0027t used by any reservation, blazar adds a mapping the reservation to computehost as computehost_allocations table.\n4. For the host reservation, current design will never pick hosts which have a mapping, a reservation to hosts, during the reservation\u0027s time window. so the instance reservation doesn\u0027t hit the host reservation\u0027s query.\n\n#4 is a main reason I added the work item, make nova_inventory.py and nova_inventory.py more generic.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"454b8983e1ac2c051d3e50586c71d310cf3ddfd4","unresolved":false,"context_lines":[{"line_number":212,"context_line":"Data model impact"},{"line_number":213,"context_line":"-----------------"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"One new table, \"instance_reservations\" table, is newly introduced in Blazar\u0027s"},{"line_number":216,"context_line":"database. The table has size of reserved flavor, vcpu, MB memory size and GB"},{"line_number":217,"context_line":"disk size, amount of instances created with the flavor and a flag of affinity."},{"line_number":218,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_05ebc8db","line":215,"range":{"start_line":215,"start_character":0,"end_line":215,"end_character":13},"in_reply_to":"5ff73747_ebff99a8","updated":"2017-04-28 03:04:41.000000000","message":"Make sense! It\u0027s reasonable for both of the host plugin and the instance plugin to use the same computehost_allocation table.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"cba16b56d12ae47a074298234222397ac6d43da3","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        vcpu INT UNSIGNED NOT NULL,"},{"line_number":223,"context_line":"        memory_mb INT UNSIGNED NOT NULL,"},{"line_number":224,"context_line":"        disk_gb INT UNSIGNED NOT NULL,"},{"line_number":225,"context_line":"        amount INT UNSIGNED NOT NULL,"},{"line_number":226,"context_line":"        affinity BOOLEAN NOT NULL,"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        PRIMARY key (id),"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_629c10c0","line":225,"range":{"start_line":225,"start_character":8,"end_line":225,"end_character":37},"updated":"2017-04-26 06:59:56.000000000","message":"Does it means the number of instances?","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"454b8983e1ac2c051d3e50586c71d310cf3ddfd4","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        vcpu INT UNSIGNED NOT NULL,"},{"line_number":223,"context_line":"        memory_mb INT UNSIGNED NOT NULL,"},{"line_number":224,"context_line":"        disk_gb INT UNSIGNED NOT NULL,"},{"line_number":225,"context_line":"        amount INT UNSIGNED NOT NULL,"},{"line_number":226,"context_line":"        affinity BOOLEAN NOT NULL,"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        PRIMARY key (id),"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_c26956f9","line":225,"range":{"start_line":225,"start_character":8,"end_line":225,"end_character":37},"in_reply_to":"5ff73747_60f048fe","updated":"2017-04-28 03:04:41.000000000","message":"No, I just wanted to confirm my understanding.\nI do not have a sense of naming... It\u0027s up to your preference :-)","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"8a691ef147ece16e8ca39e0d2fb02b24837e6f3f","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        vcpu INT UNSIGNED NOT NULL,"},{"line_number":223,"context_line":"        memory_mb INT UNSIGNED NOT NULL,"},{"line_number":224,"context_line":"        disk_gb INT UNSIGNED NOT NULL,"},{"line_number":225,"context_line":"        amount INT UNSIGNED NOT NULL,"},{"line_number":226,"context_line":"        affinity BOOLEAN NOT NULL,"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        PRIMARY key (id),"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_60f048fe","line":225,"range":{"start_line":225,"start_character":8,"end_line":225,"end_character":37},"in_reply_to":"5ff73747_629c10c0","updated":"2017-04-27 18:42:46.000000000","message":"yes. Is it more clear to use \"number\"?","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        vcpu INT UNSIGNED NOT NULL,"},{"line_number":223,"context_line":"        memory_mb INT UNSIGNED NOT NULL,"},{"line_number":224,"context_line":"        disk_gb INT UNSIGNED NOT NULL,"},{"line_number":225,"context_line":"        amount INT UNSIGNED NOT NULL,"},{"line_number":226,"context_line":"        affinity BOOLEAN NOT NULL,"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        PRIMARY key (id),"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_dddd0771","line":225,"range":{"start_line":225,"start_character":8,"end_line":225,"end_character":37},"in_reply_to":"5ff73747_c26956f9","updated":"2017-05-17 09:54:41.000000000","message":"I decided to use \"amount\" because \"number\" makes misunderstanding with \"numbering\" like instance #1, instance #2.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"cba16b56d12ae47a074298234222397ac6d43da3","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        memory_mb INT UNSIGNED NOT NULL,"},{"line_number":224,"context_line":"        disk_gb INT UNSIGNED NOT NULL,"},{"line_number":225,"context_line":"        amount INT UNSIGNED NOT NULL,"},{"line_number":226,"context_line":"        affinity BOOLEAN NOT NULL,"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        PRIMARY key (id),"},{"line_number":229,"context_line":"        INDEX (id, reservation_id)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_c26524e3","line":226,"range":{"start_line":226,"start_character":8,"end_line":226,"end_character":33},"updated":"2017-04-26 06:59:56.000000000","message":"Does True means \"affinity\" and False means \"anti-affinity\"? What if no affinity rule is needed?","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"454b8983e1ac2c051d3e50586c71d310cf3ddfd4","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        memory_mb INT UNSIGNED NOT NULL,"},{"line_number":224,"context_line":"        disk_gb INT UNSIGNED NOT NULL,"},{"line_number":225,"context_line":"        amount INT UNSIGNED NOT NULL,"},{"line_number":226,"context_line":"        affinity BOOLEAN NOT NULL,"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        PRIMARY key (id),"},{"line_number":229,"context_line":"        INDEX (id, reservation_id)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_e500dc03","line":226,"range":{"start_line":226,"start_character":8,"end_line":226,"end_character":33},"in_reply_to":"5ff73747_80c23458","updated":"2017-04-28 03:04:41.000000000","message":"We do not need to care \"no affinity\" for the short term. But in long term, I think \"no affinity\" is better to be supported. I understand it complicates the allocation algorithm because as you said no affinity is hard to track where the instance will use and be scheduled, though.\nI agree with making this field boolean (only affinity/anti-affinity) for now.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"8a691ef147ece16e8ca39e0d2fb02b24837e6f3f","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        memory_mb INT UNSIGNED NOT NULL,"},{"line_number":224,"context_line":"        disk_gb INT UNSIGNED NOT NULL,"},{"line_number":225,"context_line":"        amount INT UNSIGNED NOT NULL,"},{"line_number":226,"context_line":"        affinity BOOLEAN NOT NULL,"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        PRIMARY key (id),"},{"line_number":229,"context_line":"        INDEX (id, reservation_id)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_80c23458","line":226,"range":{"start_line":226,"start_character":8,"end_line":226,"end_character":33},"in_reply_to":"5ff73747_c26524e3","updated":"2017-04-27 18:42:46.000000000","message":"yes. True is affinity and False is anti-affinity.  I didn\u0027t expect no affinity rule.  if needed, I can imagine 3 rules. Is it enough?\n\n* affinity\n* anti-affinity\n* no affinity","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"cba16b56d12ae47a074298234222397ac6d43da3","unresolved":false,"context_lines":[{"line_number":232,"context_line":"          ON DELETE CASCADE,"},{"line_number":233,"context_line":"    );"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"At the short term goal, the affinity flag only supports False since the"},{"line_number":236,"context_line":"instance reservation only supports anti-affinity rule.  The plugin manages"},{"line_number":237,"context_line":"multi types of Nova\u0027s resources. The mappings with each resources to column"},{"line_number":238,"context_line":"data are following:"},{"line_number":239,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_6285305a","line":236,"range":{"start_line":235,"start_character":24,"end_line":236,"end_character":54},"updated":"2017-04-26 06:59:56.000000000","message":"Same with the above comment. What if no affinity rule is needed?","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"454b8983e1ac2c051d3e50586c71d310cf3ddfd4","unresolved":false,"context_lines":[{"line_number":232,"context_line":"          ON DELETE CASCADE,"},{"line_number":233,"context_line":"    );"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"At the short term goal, the affinity flag only supports False since the"},{"line_number":236,"context_line":"instance reservation only supports anti-affinity rule.  The plugin manages"},{"line_number":237,"context_line":"multi types of Nova\u0027s resources. The mappings with each resources to column"},{"line_number":238,"context_line":"data are following:"},{"line_number":239,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_e5857c5b","line":236,"range":{"start_line":235,"start_character":24,"end_line":236,"end_character":54},"in_reply_to":"5ff73747_0002a43d","updated":"2017-04-28 03:04:41.000000000","message":"Same with above.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"8a691ef147ece16e8ca39e0d2fb02b24837e6f3f","unresolved":false,"context_lines":[{"line_number":232,"context_line":"          ON DELETE CASCADE,"},{"line_number":233,"context_line":"    );"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"At the short term goal, the affinity flag only supports False since the"},{"line_number":236,"context_line":"instance reservation only supports anti-affinity rule.  The plugin manages"},{"line_number":237,"context_line":"multi types of Nova\u0027s resources. The mappings with each resources to column"},{"line_number":238,"context_line":"data are following:"},{"line_number":239,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_0002a43d","line":236,"range":{"start_line":235,"start_character":24,"end_line":236,"end_character":54},"in_reply_to":"5ff73747_6285305a","updated":"2017-04-27 18:42:46.000000000","message":"As described above, I can imagine 3 rules.\n\nIMO, we only support anti-affinity in short term goal because no affinity could make creating instance API with the reservation complex.  Current design lets users to use a flavor related the reservation and to add --hint for anti-affinity.  If we support no affinity, users only use the flavor.\n\nAdditionally, no affinity is hard to track where the instance will use and be scheduled.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"cba16b56d12ae47a074298234222397ac6d43da3","unresolved":false,"context_lines":[{"line_number":257,"context_line":""},{"line_number":258,"context_line":"  * Introduce new resource_type \"virtual:instance\" for a reservation"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"  Example:"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"  .. sourcecode:: json"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"     {"},{"line_number":265,"context_line":"       \"leases\": {"},{"line_number":266,"context_line":"         \"reservations\": ["},{"line_number":267,"context_line":"           {"},{"line_number":268,"context_line":"             \"id\": \"reservation-id\","},{"line_number":269,"context_line":"             \"status\": \"pending\","},{"line_number":270,"context_line":"             \"lease_id\": \"lease-id-1\","},{"line_number":271,"context_line":"             \"resource_id\": \"resource_id\","},{"line_number":272,"context_line":"             \"resource_type\": \"virtual:instance\","},{"line_number":273,"context_line":"             \"resource_info\": {"},{"line_number":274,"context_line":"               \"vcpu\": 4,"},{"line_number":275,"context_line":"               \"memory_mb\": 4096,"},{"line_number":276,"context_line":"               \"disk_gb\": 10,"},{"line_number":277,"context_line":"               \"amount\": 5,"},{"line_number":278,"context_line":"               \"affinity\": False"},{"line_number":279,"context_line":"             },"},{"line_number":280,"context_line":"             \"created_at\": \"2017-05-01 10:00:00\","},{"line_number":281,"context_line":"             \"updated_at\": \"2017-05-01 11:00:00\","},{"line_number":282,"context_line":"           }],"},{"line_number":283,"context_line":"        ..snippet.."},{"line_number":284,"context_line":"       }"},{"line_number":285,"context_line":"     }"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"* URL: GET /v1/leases"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_c2464422","line":285,"range":{"start_line":260,"start_character":2,"end_line":285,"end_character":6},"updated":"2017-04-26 06:59:56.000000000","message":"Is it an example of response?","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"8a691ef147ece16e8ca39e0d2fb02b24837e6f3f","unresolved":false,"context_lines":[{"line_number":257,"context_line":""},{"line_number":258,"context_line":"  * Introduce new resource_type \"virtual:instance\" for a reservation"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"  Example:"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"  .. sourcecode:: json"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"     {"},{"line_number":265,"context_line":"       \"leases\": {"},{"line_number":266,"context_line":"         \"reservations\": ["},{"line_number":267,"context_line":"           {"},{"line_number":268,"context_line":"             \"id\": \"reservation-id\","},{"line_number":269,"context_line":"             \"status\": \"pending\","},{"line_number":270,"context_line":"             \"lease_id\": \"lease-id-1\","},{"line_number":271,"context_line":"             \"resource_id\": \"resource_id\","},{"line_number":272,"context_line":"             \"resource_type\": \"virtual:instance\","},{"line_number":273,"context_line":"             \"resource_info\": {"},{"line_number":274,"context_line":"               \"vcpu\": 4,"},{"line_number":275,"context_line":"               \"memory_mb\": 4096,"},{"line_number":276,"context_line":"               \"disk_gb\": 10,"},{"line_number":277,"context_line":"               \"amount\": 5,"},{"line_number":278,"context_line":"               \"affinity\": False"},{"line_number":279,"context_line":"             },"},{"line_number":280,"context_line":"             \"created_at\": \"2017-05-01 10:00:00\","},{"line_number":281,"context_line":"             \"updated_at\": \"2017-05-01 11:00:00\","},{"line_number":282,"context_line":"           }],"},{"line_number":283,"context_line":"        ..snippet.."},{"line_number":284,"context_line":"       }"},{"line_number":285,"context_line":"     }"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"* URL: GET /v1/leases"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_809b5416","line":285,"range":{"start_line":260,"start_character":2,"end_line":285,"end_character":6},"in_reply_to":"5ff73747_c2464422","updated":"2017-04-27 18:42:46.000000000","message":"oh, you\u0027re right. I\u0027ll add request body.","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"cba16b56d12ae47a074298234222397ac6d43da3","unresolved":false,"context_lines":[{"line_number":370,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"1. Capacity Management User Story: http://specs.openstack.org/openstack/openstack-user-stories/user-stories/proposed/capacity_management.html"},{"line_number":374,"context_line":"2. VNFD: http://www.etsi.org/deliver/etsi_gs/NFV-IFA"},{"line_number":375,"context_line":"3. PlacementAPI: https://docs.openstack.org/developer/nova/placement.html"},{"line_number":376,"context_line":"4. Custom Resource Class: https://specs.openstack.org/openstack/nova-specs/specs/ocata/implemented/custom-resource-classes.html"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_22296837","line":373,"range":{"start_line":373,"start_character":3,"end_line":373,"end_character":141},"updated":"2017-04-26 06:59:56.000000000","message":"The \"user stories\" have been renamed \"development proposals.\" The link should be updated, but the new link looks is Not Found...\n\nexpected new link (Not Found): https://specs.openstack.org/openstack/development-proposals/development-proposals/proposed/capacity-management.html\n\nIt\u0027s also here: http://git.openstack.org/cgit/openstack/development-proposals/tree/development-proposals/proposed/capacity-management.rst","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4793a9193168dbaa13b1f8e16549987a017b48f1","unresolved":false,"context_lines":[{"line_number":370,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"1. Capacity Management User Story: http://specs.openstack.org/openstack/openstack-user-stories/user-stories/proposed/capacity_management.html"},{"line_number":374,"context_line":"2. VNFD: http://www.etsi.org/deliver/etsi_gs/NFV-IFA"},{"line_number":375,"context_line":"3. PlacementAPI: https://docs.openstack.org/developer/nova/placement.html"},{"line_number":376,"context_line":"4. Custom Resource Class: https://specs.openstack.org/openstack/nova-specs/specs/ocata/implemented/custom-resource-classes.html"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f013ff3_dd74e76a","line":373,"range":{"start_line":373,"start_character":3,"end_line":373,"end_character":141},"in_reply_to":"5ff73747_22296837","updated":"2017-05-17 09:54:41.000000000","message":"Done","commit_id":"736268c13aebff0435cb0523b6352c718a921932"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"f1a3b3a24fde56b442cc46b94bce41f678dd784d","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"     The tricks Blazar is doing here are:"},{"line_number":126,"context_line":"      * create server-group with anti-affinity policy"},{"line_number":127,"context_line":"      * create a flavor with two etra_specs,"},{"line_number":128,"context_line":"        aggregate_instance_extra_specs:reservations:\u003creservation-id\u003e and"},{"line_number":129,"context_line":"        affinity_id:\u003cserver-group-id\u003e, and is_public\u003dFalse"},{"line_number":130,"context_line":"      * create a new host aggregate with above aggregate_instance_extra_specs"},{"line_number":131,"context_line":"        and filter_tenant_id of the requesting user\u0027s project id"},{"line_number":132,"context_line":"      * doesn\u0027t bring out the hypervisor from the freepool because other"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff0f0b1f_01353af7","line":129,"range":{"start_line":127,"start_character":5,"end_line":129,"end_character":58},"updated":"2017-05-22 04:39:53.000000000","message":"It\u0027s better to add the following description:\n\n* Add the requesting user\u0027s project ID to an access list of the flavor [1].\n\n[1] https://developer.openstack.org/api-ref/compute/?expanded\u003dadd-flavor-access-to-tenant-addtenantaccess-action-detail#add-flavor-access-to-tenant-addtenantaccess-action","commit_id":"95f5e433c0f003ceae395707f054828435c4e4c3"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4091a2a6d895008dcb98e43c2b2f34301ba1c6e7","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"     The tricks Blazar is doing here are:"},{"line_number":126,"context_line":"      * create server-group with anti-affinity policy"},{"line_number":127,"context_line":"      * create a flavor with two etra_specs,"},{"line_number":128,"context_line":"        aggregate_instance_extra_specs:reservations:\u003creservation-id\u003e and"},{"line_number":129,"context_line":"        affinity_id:\u003cserver-group-id\u003e, and is_public\u003dFalse"},{"line_number":130,"context_line":"      * create a new host aggregate with above aggregate_instance_extra_specs"},{"line_number":131,"context_line":"        and filter_tenant_id of the requesting user\u0027s project id"},{"line_number":132,"context_line":"      * doesn\u0027t bring out the hypervisor from the freepool because other"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff0f0b1f_c946487d","line":129,"range":{"start_line":127,"start_character":5,"end_line":129,"end_character":58},"in_reply_to":"ff0f0b1f_01353af7","updated":"2017-05-22 08:13:56.000000000","message":"you\u0027re right. sorry, I forgot it.","commit_id":"95f5e433c0f003ceae395707f054828435c4e4c3"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"f1a3b3a24fde56b442cc46b94bce41f678dd784d","unresolved":false,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":"  .. sourcecode:: none"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"     CREATE TABLE instance_reservations ("},{"line_number":262,"context_line":"         id INT NOT NULL,"},{"line_number":263,"context_line":"         reservation_id VARCHAR(255) NOT NULL,"},{"line_number":264,"context_line":"         vcpu INT UNSIGNED NOT NULL,"},{"line_number":265,"context_line":"         memory_mb INT UNSIGNED NOT NULL,"},{"line_number":266,"context_line":"         disk_gb INT UNSIGNED NOT NULL,"},{"line_number":267,"context_line":"         amount INT UNSIGNED NOT NULL,"},{"line_number":268,"context_line":"         affinity BOOLEAN NOT NULL,"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"         PRIMARY key (id),"},{"line_number":271,"context_line":"         INDEX (id, reservation_id)"},{"line_number":272,"context_line":"         FOREIGN KEY (reservation_id)"},{"line_number":273,"context_line":"           REFERENCES reservations(id)"},{"line_number":274,"context_line":"           ON DELETE CASCADE,"},{"line_number":275,"context_line":"     );"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"At the short term goal, the affinity flag only supports False since the"},{"line_number":278,"context_line":"instance reservation only supports anti-affinity rule.  The plugin manages"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff0f0b1f_41efb2af","line":275,"range":{"start_line":261,"start_character":0,"end_line":275,"end_character":7},"updated":"2017-05-22 04:39:53.000000000","message":"I think IDs of resources, e.g., a flavor ID and an aggregate ID, should be contained in the instance_reservations table because they are required for some methods of the instance plugin. For example, A flavor ID and an aggregate ID are needed for the on_end() method to clean an environment.\n\nFor the current host plugin, an aggregate ID is held in the resource_id field of the reservations table. However, I\u0027m proposing to change the ID to be held in the computehost_reservations table[1]. If you agree with my proposal, the resource_id field of the reservations table should have the ID of the instance_reservations table, and the instance_reservations table should have IDs of resources themselves.\n\n[1] Ia042020088af9e34e3430c44814cd69f4ed303fb","commit_id":"95f5e433c0f003ceae395707f054828435c4e4c3"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"a4ed465bde0720d9954c66a49e7cd308efa5a5dd","unresolved":false,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":"  .. sourcecode:: none"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"     CREATE TABLE instance_reservations ("},{"line_number":262,"context_line":"         id INT NOT NULL,"},{"line_number":263,"context_line":"         reservation_id VARCHAR(255) NOT NULL,"},{"line_number":264,"context_line":"         vcpu INT UNSIGNED NOT NULL,"},{"line_number":265,"context_line":"         memory_mb INT UNSIGNED NOT NULL,"},{"line_number":266,"context_line":"         disk_gb INT UNSIGNED NOT NULL,"},{"line_number":267,"context_line":"         amount INT UNSIGNED NOT NULL,"},{"line_number":268,"context_line":"         affinity BOOLEAN NOT NULL,"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"         PRIMARY key (id),"},{"line_number":271,"context_line":"         INDEX (id, reservation_id)"},{"line_number":272,"context_line":"         FOREIGN KEY (reservation_id)"},{"line_number":273,"context_line":"           REFERENCES reservations(id)"},{"line_number":274,"context_line":"           ON DELETE CASCADE,"},{"line_number":275,"context_line":"     );"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"At the short term goal, the affinity flag only supports False since the"},{"line_number":278,"context_line":"instance reservation only supports anti-affinity rule.  The plugin manages"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff0f0b1f_a7869bda","line":275,"range":{"start_line":261,"start_character":0,"end_line":275,"end_character":7},"in_reply_to":"ff0f0b1f_2c8dd27a","updated":"2017-05-22 09:16:50.000000000","message":"In short-term, following IDs may be needed for the on_end() clean-up:\n\n* flavor id: used for deleting the flavor and instances which are created with the flavor.\n* aggregate id: used for deleting the aggregate\n* server_group id: used for deleting the server_group\n\nTechnically, it is not necessary to store them into the instance_reservations table because they can be retrieved by the reservation id. But I think it\u0027s better to store them into the instance_reservations table for a better understanding.\n\nHowever, as you mentioned, they may not needed if we use the placement service. How about storing them into the instance_reservations table for the first step, and remove them when we start using placement service?","commit_id":"95f5e433c0f003ceae395707f054828435c4e4c3"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"4091a2a6d895008dcb98e43c2b2f34301ba1c6e7","unresolved":false,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":"  .. sourcecode:: none"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"     CREATE TABLE instance_reservations ("},{"line_number":262,"context_line":"         id INT NOT NULL,"},{"line_number":263,"context_line":"         reservation_id VARCHAR(255) NOT NULL,"},{"line_number":264,"context_line":"         vcpu INT UNSIGNED NOT NULL,"},{"line_number":265,"context_line":"         memory_mb INT UNSIGNED NOT NULL,"},{"line_number":266,"context_line":"         disk_gb INT UNSIGNED NOT NULL,"},{"line_number":267,"context_line":"         amount INT UNSIGNED NOT NULL,"},{"line_number":268,"context_line":"         affinity BOOLEAN NOT NULL,"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"         PRIMARY key (id),"},{"line_number":271,"context_line":"         INDEX (id, reservation_id)"},{"line_number":272,"context_line":"         FOREIGN KEY (reservation_id)"},{"line_number":273,"context_line":"           REFERENCES reservations(id)"},{"line_number":274,"context_line":"           ON DELETE CASCADE,"},{"line_number":275,"context_line":"     );"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"At the short term goal, the affinity flag only supports False since the"},{"line_number":278,"context_line":"instance reservation only supports anti-affinity rule.  The plugin manages"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff0f0b1f_2c8dd27a","line":275,"range":{"start_line":261,"start_character":0,"end_line":275,"end_character":7},"in_reply_to":"ff0f0b1f_41efb2af","updated":"2017-05-22 08:13:56.000000000","message":"I agree to have IDs of resources for instance reservation in the table.\n\nDo you think the table has columns for all following three ids? or some of them?  Current design is keeping flavor id in the table and not keeping aggregate id and server_group id because of Long-term goal.\n\n  * flavor id\n  * aggregate id\n  * server_group id","commit_id":"95f5e433c0f003ceae395707f054828435c4e4c3"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"18817923ced1aca3a7c6811306cbdaf4c7a25a58","unresolved":false,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":"  .. sourcecode:: none"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"     CREATE TABLE instance_reservations ("},{"line_number":262,"context_line":"         id INT NOT NULL,"},{"line_number":263,"context_line":"         reservation_id VARCHAR(255) NOT NULL,"},{"line_number":264,"context_line":"         vcpu INT UNSIGNED NOT NULL,"},{"line_number":265,"context_line":"         memory_mb INT UNSIGNED NOT NULL,"},{"line_number":266,"context_line":"         disk_gb INT UNSIGNED NOT NULL,"},{"line_number":267,"context_line":"         amount INT UNSIGNED NOT NULL,"},{"line_number":268,"context_line":"         affinity BOOLEAN NOT NULL,"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"         PRIMARY key (id),"},{"line_number":271,"context_line":"         INDEX (id, reservation_id)"},{"line_number":272,"context_line":"         FOREIGN KEY (reservation_id)"},{"line_number":273,"context_line":"           REFERENCES reservations(id)"},{"line_number":274,"context_line":"           ON DELETE CASCADE,"},{"line_number":275,"context_line":"     );"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"At the short term goal, the affinity flag only supports False since the"},{"line_number":278,"context_line":"instance reservation only supports anti-affinity rule.  The plugin manages"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff0f0b1f_d50fdd34","line":275,"range":{"start_line":261,"start_character":0,"end_line":275,"end_character":7},"in_reply_to":"ff0f0b1f_a7869bda","updated":"2017-05-23 01:56:35.000000000","message":"I added the three columns.","commit_id":"95f5e433c0f003ceae395707f054828435c4e4c3"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"c6ee2e4aa8718957330a5c3f04602c820b64e42f","unresolved":false,"context_lines":[{"line_number":100,"context_line":"For the anti-affinity rule, Blazar will do following steps:"},{"line_number":101,"context_line":"  0. As a preparation, Blazar adds filter_tenant_id\u003dblazar-user-id to"},{"line_number":102,"context_line":"     freepool aggregate to prevent non-reservation instances from been"},{"line_number":103,"context_line":"     scheduled into the frepool"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"  1. A tenant user creates their reservation, in term of Blazar called"},{"line_number":106,"context_line":"     \"lease\", with a time frame, a size of one instance and how many of the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff0f0b1f_3ccfc429","line":103,"updated":"2017-05-25 13:01:55.000000000","message":"freepool","commit_id":"d4ec51b1980e604270d5d73fdc6f6cb9968ab41f"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"1ba081fac97fb1f01f005b20b749d2d17a3f873d","unresolved":false,"context_lines":[{"line_number":100,"context_line":"For the anti-affinity rule, Blazar will do following steps:"},{"line_number":101,"context_line":"  0. As a preparation, Blazar adds filter_tenant_id\u003dblazar-user-id to"},{"line_number":102,"context_line":"     freepool aggregate to prevent non-reservation instances from been"},{"line_number":103,"context_line":"     scheduled into the frepool"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"  1. A tenant user creates their reservation, in term of Blazar called"},{"line_number":106,"context_line":"     \"lease\", with a time frame, a size of one instance and how many of the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff0f0b1f_a693ab00","line":103,"in_reply_to":"ff0f0b1f_3ccfc429","updated":"2017-05-26 05:27:01.000000000","message":"Done","commit_id":"d4ec51b1980e604270d5d73fdc6f6cb9968ab41f"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"c6ee2e4aa8718957330a5c3f04602c820b64e42f","unresolved":false,"context_lines":[{"line_number":162,"context_line":"     \"lease\", with a time frame, a size of one instance and how many"},{"line_number":163,"context_line":"     of the instance."},{"line_number":164,"context_line":"  2. Blazar checks whether the reservation is acceptable during the time"},{"line_number":165,"context_line":"     frame or not. If acceptable, Blazar recodes the reservation request"},{"line_number":166,"context_line":"     in its db and updates the usage of hypervisor in freepool. Then"},{"line_number":167,"context_line":"     blazar returns reservation id.  If not, Blazar respondes the reservation"},{"line_number":168,"context_line":"     is not acceptable."}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff0f0b1f_bc9074ee","line":165,"updated":"2017-05-25 13:01:55.000000000","message":"records?","commit_id":"d4ec51b1980e604270d5d73fdc6f6cb9968ab41f"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"1ba081fac97fb1f01f005b20b749d2d17a3f873d","unresolved":false,"context_lines":[{"line_number":162,"context_line":"     \"lease\", with a time frame, a size of one instance and how many"},{"line_number":163,"context_line":"     of the instance."},{"line_number":164,"context_line":"  2. Blazar checks whether the reservation is acceptable during the time"},{"line_number":165,"context_line":"     frame or not. If acceptable, Blazar recodes the reservation request"},{"line_number":166,"context_line":"     in its db and updates the usage of hypervisor in freepool. Then"},{"line_number":167,"context_line":"     blazar returns reservation id.  If not, Blazar respondes the reservation"},{"line_number":168,"context_line":"     is not acceptable."}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff0f0b1f_c61c5fc3","line":165,"in_reply_to":"ff0f0b1f_bc9074ee","updated":"2017-05-26 05:27:01.000000000","message":"Done","commit_id":"d4ec51b1980e604270d5d73fdc6f6cb9968ab41f"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"c6ee2e4aa8718957330a5c3f04602c820b64e42f","unresolved":false,"context_lines":[{"line_number":222,"context_line":"On the other hand, from the user\u0027s perspective, some problems could happen.  As"},{"line_number":223,"context_line":"described in motivation section, VNF application needs affinity or anti-affinity"},{"line_number":224,"context_line":"rule for placement of its instances.  Nova have \u0027server group\u0027 API for the"},{"line_number":225,"context_line":"affinity and anti-affinity placement. But it doesn\u0027t ensure the requred amount"},{"line_number":226,"context_line":"of instances can be located on the same host.  Similarly, it\u0027s doesn\u0027t ensure"},{"line_number":227,"context_line":"the required amount of instance can be accmodated by all hypervisors because of"},{"line_number":228,"context_line":"all hypervisors slots are consumed by others."}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff0f0b1f_3c6b44f1","line":225,"updated":"2017-05-25 13:01:55.000000000","message":"required","commit_id":"d4ec51b1980e604270d5d73fdc6f6cb9968ab41f"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"1ba081fac97fb1f01f005b20b749d2d17a3f873d","unresolved":false,"context_lines":[{"line_number":222,"context_line":"On the other hand, from the user\u0027s perspective, some problems could happen.  As"},{"line_number":223,"context_line":"described in motivation section, VNF application needs affinity or anti-affinity"},{"line_number":224,"context_line":"rule for placement of its instances.  Nova have \u0027server group\u0027 API for the"},{"line_number":225,"context_line":"affinity and anti-affinity placement. But it doesn\u0027t ensure the requred amount"},{"line_number":226,"context_line":"of instances can be located on the same host.  Similarly, it\u0027s doesn\u0027t ensure"},{"line_number":227,"context_line":"the required amount of instance can be accmodated by all hypervisors because of"},{"line_number":228,"context_line":"all hypervisors slots are consumed by others."}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff0f0b1f_668113c4","line":225,"in_reply_to":"ff0f0b1f_3c6b44f1","updated":"2017-05-26 05:27:01.000000000","message":"Done","commit_id":"d4ec51b1980e604270d5d73fdc6f6cb9968ab41f"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"c6ee2e4aa8718957330a5c3f04602c820b64e42f","unresolved":false,"context_lines":[{"line_number":224,"context_line":"rule for placement of its instances.  Nova have \u0027server group\u0027 API for the"},{"line_number":225,"context_line":"affinity and anti-affinity placement. But it doesn\u0027t ensure the requred amount"},{"line_number":226,"context_line":"of instances can be located on the same host.  Similarly, it\u0027s doesn\u0027t ensure"},{"line_number":227,"context_line":"the required amount of instance can be accmodated by all hypervisors because of"},{"line_number":228,"context_line":"all hypervisors slots are consumed by others."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"Of course, cloud provider usually should prepare their resources as many as the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff0f0b1f_bc7e34ac","line":227,"updated":"2017-05-25 13:01:55.000000000","message":"accommodated","commit_id":"d4ec51b1980e604270d5d73fdc6f6cb9968ab41f"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"1ba081fac97fb1f01f005b20b749d2d17a3f873d","unresolved":false,"context_lines":[{"line_number":224,"context_line":"rule for placement of its instances.  Nova have \u0027server group\u0027 API for the"},{"line_number":225,"context_line":"affinity and anti-affinity placement. But it doesn\u0027t ensure the requred amount"},{"line_number":226,"context_line":"of instances can be located on the same host.  Similarly, it\u0027s doesn\u0027t ensure"},{"line_number":227,"context_line":"the required amount of instance can be accmodated by all hypervisors because of"},{"line_number":228,"context_line":"all hypervisors slots are consumed by others."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"Of course, cloud provider usually should prepare their resources as many as the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff0f0b1f_86cae717","line":227,"in_reply_to":"ff0f0b1f_bc7e34ac","updated":"2017-05-26 05:27:01.000000000","message":"Done","commit_id":"d4ec51b1980e604270d5d73fdc6f6cb9968ab41f"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Proposed change"},{"line_number":45,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Blazar enables users to specify amount of instances with one flavor. As"},{"line_number":48,"context_line":"described in use cases, users who reserve instances specify a tuple of"},{"line_number":49,"context_line":"amount of instances and a flavor definition of the instances.  A flavor"},{"line_number":50,"context_line":"definition contains three informations; the number of vcpus, the amount"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_36c57c5c","line":47,"range":{"start_line":47,"start_character":52,"end_line":47,"end_character":67},"updated":"2017-05-26 12:57:09.000000000","message":"minor: \"of a particular flavour\"","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Blazar enables users to specify amount of instances with one flavor. As"},{"line_number":48,"context_line":"described in use cases, users who reserve instances specify a tuple of"},{"line_number":49,"context_line":"amount of instances and a flavor definition of the instances.  A flavor"},{"line_number":50,"context_line":"definition contains three informations; the number of vcpus, the amount"},{"line_number":51,"context_line":"of RAM and the size of disk."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Following is a basic idea and a sequence of the change:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_b6ae2c96","line":50,"range":{"start_line":50,"start_character":38,"end_line":50,"end_character":39},"updated":"2017-05-26 12:57:09.000000000","message":"s/;/:/","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Following is a basic idea and a sequence of the change:"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    1. A tenant user creates their reservation, in term of Blazar called"},{"line_number":56,"context_line":"       \"lease\", with set of a time frame, definitions of a flavor for reserved"},{"line_number":57,"context_line":"       instances and how many of the instance."},{"line_number":58,"context_line":"    2. Blazar issues a lease id to the user if the total amount of instances"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_b6874c10","line":55,"range":{"start_line":55,"start_character":29,"end_line":55,"end_character":34},"updated":"2017-05-26 12:57:09.000000000","message":"its","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":53,"context_line":"Following is a basic idea and a sequence of the change:"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    1. A tenant user creates their reservation, in term of Blazar called"},{"line_number":56,"context_line":"       \"lease\", with set of a time frame, definitions of a flavor for reserved"},{"line_number":57,"context_line":"       instances and how many of the instance."},{"line_number":58,"context_line":"    2. Blazar issues a lease id to the user if the total amount of instances"},{"line_number":59,"context_line":"       defined in the request (e.g. size of flavor times number of instances)"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_d9a9d390","line":56,"range":{"start_line":56,"start_character":16,"end_line":56,"end_character":29},"updated":"2017-05-26 12:57:09.000000000","message":"\"with a set of\" ?","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":57,"context_line":"       instances and how many of the instance."},{"line_number":58,"context_line":"    2. Blazar issues a lease id to the user if the total amount of instances"},{"line_number":59,"context_line":"       defined in the request (e.g. size of flavor times number of instances)"},{"line_number":60,"context_line":"       is less than amout of unused capacity for reservations in the time frame."},{"line_number":61,"context_line":"       Blazar\u0027s leases could have multi reservations. Blazar checks whether"},{"line_number":62,"context_line":"       the unused capacity can accomodate all reservations or not. If not,"},{"line_number":63,"context_line":"       Blazar doesn\u0027t issue a lease id."}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_399a0f6e","line":60,"range":{"start_line":60,"start_character":20,"end_line":60,"end_character":25},"updated":"2017-05-26 12:57:09.000000000","message":"\"amount\" or better \"the amount\"","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    2. Blazar issues a lease id to the user if the total amount of instances"},{"line_number":59,"context_line":"       defined in the request (e.g. size of flavor times number of instances)"},{"line_number":60,"context_line":"       is less than amout of unused capacity for reservations in the time frame."},{"line_number":61,"context_line":"       Blazar\u0027s leases could have multi reservations. Blazar checks whether"},{"line_number":62,"context_line":"       the unused capacity can accomodate all reservations or not. If not,"},{"line_number":63,"context_line":"       Blazar doesn\u0027t issue a lease id."},{"line_number":64,"context_line":"    3. The user creates their instance via Nova API with the reservation id."}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_198e2b27","line":61,"range":{"start_line":61,"start_character":23,"end_line":61,"end_character":33},"updated":"2017-05-26 12:57:09.000000000","message":"can contain","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    2. Blazar issues a lease id to the user if the total amount of instances"},{"line_number":59,"context_line":"       defined in the request (e.g. size of flavor times number of instances)"},{"line_number":60,"context_line":"       is less than amout of unused capacity for reservations in the time frame."},{"line_number":61,"context_line":"       Blazar\u0027s leases could have multi reservations. Blazar checks whether"},{"line_number":62,"context_line":"       the unused capacity can accomodate all reservations or not. If not,"},{"line_number":63,"context_line":"       Blazar doesn\u0027t issue a lease id."},{"line_number":64,"context_line":"    3. The user creates their instance via Nova API with the reservation id."}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_7979a72d","line":61,"range":{"start_line":61,"start_character":34,"end_line":61,"end_character":39},"updated":"2017-05-26 12:57:09.000000000","message":"multiple","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":61,"context_line":"       Blazar\u0027s leases could have multi reservations. Blazar checks whether"},{"line_number":62,"context_line":"       the unused capacity can accomodate all reservations or not. If not,"},{"line_number":63,"context_line":"       Blazar doesn\u0027t issue a lease id."},{"line_number":64,"context_line":"    3. The user creates their instance via Nova API with the reservation id."},{"line_number":65,"context_line":"       The request with the id only be accepted within the reservation\u0027s"},{"line_number":66,"context_line":"       time frame."},{"line_number":67,"context_line":"    4. Nova creates the instance onto the hypervisor that Blazar marks it has"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_99a11b99","line":64,"range":{"start_line":64,"start_character":24,"end_line":64,"end_character":38},"updated":"2017-05-26 12:57:09.000000000","message":"its instances","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":62,"context_line":"       the unused capacity can accomodate all reservations or not. If not,"},{"line_number":63,"context_line":"       Blazar doesn\u0027t issue a lease id."},{"line_number":64,"context_line":"    3. The user creates their instance via Nova API with the reservation id."},{"line_number":65,"context_line":"       The request with the id only be accepted within the reservation\u0027s"},{"line_number":66,"context_line":"       time frame."},{"line_number":67,"context_line":"    4. Nova creates the instance onto the hypervisor that Blazar marks it has"},{"line_number":68,"context_line":"       a capacity for the reservation."}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_39a8cf75","line":65,"range":{"start_line":65,"start_character":31,"end_line":65,"end_character":38},"updated":"2017-05-26 12:57:09.000000000","message":"is only","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    4. Nova creates the instance onto the hypervisor that Blazar marks it has"},{"line_number":68,"context_line":"       a capacity for the reservation."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"To realize the sequence this BP introduces a new resource plugin:"},{"line_number":71,"context_line":"\"virtual:instance\" for Blazar project. The plugin will take 2 phase"},{"line_number":72,"context_line":"implementations because of following reasons."},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_79c76747","line":70,"range":{"start_line":70,"start_character":64,"end_line":70,"end_character":65},"updated":"2017-05-26 12:57:09.000000000","message":"s/:/ /","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":74,"context_line":"Short-term goal"},{"line_number":75,"context_line":"---------------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Instance reservation only supports anti-affinity rule reservation because"},{"line_number":78,"context_line":"affinity rule reservation has already been achived by host reservation."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Affinity rule reservation by host reservation feature is not an ideal goal."}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_39d68ff3","line":77,"range":{"start_line":77,"start_character":0,"end_line":77,"end_character":25},"updated":"2017-05-26 12:57:09.000000000","message":"With respect to affinitiy and anti-affinity rules, instance reservation only ...","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":75,"context_line":"---------------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Instance reservation only supports anti-affinity rule reservation because"},{"line_number":78,"context_line":"affinity rule reservation has already been achived by host reservation."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Affinity rule reservation by host reservation feature is not an ideal goal."},{"line_number":81,"context_line":"For the datacenter usage efficiency, host reservation wouldn\u0027t be a better"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_d9e553de","line":78,"range":{"start_line":78,"start_character":43,"end_line":78,"end_character":50},"updated":"2017-05-26 12:57:09.000000000","message":"achieved","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Instance reservation only supports anti-affinity rule reservation because"},{"line_number":78,"context_line":"affinity rule reservation has already been achived by host reservation."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Affinity rule reservation by host reservation feature is not an ideal goal."},{"line_number":81,"context_line":"For the datacenter usage efficiency, host reservation wouldn\u0027t be a better"},{"line_number":82,"context_line":"choice because a total amount of resources in a reservation is usually less"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_d9fe736a","line":79,"updated":"2017-05-26 12:57:09.000000000","message":"merge the two paragraphs","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":78,"context_line":"affinity rule reservation has already been achived by host reservation."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Affinity rule reservation by host reservation feature is not an ideal goal."},{"line_number":81,"context_line":"For the datacenter usage efficiency, host reservation wouldn\u0027t be a better"},{"line_number":82,"context_line":"choice because a total amount of resources in a reservation is usually less"},{"line_number":83,"context_line":"than one hypervisor spec.  It introduces some unused instance slots in the"},{"line_number":84,"context_line":"reserved hypervisors."}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_d9331362","line":81,"range":{"start_line":81,"start_character":54,"end_line":81,"end_character":74},"updated":"2017-05-26 12:57:09.000000000","message":"\"isn\u0027t a good\" ?","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":86,"context_line":"On the other hand, a hypervisor in the OpenStack cluster must accept total"},{"line_number":87,"context_line":"amount of instances in one reservation, it\u0027s equal to instance size times"},{"line_number":88,"context_line":"instance number, as affinity rule reservation.  So host reservation that\u0027s"},{"line_number":89,"context_line":"already implmented can handle an instance reservation with affinity rule."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Prerequisites:"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_b9385f3d","line":89,"range":{"start_line":89,"start_character":8,"end_line":89,"end_character":18},"updated":"2017-05-26 12:57:09.000000000","message":"implemented","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Prerequisites:"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  * Following 3 schdulers must be defined in nova.conf to use the"},{"line_number":94,"context_line":"    instance reservation"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    * AggregateInstanceExtraSpecsFilter"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_f917f7a2","line":93,"range":{"start_line":93,"start_character":16,"end_line":93,"end_character":25},"updated":"2017-05-26 12:57:09.000000000","message":"schedulers","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":115,"context_line":"     frame or not. If acceptable, Blazar records the reservation request in"},{"line_number":116,"context_line":"     its db and updates the usage of hypervisor in freepool. Then blazar"},{"line_number":117,"context_line":"     returns reservation id.  If not, Blazar respondes the reservation is"},{"line_number":118,"context_line":"     not acceptable."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"  3. At the start time of the reservation, Blazar creates server-group,"},{"line_number":121,"context_line":"     a flavor and a host aggregate related to the reservation. Then adds"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_99547b56","line":118,"range":{"start_line":118,"start_character":19,"end_line":118,"end_character":20},"updated":"2017-05-26 12:57:09.000000000","message":"and provides additional information to the tentant, e.g. the maximum number of instances of that flavour that could be accepted in that time window.","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"a5da1a1b5a2244f540f91511ad5a7d717e211e00","unresolved":false,"context_lines":[{"line_number":115,"context_line":"     frame or not. If acceptable, Blazar records the reservation request in"},{"line_number":116,"context_line":"     its db and updates the usage of hypervisor in freepool. Then blazar"},{"line_number":117,"context_line":"     returns reservation id.  If not, Blazar respondes the reservation is"},{"line_number":118,"context_line":"     not acceptable."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"  3. At the start time of the reservation, Blazar creates server-group,"},{"line_number":121,"context_line":"     a flavor and a host aggregate related to the reservation. Then adds"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df140735_4d0d0b3d","line":118,"range":{"start_line":118,"start_character":19,"end_line":118,"end_character":20},"in_reply_to":"ff0f0b1f_99547b56","updated":"2017-05-29 09:30:25.000000000","message":"I used a different example since returning *real* number of available instances informs users of number of hypervisors in the cloud.","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"     The tricks Blazar is doing here are:"},{"line_number":126,"context_line":"      * create server-group with anti-affinity policy"},{"line_number":127,"context_line":"      * create a flavor with two etra_specs, is_public\u003dFalse and flavor"},{"line_number":128,"context_line":"        access rights to the user. The extra_specs are"},{"line_number":129,"context_line":"        speaggregate_instance_extra_specs:reservations:\u003creservation-id\u003e and"},{"line_number":130,"context_line":"        affinity_id:\u003cserver-group-id\u003e"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_99d91bf6","line":127,"range":{"start_line":127,"start_character":33,"end_line":127,"end_character":37},"updated":"2017-05-26 12:57:09.000000000","message":"extra","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":126,"context_line":"      * create server-group with anti-affinity policy"},{"line_number":127,"context_line":"      * create a flavor with two etra_specs, is_public\u003dFalse and flavor"},{"line_number":128,"context_line":"        access rights to the user. The extra_specs are"},{"line_number":129,"context_line":"        speaggregate_instance_extra_specs:reservations:\u003creservation-id\u003e and"},{"line_number":130,"context_line":"        affinity_id:\u003cserver-group-id\u003e"},{"line_number":131,"context_line":"      * create a new host aggregate with above aggregate_instance_extra_specs"},{"line_number":132,"context_line":"        and filter_tenant_id of the requesting user\u0027s project id"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_19ef4b88","line":129,"range":{"start_line":129,"start_character":8,"end_line":129,"end_character":20},"updated":"2017-05-26 12:57:09.000000000","message":"aggregate","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    inside the reservation-id-related aggregate. The hypervisors are not"},{"line_number":152,"context_line":"    included in the freepool aggregate."},{"line_number":153,"context_line":"  * instances related to instance reservation: scheduled to hypervisors which"},{"line_number":154,"context_line":"    is inside the reservation-id-related aggregate. The hypervisors are"},{"line_number":155,"context_line":"    included in the freepool aggregate."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Nova filters used by Blazar choose hypervisors with following rules."}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_f998171c","line":154,"range":{"start_line":154,"start_character":4,"end_line":154,"end_character":6},"updated":"2017-05-26 12:57:09.000000000","message":"are","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":157,"context_line":"Nova filters used by Blazar choose hypervisors with following rules."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"  * BlazarFilter picks up hypervisors from host-reservation-id-related"},{"line_number":160,"context_line":"    aggregate basing on \u0027reservation\u0027 scheduler hint if the request is"},{"line_number":161,"context_line":"    related to host reservation.  If not, the filter picks up hypervisors"},{"line_number":162,"context_line":"    from neither reservation-id-related aggregate nor the freepool."},{"line_number":163,"context_line":"  * AggregateInstanceExtraSpecsFilter picks up hypervisors from"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_599143f1","line":160,"range":{"start_line":160,"start_character":14,"end_line":160,"end_character":20},"updated":"2017-05-26 12:57:09.000000000","message":"based","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    related to host reservation.  If not, the filter picks up hypervisors"},{"line_number":162,"context_line":"    from neither reservation-id-related aggregate nor the freepool."},{"line_number":163,"context_line":"  * AggregateInstanceExtraSpecsFilter picks up hypervisors from"},{"line_number":164,"context_line":"    instance-reservation-id-related aggregate basing on extra_specs of the"},{"line_number":165,"context_line":"    flavor if the request is related to instance reservation.  If not, the"},{"line_number":166,"context_line":"    fileter picks up hypervisors from neither reservation-id-related"},{"line_number":167,"context_line":"    aggregate nore the freepool."}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_19bd0b68","line":164,"range":{"start_line":164,"start_character":46,"end_line":164,"end_character":52},"updated":"2017-05-26 12:57:09.000000000","message":"based","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":163,"context_line":"  * AggregateInstanceExtraSpecsFilter picks up hypervisors from"},{"line_number":164,"context_line":"    instance-reservation-id-related aggregate basing on extra_specs of the"},{"line_number":165,"context_line":"    flavor if the request is related to instance reservation.  If not, the"},{"line_number":166,"context_line":"    fileter picks up hypervisors from neither reservation-id-related"},{"line_number":167,"context_line":"    aggregate nore the freepool."},{"line_number":168,"context_line":"  * AggregateMultiTenancyIsolationFilter blocks requests to be scheduled to"},{"line_number":169,"context_line":"    the freepool by users who doesn\u0027t have active reservation."}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_79ad2730","line":166,"range":{"start_line":166,"start_character":4,"end_line":166,"end_character":11},"updated":"2017-05-26 12:57:09.000000000","message":"filter","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":164,"context_line":"    instance-reservation-id-related aggregate basing on extra_specs of the"},{"line_number":165,"context_line":"    flavor if the request is related to instance reservation.  If not, the"},{"line_number":166,"context_line":"    fileter picks up hypervisors from neither reservation-id-related"},{"line_number":167,"context_line":"    aggregate nore the freepool."},{"line_number":168,"context_line":"  * AggregateMultiTenancyIsolationFilter blocks requests to be scheduled to"},{"line_number":169,"context_line":"    the freepool by users who doesn\u0027t have active reservation."},{"line_number":170,"context_line":"  * Combination of AggregateInstaneExtraSpecsFilter and"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_f966d729","line":167,"range":{"start_line":167,"start_character":14,"end_line":167,"end_character":18},"updated":"2017-05-26 12:57:09.000000000","message":"nor","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    fileter picks up hypervisors from neither reservation-id-related"},{"line_number":167,"context_line":"    aggregate nore the freepool."},{"line_number":168,"context_line":"  * AggregateMultiTenancyIsolationFilter blocks requests to be scheduled to"},{"line_number":169,"context_line":"    the freepool by users who doesn\u0027t have active reservation."},{"line_number":170,"context_line":"  * Combination of AggregateInstaneExtraSpecsFilter and"},{"line_number":171,"context_line":"    AggregateMultiTenancyIsolationFilter enables requests of instance"},{"line_number":172,"context_line":"    reservation to be scheduled to instance-reservation-id-related aggregate."}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_b9705fde","line":169,"range":{"start_line":169,"start_character":30,"end_line":169,"end_character":37},"updated":"2017-05-26 12:57:09.000000000","message":"don\u0027t","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":17352,"name":"Gerald Kunzmann","email":"kunzmann@docomolab-euro.com","username":"GeraldK"},"change_message_id":"17037bddf28cfd322fc0e96203e8917142504504","unresolved":false,"context_lines":[{"line_number":179,"context_line":"  * Use the host reservation function for an affinity rule reservation"},{"line_number":180,"context_line":"  * Use the new instance reservation function for an anti-affinity rule"},{"line_number":181,"context_line":"    reservation"},{"line_number":182,"context_line":"  * Creates reserved instances with a reserved flavor and a scheduling hint"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Long-term goal"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff0f0b1f_7972c7e5","line":182,"range":{"start_line":182,"start_character":4,"end_line":182,"end_character":11},"updated":"2017-05-26 12:57:09.000000000","message":"Create","commit_id":"8d19764f0e89eb45a612a82dfbfdfae24fa17ac7"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"961605e526ea0930ed8c43127919272110fed9bf","unresolved":false,"context_lines":[{"line_number":190,"context_line":"The affinity rule reservation allows other instances or reservation to use"},{"line_number":191,"context_line":"unused instance slots in reserved hypervisors.  Nova team is developing"},{"line_number":192,"context_line":"placement API[1]. The API already has custom resource class[2] and is now"},{"line_number":193,"context_line":"implementing schduler function[3] that uses the custom resources class."},{"line_number":194,"context_line":"It enables operator to manage hypervisors in freepool more efficient."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"Blazar will do following steps:"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7f231b9d_2012e359","line":193,"updated":"2017-06-09 22:00:23.000000000","message":"scheduler","commit_id":"83916c3542e25c8e6bc607dea6a789844c186a6f"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"69a1e02c20e8001c8f2b85928bfa3872d646a5db","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Blazar enables users to specify the amount of instances of a particular flavor."},{"line_number":48,"context_line":"As described in use cases, users who reserve instances specify a tuple of"},{"line_number":49,"context_line":"amount of instances and a flavor definition of the instances. A flavor"},{"line_number":50,"context_line":"definition contains three pieces of information: the number of vcpus, the amount"},{"line_number":51,"context_line":"of RAM, and the size of the disk."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"A basic idea and a sequence of the change follows:"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"7f231b9d_870a101d","line":51,"range":{"start_line":49,"start_character":62,"end_line":51,"end_character":33},"updated":"2017-06-19 03:22:46.000000000","message":"Would you also need network private and/or public reservation for Telco/NFV workloads?","commit_id":"af700d66cfad2583415d26749d792c1d9b14f9f3"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"5756e52958ece08f7e3cb81f7bb1ec93f0ceabcd","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Blazar enables users to specify the amount of instances of a particular flavor."},{"line_number":48,"context_line":"As described in use cases, users who reserve instances specify a tuple of"},{"line_number":49,"context_line":"amount of instances and a flavor definition of the instances. A flavor"},{"line_number":50,"context_line":"definition contains three pieces of information: the number of vcpus, the amount"},{"line_number":51,"context_line":"of RAM, and the size of the disk."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"A basic idea and a sequence of the change follows:"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"7f231b9d_4753d86b","line":51,"range":{"start_line":49,"start_character":62,"end_line":51,"end_character":33},"in_reply_to":"7f231b9d_870a101d","updated":"2017-06-19 07:42:03.000000000","message":"yes. Blazar team has plans to implement network reservation and storage reservation.  This BP/spec focuses on instance reservation.\n\nhttps://blueprints.launchpad.net/blazar/+spec/basic-network-plugin","commit_id":"af700d66cfad2583415d26749d792c1d9b14f9f3"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"69a1e02c20e8001c8f2b85928bfa3872d646a5db","unresolved":false,"context_lines":[{"line_number":104,"context_line":"  1. A tenant user creates their reservation, in Blazar terms called a"},{"line_number":105,"context_line":"     \"lease\", with a time frame, the instance size, and how many instances."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"     One \"reservation\" in Blazar terms represents a tuple of"},{"line_number":108,"context_line":"     \u003cflavor, number of instances with the flavor\u003e and one \"lease\" can have"},{"line_number":109,"context_line":"     multiple \"reservations\". Thus one lease can have multiple instance"},{"line_number":110,"context_line":"     types."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  2. Blazar checks whether the reservation is acceptable during the time"},{"line_number":113,"context_line":"     frame or not. If acceptable, Blazar records the reservation request in"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7f231b9d_872330a7","line":110,"range":{"start_line":107,"start_character":5,"end_line":110,"end_character":10},"updated":"2017-06-19 03:22:46.000000000","message":"Are there build-in assumptions for AZ and Cells?","commit_id":"af700d66cfad2583415d26749d792c1d9b14f9f3"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"5756e52958ece08f7e3cb81f7bb1ec93f0ceabcd","unresolved":false,"context_lines":[{"line_number":104,"context_line":"  1. A tenant user creates their reservation, in Blazar terms called a"},{"line_number":105,"context_line":"     \"lease\", with a time frame, the instance size, and how many instances."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"     One \"reservation\" in Blazar terms represents a tuple of"},{"line_number":108,"context_line":"     \u003cflavor, number of instances with the flavor\u003e and one \"lease\" can have"},{"line_number":109,"context_line":"     multiple \"reservations\". Thus one lease can have multiple instance"},{"line_number":110,"context_line":"     types."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  2. Blazar checks whether the reservation is acceptable during the time"},{"line_number":113,"context_line":"     frame or not. If acceptable, Blazar records the reservation request in"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7f231b9d_8747b077","line":110,"range":{"start_line":107,"start_character":5,"end_line":110,"end_character":10},"in_reply_to":"7f231b9d_872330a7","updated":"2017-06-19 07:42:03.000000000","message":"Nothing. The reservation will be created in the freepool I mentioned in step0. If your hypervisors in AZ or Cells are added into the freepool, you can uses it.","commit_id":"af700d66cfad2583415d26749d792c1d9b14f9f3"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"69a1e02c20e8001c8f2b85928bfa3872d646a5db","unresolved":false,"context_lines":[{"line_number":209,"context_line":"Alternatives"},{"line_number":210,"context_line":"------------"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"This feature could be achieved on the Blazar side or on the Nova side."},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"Blazar side approach"},{"line_number":215,"context_line":"````````````````````"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7f231b9d_2749fc5e","line":212,"range":{"start_line":212,"start_character":0,"end_line":212,"end_character":70},"updated":"2017-06-19 03:22:46.000000000","message":"What is the requirement for reservation from chargeback point of view?\nThat will help identify which proposal is better suited for it.","commit_id":"af700d66cfad2583415d26749d792c1d9b14f9f3"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"5756e52958ece08f7e3cb81f7bb1ec93f0ceabcd","unresolved":false,"context_lines":[{"line_number":209,"context_line":"Alternatives"},{"line_number":210,"context_line":"------------"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"This feature could be achieved on the Blazar side or on the Nova side."},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"Blazar side approach"},{"line_number":215,"context_line":"````````````````````"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7f231b9d_5c15ee47","line":212,"range":{"start_line":212,"start_character":0,"end_line":212,"end_character":70},"in_reply_to":"7f231b9d_2749fc5e","updated":"2017-06-19 07:42:03.000000000","message":"In general, chargeback point is different based on cloud operators. For instance, some operators would like to charge numbers of reservations and others could charge only numbers of really deployed instances.\n\nSo, what Blazar project will need to do is focusing the technical side and following the openstack\u0027s rules, like sending notifications or preparing API sets.","commit_id":"af700d66cfad2583415d26749d792c1d9b14f9f3"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"3787cdd7685fa9f3951864eacdf89218406c67a5","unresolved":false,"context_lines":[{"line_number":294,"context_line":"     CREATE TABLE instance_reservations ("},{"line_number":295,"context_line":"         id VARCHAR(36) NOT NULL,"},{"line_number":296,"context_line":"         reservation_id VARCHAR(255) NOT NULL,"},{"line_number":297,"context_line":"         vcpu INT UNSIGNED NOT NULL,"},{"line_number":298,"context_line":"         memory_mb INT UNSIGNED NOT NULL,"},{"line_number":299,"context_line":"         disk_gb INT UNSIGNED NOT NULL,"},{"line_number":300,"context_line":"         amount INT UNSIGNED NOT NULL,"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7f231b9d_41892cc8","line":297,"range":{"start_line":297,"start_character":9,"end_line":297,"end_character":13},"updated":"2017-06-12 22:31:24.000000000","message":"This should be \"vcpus\" like in the Nova instance_types table.","commit_id":"af700d66cfad2583415d26749d792c1d9b14f9f3"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"5756e52958ece08f7e3cb81f7bb1ec93f0ceabcd","unresolved":false,"context_lines":[{"line_number":294,"context_line":"     CREATE TABLE instance_reservations ("},{"line_number":295,"context_line":"         id VARCHAR(36) NOT NULL,"},{"line_number":296,"context_line":"         reservation_id VARCHAR(255) NOT NULL,"},{"line_number":297,"context_line":"         vcpu INT UNSIGNED NOT NULL,"},{"line_number":298,"context_line":"         memory_mb INT UNSIGNED NOT NULL,"},{"line_number":299,"context_line":"         disk_gb INT UNSIGNED NOT NULL,"},{"line_number":300,"context_line":"         amount INT UNSIGNED NOT NULL,"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7f231b9d_3c10f256","line":297,"range":{"start_line":297,"start_character":9,"end_line":297,"end_character":13},"in_reply_to":"7f231b9d_41892cc8","updated":"2017-06-19 07:42:03.000000000","message":"Done","commit_id":"af700d66cfad2583415d26749d792c1d9b14f9f3"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"3787cdd7685fa9f3951864eacdf89218406c67a5","unresolved":false,"context_lines":[{"line_number":296,"context_line":"         reservation_id VARCHAR(255) NOT NULL,"},{"line_number":297,"context_line":"         vcpu INT UNSIGNED NOT NULL,"},{"line_number":298,"context_line":"         memory_mb INT UNSIGNED NOT NULL,"},{"line_number":299,"context_line":"         disk_gb INT UNSIGNED NOT NULL,"},{"line_number":300,"context_line":"         amount INT UNSIGNED NOT NULL,"},{"line_number":301,"context_line":"         affinity BOOLEAN NOT NULL,"},{"line_number":302,"context_line":"         flavor_id VARCHAR(36),"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7f231b9d_019334fc","line":299,"range":{"start_line":299,"start_character":9,"end_line":299,"end_character":16},"updated":"2017-06-12 22:31:24.000000000","message":"What does \"disk_gb\" represent with regards to \"root_gb\" and \"ephemeral_gb\" and Nova?","commit_id":"af700d66cfad2583415d26749d792c1d9b14f9f3"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"5756e52958ece08f7e3cb81f7bb1ec93f0ceabcd","unresolved":false,"context_lines":[{"line_number":296,"context_line":"         reservation_id VARCHAR(255) NOT NULL,"},{"line_number":297,"context_line":"         vcpu INT UNSIGNED NOT NULL,"},{"line_number":298,"context_line":"         memory_mb INT UNSIGNED NOT NULL,"},{"line_number":299,"context_line":"         disk_gb INT UNSIGNED NOT NULL,"},{"line_number":300,"context_line":"         amount INT UNSIGNED NOT NULL,"},{"line_number":301,"context_line":"         affinity BOOLEAN NOT NULL,"},{"line_number":302,"context_line":"         flavor_id VARCHAR(36),"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7f231b9d_4f29ae34","line":299,"range":{"start_line":299,"start_character":9,"end_line":299,"end_character":16},"in_reply_to":"7f231b9d_019334fc","updated":"2017-06-19 07:42:03.000000000","message":"The disk_gb represents \"disk\" parameters in flavor of Nova.\n\nhttps://developer.openstack.org/api-ref/compute/?expanded\u003dcreate-flavor-detail#create-flavor","commit_id":"af700d66cfad2583415d26749d792c1d9b14f9f3"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"fd4e21067a0a4d4e1455cef59a245f70e0c57dcd","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Nova filters used by Blazar choose hypervisors with the following rules:"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"  * BlazarFilter picks up hypervisors from the aggregate related to a host"},{"line_number":160,"context_line":"    reservation based on the \u0027reservation\u0027 scheduler hint, if the request is"},{"line_number":161,"context_line":"    related to host reservation. If not, the filter picks up hypervisors from"},{"line_number":162,"context_line":"    neither reservation-related aggregates nor the freepool."},{"line_number":163,"context_line":"  * AggregateInstanceExtraSpecsFilter picks up hypervisors from the aggregate"},{"line_number":164,"context_line":"    related to an instance reservation based on extra_specs of the flavor, if"},{"line_number":165,"context_line":"    the request is related to instance reservation. If not, the filter picks up"}],"source_content_type":"text/x-rst","patch_set":15,"id":"5f201791_37253dc3","line":162,"range":{"start_line":159,"start_character":0,"end_line":162,"end_character":60},"updated":"2017-06-22 21:43:16.000000000","message":"If the request is for instance reservation (not host reservation as described in the first sentence above), shouldn\u0027t BlazarFilter select hypervisors that are either in the aggregate related to the instance reservation, or at least in the freepool, so that they can be used by AggregateInstanceExtraSpecsFilter afterwards?","commit_id":"e8ca05f8dfd08f770670709b8a9e6063dfa9c26e"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"baef99469f5912164f7bd7149109ffe6278c2936","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Nova filters used by Blazar choose hypervisors with the following rules:"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"  * BlazarFilter picks up hypervisors from the aggregate related to a host"},{"line_number":160,"context_line":"    reservation based on the \u0027reservation\u0027 scheduler hint, if the request is"},{"line_number":161,"context_line":"    related to host reservation. If not, the filter picks up hypervisors from"},{"line_number":162,"context_line":"    neither reservation-related aggregates nor the freepool."},{"line_number":163,"context_line":"  * AggregateInstanceExtraSpecsFilter picks up hypervisors from the aggregate"},{"line_number":164,"context_line":"    related to an instance reservation based on extra_specs of the flavor, if"},{"line_number":165,"context_line":"    the request is related to instance reservation. If not, the filter picks up"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3f1d235d_f507bd1b","line":162,"range":{"start_line":159,"start_character":0,"end_line":162,"end_character":60},"in_reply_to":"3f1d235d_c2c52c3e","updated":"2017-07-03 07:06:26.000000000","message":"I listed the filters without order. I re-ordered the filters.\n\nFor the instance reservation feature, What\u0027s BlazarFilter need to do is returning True at * in following pattern. I added a new work item.\n\n  aggregates of hosts  | no reservation hint | reservation hint or extra_spec\n  ---------------------+---------------------+------------------------------\n no aggregate          |       True          |     False\n only freepool         |       False         |     False\n freepool and          |                     |\n  instance reservation |       False         |     True *\n host reservation      |       False         |     True\n user\u0027s aggregate      |       True          |     False","commit_id":"e8ca05f8dfd08f770670709b8a9e6063dfa9c26e"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"535760d572a3e7ab13e7b6c22e50a5df22404810","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Nova filters used by Blazar choose hypervisors with the following rules:"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"  * BlazarFilter picks up hypervisors from the aggregate related to a host"},{"line_number":160,"context_line":"    reservation based on the \u0027reservation\u0027 scheduler hint, if the request is"},{"line_number":161,"context_line":"    related to host reservation. If not, the filter picks up hypervisors from"},{"line_number":162,"context_line":"    neither reservation-related aggregates nor the freepool."},{"line_number":163,"context_line":"  * AggregateInstanceExtraSpecsFilter picks up hypervisors from the aggregate"},{"line_number":164,"context_line":"    related to an instance reservation based on extra_specs of the flavor, if"},{"line_number":165,"context_line":"    the request is related to instance reservation. If not, the filter picks up"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3f1d235d_c2c52c3e","line":162,"range":{"start_line":159,"start_character":0,"end_line":162,"end_character":60},"in_reply_to":"5f201791_37253dc3","updated":"2017-07-03 02:19:13.000000000","message":"Good point. BlazarFilter should be changed to pass them for instance reservation.","commit_id":"e8ca05f8dfd08f770670709b8a9e6063dfa9c26e"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"1b1c2f0f1517d56dde02a471327bb7333ec03820","unresolved":false,"context_lines":[{"line_number":163,"context_line":"  * BlazarFilter picks up hypervisors from the aggregate related to a host"},{"line_number":164,"context_line":"    reservation based on the \u0027reservation\u0027 scheduler hint, if the request is"},{"line_number":165,"context_line":"    related to host reservation. If not, the filter picks up hypervisors from"},{"line_number":166,"context_line":"    neither reservation-related aggregates nor the freepool."},{"line_number":167,"context_line":"  * AggregateMultiTenancyIsolationFilter blocks requests to be scheduled to"},{"line_number":168,"context_line":"    the freepool by users who do not have active reservation."},{"line_number":169,"context_line":"  * Combination of AggregateInstanceExtraSpecsFilter and"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f1d235d_16a31f02","line":166,"range":{"start_line":166,"start_character":51,"end_line":166,"end_character":59},"updated":"2017-07-05 07:22:38.000000000","message":"I understood the freepool here means \u0027ONLY freepool\u0027 because hosts which belong to both of an instance reservation aggregate and the freepool should be passed through the BlazarFilter.","commit_id":"1b3c21f475024a5ae9557ad1604fb31d8fe9ad23"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"1b1c2f0f1517d56dde02a471327bb7333ec03820","unresolved":false,"context_lines":[{"line_number":163,"context_line":"  * BlazarFilter picks up hypervisors from the aggregate related to a host"},{"line_number":164,"context_line":"    reservation based on the \u0027reservation\u0027 scheduler hint, if the request is"},{"line_number":165,"context_line":"    related to host reservation. If not, the filter picks up hypervisors from"},{"line_number":166,"context_line":"    neither reservation-related aggregates nor the freepool."},{"line_number":167,"context_line":"  * AggregateMultiTenancyIsolationFilter blocks requests to be scheduled to"},{"line_number":168,"context_line":"    the freepool by users who do not have active reservation."},{"line_number":169,"context_line":"  * Combination of AggregateInstanceExtraSpecsFilter and"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f1d235d_56be37d5","line":166,"range":{"start_line":166,"start_character":12,"end_line":166,"end_character":23},"updated":"2017-07-05 07:22:38.000000000","message":"I understood the reservation here means \u0027host reservation\u0027, doesn\u0027t it?","commit_id":"1b3c21f475024a5ae9557ad1604fb31d8fe9ad23"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"256b82f0bafc4502260237294c4040f7a22185ef","unresolved":false,"context_lines":[{"line_number":163,"context_line":"  * BlazarFilter picks up hypervisors from the aggregate related to a host"},{"line_number":164,"context_line":"    reservation based on the \u0027reservation\u0027 scheduler hint, if the request is"},{"line_number":165,"context_line":"    related to host reservation. If not, the filter picks up hypervisors from"},{"line_number":166,"context_line":"    neither reservation-related aggregates nor the freepool."},{"line_number":167,"context_line":"  * AggregateMultiTenancyIsolationFilter blocks requests to be scheduled to"},{"line_number":168,"context_line":"    the freepool by users who do not have active reservation."},{"line_number":169,"context_line":"  * Combination of AggregateInstanceExtraSpecsFilter and"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f1d235d_dcfe3a04","line":166,"range":{"start_line":166,"start_character":12,"end_line":166,"end_character":23},"in_reply_to":"3f1d235d_56be37d5","updated":"2017-07-11 05:51:53.000000000","message":"Yes, I added \u0027host\u0027 to the sentence.","commit_id":"1b3c21f475024a5ae9557ad1604fb31d8fe9ad23"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"5a03d5f922a93fcc084cc88ace331a752817ab83","unresolved":false,"context_lines":[{"line_number":351,"context_line":"       \"reservations\": ["},{"line_number":352,"context_line":"         {"},{"line_number":353,"context_line":"           \"resource_type\": \"virtual:instance\","},{"line_number":354,"context_line":"           \"vcpu\": 4,"},{"line_number":355,"context_line":"           \"memory_mb\": 4096,"},{"line_number":356,"context_line":"           \"disk_gb\": 10,"},{"line_number":357,"context_line":"           \"amount\": 5,"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f1d235d_16fbc6c0","line":354,"range":{"start_line":354,"start_character":12,"end_line":354,"end_character":16},"updated":"2017-07-07 05:25:02.000000000","message":"s/vcpu/vcpus/","commit_id":"1b3c21f475024a5ae9557ad1604fb31d8fe9ad23"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"256b82f0bafc4502260237294c4040f7a22185ef","unresolved":false,"context_lines":[{"line_number":351,"context_line":"       \"reservations\": ["},{"line_number":352,"context_line":"         {"},{"line_number":353,"context_line":"           \"resource_type\": \"virtual:instance\","},{"line_number":354,"context_line":"           \"vcpu\": 4,"},{"line_number":355,"context_line":"           \"memory_mb\": 4096,"},{"line_number":356,"context_line":"           \"disk_gb\": 10,"},{"line_number":357,"context_line":"           \"amount\": 5,"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f1d235d_9cdc4247","line":354,"range":{"start_line":354,"start_character":12,"end_line":354,"end_character":16},"in_reply_to":"3f1d235d_16fbc6c0","updated":"2017-07-11 05:51:53.000000000","message":"Done","commit_id":"1b3c21f475024a5ae9557ad1604fb31d8fe9ad23"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"5a03d5f922a93fcc084cc88ace331a752817ab83","unresolved":false,"context_lines":[{"line_number":354,"context_line":"           \"vcpu\": 4,"},{"line_number":355,"context_line":"           \"memory_mb\": 4096,"},{"line_number":356,"context_line":"           \"disk_gb\": 10,"},{"line_number":357,"context_line":"           \"amount\": 5,"},{"line_number":358,"context_line":"           \"affinity\": False"},{"line_number":359,"context_line":"         }"},{"line_number":360,"context_line":"        ],"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f1d235d_b6d3f200","line":357,"range":{"start_line":357,"start_character":12,"end_line":357,"end_character":18},"updated":"2017-07-07 05:25:02.000000000","message":"Now that I think it\u0027s better to be min/max like host reservation. It\u0027s okay to start with fixed amount for the first step, and extend it to min/max in the future.","commit_id":"1b3c21f475024a5ae9557ad1604fb31d8fe9ad23"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"5a03d5f922a93fcc084cc88ace331a752817ab83","unresolved":false,"context_lines":[{"line_number":375,"context_line":"             \"id\": \"reservation-id\","},{"line_number":376,"context_line":"             \"status\": \"pending\","},{"line_number":377,"context_line":"             \"lease_id\": \"lease-id-1\","},{"line_number":378,"context_line":"             \"resource_id\": \"resource_id\","},{"line_number":379,"context_line":"             \"resource_type\": \"virtual:instance\","},{"line_number":380,"context_line":"             \"vcpu\": 4,"},{"line_number":381,"context_line":"             \"memory_mb\": 4096,"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f1d235d_56b49ef1","line":378,"range":{"start_line":378,"start_character":13,"end_line":378,"end_character":41},"updated":"2017-07-07 05:25:02.000000000","message":"I don\u0027t think its needed because It is Blazar internal information. Same problem for the host reservation response.","commit_id":"1b3c21f475024a5ae9557ad1604fb31d8fe9ad23"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"256b82f0bafc4502260237294c4040f7a22185ef","unresolved":false,"context_lines":[{"line_number":375,"context_line":"             \"id\": \"reservation-id\","},{"line_number":376,"context_line":"             \"status\": \"pending\","},{"line_number":377,"context_line":"             \"lease_id\": \"lease-id-1\","},{"line_number":378,"context_line":"             \"resource_id\": \"resource_id\","},{"line_number":379,"context_line":"             \"resource_type\": \"virtual:instance\","},{"line_number":380,"context_line":"             \"vcpu\": 4,"},{"line_number":381,"context_line":"             \"memory_mb\": 4096,"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f1d235d_fc1576e6","line":378,"range":{"start_line":378,"start_character":13,"end_line":378,"end_character":41},"in_reply_to":"3f1d235d_56b49ef1","updated":"2017-07-11 05:51:53.000000000","message":"I agreed.\n\nFor the change of response body, it\u0027s not related to this spec. I reported the bug report for this problem. https://bugs.launchpad.net/blazar/+bug/1703517","commit_id":"1b3c21f475024a5ae9557ad1604fb31d8fe9ad23"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"5a03d5f922a93fcc084cc88ace331a752817ab83","unresolved":false,"context_lines":[{"line_number":377,"context_line":"             \"lease_id\": \"lease-id-1\","},{"line_number":378,"context_line":"             \"resource_id\": \"resource_id\","},{"line_number":379,"context_line":"             \"resource_type\": \"virtual:instance\","},{"line_number":380,"context_line":"             \"vcpu\": 4,"},{"line_number":381,"context_line":"             \"memory_mb\": 4096,"},{"line_number":382,"context_line":"             \"disk_gb\": 10,"},{"line_number":383,"context_line":"             \"amount\": 5,"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f1d235d_36ac829d","line":380,"range":{"start_line":380,"start_character":14,"end_line":380,"end_character":18},"updated":"2017-07-07 05:25:02.000000000","message":"s/vcpu/vcpus/","commit_id":"1b3c21f475024a5ae9557ad1604fb31d8fe9ad23"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"256b82f0bafc4502260237294c4040f7a22185ef","unresolved":false,"context_lines":[{"line_number":377,"context_line":"             \"lease_id\": \"lease-id-1\","},{"line_number":378,"context_line":"             \"resource_id\": \"resource_id\","},{"line_number":379,"context_line":"             \"resource_type\": \"virtual:instance\","},{"line_number":380,"context_line":"             \"vcpu\": 4,"},{"line_number":381,"context_line":"             \"memory_mb\": 4096,"},{"line_number":382,"context_line":"             \"disk_gb\": 10,"},{"line_number":383,"context_line":"             \"amount\": 5,"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f1d235d_bcd5be1d","line":380,"range":{"start_line":380,"start_character":14,"end_line":380,"end_character":18},"in_reply_to":"3f1d235d_36ac829d","updated":"2017-07-11 05:51:53.000000000","message":"Done","commit_id":"1b3c21f475024a5ae9557ad1604fb31d8fe9ad23"},{"author":{"_account_id":23840,"name":"Hiroaki Kobayashi","email":"kobayashi.hiroaki@lab.ntt.co.jp","username":"hiro-kobayashi"},"change_message_id":"1b1c2f0f1517d56dde02a471327bb7333ec03820","unresolved":false,"context_lines":[{"line_number":448,"context_line":"* Create instance reservation plugin"},{"line_number":449,"context_line":"* Change reservation_pool.py and nova_inventory.py to be more generic since both"},{"line_number":450,"context_line":"  host_plugin and instance_plugin will use these classes"},{"line_number":451,"context_line":"* Change BlazarFilter to filter hosts which are in instance reservation aggregates"},{"line_number":452,"context_line":"* Add instance reservation supports in python-blazarclient"},{"line_number":453,"context_line":"* Add scenario tests in gate job, mainly Tempest job"},{"line_number":454,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f1d235d_b6ca2b4b","line":451,"range":{"start_line":451,"start_character":22,"end_line":451,"end_character":82},"updated":"2017-07-05 07:22:38.000000000","message":"This description seems a bit inaccurate. The BlazarFilter should PASS (return True) hosts which are in instance reservation aggregates if an extra_spec is specified.","commit_id":"1b3c21f475024a5ae9557ad1604fb31d8fe9ad23"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"256b82f0bafc4502260237294c4040f7a22185ef","unresolved":false,"context_lines":[{"line_number":448,"context_line":"* Create instance reservation plugin"},{"line_number":449,"context_line":"* Change reservation_pool.py and nova_inventory.py to be more generic since both"},{"line_number":450,"context_line":"  host_plugin and instance_plugin will use these classes"},{"line_number":451,"context_line":"* Change BlazarFilter to filter hosts which are in instance reservation aggregates"},{"line_number":452,"context_line":"* Add instance reservation supports in python-blazarclient"},{"line_number":453,"context_line":"* Add scenario tests in gate job, mainly Tempest job"},{"line_number":454,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"3f1d235d_5ccfca7e","line":451,"range":{"start_line":451,"start_character":22,"end_line":451,"end_character":82},"in_reply_to":"3f1d235d_b6ca2b4b","updated":"2017-07-11 05:51:53.000000000","message":"Done","commit_id":"1b3c21f475024a5ae9557ad1604fb31d8fe9ad23"}]}
