<div dir="auto"><div>The format is</div><div dir="auto"><br></div><div dir="auto">- - <application-name1>:<endpoint-name1></div><div dir="auto"> - <application-name2>:<endpoint-name2></div><div dir="auto"><br></div><div dir="auto">Where application-name is the name of the _instance_ of the charm (as defined in the applications section of bundle.yaml) and endpoint-name is the name of the endpoint (requires/provides from metadata.yaml) that is used to connect the two nodes.</div><div dir="auto"><br></div><div dir="auto">Endpoint-name is optional if only one type of relation is possible between the nodes (a relation is established between a required endpoint of one node and a provides endpoint of the same interface type of the other node). The : is not present if the endpoint name is not specified.</div><div dir="auto"><br></div><div dir="auto">So the relations section is a 2 dimensional list, the first dimension is an array of all the relations and the second dimension specifies which endpoints of which nodes that relation connects.<br><br>And finally, the applications section is called "services" in some bundles.<br><br>I think that covers most of the strange quirks, let me know if you have more questions.<br><br><div class="gmail_quote" dir="auto"><div dir="ltr">On Tue, 26 Jun 2018, 05:37 Ilias Tsoumas, <<a href="mailto:itsoum@unipi.gr" target="_blank" rel="noreferrer">itsoum@unipi.gr</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello Merlijn and all,<div><br></div><div>I developed a python script which fetching all the bundle.yml.</div><div>Here is the repo: <a href="https://github.com/itsoum/BundlesFetcher" rel="noreferrer noreferrer" target="_blank">https://github.com/itsoum/BundlesFetcher</a></div><div>Merlijn special thanks for the help about the API.</div><div><br></div><div>Now, there rise a new "problem". As I had mentioned in the first-post above I fetch bundles for the relations between nodes(charms). But there isn't an obvious annotation technique about how relations are described inside each bundle.yaml.</div><div>Check some different examples below</div><div><a href="https://github.com/itsoum/BundlesFetcher/blob/master/bundles_yaml/wordpress-site-3.yml" rel="noreferrer noreferrer" target="_blank">https://github.com/itsoum/BundlesFetcher/blob/master/bundles_yaml/wordpress-site-3.yml</a> </div><div><a href="https://github.com/itsoum/BundlesFetcher/blob/master/bundles_yaml/wordpress-site-3.yml" rel="noreferrer noreferrer" target="_blank">https://github.com/itsoum/BundlesFetcher/blob/master/bundles_yaml/web-in-a-box-9.yml</a> </div><div><a href="https://github.com/itsoum/BundlesFetcher/blob/master/bundles_yaml/wordpress-site-3.yml" rel="noreferrer noreferrer" target="_blank">https://github.com/itsoum/BundlesFetcher/blob/master/bundles_yaml/hadoop-spark-1.yml</a> </div><div>For example in the first:</div><div>
<table class="m_-8705795719773245282m_2078690117660551736gmail-highlight m_-8705795719773245282m_2078690117660551736gmail-tab-size m_-8705795719773245282m_2078690117660551736gmail-js-file-line-container" style="box-sizing:border-box;border-collapse:collapse;color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:14px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><tbody style="box-sizing:border-box"><tr style="box-sizing:border-box"><td id="m_-8705795719773245282m_2078690117660551736gmail-LC70" class="m_-8705795719773245282m_2078690117660551736gmail-blob-code m_-8705795719773245282m_2078690117660551736gmail-blob-code-inner m_-8705795719773245282m_2078690117660551736gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;color:rgb(36,41,46);word-wrap:normal;white-space:pre-wrap"><span class="m_-8705795719773245282m_2078690117660551736gmail-pl-ent" style="box-sizing:border-box;color:rgb(34,134,58)">relations</span>:</td></tr><tr style="box-sizing:border-box"><td id="m_-8705795719773245282m_2078690117660551736gmail-L71" class="m_-8705795719773245282m_2078690117660551736gmail-blob-num m_-8705795719773245282m_2078690117660551736gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.3);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-8705795719773245282m_2078690117660551736gmail-LC71" class="m_-8705795719773245282m_2078690117660551736gmail-blob-code m_-8705795719773245282m_2078690117660551736gmail-blob-code-inner m_-8705795719773245282m_2078690117660551736gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;color:rgb(36,41,46);word-wrap:normal;white-space:pre-wrap">- <span class="m_-8705795719773245282m_2078690117660551736gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)">- haproxy:reverseproxy</span></td></tr><tr style="box-sizing:border-box"><td id="m_-8705795719773245282m_2078690117660551736gmail-L72" class="m_-8705795719773245282m_2078690117660551736gmail-blob-num m_-8705795719773245282m_2078690117660551736gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.3);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-8705795719773245282m_2078690117660551736gmail-LC72" class="m_-8705795719773245282m_2078690117660551736gmail-blob-code m_-8705795719773245282m_2078690117660551736gmail-blob-code-inner m_-8705795719773245282m_2078690117660551736gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;color:rgb(36,41,46);word-wrap:normal;white-space:pre-wrap"> - <span class="m_-8705795719773245282m_2078690117660551736gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)">wordpress:website</span></td></tr><tr style="box-sizing:border-box"><td id="m_-8705795719773245282m_2078690117660551736gmail-L73" class="m_-8705795719773245282m_2078690117660551736gmail-blob-num m_-8705795719773245282m_2078690117660551736gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.3);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-8705795719773245282m_2078690117660551736gmail-LC73" class="m_-8705795719773245282m_2078690117660551736gmail-blob-code m_-8705795719773245282m_2078690117660551736gmail-blob-code-inner m_-8705795719773245282m_2078690117660551736gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;color:rgb(36,41,46);word-wrap:normal;white-space:pre-wrap">- <span class="m_-8705795719773245282m_2078690117660551736gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)">- wordpress:cache</span></td></tr><tr style="box-sizing:border-box"><td id="m_-8705795719773245282m_2078690117660551736gmail-L74" class="m_-8705795719773245282m_2078690117660551736gmail-blob-num m_-8705795719773245282m_2078690117660551736gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.3);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-8705795719773245282m_2078690117660551736gmail-LC74" class="m_-8705795719773245282m_2078690117660551736gmail-blob-code m_-8705795719773245282m_2078690117660551736gmail-blob-code-inner m_-8705795719773245282m_2078690117660551736gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;color:rgb(36,41,46);word-wrap:normal;white-space:pre-wrap"> - <span class="m_-8705795719773245282m_2078690117660551736gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)">memcached:cache</span></td></tr><tr style="box-sizing:border-box"><td id="m_-8705795719773245282m_2078690117660551736gmail-L75" class="m_-8705795719773245282m_2078690117660551736gmail-blob-num m_-8705795719773245282m_2078690117660551736gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.3);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-8705795719773245282m_2078690117660551736gmail-LC75" class="m_-8705795719773245282m_2078690117660551736gmail-blob-code m_-8705795719773245282m_2078690117660551736gmail-blob-code-inner m_-8705795719773245282m_2078690117660551736gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;color:rgb(36,41,46);word-wrap:normal;white-space:pre-wrap">- <span class="m_-8705795719773245282m_2078690117660551736gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)">- wordpress:db</span></td></tr><tr style="box-sizing:border-box"><td id="m_-8705795719773245282m_2078690117660551736gmail-L76" class="m_-8705795719773245282m_2078690117660551736gmail-blob-num m_-8705795719773245282m_2078690117660551736gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.3);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-8705795719773245282m_2078690117660551736gmail-LC76" class="m_-8705795719773245282m_2078690117660551736gmail-blob-code m_-8705795719773245282m_2078690117660551736gmail-blob-code-inner m_-8705795719773245282m_2078690117660551736gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;color:rgb(36,41,46);word-wrap:normal;white-space:pre-wrap"> - <span class="m_-8705795719773245282m_2078690117660551736gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)">mariadb:db</span></td></tr><tr style="box-sizing:border-box"><td id="m_-8705795719773245282m_2078690117660551736gmail-L77" class="m_-8705795719773245282m_2078690117660551736gmail-blob-num m_-8705795719773245282m_2078690117660551736gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.3);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-8705795719773245282m_2078690117660551736gmail-LC77" class="m_-8705795719773245282m_2078690117660551736gmail-blob-code m_-8705795719773245282m_2078690117660551736gmail-blob-code-inner m_-8705795719773245282m_2078690117660551736gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;color:rgb(36,41,46);word-wrap:normal;white-space:pre-wrap">- <span class="m_-8705795719773245282m_2078690117660551736gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)">- mariadb-slave:slave</span></td></tr><tr style="box-sizing:border-box"><td id="m_-8705795719773245282m_2078690117660551736gmail-L78" class="m_-8705795719773245282m_2078690117660551736gmail-blob-num m_-8705795719773245282m_2078690117660551736gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.3);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-8705795719773245282m_2078690117660551736gmail-LC78" class="m_-8705795719773245282m_2078690117660551736gmail-blob-code m_-8705795719773245282m_2078690117660551736gmail-blob-code-inner m_-8705795719773245282m_2078690117660551736gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;color:rgb(36,41,46);word-wrap:normal;white-space:pre-wrap"> - <span class="m_-8705795719773245282m_2078690117660551736gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)">mariadb:master</span></td></tr><tr style="box-sizing:border-box"><td id="m_-8705795719773245282m_2078690117660551736gmail-L79" class="m_-8705795719773245282m_2078690117660551736gmail-blob-num m_-8705795719773245282m_2078690117660551736gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.3);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-8705795719773245282m_2078690117660551736gmail-LC79" class="m_-8705795719773245282m_2078690117660551736gmail-blob-code m_-8705795719773245282m_2078690117660551736gmail-blob-code-inner m_-8705795719773245282m_2078690117660551736gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;color:rgb(36,41,46);word-wrap:normal;white-space:pre-wrap">- <span class="m_-8705795719773245282m_2078690117660551736gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)">- nagios:nagios</span></td></tr><tr style="box-sizing:border-box"><td id="m_-8705795719773245282m_2078690117660551736gmail-L80" class="m_-8705795719773245282m_2078690117660551736gmail-blob-num m_-8705795719773245282m_2078690117660551736gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;width:50px;min-width:50px;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,0.3);text-align:right;white-space:nowrap;vertical-align:top"></td><td id="m_-8705795719773245282m_2078690117660551736gmail-LC80" class="m_-8705795719773245282m_2078690117660551736gmail-blob-code m_-8705795719773245282m_2078690117660551736gmail-blob-code-inner m_-8705795719773245282m_2078690117660551736gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;overflow:visible;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;color:rgb(36,41,46);word-wrap:normal;white-space:pre-wrap"> - <span class="m_-8705795719773245282m_2078690117660551736gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)">wordpress:juju-info</span></td></tr></tbody></table>
which is the topology of application graph. The ':' isn't denotes the edge between two charms? If yes, why - wordpress:db and - mariadb:db?</div><div>There us someone who knows the annotation method of relations? Could you explain?</div><div><br></div><div>BR,</div><div>Ilias</div><div><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Jun 5, 2018 at 2:11 PM Ilias Tsoumas <<a href="mailto:itsoum@unipi.gr" rel="noreferrer noreferrer" target="_blank">itsoum@unipi.gr</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Merlijn,<div><br></div><div>First of all thank you for your quick and essential answer!</div><div><br></div><div>Reply inline</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<span style="color:rgb(34,34,34);font-family:sans-serif;font-size:13px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Great to hear you're doing cool stuff with Juju! I recently asked a similar question for a paper I've written for CLOUD 2018</span><div style="color:rgb(34,34,34);font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;font-family:arial,sans-serif"><a href="https://lists.ubuntu.com/archives/juju/2018-January/009845.html" style="color:rgb(17,85,204)" rel="noreferrer noreferrer" target="_blank">https://lists.ubuntu.com/archives/juju/2018-January/009845.html</a>. If you want, I can send it to you in private (it's accepted but not published yet).</div></blockquote><div><br></div><div>Of course. I would like to read your paper. Also me and a colleague work on performance estimations of app components (=charms). If I have suspected properly your paper is related with performance analysis/profiling thus it will be inspiration for us.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<span style="color:rgb(34,34,34);font-family:sans-serif;font-size:13px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Here is the documentation for the charm store api: </span><a href="https://github.com/juju/charmstore/blob/v5-unstable/docs/API.md" style="color:rgb(17,85,204);font-family:sans-serif;font-size:13px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" rel="noreferrer noreferrer" target="_blank">https://github.com/juju/charmstore/blob/v5-unstable/docs/API.md</a>
<br></blockquote><div><br></div><div>I will check it.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<span style="color:rgb(34,34,34);font-family:sans-serif;font-size:13px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Here is an Jupyter notebook I use to get metrics of charm and layer usage: </span><a href="https://github.com/IBCNServices/reactive-pattern-results/blob/master/reactive-usage-stats.ipynb" style="color:rgb(17,85,204);font-family:sans-serif;font-size:13px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" rel="noreferrer noreferrer" target="_blank">https://github.com/IBCNServices/reactive-pattern-results/blob/master/reactive-usage-stats.ipynb</a><span style="color:rgb(34,34,34);font-family:sans-serif;font-size:13px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">. It should be easy to modify that code to pull info about the bundles. As an example; this is the URL to get all bundles in the Juju store: </span><a href="https://api.jujucharms.com/charmstore/v5/list?type=bundle" style="color:rgb(17,85,204);font-family:sans-serif;font-size:13px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" rel="noreferrer noreferrer" target="_blank">https://api.jujucharms.com/charmstore/v5/list?type=bundle</a></blockquote><div><br></div><div>Thank you! I hope to be feasible to pull all bundle.yaml with one query/request.</div><div><br></div><div>BR,</div><div>Ilias</div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Jun 4, 2018 at 3:22 PM Merlijn Sebrechts <<a href="mailto:merlijn.sebrechts@gmail.com" rel="noreferrer noreferrer" target="_blank">merlijn.sebrechts@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Ilias<div><br></div><div><br></div><div>Great to hear you're doing cool stuff with Juju! I recently asked a similar question for a paper I've written for CLOUD 2018<div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><a href="https://lists.ubuntu.com/archives/juju/2018-January/009845.html" rel="noreferrer noreferrer" target="_blank">https://lists.ubuntu.com/archives/juju/2018-January/009845.html</a>. If you want, I can send it to you in private (it's accepted but not published yet).<br></div><br class="m_-8705795719773245282m_2078690117660551736m_-1435780623696315841m_7142576636390450144m_963950486553404387m_6428401880955487289gmail-Apple-interchange-newline"></div><div>Here is the documentation for the charm store api: <a href="https://github.com/juju/charmstore/blob/v5-unstable/docs/API.md" rel="noreferrer noreferrer" target="_blank">https://github.com/juju/charmstore/blob/v5-unstable/docs/API.md</a></div><div><ul><li>download the entire zip for a bundle: <a href="https://api.jujucharms.com/charmstore/v5/bundle/%3Cbundle-name%3E/archive" rel="noreferrer noreferrer" target="_blank">https://api.jujucharms.com/charmstore/v5/bundle/<bundle-name>/archive</a><br></li><li>download a specific file of a bundle: <a href="https://api.jujucharms.com/charmstore/v5/bundle/%3Cbundle-name%3E/archive/bundle.yaml" rel="noreferrer noreferrer" target="_blank">https://api.jujucharms.com/charmstore/v5/bundle/<bundle-name>/archive/bundle.yaml</a></li></ul></div><div>Here is an Jupyter notebook I use to get metrics of charm and layer usage: <a href="https://github.com/IBCNServices/reactive-pattern-results/blob/master/reactive-usage-stats.ipynb" rel="noreferrer noreferrer" target="_blank">https://github.com/IBCNServices/reactive-pattern-results/blob/master/reactive-usage-stats.ipynb</a>. It should be easy to modify that code to pull info about the bundles. As an example; this is the URL to get all bundles in the Juju store: <a href="https://api.jujucharms.com/charmstore/v5/list?type=bundle" rel="noreferrer noreferrer" target="_blank">https://api.jujucharms.com/charmstore/v5/list?type=bundle</a></div><div><br></div><div>Cleaning up the data will be the hard part probably, since there are a lot of unused/broken bundles in the store. I've used the downloads/month metric to figure out what charms are actually still used.</div></div><br><div class="gmail_quote"><div dir="ltr">Op ma 4 jun. 2018 om 14:05 schreef Ilias Tsoumas <<a href="mailto:itsoum@unipi.gr" rel="noreferrer noreferrer" target="_blank">itsoum@unipi.gr</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello all,<div><br></div><div>I have designed and I am developing a novel recommender system which will provide recommendations at application graph (=bundle) composition time. Now I need a real graphs dataset. I think that all juju bundles of components is a good real dataset. Are there some how to aggregate all these "bundle.yaml" files? Are there some api endpoint?</div><div>This work is funding from the European Union’s Horizon 2020 research and innovation program under grant agreement No 761898 project Matilda.</div><div><br></div><div>Kind regards,</div><div>Ilias Tsoumas</div></div>
-- <br>
Juju mailing list<br>
<a href="mailto:Juju@lists.ubuntu.com" rel="noreferrer noreferrer" target="_blank">Juju@lists.ubuntu.com</a><br>
Modify settings or unsubscribe at: <a href="https://lists.ubuntu.com/mailman/listinfo/juju" rel="noreferrer noreferrer noreferrer" target="_blank">https://lists.ubuntu.com/mailman/listinfo/juju</a><br>
</blockquote></div>
</blockquote></div>
</blockquote></div>
</blockquote></div></div></div>