Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Gelencsér Szabolcs
/
circlestack
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
0cfffed4
authored
Apr 16, 2018
by
Szabolcs Gelencser
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactor default network resource creations. Add Internet Access checkbox to plain VM creation,
parent
c4d12b46
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
338 additions
and
262 deletions
+338
-262
.idea/workspace.xml
+227
-236
circle/circle/settings/base.py
+4
-0
circle/dashboard/forms.py
+1
-7
circle/dashboard/templates/dashboard/vm-plain-image-create.html
+1
-1
circle/dashboard/views/vm.py
+20
-12
circle/network/models.py
+85
-6
No files found.
.idea/workspace.xml
View file @
0cfffed4
...
...
@@ -2,23 +2,12 @@
<project
version=
"4"
>
<component
name=
"ChangeListManager"
>
<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/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"
/>
<change
beforePath=
"$PROJECT_DIR$/circle/dashboard/templates/dashboard/vm-plain-image-create.html"
afterPath=
"$PROJECT_DIR$/circle/dashboard/templates/dashboard/vm-plain-image-create.html"
/>
<change
beforePath=
"$PROJECT_DIR$/circle/dashboard/views/vm.py"
afterPath=
"$PROJECT_DIR$/circle/dashboard/views/vm.py"
/>
<change
beforePath=
"$PROJECT_DIR$/circle/network/models.py"
afterPath=
"$PROJECT_DIR$/circle/network/models.py"
/>
</list>
<option
name=
"EXCLUDED_CONVERTED_TO_IGNORED"
value=
"true"
/>
<option
name=
"TRACKING_ENABLED"
value=
"true"
/>
...
...
@@ -48,73 +37,61 @@
</component>
<component
name=
"FileEditorManager"
>
<leaf
SIDE_TABS_SIZE_LIMIT_KEY=
"300"
>
<file
leaf-file-name=
"
instance
.py"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
vm/models/instance
.py"
>
<file
leaf-file-name=
"
models
.py"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
network/models
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<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"
/>
<state
relative-caret-position=
"
556
"
>
<caret
line=
"
100"
column=
"60"
lean-forward=
"true"
selection-start-line=
"100"
selection-start-column=
"60"
selection-end-line=
"100"
selection-end-column=
"6
0"
/>
<folding
/>
</state>
</provider>
</entry>
</file>
<file
leaf-file-name=
"
__init__.py"
pinned=
"false"
current-in-tab=
"fals
e"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
vm/models/__init__
.py"
>
<file
leaf-file-name=
"
vm.py"
pinned=
"false"
current-in-tab=
"tru
e"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
dashboard/views/vm
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<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"
/>
<state
relative-caret-position=
"
80
"
>
<caret
line=
"
1054"
column=
"40"
lean-forward=
"false"
selection-start-line=
"1054"
selection-start-column=
"12"
selection-end-line=
"1054"
selection-end-column=
"4
0"
/>
<folding
/>
</state>
</provider>
</entry>
</file>
<file
leaf-file-name=
"
model
s.py"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$
PROJECT_DIR$/circle/request/model
s.py"
>
<file
leaf-file-name=
"
server
s.py"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$
USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/novaclient/v2/server
s.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
"
/>
<state
relative-caret-position=
"
250
"
>
<caret
line=
"
734"
column=
"37"
lean-forward=
"true"
selection-start-line=
"734"
selection-start-column=
"37"
selection-end-line=
"734"
selection-end-column=
"37
"
/>
<folding
/>
</state>
</provider>
</entry>
</file>
<file
leaf-file-name=
"
activity
.py"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
vm/models/activity
.py"
>
<file
leaf-file-name=
"
nova
.py"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
openstack_api/nova
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
51
6"
>
<caret
line=
"
196"
column=
"31"
lean-forward=
"false"
selection-start-line=
"196"
selection-start-column=
"31"
selection-end-line=
"196"
selection-end-column=
"31
"
/>
<state
relative-caret-position=
"
15
6"
>
<caret
line=
"
528"
column=
"0"
lean-forward=
"false"
selection-start-line=
"528"
selection-start-column=
"0"
selection-end-line=
"528"
selection-end-column=
"0
"
/>
<folding
/>
</state>
</provider>
</entry>
</file>
<file
leaf-file-name=
"
operations
.py"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
vm/operations
.py"
>
<file
leaf-file-name=
"
neutron
.py"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
openstack_api/neutron
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<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
"
/>
<state
relative-caret-position=
"
306
"
>
<caret
line=
"
359"
column=
"8"
lean-forward=
"false"
selection-start-line=
"359"
selection-start-column=
"8"
selection-end-line=
"359"
selection-end-column=
"8
"
/>
<folding
/>
</state>
</provider>
</entry>
</file>
<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=
"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"
>
<file
leaf-file-name=
"vm-plain-image-create.html"
pinned=
"false"
current-in-tab=
"false"
>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/templates/dashboard/vm-plain-image-create.html"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"2
68
"
>
<caret
line=
"1
24"
column=
"4"
lean-forward=
"false"
selection-start-line=
"124"
selection-start-column=
"4"
selection-end-line=
"124"
selection-end-column=
"4
"
/>
<state
relative-caret-position=
"2
21
"
>
<caret
line=
"1
3"
column=
"0"
lean-forward=
"false"
selection-start-line=
"13"
selection-start-column=
"0"
selection-end-line=
"13"
selection-end-column=
"0
"
/>
<folding
/>
</state>
</provider>
...
...
@@ -132,13 +109,6 @@
</component>
<component
name=
"FindInProjectRecents"
>
<findStrings>
<find>
user_logged
</find>
<find>
policy
</find>
<find>
check
</find>
<find>
template:create
</find>
<find>
contrib.auth
</find>
<find>
instanceactivity
</find>
<find>
middleware
</find>
<find>
request
</find>
<find>
SuperuserRequiredMixin
</find>
<find>
#TODO
</find>
...
...
@@ -161,7 +131,14 @@
<find>
LocalClient
</find>
<find>
trait
</find>
<find>
class NodeActivity
</find>
<find>
compileless
</find>
<find>
less
</find>
<find>
installed
</find>
<find>
Node
</find>
<find>
DummyLessCompiler
</find>
<find>
forwar
</find>
<find>
DEFAULT_SUBNETPOOL_NAME_FOR_USER
</find>
<find>
get_id
</find>
</findStrings>
<replaceStrings>
<replace>
'ACTIVE'
</replace>
...
...
@@ -182,13 +159,11 @@
<component
name=
"IdeDocumentHistory"
>
<option
name=
"CHANGED_PATHS"
>
<list>
<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"
/>
<option
value=
"$PROJECT_DIR$/circle/network/forms.py"
/>
<option
value=
"$PROJECT_DIR$/circle/network/views.py"
/>
<option
value=
"$PROJECT_DIR$/circle/network/templates/network/vxlan-create.html"
/>
<option
value=
"$PROJECT_DIR$/circle/network/models.py"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/templates/dashboard/vm-detail/resources.html"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/templates/dashboard/vm-detail.html"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/templates/dashboard/vm-detail/home.html"
/>
...
...
@@ -199,7 +174,6 @@
<option
value=
"$PROJECT_DIR$/circle/dashboard/templates/dashboard/index.html"
/>
<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/dashboard/templates/dashboard/template-edit.html"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/views/util.py"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/views/template.py"
/>
...
...
@@ -222,17 +196,20 @@
<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"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/templates/dashboard/vm-plain-image-create.html"
/>
<option
value=
"$PROJECT_DIR$/circle/circle/settings/base.py"
/>
<option
value=
"$PROJECT_DIR$/circle/network/models.py"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/forms.py"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/views/vm.py"
/>
</list>
</option>
</component>
...
...
@@ -250,8 +227,8 @@
<component
name=
"ProjectFrameBounds"
>
<option
name=
"x"
value=
"-2"
/>
<option
name=
"y"
value=
"-1"
/>
<option
name=
"width"
value=
"1
370
"
/>
<option
name=
"height"
value=
"
751
"
/>
<option
name=
"width"
value=
"1
924
"
/>
<option
name=
"height"
value=
"
1063
"
/>
</component>
<component
name=
"ProjectInspectionProfilesVisibleTreeState"
>
<entry
key=
"Project Default"
>
...
...
@@ -290,6 +267,7 @@
<foldersAlwaysOnTop
value=
"true"
/>
</navigator>
<panes>
<pane
id=
"Scope"
/>
<pane
id=
"ProjectPane"
>
<subPane>
<expand>
...
...
@@ -319,6 +297,33 @@
<item
name=
"cloud"
type=
"b2602c69:ProjectViewProjectNode"
/>
<item
name=
"cloud"
type=
"462c0819:PsiDirectoryNode"
/>
<item
name=
"circle"
type=
"462c0819:PsiDirectoryNode"
/>
<item
name=
"common"
type=
"462c0819:PsiDirectoryNode"
/>
</path>
<path>
<item
name=
"cloud"
type=
"b2602c69:ProjectViewProjectNode"
/>
<item
name=
"cloud"
type=
"462c0819:PsiDirectoryNode"
/>
<item
name=
"circle"
type=
"462c0819:PsiDirectoryNode"
/>
<item
name=
"common"
type=
"462c0819:PsiDirectoryNode"
/>
<item
name=
"management"
type=
"462c0819:PsiDirectoryNode"
/>
</path>
<path>
<item
name=
"cloud"
type=
"b2602c69:ProjectViewProjectNode"
/>
<item
name=
"cloud"
type=
"462c0819:PsiDirectoryNode"
/>
<item
name=
"circle"
type=
"462c0819:PsiDirectoryNode"
/>
<item
name=
"common"
type=
"462c0819:PsiDirectoryNode"
/>
<item
name=
"management"
type=
"462c0819:PsiDirectoryNode"
/>
<item
name=
"commands"
type=
"462c0819:PsiDirectoryNode"
/>
</path>
<path>
<item
name=
"cloud"
type=
"b2602c69:ProjectViewProjectNode"
/>
<item
name=
"cloud"
type=
"462c0819:PsiDirectoryNode"
/>
<item
name=
"circle"
type=
"462c0819:PsiDirectoryNode"
/>
<item
name=
"dashboard"
type=
"462c0819:PsiDirectoryNode"
/>
</path>
<path>
<item
name=
"cloud"
type=
"b2602c69:ProjectViewProjectNode"
/>
<item
name=
"cloud"
type=
"462c0819:PsiDirectoryNode"
/>
<item
name=
"circle"
type=
"462c0819:PsiDirectoryNode"
/>
<item
name=
"openstack_auth"
type=
"462c0819:PsiDirectoryNode"
/>
</path>
</expand>
...
...
@@ -326,7 +331,6 @@
</subPane>
</pane>
<pane
id=
"Scratches"
/>
<pane
id=
"Scope"
/>
</panes>
</component>
<component
name=
"PropertiesComponent"
>
...
...
@@ -335,7 +339,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=
"v
iews.	FILE	file:///home/h3yduck/cloud/circle/openstack_auth/views.py login.html	FILE	file:///home/h3yduck/cloud/circle/dashboard/templates/auth/login.html LoginVi	null	null indexv	null	null index-vm	FILE	file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/index-vm.html index.	FILE	file:///home/h3yduck/cloud/circle/dashboard/views/index.py index	FILE	file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/index.html bas	FILE	file:///home/h3yduck/cloud/circle/openstack_api/base.py save	null	null plainc	null	null vmdeta	null	null templatedet	null	null instancetemp	null	null instancetem	null	null url	FILE	file:///home/h3yduck/cloud/circle/dashboard/urls.py vmcreate	null	null base	FILE	file:///home/h3yduck/cloud/circle/circle/settings/base.py opera	FILE	file:///home/h3yduck/cloud/circle/vm/operations.py operations	FILE	file:///home/h3yduck/cloud/circle/common/operations.py templat	null	null vmadd	null	null vmdetail	null	null addinterfa	null	null addin	null	null server	null	null Instance	null	null instance	FILE	file:///home/h3yduck/cloud/circle/vm/models/instance.py operat	null	null ins	FILE	file:///home/h3yduck/cloud/circle/vm/models/instance.py vmdetai	null	null operationvi	null	null ser	null	null server.	FILE	file:///home/h3yduck/.virtualenvs/cloud/local/lib/python2.7/site-packages/novaclient/v2/servers.py resources.	FILE	file:///home/h3yduck/cloud/circle/request/templates/request/initials/resources.html vm-de	FILE	file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/vm-detail.html vxla	null	null urls	FILE	file:///home/h3yduck/cloud/circle/dashboard/urls.py index-v	FILE	file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/index-vxlans.html create	FILE	file:///home/h3yduck/cloud/circle/network/templates/network/vxlan-create.html vxl	null	null nov	FILE	file:///home/h3yduck/cloud/circle/openstack_api/nova.py nova.p	FILE	file:///home/h3yduck/cloud/circle/openstack_api/nova.py vmdetailv	null	null editor	null	null networktopo	FILE	file:///home/h3yduck/cloud/circle/network/static/js/horizon.networktopology.js bow	FILE	file:///home/h3yduck/cloud/circle/bower.json base.py	FILE	file:///home/h3yduck/cloud/circle/circle/settings/base.py local	null	null vnc	null	null plain	FILE	file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/vm-plain-image-create.html
"
/>
<property
name=
"SearchEverywhereHistoryKey"
value=
"v
xlanc	null	null plain	null	null base.	FILE	file:///home/h3yduck/cloud/circle/circle/settings/base.py local	FILE	file:///home/h3yduck/cloud/circle/circle/settings/local.py views.	FILE	file:///home/h3yduck/cloud/circle/openstack_auth/views.py login.html	FILE	file:///home/h3yduck/cloud/circle/dashboard/templates/auth/login.html LoginVi	null	null indexv	null	null index-vm	FILE	file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/index-vm.html index.	FILE	file:///home/h3yduck/cloud/circle/dashboard/views/index.py index	FILE	file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/index.html bas	FILE	file:///home/h3yduck/cloud/circle/openstack_api/base.py save	null	null plainc	null	null vmdeta	null	null templatedet	null	null instancetemp	null	null instancetem	null	null url	FILE	file:///home/h3yduck/cloud/circle/dashboard/urls.py vmcreate	null	null base	FILE	file:///home/h3yduck/cloud/circle/circle/settings/base.py opera	FILE	file:///home/h3yduck/cloud/circle/vm/operations.py operations	FILE	file:///home/h3yduck/cloud/circle/common/operations.py templat	null	null vmadd	null	null vmdetail	null	null addinterfa	null	null addin	null	null server	null	null Instance	null	null instance	FILE	file:///home/h3yduck/cloud/circle/vm/models/instance.py operat	null	null ins	FILE	file:///home/h3yduck/cloud/circle/vm/models/instance.py vmdetai	null	null operationvi	null	null ser	null	null server.	FILE	file:///home/h3yduck/.virtualenvs/cloud/local/lib/python2.7/site-packages/novaclient/v2/servers.py resources.	FILE	file:///home/h3yduck/cloud/circle/request/templates/request/initials/resources.html vm-de	FILE	file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/vm-detail.html vxla	null	null urls	FILE	file:///home/h3yduck/cloud/circle/dashboard/urls.py index-v	FILE	file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/index-vxlans.html create	FILE	file:///home/h3yduck/cloud/circle/network/templates/network/vxlan-create.html vxl	null	null nov	FILE	file:///home/h3yduck/cloud/circle/openstack_api/nova.py nova.p	FILE	file:///home/h3yduck/cloud/circle/openstack_api/nova.py vmdetailv	null	null editor	null	null networktopo	FILE	file:///home/h3yduck/cloud/circle/network/static/js/horizon.networktopology.js bow	FILE	file:///home/h3yduck/cloud/circle/bower.json
"
/>
</component>
<component
name=
"RecentsManager"
>
<key
name=
"MoveFile.RECENT_KEYS"
>
...
...
@@ -479,23 +483,22 @@
</todo-panel>
</component>
<component
name=
"ToolWindowManager"
>
<frame
x=
"-2"
y=
"-1"
width=
"1370"
height=
"751"
extended-state=
"0"
/>
<editor
active=
"true"
/>
<frame
x=
"-2"
y=
"-1"
width=
"1924"
height=
"1063"
extended-state=
"0"
/>
<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=
"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=
"Event Log"
active=
"false"
anchor=
"bottom"
auto_hide=
"false"
internal_type=
"DOCKED"
type=
"DOCKED"
visible=
"false"
show_stripe_button=
"true"
weight=
"0.
47568712"
sideWeight=
"0.5037274
"
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.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.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.
2809667
6"
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.
50151056
"
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.
140042
6"
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.32
9653
"
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.32
875264
"
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=
"
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=
"Debug"
active=
"
true"
anchor=
"bottom"
auto_hide=
"false"
internal_type=
"DOCKED"
type=
"DOCKED"
visible=
"true"
show_stripe_button=
"true"
weight=
"0.47568712"
sideWeight=
"0.49627262
"
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"
/>
...
...
@@ -581,13 +584,18 @@
</properties>
</breakpoint>
</default-breakpoints>
<option
name=
"time"
value=
"2
82
"
/>
<option
name=
"time"
value=
"2
99
"
/>
</breakpoint-manager>
<watches-manager
/>
</component>
<component
name=
"debuggerHistoryManager"
>
<expressions
id=
"evaluateCodeFragment"
>
<expression>
<expression-string>
openstack_api.neutron.subnetpool_get(request, 'default')
</expression-string>
<language-id>
Python
</language-id>
<evaluation-mode>
CODE_FRAGMENT
</evaluation-mode>
</expression>
<expression>
<expression-string>
session.post(token_url, json=body, headers=headers,
authenticated=False, log=False, **rkwargs)
</expression-string>
<language-id>
Python
</language-id>
...
...
@@ -632,14 +640,6 @@ print(r)</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>
<language-id>
Python
</language-id>
<evaluation-mode>
CODE_FRAGMENT
</evaluation-mode>
</expression>
</expressions>
<expressions
id=
"breakpointCondition"
>
<expression>
...
...
@@ -655,141 +655,53 @@ print(r)</expression-string>
</expressions>
<expressions
id=
"evaluateExpression"
>
<expression>
<expression-string>
quotas.get(
"
instances
"
)
</expression-string>
<expression-string>
nics
</expression-string>
<language-id>
Python
</language-id>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
</expression>
<expression>
<expression-string>
openstack_api.nova.tenant_quota_get(self.request, user.project_id)
</expression-string>
<expression-string>
nincs
</expression-string>
<language-id>
Python
</language-id>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
</expression>
<expression>
<expression-string>
openstack_api.nova.tenant_quota_get(self.request, user.project_id).instances
</expression-string>
<expression-string>
nic_info
</expression-string>
<language-id>
Python
</language-id>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
</expression>
<expression>
<expression-string>
openstack_api.n
ova.tenant_quota_get(self.request, user.project_id)[
"
instances
"
]
</expression-string>
<expression-string>
openstack_api.n
eutron.router_get(request,
"
default
"
)
</expression-string>
<language-id>
Python
</language-id>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
</expression>
<expression>
<expression-string>
max_instances
</expression-string>
<expression-string>
openstack_api.neutron.router_get(request, None, name=
"
default
"
)
</expression-string>
<language-id>
Python
</language-id>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
</expression>
<expression>
<expression-string>
openstack_api.nova.tenant_quota_get(self.request, self.
)
</expression-string>
<expression-string>
quotas.get(
"
instances
"
)
</expression-string>
<language-id>
Python
</language-id>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
</expression>
<expression>
<expression-string>
openstack_api.nova.tenant_quota_get(self.request)
</expression-string>
<expression-string>
openstack_api.nova.tenant_quota_get(self.request
, user.project_id
)
</expression-string>
<language-id>
Python
</language-id>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
</expression>
<expression>
<expression-string>
view.request.user.permission
s
</expression-string>
<language-id>
HTML
</language-id>
<expression-string>
openstack_api.nova.tenant_quota_get(self.request, user.project_id).instance
s
</expression-string>
<language-id>
Python
</language-id>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
</expression>
<expression>
<expression-string>
view.request.user.permissions['can_decide_request'
]
</expression-string>
<language-id>
HTML
</language-id>
<expression-string>
openstack_api.nova.tenant_quota_get(self.request, user.project_id)[
"
instances
"
]
</expression-string>
<language-id>
Python
</language-id>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
</expression>
</expressions>
</component>
<component
name=
"editorHistoryManager"
>
<entry
file=
"file://$PROJECT_DIR$/circle/openstack_auth/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>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/templates/dashboard/base.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"
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/urls.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"
/>
<folding
/>
</state>
</provider>
</entry>
<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=
"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_tables2/views.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"
/>
</state>
</provider>
</entry>
<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=
"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://$PROJECT_DIR$/circle/request/urls.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>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/circle/middleware.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>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/templates/dashboard/index-vm.html"
>
<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"
/>
</state>
</provider>
</entry>
<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=
"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/request/templates/request/request-template.html"
>
<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"
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/openstack_api/network.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>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/request/views.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"352"
>
...
...
@@ -797,14 +709,6 @@ print(r)</expression-string>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/openstack_api/nova.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"
/>
<folding
/>
</state>
</provider>
</entry>
<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=
"0"
>
...
...
@@ -941,7 +845,6 @@ print(r)</expression-string>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<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>
...
...
@@ -955,21 +858,10 @@ print(r)</expression-string>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/circle/settings/local.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<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/dashboard/validators.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<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>
...
...
@@ -978,17 +870,7 @@ print(r)</expression-string>
<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/circle/settings/base.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<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"
/>
<element
signature=
"e#732#770#0"
expanded=
"false"
/>
</folding>
</state>
</provider>
...
...
@@ -998,7 +880,7 @@ print(r)</expression-string>
<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=
"
tru
e"
/>
<element
signature=
"e#732#773#0"
expanded=
"
fals
e"
/>
</folding>
</state>
</provider>
...
...
@@ -1031,9 +913,6 @@ print(r)</expression-string>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<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>
...
...
@@ -1045,13 +924,40 @@ print(r)</expression-string>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
dashboard/forms
.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
vm/models/__init__
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<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
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/dashboard/compilers.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>
</provider>
</entry>
<entry
file=
"file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/urllib3/connectionpool.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"102"
>
<caret
line=
"857"
column=
"0"
lean-forward=
"false"
selection-start-line=
"857"
selection-start-column=
"0"
selection-end-line=
"857"
selection-end-column=
"0"
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/common/management/commands/watch.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"204"
>
<caret
line=
"32"
column=
"0"
lean-forward=
"true"
selection-start-line=
"32"
selection-start-column=
"0"
selection-end-line=
"32"
selection-end-column=
"0"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/common/management/commands/compileless.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>
</provider>
</entry>
...
...
@@ -1071,14 +977,6 @@ print(r)</expression-string>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/vm/models/__init__.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<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/vm/operations.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"50"
>
...
...
@@ -1090,17 +988,110 @@ print(r)</expression-string>
<entry
file=
"file://$PROJECT_DIR$/circle/vm/admin.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<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>
<caret
line=
"35"
column=
"0"
lean-forward=
"false"
selection-start-line=
"35"
selection-start-column=
"0"
selection-end-line=
"35"
selection-end-column=
"0"
/>
</state>
</provider>
</entry>
<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"
/>
<state
relative-caret-position=
"0"
>
<caret
line=
"11"
column=
"14"
lean-forward=
"false"
selection-start-line=
"11"
selection-start-column=
"14"
selection-end-line=
"11"
selection-end-column=
"14"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/circle/settings/local.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"-600"
>
<caret
line=
"38"
column=
"0"
lean-forward=
"true"
selection-start-line=
"38"
selection-start-column=
"0"
selection-end-line=
"38"
selection-end-column=
"0"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/templates/dashboard/vm-plain-image-create.html"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"221"
>
<caret
line=
"13"
column=
"0"
lean-forward=
"false"
selection-start-line=
"13"
selection-start-column=
"0"
selection-end-line=
"13"
selection-end-column=
"0"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/circle/settings/base.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"760"
>
<caret
line=
"586"
column=
"39"
lean-forward=
"true"
selection-start-line=
"586"
selection-start-column=
"0"
selection-end-line=
"586"
selection-end-column=
"39"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/neutronclient/v2_0/client.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"306"
>
<caret
line=
"886"
column=
"8"
lean-forward=
"false"
selection-start-line=
"886"
selection-start-column=
"8"
selection-end-line=
"886"
selection-end-column=
"8"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/openstack_api/base.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"156"
>
<caret
line=
"156"
column=
"0"
lean-forward=
"false"
selection-start-line=
"156"
selection-start-column=
"0"
selection-end-line=
"156"
selection-end-column=
"0"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/network/views.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"339"
>
<caret
line=
"1012"
column=
"32"
lean-forward=
"false"
selection-start-line=
"1012"
selection-start-column=
"32"
selection-end-line=
"1012"
selection-end-column=
"32"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/openstack_api/neutron.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"306"
>
<caret
line=
"359"
column=
"8"
lean-forward=
"false"
selection-start-line=
"359"
selection-start-column=
"8"
selection-end-line=
"359"
selection-end-column=
"8"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/openstack_api/nova.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"156"
>
<caret
line=
"528"
column=
"0"
lean-forward=
"false"
selection-start-line=
"528"
selection-start-column=
"0"
selection-end-line=
"528"
selection-end-column=
"0"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/novaclient/v2/servers.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"250"
>
<caret
line=
"734"
column=
"37"
lean-forward=
"true"
selection-start-line=
"734"
selection-start-column=
"37"
selection-end-line=
"734"
selection-end-column=
"37"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/network/models.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"556"
>
<caret
line=
"100"
column=
"60"
lean-forward=
"true"
selection-start-line=
"100"
selection-start-column=
"60"
selection-end-line=
"100"
selection-end-column=
"60"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/forms.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"340"
>
<caret
line=
"122"
column=
"69"
lean-forward=
"false"
selection-start-line=
"122"
selection-start-column=
"69"
selection-end-line=
"122"
selection-end-column=
"69"
/>
<folding
/>
</state>
</provider>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/views/vm.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"80"
>
<caret
line=
"1054"
column=
"40"
lean-forward=
"false"
selection-start-line=
"1054"
selection-start-column=
"12"
selection-end-line=
"1054"
selection-end-column=
"40"
/>
<folding
/>
</state>
</provider>
...
...
circle/circle/settings/base.py
View file @
0cfffed4
...
...
@@ -582,6 +582,10 @@ DEFAULT_SUBNETPOOL_PREFIXES = (
)
DEFAULT_SUBNETPOOL_PREFIX_LEN
=
20
DEFAULT_PUBLIC_NETWORK_NAME
=
"public"
DEFAULT_PUBLIC_ROUTER_NAME_FOR_USER
=
"default_public"
DEFAULT_PUBLIC_ROUTED_NET_NAME_FOR_USER
=
"default_public_routed"
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
...
...
circle/dashboard/forms.py
View file @
0cfffed4
...
...
@@ -120,9 +120,7 @@ class VmFromPlainImageForm(forms.Form):
'class'
:
"form-control input-tags"
,
}))
network
=
forms
.
ChoiceField
([],
widget
=
forms
.
Select
(
attrs
=
{
'class'
:
"form-control input-tags"
,
}))
internet_access
=
forms
.
BooleanField
(
initial
=
True
,
required
=
False
)
def
__init__
(
self
,
request
,
*
args
,
**
kwargs
):
super
(
VmFromPlainImageForm
,
self
)
.
__init__
(
*
args
,
**
kwargs
)
...
...
@@ -145,10 +143,6 @@ class VmFromPlainImageForm(forms.Form):
(
flavor
.
id
,
'
%
s -
%
s CPUs,
%
s MB RAM'
%
(
flavor
.
name
,
flavor
.
vcpus
,
flavor
.
ram
))
for
flavor
in
flavors
)
networks
=
openstack_api
.
neutron
.
network_list_for_tenant
(
request
,
request
.
user
.
tenant_id
)
self
.
fields
[
'network'
]
.
choices
=
(
(
network
.
id
,
'
%
s'
%
(
network
.
name
))
for
network
in
networks
)
class
VmCustomizeForm
(
forms
.
Form
):
name
=
forms
.
CharField
(
widget
=
forms
.
TextInput
(
attrs
=
{
...
...
circle/dashboard/templates/dashboard/vm-plain-image-create.html
View file @
0cfffed4
...
...
@@ -10,7 +10,7 @@
{{ form.name|as_crispy_field }}
{{ form.image|as_crispy_field }}
{{ form.flavor|as_crispy_field }}
{# {{ form.network|as_crispy_field }}#
}
{{ form.internet_access|as_crispy_field }
}
<button
class=
"btn btn-success btn-xs vm-create-start pull-right text-right"
type=
"submit"
>
<i
class=
"fa fa-play"
></i>
{% trans "Start" %}
</button>
...
...
circle/dashboard/views/vm.py
View file @
0cfffed4
...
...
@@ -48,6 +48,7 @@ from common.models import (
)
from
firewall.models
import
Vlan
,
Host
,
Rule
from
manager.scheduler
import
SchedulerError
from
network.models
import
DefaultPublicRouter
,
DefaultPublicRoutedNet
from
openstack_api.nova
import
Server
from
request.forms
import
TemplateRequestForm
from
request.models
import
TemplateAccessType
...
...
@@ -1049,18 +1050,25 @@ class VmPlainImageCreate(LoginRequiredMixin, TemplateView):
return
self
.
render_to_response
(
context
)
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
#TODO: if there is a network available use it, of there isn't use none
# there could be some checkboxes for the user to decide
# could create default network, setup internet access
server_created
=
openstack_api
.
nova
.
server_create
(
request
,
request
.
POST
.
get
(
"name"
),
request
.
POST
.
get
(
"image"
),
request
.
POST
.
get
(
"flavor"
),
# nics=({
# 'uuid': 'fc7ba14c-53d8-4810-9030-a0f00985c036'
# })
)
server_created
=
None
if
request
.
POST
.
get
(
"internet_access"
):
default_public_routed_net_id
=
DefaultPublicRoutedNet
.
get_id
(
request
)
server_created
=
openstack_api
.
nova
.
server_create
(
request
,
request
.
POST
.
get
(
"name"
),
request
.
POST
.
get
(
"image"
),
request
.
POST
.
get
(
"flavor"
),
nics
=
({
'net-id'
:
default_public_routed_net_id
,
},)
)
else
:
server_created
=
openstack_api
.
nova
.
server_create
(
request
,
request
.
POST
.
get
(
"name"
),
request
.
POST
.
get
(
"image"
),
request
.
POST
.
get
(
"flavor"
),
)
return
HttpResponseRedirect
(
"vm/
%
s#activity"
%
server_created
.
id
)
...
...
circle/network/models.py
View file @
0cfffed4
...
...
@@ -78,23 +78,101 @@ class Vxlan(models.Model):
class
SubnetPool
(
object
):
@classmethod
def
get
(
cls
,
request
):
def
__
get
(
cls
,
request
):
subnet_pools
=
openstack_api
.
neutron
.
subnetpool_list
(
request
)
subnet_pools
=
[
sp
for
sp
in
subnet_pools
if
sp
.
name
==
settings
.
DEFAULT_SUBNETPOOL_NAME_FOR_USER
]
return
subnet_pools
[
0
]
if
len
(
subnet_pools
)
>
0
else
None
@classmethod
def
create_if_not_exists
(
cls
,
sender
,
user
,
request
,
**
kwargs
):
if
SubnetPool
.
get
(
request
)
is
None
:
openstack_api
.
neutron
.
subnetpool_create
(
def
__create_if_not_exists
(
cls
,
request
):
default_subnet_pool
=
SubnetPool
.
__get
(
request
)
if
default_subnet_pool
is
None
:
return
openstack_api
.
neutron
.
subnetpool_create
(
request
,
settings
.
DEFAULT_SUBNETPOOL_NAME_FOR_USER
,
settings
.
DEFAULT_SUBNETPOOL_PREFIXES
,
default_prefixlen
=
settings
.
DEFAULT_SUBNETPOOL_PREFIX_LEN
)
else
:
return
default_subnet_pool
@classmethod
def
get_id
(
cls
,
request
):
return
SubnetPool
.
get
(
request
)
.
id
return
SubnetPool
.
__create_if_not_exists
(
request
)
.
id
class
DefaultPublicRouter
(
object
):
@classmethod
def
__get_default_public_network
(
cls
,
request
):
nets
=
openstack_api
.
neutron
.
network_list
(
request
)
nets
=
[
n
for
n
in
nets
if
n
.
name
==
settings
.
DEFAULT_PUBLIC_NETWORK_NAME
]
return
nets
[
0
]
if
len
(
nets
)
>
0
else
None
user_logged_in
.
connect
(
SubnetPool
.
create_if_not_exists
)
@classmethod
def
__get
(
cls
,
request
):
routers
=
openstack_api
.
neutron
.
router_list
(
request
)
routers
=
[
rtr
for
rtr
in
routers
if
rtr
.
name
==
settings
.
DEFAULT_PUBLIC_ROUTER_NAME_FOR_USER
]
return
routers
[
0
]
if
len
(
routers
)
>
0
else
None
@classmethod
def
create_if_not_exists
(
cls
,
request
,
subnet_id
):
default_public_router
=
DefaultPublicRouter
.
__get
(
request
)
if
default_public_router
is
None
:
default_public_router
=
openstack_api
.
neutron
.
router_create
(
request
,
name
=
settings
.
DEFAULT_PUBLIC_ROUTER_NAME_FOR_USER
,
external_gateway_info
=
{
"network_id"
:
DefaultPublicRouter
.
__get_default_public_network
(
request
)
.
id
}
)
openstack_api
.
neutron
.
router_add_interface
(
request
,
default_public_router
.
id
,
subnet_id
=
subnet_id
)
return
default_public_router
class
DefaultPublicRoutedNet
(
object
):
@classmethod
def
__connect_router
(
cls
,
request
,
default_routed_net
):
DefaultPublicRouter
.
create_if_not_exists
(
request
,
default_routed_net
.
subnets
[
0
]
.
id
)
@classmethod
def
__create_network
(
cls
,
request
):
network_created
=
openstack_api
.
neutron
.
network_create
(
request
,
name
=
settings
.
DEFAULT_PUBLIC_ROUTED_NET_NAME_FOR_USER
)
try
:
# TODO: default ip version should read from SETTINGS
subnet_created
=
openstack_api
.
neutron
.
subnet_create
(
request
,
network_created
.
id
,
ip_version
=
4
,
subnetpool_id
=
SubnetPool
.
get_id
(
request
)
)
network_created
.
subnets
.
append
(
subnet_created
)
except
:
openstack_api
.
neutron
.
network_delete
(
request
,
network_created
.
id
)
# TODO: user friendly error handling
raise
Exception
(
"Could not create subnet for network, deleted network."
)
return
network_created
@classmethod
def
__get
(
cls
,
request
):
nets
=
openstack_api
.
neutron
.
network_list_for_tenant
(
request
,
request
.
user
.
project_id
)
nets
=
[
n
for
n
in
nets
if
n
.
name
==
settings
.
DEFAULT_PUBLIC_ROUTED_NET_NAME_FOR_USER
]
return
nets
[
0
]
if
len
(
nets
)
>
0
else
None
@classmethod
def
__create_if_not_exists
(
cls
,
request
):
default_routed_net
=
DefaultPublicRoutedNet
.
__get
(
request
)
if
default_routed_net
is
None
:
default_routed_net
=
DefaultPublicRoutedNet
.
__create_network
(
request
)
DefaultPublicRoutedNet
.
__connect_router
(
request
,
default_routed_net
)
return
default_routed_net
@classmethod
def
get_id
(
cls
,
request
):
return
DefaultPublicRoutedNet
.
__create_if_not_exists
(
request
)
.
id
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment