<!-- 
RSS generated by JIRA (8.3.4#803005-sha1:1f96e09b3c60279a408a2ae47be3c745f571388b) at Sat Feb 10 16:31:48 JST 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>PFS-JIRA</title>
    <link>https://pfspipe.ipmu.jp/jira</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.3.4</version>
        <build-number>803005</build-number>
        <build-date>13-09-2019</build-date>
    </build-info>


<item>
            <title>[INSTRM-1091] Add butler persistence to/from opDb</title>
                <link>https://pfspipe.ipmu.jp/jira/browse/INSTRM-1091</link>
                <project id="10300" key="INSTRM">Instrument control development</project>
                    <description>&lt;p&gt;The ICS butler in &lt;tt&gt;pfs_utils&lt;/tt&gt; currently persists to files, generally either YAML or FITS. Per many recent discussions, some objects need to be persisted to opDb instead. Support that for things like:&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;cobra = self.butler.get(&apos;cobraGeometry&apos;, idDict)
self.butler.put(cobra, &apos;cobraGeometry&apos;, idDict)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The &lt;em&gt;filesystem&lt;/em&gt; persistence mechanism generally did not address versioning, leaving that up to external tools and procedures (e.g. someone calling &apos;git commit&apos; for updated files in pfs_instdata).&lt;/p&gt;

&lt;p&gt;Likewise with the opDb. If the schema supports persistence, e.g. with an update time column, then we get versioning. Else not.&lt;/p&gt;

&lt;p&gt;The existing filesystem map for the above example is:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;configMap[&apos;cobraGeometry&apos;] = dict(template=&quot;pfi/cobras/{moduleName}/{cobraInModule}/geometry.yaml&quot;,
     loaderModule=&apos;ics.cobraCharmer.cobra&apos;)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;with a magic &lt;tt&gt;load(path)&lt;/tt&gt; in the &lt;tt&gt;loaderModule&lt;/tt&gt;, and a &lt;tt&gt;.dump(path)&lt;/tt&gt; in the returned class.&lt;/p&gt;

&lt;p&gt;I do not have confidence that there will always be a one-to-one object-to-table mapping, so am not sure whether naming a table in the butler is useful. So&#160;I guess I&apos;d make that:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;configMap[&apos;cobraGeometry&apos;] = dict(opDb=True,
                                  loaderModule=&apos;ics.cobraCharmer.cobra&apos;)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;and add &lt;tt&gt;loadOpDb(idDict)&lt;/tt&gt; and &lt;tt&gt;.dumpOpDb(idDict)&lt;/tt&gt; function &amp;amp; method. Allow useful info to be stuffed in idDict.&lt;/p&gt;

&lt;p&gt;Use the &lt;tt&gt;spt_operational_database&lt;/tt&gt; library routines to wrap opDb access, so I do not need to think about database implementation details.&lt;/p&gt;</description>
                <environment></environment>
        <key id="14932">INSTRM-1091</key>
            <summary>Add butler persistence to/from opDb</summary>
                <type id="3" iconUrl="https://pfspipe.ipmu.jp/jira/secure/viewavatar?size=xsmall&amp;avatarId=10518&amp;avatarType=issuetype">Task</type>
                                            <priority id="10000" iconUrl="https://pfspipe.ipmu.jp/jira/images/icons/priorities/medium.svg">Normal</priority>
                        <status id="10100" iconUrl="https://pfspipe.ipmu.jp/jira/images/icons/statuses/generic.png" description="No further work should be done on this.">Won&apos;t Fix</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="2">Won&apos;t Fix</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="cloomis">cloomis</reporter>
                        <labels>
                            <label>PFI</label>
                            <label>SPS</label>
                            <label>opDb</label>
                    </labels>
                <created>Fri, 16 Oct 2020 11:01:03 +0000</created>
                <updated>Fri, 22 Apr 2022 03:12:36 +0000</updated>
                            <resolved>Fri, 22 Apr 2022 03:12:36 +0000</resolved>
                                                                    <component>pfs_utils</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                <comments>
                            <comment id="30763" author="cloomis" created="Fri, 22 Apr 2022 03:12:36 +0000"  >&lt;p&gt;Our opdb access routines are covered by spt_operational_database. If we really want storage-agnostic butler access this ticket can be rephrased/reopened.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10500" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|02qpuc:i6001gr068fhw9qo4o0r</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                        </customfields>
    </item>
</channel>
</rss>