Commit c4d12b46 by Szabolcs Gelencser

Remove some dead code and packages for easier install

parent 6315b419
......@@ -14,12 +14,16 @@
<inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredPackages">
<value>
<list size="5">
<list size="9">
<item index="0" class="java.lang.String" itemvalue="salt" />
<item index="1" class="java.lang.String" itemvalue="six" />
<item index="2" class="java.lang.String" itemvalue="netaddr" />
<item index="3" class="java.lang.String" itemvalue="requests" />
<item index="4" class="java.lang.String" itemvalue="cryptography" />
<item index="5" class="java.lang.String" itemvalue="psycopg2" />
<item index="6" class="java.lang.String" itemvalue="lxml" />
<item index="7" class="java.lang.String" itemvalue="MarkupSafe" />
<item index="8" class="java.lang.String" itemvalue="pylibmc" />
</list>
</value>
</option>
......
......@@ -4,8 +4,20 @@
<list default="true" id="1fbec8af-5a7c-40f9-b994-83ac07d1ae1d" name="Default" comment="">
<change beforePath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change beforePath="$PROJECT_DIR$/circle/circle/db.sqlite3" afterPath="$PROJECT_DIR$/circle/circle/db.sqlite3" />
<change beforePath="$PROJECT_DIR$/circle/circle/settings/base.py" afterPath="$PROJECT_DIR$/circle/circle/settings/base.py" />
<change beforePath="$PROJECT_DIR$/circle/circle/settings/local.py" afterPath="$PROJECT_DIR$/circle/circle/settings/local.py" />
<change beforePath="$PROJECT_DIR$/circle/circle/urls.py" afterPath="$PROJECT_DIR$/circle/circle/urls.py" />
<change beforePath="$PROJECT_DIR$/circle/dashboard/forms.py" afterPath="$PROJECT_DIR$/circle/dashboard/forms.py" />
<change beforePath="$PROJECT_DIR$/circle/dashboard/tables.py" afterPath="$PROJECT_DIR$/circle/dashboard/tables.py" />
<change beforePath="$PROJECT_DIR$/circle/dashboard/templates/auth/login.html" afterPath="$PROJECT_DIR$/circle/dashboard/templates/auth/login.html" />
<change beforePath="$PROJECT_DIR$/circle/dashboard/validators.py" afterPath="$PROJECT_DIR$/circle/dashboard/validators.py" />
<change beforePath="$PROJECT_DIR$/circle/dashboard/views/index.py" afterPath="$PROJECT_DIR$/circle/dashboard/views/index.py" />
<change beforePath="$PROJECT_DIR$/circle/openstack_auth/views.py" afterPath="$PROJECT_DIR$/circle/openstack_auth/views.py" />
<change beforePath="$PROJECT_DIR$/circle/vm/admin.py" afterPath="$PROJECT_DIR$/circle/vm/admin.py" />
<change beforePath="$PROJECT_DIR$/circle/vm/models/__init__.py" afterPath="$PROJECT_DIR$/circle/vm/models/__init__.py" />
<change beforePath="$PROJECT_DIR$/circle/vm/models/activity.py" afterPath="$PROJECT_DIR$/circle/vm/models/activity.py" />
<change beforePath="$PROJECT_DIR$/circle/vm/models/instance.py" afterPath="$PROJECT_DIR$/circle/vm/models/instance.py" />
<change beforePath="$PROJECT_DIR$/circle/vm/operations.py" afterPath="$PROJECT_DIR$/circle/vm/operations.py" />
<change beforePath="$PROJECT_DIR$/requirements/circlestack.txt" afterPath="$PROJECT_DIR$/requirements/circlestack.txt" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
......@@ -36,53 +48,73 @@
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="base.py" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/circle/circle/settings/base.py">
<file leaf-file-name="instance.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/circle/vm/models/instance.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="760">
<caret line="584" column="38" lean-forward="false" selection-start-line="584" selection-start-column="38" selection-end-line="584" selection-end-column="38" />
<state relative-caret-position="94">
<caret line="53" column="0" lean-forward="false" selection-start-line="53" selection-start-column="0" selection-end-line="53" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="manage.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/circle/manage.py">
<file leaf-file-name="__init__.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/circle/vm/models/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="185">
<caret line="24" column="0" lean-forward="false" selection-start-line="24" selection-start-column="0" selection-end-line="24" selection-end-column="0" />
<folding>
<element signature="e#755#764#0" expanded="true" />
</folding>
<state relative-caret-position="34">
<caret line="2" column="0" lean-forward="false" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="models.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/circle/request/models.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-416">
<caret line="39" column="0" lean-forward="false" selection-start-line="39" selection-start-column="0" selection-end-line="39" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="local.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/circle/circle/settings/local.py">
<file leaf-file-name="activity.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/circle/vm/models/activity.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="248">
<caret line="106" column="16" lean-forward="false" selection-start-line="106" selection-start-column="16" selection-end-line="106" selection-end-column="16" />
<state relative-caret-position="516">
<caret line="196" column="31" lean-forward="false" selection-start-line="196" selection-start-column="31" selection-end-line="196" selection-end-column="31" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="pydevd.py" pinned="false" current-in-tab="false">
<entry file="file://$APPLICATION_HOME_DIR$/helpers/pydev/pydevd.py">
<file leaf-file-name="operations.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/circle/vm/operations.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="110">
<caret line="1071" column="0" lean-forward="false" selection-start-line="1071" selection-start-column="0" selection-end-line="1071" selection-end-column="0" />
<state relative-caret-position="50">
<caret line="52" column="59" lean-forward="false" selection-start-line="52" selection-start-column="59" selection-end-line="52" selection-end-column="59" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="views.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/circle/openstack_auth/views.py">
<file leaf-file-name="admin.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/circle/vm/admin.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="127">
<caret line="60" column="64" lean-forward="true" selection-start-line="60" selection-start-column="64" selection-end-line="60" selection-end-column="64" />
<state relative-caret-position="482">
<caret line="35" column="0" lean-forward="true" selection-start-line="35" selection-start-column="0" selection-end-line="35" selection-end-column="0" />
<folding>
<element signature="e#732#764#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="circlestack.txt" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/requirements/circlestack.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="268">
<caret line="124" column="4" lean-forward="false" selection-start-line="124" selection-start-column="4" selection-end-line="124" selection-end-column="4" />
<folding />
</state>
</provider>
......@@ -100,23 +132,6 @@
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>context_is_admin</find>
<find>service</find>
<find>get_</find>
<find>image</find>
<find>template-access</find>
<find>images</find>
<find>update</find>
<find>rule:owner</find>
<find>defa</find>
<find>Defa</find>
<find>'default'</find>
<find>domain</find>
<find>OPENSTACK_KEYSTONE_DEFAULT_DOMAIN</find>
<find>TODO</find>
<find>login</find>
<find>signal</find>
<find>accepted</find>
<find>user_logged</find>
<find>policy</find>
<find>check</find>
......@@ -130,6 +145,23 @@
<find>localhost</find>
<find>requests</find>
<find>cert</find>
<find>saml</find>
<find>saml_ava</find>
<find>loginview</find>
<find>sso</find>
<find>settings.</find>
<find>microsofttranslator</find>
<find>markupsafe</find>
<find>lx</find>
<find>ET</find>
<find>domain_validator</find>
<find>connect_command_template_validator</find>
<find>M2Crypto</find>
<find>salt</find>
<find>LocalClient</find>
<find>trait</find>
<find>class NodeActivity</find>
<find>Node</find>
</findStrings>
<replaceStrings>
<replace>'ACTIVE'</replace>
......@@ -150,15 +182,6 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/circle/network/templates/network/horizon/client_side/templates.html" />
<option value="$PROJECT_DIR$/circle/network/templates/network/horizon/client_side/_loading_modal.html" />
<option value="$PROJECT_DIR$/circle/network/templatetags/horizon.py" />
<option value="$PROJECT_DIR$/circle/network/templatetags/__init__.py" />
<option value="$PROJECT_DIR$/circle/network/static/js/horizon.networktopology.js" />
<option value="$PROJECT_DIR$/circle/network/static/js/horizon.flatnetworktopology.js" />
<option value="$PROJECT_DIR$/circle/network/urls.py" />
<option value="$PROJECT_DIR$/circle/network/templates/network/editor.html" />
<option value="$PROJECT_DIR$/circle/dashboard/views/user.py" />
<option value="$PROJECT_DIR$/circle/bower.json" />
<option value="$PROJECT_DIR$/circle/dashboard/static/vue.css" />
<option value="$PROJECT_DIR$/circle/network/templates/network/vxlan-edit.html" />
......@@ -177,16 +200,12 @@
<option value="$PROJECT_DIR$/circle/dashboard/templates/dashboard/index-templates.html" />
<option value="$PROJECT_DIR$/circle/dashboard/templatetags/instance_tags.py" />
<option value="$PROJECT_DIR$/circle/dashboard/views/vm.py" />
<option value="$PROJECT_DIR$/circle/vm/models/instance.py" />
<option value="$PROJECT_DIR$/circle/dashboard/templates/dashboard/template-edit.html" />
<option value="$PROJECT_DIR$/circle/dashboard/views/util.py" />
<option value="$PROJECT_DIR$/circle/dashboard/views/template.py" />
<option value="$PROJECT_DIR$/circle/dashboard/urls.py" />
<option value="$PROJECT_DIR$/circle/circle/os_policies/glance_policy.json" />
<option value="$PROJECT_DIR$/circle/dashboard/forms.py" />
<option value="$PROJECT_DIR$/circle/vm/operations.py" />
<option value="$PROJECT_DIR$/circle/circle/os_policies/keystone_policy.json" />
<option value="$PROJECT_DIR$/circle/circle/urls.py" />
<option value="$PROJECT_DIR$/circle/openstack_auth/plugin/password.py" />
<option value="$PROJECT_DIR$/circle/openstack_auth/policy.py" />
<option value="$PROJECT_DIR$/circle/circle/os_policies/circle_policy.json" />
......@@ -196,11 +215,24 @@
<option value="$PROJECT_DIR$/circle/request/models.py" />
<option value="$PROJECT_DIR$/circle/request/views.py" />
<option value="$PROJECT_DIR$/circle/circle/middleware.py" />
<option value="$PROJECT_DIR$/circle/dashboard/views/index.py" />
<option value="$PROJECT_DIR$/circle/dashboard/templates/dashboard/index-vm.html" />
<option value="$PROJECT_DIR$/circle/circle/settings/local.py" />
<option value="$PROJECT_DIR$/circle/manage.py" />
<option value="$PROJECT_DIR$/circle/openstack_auth/urls.py" />
<option value="$PROJECT_DIR$/circle/dashboard/templates/auth/login.html" />
<option value="$PROJECT_DIR$/circle/circle/settings/local.py" />
<option value="$PROJECT_DIR$/circle/openstack_auth/views.py" />
<option value="$PROJECT_DIR$/circle/circle/urls.py" />
<option value="$PROJECT_DIR$/circle/circle/settings/base.py" />
<option value="$PROJECT_DIR$/circle/dashboard/validators.py" />
<option value="$PROJECT_DIR$/requirements/circlestack.txt" />
<option value="$PROJECT_DIR$/circle/vm/models/instance.py" />
<option value="$PROJECT_DIR$/circle/dashboard/forms.py" />
<option value="$PROJECT_DIR$/circle/dashboard/views/index.py" />
<option value="$PROJECT_DIR$/circle/dashboard/tables.py" />
<option value="$PROJECT_DIR$/circle/vm/models/activity.py" />
<option value="$PROJECT_DIR$/circle/vm/models/__init__.py" />
<option value="$PROJECT_DIR$/circle/vm/operations.py" />
<option value="$PROJECT_DIR$/circle/vm/admin.py" />
</list>
</option>
</component>
......@@ -218,8 +250,8 @@
<component name="ProjectFrameBounds">
<option name="x" value="-2" />
<option name="y" value="-1" />
<option name="width" value="1924" />
<option name="height" value="1063" />
<option name="width" value="1370" />
<option name="height" value="751" />
</component>
<component name="ProjectInspectionProfilesVisibleTreeState">
<entry key="Project Default">
......@@ -289,17 +321,12 @@
<item name="circle" type="462c0819:PsiDirectoryNode" />
<item name="openstack_auth" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="cloud" type="b2602c69:ProjectViewProjectNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="requirements" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="Scope" />
<pane id="Scratches" />
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
......@@ -308,7 +335,7 @@
<property name="settings.editor.selected.configurable" value="watcher.settings" />
<property name="NewWatcherDialog.advanced.open" value="true" />
<property name="DefaultHtmlFileTemplate" value="HTML File" />
<property name="SearchEverywhereHistoryKey" value="indexv&#9;null&#9;null&#10;index-vm&#9;FILE&#9;file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/index-vm.html&#10;index.&#9;FILE&#9;file:///home/h3yduck/cloud/circle/dashboard/views/index.py&#10;index&#9;FILE&#9;file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/index.html&#10;bas&#9;FILE&#9;file:///home/h3yduck/cloud/circle/openstack_api/base.py&#10;save&#9;null&#9;null&#10;plainc&#9;null&#9;null&#10;vmdeta&#9;null&#9;null&#10;templatedet&#9;null&#9;null&#10;instancetemp&#9;null&#9;null&#10;instancetem&#9;null&#9;null&#10;url&#9;FILE&#9;file:///home/h3yduck/cloud/circle/dashboard/urls.py&#10;vmcreate&#9;null&#9;null&#10;base&#9;FILE&#9;file:///home/h3yduck/cloud/circle/circle/settings/base.py&#10;opera&#9;FILE&#9;file:///home/h3yduck/cloud/circle/vm/operations.py&#10;operations&#9;FILE&#9;file:///home/h3yduck/cloud/circle/common/operations.py&#10;templat&#9;null&#9;null&#10;vmadd&#9;null&#9;null&#10;vmdetail&#9;null&#9;null&#10;addinterfa&#9;null&#9;null&#10;addin&#9;null&#9;null&#10;server&#9;null&#9;null&#10;Instance&#9;null&#9;null&#10;instance&#9;FILE&#9;file:///home/h3yduck/cloud/circle/vm/models/instance.py&#10;operat&#9;null&#9;null&#10;ins&#9;FILE&#9;file:///home/h3yduck/cloud/circle/vm/models/instance.py&#10;vmdetai&#9;null&#9;null&#10;operationvi&#9;null&#9;null&#10;ser&#9;null&#9;null&#10;server.&#9;FILE&#9;file:///home/h3yduck/.virtualenvs/cloud/local/lib/python2.7/site-packages/novaclient/v2/servers.py&#10;resources.&#9;FILE&#9;file:///home/h3yduck/cloud/circle/request/templates/request/initials/resources.html&#10;vm-de&#9;FILE&#9;file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/vm-detail.html&#10;vxla&#9;null&#9;null&#10;urls&#9;FILE&#9;file:///home/h3yduck/cloud/circle/dashboard/urls.py&#10;index-v&#9;FILE&#9;file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/index-vxlans.html&#10;create&#9;FILE&#9;file:///home/h3yduck/cloud/circle/network/templates/network/vxlan-create.html&#10;vxl&#9;null&#9;null&#10;nov&#9;FILE&#9;file:///home/h3yduck/cloud/circle/openstack_api/nova.py&#10;nova.p&#9;FILE&#9;file:///home/h3yduck/cloud/circle/openstack_api/nova.py&#10;vmdetailv&#9;null&#9;null&#10;editor&#9;null&#9;null&#10;networktopo&#9;FILE&#9;file:///home/h3yduck/cloud/circle/network/static/js/horizon.networktopology.js&#10;bow&#9;FILE&#9;file:///home/h3yduck/cloud/circle/bower.json&#10;base.py&#9;FILE&#9;file:///home/h3yduck/cloud/circle/circle/settings/base.py&#10;local&#9;null&#9;null&#10;vnc&#9;null&#9;null&#10;plain&#9;FILE&#9;file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/vm-plain-image-create.html&#10;forms&#9;null&#9;null&#10;vxlanform&#9;null&#9;null&#10;instanc&#9;FILE&#9;file:///home/h3yduck/cloud/circle/vm/models/instance.py" />
<property name="SearchEverywhereHistoryKey" value="views.&#9;FILE&#9;file:///home/h3yduck/cloud/circle/openstack_auth/views.py&#10;login.html&#9;FILE&#9;file:///home/h3yduck/cloud/circle/dashboard/templates/auth/login.html&#10;LoginVi&#9;null&#9;null&#10;indexv&#9;null&#9;null&#10;index-vm&#9;FILE&#9;file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/index-vm.html&#10;index.&#9;FILE&#9;file:///home/h3yduck/cloud/circle/dashboard/views/index.py&#10;index&#9;FILE&#9;file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/index.html&#10;bas&#9;FILE&#9;file:///home/h3yduck/cloud/circle/openstack_api/base.py&#10;save&#9;null&#9;null&#10;plainc&#9;null&#9;null&#10;vmdeta&#9;null&#9;null&#10;templatedet&#9;null&#9;null&#10;instancetemp&#9;null&#9;null&#10;instancetem&#9;null&#9;null&#10;url&#9;FILE&#9;file:///home/h3yduck/cloud/circle/dashboard/urls.py&#10;vmcreate&#9;null&#9;null&#10;base&#9;FILE&#9;file:///home/h3yduck/cloud/circle/circle/settings/base.py&#10;opera&#9;FILE&#9;file:///home/h3yduck/cloud/circle/vm/operations.py&#10;operations&#9;FILE&#9;file:///home/h3yduck/cloud/circle/common/operations.py&#10;templat&#9;null&#9;null&#10;vmadd&#9;null&#9;null&#10;vmdetail&#9;null&#9;null&#10;addinterfa&#9;null&#9;null&#10;addin&#9;null&#9;null&#10;server&#9;null&#9;null&#10;Instance&#9;null&#9;null&#10;instance&#9;FILE&#9;file:///home/h3yduck/cloud/circle/vm/models/instance.py&#10;operat&#9;null&#9;null&#10;ins&#9;FILE&#9;file:///home/h3yduck/cloud/circle/vm/models/instance.py&#10;vmdetai&#9;null&#9;null&#10;operationvi&#9;null&#9;null&#10;ser&#9;null&#9;null&#10;server.&#9;FILE&#9;file:///home/h3yduck/.virtualenvs/cloud/local/lib/python2.7/site-packages/novaclient/v2/servers.py&#10;resources.&#9;FILE&#9;file:///home/h3yduck/cloud/circle/request/templates/request/initials/resources.html&#10;vm-de&#9;FILE&#9;file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/vm-detail.html&#10;vxla&#9;null&#9;null&#10;urls&#9;FILE&#9;file:///home/h3yduck/cloud/circle/dashboard/urls.py&#10;index-v&#9;FILE&#9;file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/index-vxlans.html&#10;create&#9;FILE&#9;file:///home/h3yduck/cloud/circle/network/templates/network/vxlan-create.html&#10;vxl&#9;null&#9;null&#10;nov&#9;FILE&#9;file:///home/h3yduck/cloud/circle/openstack_api/nova.py&#10;nova.p&#9;FILE&#9;file:///home/h3yduck/cloud/circle/openstack_api/nova.py&#10;vmdetailv&#9;null&#9;null&#10;editor&#9;null&#9;null&#10;networktopo&#9;FILE&#9;file:///home/h3yduck/cloud/circle/network/static/js/horizon.networktopology.js&#10;bow&#9;FILE&#9;file:///home/h3yduck/cloud/circle/bower.json&#10;base.py&#9;FILE&#9;file:///home/h3yduck/cloud/circle/circle/settings/base.py&#10;local&#9;null&#9;null&#10;vnc&#9;null&#9;null&#10;plain&#9;FILE&#9;file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/vm-plain-image-create.html" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
......@@ -393,8 +420,8 @@
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="DJANGO_SETTINGS_MODULE" value="circle.settings.local" />
<env name="PYTHONUNBUFFERED" value="1" />
<env name="DJANGO_SETTINGS_MODULE" value="circle.settings.local" />
</envs>
<option name="SDK_HOME" value="$PROJECT_DIR$/../.virtualenvs/cloud/bin/python" />
<option name="WORKING_DIRECTORY" value="" />
......@@ -452,24 +479,25 @@
</todo-panel>
</component>
<component name="ToolWindowManager">
<frame x="-2" y="-1" width="1924" height="1063" extended-state="0" />
<frame x="-2" y="-1" width="1370" height="751" extended-state="0" />
<editor active="true" />
<layout>
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32980973" sideWeight="0.4978701" order="6" 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.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.5972516" sideWeight="0.49520767" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3255814" sideWeight="0.50745475" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32492113" sideWeight="0.50745475" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.43023255" sideWeight="0.43610224" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32769555" sideWeight="0.49574015" order="2" 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.5972516" sideWeight="0.49520767" order="7" side_tool="true" 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.23855165" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.47634068" sideWeight="0.49848944" order="7" side_tool="true" 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.28096676" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Docker" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Database" 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="3" 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.32980973" sideWeight="0.5" order="1" 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.329653" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="SciView" 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="3" 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.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" 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="2" side_tool="true" content_ui="tabs" />
<window_info id="Debug" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.5972516" sideWeight="0.50479233" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.47634068" sideWeight="0.50151056" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" 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.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Message" 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="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" 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="5" side_tool="false" content_ui="tabs" />
......@@ -553,69 +581,62 @@
</properties>
</breakpoint>
</default-breakpoints>
<option name="time" value="271" />
<option name="time" value="282" />
</breakpoint-manager>
<watches-manager />
</component>
<component name="debuggerHistoryManager">
<expressions id="evaluateCodeFragment">
<expression>
<expression-string>import certifi
certifi.where()</expression-string>
<expression-string>session.post(token_url, json=body, headers=headers,
authenticated=False, log=False, **rkwargs)</expression-string>
<language-id>Python</language-id>
<evaluation-mode>CODE_FRAGMENT</evaluation-mode>
</expression>
<expression>
<expression-string>improt</expression-string>
<expression-string>auth.authenticate(request=request, auth_url=(auth_url), token=token)</expression-string>
<language-id>Python</language-id>
<evaluation-mode>CODE_FRAGMENT</evaluation-mode>
</expression>
<expression>
<expression-string>import requests
r = requests.certs.old_where()
print(r)</expression-string>
<expression-string>auth.authenticate(request=request, auth_url=(auth_url + '/v3'), token=token)</expression-string>
<language-id>Python</language-id>
<evaluation-mode>CODE_FRAGMENT</evaluation-mode>
</expression>
<expression>
<expression-string>import requests
r = requests.certs.where()
print(r)</expression-string>
<expression-string>auth.authenticate(request=request, auth_url=auth_url + '/v3', token=token)</expression-string>
<language-id>Python</language-id>
<evaluation-mode>CODE_FRAGMENT</evaluation-mode>
</expression>
<expression>
<expression-string>import requests
r = requests.certs.where()</expression-string>
<expression-string>auth.authenticate(request=request, auth_url=auth_url, token=token)</expression-string>
<language-id>Python</language-id>
<evaluation-mode>CODE_FRAGMENT</evaluation-mode>
</expression>
<expression>
<expression-string>import requests
requests.certs.where()</expression-string>
<expression-string>import certifi
certifi.where()</expression-string>
<language-id>Python</language-id>
<evaluation-mode>CODE_FRAGMENT</evaluation-mode>
</expression>
<expression>
<expression-string>import requests
r = requests.get('https://google.com')</expression-string>
<expression-string>improt</expression-string>
<language-id>Python</language-id>
<evaluation-mode>CODE_FRAGMENT</evaluation-mode>
</expression>
<expression>
<expression-string>check(self.os_policy_actions, request,
{'project_id': self.instance._os_server.tenant_id})</expression-string>
<expression-string>import requests
r = requests.certs.old_where()
print(r)</expression-string>
<language-id>Python</language-id>
<evaluation-mode>CODE_FRAGMENT</evaluation-mode>
</expression>
<expression>
<expression-string>has_rights = policy(self.os_policy_actions, request,
{'project_id': self.instance._os_server.tenant_id})</expression-string>
<expression-string>import requests
r = requests.certs.where()
print(r)</expression-string>
<language-id>Python</language-id>
<evaluation-mode>CODE_FRAGMENT</evaluation-mode>
</expression>
......@@ -681,416 +702,405 @@ r = requests.get('https://google.com')</expression-string>
</expressions>
</component>
<component name="editorHistoryManager">
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/django/views/decorators/cache.py">
<entry file="file://$PROJECT_DIR$/circle/openstack_auth/user.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="565">
<caret line="58" column="0" lean-forward="false" selection-start-line="58" selection-start-column="0" selection-end-line="58" selection-end-column="0" />
<state relative-caret-position="697">
<caret line="255" column="28" lean-forward="false" selection-start-line="255" selection-start-column="28" selection-end-line="255" selection-end-column="28" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/django/utils/decorators.py">
<entry file="file://$PROJECT_DIR$/circle/dashboard/templates/dashboard/base.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="539">
<caret line="166" column="0" lean-forward="false" selection-start-line="166" selection-start-column="0" selection-end-line="166" selection-end-column="0" />
<folding />
<state relative-caret-position="161">
<caret line="54" column="37" lean-forward="true" selection-start-line="54" selection-start-column="37" selection-end-line="54" selection-end-column="37" />
</state>
</provider>
</entry>
<entry file="file:///usr/lib/python2.7/threading.py">
<entry file="file://$PROJECT_DIR$/circle/dashboard/urls.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="454">
<caret line="766" column="68" lean-forward="true" selection-start-line="766" selection-start-column="68" selection-end-line="766" selection-end-column="68" />
<state relative-caret-position="289">
<caret line="45" column="25" lean-forward="false" selection-start-line="45" selection-start-column="25" selection-end-line="45" selection-end-column="25" />
<folding />
</state>
</provider>
</entry>
<entry file="file:///usr/lib/python2.7/SocketServer.py">
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/django/views/generic/base.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="242">
<caret line="596" column="0" lean-forward="false" selection-start-line="596" selection-start-column="0" selection-end-line="596" selection-end-column="0" />
<state relative-caret-position="306">
<caret line="46" column="8" lean-forward="false" selection-start-line="46" selection-start-column="8" selection-end-line="46" selection-end-column="8" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/django/core/servers/basehttp.py">
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/django_tables2/views.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="259">
<caret line="154" column="0" lean-forward="false" selection-start-line="154" selection-start-column="0" selection-end-line="154" selection-end-column="0" />
<folding />
<state relative-caret-position="306">
<caret line="118" column="6" lean-forward="false" selection-start-line="118" selection-start-column="6" selection-end-line="118" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file:///usr/lib/python2.7/wsgiref/handlers.py">
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/braces/views/_access.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="250">
<caret line="85" column="0" lean-forward="false" selection-start-line="85" selection-start-column="0" selection-end-line="85" selection-end-column="0" />
<state relative-caret-position="187">
<caret line="24" column="6" lean-forward="false" selection-start-line="24" selection-start-column="6" selection-end-line="24" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/django/contrib/staticfiles/handlers.py">
<entry file="file://$PROJECT_DIR$/circle/request/urls.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="565">
<caret line="62" column="0" lean-forward="false" selection-start-line="62" selection-start-column="0" selection-end-line="62" selection-end-column="0" />
<folding />
<state relative-caret-position="199">
<caret line="29" column="27" lean-forward="false" selection-start-line="29" selection-start-column="27" selection-end-line="29" selection-end-column="27" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/circle/wsgi.py">
<entry file="file://$PROJECT_DIR$/circle/circle/middleware.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="514">
<caret line="59" column="0" lean-forward="false" selection-start-line="59" selection-start-column="0" selection-end-line="59" selection-end-column="0" />
<folding />
<state relative-caret-position="221">
<caret line="13" column="72" lean-forward="true" selection-start-line="13" selection-start-column="72" selection-end-line="13" selection-end-column="72" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py">
<entry file="file://$PROJECT_DIR$/circle/dashboard/templates/dashboard/index-vm.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="420">
<caret line="167" column="0" lean-forward="false" selection-start-line="167" selection-start-column="0" selection-end-line="167" selection-end-column="0" />
<folding />
<state relative-caret-position="617">
<caret line="91" column="96" lean-forward="false" selection-start-line="91" selection-start-column="96" selection-end-line="91" selection-end-column="96" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/django/core/handlers/base.py">
<entry file="file://$PROJECT_DIR$/circle/request/templates/request/_request-template-form.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="293">
<caret line="152" column="13" lean-forward="true" selection-start-line="152" selection-start-column="13" selection-end-line="152" selection-end-column="13" />
<folding />
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/django/views/decorators/debug.py">
<entry file="file://$PROJECT_DIR$/circle/request/templates/request/request-template.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="548">
<caret line="75" column="0" lean-forward="false" selection-start-line="75" selection-start-column="0" selection-end-line="75" selection-end-column="0" />
<folding />
<state relative-caret-position="255">
<caret line="15" column="49" lean-forward="false" selection-start-line="15" selection-start-column="49" selection-end-line="15" selection-end-column="49" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/django/core/handlers/exception.py">
<entry file="file://$PROJECT_DIR$/circle/openstack_api/network.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="408">
<caret line="43" column="0" lean-forward="false" selection-start-line="43" selection-start-column="0" selection-end-line="43" selection-end-column="0" />
<folding />
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/openstack_auth/tests/settings.py">
<entry file="file://$PROJECT_DIR$/circle/request/views.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="539">
<caret line="55" column="0" lean-forward="false" selection-start-line="55" selection-start-column="0" selection-end-line="55" selection-end-column="0" />
<folding />
<state relative-caret-position="352">
<caret line="51" column="7" lean-forward="true" selection-start-line="51" selection-start-column="7" selection-end-line="51" selection-end-column="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/openstack_auth/plugin/password.py">
<entry file="file://$PROJECT_DIR$/circle/openstack_api/nova.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="422">
<caret line="42" column="54" lean-forward="true" selection-start-line="42" selection-start-column="54" selection-end-line="42" selection-end-column="54" />
<state relative-caret-position="485">
<caret line="284" column="22" lean-forward="false" selection-start-line="284" selection-start-column="22" selection-end-line="284" selection-end-column="22" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/openstack_api/base.py">
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/novaclient/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="76">
<caret line="328" column="0" lean-forward="false" selection-start-line="328" selection-start-column="0" selection-end-line="328" selection-end-column="0" />
<folding />
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/network/models.py">
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/novaclient/extension.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="244">
<caret line="86" column="8" lean-forward="false" selection-start-line="86" selection-start-column="8" selection-end-line="86" selection-end-column="8" />
<folding />
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/dashboard/models.py">
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/novaclient/client.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="193">
<caret line="435" column="31" lean-forward="true" selection-start-line="435" selection-start-column="31" selection-end-line="435" selection-end-column="31" />
<folding>
<element signature="e#732#770#0" expanded="false" />
</folding>
<state relative-caret-position="562">
<caret line="45" column="38" lean-forward="true" selection-start-line="45" selection-start-column="38" selection-end-line="45" selection-end-column="38" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/dashboard/templates/dashboard/index.html">
<entry file="file://$PROJECT_DIR$/requirements.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="25" lean-forward="false" selection-start-line="0" selection-start-column="25" selection-end-line="0" selection-end-column="25" />
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/openstack_auth/backend.py">
<entry file="file://$PROJECT_DIR$/requirements/base.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="78" column="34" lean-forward="false" selection-start-line="78" selection-start-column="34" selection-end-line="78" selection-end-column="34" />
<state relative-caret-position="595">
<caret line="35" column="8" lean-forward="false" selection-start-line="35" selection-start-column="8" selection-end-line="35" selection-end-column="8" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/openstack_auth/utils.py">
<entry file="file://$PROJECT_DIR$/circle/manage.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="185">
<caret line="51" column="8" lean-forward="true" selection-start-line="51" selection-start-column="8" selection-end-line="51" selection-end-column="8" />
<folding />
<state relative-caret-position="408">
<caret line="24" column="0" lean-forward="false" selection-start-line="24" selection-start-column="0" selection-end-line="24" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/openstack_auth/policy.py">
<entry file="file://$APPLICATION_HOME_DIR$/helpers/pydev/pydevd.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-289">
<caret line="77" column="45" lean-forward="false" selection-start-line="77" selection-start-column="41" selection-end-line="77" selection-end-column="45" />
<folding />
<state relative-caret-position="110">
<caret line="1071" column="0" lean-forward="false" selection-start-line="1071" selection-start-column="0" selection-end-line="1071" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/openstack_auth/user.py">
<entry file="file://$PROJECT_DIR$/circle/dashboard/views/user.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="697">
<caret line="255" column="28" lean-forward="false" selection-start-line="255" selection-start-column="28" selection-end-line="255" selection-end-column="28" />
<folding />
<state relative-caret-position="306">
<caret line="107" column="24" lean-forward="false" selection-start-line="107" selection-start-column="24" selection-end-line="107" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/vm/operations.py">
<entry file="file://$PROJECT_DIR$/circle/circle/os_policies/circle_policy.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="339">
<caret line="65" column="23" lean-forward="false" selection-start-line="65" selection-start-column="23" selection-end-line="65" selection-end-column="23" />
<folding>
<element signature="e#732#788#0" expanded="false" />
</folding>
<state relative-caret-position="136">
<caret line="8" column="1" lean-forward="true" selection-start-line="8" selection-start-column="1" selection-end-line="8" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/dashboard/templates/dashboard/base.html">
<entry file="file://$PROJECT_DIR$/circle/dashboard/templates/auth/login.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="161">
<caret line="54" column="37" lean-forward="true" selection-start-line="54" selection-start-column="37" selection-end-line="54" selection-end-column="37" />
<folding />
<state relative-caret-position="459">
<caret line="33" column="15" lean-forward="true" selection-start-line="33" selection-start-column="15" selection-end-line="33" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/request/models.py">
<entry file="file://$PROJECT_DIR$/circle/templates/registration/login.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="510">
<caret line="333" column="53" lean-forward="false" selection-start-line="333" selection-start-column="53" selection-end-line="333" selection-end-column="53" />
<folding />
<state relative-caret-position="391">
<caret line="23" column="10" lean-forward="true" selection-start-line="23" selection-start-column="10" selection-end-line="23" selection-end-column="10" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/circle/os_policies/circle_policy.json">
<entry file="file://$PROJECT_DIR$/circle/dashboard/views/util.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
<caret line="7" column="52" lean-forward="false" selection-start-line="7" selection-start-column="52" selection-end-line="7" selection-end-column="52" />
<state relative-caret-position="284">
<caret line="776" column="47" lean-forward="true" selection-start-line="776" selection-start-column="47" selection-end-line="776" selection-end-column="47" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/dashboard/urls.py">
<entry file="file://$PROJECT_DIR$/circle/openstack_auth/utils.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="289">
<caret line="45" column="25" lean-forward="false" selection-start-line="45" selection-start-column="25" selection-end-line="45" selection-end-column="25" />
<state relative-caret-position="236">
<caret line="155" column="54" lean-forward="false" selection-start-line="155" selection-start-column="40" selection-end-line="155" selection-end-column="54" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/circle/urls.py">
<entry file="file://$PROJECT_DIR$/circle/openstack_auth/urls.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="204">
<caret line="28" column="20" lean-forward="true" selection-start-line="28" selection-start-column="20" selection-end-line="28" selection-end-column="20" />
<folding />
<state relative-caret-position="493">
<caret line="35" column="4" lean-forward="false" selection-start-line="35" selection-start-column="4" selection-end-line="35" selection-end-column="70" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/django/views/generic/base.py">
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/django/contrib/auth/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="46" column="8" lean-forward="false" selection-start-line="46" selection-start-column="8" selection-end-line="46" selection-end-column="8" />
<state relative-caret-position="451">
<caret line="114" column="0" lean-forward="false" selection-start-line="114" selection-start-column="0" selection-end-line="114" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/django_tables2/views.py">
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/keystoneauth1/identity/base.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="118" column="6" lean-forward="false" selection-start-line="118" selection-start-column="6" selection-end-line="118" selection-end-column="6" />
<folding />
<state relative-caret-position="136">
<caret line="133" column="0" lean-forward="false" selection-start-line="133" selection-start-column="0" selection-end-line="133" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/braces/views/_access.py">
<entry file="file://$PROJECT_DIR$/circle/openstack_auth/plugin/base.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="24" column="6" lean-forward="false" selection-start-line="24" selection-start-column="6" selection-end-line="24" selection-end-column="6" />
<folding />
<state relative-caret-position="102">
<caret line="125" column="0" lean-forward="false" selection-start-line="125" selection-start-column="0" selection-end-line="125" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/request/urls.py">
<entry file="file://$PROJECT_DIR$/circle/openstack_auth/backend.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="199">
<caret line="29" column="27" lean-forward="false" selection-start-line="29" selection-start-column="27" selection-end-line="29" selection-end-column="27" />
<state relative-caret-position="1887">
<caret line="122" column="0" lean-forward="false" selection-start-line="122" selection-start-column="0" selection-end-line="122" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/circle/middleware.py">
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/keystoneauth1/identity/v3/base.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="221">
<caret line="13" column="72" lean-forward="true" selection-start-line="13" selection-start-column="72" selection-end-line="13" selection-end-column="72" />
<state relative-caret-position="2839">
<caret line="175" column="15" lean-forward="false" selection-start-line="175" selection-start-column="15" selection-end-line="176" selection-end-column="70" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/dashboard/templates/dashboard/index-vm.html">
<entry file="file://$PROJECT_DIR$/circle/openstack_auth/views.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="617">
<caret line="91" column="96" lean-forward="false" selection-start-line="91" selection-start-column="96" selection-end-line="91" selection-end-column="96" />
<folding />
<state relative-caret-position="2040">
<caret line="148" column="36" lean-forward="false" selection-start-line="148" selection-start-column="36" selection-end-line="148" selection-end-column="36" />
<folding>
<element signature="e#545#559#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/dashboard/views/index.py">
<entry file="file://$PROJECT_DIR$/circle/circle/settings/local.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="136">
<caret line="49" column="26" lean-forward="false" selection-start-line="49" selection-start-column="13" selection-end-line="49" selection-end-column="26" />
<state relative-caret-position="23">
<caret line="93" column="5" lean-forward="true" selection-start-line="93" selection-start-column="5" selection-end-line="93" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/request/templates/request/_request-template-form.html">
<entry file="file://$PROJECT_DIR$/circle/dashboard/validators.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
<state relative-caret-position="108">
<caret line="16" column="0" lean-forward="false" selection-start-line="16" selection-start-column="0" selection-end-line="16" selection-end-column="0" />
<folding>
<element signature="e#732#782#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/request/templates/request/request-template.html">
<entry file="file://$PROJECT_DIR$/circle/dashboard/models.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255">
<caret line="15" column="49" lean-forward="false" selection-start-line="15" selection-start-column="49" selection-end-line="15" selection-end-column="49" />
<folding />
<state relative-caret-position="389">
<caret line="161" column="71" lean-forward="false" selection-start-line="161" selection-start-column="37" selection-end-line="161" selection-end-column="71" />
<folding>
<element signature="e#732#770#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/openstack_api/network.py">
<entry file="file://$PROJECT_DIR$/circle/circle/settings/base.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
<state relative-caret-position="227">
<caret line="573" column="0" lean-forward="false" selection-start-line="573" selection-start-column="0" selection-end-line="573" selection-end-column="0" />
<folding>
<element signature="e#782#791#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/request/views.py">
<entry file="file://$PROJECT_DIR$/circle/circle/urls.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="352">
<caret line="51" column="7" lean-forward="true" selection-start-line="51" selection-start-column="7" selection-end-line="51" selection-end-column="7" />
<folding />
<state relative-caret-position="306">
<caret line="51" column="25" lean-forward="false" selection-start-line="51" selection-start-column="25" selection-end-line="51" selection-end-column="25" />
<folding>
<element signature="e#732#773#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/openstack_api/nova.py">
<entry file="file://$PROJECT_DIR$/circle/vm/models/node.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="485">
<caret line="284" column="22" lean-forward="false" selection-start-line="284" selection-start-column="22" selection-end-line="284" selection-end-column="22" />
<state relative-caret-position="94">
<caret line="24" column="0" lean-forward="false" selection-start-line="24" selection-start-column="0" selection-end-line="24" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/novaclient/__init__.py">
<entry file="file://$PROJECT_DIR$/circle/vm/models/instance.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<state relative-caret-position="94">
<caret line="53" column="0" lean-forward="false" selection-start-line="53" selection-start-column="0" selection-end-line="53" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/novaclient/extension.py">
<entry file="file://$PROJECT_DIR$/circle/common/operations.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<state relative-caret-position="94">
<caret line="231" column="0" lean-forward="false" selection-start-line="231" selection-start-column="0" selection-end-line="231" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/novaclient/client.py">
<entry file="file://$PROJECT_DIR$/circle/dashboard/tables.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="562">
<caret line="45" column="38" lean-forward="true" selection-start-line="45" selection-start-column="38" selection-end-line="45" selection-end-column="38" />
<folding />
<state relative-caret-position="163">
<caret line="106" column="22" lean-forward="true" selection-start-line="106" selection-start-column="22" selection-end-line="106" selection-end-column="22" />
<folding>
<element signature="e#732#770#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/requirements.txt">
<entry file="file://$PROJECT_DIR$/circle/dashboard/views/index.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<state relative-caret-position="102">
<caret line="27" column="30" lean-forward="false" selection-start-line="27" selection-start-column="30" selection-end-line="27" selection-end-column="30" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/requirements/base.txt">
<entry file="file://$PROJECT_DIR$/circle/dashboard/forms.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="595">
<caret line="35" column="8" lean-forward="false" selection-start-line="35" selection-start-column="8" selection-end-line="35" selection-end-column="8" />
<folding />
<state relative-caret-position="51">
<caret line="410" column="54" lean-forward="false" selection-start-line="410" selection-start-column="54" selection-end-line="410" selection-end-column="54" />
<folding>
<element signature="e#732#770#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$APPLICATION_HOME_DIR$/helpers/pydev/pydevd.py">
<entry file="file://$PROJECT_DIR$/circle/request/models.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="110">
<caret line="1071" column="0" lean-forward="false" selection-start-line="1071" selection-start-column="0" selection-end-line="1071" selection-end-column="0" />
<state relative-caret-position="-416">
<caret line="39" column="0" lean-forward="false" selection-start-line="39" selection-start-column="0" selection-end-line="39" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/requirements/circlestack.txt">
<entry file="file://$PROJECT_DIR$/circle/vm/models/activity.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1955">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<state relative-caret-position="516">
<caret line="196" column="31" lean-forward="false" selection-start-line="196" selection-start-column="31" selection-end-line="196" selection-end-column="31" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/circle/settings/local.py">
<entry file="file://$PROJECT_DIR$/circle/vm/models/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="248">
<caret line="106" column="16" lean-forward="false" selection-start-line="106" selection-start-column="16" selection-end-line="106" selection-end-column="16" />
<state relative-caret-position="34">
<caret line="2" column="0" lean-forward="false" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/manage.py">
<entry file="file://$PROJECT_DIR$/circle/vm/operations.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="185">
<caret line="24" column="0" lean-forward="false" selection-start-line="24" selection-start-column="0" selection-end-line="24" selection-end-column="0" />
<folding>
<element signature="e#755#764#0" expanded="true" />
</folding>
<state relative-caret-position="50">
<caret line="52" column="59" lean-forward="false" selection-start-line="52" selection-start-column="59" selection-end-line="52" selection-end-column="59" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/openstack_auth/views.py">
<entry file="file://$PROJECT_DIR$/circle/vm/admin.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="127">
<caret line="60" column="64" lean-forward="true" selection-start-line="60" selection-start-column="64" selection-end-line="60" selection-end-column="64" />
<folding />
<state relative-caret-position="482">
<caret line="35" column="0" lean-forward="true" selection-start-line="35" selection-start-column="0" selection-end-line="35" selection-end-column="0" />
<folding>
<element signature="e#732#764#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/circle/circle/settings/base.py">
<entry file="file://$PROJECT_DIR$/requirements/circlestack.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="760">
<caret line="584" column="38" lean-forward="false" selection-start-line="584" selection-start-column="38" selection-end-line="584" selection-end-column="38" />
<state relative-caret-position="268">
<caret line="124" column="4" lean-forward="false" selection-start-line="124" selection-start-column="4" selection-end-line="124" selection-end-column="4" />
<folding />
</state>
</provider>
......
No preview for this file type
......@@ -583,5 +583,7 @@ DEFAULT_SUBNETPOOL_PREFIXES = (
DEFAULT_SUBNETPOOL_PREFIX_LEN = 20
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN="bme"
OPENSTACK_KEYSTONE_URL="https://oscircle.guest.ik.bme.hu:5000"
WEBSSO_ENABLED = True #TODO: it is always enabled, refactor openstack_auth
OPENSTACK_KEYSTONE_URL="https://10.4.1.19:5000"
\ No newline at end of file
OPENSTACK_SSL_NO_VERIFY = True
\ No newline at end of file
......@@ -22,7 +22,7 @@ from django.core.urlresolvers import reverse
from django.shortcuts import redirect
from openstack_auth import utils
from openstack_auth.views import login
from openstack_auth.views import login, websso
admin.autodiscover()
......@@ -49,6 +49,7 @@ urlpatterns = [
url(r'^accounts/login/?$', login,
name="accounts.login"),
url(r'^accounts/', include('django.contrib.auth.urls')),
url(r'^auth/websso/$', websso, name='websso'),
# url(r'^two-factor-login/$', TwoFactorLoginView.as_view(),
# name="two-factor-login"),
#
......
......@@ -53,7 +53,7 @@ from django.core.urlresolvers import reverse_lazy
from firewall.models import Vlan, Host
from vm.models import (
InstanceTemplate, Lease, InterfaceTemplate, Node, Trait, Instance
InstanceTemplate, Lease, InterfaceTemplate, Trait, Instance
)
from storage.models import DataStore, Disk
from django.contrib.admin.widgets import FilteredSelectMultiple
......@@ -62,8 +62,6 @@ from .models import Profile, GroupProfile, Message
from circle.settings.base import LANGUAGES, MAX_NODE_RAM
from django.utils.translation import string_concat
from .validators import domain_validator
from dashboard.models import ConnectCommand
from openstack_auth.user_key import UserKey
......@@ -412,97 +410,6 @@ class HostForm(NoFormTagMixin, forms.ModelForm):
model = Host
fields = ['hostname', 'vlan', 'mac', 'ipv4', ]
class NodeForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(NodeForm, self).__init__(*args, **kwargs)
self.helper = FormHelper(self)
self.helper.form_show_labels = False
self.helper.layout = Layout(
Div(
Div(
Div(
Div(
AnyTag(
'h3',
HTML(_("Node")),
),
css_class="col-sm-3",
),
css_class="row",
),
Div(
Div( # nodename
HTML('<label for="node-nodename-box">'
'Name'
'</label>'),
css_class="col-sm-3",
),
Div(
'name',
css_class="col-sm-9",
),
css_class="row",
),
Div(
Div( # priority
HTML('<label for="node-nodename-box">'
'Priority'
'</label>'),
css_class="col-sm-3",
),
Div(
'priority',
css_class="col-sm-9",
),
css_class="row",
),
Div(
Div( # enabled
HTML('<label for="node-nodename-box">'
'Enabled'
'</label>'),
css_class="col-sm-3",
),
Div(
'enabled',
css_class="col-sm-9",
),
css_class="row",
),
Div( # nested host
HTML("""{% load crispy_forms_tags %}
{% crispy hostform %}
""")
),
Div(
Div(
AnyTag( # tip: don't try to use Button class
"button",
AnyTag(
"i",
css_class="fa fa-play"
),
HTML("Start"),
css_id="node-create-submit",
css_class="btn btn-success",
),
css_class="col-sm-12 text-right",
),
css_class="row",
),
css_class="col-sm-11",
),
css_class="row",
),
)
class Meta:
model = Node
fields = ['name', 'priority', 'enabled', ]
class TemplateForm(forms.ModelForm):
# networks = forms.ModelMultipleChoiceField(queryset=None, required=False, label=_("Networks"))
#
......
......@@ -27,7 +27,7 @@ from django_tables2.columns import (
)
from storage.models import Disk
from vm.models import Node, InstanceTemplate, Lease
from vm.models import InstanceTemplate, Lease
from dashboard.models import ConnectCommand, Message
from openstack_auth.user_key import UserKey
......@@ -57,58 +57,58 @@ class ApplianceColumn(TemplateColumn):
return mark_safe("%s %s" % (abbr % (title, text), value))
class NodeListTable(Table):
pk = Column(
verbose_name="ID",
attrs={'th': {'class': 'node-list-table-thin'}},
)
overcommit = Column(
verbose_name=_("Overcommit"),
attrs={'th': {'class': 'node-list-table-thin'}},
)
get_status_display = Column(
verbose_name=_("Status"),
attrs={'th': {'class': 'node-list-table-thin'}},
order_by=("enabled", "schedule_enabled"),
)
name = TemplateColumn(
template_name="dashboard/node-list/column-name.html",
order_by="normalized_name"
)
priority = Column(
attrs={'th': {'class': 'node-list-table-thin'}},
)
number_of_VMs = TemplateColumn(
verbose_name=_("Number of VMs"),
template_name='dashboard/node-list/column-vm.html',
attrs={'th': {'class': 'node-list-table-thin'}},
)
monitor = TemplateColumn(
verbose_name=_("Monitor"),
template_name='dashboard/node-list/column-monitor.html',
attrs={'th': {'class': 'node-list-table-monitor'}},
orderable=False,
)
minion_online = BooleanColumn(
verbose_name=_("Minion online"),
attrs={'th': {'class': 'node-list-table-thin'}},
orderable=False,
)
class Meta:
model = Node
attrs = {'class': ('table table-bordered table-striped table-hover '
'node-list-table')}
fields = ('pk', 'name', 'host', 'get_status_display', 'priority',
'minion_online', 'overcommit', 'number_of_VMs', )
# class NodeListTable(Table):
#
# pk = Column(
# verbose_name="ID",
# attrs={'th': {'class': 'node-list-table-thin'}},
# )
#
# overcommit = Column(
# verbose_name=_("Overcommit"),
# attrs={'th': {'class': 'node-list-table-thin'}},
# )
#
# get_status_display = Column(
# verbose_name=_("Status"),
# attrs={'th': {'class': 'node-list-table-thin'}},
# order_by=("enabled", "schedule_enabled"),
# )
#
# name = TemplateColumn(
# template_name="dashboard/node-list/column-name.html",
# order_by="normalized_name"
# )
#
# priority = Column(
# attrs={'th': {'class': 'node-list-table-thin'}},
# )
#
# number_of_VMs = TemplateColumn(
# verbose_name=_("Number of VMs"),
# template_name='dashboard/node-list/column-vm.html',
# attrs={'th': {'class': 'node-list-table-thin'}},
# )
#
# monitor = TemplateColumn(
# verbose_name=_("Monitor"),
# template_name='dashboard/node-list/column-monitor.html',
# attrs={'th': {'class': 'node-list-table-monitor'}},
# orderable=False,
# )
#
# minion_online = BooleanColumn(
# verbose_name=_("Minion online"),
# attrs={'th': {'class': 'node-list-table-thin'}},
# orderable=False,
# )
#
# class Meta:
# model = Node
# attrs = {'class': ('table table-bordered table-striped table-hover '
# 'node-list-table')}
# fields = ('pk', 'name', 'host', 'get_status_display', 'priority',
# 'minion_online', 'overcommit', 'number_of_VMs', )
class GroupListTable(Table):
......
......@@ -14,7 +14,7 @@
{% include "display-form-errors.html" %}
</div>
{% endif %}
<div class="col-xs-{% if saml2 %}6{% else %}12{% endif %}">
<div class="col-xs-6">
<div class="login-form">
<form method="POST">
{% csrf_token %}
......@@ -34,11 +34,15 @@
</form>
</div>
</div>
{% if saml2 %}
<div class="col-xs-6">
<h4 style="padding-top: 0; margin-top: 20px;">{% trans "Login with SSO" %}</h4>
<a href="{% url "saml2_login" %}">{% trans "Click here!" %}</a>
<form method="POST">
{% csrf_token %}
<button type="submit" class="btn btn-success">{% trans "Click here!" %}</button>
<input type="hidden" name="username">
<input type="hidden" name="password">
<input type="hidden" name="auth_type" value="saml2">
</form>
</div>
{% endif %}
</div>
{% endblock %}
......@@ -18,7 +18,6 @@
from django.core.exceptions import ValidationError
from django.utils.translation import ugettext_lazy as _
from lxml import etree as ET
import logging
rng_file = "/usr/share/libvirt/schemas/domain.rng"
......@@ -31,25 +30,6 @@ footer = "</domain>"
logger = logging.getLogger()
def domain_validator(value):
xml = header + value + footer
try:
parsed_xml = ET.fromstring(xml)
except Exception as e:
raise ValidationError(e.message)
try:
relaxng = ET.RelaxNG(file=rng_file)
except:
logger.critical("%s RelaxNG libvirt domain schema file "
"is missing for validation.", rng_file)
else:
try:
relaxng.assertValid(parsed_xml)
except Exception as e:
raise ValidationError(e.message)
def connect_command_template_validator(value):
"""Validate value as a connect command template.
......
......@@ -25,7 +25,7 @@ from django.conf import settings
from django.contrib.auth.models import Group, User
from django.core.cache import cache
from django.views.generic import TemplateView
from vm.models import Instance, Node, InstanceTemplate
from vm.models import Instance, InstanceTemplate
from dashboard.views.vm import vm_ops
from network.models import Vxlan
......
......@@ -61,6 +61,8 @@ def login(request, template_name=None, extra_context=None, **kwargs):
auth_type = request.POST.get('auth_type', 'credentials')
if utils.is_websso_enabled() and auth_type != 'credentials':
auth_url = request.POST.get('region')
if auth_url is None:
auth_url = settings.OPENSTACK_KEYSTONE_URL + '/v3'
url = utils.get_websso_url(request, auth_url, auth_type)
return shortcuts.redirect(url)
......
......@@ -18,8 +18,7 @@
from django.contrib import admin
from .models import (Instance, InstanceActivity, InstanceTemplate, Interface,
InterfaceTemplate, Lease, NamedBaseResourceConfig, Node,
NodeActivity, Trait)
InterfaceTemplate, Lease, NamedBaseResourceConfig, Trait)
class InstanceActivityAdmin(admin.ModelAdmin):
......@@ -33,6 +32,4 @@ admin.site.register(Interface)
admin.site.register(InterfaceTemplate)
admin.site.register(Lease)
admin.site.register(NamedBaseResourceConfig)
admin.site.register(Node)
admin.site.register(NodeActivity)
admin.site.register(Trait)
# flake8: noqa
from .activity import InstanceActivity
from .activity import NodeActivity
from .activity import node_activity
from .common import BaseResourceConfigModel
from .common import Lease
from .common import NamedBaseResourceConfig
......@@ -13,12 +11,10 @@ from .instance import post_state_changed
from .instance import pre_state_changed
from .network import InterfaceTemplate
from .network import Interface
from .node import Node
__all__ = [
'InstanceActivity', 'BaseResourceConfigModel',
'NamedBaseResourceConfig', 'VirtualMachineDescModel', 'InstanceTemplate',
'Instance', 'post_state_changed', 'pre_state_changed', 'InterfaceTemplate',
'Interface', 'Trait', 'Node', 'NodeActivity', 'Lease', 'node_activity',
'pwgen'
'Interface', 'Trait', 'NodeActivity', 'Lease', 'node_activity'
]
......@@ -196,71 +196,6 @@ class InstanceActivity(ActivityModel):
return self.instance.get_operation_from_activity_code(
self.activity_code)
class NodeActivity(ActivityModel):
ACTIVITY_CODE_BASE = join_activity_code('vm', 'Node')
node = ForeignKey('Node', related_name='activity_log',
help_text=_('Node this activity works on.'),
verbose_name=_('node'))
class Meta:
app_label = 'vm'
db_table = 'vm_nodeactivity'
def get_operation(self):
return self.node.get_operation_from_activity_code(
self.activity_code)
def get_absolute_url(self):
return reverse('dashboard.views.node-activity', args=[self.pk])
def __unicode__(self):
if self.parent:
return '{}({})->{}'.format(self.parent.activity_code,
self.node,
self.activity_code)
else:
return '{}({})'.format(self.activity_code,
self.node)
@classmethod
def create(cls, code_suffix, node, task_uuid=None, user=None,
readable_name=None):
readable_name = _normalize_readable_name(readable_name, code_suffix)
activity_code = join_activity_code(cls.ACTIVITY_CODE_BASE, code_suffix)
act = cls(activity_code=activity_code, node=node, parent=None,
readable_name_data=readable_name.to_dict(),
started=timezone.now(), task_uuid=task_uuid, user=user)
act.save()
return act
def create_sub(self, code_suffix, task_uuid=None, readable_name=None):
readable_name = _normalize_readable_name(readable_name, code_suffix)
act = NodeActivity(
activity_code=join_activity_code(self.activity_code, code_suffix),
node=self.node, parent=self, started=timezone.now(),
readable_name_data=readable_name.to_dict(), task_uuid=task_uuid,
user=self.user)
act.save()
return act
@contextmanager
def sub_activity(self, code_suffix, task_uuid=None, readable_name=None):
act = self.create_sub(code_suffix, task_uuid,
readable_name=readable_name)
return activitycontextimpl(act)
@contextmanager
def node_activity(code_suffix, node, task_uuid=None, user=None,
readable_name=None):
act = NodeActivity.create(code_suffix, node, task_uuid, user,
readable_name=readable_name)
return activitycontextimpl(act)
def cleanup(conf=None, **kwargs):
# TODO check if other manager workers are running
msg_txt = ugettext_noop("Manager is restarted, activity is cleaned up. "
......
......@@ -51,7 +51,6 @@ from ..tasks import agent_tasks
from .activity import (ActivityInProgressError, InstanceActivity)
from .common import BaseResourceConfigModel, Lease
from .network import Interface
from .node import Node, Trait
from network.models import EditorElement
......@@ -109,11 +108,6 @@ class VirtualMachineDescModel(BaseResourceConfigModel):
verbose_name=_("Lease"))
raw_data = TextField(verbose_name=_('raw_data'), blank=True, help_text=_(
'Additional libvirt domain parameters in XML format.'))
req_traits = ManyToManyField(Trait, blank=True,
help_text=_("A set of traits required for a "
"node to declare to be suitable "
"for hosting the VM."),
verbose_name=_("required traits"))
system = TextField(verbose_name=_('operating system'),
help_text=(_('Name of operating system in format like '
'"Ubuntu 12.04 LTS Desktop amd64".')))
......@@ -222,10 +216,6 @@ class Instance(OperatedMixin, TimeStampedModel):
verbose_name=_('time of delete'),
help_text=_("Proposed time of automatic "
"deletion."))
node = ForeignKey(Node, blank=True, null=True,
related_name='instance_set',
help_text=_("Current hypervisor of this instance."),
verbose_name=_('host node'))
disks = ManyToManyField('storage.Disk', related_name='instance_set',
help_text=_("Set of mounted disks."),
verbose_name=_('disks'))
......
......@@ -50,8 +50,7 @@ from .tasks.local_tasks import (
abortable_async_instance_operation, abortable_async_node_operation,
)
from .models import (
Instance, InstanceActivity, InstanceTemplate, Interface, Node,
NodeActivity
Instance, InstanceActivity, InstanceTemplate, Interface
)
from .tasks import agent_tasks, vm_tasks
......@@ -755,7 +754,7 @@ class RedeployOperation(InstanceOperation):
class NodeOperation(Operation):
async_operation = abortable_async_node_operation
host_cls = Node
host_cls = None
online_required = True
superuser_required = True
......@@ -790,195 +789,195 @@ class NodeOperation(Operation):
code_suffix=self.get_activity_code_suffix(), node=self.node,
user=user, readable_name=name)
@register_operation
class ResetNodeOperation(NodeOperation):
id = 'reset'
name = _("reset")
description = _("Disable missing node and redeploy all instances "
"on other ones.")
required_perms = ()
online_required = False
async_queue = "localhost.man.slow"
def check_precond(self):
super(ResetNodeOperation, self).check_precond()
if not self.node.enabled or self.node.online:
raise humanize_exception(ugettext_noop(
"You cannot reset a disabled or online node."), Exception())
def _operation(self, activity, user):
for i in self.node.instance_set.all():
name = create_readable(ugettext_noop(
"redeploy %(instance)s (%(pk)s)"), instance=i.name, pk=i.pk)
with activity.sub_activity('migrate_instance_%d' % i.pk,
readable_name=name):
i.redeploy(user=user)
self.node.enabled = False
self.node.schedule_enabled = False
self.node.save()
@register_operation
class FlushOperation(NodeOperation):
id = 'flush'
name = _("flush")
description = _("Passivate node and move all instances to other ones.")
required_perms = ()
async_queue = "localhost.man.slow"
def _operation(self, activity, user):
if self.node.schedule_enabled:
PassivateOperation(self.node).call(parent_activity=activity,
user=user)
for i in self.node.instance_set.all():
name = create_readable(ugettext_noop(
"migrate %(instance)s (%(pk)s)"), instance=i.name, pk=i.pk)
with activity.sub_activity('migrate_instance_%d' % i.pk,
readable_name=name):
i.migrate(user=user)
@register_operation
class ActivateOperation(NodeOperation):
id = 'activate'
name = _("activate")
description = _("Make node active, i.e. scheduler is allowed to deploy "
"virtual machines to it.")
required_perms = ()
def check_precond(self):
super(ActivateOperation, self).check_precond()
if self.node.enabled and self.node.schedule_enabled:
raise humanize_exception(ugettext_noop(
"You cannot activate an active node."), Exception())
def _operation(self):
self.node.enabled = True
self.node.schedule_enabled = True
self.node.get_info(invalidate_cache=True)
self.node.save()
@register_operation
class PassivateOperation(NodeOperation):
id = 'passivate'
name = _("passivate")
description = _("Make node passive, i.e. scheduler is denied to deploy "
"virtual machines to it, but remaining instances and "
"the ones manually migrated will continue running.")
required_perms = ()
def check_precond(self):
if self.node.enabled and not self.node.schedule_enabled:
raise humanize_exception(ugettext_noop(
"You cannot passivate a passive node."), Exception())
super(PassivateOperation, self).check_precond()
def _operation(self):
self.node.enabled = True
self.node.schedule_enabled = False
self.node.get_info(invalidate_cache=True)
self.node.save()
@register_operation
class DisableOperation(NodeOperation):
id = 'disable'
name = _("disable")
description = _("Disable node.")
required_perms = ()
online_required = False
def check_precond(self):
if not self.node.enabled:
raise humanize_exception(ugettext_noop(
"You cannot disable a disabled node."), Exception())
if self.node.instance_set.exists():
raise humanize_exception(ugettext_noop(
"You cannot disable a node which is hosting instances."),
Exception())
super(DisableOperation, self).check_precond()
def _operation(self):
self.node.enabled = False
self.node.schedule_enabled = False
self.node.save()
@register_operation
class UpdateNodeOperation(NodeOperation):
id = 'update_node'
name = _("update node")
description = _("Upgrade or install node software (vmdriver, agentdriver, "
"monitor-client) with Salt.")
required_perms = ()
online_required = False
async_queue = "localhost.man.slow"
def minion_cmd(self, module, params, timeout=3600):
# see https://git.ik.bme.hu/circle/cloud/issues/377
from salt.client import LocalClient
name = self.node.host.hostname
client = LocalClient()
data = client.cmd(
name, module, params, timeout=timeout)
try:
data = data[name]
except KeyError:
raise HumanReadableException.create(ugettext_noop(
"No minions matched the target (%(target)s). "
"Data: (%(data)s)"), target=name, data=data)
if not isinstance(data, dict):
raise HumanReadableException.create(ugettext_noop(
"Unhandled exception: %(msg)s"), msg=unicode(data))
return data
def _operation(self, activity):
with activity.sub_activity(
'upgrade_packages',
readable_name=ugettext_noop('upgrade packages')) as sa:
data = self.minion_cmd('pkg.upgrade', [])
if not data.get('result'):
raise HumanReadableException.create(ugettext_noop(
"Unhandled exception: %(msg)s"), msg=unicode(data))
# data = {'vim': {'new': '1.2.7', 'old': '1.3.7'}}
data = [v for v in data.values() if isinstance(v, dict)]
upgraded = len([x for x in data
if x.get('old') and x.get('new')])
installed = len([x for x in data
if not x.get('old') and x.get('new')])
removed = len([x for x in data
if x.get('old') and not x.get('new')])
sa.result = create_readable(ugettext_noop(
"Upgraded: %(upgraded)s, Installed: %(installed)s, "
"Removed: %(removed)s"), upgraded=upgraded,
installed=installed, removed=removed)
data = self.minion_cmd('state.sls', ['node'])
failed = 0
for k, v in data.iteritems():
logger.debug('salt state %s %s', k, v)
act_name = ': '.join(k.split('_|-')[:2])
if not v["result"] or v["changes"]:
act = activity.create_sub(
act_name[:70], readable_name=act_name)
act.result = create_readable(ugettext_noop(
"Changes: %(changes)s Comment: %(comment)s"),
changes=v["changes"], comment=v["comment"])
act.finish(v["result"])
if not v["result"]:
failed += 1
if failed:
raise HumanReadableException.create(ugettext_noop(
"Failed: %(failed)s"), failed=failed)
#
# @register_operation
# class ResetNodeOperation(NodeOperation):
# id = 'reset'
# name = _("reset")
# description = _("Disable missing node and redeploy all instances "
# "on other ones.")
# required_perms = ()
# online_required = False
# async_queue = "localhost.man.slow"
#
# def check_precond(self):
# super(ResetNodeOperation, self).check_precond()
# if not self.node.enabled or self.node.online:
# raise humanize_exception(ugettext_noop(
# "You cannot reset a disabled or online node."), Exception())
#
# def _operation(self, activity, user):
# for i in self.node.instance_set.all():
# name = create_readable(ugettext_noop(
# "redeploy %(instance)s (%(pk)s)"), instance=i.name, pk=i.pk)
# with activity.sub_activity('migrate_instance_%d' % i.pk,
# readable_name=name):
# i.redeploy(user=user)
#
# self.node.enabled = False
# self.node.schedule_enabled = False
# self.node.save()
# @register_operation
# class FlushOperation(NodeOperation):
# id = 'flush'
# name = _("flush")
# description = _("Passivate node and move all instances to other ones.")
# required_perms = ()
# async_queue = "localhost.man.slow"
#
# def _operation(self, activity, user):
# if self.node.schedule_enabled:
# PassivateOperation(self.node).call(parent_activity=activity,
# user=user)
# for i in self.node.instance_set.all():
# name = create_readable(ugettext_noop(
# "migrate %(instance)s (%(pk)s)"), instance=i.name, pk=i.pk)
# with activity.sub_activity('migrate_instance_%d' % i.pk,
# readable_name=name):
# i.migrate(user=user)
#
#
# @register_operation
# class ActivateOperation(NodeOperation):
# id = 'activate'
# name = _("activate")
# description = _("Make node active, i.e. scheduler is allowed to deploy "
# "virtual machines to it.")
# required_perms = ()
#
# def check_precond(self):
# super(ActivateOperation, self).check_precond()
# if self.node.enabled and self.node.schedule_enabled:
# raise humanize_exception(ugettext_noop(
# "You cannot activate an active node."), Exception())
#
# def _operation(self):
# self.node.enabled = True
# self.node.schedule_enabled = True
# self.node.get_info(invalidate_cache=True)
# self.node.save()
#
#
# @register_operation
# class PassivateOperation(NodeOperation):
# id = 'passivate'
# name = _("passivate")
# description = _("Make node passive, i.e. scheduler is denied to deploy "
# "virtual machines to it, but remaining instances and "
# "the ones manually migrated will continue running.")
# required_perms = ()
#
# def check_precond(self):
# if self.node.enabled and not self.node.schedule_enabled:
# raise humanize_exception(ugettext_noop(
# "You cannot passivate a passive node."), Exception())
# super(PassivateOperation, self).check_precond()
#
# def _operation(self):
# self.node.enabled = True
# self.node.schedule_enabled = False
# self.node.get_info(invalidate_cache=True)
# self.node.save()
#
#
# @register_operation
# class DisableOperation(NodeOperation):
# id = 'disable'
# name = _("disable")
# description = _("Disable node.")
# required_perms = ()
# online_required = False
#
# def check_precond(self):
# if not self.node.enabled:
# raise humanize_exception(ugettext_noop(
# "You cannot disable a disabled node."), Exception())
# if self.node.instance_set.exists():
# raise humanize_exception(ugettext_noop(
# "You cannot disable a node which is hosting instances."),
# Exception())
# super(DisableOperation, self).check_precond()
#
# def _operation(self):
# self.node.enabled = False
# self.node.schedule_enabled = False
# self.node.save()
#
#
# @register_operation
# class UpdateNodeOperation(NodeOperation):
# id = 'update_node'
# name = _("update node")
# description = _("Upgrade or install node software (vmdriver, agentdriver, "
# "monitor-client) with Salt.")
# required_perms = ()
# online_required = False
# async_queue = "localhost.man.slow"
#
# def minion_cmd(self, module, params, timeout=3600):
# # see https://git.ik.bme.hu/circle/cloud/issues/377
# from salt.client import LocalClient
# name = self.node.host.hostname
# client = LocalClient()
# data = client.cmd(
# name, module, params, timeout=timeout)
#
# try:
# data = data[name]
# except KeyError:
# raise HumanReadableException.create(ugettext_noop(
# "No minions matched the target (%(target)s). "
# "Data: (%(data)s)"), target=name, data=data)
#
# if not isinstance(data, dict):
# raise HumanReadableException.create(ugettext_noop(
# "Unhandled exception: %(msg)s"), msg=unicode(data))
#
# return data
#
# def _operation(self, activity):
# with activity.sub_activity(
# 'upgrade_packages',
# readable_name=ugettext_noop('upgrade packages')) as sa:
# data = self.minion_cmd('pkg.upgrade', [])
# if not data.get('result'):
# raise HumanReadableException.create(ugettext_noop(
# "Unhandled exception: %(msg)s"), msg=unicode(data))
#
# # data = {'vim': {'new': '1.2.7', 'old': '1.3.7'}}
# data = [v for v in data.values() if isinstance(v, dict)]
# upgraded = len([x for x in data
# if x.get('old') and x.get('new')])
# installed = len([x for x in data
# if not x.get('old') and x.get('new')])
# removed = len([x for x in data
# if x.get('old') and not x.get('new')])
# sa.result = create_readable(ugettext_noop(
# "Upgraded: %(upgraded)s, Installed: %(installed)s, "
# "Removed: %(removed)s"), upgraded=upgraded,
# installed=installed, removed=removed)
#
# data = self.minion_cmd('state.sls', ['node'])
# failed = 0
# for k, v in data.iteritems():
# logger.debug('salt state %s %s', k, v)
# act_name = ': '.join(k.split('_|-')[:2])
# if not v["result"] or v["changes"]:
# act = activity.create_sub(
# act_name[:70], readable_name=act_name)
# act.result = create_readable(ugettext_noop(
# "Changes: %(changes)s Comment: %(comment)s"),
# changes=v["changes"], comment=v["comment"])
# act.finish(v["result"])
# if not v["result"]:
# failed += 1
#
# if failed:
# raise HumanReadableException.create(ugettext_noop(
# "Failed: %(failed)s"), failed=failed)
#
@register_operation
class ScreenshotOperation(RemoteInstanceOperation):
......
......@@ -59,15 +59,11 @@ jsonschema==2.6.0
keystoneauth1==3.4.0
kombu==3.0.30
logutils==0.3.3
lxml==3.4.4
MarkupSafe==0.23
microsofttranslator==0.8
models==0.9.3
MarkupSafe==1.0
monotonic==1.4
msgpack==0.5.4
msgpack-python==0.5.4
munch==2.2.0
MySQL-python==1.2.5
netaddr==0.7.19
netifaces==0.10.6
nltk==3.2.5
......@@ -95,14 +91,12 @@ ply==3.10
polib==1.1.0
prettytable==0.7.2
prompt-toolkit==1.0.15
psycopg2==2.6
ptyprocess==0.5.2
pyasn1==0.4.2
pycparser==2.18
pycryptodomex==3.4.12
Pygments==2.0.2
pyinotify==0.9.5
pylibmc==1.4.3
PyNaCl==1.2.1
pyOpenSSL==17.5.0
pyotp==2.1.1
......@@ -122,7 +116,6 @@ requests==2.18.4
requestsexceptions==1.4.0
rfc3986==1.1.0
rosetta==0.3
salt==2014.7.0
scandir==1.7
scipy==1.0.0
semantic-version==2.6.0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment