<div dir="ltr">s/jquery/fontawesome<div><br></div><div>Also, board election process require to exclude >2 board members from same company, BUT this information isn't available on <a href="http://jenkins.io">jenkins.io</a> LDAP afaik. </div><div>How do we plan to handle this ?</div><div><br></div><div>I suggest we add this as a new LDAP attribute that would be set as board candidates get defined (this would avoid people to enter by themselves with risk for distinct names for same actual company), wdyt ?</div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-10-20 14:17 GMT+02:00 nicolas de loof <span dir="ltr"><<a href="mailto:nicolas.deloof@gmail.com" target="_blank">nicolas.deloof@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I've setup a voting page prototype on account app : <a href="https://github.com/ndeloof/account-app" target="_blank">https://github.com/ndeloof/<wbr>account-app</a><div><br></div><div>not trivial to test, as it relies on jquery which is provided by jenkins-ci.org-theme BUT does not allow cross origin so can't be used if you run the app on localhost :-\</div><div><br></div><div>election open/close period is stored on configuration file.</div><div>about storing election data : I suggest we add a "vote" attribute to LDAP users when the vote from web UI. Same to track election candidates</div><div><br></div><div><br></div><div><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">2016-10-18 21:53 GMT+02:00 R. Tyler Croy <span dir="ltr"><<a href="mailto:tyler@monkeypox.org" target="_blank">tyler@monkeypox.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="m_-4569417865761254098HOEnZb"><div class="m_-4569417865761254098h5">(replies inline)<br>
<br>
On Tue, 18 Oct 2016, nicolas de loof wrote:<br>
<br>
> 2016-10-18 21:18 GMT+02:00 R. Tyler Croy <<a href="mailto:tyler@monkeypox.org" target="_blank">tyler@monkeypox.org</a>>:<br>
><br>
> > (replies inline)<br>
> ><br>
> > On Tue, 18 Oct 2016, nicolas de loof wrote:<br>
> ><br>
> > > l have some cycles I can spend on INFRA-536 (implement board election<br>
> > > voting)<br>
> > > I don't know the context about Apache STeVe, IIUC there have been some<br>
> > > prior experiments to integrate with it jenkins infra.<br>
> ><br>
> ><br>
> > orrc suggested Apache Steve but it's *way* too immature IMHO, has some<br>
> > problematic infrastructure requirements (lol elasticsearch), and lacks<br>
> > integration with LDAP :/<br>
> ><br>
> ><br>
> > > I can give it a try, other option is for me to implement STV inside<br>
> > > <a href="http://jenkins.io" rel="noreferrer" target="_blank">jenkins.io</a> account application,<br>
> > > using <a href="https://wiki.jenkins-ci.org/display/JENKINS/Board+Election+Process" rel="noreferrer" target="_blank">https://wiki.jenkins-ci.org/di<wbr>splay/JENKINS/Board+Election+<wbr>Process</a><br>
> > as<br>
> > > a spec.<br>
> ><br>
> ><br>
> > This is the direction I was thinking on hacking towards. The only<br>
> > persistent<br>
> > store behind the account-app is LDAP, which is certainly not where votes<br>
> > should<br>
> > go IMO. One approach I was thinking about was configuring an "election<br>
> > transaction file" which would be append-only, and then making the<br>
> > account-app<br>
> > write votes to that file.<br>
> ><br>
> > That would make the changes to the account-app minimal, and then we can<br>
> > just<br>
> > write some Groovy or Python to process the election transaction log.<br>
> ><br>
> ><br>
> Ho wis this app hosted ? I can see a Dockerfile, so wonder if we run a<br>
> docker container. In such case I guess we can get a volume with backup ?<br>
> Because replacing a database (elastic or whatever) with a flat file doesn't<br>
> seem to me a way to make this a robust solution :P<br>
<br>
<br>
</div></div>The account-app is deployed in a standalone container which only has access to<br>
LDAP (different host).<br>
<br>
Right now there is no external storage of any kind attached to it, relational<br>
database or not.<br>
<span><br>
<br>
<br>
> > The challenge I haven't given much thought to was how to present the<br>
> > election<br>
> > options, basically, how would the account-app know who the candidates<br>
> > would be?<br>
> > How would it know how long the election should run, etc.<br>
> ><br>
><br>
> Administrator UI seems to be the simplest option.<br>
<br>
<br>
</span>See previous statement about no currently attached database.<br>
<br>
<br>
<br>
That said, if you believe that attaching SQL Server (yay Azure) as a backend to<br>
the account-app to make some of these tasks easier, I don't think that's<br>
unreasonable. The account-app is not currently deployed into Azure, but<br>
certainly will need to migrate regardless of this work. I can prioritize that<br>
work if it makes your life implementing board elections easier.<br>
<br>
<br>
The flat-file transaction log would have the least impact as far as underlying<br>
infrastructure changes, but I agree, it kinda sucks.<br>
<br>
<br>
If you want to expand the infrastructure requirements for account-app to<br>
support board elections, perhaps create a wiki page with a proposed<br>
architecture design and requirements + nice-to-haves?<br>
<div class="m_-4569417865761254098HOEnZb"><div class="m_-4569417865761254098h5"><br>
<br>
<br>
Cheers<br>
- R. Tyler Croy<br>
<br>
------------------------------<wbr>------------------------<br>
     Code: <<a href="https://github.com/rtyler" rel="noreferrer" target="_blank">https://github.com/rtyler</a>><br>
  Chatter: <<a href="https://twitter.com/agentdero" rel="noreferrer" target="_blank">https://twitter.com/agentdero</a><wbr>><br>
<br>
  % gpg --keyserver <a href="http://keys.gnupg.net" rel="noreferrer" target="_blank">keys.gnupg.net</a> --recv-key 1426C7DC3F51E16F<br>
------------------------------<wbr>------------------------<br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>