)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"995d2acfe6e5cd1c77942cdb6e56740688084e87","unresolved":false,"context_lines":[{"line_number":16,"context_line":"An instance with nested virtualization enabled, cannot have"},{"line_number":17,"context_line":"dynamic memory."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Depends-On: I238161a8cd1d589a7d57fe9cf74b18b22679998c"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: Ie780dfc48abeabfd7a9319ce4fe66ba914a73988"},{"line_number":22,"context_line":"Implements: blueprint hyper-v-nested-virtualization"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a57fde8_5ad80554","line":19,"updated":"2017-01-12 20:09:25.000000000","message":"nit: we really need I82b1f0ca1128066b3ee63f9ae64aeea7e8918a0c now for the os-win version bump in nova.","commit_id":"8198f620b5575bb07b7cc2b8ccbf7ab69f39f06a"}],"nova/tests/unit/virt/hyperv/test_vmops.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1173a2ee19ffd0910d5a12f70fb0253d98ed5e06","unresolved":false,"context_lines":[{"line_number":564,"context_line":"        instance_path \u003d os.path.join(CONF.instances_path, mock_instance.name)"},{"line_number":565,"context_line":"        mock_requires_secure_boot.return_value \u003d True"},{"line_number":566,"context_line":"        mock_requires_nested_virt.return_value \u003d nested_virt"},{"line_number":567,"context_line":"        dynamic_memory_ratio \u003d ("},{"line_number":568,"context_line":"            1.0 if nested_virt else CONF.hyperv.dynamic_memory_ratio)"},{"line_number":569,"context_line":""},{"line_number":570,"context_line":"        flavor \u003d flavor_obj.Flavor(**test_flavor.fake_flavor)"},{"line_number":571,"context_line":"        mock_instance.flavor \u003d flavor"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_3d86fbb9","line":568,"range":{"start_line":567,"start_character":8,"end_line":568,"end_character":69},"updated":"2017-01-12 22:55:44.000000000","message":"This seems pointless because it\u0027s overwritten below.","commit_id":"8198f620b5575bb07b7cc2b8ccbf7ab69f39f06a"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"aa134f82ad7e04e95c1402f1cd91b31d469cf702","unresolved":false,"context_lines":[{"line_number":564,"context_line":"        instance_path \u003d os.path.join(CONF.instances_path, mock_instance.name)"},{"line_number":565,"context_line":"        mock_requires_secure_boot.return_value \u003d True"},{"line_number":566,"context_line":"        mock_requires_nested_virt.return_value \u003d nested_virt"},{"line_number":567,"context_line":"        dynamic_memory_ratio \u003d ("},{"line_number":568,"context_line":"            1.0 if nested_virt else CONF.hyperv.dynamic_memory_ratio)"},{"line_number":569,"context_line":""},{"line_number":570,"context_line":"        flavor \u003d flavor_obj.Flavor(**test_flavor.fake_flavor)"},{"line_number":571,"context_line":"        mock_instance.flavor \u003d flavor"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_a45a594e","line":568,"range":{"start_line":567,"start_character":8,"end_line":568,"end_character":69},"in_reply_to":"7a3c09a3_3d86fbb9","updated":"2017-01-16 19:57:48.000000000","message":"Done","commit_id":"8198f620b5575bb07b7cc2b8ccbf7ab69f39f06a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1173a2ee19ffd0910d5a12f70fb0253d98ed5e06","unresolved":false,"context_lines":[{"line_number":579,"context_line":"        else:"},{"line_number":580,"context_line":"            mock_get_vnuma_config.return_value \u003d (None, None)"},{"line_number":581,"context_line":"            mem_per_numa, cpus_per_numa \u003d (None, None)"},{"line_number":582,"context_line":"            dynamic_memory_ratio \u003d CONF.hyperv.dynamic_memory_ratio"},{"line_number":583,"context_line":""},{"line_number":584,"context_line":"        self._vmops.create_instance(instance\u003dmock_instance,"},{"line_number":585,"context_line":"                                    network_info\u003d[fake_network_info],"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_7d9083ed","line":582,"updated":"2017-01-12 22:55:44.000000000","message":"I think you want to handle this right?","commit_id":"8198f620b5575bb07b7cc2b8ccbf7ab69f39f06a"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"aa134f82ad7e04e95c1402f1cd91b31d469cf702","unresolved":false,"context_lines":[{"line_number":579,"context_line":"        else:"},{"line_number":580,"context_line":"            mock_get_vnuma_config.return_value \u003d (None, None)"},{"line_number":581,"context_line":"            mem_per_numa, cpus_per_numa \u003d (None, None)"},{"line_number":582,"context_line":"            dynamic_memory_ratio \u003d CONF.hyperv.dynamic_memory_ratio"},{"line_number":583,"context_line":""},{"line_number":584,"context_line":"        self._vmops.create_instance(instance\u003dmock_instance,"},{"line_number":585,"context_line":"                                    network_info\u003d[fake_network_info],"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_e4546122","line":582,"in_reply_to":"7a3c09a3_7d9083ed","updated":"2017-01-16 19:57:48.000000000","message":"Done","commit_id":"8198f620b5575bb07b7cc2b8ccbf7ab69f39f06a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"17b35d1a83bc748489ec8b1f423df95af9e801da","unresolved":false,"context_lines":[{"line_number":887,"context_line":"                                              expected\u003dTrue):"},{"line_number":888,"context_line":"        mock_instance \u003d fake_instance.fake_instance_obj(self.context)"},{"line_number":889,"context_line":"        mock_instance.flavor.extra_specs[\u0027hw:cpu_features\u0027] \u003d extra_spec"},{"line_number":890,"context_line":"        mock_image_meta \u003d mock.MagicMock()"},{"line_number":891,"context_line":"        mock_image_meta.properties.hw_cpu_features \u003d img_prop"},{"line_number":892,"context_line":""},{"line_number":893,"context_line":"        requires_nested \u003d self._vmops._requires_nested_virt(mock_instance,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_367f5c67","line":890,"updated":"2017-01-17 12:38:31.000000000","message":"We need to use the real object here. The only reason this test is passing is because you\u0027re using a mock, but since hw_cpu_features isn\u0027t defined in ImageMetaProps this wouldn\u0027t actually work at runtime.","commit_id":"24410a937a193fa777fa9ec586d55bb4282a59b2"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"137cac8af0ed1cedc8add6e5d59c6a69e326c247","unresolved":false,"context_lines":[{"line_number":887,"context_line":"                                              expected\u003dTrue):"},{"line_number":888,"context_line":"        mock_instance \u003d fake_instance.fake_instance_obj(self.context)"},{"line_number":889,"context_line":"        mock_instance.flavor.extra_specs[\u0027hw:cpu_features\u0027] \u003d extra_spec"},{"line_number":890,"context_line":"        mock_image_meta \u003d mock.MagicMock()"},{"line_number":891,"context_line":"        mock_image_meta.properties.hw_cpu_features \u003d img_prop"},{"line_number":892,"context_line":""},{"line_number":893,"context_line":"        requires_nested \u003d self._vmops._requires_nested_virt(mock_instance,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_762484c4","line":890,"in_reply_to":"7a3c09a3_367f5c67","updated":"2017-01-17 12:50:34.000000000","message":"Done","commit_id":"24410a937a193fa777fa9ec586d55bb4282a59b2"}],"nova/virt/hyperv/vmops.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1173a2ee19ffd0910d5a12f70fb0253d98ed5e06","unresolved":false,"context_lines":[{"line_number":620,"context_line":"        return requires_sb"},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"    def _requires_nested_virt(self, instance):"},{"line_number":623,"context_line":"        cpu_features \u003d instance.flavor.extra_specs.get(\u0027hw:cpu_features\u0027)"},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"        if cpu_features and \u0027vmx\u0027 in cpu_features.lower():"},{"line_number":626,"context_line":"            if self._hostutils.supports_nested_virtualization():"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_3de43b0c","line":623,"updated":"2017-01-12 22:55:44.000000000","message":"We don\u0027t care about supporting this via image metadata too? From the release note, doesn\u0027t the guest image OS have to be windows 10 or hyper-v 2016 server? So I could see having an image with one of those operating systems with hw_cpu_features having vmx in it, and hypervisor_version_requires\u003e\u003d10.0 in the image metadata too. Then all of that is contained in the image rather than worry about picking the correct image and the correct flavor to do this.\n\nI mean the flavor extra spec is fine too, but seems we\u0027d also want to support this in the image metadata wouldn\u0027t we?","commit_id":"8198f620b5575bb07b7cc2b8ccbf7ab69f39f06a"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"aa134f82ad7e04e95c1402f1cd91b31d469cf702","unresolved":false,"context_lines":[{"line_number":620,"context_line":"        return requires_sb"},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"    def _requires_nested_virt(self, instance):"},{"line_number":623,"context_line":"        cpu_features \u003d instance.flavor.extra_specs.get(\u0027hw:cpu_features\u0027)"},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"        if cpu_features and \u0027vmx\u0027 in cpu_features.lower():"},{"line_number":626,"context_line":"            if self._hostutils.supports_nested_virtualization():"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_fe5dd115","line":623,"in_reply_to":"7a3c09a3_3de43b0c","updated":"2017-01-16 19:57:48.000000000","message":"Hm, it seems that the ImageMetaProps object doesn\u0027t have the hw_cpu_features field.","commit_id":"8198f620b5575bb07b7cc2b8ccbf7ab69f39f06a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1575781a54bf89a7c1549177826ae1036db8e874","unresolved":false,"context_lines":[{"line_number":620,"context_line":"        return requires_sb"},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"    def _requires_nested_virt(self, instance):"},{"line_number":623,"context_line":"        cpu_features \u003d instance.flavor.extra_specs.get(\u0027hw:cpu_features\u0027)"},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"        if cpu_features and \u0027vmx\u0027 in cpu_features.lower():"},{"line_number":626,"context_line":"            if self._hostutils.supports_nested_virtualization():"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_cb32f10f","line":623,"in_reply_to":"7a3c09a3_fe5dd115","updated":"2017-01-17 12:31:45.000000000","message":"But we can add that...although it\u0027d be cleaner in a separate change that comes before this one.","commit_id":"8198f620b5575bb07b7cc2b8ccbf7ab69f39f06a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"17b35d1a83bc748489ec8b1f423df95af9e801da","unresolved":false,"context_lines":[{"line_number":621,"context_line":"    def _requires_nested_virt(self, instance, image_meta):"},{"line_number":622,"context_line":"        flavor_cpu_features \u003d instance.flavor.extra_specs.get("},{"line_number":623,"context_line":"            \u0027hw:cpu_features\u0027, \u0027\u0027)"},{"line_number":624,"context_line":"        image_cpu_features \u003d image_meta.properties.hw_cpu_features"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"        if (fields.CPUFeature.VMX in flavor_cpu_features.lower() or"},{"line_number":627,"context_line":"                fields.CPUFeature.VMX in image_cpu_features):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_56df8868","line":624,"range":{"start_line":624,"start_character":51,"end_line":624,"end_character":66},"updated":"2017-01-17 12:38:31.000000000","message":"As noted in the previous patch set, this isn\u0027t going to work if hw_cpu_features isn\u0027t on the ImageMetaProps object. Please plumb that field into a separate patch before this in the series.","commit_id":"24410a937a193fa777fa9ec586d55bb4282a59b2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e653c10463267e1c65dbc87b1e5aff818b342a7c","unresolved":false,"context_lines":[{"line_number":621,"context_line":"    def _requires_nested_virt(self, instance, image_meta):"},{"line_number":622,"context_line":"        flavor_cpu_features \u003d instance.flavor.extra_specs.get("},{"line_number":623,"context_line":"            \u0027hw:cpu_features\u0027, \u0027\u0027)"},{"line_number":624,"context_line":"        image_cpu_features \u003d image_meta.properties.hw_cpu_features"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"        if (fields.CPUFeature.VMX in flavor_cpu_features.lower() or"},{"line_number":627,"context_line":"                fields.CPUFeature.VMX in image_cpu_features):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_38b10248","line":624,"range":{"start_line":624,"start_character":51,"end_line":624,"end_character":66},"in_reply_to":"7a3c09a3_560ea83b","updated":"2017-01-17 15:07:08.000000000","message":"oops :)","commit_id":"24410a937a193fa777fa9ec586d55bb4282a59b2"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"137cac8af0ed1cedc8add6e5d59c6a69e326c247","unresolved":false,"context_lines":[{"line_number":621,"context_line":"    def _requires_nested_virt(self, instance, image_meta):"},{"line_number":622,"context_line":"        flavor_cpu_features \u003d instance.flavor.extra_specs.get("},{"line_number":623,"context_line":"            \u0027hw:cpu_features\u0027, \u0027\u0027)"},{"line_number":624,"context_line":"        image_cpu_features \u003d image_meta.properties.hw_cpu_features"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"        if (fields.CPUFeature.VMX in flavor_cpu_features.lower() or"},{"line_number":627,"context_line":"                fields.CPUFeature.VMX in image_cpu_features):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_560ea83b","line":624,"range":{"start_line":624,"start_character":51,"end_line":624,"end_character":66},"in_reply_to":"7a3c09a3_56df8868","updated":"2017-01-17 12:50:34.000000000","message":"Already Done, this patch is on top of the patch you are talking about.","commit_id":"24410a937a193fa777fa9ec586d55bb4282a59b2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"287ca5212dc049ccf8ab74cc2b327b0da5534f61","unresolved":false,"context_lines":[{"line_number":620,"context_line":""},{"line_number":621,"context_line":"    def _requires_nested_virt(self, instance, image_meta):"},{"line_number":622,"context_line":"        flavor_cpu_features \u003d instance.flavor.extra_specs.get("},{"line_number":623,"context_line":"            \u0027hw:cpu_features\u0027, \u0027\u0027)"},{"line_number":624,"context_line":"        image_cpu_features \u003d image_meta.properties.get(\u0027hw_cpu_features\u0027, [])"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"        if (fields.CPUFeature.VMX in flavor_cpu_features.lower() or"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a461143_24b4eacf","line":623,"range":{"start_line":623,"start_character":12,"end_line":623,"end_character":34},"updated":"2017-01-26 15:39:45.000000000","message":"Surely you need to call split on this? It\u0027ll return a string, right (based on the \"lower\" call below)? If not, the default should probably be a list","commit_id":"ae75e409f9452a5f71fca5d07d824c6197eebfdb"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"0b4d21010d9064fe2ff785cef338b691227ed4be","unresolved":false,"context_lines":[{"line_number":620,"context_line":""},{"line_number":621,"context_line":"    def _requires_nested_virt(self, instance, image_meta):"},{"line_number":622,"context_line":"        flavor_cpu_features \u003d instance.flavor.extra_specs.get("},{"line_number":623,"context_line":"            \u0027hw:cpu_features\u0027, \u0027\u0027)"},{"line_number":624,"context_line":"        image_cpu_features \u003d image_meta.properties.get(\u0027hw_cpu_features\u0027, [])"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"        if (fields.CPUFeature.VMX in flavor_cpu_features.lower() or"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a461143_93631edc","line":623,"range":{"start_line":623,"start_character":12,"end_line":623,"end_character":34},"in_reply_to":"3a461143_24b4eacf","updated":"2017-01-26 17:01:03.000000000","message":"hm, sure. it could prevent typos, like \"vmxx\" in the flavor extra_specs. It was still working, as a flavor extra_spec is a string after all.","commit_id":"ae75e409f9452a5f71fca5d07d824c6197eebfdb"}],"releasenotes/notes/hyper-v-nested-virtualization-b5c399f98652676a.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1173a2ee19ffd0910d5a12f70fb0253d98ed5e06","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    have the latest updates installed."},{"line_number":8,"context_line":"    This feature will allow users to spawn instances having Windows 10 or"},{"line_number":9,"context_line":"    Windows / Hyper-V Server 2016 guests, turn on the Hyper-V feature, and"},{"line_number":10,"context_line":"    create nested VMs. Those instances will have some restrictions: their memory"},{"line_number":11,"context_line":"    cannot be live resized, they cannot be live migrated, and they cannot have"},{"line_number":12,"context_line":"    dynamic memory enabled (the nova Hyper-V driver will ignore the configured"},{"line_number":13,"context_line":"    \"dynamic_memory_ratio\" config option from the \"hyperv\" group)."},{"line_number":14,"context_line":"    In order to spawn instances with nested virtualization turned on, the given"},{"line_number":15,"context_line":"    flavor will have to contain the \"VMX\" instruction set in the \"hw:cpu_features\""},{"line_number":16,"context_line":"    extra_spec. In order to ensure that the instance will be scheduled to a"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a3c09a3_9dcfefb2","line":13,"range":{"start_line":10,"start_character":68,"end_line":13,"end_character":66},"updated":"2017-01-12 22:55:44.000000000","message":"nit: I might throw this into a bulleted list for readability.","commit_id":"8198f620b5575bb07b7cc2b8ccbf7ab69f39f06a"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"aa134f82ad7e04e95c1402f1cd91b31d469cf702","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    have the latest updates installed."},{"line_number":8,"context_line":"    This feature will allow users to spawn instances having Windows 10 or"},{"line_number":9,"context_line":"    Windows / Hyper-V Server 2016 guests, turn on the Hyper-V feature, and"},{"line_number":10,"context_line":"    create nested VMs. Those instances will have some restrictions: their memory"},{"line_number":11,"context_line":"    cannot be live resized, they cannot be live migrated, and they cannot have"},{"line_number":12,"context_line":"    dynamic memory enabled (the nova Hyper-V driver will ignore the configured"},{"line_number":13,"context_line":"    \"dynamic_memory_ratio\" config option from the \"hyperv\" group)."},{"line_number":14,"context_line":"    In order to spawn instances with nested virtualization turned on, the given"},{"line_number":15,"context_line":"    flavor will have to contain the \"VMX\" instruction set in the \"hw:cpu_features\""},{"line_number":16,"context_line":"    extra_spec. In order to ensure that the instance will be scheduled to a"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a3c09a3_bec34988","line":13,"range":{"start_line":10,"start_character":68,"end_line":13,"end_character":66},"in_reply_to":"7a3c09a3_9dcfefb2","updated":"2017-01-16 19:57:48.000000000","message":"Done","commit_id":"8198f620b5575bb07b7cc2b8ccbf7ab69f39f06a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1173a2ee19ffd0910d5a12f70fb0253d98ed5e06","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    dynamic memory enabled (the nova Hyper-V driver will ignore the configured"},{"line_number":13,"context_line":"    \"dynamic_memory_ratio\" config option from the \"hyperv\" group)."},{"line_number":14,"context_line":"    In order to spawn instances with nested virtualization turned on, the given"},{"line_number":15,"context_line":"    flavor will have to contain the \"VMX\" instruction set in the \"hw:cpu_features\""},{"line_number":16,"context_line":"    extra_spec. In order to ensure that the instance will be scheduled to a"},{"line_number":17,"context_line":"    compatible Hyper-V host, the given image will have to contain the glance"},{"line_number":18,"context_line":"    image property \"hypervisor_version_requires\" set to \"\u003e\u003d10.0\"."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a3c09a3_bd3bcb9b","line":15,"range":{"start_line":15,"start_character":66,"end_line":15,"end_character":81},"updated":"2017-01-12 22:55:44.000000000","message":"This extra spec isn\u0027t documented here:\n\nhttp://docs.openstack.org/admin-guide/compute-flavors.html\n\nWe should add a DocImpact tag to the commit message for adding docs to that page about that extra spec.","commit_id":"8198f620b5575bb07b7cc2b8ccbf7ab69f39f06a"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"aa134f82ad7e04e95c1402f1cd91b31d469cf702","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    dynamic memory enabled (the nova Hyper-V driver will ignore the configured"},{"line_number":13,"context_line":"    \"dynamic_memory_ratio\" config option from the \"hyperv\" group)."},{"line_number":14,"context_line":"    In order to spawn instances with nested virtualization turned on, the given"},{"line_number":15,"context_line":"    flavor will have to contain the \"VMX\" instruction set in the \"hw:cpu_features\""},{"line_number":16,"context_line":"    extra_spec. In order to ensure that the instance will be scheduled to a"},{"line_number":17,"context_line":"    compatible Hyper-V host, the given image will have to contain the glance"},{"line_number":18,"context_line":"    image property \"hypervisor_version_requires\" set to \"\u003e\u003d10.0\"."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a3c09a3_7ecd61b6","line":15,"range":{"start_line":15,"start_character":66,"end_line":15,"end_character":81},"in_reply_to":"7a3c09a3_bd3bcb9b","updated":"2017-01-16 19:57:48.000000000","message":"Done","commit_id":"8198f620b5575bb07b7cc2b8ccbf7ab69f39f06a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1173a2ee19ffd0910d5a12f70fb0253d98ed5e06","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    flavor will have to contain the \"VMX\" instruction set in the \"hw:cpu_features\""},{"line_number":16,"context_line":"    extra_spec. In order to ensure that the instance will be scheduled to a"},{"line_number":17,"context_line":"    compatible Hyper-V host, the given image will have to contain the glance"},{"line_number":18,"context_line":"    image property \"hypervisor_version_requires\" set to \"\u003e\u003d10.0\"."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a3c09a3_bdd74b22","line":18,"range":{"start_line":18,"start_character":20,"end_line":18,"end_character":47},"updated":"2017-01-12 22:55:44.000000000","message":"You may want to also call out that you need to configure nova to use the ImagePropertiesFilter too:\n\nhttp://docs.openstack.org/newton/config-reference/compute/schedulers.html#imagepropertiesfilter","commit_id":"8198f620b5575bb07b7cc2b8ccbf7ab69f39f06a"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"aa134f82ad7e04e95c1402f1cd91b31d469cf702","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    flavor will have to contain the \"VMX\" instruction set in the \"hw:cpu_features\""},{"line_number":16,"context_line":"    extra_spec. In order to ensure that the instance will be scheduled to a"},{"line_number":17,"context_line":"    compatible Hyper-V host, the given image will have to contain the glance"},{"line_number":18,"context_line":"    image property \"hypervisor_version_requires\" set to \"\u003e\u003d10.0\"."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a3c09a3_9ec68d98","line":18,"range":{"start_line":18,"start_character":20,"end_line":18,"end_character":47},"in_reply_to":"7a3c09a3_bdd74b22","updated":"2017-01-16 19:57:48.000000000","message":"Done","commit_id":"8198f620b5575bb07b7cc2b8ccbf7ab69f39f06a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e6afa660b81078c49b7ef18ae346c411243afa28","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    This feature will allow users to spawn instances having Windows 10 or"},{"line_number":9,"context_line":"    Windows / Hyper-V Server 2016 guests, turn on the Hyper-V feature, and"},{"line_number":10,"context_line":"    create nested VMs. Those instances will have some restrictions:"},{"line_number":11,"context_line":"    * their memory cannot be live resized."},{"line_number":12,"context_line":"    * they cannot be live migrated."},{"line_number":13,"context_line":"    * they cannot have dynamic memory enabled (the nova Hyper-V driver will"},{"line_number":14,"context_line":"    ignore the configured  \"dynamic_memory_ratio\" config option from the"},{"line_number":15,"context_line":"    \"hyperv\" group)."},{"line_number":16,"context_line":"    In order to spawn instances with nested virtualization turned on, the given"},{"line_number":17,"context_line":"    flavor will have to contain the \"VMX\" instruction set in the \"hw:cpu_features\""},{"line_number":18,"context_line":"    extra_spec."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"7a3c09a3_ae02ac70","line":15,"range":{"start_line":11,"start_character":4,"end_line":15,"end_character":20},"updated":"2017-01-18 21:02:35.000000000","message":"I think you actually need a blank line before the first bullet otherwise this doesn\u0027t render as a list:\n\nhttp://docs-draft.openstack.org/09/398509/9/check/gate-nova-releasenotes/de0d14c//releasenotes/build/html/unreleased.html#new-features","commit_id":"26d181a5e799ca5fb3172331c5d76a274aa5f42f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"16a22ac346a79058cf158ca53c48c6f7f5d7095a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    * their memory cannot be live resized."},{"line_number":12,"context_line":"    * they cannot be live migrated."},{"line_number":13,"context_line":"    * they cannot have dynamic memory enabled (the nova Hyper-V driver will"},{"line_number":14,"context_line":"    ignore the configured  \"dynamic_memory_ratio\" config option from the"},{"line_number":15,"context_line":"    \"hyperv\" group)."},{"line_number":16,"context_line":"    In order to spawn instances with nested virtualization turned on, the given"},{"line_number":17,"context_line":"    flavor will have to contain the \"VMX\" instruction set in the \"hw:cpu_features\""},{"line_number":18,"context_line":"    extra_spec."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"7a3c09a3_4babfad6","line":15,"range":{"start_line":14,"start_character":4,"end_line":15,"end_character":20},"updated":"2017-01-18 20:35:00.000000000","message":"You had this nested properly in PS7, now it\u0027s formatted incorrectly.","commit_id":"26d181a5e799ca5fb3172331c5d76a274aa5f42f"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"2c0d83b82ca26f614cbe031f01f6bfc7ebeaa73e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    * their memory cannot be live resized."},{"line_number":12,"context_line":"    * they cannot be live migrated."},{"line_number":13,"context_line":"    * they cannot have dynamic memory enabled (the nova Hyper-V driver will"},{"line_number":14,"context_line":"    ignore the configured  \"dynamic_memory_ratio\" config option from the"},{"line_number":15,"context_line":"    \"hyperv\" group)."},{"line_number":16,"context_line":"    In order to spawn instances with nested virtualization turned on, the given"},{"line_number":17,"context_line":"    flavor will have to contain the \"VMX\" instruction set in the \"hw:cpu_features\""},{"line_number":18,"context_line":"    extra_spec."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"7a3c09a3_2bf78e8d","line":15,"range":{"start_line":14,"start_character":4,"end_line":15,"end_character":20},"in_reply_to":"7a3c09a3_4babfad6","updated":"2017-01-18 20:45:22.000000000","message":"yeah, I don\u0027t like it either, but previously it was faling the releasenotes jobs with almost no information, other than \"unexpected indent\". this apparently \"solved\" that issue.","commit_id":"26d181a5e799ca5fb3172331c5d76a274aa5f42f"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"0a8cd7b87c00465ee338f62fd6d2c01976980e30","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    This feature will allow users to spawn instances having Windows 10 or"},{"line_number":9,"context_line":"    Windows / Hyper-V Server 2016 guests, turn on the Hyper-V feature, and"},{"line_number":10,"context_line":"    create nested VMs. Those instances will have some restrictions:"},{"line_number":11,"context_line":"    * their memory cannot be live resized."},{"line_number":12,"context_line":"    * they cannot be live migrated."},{"line_number":13,"context_line":"    * they cannot have dynamic memory enabled (the nova Hyper-V driver will"},{"line_number":14,"context_line":"    ignore the configured  \"dynamic_memory_ratio\" config option from the"},{"line_number":15,"context_line":"    \"hyperv\" group)."},{"line_number":16,"context_line":"    In order to spawn instances with nested virtualization turned on, the given"},{"line_number":17,"context_line":"    flavor will have to contain the \"VMX\" instruction set in the \"hw:cpu_features\""},{"line_number":18,"context_line":"    extra_spec."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"7a3c09a3_5ffe5439","line":15,"range":{"start_line":11,"start_character":4,"end_line":15,"end_character":20},"in_reply_to":"7a3c09a3_ae02ac70","updated":"2017-01-18 22:01:42.000000000","message":"cool, it worked! Thanks!","commit_id":"26d181a5e799ca5fb3172331c5d76a274aa5f42f"}]}
