)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"d1f09e788e57190c49f4b54e4f06322949595aef","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"libvirt: enchance libvirt to set admin password"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Libvirt 1.2.16 provides to set to the domain an user"},{"line_number":10,"context_line":"password. This commit enchances Nova to use this new API"},{"line_number":11,"context_line":"and let users request to set the admin password."},{"line_number":12,"context_line":"By default we will use root as user but if os_type windows"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7a016987_1c18bf74","line":9,"updated":"2015-05-27 15:36:03.000000000","message":"we used to raise exc.HTTPNotImplemented before 1.2.16\nnow we raise a different new exception (Invalid)\nbut it\u0027s not a bug fix, so I think it has backward compatible problem at API layer","commit_id":"25e11518b7b54ba88ed30afc19f61342b516e952"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"443b98981482cfc806650e6c13a3cd96d3a7e913","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"libvirt: enchance libvirt to set admin password"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Libvirt 1.2.16 provides to set to the domain an user"},{"line_number":10,"context_line":"password. This commit enchances Nova to use this new API"},{"line_number":11,"context_line":"and let users request to set the admin password."},{"line_number":12,"context_line":"By default we will use root as user but if os_type windows"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7a016987_2460b5ce","line":9,"in_reply_to":"7a016987_1c18bf74","updated":"2015-05-29 07:26:01.000000000","message":"I do not think we can talk about backward incompatibility. Since this commit libvirt enable the way to set admin password.","commit_id":"25e11518b7b54ba88ed30afc19f61342b516e952"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"2e59497791c1a19bb180d506b7ae74802c22e60b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Sahid Orentino Ferdjaoui \u003csahid.ferdjaoui@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-06-23 08:26:28 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"libvirt: enchance libvirt to set admin password"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Libvirt 1.2.16 provides to set to the domain an user"},{"line_number":10,"context_line":"password. This commit enchances Nova to use this new API"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"fa32b979_57f74e59","line":7,"updated":"2015-06-25 22:09:42.000000000","message":"s/enchance/enhance","commit_id":"bd9b0d8510f58c2b08254f2cbd5431f4cfe787ea"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"1b3328f6efb80b5417b996e265abb53e003cfea7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Sahid Orentino Ferdjaoui \u003csahid.ferdjaoui@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-06-23 08:26:28 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"libvirt: enchance libvirt to set admin password"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Libvirt 1.2.16 provides to set to the domain an user"},{"line_number":10,"context_line":"password. This commit enchances Nova to use this new API"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba3cc151_eaeb18af","line":7,"in_reply_to":"fa32b979_57f74e59","updated":"2015-06-29 07:44:33.000000000","message":"Done","commit_id":"bd9b0d8510f58c2b08254f2cbd5431f4cfe787ea"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"2e59497791c1a19bb180d506b7ae74802c22e60b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"libvirt: enchance libvirt to set admin password"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Libvirt 1.2.16 provides to set to the domain an user"},{"line_number":10,"context_line":"password. This commit enchances Nova to use this new API"},{"line_number":11,"context_line":"and let users request to set the admin password."},{"line_number":12,"context_line":"By default we will use root as user but if os_type windows"},{"line_number":13,"context_line":"is specified we will use Administrator"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"fa32b979_1798e61a","line":10,"updated":"2015-06-25 22:09:42.000000000","message":"s/enchances/enhances","commit_id":"bd9b0d8510f58c2b08254f2cbd5431f4cfe787ea"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"1b3328f6efb80b5417b996e265abb53e003cfea7","unresolved":false,"context_lines":[{"line_number":7,"context_line":"libvirt: enchance libvirt to set admin password"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Libvirt 1.2.16 provides to set to the domain an user"},{"line_number":10,"context_line":"password. This commit enchances Nova to use this new API"},{"line_number":11,"context_line":"and let users request to set the admin password."},{"line_number":12,"context_line":"By default we will use root as user but if os_type windows"},{"line_number":13,"context_line":"is specified we will use Administrator"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba3cc151_8ad12cfe","line":10,"in_reply_to":"fa32b979_1798e61a","updated":"2015-06-29 07:44:33.000000000","message":"Done","commit_id":"bd9b0d8510f58c2b08254f2cbd5431f4cfe787ea"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"9ad8bba0d482b12d3b3b9ec737fea807cda35d4f","unresolved":false,"context_lines":[{"line_number":691,"context_line":"        mock_guest.set_admin_password.assert_called_once_with(\"root\", \"123\")"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"    @mock.patch.object(host.Host,"},{"line_number":694,"context_line":"                           \u0027has_min_version\u0027, return_value\u003dTrue)"},{"line_number":695,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.host.Host.get_guest\u0027)"},{"line_number":696,"context_line":"    def test_set_admin_password_windows(self, mock_get_guest, ver):"},{"line_number":697,"context_line":"        instance \u003d objects.Instance(**self.test_instance)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_111b1682","line":694,"updated":"2015-05-27 10:38:34.000000000","message":"dodgy indentation here","commit_id":"25e11518b7b54ba88ed30afc19f61342b516e952"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"1af057db9c03b06ffe13edd8c08bb88f5abd5681","unresolved":false,"context_lines":[{"line_number":1489,"context_line":""},{"line_number":1490,"context_line":"        guest \u003d self._host.get_guest(instance)"},{"line_number":1491,"context_line":"        if instance.os_type \u003d\u003d \"windows\":"},{"line_number":1492,"context_line":"            user \u003d \"Administrator\""},{"line_number":1493,"context_line":"        else:"},{"line_number":1494,"context_line":"            user \u003d \"root\""},{"line_number":1495,"context_line":"        guest.set_admin_password(user, new_pass)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_ac5fef0d","line":1492,"updated":"2015-06-23 14:17:27.000000000","message":"This is true only on English Windows OS.  There are 8 languages that localize the admin name.\n\nhttp://social.technet.microsoft.com/wiki/contents/articles/13813.localized-names-for-administrator-account-in-windows.aspx","commit_id":"bd9b0d8510f58c2b08254f2cbd5431f4cfe787ea"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"4dc18d365755b3959c1de15ec4c2a77ce4f2d38f","unresolved":false,"context_lines":[{"line_number":1489,"context_line":""},{"line_number":1490,"context_line":"        guest \u003d self._host.get_guest(instance)"},{"line_number":1491,"context_line":"        if instance.os_type \u003d\u003d \"windows\":"},{"line_number":1492,"context_line":"            user \u003d \"Administrator\""},{"line_number":1493,"context_line":"        else:"},{"line_number":1494,"context_line":"            user \u003d \"root\""},{"line_number":1495,"context_line":"        guest.set_admin_password(user, new_pass)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_f2cb8d51","line":1492,"in_reply_to":"fa32b979_07aef4e5","updated":"2015-06-23 15:41:37.000000000","message":"Yes on the spec we have specifically indicated the default one for Windows will be Administrator.","commit_id":"bd9b0d8510f58c2b08254f2cbd5431f4cfe787ea"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"1b3328f6efb80b5417b996e265abb53e003cfea7","unresolved":false,"context_lines":[{"line_number":1489,"context_line":""},{"line_number":1490,"context_line":"        guest \u003d self._host.get_guest(instance)"},{"line_number":1491,"context_line":"        if instance.os_type \u003d\u003d \"windows\":"},{"line_number":1492,"context_line":"            user \u003d \"Administrator\""},{"line_number":1493,"context_line":"        else:"},{"line_number":1494,"context_line":"            user \u003d \"root\""},{"line_number":1495,"context_line":"        guest.set_admin_password(user, new_pass)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_0a4d1c72","line":1492,"in_reply_to":"fa32b979_372deaa8","updated":"2015-06-29 07:44:33.000000000","message":"Yes I will handle that case.","commit_id":"bd9b0d8510f58c2b08254f2cbd5431f4cfe787ea"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"f7266a681cc15c774e31c57a7262d80e2183ce05","unresolved":false,"context_lines":[{"line_number":1489,"context_line":""},{"line_number":1490,"context_line":"        guest \u003d self._host.get_guest(instance)"},{"line_number":1491,"context_line":"        if instance.os_type \u003d\u003d \"windows\":"},{"line_number":1492,"context_line":"            user \u003d \"Administrator\""},{"line_number":1493,"context_line":"        else:"},{"line_number":1494,"context_line":"            user \u003d \"root\""},{"line_number":1495,"context_line":"        guest.set_admin_password(user, new_pass)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_07aef4e5","line":1492,"in_reply_to":"fa32b979_ac5fef0d","updated":"2015-06-23 14:32:11.000000000","message":"That\u0027s why the next commit in this series makes it configurable via an image property..","commit_id":"bd9b0d8510f58c2b08254f2cbd5431f4cfe787ea"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"2e59497791c1a19bb180d506b7ae74802c22e60b","unresolved":false,"context_lines":[{"line_number":1489,"context_line":""},{"line_number":1490,"context_line":"        guest \u003d self._host.get_guest(instance)"},{"line_number":1491,"context_line":"        if instance.os_type \u003d\u003d \"windows\":"},{"line_number":1492,"context_line":"            user \u003d \"Administrator\""},{"line_number":1493,"context_line":"        else:"},{"line_number":1494,"context_line":"            user \u003d \"root\""},{"line_number":1495,"context_line":"        guest.set_admin_password(user, new_pass)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_372deaa8","line":1492,"in_reply_to":"fa32b979_f2cb8d51","updated":"2015-06-25 22:09:42.000000000","message":"This is fine as long as something in the API tells the end user what user name was used.  Otherwise, the only way of knowing this behavior is to assume the admin read it in a doc (unlikely) or read the code (more unlikely).  \n\nI\u0027d rather have some user friendly message in the case of authentication failure that said: \"Authentication failed for user \u0027Administrator\u0027\". (vs. root or whatever was set in os_admin_user).","commit_id":"bd9b0d8510f58c2b08254f2cbd5431f4cfe787ea"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"86aee0ea56e827468279a77539f9eca9dcb2cc81","unresolved":false,"context_lines":[{"line_number":1472,"context_line":""},{"line_number":1473,"context_line":"        if not self._host.has_min_version(MIN_LIBVIRT_SET_ADMIN_PASSWD):"},{"line_number":1474,"context_line":"            ver \u003d \".\".join([str(x) for x in MIN_LIBVIRT_SET_ADMIN_PASSWD])"},{"line_number":1475,"context_line":"            return (False, _(\u0027Set admin password requires libvirt version \u0027"},{"line_number":1476,"context_line":"                             \u0027%(version)s or greater\u0027) % {\u0027version\u0027: ver})"},{"line_number":1477,"context_line":""},{"line_number":1478,"context_line":"        hw_qga \u003d image_meta.properties.get(\u0027hw_qemu_guest_agent\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba3cc151_d60b597c","line":1475,"updated":"2015-06-29 09:23:34.000000000","message":"Any reason why the end user should know the libvirt version?","commit_id":"f4476b3e876b785ff94420174bee6e72670e90ba"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"711394ce72c829079e2e1cfb4a248a18fecff516","unresolved":false,"context_lines":[{"line_number":1472,"context_line":""},{"line_number":1473,"context_line":"        if not self._host.has_min_version(MIN_LIBVIRT_SET_ADMIN_PASSWD):"},{"line_number":1474,"context_line":"            ver \u003d \".\".join([str(x) for x in MIN_LIBVIRT_SET_ADMIN_PASSWD])"},{"line_number":1475,"context_line":"            return (False, _(\u0027Set admin password requires libvirt version \u0027"},{"line_number":1476,"context_line":"                             \u0027%(version)s or greater\u0027) % {\u0027version\u0027: ver})"},{"line_number":1477,"context_line":""},{"line_number":1478,"context_line":"        hw_qga \u003d image_meta.properties.get(\u0027hw_qemu_guest_agent\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba3cc151_1618e183","line":1475,"in_reply_to":"ba3cc151_d60b597c","updated":"2015-06-29 09:29:57.000000000","message":"Hum yes... I will update this.","commit_id":"f4476b3e876b785ff94420174bee6e72670e90ba"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"86aee0ea56e827468279a77539f9eca9dcb2cc81","unresolved":false,"context_lines":[{"line_number":1485,"context_line":"        image_meta \u003d objects.ImageMeta.from_instance(instance)"},{"line_number":1486,"context_line":"        supported, reason \u003d self._can_set_admin_password(image_meta)"},{"line_number":1487,"context_line":"        if not supported:"},{"line_number":1488,"context_line":"            raise exception.SetAdminPasswdNotSupported(reason\u003dreason)"},{"line_number":1489,"context_line":""},{"line_number":1490,"context_line":"        guest \u003d self._host.get_guest(instance)"},{"line_number":1491,"context_line":"        if instance.os_type \u003d\u003d \"windows\":"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba3cc151_d6d039cc","line":1488,"updated":"2015-06-29 09:23:34.000000000","message":"i am not sure about failing the spawn operation with this. my concern is that i am a user and have been told that i can set a password on an instance and boom I get a reason that the infra does not support this. That is kind of odd.\nIdeally the scheduler should filter out hosts that have this support and we do not have to do N retries until we find one that actually supports this (if the correct libvirt version is used)","commit_id":"f4476b3e876b785ff94420174bee6e72670e90ba"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"711394ce72c829079e2e1cfb4a248a18fecff516","unresolved":false,"context_lines":[{"line_number":1485,"context_line":"        image_meta \u003d objects.ImageMeta.from_instance(instance)"},{"line_number":1486,"context_line":"        supported, reason \u003d self._can_set_admin_password(image_meta)"},{"line_number":1487,"context_line":"        if not supported:"},{"line_number":1488,"context_line":"            raise exception.SetAdminPasswdNotSupported(reason\u003dreason)"},{"line_number":1489,"context_line":""},{"line_number":1490,"context_line":"        guest \u003d self._host.get_guest(instance)"},{"line_number":1491,"context_line":"        if instance.os_type \u003d\u003d \"windows\":"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba3cc151_767e0db0","line":1488,"in_reply_to":"ba3cc151_d6d039cc","updated":"2015-06-29 09:29:57.000000000","message":"This is not used during boot time. It\u0027s a nova command used when an instance is already running.","commit_id":"f4476b3e876b785ff94420174bee6e72670e90ba"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"43b980791ac78163b92760ca977e7639eb39251c","unresolved":false,"context_lines":[{"line_number":1473,"context_line":""},{"line_number":1474,"context_line":"        hw_qga \u003d image_meta.properties.get(\u0027hw_qemu_guest_agent\u0027, \u0027\u0027)"},{"line_number":1475,"context_line":"        if not strutils.bool_from_string(hw_qga):"},{"line_number":1476,"context_line":"            raise exception.QemuGuestAgentNotEnabled()"},{"line_number":1477,"context_line":""},{"line_number":1478,"context_line":"    def set_admin_password(self, instance, new_pass):"},{"line_number":1479,"context_line":"        image_meta \u003d objects.ImageMeta.from_instance(instance)"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_574ba02b","line":1476,"updated":"2015-07-06 16:06:05.000000000","message":"just a suggestion, can we separate this check because \n_can_quiesce also use it?","commit_id":"ab7898861fcdf9eff19af990195f024f3c5b60fd"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"02bcde41c4ccf057dbd4efe5ac30b802a6ba0738","unresolved":false,"context_lines":[{"line_number":1473,"context_line":""},{"line_number":1474,"context_line":"        hw_qga \u003d image_meta.properties.get(\u0027hw_qemu_guest_agent\u0027, \u0027\u0027)"},{"line_number":1475,"context_line":"        if not strutils.bool_from_string(hw_qga):"},{"line_number":1476,"context_line":"            raise exception.QemuGuestAgentNotEnabled()"},{"line_number":1477,"context_line":""},{"line_number":1478,"context_line":"    def set_admin_password(self, instance, new_pass):"},{"line_number":1479,"context_line":"        image_meta \u003d objects.ImageMeta.from_instance(instance)"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_5895a884","line":1476,"in_reply_to":"ba3cc151_574ba02b","updated":"2015-07-08 13:22:23.000000000","message":"We can probably yes. Please feel free to add something like a helper in the driver to verify that condition.","commit_id":"ab7898861fcdf9eff19af990195f024f3c5b60fd"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"b9b2c574cecdce8d09665a25934765a35595a527","unresolved":false,"context_lines":[{"line_number":1432,"context_line":"            guest.set_user_password(user, new_pass)"},{"line_number":1433,"context_line":"        except libvirt.libvirtError as ex:"},{"line_number":1434,"context_line":"            error_code \u003d ex.get_error_code()"},{"line_number":1435,"context_line":"            msg \u003d (_(\u0027Error from libvirt while set password for username \u0027"},{"line_number":1436,"context_line":"                     \u0027\"%(user)s\": [Error Code %(error_code)s] %(ex)s\u0027)"},{"line_number":1437,"context_line":"                   % {\u0027user\u0027: user, \u0027error_code\u0027: error_code, \u0027ex\u0027: ex})"},{"line_number":1438,"context_line":"            raise exception.NovaException(msg)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a50d1a3_39041413","line":1435,"updated":"2015-07-29 16:21:42.000000000","message":"s/while set/when setting","commit_id":"35a688e680287dc47c5510eac4a4bc887e6ad47c"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"bb7ab1d46301e703de21a3b9f08a9c9f994ada96","unresolved":false,"context_lines":[{"line_number":1439,"context_line":"            guest.set_user_password(user, new_pass)"},{"line_number":1440,"context_line":"        except libvirt.libvirtError as ex:"},{"line_number":1441,"context_line":"            error_code \u003d ex.get_error_code()"},{"line_number":1442,"context_line":"            msg \u003d (_(\u0027Error from libvirt while set password for username \u0027"},{"line_number":1443,"context_line":"                     \u0027\"%(user)s\": [Error Code %(error_code)s] %(ex)s\u0027)"},{"line_number":1444,"context_line":"                   % {\u0027user\u0027: user, \u0027error_code\u0027: error_code, \u0027ex\u0027: ex})"},{"line_number":1445,"context_line":"            raise exception.NovaException(msg)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_c96872f8","line":1442,"updated":"2015-08-04 13:24:25.000000000","message":"s/while set/when setting","commit_id":"520a6b92853cf0f6ef183df78c41c70ee0b8cfab"}],"nova/virt/libvirt/guest.py":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"658640e87a85560f22716585c52b0b8ef650b307","unresolved":false,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def set_admin_password(self, new_pass):"},{"line_number":152,"context_line":"        \"\"\"Configures a new root admin password.\"\"\""},{"line_number":153,"context_line":"        self._domain.setUserPassword(\"root\", new_pass, 0)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_2eba2fe2","line":153,"updated":"2015-05-27 09:56:43.000000000","message":"Although the openstack API is obviously limited in not telling us the username, we could trigger off the os type image property eg\n\n   if os_type \u003d\u003d \"windows\"\n     user \u003d \"Adminsitrator\"\n   else\n     user\u003d\"root\"\n\nThat would not work if the windows administrator account has been renamed (which is apparently not uncommon especially with non-english languages), but its still better than using \u0027root\u0027 for windows :-)","commit_id":"784ee3a5442f92f946dbc8738bd22af4203d2dae"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"37e6961cb1be9de0fc2ec3e7b94e3e8283402f47","unresolved":false,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def set_admin_password(self, new_pass):"},{"line_number":152,"context_line":"        \"\"\"Configures a new root admin password.\"\"\""},{"line_number":153,"context_line":"        self._domain.setUserPassword(\"root\", new_pass, 0)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_6e06e721","line":153,"in_reply_to":"7a016987_2eba2fe2","updated":"2015-05-27 10:07:41.000000000","message":"Right I did not think about windows users.","commit_id":"784ee3a5442f92f946dbc8738bd22af4203d2dae"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"2e59497791c1a19bb180d506b7ae74802c22e60b","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        flags |\u003d dump_migratable and libvirt.VIR_DOMAIN_XML_MIGRATABLE or 0"},{"line_number":236,"context_line":"        return self._domain.XMLDesc(flags\u003dflags)"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    def set_admin_password(self, user, new_pass):"},{"line_number":239,"context_line":"        \"\"\"Configures a new user password.\"\"\""},{"line_number":240,"context_line":"        self._domain.setUserPassword(user, new_pass, 0)"},{"line_number":241,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_e9a7a609","line":238,"updated":"2015-06-25 22:09:42.000000000","message":"Technically, this call allows you to set any user\u0027s password not necessarily an admin of any kind.","commit_id":"bd9b0d8510f58c2b08254f2cbd5431f4cfe787ea"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"1b3328f6efb80b5417b996e265abb53e003cfea7","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        flags |\u003d dump_migratable and libvirt.VIR_DOMAIN_XML_MIGRATABLE or 0"},{"line_number":236,"context_line":"        return self._domain.XMLDesc(flags\u003dflags)"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    def set_admin_password(self, user, new_pass):"},{"line_number":239,"context_line":"        \"\"\"Configures a new user password.\"\"\""},{"line_number":240,"context_line":"        self._domain.setUserPassword(user, new_pass, 0)"},{"line_number":241,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_1da6c4c1","line":238,"in_reply_to":"fa32b979_e9a7a609","updated":"2015-06-29 07:44:33.000000000","message":"Done","commit_id":"bd9b0d8510f58c2b08254f2cbd5431f4cfe787ea"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"7ba3f3e2e098968ecccaa9a42673daa19bda6ef7","unresolved":false,"context_lines":[{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    def set_user_password(self, user, new_pass):"},{"line_number":239,"context_line":"        \"\"\"Configures a new user password.\"\"\""},{"line_number":240,"context_line":"        self._domain.setUserPassword(user, new_pass, 0)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"class GuestVCPUInfo(object):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_bf03f7b7","line":240,"updated":"2015-06-29 17:05:02.000000000","message":"The last param is for the encryption. Is there any reason we don\u0027t use this?  When does libvirt advise using the encryption?  Does it not matter in our scenario?","commit_id":"3aadcadfb8ae72ad4421ebc10ccc7d416050291b"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"46f1a4d1bfceaa031a7149b473eb718c388ae8e0","unresolved":false,"context_lines":[{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    def set_user_password(self, user, new_pass):"},{"line_number":239,"context_line":"        \"\"\"Configures a new user password.\"\"\""},{"line_number":240,"context_line":"        self._domain.setUserPassword(user, new_pass, 0)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"class GuestVCPUInfo(object):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_6281564a","line":240,"in_reply_to":"ba3cc151_bf03f7b7","updated":"2015-06-29 17:15:21.000000000","message":"Libvirt lets you choose between providing the raw password and performing crypt() on the password upfront and providing the hashed password. The current OpenStack API doesn\u0027t allow that choice.","commit_id":"3aadcadfb8ae72ad4421ebc10ccc7d416050291b"}]}
