)]}'
{"diskimage_builder/block_device/config.py":[{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"4610a653ba58cd5c78cb58610758545f7ff9b624","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    ### !!!!! Why does this not work on import???  it only finds one"},{"line_number":91,"context_line":"    ### !!!!! plugin?  i\u0027m guessing it is some sort of import loop"},{"line_number":92,"context_line":"    ### !!!!! that stevedore hides"},{"line_number":93,"context_line":"    global _extensions"},{"line_number":94,"context_line":"    _extensions \u003d stevedore.extension.ExtensionManager("},{"line_number":95,"context_line":"        namespace\u003d\u0027diskimage_builder.block_device.plugin\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff0f0b1f_60f67f92","line":92,"updated":"2017-05-18 12:01:53.000000000","message":"ahh, circular imports ... figured this out","commit_id":"da7a62c0e260009f5cc6da786cd77d32e5f1d537"}],"diskimage_builder/block_device/level1/partition.py":[{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"c10609a2ce8abf48402e7bb4b2c3e8042842f655","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            raise BlockDeviceSetupException(\"No size in partition\" % self.name)"},{"line_number":90,"context_line":"        self.size \u003d config[\u0027size\u0027]"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        global PARTITION_NUMBERS"},{"line_number":93,"context_line":"        if \u0027number\u0027 not in config:"},{"line_number":94,"context_line":"            raise BlockDeviceSetupException(\"No number in partition\""},{"line_number":95,"context_line":"                                            % self.name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_26297489","line":92,"updated":"2017-05-22 02:11:21.000000000","message":"I think we\u0027re falling into a bit of the same trap here of making something that should be generic into a very specific part of the node config.\n\nfor graphs, maybe we just use \"weight\" and leave everything else alone.  \n\nfor tree config, if we see a list, we can just automatically make up a weight for each step, e.g.\n\n partitioning:\n   - partition:\n       name: foo\n   - partition: \n       name: bar\n\nand the config code does\n\n  weight \u003d 0\n  for l in partitioning: \n    add_node(partition, weight)\n    weight++\n\nand then that\u0027s the general rule ... \"lists\" in tree config get a sequentially increasing weight?","commit_id":"f11f5973e16295b99b4e336c0fdf116796a2a5e3"},{"author":{"_account_id":21741,"name":"Andreas Florath","email":"andreas@florath.net","username":"florath"},"change_message_id":"76fdd83e51748a4dea4f392748bd9013fa625e4c","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            raise BlockDeviceSetupException(\"No size in partition\" % self.name)"},{"line_number":90,"context_line":"        self.size \u003d config[\u0027size\u0027]"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        global PARTITION_NUMBERS"},{"line_number":93,"context_line":"        if \u0027number\u0027 not in config:"},{"line_number":94,"context_line":"            raise BlockDeviceSetupException(\"No number in partition\""},{"line_number":95,"context_line":"                                            % self.name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_53ac2933","line":92,"in_reply_to":"ff0f0b1f_26297489","updated":"2017-05-22 05:45:49.000000000","message":"When we use the generic approach for partitioning (using nodes also to specify the partition), we should not directly introduce new special handling:  currently the order of the nodes in the configuration does not matter.  Also (at least the current implementation on tree_to_digraph) just adds nodes to the end. I think this is fine and we should stay with this.\n\nOn the other side we need for partitions some kind of order.  Currently the partition number are generated automatically - and the user has mostly no influence.  If we use explicit numbering here, we give the user the possibility to explicitly state which partition number should be used. It would be possible to have only e.g. partition 1, 3 and 5 used.  This would also mean, that we can get rid of the MBR primary and logical configuration.","commit_id":"f11f5973e16295b99b4e336c0fdf116796a2a5e3"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"6e034e34d3c76d258dcaf817665391337d1af97a","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            raise BlockDeviceSetupException(\"No size in partition\" % self.name)"},{"line_number":90,"context_line":"        self.size \u003d config[\u0027size\u0027]"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        global PARTITION_NUMBERS"},{"line_number":93,"context_line":"        if \u0027number\u0027 not in config:"},{"line_number":94,"context_line":"            raise BlockDeviceSetupException(\"No number in partition\""},{"line_number":95,"context_line":"                                            % self.name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_987098de","line":92,"in_reply_to":"ff0f0b1f_53ac2933","updated":"2017-05-22 10:49:30.000000000","message":"The fact that the topological sort of the configuration is not giving us what we need seems to be saying \"you\u0027re doing it wrong\"\n\nI wonder if we\u0027re conflating different things here.  If \"partition3\" *actually* relies on the creation of \"partition2\" and \"partition1\" then that should be expressed in the configuration graph:\n\n partitioning:\n   partition:\n     name: partition1\n     partition:\n       name: partition2\n       partition:\n         name: partition3\n\nwhich would create a properly ordered graph.  \n\nif it does not matter, they can all just hang off the partitioning object and it can create them in any order it wants.\n\nit seems that with this model, the partitioning object can do a DFS of itself for partition nodes?  that search would return the nodes in the correct order for creation?  AND the topological sort remains in the correct order too.\n\nAdding a partition number might be fine as metadata.\n\nIt\u0027s the inconsistency that flags it as weird for me.  For everything else we\u0027re saying \"order your config nodes by building a config node with a name, and a base: that points to its parent node.  Except for partitions.  Add them all to the parent, but use \"number:\" to sort them in the order you want created\".","commit_id":"f11f5973e16295b99b4e336c0fdf116796a2a5e3"},{"author":{"_account_id":6133,"name":"yolanda.robla","email":"yroblamo@redhat.com","username":"yolanda.robla"},"change_message_id":"e18977a778c9bf0c8e974a033fbc8c6c97d06595","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            raise BlockDeviceSetupException(\"No size in partition\" % self.name)"},{"line_number":90,"context_line":"        self.size \u003d config[\u0027size\u0027]"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        global PARTITION_NUMBERS"},{"line_number":93,"context_line":"        if \u0027number\u0027 not in config:"},{"line_number":94,"context_line":"            raise BlockDeviceSetupException(\"No number in partition\""},{"line_number":95,"context_line":"                                            % self.name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_e019f279","line":92,"in_reply_to":"ff0f0b1f_6a96074f","updated":"2017-05-23 09:44:57.000000000","message":"For my volumes change, the special need I have, is that a volume group can reference different physical volumes. So the structure could be:\n\npartitioning:\n  partition:\n    name: partition1\n  partition:\n    name: partition2\nlvm:\n  pvs:\n    name: pv1\n    base: partition1\n  pvs:\n    name: pv2\n    base: partition2\n  vgs:\n    name: vg\n    base: [pv1,pv2]\n  lvs:\n    name: lv\n    base: vgs\n\nI even think that lvm can be dropped totally, and we could just have a list of pvs, vgs and lvs. The special thing is that the base for vgs, needs to be a list, because it can reference several pvs.","commit_id":"f11f5973e16295b99b4e336c0fdf116796a2a5e3"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"d8fd323ecbcb4be9f1c44c4e2f4c8ca573f4c9d9","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            raise BlockDeviceSetupException(\"No size in partition\" % self.name)"},{"line_number":90,"context_line":"        self.size \u003d config[\u0027size\u0027]"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        global PARTITION_NUMBERS"},{"line_number":93,"context_line":"        if \u0027number\u0027 not in config:"},{"line_number":94,"context_line":"            raise BlockDeviceSetupException(\"No number in partition\""},{"line_number":95,"context_line":"                                            % self.name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_6a96074f","line":92,"in_reply_to":"ff0f0b1f_987098de","updated":"2017-05-22 11:08:41.000000000","message":"Another big-ish issue ... global causes problems with unit testing and persistence.  we end up needing to mock it out.  it\u0027s gets ugly...","commit_id":"f11f5973e16295b99b4e336c0fdf116796a2a5e3"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"2ab3546dcb9fb326e1aff9b728944ae77dd37993","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            raise BlockDeviceSetupException(\"No size in partition\" % self.name)"},{"line_number":90,"context_line":"        self.size \u003d config[\u0027size\u0027]"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        global PARTITION_NUMBERS"},{"line_number":93,"context_line":"        if \u0027number\u0027 not in config:"},{"line_number":94,"context_line":"            raise BlockDeviceSetupException(\"No number in partition\""},{"line_number":95,"context_line":"                                            % self.name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_9beaab0c","line":92,"in_reply_to":"ff0f0b1f_e019f279","updated":"2017-05-23 10:29:37.000000000","message":"@yolanda there is an ordering here that needs to be expressed?  the physical volumes first, then the volume groups, then the logical volumes, right?  so why would we not express that in the configuration in an actual graph?\n\nI\u0027m thinking the graph representation looks like [1] which builds the following graph [2]\n\n- the PV is a leaf node, it just creates itself\n- the VG create() looks at its PV children, and collates those and makes the VG\n- the LV create() looks at its VG children, and collates those to make the LV\n\n[1] http://paste.openstack.org/show/610426/\n[2] http://imgur.com/a/pccpQ","commit_id":"f11f5973e16295b99b4e336c0fdf116796a2a5e3"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"2887d6f70e1be1e07e3854bb7dc09e41bd88715b","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        global PARTITION_NUMBERS"},{"line_number":93,"context_line":"        if \u0027number\u0027 not in config:"},{"line_number":94,"context_line":"            raise BlockDeviceSetupException(\"No number in partition\""},{"line_number":95,"context_line":"                                            % self.name)"},{"line_number":96,"context_line":"        self.number \u003d config[\u0027number\u0027]"},{"line_number":97,"context_line":"        if self.number in PARTITION_NUMBERS:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_c62bd82d","line":94,"updated":"2017-05-22 02:32:01.000000000","message":"invalid format string","commit_id":"f11f5973e16295b99b4e336c0fdf116796a2a5e3"}]}
