Adds indexes for query optimization

This commit is contained in:
Patrick McDonagh
2017-03-03 17:56:32 -06:00
parent 5ddc28ad92
commit bb1323e146
7 changed files with 460 additions and 141 deletions

489
.idea/workspace.xml generated
View File

@@ -1,7 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="28cc251f-c94f-44ee-a66d-77aaab6e3483" name="Default" comment="" /> <list default="true" id="28cc251f-c94f-44ee-a66d-77aaab6e3483" name="Default" comment="">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/README.md" afterPath="$PROJECT_DIR$/README.md" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/henrypump/poc/Database.java" afterPath="$PROJECT_DIR$/src/main/java/com/henrypump/poc/Database.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/www/pocwww/pocwww/__init__.py" afterPath="$PROJECT_DIR$/www/pocwww/pocwww/__init__.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/www/pocwww/pocwww/json.py" afterPath="$PROJECT_DIR$/www/pocwww/pocwww/json.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/www/pocwww/pocwww/view_helpers.py" afterPath="$PROJECT_DIR$/www/pocwww/pocwww/view_helpers.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/www/pocwww/setup.py" afterPath="$PROJECT_DIR$/www/pocwww/setup.py" />
</list>
<ignored path="$PROJECT_DIR$/target/" /> <ignored path="$PROJECT_DIR$/target/" />
<ignored path="$PROJECT_DIR$/.gradle/" /> <ignored path="$PROJECT_DIR$/.gradle/" />
<ignored path="$PROJECT_DIR$/build/" /> <ignored path="$PROJECT_DIR$/build/" />
@@ -131,10 +139,121 @@
<file leaf-file-name="Well.java" pinned="false" current-in-tab="false"> <file leaf-file-name="Well.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/Well.java"> <entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/Well.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="467"> <state relative-caret-position="16380">
<caret line="1223" column="30" lean-forward="false" selection-start-line="1223" selection-start-column="30" selection-end-line="1223" selection-end-column="30" /> <caret line="1223" column="30" lean-forward="false" selection-start-line="1223" selection-start-column="30" selection-end-line="1223" selection-end-column="30" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="e#8950#8951#0" expanded="false" />
<element signature="e#8975#8976#0" expanded="false" />
<element signature="e#9011#9012#0" expanded="false" />
<element signature="e#9039#9040#0" expanded="false" />
<element signature="e#9084#9085#0" expanded="false" />
<element signature="e#9125#9126#0" expanded="false" />
<element signature="e#9193#9194#0" expanded="false" />
<element signature="e#9253#9254#0" expanded="false" />
<element signature="e#9293#9294#0" expanded="false" />
<element signature="e#9329#9330#0" expanded="false" />
<element signature="e#9387#9388#0" expanded="false" />
<element signature="e#9437#9438#0" expanded="false" />
<element signature="e#9474#9475#0" expanded="false" />
<element signature="e#9507#9508#0" expanded="false" />
<element signature="e#9559#9560#0" expanded="false" />
<element signature="e#9603#9604#0" expanded="false" />
<element signature="e#9636#9637#0" expanded="false" />
<element signature="e#9668#9669#0" expanded="false" />
<element signature="e#9715#9716#0" expanded="false" />
<element signature="e#9757#9758#0" expanded="false" />
<element signature="e#9801#9802#0" expanded="false" />
<element signature="e#9841#9842#0" expanded="false" />
<element signature="e#9907#9908#0" expanded="false" />
<element signature="e#9965#9966#0" expanded="false" />
<element signature="e#10004#10005#0" expanded="false" />
<element signature="e#10039#10040#0" expanded="false" />
<element signature="e#10235#10236#0" expanded="false" />
<element signature="e#10266#10267#0" expanded="false" />
<element signature="e#10493#10494#0" expanded="false" />
<element signature="e#10524#10525#0" expanded="false" />
<element signature="e#10765#10766#0" expanded="false" />
<element signature="e#10794#10795#0" expanded="false" />
<element signature="e#10910#10911#0" expanded="false" />
<element signature="e#10955#10956#0" expanded="false" />
<element signature="e#11079#11080#0" expanded="false" />
<element signature="e#11128#11129#0" expanded="false" />
<element signature="e#11720#11721#0" expanded="false" />
<element signature="e#11759#11760#0" expanded="false" />
<element signature="e#11823#11824#0" expanded="false" />
<element signature="e#11879#11880#0" expanded="false" />
<element signature="e#11919#11920#0" expanded="false" />
<element signature="e#11955#11956#0" expanded="false" />
<element signature="e#11990#11991#0" expanded="false" />
<element signature="e#12021#12022#0" expanded="false" />
<element signature="e#12072#12073#0" expanded="false" />
<element signature="e#12119#12120#0" expanded="false" />
<element signature="e#12162#12163#0" expanded="false" />
<element signature="e#12201#12202#0" expanded="false" />
<element signature="e#12265#12266#0" expanded="false" />
<element signature="e#12321#12322#0" expanded="false" />
<element signature="e#12369#12370#0" expanded="false" />
<element signature="e#12409#12410#0" expanded="false" />
<element signature="e#12444#12445#0" expanded="false" />
<element signature="e#12475#12476#0" expanded="false" />
<element signature="e#12514#12515#0" expanded="false" />
<element signature="e#12549#12550#0" expanded="false" />
<element signature="e#12582#12583#0" expanded="false" />
<element signature="e#12614#12615#0" expanded="false" />
<element signature="e#13216#13217#0" expanded="false" />
<element signature="e#13246#13247#0" expanded="false" />
<element signature="e#13621#13622#0" expanded="false" />
<element signature="e#13666#13667#0" expanded="false" />
<element signature="e#13711#13712#0" expanded="false" />
<element signature="e#13752#13753#0" expanded="false" />
<element signature="e#13802#13803#0" expanded="false" />
<element signature="e#13848#13849#0" expanded="false" />
<element signature="e#13894#13895#0" expanded="false" />
<element signature="e#13936#13937#0" expanded="false" />
<element signature="e#13975#13976#0" expanded="false" />
<element signature="e#14012#14013#0" expanded="false" />
<element signature="e#14070#14071#0" expanded="false" />
<element signature="e#14122#14123#0" expanded="false" />
<element signature="e#14164#14165#0" expanded="false" />
<element signature="e#14204#14205#0" expanded="false" />
<element signature="e#14241#14242#0" expanded="false" />
<element signature="e#14276#14277#0" expanded="false" />
<element signature="e#14316#14317#0" expanded="false" />
<element signature="e#14354#14355#0" expanded="false" />
<element signature="e#14387#14388#0" expanded="false" />
<element signature="e#14419#14420#0" expanded="false" />
<element signature="e#14477#14478#0" expanded="false" />
<element signature="e#14527#14528#0" expanded="false" />
<element signature="e#14589#14590#0" expanded="false" />
<element signature="e#14643#14644#0" expanded="false" />
<element signature="e#14701#14702#0" expanded="false" />
<element signature="e#14751#14752#0" expanded="false" />
<element signature="e#14791#14792#0" expanded="false" />
<element signature="e#14827#14828#0" expanded="false" />
<element signature="e#14869#14870#0" expanded="false" />
<element signature="e#14907#14908#0" expanded="false" />
<element signature="e#14947#14948#0" expanded="false" />
<element signature="e#14983#14984#0" expanded="false" />
<element signature="e#15017#15018#0" expanded="false" />
<element signature="e#15047#15048#0" expanded="false" />
<element signature="e#15093#15094#0" expanded="false" />
<element signature="e#15131#15132#0" expanded="false" />
<element signature="e#15172#15173#0" expanded="false" />
<element signature="e#15212#15213#0" expanded="false" />
<element signature="e#15259#15260#0" expanded="false" />
<element signature="e#15295#15296#0" expanded="false" />
<element signature="e#15339#15340#0" expanded="false" />
<element signature="e#15381#15382#0" expanded="false" />
<element signature="e#15434#15435#0" expanded="false" />
<element signature="e#15483#15484#0" expanded="false" />
<element signature="e#15681#15682#0" expanded="false" />
<element signature="e#15718#15719#0" expanded="false" />
<element signature="e#15775#15776#0" expanded="false" />
<element signature="e#15827#15828#0" expanded="false" />
<element signature="e#15874#15875#0" expanded="false" />
<element signature="e#15919#15920#0" expanded="false" />
<element signature="e#17811#17812#0" expanded="false" />
<element signature="e#17846#17847#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@@ -151,6 +270,8 @@
<element signature="e#1442#1443#0" expanded="false" /> <element signature="e#1442#1443#0" expanded="false" />
<element signature="e#1486#1487#0" expanded="false" /> <element signature="e#1486#1487#0" expanded="false" />
<element signature="e#1518#1519#0" expanded="false" /> <element signature="e#1518#1519#0" expanded="false" />
<element signature="e#1619#1620#0" expanded="false" />
<element signature="e#1656#1657#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@@ -166,11 +287,11 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="WebServer.java" pinned="false" current-in-tab="true"> <file leaf-file-name="WebServer.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/WebServer.java"> <entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/WebServer.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="352"> <state relative-caret-position="352">
<caret line="65" column="61" lean-forward="true" selection-start-line="65" selection-start-column="61" selection-end-line="65" selection-end-column="61" /> <caret line="65" column="61" lean-forward="false" selection-start-line="65" selection-start-column="61" selection-end-line="65" selection-end-column="61" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
@@ -294,16 +415,12 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="Database.java" pinned="false" current-in-tab="false"> <file leaf-file-name="Database.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/Database.java"> <entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/Database.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3870"> <state relative-caret-position="240">
<caret line="283" column="43" lean-forward="false" selection-start-line="283" selection-start-column="43" selection-end-line="283" selection-end-column="43" /> <caret line="40" column="79" lean-forward="false" selection-start-line="40" selection-start-column="79" selection-end-line="40" selection-end-column="79" />
<folding> <folding />
<element signature="imports" expanded="false" />
<element signature="e#3203#3204#0" expanded="false" />
<element signature="e#3238#3239#0" expanded="false" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
@@ -338,6 +455,7 @@
<find>fill</find> <find>fill</find>
<find>arraycopy</find> <find>arraycopy</find>
<find>nT1</find> <find>nT1</find>
<find>index</find>
</findStrings> </findStrings>
</component> </component>
<component name="Git.Settings"> <component name="Git.Settings">
@@ -751,10 +869,10 @@
<option value="$PROJECT_DIR$/src/main/java/com/henrypump/poc/Measurement.java" /> <option value="$PROJECT_DIR$/src/main/java/com/henrypump/poc/Measurement.java" />
<option value="$PROJECT_DIR$/src/main/java/com/henrypump/poc/CLScanner.java" /> <option value="$PROJECT_DIR$/src/main/java/com/henrypump/poc/CLScanner.java" />
<option value="$PROJECT_DIR$/src/main/java/com/henrypump/poc/IOControl.java" /> <option value="$PROJECT_DIR$/src/main/java/com/henrypump/poc/IOControl.java" />
<option value="$PROJECT_DIR$/src/main/java/com/henrypump/poc/Database.java" />
<option value="$PROJECT_DIR$/src/main/java/com/henrypump/poc/POC.java" /> <option value="$PROJECT_DIR$/src/main/java/com/henrypump/poc/POC.java" />
<option value="$PROJECT_DIR$/src/main/java/com/henrypump/poc/Well.java" /> <option value="$PROJECT_DIR$/src/main/java/com/henrypump/poc/Well.java" />
<option value="$PROJECT_DIR$/src/main/java/com/henrypump/poc/WebServer.java" /> <option value="$PROJECT_DIR$/src/main/java/com/henrypump/poc/WebServer.java" />
<option value="$PROJECT_DIR$/src/main/java/com/henrypump/poc/Database.java" />
</list> </list>
</option> </option>
</component> </component>
@@ -769,10 +887,9 @@
<treeState /> <treeState />
</component> </component>
<component name="ProjectFrameBounds"> <component name="ProjectFrameBounds">
<option name="x" value="-3681" />
<option name="y" value="23" /> <option name="y" value="23" />
<option name="width" value="1680" /> <option name="width" value="1613" />
<option name="height" value="961" /> <option name="height" value="913" />
</component> </component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true" /> <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectView"> <component name="ProjectView">
@@ -790,7 +907,6 @@
<foldersAlwaysOnTop value="true" /> <foldersAlwaysOnTop value="true" />
</navigator> </navigator>
<panes> <panes>
<pane id="Scope" />
<pane id="ProjectPane"> <pane id="ProjectPane">
<subPane> <subPane>
<PATH> <PATH>
@@ -843,74 +959,11 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
</PATH> </PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="poc-java" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="POC-Java" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="main" />
<option name="myItemType" value="org.jetbrains.plugins.gradle.projectView.GradleTreeStructureProvider$GradleSourceSetDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="java" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="poc" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="WebServer" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ClassTreeNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="poc-java" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="POC-Java" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="main" />
<option name="myItemType" value="org.jetbrains.plugins.gradle.projectView.GradleTreeStructureProvider$GradleSourceSetDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="java" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="poc" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="WebServer" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ClassTreeNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="CommandHandler" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ClassTreeNode" />
</PATH_ELEMENT>
</PATH>
</subPane> </subPane>
</pane> </pane>
<pane id="PackagesPane" />
<pane id="Scratches" /> <pane id="Scratches" />
<pane id="PackagesPane" />
<pane id="Scope" />
</panes> </panes>
</component> </component>
<component name="PropertiesComponent"> <component name="PropertiesComponent">
@@ -1194,7 +1247,7 @@
</todo-panel> </todo-panel>
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="-3681" y="23" width="1680" height="961" extended-state="0" /> <frame x="0" y="23" width="1613" height="913" extended-state="0" />
<editor active="true" /> <editor active="true" />
<layout> <layout>
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
@@ -1211,8 +1264,7 @@
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" /> <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
<window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.1959707" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" /> <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.154042" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32960895" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Gradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32967034" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="Gradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32967034" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24973376" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24973376" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
@@ -1226,6 +1278,7 @@
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="3" side_tool="false" content_ui="combo" /> <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="3" side_tool="false" content_ui="combo" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32921347" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32921347" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32960895" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
</layout> </layout>
<layout-to-restore> <layout-to-restore>
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
@@ -1307,11 +1360,7 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1575"> <state relative-caret-position="1575">
<caret line="129" column="42" lean-forward="true" selection-start-line="129" selection-start-column="42" selection-end-line="129" selection-end-column="42" /> <caret line="129" column="42" lean-forward="true" selection-start-line="129" selection-start-column="42" selection-end-line="129" selection-end-column="42" />
<folding> <folding />
<element signature="imports" expanded="false" />
<element signature="e#3203#3204#0" expanded="false" />
<element signature="e#3238#3239#0" expanded="false" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
@@ -1436,7 +1485,118 @@
<state relative-caret-position="13125"> <state relative-caret-position="13125">
<caret line="875" column="5" lean-forward="true" selection-start-line="875" selection-start-column="5" selection-end-line="875" selection-end-column="5" /> <caret line="875" column="5" lean-forward="true" selection-start-line="875" selection-start-column="5" selection-end-line="875" selection-end-column="5" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="e#8950#8951#0" expanded="false" />
<element signature="e#8975#8976#0" expanded="false" />
<element signature="e#9011#9012#0" expanded="false" />
<element signature="e#9039#9040#0" expanded="false" />
<element signature="e#9084#9085#0" expanded="false" />
<element signature="e#9125#9126#0" expanded="false" />
<element signature="e#9193#9194#0" expanded="false" />
<element signature="e#9253#9254#0" expanded="false" />
<element signature="e#9293#9294#0" expanded="false" />
<element signature="e#9329#9330#0" expanded="false" />
<element signature="e#9387#9388#0" expanded="false" />
<element signature="e#9437#9438#0" expanded="false" />
<element signature="e#9474#9475#0" expanded="false" />
<element signature="e#9507#9508#0" expanded="false" />
<element signature="e#9559#9560#0" expanded="false" />
<element signature="e#9603#9604#0" expanded="false" />
<element signature="e#9636#9637#0" expanded="false" />
<element signature="e#9668#9669#0" expanded="false" />
<element signature="e#9715#9716#0" expanded="false" />
<element signature="e#9757#9758#0" expanded="false" />
<element signature="e#9801#9802#0" expanded="false" />
<element signature="e#9841#9842#0" expanded="false" />
<element signature="e#9907#9908#0" expanded="false" />
<element signature="e#9965#9966#0" expanded="false" />
<element signature="e#10004#10005#0" expanded="false" />
<element signature="e#10039#10040#0" expanded="false" />
<element signature="e#10235#10236#0" expanded="false" />
<element signature="e#10266#10267#0" expanded="false" />
<element signature="e#10493#10494#0" expanded="false" />
<element signature="e#10524#10525#0" expanded="false" />
<element signature="e#10765#10766#0" expanded="false" />
<element signature="e#10794#10795#0" expanded="false" />
<element signature="e#10910#10911#0" expanded="false" />
<element signature="e#10955#10956#0" expanded="false" />
<element signature="e#11079#11080#0" expanded="false" />
<element signature="e#11128#11129#0" expanded="false" />
<element signature="e#11720#11721#0" expanded="false" />
<element signature="e#11759#11760#0" expanded="false" />
<element signature="e#11823#11824#0" expanded="false" />
<element signature="e#11879#11880#0" expanded="false" />
<element signature="e#11919#11920#0" expanded="false" />
<element signature="e#11955#11956#0" expanded="false" />
<element signature="e#11990#11991#0" expanded="false" />
<element signature="e#12021#12022#0" expanded="false" />
<element signature="e#12072#12073#0" expanded="false" />
<element signature="e#12119#12120#0" expanded="false" />
<element signature="e#12162#12163#0" expanded="false" />
<element signature="e#12201#12202#0" expanded="false" />
<element signature="e#12265#12266#0" expanded="false" />
<element signature="e#12321#12322#0" expanded="false" />
<element signature="e#12369#12370#0" expanded="false" />
<element signature="e#12409#12410#0" expanded="false" />
<element signature="e#12444#12445#0" expanded="false" />
<element signature="e#12475#12476#0" expanded="false" />
<element signature="e#12514#12515#0" expanded="false" />
<element signature="e#12549#12550#0" expanded="false" />
<element signature="e#12582#12583#0" expanded="false" />
<element signature="e#12614#12615#0" expanded="false" />
<element signature="e#13216#13217#0" expanded="false" />
<element signature="e#13246#13247#0" expanded="false" />
<element signature="e#13621#13622#0" expanded="false" />
<element signature="e#13666#13667#0" expanded="false" />
<element signature="e#13711#13712#0" expanded="false" />
<element signature="e#13752#13753#0" expanded="false" />
<element signature="e#13802#13803#0" expanded="false" />
<element signature="e#13848#13849#0" expanded="false" />
<element signature="e#13894#13895#0" expanded="false" />
<element signature="e#13936#13937#0" expanded="false" />
<element signature="e#13975#13976#0" expanded="false" />
<element signature="e#14012#14013#0" expanded="false" />
<element signature="e#14070#14071#0" expanded="false" />
<element signature="e#14122#14123#0" expanded="false" />
<element signature="e#14164#14165#0" expanded="false" />
<element signature="e#14204#14205#0" expanded="false" />
<element signature="e#14241#14242#0" expanded="false" />
<element signature="e#14276#14277#0" expanded="false" />
<element signature="e#14316#14317#0" expanded="false" />
<element signature="e#14354#14355#0" expanded="false" />
<element signature="e#14387#14388#0" expanded="false" />
<element signature="e#14419#14420#0" expanded="false" />
<element signature="e#14477#14478#0" expanded="false" />
<element signature="e#14527#14528#0" expanded="false" />
<element signature="e#14589#14590#0" expanded="false" />
<element signature="e#14643#14644#0" expanded="false" />
<element signature="e#14701#14702#0" expanded="false" />
<element signature="e#14751#14752#0" expanded="false" />
<element signature="e#14791#14792#0" expanded="false" />
<element signature="e#14827#14828#0" expanded="false" />
<element signature="e#14869#14870#0" expanded="false" />
<element signature="e#14907#14908#0" expanded="false" />
<element signature="e#14947#14948#0" expanded="false" />
<element signature="e#14983#14984#0" expanded="false" />
<element signature="e#15017#15018#0" expanded="false" />
<element signature="e#15047#15048#0" expanded="false" />
<element signature="e#15093#15094#0" expanded="false" />
<element signature="e#15131#15132#0" expanded="false" />
<element signature="e#15172#15173#0" expanded="false" />
<element signature="e#15212#15213#0" expanded="false" />
<element signature="e#15259#15260#0" expanded="false" />
<element signature="e#15295#15296#0" expanded="false" />
<element signature="e#15339#15340#0" expanded="false" />
<element signature="e#15381#15382#0" expanded="false" />
<element signature="e#15434#15435#0" expanded="false" />
<element signature="e#15483#15484#0" expanded="false" />
<element signature="e#15681#15682#0" expanded="false" />
<element signature="e#15718#15719#0" expanded="false" />
<element signature="e#15775#15776#0" expanded="false" />
<element signature="e#15827#15828#0" expanded="false" />
<element signature="e#15874#15875#0" expanded="false" />
<element signature="e#15919#15920#0" expanded="false" />
<element signature="e#17811#17812#0" expanded="false" />
<element signature="e#17846#17847#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@@ -1445,11 +1605,7 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="810"> <state relative-caret-position="810">
<caret line="72" column="28" lean-forward="false" selection-start-line="72" selection-start-column="28" selection-end-line="72" selection-end-column="28" /> <caret line="72" column="28" lean-forward="false" selection-start-line="72" selection-start-column="28" selection-end-line="72" selection-end-column="28" />
<folding> <folding />
<element signature="imports" expanded="false" />
<element signature="e#3203#3204#0" expanded="false" />
<element signature="e#3238#3239#0" expanded="false" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
@@ -1944,18 +2100,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/Database.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3870">
<caret line="283" column="43" lean-forward="false" selection-start-line="283" selection-start-column="43" selection-end-line="283" selection-end-column="43" />
<folding>
<element signature="imports" expanded="false" />
<element signature="e#3203#3204#0" expanded="false" />
<element signature="e#3238#3239#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/barneyWell.json"> <entry file="file://$PROJECT_DIR$/barneyWell.json">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="15"> <state relative-caret-position="15">
@@ -1974,6 +2118,8 @@
<element signature="e#1442#1443#0" expanded="false" /> <element signature="e#1442#1443#0" expanded="false" />
<element signature="e#1486#1487#0" expanded="false" /> <element signature="e#1486#1487#0" expanded="false" />
<element signature="e#1518#1519#0" expanded="false" /> <element signature="e#1518#1519#0" expanded="false" />
<element signature="e#1619#1620#0" expanded="false" />
<element signature="e#1656#1657#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@@ -1988,10 +2134,121 @@
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/Well.java"> <entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/Well.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="467"> <state relative-caret-position="16380">
<caret line="1223" column="30" lean-forward="false" selection-start-line="1223" selection-start-column="30" selection-end-line="1223" selection-end-column="30" /> <caret line="1223" column="30" lean-forward="false" selection-start-line="1223" selection-start-column="30" selection-end-line="1223" selection-end-column="30" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="e#8950#8951#0" expanded="false" />
<element signature="e#8975#8976#0" expanded="false" />
<element signature="e#9011#9012#0" expanded="false" />
<element signature="e#9039#9040#0" expanded="false" />
<element signature="e#9084#9085#0" expanded="false" />
<element signature="e#9125#9126#0" expanded="false" />
<element signature="e#9193#9194#0" expanded="false" />
<element signature="e#9253#9254#0" expanded="false" />
<element signature="e#9293#9294#0" expanded="false" />
<element signature="e#9329#9330#0" expanded="false" />
<element signature="e#9387#9388#0" expanded="false" />
<element signature="e#9437#9438#0" expanded="false" />
<element signature="e#9474#9475#0" expanded="false" />
<element signature="e#9507#9508#0" expanded="false" />
<element signature="e#9559#9560#0" expanded="false" />
<element signature="e#9603#9604#0" expanded="false" />
<element signature="e#9636#9637#0" expanded="false" />
<element signature="e#9668#9669#0" expanded="false" />
<element signature="e#9715#9716#0" expanded="false" />
<element signature="e#9757#9758#0" expanded="false" />
<element signature="e#9801#9802#0" expanded="false" />
<element signature="e#9841#9842#0" expanded="false" />
<element signature="e#9907#9908#0" expanded="false" />
<element signature="e#9965#9966#0" expanded="false" />
<element signature="e#10004#10005#0" expanded="false" />
<element signature="e#10039#10040#0" expanded="false" />
<element signature="e#10235#10236#0" expanded="false" />
<element signature="e#10266#10267#0" expanded="false" />
<element signature="e#10493#10494#0" expanded="false" />
<element signature="e#10524#10525#0" expanded="false" />
<element signature="e#10765#10766#0" expanded="false" />
<element signature="e#10794#10795#0" expanded="false" />
<element signature="e#10910#10911#0" expanded="false" />
<element signature="e#10955#10956#0" expanded="false" />
<element signature="e#11079#11080#0" expanded="false" />
<element signature="e#11128#11129#0" expanded="false" />
<element signature="e#11720#11721#0" expanded="false" />
<element signature="e#11759#11760#0" expanded="false" />
<element signature="e#11823#11824#0" expanded="false" />
<element signature="e#11879#11880#0" expanded="false" />
<element signature="e#11919#11920#0" expanded="false" />
<element signature="e#11955#11956#0" expanded="false" />
<element signature="e#11990#11991#0" expanded="false" />
<element signature="e#12021#12022#0" expanded="false" />
<element signature="e#12072#12073#0" expanded="false" />
<element signature="e#12119#12120#0" expanded="false" />
<element signature="e#12162#12163#0" expanded="false" />
<element signature="e#12201#12202#0" expanded="false" />
<element signature="e#12265#12266#0" expanded="false" />
<element signature="e#12321#12322#0" expanded="false" />
<element signature="e#12369#12370#0" expanded="false" />
<element signature="e#12409#12410#0" expanded="false" />
<element signature="e#12444#12445#0" expanded="false" />
<element signature="e#12475#12476#0" expanded="false" />
<element signature="e#12514#12515#0" expanded="false" />
<element signature="e#12549#12550#0" expanded="false" />
<element signature="e#12582#12583#0" expanded="false" />
<element signature="e#12614#12615#0" expanded="false" />
<element signature="e#13216#13217#0" expanded="false" />
<element signature="e#13246#13247#0" expanded="false" />
<element signature="e#13621#13622#0" expanded="false" />
<element signature="e#13666#13667#0" expanded="false" />
<element signature="e#13711#13712#0" expanded="false" />
<element signature="e#13752#13753#0" expanded="false" />
<element signature="e#13802#13803#0" expanded="false" />
<element signature="e#13848#13849#0" expanded="false" />
<element signature="e#13894#13895#0" expanded="false" />
<element signature="e#13936#13937#0" expanded="false" />
<element signature="e#13975#13976#0" expanded="false" />
<element signature="e#14012#14013#0" expanded="false" />
<element signature="e#14070#14071#0" expanded="false" />
<element signature="e#14122#14123#0" expanded="false" />
<element signature="e#14164#14165#0" expanded="false" />
<element signature="e#14204#14205#0" expanded="false" />
<element signature="e#14241#14242#0" expanded="false" />
<element signature="e#14276#14277#0" expanded="false" />
<element signature="e#14316#14317#0" expanded="false" />
<element signature="e#14354#14355#0" expanded="false" />
<element signature="e#14387#14388#0" expanded="false" />
<element signature="e#14419#14420#0" expanded="false" />
<element signature="e#14477#14478#0" expanded="false" />
<element signature="e#14527#14528#0" expanded="false" />
<element signature="e#14589#14590#0" expanded="false" />
<element signature="e#14643#14644#0" expanded="false" />
<element signature="e#14701#14702#0" expanded="false" />
<element signature="e#14751#14752#0" expanded="false" />
<element signature="e#14791#14792#0" expanded="false" />
<element signature="e#14827#14828#0" expanded="false" />
<element signature="e#14869#14870#0" expanded="false" />
<element signature="e#14907#14908#0" expanded="false" />
<element signature="e#14947#14948#0" expanded="false" />
<element signature="e#14983#14984#0" expanded="false" />
<element signature="e#15017#15018#0" expanded="false" />
<element signature="e#15047#15048#0" expanded="false" />
<element signature="e#15093#15094#0" expanded="false" />
<element signature="e#15131#15132#0" expanded="false" />
<element signature="e#15172#15173#0" expanded="false" />
<element signature="e#15212#15213#0" expanded="false" />
<element signature="e#15259#15260#0" expanded="false" />
<element signature="e#15295#15296#0" expanded="false" />
<element signature="e#15339#15340#0" expanded="false" />
<element signature="e#15381#15382#0" expanded="false" />
<element signature="e#15434#15435#0" expanded="false" />
<element signature="e#15483#15484#0" expanded="false" />
<element signature="e#15681#15682#0" expanded="false" />
<element signature="e#15718#15719#0" expanded="false" />
<element signature="e#15775#15776#0" expanded="false" />
<element signature="e#15827#15828#0" expanded="false" />
<element signature="e#15874#15875#0" expanded="false" />
<element signature="e#15919#15920#0" expanded="false" />
<element signature="e#17811#17812#0" expanded="false" />
<element signature="e#17846#17847#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@@ -1999,13 +2256,21 @@
<entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/WebServer.java"> <entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/WebServer.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="352"> <state relative-caret-position="352">
<caret line="65" column="61" lean-forward="true" selection-start-line="65" selection-start-column="61" selection-end-line="65" selection-end-column="61" /> <caret line="65" column="61" lean-forward="false" selection-start-line="65" selection-start-column="61" selection-end-line="65" selection-end-column="61" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/Database.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="240">
<caret line="40" column="79" lean-forward="false" selection-start-line="40" selection-start-column="79" selection-end-line="40" selection-end-column="79" />
<folding />
</state>
</provider>
</entry>
</component> </component>
<component name="masterDetails"> <component name="masterDetails">
<states> <states>

