<div dir="ltr">Hi Radek,<br><br><div>1. You can't use column references on any table except those created by a datasource, mainly because Congress doesn't know the name of the columns for those tables.  We've kicked around the idea of letting policy-writers declare the column names of any table, but it's trickier than it sounds.  </div><div><br></div><div>2. Even if we solved (1), there's not much point in using column-references in the head (left-hand-side) of a rule because you always need to include all of the columns anyway.  That restriction is baked deeply into the semantics of the language: if you leave out a column in the head the size of the table is infinite.  The only benefit to column-references in the head would be enabling you to specify the columns in any order.  </div><div><br></div><div>3. I've thought about tweaking the semantics of Datalog so that it includes both tuples and dictionaries.  But that is a major effort. </div><div><br></div><div>4. We don't actually allow column-references even within execute[ action(...)] because of (2).</div><div><br></div><div>5.  In your example, can you write it without the column references?  I don't see the predeploy_modify rule to understand why you need column references in the query.</div><div><br></div><div> <span style="font-family:'Courier New';font-size:9pt;line-height:19.7999992370605px">predeploy_modify(<uuid>,<uuid></span><span style="font-family:'Courier New';font-size:9pt;line-height:19.7999992370605px">,'add_property', 5, name="image”, value="<uuid>")</span></div><p class="MsoNormal" style="font-size:13.1999998092651px;line-height:19.7999992370605px"><span lang="EN-US" style="font-size:9pt;font-family:'Courier New'"><u></u><u></u></span></p><div>Tim</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Jun 11, 2015 at 6:44 AM Pospisil, Radek <<a href="mailto:radek.pospisil@hp.com">radek.pospisil@hp.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="CS" link="#0563C1" vlink="#954F72">
<div>
<p class="MsoNormal"><span lang="EN-US">Hello,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">Is it possible to have named parameters on rule’s left side, for example:<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p><u></u><span lang="EN-US"><span>1.<span style="font:7.0pt "Times New Roman"">      
</span></span></span><u></u><span lang="EN-US">predeploy_modify(eid,oid,"</span><span>add_property</span><span lang="EN-US">",5, name=”image”, value=pvalue) :- …. Glancev2:images(name=pvalue,…)<u></u><u></u></span></p>
<p><u></u><span lang="EN-US"><span>2.<span style="font:7.0pt "Times New Roman"">      
</span></span></span><u></u><span lang="EN-US">predeploy_modify(eid,oid,"</span><span>add_object</span><span lang="EN-US">", 10, type=”monitoring”, port=8190, path=”/aa/bb”) :- ….
<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">My Usecase is following – I want to use Congress to provide me list of ‘actions’ that I have to do on Murano environment prior it is deployed – for example:<u></u><u></u></span></p>
<p><u></u><span lang="EN-US" style="font-family:Symbol"><span>·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><u></u><span lang="EN-US">I want to enforce/use specific image for given component(s) in environment, so I set corresponding property (example 1)<u></u><u></u></span></p>
<p><u></u><span lang="EN-US" style="font-family:Symbol"><span>·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><u></u><span lang="EN-US">I want to add an object (monitoring) with properties to environment  (example 2)<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">Thus generally “I want to query for one rule with variable set/dictionary of arguments” – for example using simulation API:<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.0pt;font-family:"Courier New"">$ openstack congress policy simulate test 'predeploy_modify()' '' action<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.0pt;font-family:"Courier New"">Result will be<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.0pt;font-family:"Courier New"">predeploy_modify(<uuid>,<uuid>,'add_property', 5, name="image”, value="<uuid>")<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.0pt;font-family:"Courier New"">predeploy_modify(<uuid>,<uuid>,'add_object', 10, type="monitoring", port="…", path="…")<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.0pt;font-family:"Courier New""><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">The problem is that if I do (as an example):<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.0pt;font-family:"Courier New"">$  openstack congress policy rule create test "a(o,p,q=4) :- b(o),b(p)"<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.0pt;font-family:"Courier New"">ERROR: openstack Syntax error for rule::Compiler found errors:Atom a(q=4) uses named parameters but the columns for table a have not been declared.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.0pt;font-family:"Courier New"">Atom a(q=4) uses named parameters but the columns for table a have not been declared. (HTTP 400) (Request-ID: req-b05683e6-766a-4be8-a238-5811eb6f7125)<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.0pt;font-family:"Courier New""><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">So is it possible to use named parameters on not-declared tables?
<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">I know that it is possible to do for “execute[ action(…) ] :- “, where positional and keyword/named set of parameters is passed to action-executor.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">  Regards,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">                Radek<u></u><u></u></span></p>
</div>
</div>

__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote></div>