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"?>
<project version="4">
<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$/.gradle/" />
<ignored path="$PROJECT_DIR$/build/" />
@@ -131,10 +139,121 @@
<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">
<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" />
<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>
</state>
</provider>
@@ -151,6 +270,8 @@
<element signature="e#1442#1443#0" expanded="false" />
<element signature="e#1486#1487#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>
</state>
</provider>
@@ -166,11 +287,11 @@
</provider>
</entry>
</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">
<provider selected="true" editor-type-id="text-editor">
<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>
<element signature="imports" expanded="true" />
</folding>
@@ -294,16 +415,12 @@
</provider>
</entry>
</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">
<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 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>
@@ -338,6 +455,7 @@
<find>fill</find>
<find>arraycopy</find>
<find>nT1</find>
<find>index</find>
</findStrings>
</component>
<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/CLScanner.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/Well.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>
</option>
</component>
@@ -769,10 +887,9 @@
<treeState />
</component>
<component name="ProjectFrameBounds">
<option name="x" value="-3681" />
<option name="y" value="23" />
<option name="width" value="1680" />
<option name="height" value="961" />
<option name="width" value="1613" />
<option name="height" value="913" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectView">
@@ -790,7 +907,6 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<PATH>
@@ -843,74 +959,11 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</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>
<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>
</pane>
<pane id="PackagesPane" />
<pane id="Scratches" />
<pane id="PackagesPane" />
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
@@ -1194,7 +1247,7 @@
</todo-panel>
</component>
<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" />
<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" />
@@ -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="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="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="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="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="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="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="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="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-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" />
@@ -1307,11 +1360,7 @@
<provider selected="true" editor-type-id="text-editor">
<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" />
<folding>
<element signature="imports" expanded="false" />
<element signature="e#3203#3204#0" expanded="false" />
<element signature="e#3238#3239#0" expanded="false" />
</folding>
<folding />
</state>
</provider>
</entry>
@@ -1436,7 +1485,118 @@
<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" />
<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>
</state>
</provider>
@@ -1445,11 +1605,7 @@
<provider selected="true" editor-type-id="text-editor">
<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" />
<folding>
<element signature="imports" expanded="false" />
<element signature="e#3203#3204#0" expanded="false" />
<element signature="e#3238#3239#0" expanded="false" />
</folding>
<folding />
</state>
</provider>
</entry>
@@ -1944,18 +2100,6 @@
</state>
</provider>
</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">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="15">
@@ -1974,6 +2118,8 @@
<element signature="e#1442#1443#0" expanded="false" />
<element signature="e#1486#1487#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>
</state>
</provider>
@@ -1988,10 +2134,121 @@
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/Well.java">
<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" />
<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>
</state>
</provider>
@@ -1999,13 +2256,21 @@
<entry file="file://$PROJECT_DIR$/src/main/java/com/henrypump/poc/WebServer.java">
<provider selected="true" editor-type-id="text-editor">
<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>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</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 name="masterDetails">
<states>

View File

@@ -75,12 +75,10 @@ systemctl enable mongod.service
- sets the minutes of downtime after pumpoff to `newSetpoint`
- returns `{"pumpOffDowntime": <pumpOffDowntime>}`
## Endpoint `/command?`
## Endpoint `/command?cmd=<command>&user=<username>`
### `start=<startCommand:string>`
- if startCommand = `true`, the well will attempt to start.
### `start`
- returns `{"startCommand: <result>", "status": <runStatus>}`
### `stop=<startCommand:string>`
- if stopCommand = `true`, the well will attempt to stop.
### `stop`
- 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.Aggregates;
import com.mongodb.client.model.Indexes;
import com.mongodb.client.model.Sorts;
import org.bson.Document;
@@ -36,11 +37,55 @@ public class Database {
Database(){
mongoClient = new MongoClient();
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){
mongoClient = new MongoClient(dbHostname);
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(){
@@ -159,7 +204,6 @@ public class Database {
public long newWellTest(WellTest inp){
MongoCollection<Document> collection = database.getCollection("wellTests");
Document doc = new Document("testStartTime", Date.from(inp.getTestStart().toInstant()))
.append("testHours", inp.getTestHours())
.append("testTotalBBL", inp.getTotalFluidBBL())
@@ -230,7 +274,6 @@ public class Database {
public long newRunStatus(String runStatus, String initiator){
MongoCollection<Document> collection = database.getCollection("runStatus");
Document doc = new Document("status", runStatus)
.append("initiator", initiator)
.append("timestamp", Date.from(ZonedDateTime.now().toInstant()));
@@ -258,7 +301,6 @@ public class Database {
public long storeWellSetup(Well thisWell){
MongoCollection<Document> collection = database.getCollection("wellConfiguration");
ArrayList<Document> taperArr = new ArrayList<Document>();
for (int i = 1; i <= thisWell.getNumTapers(); 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.authorization import ACLAuthorizationPolicy
from datetime import datetime, date
from dateutil import tz
from pyramid.renderers import JSON
from bson.objectid import ObjectId
from .pagination import Pagination
try:
# for python 2
from urlparse import urlparse
@@ -15,15 +17,19 @@ except ImportError:
from pymongo import MongoClient
from_zone = tz.tzutc()
to_zone = tz.tzlocal()
def format_datetime(inpDate, format='medium'):
inpDate = inpDate.replace(tzinfo=from_zone)
localDate = inpDate.astimezone(to_zone)
if format == 'long':
format = "%A, %B %d %Y at %I:%M:%S %p"
elif format == 'medium':
format = "%a, %b %d %Y %I:%M:%S %p"
elif format == 'short':
format = "%m/%d/%Y %I:%M:%S %p"
return inpDate.strftime(format)
return localDate.strftime(format)
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_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_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_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_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_users", "/json/users", factory='pocwww.security.UserLoginFactory')
config.scan()
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}
@view_config(route_name="json_cmd_start", renderer="prettyjson", permission="control")
def json_start(request):
@view_config(route_name="json_cmd", renderer="prettyjson", permission="edit")
def json_cmd(request):
action = request.matchdict['action']
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"}
@view_config(route_name="json_cmd_stop", renderer="prettyjson", permission="control")
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")
@view_config(route_name="json_shake", renderer="prettyjson", permission="view")
def json_shake(request):
address = get_poc_address(request) or 'localhost'
shake_url = "http://{}:8000/shake".format(address)
r = requests.get(shake_url)
url = "http://{}:8000/shake".format(address)
r = requests.get(url)
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 math import ceil
from passlib.apps import custom_app_context as poc_pwd_context
from dateutil import tz
from .pagination import Pagination
from_zone = tz.tzutc()
to_zone = tz.tzlocal()
def get_lastest_tag_values(request):
latest_tag_values = []
@@ -42,7 +46,7 @@ def card_page(request):
except KeyError:
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:
cards_date_start = datetime.strptime(request.matchdict['cards_date'], "%Y-%m-%d")
except KeyError:

View File

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