hi:<br><br>i want to learn storm. so the problem i am trying to solve with it is:<br><br>requirements: --------------------------------------------------------------------------------------<br>* for a arbitrary group of windows computers:<br>

&nbsp;&nbsp; extract the list of all automatic but stopped services<br>&nbsp;&nbsp; store this list in a database for historical purposes (dont&#39; ask why).<br><br>&nbsp;* the generation of this list can be run several times per day. <br>&nbsp;* at any time in the future be able to execute a query to return the information generated by the previous code. <br>
<br>notes:-------------------------------------------------------------------------------------------------<br>&nbsp;* i have only used the services table as an example, there will be in fact several other tables eg. processes, operating-systems, events, diskspace, freememory etc, but whatever is applicable for services will work for these other tables as they have a similar structure. <br>
<br>currently i have this setup (below), where a group can have 1..n computers and a computer can have 1..n service records. Now if the list was only generated once per day, this schema would be fine (i think) as&nbsp; sometime in the future i would just query on the service table for for all records for a particular day the list was generated - but the list can be generated several times per day. <br>
<br>so i thought about having a&nbsp; &quot;class Job&quot; so everytime the list is generated a unique job_id would be generated and would be stored in a link Class JobComputer<br>create table jobs (id integer, name varchar), create table&nbsp; jobs_computers (job_id integer, computer_id integer).<br>
<br>but i thought it was starting to look ugly - confusion started to reign so i thought i would ask here about the best way to achieve my goal and if a linktable is the go, how do i tie the link table / class to the services table/class and similar tables/classes. <br>
<br>thanks<br>mark<br><br>class Computer(Storm):<br>&nbsp;&nbsp;&nbsp; __storm_table__ = &quot;computers&quot;<br>&nbsp;&nbsp;&nbsp; id = Int(primary = True)<br>&nbsp;&nbsp;&nbsp; processes = ReferenceSet(id, &quot;Service.computer_id&quot;)<br>&nbsp;&nbsp;&nbsp; group_id = Int()<br>
&nbsp;&nbsp;&nbsp; name = Unicode()<br><br>&nbsp;&nbsp;&nbsp; def __init__(self, group_id, name):<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; self.group_id = group_id<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <a href="http://self.name">self.name</a> = unicode(name)<br><br>class Service(Storm):<br>&nbsp;&nbsp;&nbsp; __storm_table__ = &quot;services&quot;<br>
&nbsp;&nbsp;&nbsp; id = Int(primary = True)<br>&nbsp;&nbsp;&nbsp; computer_id = Int()<br>&nbsp;&nbsp;&nbsp; caption = Unicode()<br>&nbsp;&nbsp;&nbsp; date = Datetime()<br><br>&nbsp;&nbsp;&nbsp; def __init__(self, date, **args):<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; self.caption = args[&#39;caption&#39;]<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; self.date = date<br>
<br>class Group(Storm):<br>&nbsp;&nbsp;&nbsp; __storm_table__ = &quot;groups&quot;<br>&nbsp;&nbsp;&nbsp; id = Int(primary = True)<br>&nbsp;&nbsp;&nbsp; computers = ReferenceSet(id, &quot;Computer.group_id&quot;)<br>&nbsp;&nbsp;&nbsp; name = Unicode()<br><br>&nbsp;&nbsp;&nbsp; def __init__(self,name):<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <a href="http://self.name">self.name</a> = name<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; store.execute(&quot;CREATE TABLE groups &quot; \<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &quot;(id INTEGER PRIMARY KEY, name VARCHAR)&quot;, \<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; noresult = True \<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; )<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; store.execute(&quot;CREATE TABLE computers &quot;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &quot;(id INTEGER PRIMARY KEY, group_id INTEGER, name VARCHAR)&quot;, \<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; noresult = True \<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; )<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; store.execute(&quot;CREATE TABLE services &quot; \<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &quot;(id INTEGER PRIMARY KEY, computer_id VARCHAR, Caption VARCHAR, Date, DATETIME)&quot;, \<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; noresult = True \<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; )<br>