Monday, 2017-05-22

*** jamielennox|away is now known as jamielennox00:02
*** pmannidi has quit IRC00:03
*** pmannidi has joined #openstack-dib00:25
*** pmannidi is now known as pmannidi|Trg00:25
*** pmannidi|Trg is now known as pmannidi00:25
openstackgerritMerged openstack/diskimage-builder master: Switch debian to deb.debian.org  https://review.openstack.org/46618201:07
openstackgerritMerged openstack/diskimage-builder master: Add weights to digraph  https://review.openstack.org/46647301:07
*** Sukhdev has joined #openstack-dib01:47
*** jamielennox is now known as jamielennox|away02:00
*** adam_g has quit IRC02:24
*** adam_g has joined #openstack-dib02:25
*** adam_g has quit IRC02:32
*** adam_g has joined #openstack-dib02:35
openstackgerritMerged openstack/diskimage-builder master: Move exception to it's own file (again)  https://review.openstack.org/46612902:54
*** adam_g has quit IRC03:24
*** adam_g has joined #openstack-dib03:24
*** jamielennox|away is now known as jamielennox03:53
*** xinliang has quit IRC03:54
*** xinliang has joined #openstack-dib03:55
*** xinliang has quit IRC03:55
*** xinliang has joined #openstack-dib03:55
openstackgerritMerged openstack/diskimage-builder master: Split partition into it's own file  https://review.openstack.org/46583704:29
openstackgerritMerged openstack/diskimage-builder master: Move parts of Partition creation into object  https://review.openstack.org/46583804:29
*** adam_g has quit IRC04:30
*** adam_g has joined #openstack-dib04:32
*** andreas-f has joined #openstack-dib04:35
*** isaacb has joined #openstack-dib04:59
openstackgerritIan Wienand proposed openstack/diskimage-builder master: Unit testing for graph generation  https://review.openstack.org/46659105:13
openstackgerritIan Wienand proposed openstack/diskimage-builder master: Start at networkx for digraph implementation  https://review.openstack.org/46659205:13
openstackgerritNoam Angel proposed openstack/diskimage-builder master: Revert "Set manifests to mode 600 and owner root"  https://review.openstack.org/46659305:13
ianwyolanda / andreas-f : i'm fairly convinced we don't have to maintain our own graph implementation.  ^^ very WIP ... but i think it's quite close05:14
*** isaacb has quit IRC05:41
andreas-fianw: can you please recheck, that the networkx comes with all what we need? IMHO e.g. a topological sort that respects the weights is missing.05:47
andreas-fAlso there is no appropriate iterator.05:48
ianwandreas-f: i can't imagine we can't do what we want with networkx06:05
ianwthere is no way that sorting our digraph is something so special it's not handled06:05
ianwbut, i haven't fully explored it, yet06:06
ianweven if the exact sort isn't there, i'd prefer we use it as the base and simply add a small sorting function06:06
andreas-fianw: Please check! I'd really love to remove our implementation. But I had a look some month ago for an appropriate graph lib  - and did not find anything that fulfills all requirements.06:07
andreas-fIt's not a small sorting function: you have to re-implement the topological sort.06:07
*** aparnav has joined #openstack-dib06:09
ianwandreas-f: i'll keep looking, even if something in https://networkx.github.io/documentation/development/reference/algorithms.html doesn't fit exactly, we'd be better spending our time contributing something upstream that does06:11
ianwthen everyone can use it06:11
ianwin the mean time, even if we just keep things in a nx.Graph, it still exposes the node & edge information so you can write your own sorting function06:12
yolandaianw, is that ok to add as a dependency in global requirements? we couldn't add the past graph lib that we explored, because it was unmaintained06:16
ianwyolanda: yep, it's in requirements already06:16
yolandanice06:16
ianwi think the DAG stuff might fit the bit ...06:17
ianwanyway, as the firs step adding some unit tests for config-file -> graph as done in 455691 will be our first stop06:18
andreas-fA short list of things that must be changed / added when switching to nx:06:29
andreas-f* Concept: Own classes cannot inherit from nx.Node / nx.Edge06:29
andreas-f* add_node with check of unique name06:29
andreas-f* get_iter_node_values06:29
andreas-f* topological_sort06:29
andreas-f* Node.get_iter_outgoing06:29
*** isaacb has joined #openstack-dib06:33
*** isaacb has quit IRC06:33
ianwandreas-f: i think you're misunderstanding nx a bit.  you don't inherit from their classes.  you just put in an hashable key.  and each node/edge can have arbitrary attributes06:37
ianwso each node is hashed based on "name"06:37
ianwand we can have an obj attribute, that is our "plugin"06:37
ianwwe can keep a dict of names and simply check if it's already there06:38
ianwi don't see why, when building partitions, the node can't look at its outgoing edges and simply sort by the weight of them06:38
ianwhttp://logs.openstack.org/92/466592/1/check/gate-diskimage-builder-python27-ubuntu-xenial/0e9782d/console.html#_2017-05-22_05_14_36_36842406:42
*** adam_g has quit IRC06:42
ianwinteresting on the sort, it's very close06:42
*** adam_g has joined #openstack-dib06:43
andreas-fianw: I don't say that it is not possible. This is just a list of changes that must be done. Not inheriting means to change the current concept.06:44
andreas-fBut we should create a design that can be used by all plugins: we should not have something special for the partitioning / partition object.06:44
ianwandreas-f: actually, it barely requires changing.  466592 is basically working, modulo the sorting issues06:45
ianw2017-05-22 16:44:14,959 DEBUG [diskimage_builder.block_device.tests.test_config] ['mount_mkfs_root', 'image0', 'fstab_mount_mkfs_root', 'mbr', 'root', 'mkfs_root']06:46
ianw2017-05-22 16:44:14,959 DEBUG [diskimage_builder.block_device.tests.test_config] ['image0', 'mbr', 'root', 'mkfs_root', 'mount_mkfs_root', 'fstab_mount_mkfs_root']06:46
ianwthe first one is from nx06:46
ianwi'm not sure why it gets different ordering than ours06:46
ianwthat's for the following graph -> https://review.openstack.org/#/c/466591/1/diskimage_builder/block_device/tests/config/deep_graph.yaml06:46
ianw"A topological sort is a nonunique permutation of the nodes such that an edge from u to v implies that u appears before v in the topological sort order."06:53
ianw"nonunique permutation"06:53
ianw"Conversely, if a topological sort does not form a Hamiltonian path, the DAG will have two or more valid topological orderings, for in this case it is always possible to form a second valid ordering by swapping two consecutive vertices that are not connected by an edge to each other."06:55
ianwif our graphs have two valid topological orderings, that seems ... non deterministic06:55
ianwi think that's actually what i'm seeing, the order of nx.topological_sort() changes06:57
ianwahh, hang on, missing and edge for some reason07:01
*** andreas-f has quit IRC07:03
openstackgerritIan Wienand proposed openstack/diskimage-builder master: Start at networkx for digraph implementation  https://review.openstack.org/46659207:36
ianwthat one works ^07:36
ianwyolanda: if you get time can you look at my comment in -> https://review.openstack.org/#/c/466592/2/diskimage_builder/block_device/level3/mount.py07:36
ianwwhy is the mount-point nodes not ordered from the config?  re-ordering after seems wrong07:37
openstackgerritNoam Angel proposed openstack/diskimage-builder master: dhcp-all-interfaces.sh - Add support for InfiniBand interface DHCP  https://review.openstack.org/46592807:48
*** Sukhdev has quit IRC07:50
ianwyolanda: also, if you get a chance to add more configs to 466591 for the graph testing, well that would be great :)07:50
*** adam_g has quit IRC08:54
*** adam_g has joined #openstack-dib08:55
*** chhavi has joined #openstack-dib08:55
*** adam_g has quit IRC09:54
*** adam_g has joined #openstack-dib09:55
*** adam_g has quit IRC10:09
*** adam_g has joined #openstack-dib10:10
*** hashar has joined #openstack-dib10:16
*** adam_g has quit IRC10:19
*** adam_g has joined #openstack-dib10:23
*** adam_g has quit IRC10:32
*** adam_g has joined #openstack-dib10:35
*** hashar has quit IRC10:44
*** adam_g has quit IRC10:48
*** adam_g has joined #openstack-dib10:49
*** chhavi has quit IRC11:20
*** lennyb_ has quit IRC11:24
*** lennyb has quit IRC11:24
*** lennyb has joined #openstack-dib11:25
*** lennyb has quit IRC11:27
*** lennyb has joined #openstack-dib11:28
*** lennyb_ has joined #openstack-dib11:29
*** lennyb has quit IRC11:29
*** lennyb_ has quit IRC11:29
*** lennyb has joined #openstack-dib11:30
openstackgerritIan Wienand proposed openstack/diskimage-builder master: Start at networkx for digraph implementation  https://review.openstack.org/46659211:49
ianwandreas-f: ^11:50
ianwandreas-f: https://review.openstack.org/#/c/466592/3/diskimage_builder/block_device/tests/test_config.py line 175 is a concrete example of using a DFS to walk the attached partition list below a "partitioning" object11:51
ianwas i mentioned in another comment, if ordering is important there, i think it should probably come from the graph itself.  just chain the partitions in the order required and they'll be picked up by the parent in that order11:52
ianwyou know, we could probably even do this as part of the graph generation11:54
ianw1) generate topological_sort11:54
ianw2) walk list, looking for "Partitioning" objects11:54
ianw3) do DFS search on that node for "Partition" object children11:55
ianw4) append all partition children to a variable in the "Partitioning" node11:55
ianw5) all done.  Partitioning.create() just walks it's self.partitions list, and the info it needs is there11:56
ianwthat's basically what we have currently, just without all the magic recursive tree calling functions during config read11:57
ianwi don't know if i like that or not.  + is that nodes don't have to be passed the whole graph.  - is each config option that wants this will do something similar11:59
*** chhavi has joined #openstack-dib12:39
*** aparnav has quit IRC13:08
*** mmedvede has quit IRC13:58
*** mmedvede has joined #openstack-dib14:01
*** hashar has joined #openstack-dib14:01
*** hashar has quit IRC14:25
*** tushar has joined #openstack-dib15:49
*** aparnav has joined #openstack-dib17:10
*** aparna has joined #openstack-dib17:12
*** aparnav has quit IRC17:16
*** aparna has quit IRC17:17
*** Sukhdev has joined #openstack-dib17:43
*** Sukhdev has quit IRC18:01
*** sauloaislan has joined #openstack-dib18:32
*** andreas-f has joined #openstack-dib19:07
*** chhavi has quit IRC19:48
*** pmannidi has quit IRC23:31
openstackgerritIan Wienand proposed openstack/diskimage-builder master: Start at networkx for digraph implementation  https://review.openstack.org/46659223:37
*** pmannidi has joined #openstack-dib23:55

Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!