)]}'
{"nova/compute/api.py":[{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"063e6de16f15cd24cb9e1ffb361ed13e5149b5e6","unresolved":false,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        if instance_type[\u0027memory_mb\u0027] \u003c int(image.get(\u0027min_ram\u0027) or 0):"},{"line_number":217,"context_line":"            raise exception.InstanceTypeMemoryTooSmall()"},{"line_number":218,"context_line":"        if instance_type[\u0027root_gb\u0027] \u003c int(image.get(\u0027min_disk\u0027) or 0):"},{"line_number":219,"context_line":"            raise exception.InstanceTypeDiskTooSmall()"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"        config_drive_id \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAD3%2F%2F%2Fkg%3D","line":218,"updated":"2012-01-10 01:26:02.000000000","message":"Do we need a check here for instance_type[\u0027root_gb\u0027] \u003d\u003d 0 (or None if we use that) here as well?","commit_id":"0103741010c3dd82b721b9c1291253bf17ca8537"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"90cebd9c9c063f94deaff2a5803ac29b25d760ee","unresolved":false,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        if instance_type[\u0027memory_mb\u0027] \u003c int(image.get(\u0027min_ram\u0027) or 0):"},{"line_number":217,"context_line":"            raise exception.InstanceTypeMemoryTooSmall()"},{"line_number":218,"context_line":"        if instance_type[\u0027root_gb\u0027] \u003c int(image.get(\u0027min_disk\u0027) or 0):"},{"line_number":219,"context_line":"            raise exception.InstanceTypeDiskTooSmall()"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"        config_drive_id \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAD3%2F%2F%2FeE%3D","line":218,"in_reply_to":"AAAAD3%2F%2F%2Fkg%3D","updated":"2012-01-10 15:53:08.000000000","message":"I think the intent of root_gb \u003d\u003d 0 is to make transitions easier.\n\nIf an Openstack user would like to use root_gb \u003d\u003d 0, then don\u0027t set min_disk on an image. (\"Doctor it hurts when I do this, then don\u0027t do that!\")","commit_id":"0103741010c3dd82b721b9c1291253bf17ca8537"}],"nova/compute/manager.py":[{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"063e6de16f15cd24cb9e1ffb361ed13e5149b5e6","unresolved":false,"context_lines":[{"line_number":428,"context_line":""},{"line_number":429,"context_line":"        # NOTE(johannes): root_gb is allowed to be 0 for legacy reasons"},{"line_number":430,"context_line":"        # since libvirt interpreted the value differently than other"},{"line_number":431,"context_line":"        # drivers. A value of 0 means don\u0027t check size."},{"line_number":432,"context_line":"        if allowed_size_gb \u003d\u003d 0:"},{"line_number":433,"context_line":"            return image_meta"},{"line_number":434,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAD3%2F%2F%2Fkk%3D","line":431,"updated":"2012-01-10 01:26:02.000000000","message":"Does Nullable and a check for None here make more sense?","commit_id":"0103741010c3dd82b721b9c1291253bf17ca8537"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"90cebd9c9c063f94deaff2a5803ac29b25d760ee","unresolved":false,"context_lines":[{"line_number":428,"context_line":""},{"line_number":429,"context_line":"        # NOTE(johannes): root_gb is allowed to be 0 for legacy reasons"},{"line_number":430,"context_line":"        # since libvirt interpreted the value differently than other"},{"line_number":431,"context_line":"        # drivers. A value of 0 means don\u0027t check size."},{"line_number":432,"context_line":"        if allowed_size_gb \u003d\u003d 0:"},{"line_number":433,"context_line":"            return image_meta"},{"line_number":434,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAD3%2F%2F%2FeA%3D","line":431,"in_reply_to":"AAAAD3%2F%2F%2Fkk%3D","updated":"2012-01-10 15:53:08.000000000","message":"If you mean switching to \u0027if not allowed_size_gb:\u0027, then I agree :)","commit_id":"0103741010c3dd82b721b9c1291253bf17ca8537"}],"nova/db/sqlalchemy/migrate_repo/versions/067_change_flavor_local_gb.py":[{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"063e6de16f15cd24cb9e1ffb361ed13e5149b5e6","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        # ephemeral_gb columns differently depending on what driver"},{"line_number":51,"context_line":"        # used to behave like."},{"line_number":52,"context_line":"        for table in (instances, instance_types):"},{"line_number":53,"context_line":"            if FLAGS.connection_type \u003d\u003d \u0027libvirt\u0027:"},{"line_number":54,"context_line":"                updates \u003d {\u0027root_gb\u0027: 0,"},{"line_number":55,"context_line":"                           \u0027ephemeral_gb\u0027: table.c.local_gb}"},{"line_number":56,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAD3%2F%2F%2Fks%3D","line":53,"updated":"2012-01-10 01:26:02.000000000","message":"Not totally sure how safe this is, but if we\u0027re going to go that route, we really need this to be 10 for everything except m1.tiny.  m1.tiny should be set to NULL/None","commit_id":"0103741010c3dd82b721b9c1291253bf17ca8537"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"90cebd9c9c063f94deaff2a5803ac29b25d760ee","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        # ephemeral_gb columns differently depending on what driver"},{"line_number":51,"context_line":"        # used to behave like."},{"line_number":52,"context_line":"        for table in (instances, instance_types):"},{"line_number":53,"context_line":"            if FLAGS.connection_type \u003d\u003d \u0027libvirt\u0027:"},{"line_number":54,"context_line":"                updates \u003d {\u0027root_gb\u0027: 0,"},{"line_number":55,"context_line":"                           \u0027ephemeral_gb\u0027: table.c.local_gb}"},{"line_number":56,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAD3%2F%2F%2Fd8%3D","line":53,"in_reply_to":"AAAAD3%2F%2F%2Fks%3D","updated":"2012-01-10 15:53:08.000000000","message":"I\u0027m not a fan of this either, but this is made complicated by the fact that we let libvirt and xenapi behave differently for so long.\n\nI don\u0027t want to choose which users get broken during this migration.\n\nI also don\u0027t feel comfortable guessing what the correct value of root_gb is. Maybe if the user hasn\u0027t change from the default instance_types we can fill in some reasonable defaults, but what if the user has made changes or created new instance types. What can we reasonably do in that case?\n\nI think the safest thing to do is try to keep the previous behavior, perhaps only for a release, but document that users probably want to recheck their instance types.\n\nIdeas?","commit_id":"0103741010c3dd82b721b9c1291253bf17ca8537"},{"author":{"_account_id":360,"name":"Dan Prince","email":"dprince@redhat.com","username":"dan-prince"},"change_message_id":"d00b9275d1061ad51fd6abb5fbf0c509c861745f","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        # ephemeral_gb columns differently depending on what driver"},{"line_number":51,"context_line":"        # used to behave like."},{"line_number":52,"context_line":"        for table in (instances, instance_types):"},{"line_number":53,"context_line":"            if FLAGS.connection_type \u003d\u003d \u0027libvirt\u0027:"},{"line_number":54,"context_line":"                updates \u003d {\u0027root_gb\u0027: 0,"},{"line_number":55,"context_line":"                           \u0027ephemeral_gb\u0027: table.c.local_gb}"},{"line_number":56,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAD3%2F%2F%2FcY%3D","line":53,"updated":"2012-01-10 16:33:34.000000000","message":"I feel like using the connection_type flag in migrations is a bad idea.\n\nMy guess is that most people may not set connection_type in nova.conf on their database nodes where they actually run migration and as such this could lead to real head scratching.","commit_id":"554c91718188ac61e5ce83c8d004dafb68f6599c"}],"nova/db/sqlalchemy/migrate_repo/versions/068_change_flavor_local_gb.py":[{"author":{"_account_id":360,"name":"Dan Prince","email":"dprince@redhat.com","username":"dan-prince"},"change_message_id":"c3a35c8607a40cf9d0993a781207dc69b152f600","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    try:"},{"line_number":104,"context_line":"        for table in (instances, instance_types):"},{"line_number":105,"context_line":"            if FLAGS.connection_type \u003d\u003d \u0027libvirt\u0027:"},{"line_number":106,"context_line":"                column \u003d table.c.ephemeral_gb"},{"line_number":107,"context_line":"            else:"},{"line_number":108,"context_line":"                column \u003d table.c.root_gb"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAD3%2F%2F%2FJI%3D","line":105,"updated":"2012-01-11 04:06:02.000000000","message":"Should we warn the user here if FLAGS.connection_type \u003d\u003d None (the new default)?\n\nA simple log warning message could be very helpful would it not?\n\nOr would it be better to fail outright if connection_type \u003d\u003d None at this point?","commit_id":"9ba97d0d9df0efcaf1497a56a3376a9e37cc81db"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"0b5db451cd58f6bcccb73e46855e063cd36b8222","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    try:"},{"line_number":104,"context_line":"        for table in (instances, instance_types):"},{"line_number":105,"context_line":"            if FLAGS.connection_type \u003d\u003d \u0027libvirt\u0027:"},{"line_number":106,"context_line":"                column \u003d table.c.ephemeral_gb"},{"line_number":107,"context_line":"            else:"},{"line_number":108,"context_line":"                column \u003d table.c.root_gb"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAD3%2F%2F%2FJA%3D","line":105,"in_reply_to":"AAAAD3%2F%2F%2FJI%3D","updated":"2012-01-11 04:15:58.000000000","message":"Woops. My intent was to fail if connection_type is None. I\u0027ll push up a new patch set (with a couple of minor cleanups as well) after I finish testing it (probably tomorrow morning).","commit_id":"9ba97d0d9df0efcaf1497a56a3376a9e37cc81db"}],"nova/db/sqlalchemy/migrate_repo/versions/074_sqlite_upgrade.sql":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"f005f9c9ef69365c55460769fb4c347ce237df3d","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        progress INTEGER,"},{"line_number":133,"context_line":"        auto_disk_config BOOLEAN,"},{"line_number":134,"context_line":"        shutdown_terminate BOOLEAN,"},{"line_number":135,"context_line":"        disable_terminate BOOLEAN, "},{"line_number":136,"context_line":"        PRIMARY KEY (id),"},{"line_number":137,"context_line":"        CHECK (deleted IN (0, 1)),"},{"line_number":138,"context_line":"        CHECK (locked IN (0, 1)),"}],"source_content_type":"text/x-sql","patch_set":8,"id":"AAAAEH%2F%2F%2B%2Bc%3D","line":135,"updated":"2012-01-24 16:53:53.000000000","message":"Trailing whitespace","commit_id":"8b995289e7084b5347460de622ce23ff886e519e"}],"nova/virt/libvirt/connection.py":[{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"063e6de16f15cd24cb9e1ffb361ed13e5149b5e6","unresolved":false,"context_lines":[{"line_number":898,"context_line":"                                  project_id\u003dinst[\u0027project_id\u0027])"},{"line_number":899,"context_line":""},{"line_number":900,"context_line":"        root_fname \u003d hashlib.sha1(str(disk_images[\u0027image_id\u0027])).hexdigest()"},{"line_number":901,"context_line":"        size \u003d FLAGS.minimum_root_size"},{"line_number":902,"context_line":""},{"line_number":903,"context_line":"        inst_type_id \u003d inst[\u0027instance_type_id\u0027]"},{"line_number":904,"context_line":"        inst_type \u003d instance_types.get_instance_type(inst_type_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAD3%2F%2F%2Fk4%3D","line":901,"updated":"2012-01-10 01:26:02.000000000","message":"Looks like the size is still being set to minimum_root_size for the base drive.  We need to key this off of the instance type root size.","commit_id":"0103741010c3dd82b721b9c1291253bf17ca8537"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"ba6f36098f461ca5ba40c4476dda88c80ab52510","unresolved":false,"context_lines":[{"line_number":898,"context_line":"                                  project_id\u003dinst[\u0027project_id\u0027])"},{"line_number":899,"context_line":""},{"line_number":900,"context_line":"        root_fname \u003d hashlib.sha1(str(disk_images[\u0027image_id\u0027])).hexdigest()"},{"line_number":901,"context_line":"        size \u003d FLAGS.minimum_root_size"},{"line_number":902,"context_line":""},{"line_number":903,"context_line":"        inst_type_id \u003d inst[\u0027instance_type_id\u0027]"},{"line_number":904,"context_line":"        inst_type \u003d instance_types.get_instance_type(inst_type_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAD3%2F%2F%2FaA%3D","line":901,"in_reply_to":"AAAAD3%2F%2F%2Fd0%3D","updated":"2012-01-10 17:58:58.000000000","message":"I would prefer setting all root_gb to 10 and getting rid of minimum_root_size if it is possible.","commit_id":"0103741010c3dd82b721b9c1291253bf17ca8537"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"90cebd9c9c063f94deaff2a5803ac29b25d760ee","unresolved":false,"context_lines":[{"line_number":898,"context_line":"                                  project_id\u003dinst[\u0027project_id\u0027])"},{"line_number":899,"context_line":""},{"line_number":900,"context_line":"        root_fname \u003d hashlib.sha1(str(disk_images[\u0027image_id\u0027])).hexdigest()"},{"line_number":901,"context_line":"        size \u003d FLAGS.minimum_root_size"},{"line_number":902,"context_line":""},{"line_number":903,"context_line":"        inst_type_id \u003d inst[\u0027instance_type_id\u0027]"},{"line_number":904,"context_line":"        inst_type \u003d instance_types.get_instance_type(inst_type_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAD3%2F%2F%2Fd0%3D","line":901,"in_reply_to":"AAAAD3%2F%2F%2Fk4%3D","updated":"2012-01-10 15:53:08.000000000","message":"I guess this ties into how we plan on handling migrations for instance types. If we don\u0027t presume to know how to set root_gb correctly, then we probably still need minimum_root_size for now as a fallback?","commit_id":"0103741010c3dd82b721b9c1291253bf17ca8537"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"063e6de16f15cd24cb9e1ffb361ed13e5149b5e6","unresolved":false,"context_lines":[{"line_number":904,"context_line":"        inst_type \u003d instance_types.get_instance_type(inst_type_id)"},{"line_number":905,"context_line":"        if inst_type[\u0027name\u0027] \u003d\u003d \u0027m1.tiny\u0027 or suffix \u003d\u003d \u0027.rescue\u0027:"},{"line_number":906,"context_line":"            size \u003d None"},{"line_number":907,"context_line":"            root_fname +\u003d \"_sm\""},{"line_number":908,"context_line":""},{"line_number":909,"context_line":"        if not self._volume_in_mapping(self.default_root_device,"},{"line_number":910,"context_line":"                                       block_device_info):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAD3%2F%2F%2Fk0%3D","line":907,"updated":"2012-01-10 01:26:02.000000000","message":"This should probably be changed as well for all instance types.\nsomething like:\nroot_fname +\u003d \"_%s\" % size\n\nfor all types like we do with ephemeral drives.","commit_id":"0103741010c3dd82b721b9c1291253bf17ca8537"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"ba6f36098f461ca5ba40c4476dda88c80ab52510","unresolved":false,"context_lines":[{"line_number":904,"context_line":"        inst_type \u003d instance_types.get_instance_type(inst_type_id)"},{"line_number":905,"context_line":"        if inst_type[\u0027name\u0027] \u003d\u003d \u0027m1.tiny\u0027 or suffix \u003d\u003d \u0027.rescue\u0027:"},{"line_number":906,"context_line":"            size \u003d None"},{"line_number":907,"context_line":"            root_fname +\u003d \"_sm\""},{"line_number":908,"context_line":""},{"line_number":909,"context_line":"        if not self._volume_in_mapping(self.default_root_device,"},{"line_number":910,"context_line":"                                       block_device_info):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAD3%2F%2F%2FZ0%3D","line":907,"in_reply_to":"AAAAD3%2F%2F%2Fd4%3D","updated":"2012-01-10 17:58:58.000000000","message":"images are resized (to 10G) before they are cached.  Previously the cached image would be named:\n\u003cimage_id\u003e and be 10G\nm1.tiny is not resized (it was for dev/testing purposes) and neither is rescue (because you have the original disk still attached).  Because it is not resized, it is not 10G, so the cached image needed another name:\n\u003cimage_id\u003e_sm\nIf we are resizing the root drive to different sizes based on the flavor than we need different names, so I\u0027m suggesting:\n\u003cimage_id\u003e_60\n\u003cimage_id\u003e_90\netc.\nwe can still use \u003cimage_id\u003e_sm if the image is not resized.","commit_id":"0103741010c3dd82b721b9c1291253bf17ca8537"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"90cebd9c9c063f94deaff2a5803ac29b25d760ee","unresolved":false,"context_lines":[{"line_number":904,"context_line":"        inst_type \u003d instance_types.get_instance_type(inst_type_id)"},{"line_number":905,"context_line":"        if inst_type[\u0027name\u0027] \u003d\u003d \u0027m1.tiny\u0027 or suffix \u003d\u003d \u0027.rescue\u0027:"},{"line_number":906,"context_line":"            size \u003d None"},{"line_number":907,"context_line":"            root_fname +\u003d \"_sm\""},{"line_number":908,"context_line":""},{"line_number":909,"context_line":"        if not self._volume_in_mapping(self.default_root_device,"},{"line_number":910,"context_line":"                                       block_device_info):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAD3%2F%2F%2Fd4%3D","line":907,"in_reply_to":"AAAAD3%2F%2F%2Fk0%3D","updated":"2012-01-10 15:53:08.000000000","message":"Thanks for reminding me about that. I saw that and I was confused what that is for.\n\nI don\u0027t understand why images for m1.tiny or rescue are cached with a different name? Why are they treated differently? Shouldn\u0027t all instance types use the same base image?","commit_id":"0103741010c3dd82b721b9c1291253bf17ca8537"}],"nova/virt/xenapi/vmops.py":[{"author":{"_account_id":475,"name":"Rick Harris","email":"rick.harris@rackspace.com","username":"rconradharris"},"change_message_id":"87d322430a38e7d92ee6f96ebbfcf9f2d132cf60","unresolved":false,"context_lines":[{"line_number":366,"context_line":"            userdevice \u003d 2"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"        instance_type \u003d db.instance_type_get(ctx, instance.instance_type_id)"},{"line_number":369,"context_line":"        print \u0027instance_type: %r\u0027 % instance_type"},{"line_number":370,"context_line":"        swap_mb \u003d instance_type[\u0027swap\u0027]"},{"line_number":371,"context_line":"        generate_swap \u003d swap_mb and FLAGS.xenapi_generate_swap"},{"line_number":372,"context_line":"        print \u0027swap_mb: %r %r\u0027 % (swap_mb, generate_swap)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAD3%2F%2F%2Bok%3D","line":369,"updated":"2012-01-12 17:41:30.000000000","message":"Were these print statements accidentally left in?\n\nShould they converted to LOG.debug or removed?","commit_id":"dd938293f178037445c21bf5d68c185d26d42740"}]}