View File

@@ -75,12 +75,10 @@ systemctl enable mongod.service
- sets the minutes of downtime after pumpoff to `newSetpoint` - sets the minutes of downtime after pumpoff to `newSetpoint`
- returns `{"pumpOffDowntime": <pumpOffDowntime>}` - returns `{"pumpOffDowntime": <pumpOffDowntime>}`
## Endpoint `/command?` ## Endpoint `/command?cmd=<command>&user=<username>`
### `start=<startCommand:string>` ### `start`
- if startCommand = `true`, the well will attempt to start.
- returns `{"startCommand: <result>", "status": <runStatus>}` - returns `{"startCommand: <result>", "status": <runStatus>}`
### `stop=<startCommand:string>` ### `stop`
- if stopCommand = `true`, the well will attempt to stop.
- returns `{"stopCommand: <result>", "status": <runStatus>}` - returns `{"stopCommand: <result>", "status": <runStatus>}`

View File

@@ -12,6 +12,7 @@ import com.mongodb.client.MongoCollection;
import com.mongodb.client.model.Accumulators; import com.mongodb.client.model.Accumulators;
import com.mongodb.client.model.Aggregates; import com.mongodb.client.model.Aggregates;
import com.mongodb.client.model.Indexes;
import com.mongodb.client.model.Sorts; import com.mongodb.client.model.Sorts;
import org.bson.Document; import org.bson.Document;
@@ -36,11 +37,55 @@ public class Database {
Database(){ Database(){
mongoClient = new MongoClient(); mongoClient = new MongoClient();
database = mongoClient.getDatabase(pocDatabase); database = mongoClient.getDatabase(pocDatabase);
MongoCollection<Document> cardCollection = database.getCollection("cards");
cardCollection.createIndex(Indexes.ascending("timestamp", "strokeNumber"));
MongoCollection<Document> wellDataCollection = database.getCollection("wellData");
wellDataCollection.createIndex(Indexes.ascending("timestamp", "tagName"));
MongoCollection<Document> gaugeOffCollection = database.getCollection("gaugeOff");
gaugeOffCollection.createIndex(Indexes.ascending("timestamp", "tagName"));
MongoCollection<Document> wellTestCollection = database.getCollection("wellTests");
wellTestCollection.createIndex(Indexes.ascending("testStartTime"));
MongoCollection<Document> fluidShotsCollection = database.getCollection("fluidShots");
fluidShotsCollection.createIndex(Indexes.ascending("timestamp"));
MongoCollection<Document> runStatusCollection = database.getCollection("runStatus");
runStatusCollection.createIndex(Indexes.ascending("timestamp"));
MongoCollection<Document> wellConfigCollection = database.getCollection("wellConfiguration");
wellConfigCollection.createIndex(Indexes.ascending("timestamp"));
} }
Database(String dbHostname){ Database(String dbHostname){
mongoClient = new MongoClient(dbHostname); mongoClient = new MongoClient(dbHostname);
database = mongoClient.getDatabase(pocDatabase); database = mongoClient.getDatabase(pocDatabase);
MongoCollection<Document> cardCollection = database.getCollection("cards");
cardCollection.createIndex(Indexes.ascending("timestamp"));
MongoCollection<Document> wellDataCollection = database.getCollection("wellData");
wellDataCollection.createIndex(Indexes.ascending("timestamp", "tagName"));
MongoCollection<Document> gaugeOffCollection = database.getCollection("gaugeOff");
gaugeOffCollection.createIndex(Indexes.ascending("timestamp", "tagName"));
MongoCollection<Document> wellTestCollection = database.getCollection("wellTests");
wellTestCollection.createIndex(Indexes.ascending("testStartTime"));
MongoCollection<Document> fluidShotsCollection = database.getCollection("fluidShots");
fluidShotsCollection.createIndex(Indexes.ascending("timestamp"));
MongoCollection<Document> runStatusCollection = database.getCollection("runStatus");
runStatusCollection.createIndex(Indexes.ascending("timestamp"));
MongoCollection<Document> wellConfigCollection = database.getCollection("wellConfiguration");
wellConfigCollection.createIndex(Indexes.ascending("timestamp"));
} }
public long getLastStrokeNum(){ public long getLastStrokeNum(){
@@ -159,7 +204,6 @@ public class Database {
public long newWellTest(WellTest inp){ public long newWellTest(WellTest inp){
MongoCollection<Document> collection = database.getCollection("wellTests"); MongoCollection<Document> collection = database.getCollection("wellTests");
Document doc = new Document("testStartTime", Date.from(inp.getTestStart().toInstant())) Document doc = new Document("testStartTime", Date.from(inp.getTestStart().toInstant()))
.append("testHours", inp.getTestHours()) .append("testHours", inp.getTestHours())
.append("testTotalBBL", inp.getTotalFluidBBL()) .append("testTotalBBL", inp.getTotalFluidBBL())
@@ -230,7 +274,6 @@ public class Database {
public long newRunStatus(String runStatus, String initiator){ public long newRunStatus(String runStatus, String initiator){
MongoCollection<Document> collection = database.getCollection("runStatus"); MongoCollection<Document> collection = database.getCollection("runStatus");
Document doc = new Document("status", runStatus) Document doc = new Document("status", runStatus)
.append("initiator", initiator) .append("initiator", initiator)
.append("timestamp", Date.from(ZonedDateTime.now().toInstant())); .append("timestamp", Date.from(ZonedDateTime.now().toInstant()));
@@ -258,7 +301,6 @@ public class Database {
public long storeWellSetup(Well thisWell){ public long storeWellSetup(Well thisWell){
MongoCollection<Document> collection = database.getCollection("wellConfiguration"); MongoCollection<Document> collection = database.getCollection("wellConfiguration");
ArrayList<Document> taperArr = new ArrayList<Document>(); ArrayList<Document> taperArr = new ArrayList<Document>();
for (int i = 1; i <= thisWell.getNumTapers(); i++){ for (int i = 1; i <= thisWell.getNumTapers(); i++){
Document tap = new Document("length", thisWell.getRodLength(i)) Document tap = new Document("length", thisWell.getRodLength(i))

View File

@@ -2,10 +2,12 @@ from pyramid.config import Configurator
from pyramid.authentication import AuthTktAuthenticationPolicy from pyramid.authentication import AuthTktAuthenticationPolicy
from pyramid.authorization import ACLAuthorizationPolicy from pyramid.authorization import ACLAuthorizationPolicy
from datetime import datetime, date from datetime import datetime, date
from dateutil import tz
from pyramid.renderers import JSON from pyramid.renderers import JSON
from bson.objectid import ObjectId from bson.objectid import ObjectId
from .pagination import Pagination from .pagination import Pagination
try: try:
# for python 2 # for python 2
from urlparse import urlparse from urlparse import urlparse
@@ -15,15 +17,19 @@ except ImportError:
from pymongo import MongoClient from pymongo import MongoClient
from_zone = tz.tzutc()
to_zone = tz.tzlocal()
def format_datetime(inpDate, format='medium'): def format_datetime(inpDate, format='medium'):
inpDate = inpDate.replace(tzinfo=from_zone)
localDate = inpDate.astimezone(to_zone)
if format == 'long': if format == 'long':
format = "%A, %B %d %Y at %I:%M:%S %p" format = "%A, %B %d %Y at %I:%M:%S %p"
elif format == 'medium': elif format == 'medium':
format = "%a, %b %d %Y %I:%M:%S %p" format = "%a, %b %d %Y %I:%M:%S %p"
elif format == 'short': elif format == 'short':
format = "%m/%d/%Y %I:%M:%S %p" format = "%m/%d/%Y %I:%M:%S %p"
return inpDate.strftime(format) return localDate.strftime(format)
def format_dateString(inpDate, format='medium'): def format_dateString(inpDate, format='medium'):
@@ -170,13 +176,17 @@ def main(global_config, **settings):
config.add_route("json_singlevaluedaterange", "/json/values/tag/{tagname}/daterange") config.add_route("json_singlevaluedaterange", "/json/values/tag/{tagname}/daterange")
config.add_route("json_updateconfig", "/json/updateconfig", factory='pocwww.security.UserLoginFactory') config.add_route("json_updateconfig", "/json/updateconfig", factory='pocwww.security.UserLoginFactory')
config.add_route("json_shake", '/json/cmd/shake', factory='pocwww.security.UserLoginFactory')
config.add_route("json_cmd", '/json/cmd/{action}', factory='pocwww.security.UserLoginFactory')
config.add_route("json_cmd_start", "/json/cmd/start", factory='pocwww.security.UserLoginFactory') # config.add_route("json_cmd_start", "/json/cmd/start", factory='pocwww.security.UserLoginFactory')
config.add_route("json_cmd_stop", "/json/cmd/stop", factory='pocwww.security.UserLoginFactory') # config.add_route("json_cmd_stop", "/json/cmd/stop", factory='pocwww.security.UserLoginFactory')
config.add_route("json_cmd_shake", "/json/cmd/shake", factory='pocwww.security.UserLoginFactory') # config.add_route("json_cmd_shake", "/json/cmd/shake", factory='pocwww.security.UserLoginFactory')
config.add_route("json_update_poc_address", "/json/updatepocaddress", factory='pocwww.security.UserLoginFactory') config.add_route("json_update_poc_address", "/json/updatepocaddress", factory='pocwww.security.UserLoginFactory')
config.add_route("json_users", "/json/users", factory='pocwww.security.UserLoginFactory') config.add_route("json_users", "/json/users", factory='pocwww.security.UserLoginFactory')
config.scan() config.scan()
return config.make_wsgi_app() return config.make_wsgi_app()

View File

@@ -160,27 +160,26 @@ def json_updateconfig(request):
return {'new_config': request.json_body, 'stored_result': result, 'updated': pocCmdSts} return {'new_config': request.json_body, 'stored_result': result, 'updated': pocCmdSts}
@view_config(route_name="json_cmd_start", renderer="prettyjson", permission="control") @view_config(route_name="json_cmd", renderer="prettyjson", permission="edit")
def json_start(request): def json_cmd(request):
action = request.matchdict['action']
address = get_poc_address(request) or 'localhost' address = get_poc_address(request) or 'localhost'
start_url = "http://{}:8000/command?cmd=start&user={}".format(address, request.authenticated_userid)
r = requests.get(start_url) java_url = {}
java_url['start'] = "http://{}:8000/command?cmd=start&user={}".format(address, request.authenticated_userid)
java_url['stop'] = "http://{}:8000/command?cmd=stop&user={}".format(address, request.authenticated_userid)
java_url['shake'] = "http://{}:8000/shake".format(address)
r = requests.get(java_url[action])
return r.text if r.status_code == 200 else {"status": "failure sending command"} return r.text if r.status_code == 200 else {"status": "failure sending command"}
@view_config(route_name="json_cmd_stop", renderer="prettyjson", permission="control") @view_config(route_name="json_shake", renderer="prettyjson", permission="view")
def json_stop(request):
address = get_poc_address(request) or 'localhost'
stop_url = "http://{}:8000/command?cmd=stop&user={}".format(address, request.authenticated_userid)
r = requests.get(stop_url)
return r.text if r.status_code == 200 else {"status": "failure sending command"}
@view_config(route_name="json_cmd_shake", renderer="prettyjson", permission="view")
def json_shake(request): def json_shake(request):
address = get_poc_address(request) or 'localhost' address = get_poc_address(request) or 'localhost'
shake_url = "http://{}:8000/shake".format(address) url = "http://{}:8000/shake".format(address)
r = requests.get(shake_url)
r = requests.get(url)
return r.text if r.status_code == 200 else {"status": "failure sending command"} return r.text if r.status_code == 200 else {"status": "failure sending command"}

View File

@@ -1,8 +1,12 @@
from datetime import datetime, timedelta from datetime import datetime, timedelta
from math import ceil from math import ceil
from passlib.apps import custom_app_context as poc_pwd_context from passlib.apps import custom_app_context as poc_pwd_context
from dateutil import tz
from .pagination import Pagination from .pagination import Pagination
from_zone = tz.tzutc()
to_zone = tz.tzlocal()
def get_lastest_tag_values(request): def get_lastest_tag_values(request):
latest_tag_values = [] latest_tag_values = []
@@ -42,7 +46,7 @@ def card_page(request):
except KeyError: except KeyError:
pass pass
cards_date_start = datetime.utcnow().replace(hour=0, minute=0, second=0, microsecond=0) cards_date_start = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
try: try:
cards_date_start = datetime.strptime(request.matchdict['cards_date'], "%Y-%m-%d") cards_date_start = datetime.strptime(request.matchdict['cards_date'], "%Y-%m-%d")
except KeyError: except KeyError:

View File

@@ -15,7 +15,8 @@ requires = [
'waitress', 'waitress',
'pymongo', 'pymongo',
'requests', 'requests',
'passlib' 'passlib',
'python-dateutil',
] ]
tests_require = [ tests_require = [