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
2c453601
authored
6 years ago
by
Szabolcs Gelencser
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implement network operations base, delete network operation
parent
27b5943c
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
367 additions
and
256 deletions
+367
-256
.idea/workspace.xml
+240
-214
circle/network/forms.py
+7
-0
circle/network/models.py
+1
-1
circle/network/operations.py
+61
-0
circle/network/templates/network/vxlan-edit.html
+9
-1
circle/network/views.py
+46
-40
circle/openstack_api/neutron.py
+3
-0
No files found.
.idea/workspace.xml
View file @
2c453601
...
@@ -2,7 +2,13 @@
...
@@ -2,7 +2,13 @@
<project
version=
"4"
>
<project
version=
"4"
>
<component
name=
"ChangeListManager"
>
<component
name=
"ChangeListManager"
>
<list
default=
"true"
id=
"1fbec8af-5a7c-40f9-b994-83ac07d1ae1d"
name=
"Default"
comment=
""
>
<list
default=
"true"
id=
"1fbec8af-5a7c-40f9-b994-83ac07d1ae1d"
name=
"Default"
comment=
""
>
<change
beforePath=
""
afterPath=
"$PROJECT_DIR$/circle/network/operations.py"
/>
<change
beforePath=
"$PROJECT_DIR$/.idea/workspace.xml"
afterPath=
"$PROJECT_DIR$/.idea/workspace.xml"
/>
<change
beforePath=
"$PROJECT_DIR$/circle/network/forms.py"
afterPath=
"$PROJECT_DIR$/circle/network/forms.py"
/>
<change
beforePath=
"$PROJECT_DIR$/circle/network/forms.py"
afterPath=
"$PROJECT_DIR$/circle/network/forms.py"
/>
<change
beforePath=
"$PROJECT_DIR$/circle/network/models.py"
afterPath=
"$PROJECT_DIR$/circle/network/models.py"
/>
<change
beforePath=
"$PROJECT_DIR$/circle/network/templates/network/vxlan-edit.html"
afterPath=
"$PROJECT_DIR$/circle/network/templates/network/vxlan-edit.html"
/>
<change
beforePath=
"$PROJECT_DIR$/circle/network/views.py"
afterPath=
"$PROJECT_DIR$/circle/network/views.py"
/>
<change
beforePath=
"$PROJECT_DIR$/circle/openstack_api/neutron.py"
afterPath=
"$PROJECT_DIR$/circle/openstack_api/neutron.py"
/>
</list>
</list>
<option
name=
"EXCLUDED_CONVERTED_TO_IGNORED"
value=
"true"
/>
<option
name=
"EXCLUDED_CONVERTED_TO_IGNORED"
value=
"true"
/>
<option
name=
"TRACKING_ENABLED"
value=
"true"
/>
<option
name=
"TRACKING_ENABLED"
value=
"true"
/>
...
@@ -32,21 +38,33 @@
...
@@ -32,21 +38,33 @@
</component>
</component>
<component
name=
"FileEditorManager"
>
<component
name=
"FileEditorManager"
>
<leaf
SIDE_TABS_SIZE_LIMIT_KEY=
"300"
>
<leaf
SIDE_TABS_SIZE_LIMIT_KEY=
"300"
>
<file
leaf-file-name=
"views.py"
pinned=
"false"
current-in-tab=
"false"
>
<file
leaf-file-name=
"operations.py"
pinned=
"false"
current-in-tab=
"true"
>
<entry
file=
"file://$PROJECT_DIR$/circle/network/views.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/network/operations.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"465"
>
<caret
line=
"58"
column=
"63"
lean-forward=
"false"
selection-start-line=
"58"
selection-start-column=
"63"
selection-end-line=
"58"
selection-end-column=
"63"
/>
<folding>
<element
signature=
"e#0#20#0"
expanded=
"true"
/>
</folding>
</state>
</provider>
</entry>
</file>
<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"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
355
"
>
<state
relative-caret-position=
"
202
"
>
<caret
line=
"
983"
column=
"20"
lean-forward=
"false"
selection-start-line=
"983"
selection-start-column=
"20"
selection-end-line=
"983"
selection-end-column=
"20
"
/>
<caret
line=
"
1384"
column=
"4"
lean-forward=
"false"
selection-start-line=
"1384"
selection-start-column=
"4"
selection-end-line=
"1384"
selection-end-column=
"4
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
</file>
</file>
<file
leaf-file-name=
"
forms.py"
pinned=
"false"
current-in-tab=
"tru
e"
>
<file
leaf-file-name=
"
operations.py"
pinned=
"false"
current-in-tab=
"fals
e"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
network/form
s.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
common/operation
s.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
455
"
>
<state
relative-caret-position=
"
52
"
>
<caret
line=
"
383"
column=
"58"
lean-forward=
"true"
selection-start-line=
"383"
selection-start-column=
"58"
selection-end-line=
"383"
selection-end-column=
"58
"
/>
<caret
line=
"
89"
column=
"0"
lean-forward=
"false"
selection-start-line=
"89"
selection-start-column=
"0"
selection-end-line=
"89"
selection-end-column=
"0
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
...
@@ -64,23 +82,6 @@
...
@@ -64,23 +82,6 @@
</component>
</component>
<component
name=
"FindInProjectRecents"
>
<component
name=
"FindInProjectRecents"
>
<findStrings>
<findStrings>
<find>
forms.Choicefi
</find>
<find>
pools
</find>
<find>
Hidden
</find>
<find>
port_id
</find>
<find>
Public IP
</find>
<find>
publicip
</find>
<find>
portadd
</find>
<find>
vmdeta
</find>
<find>
vm_ops
</find>
<find>
vm_
</find>
<find>
detailview
</find>
<find>
vmdetailview
</find>
<find>
deployoperation
</find>
<find>
deployOpera
</find>
<find>
wakeupoper
</find>
<find>
rebootopera
</find>
<find>
destroyopera
</find>
<find>
sleepoper
</find>
<find>
sleepoper
</find>
<find>
removeinterface
</find>
<find>
removeinterface
</find>
<find>
vm_op
</find>
<find>
vm_op
</find>
...
@@ -89,11 +90,28 @@
...
@@ -89,11 +90,28 @@
<find>
remove_in
</find>
<find>
remove_in
</find>
<find>
instance_id
</find>
<find>
instance_id
</find>
<find>
favor
</find>
<find>
favor
</find>
<find>
interface
</find>
<find>
favourite
</find>
<find>
favourite
</find>
<find>
favouritev
</find>
<find>
favouritev
</find>
<find>
v
</find>
<find>
v
</find>
<find>
get_template_names
</find>
<find>
operation-w
</find>
<find>
vxlandele
</find>
<find>
vxlandele
</find>
<find>
operation-wrapper
</find>
<find>
delete
</find>
<find>
network:
</find>
<find>
interface
</find>
<find>
instance
</find>
<find>
host_cls
</find>
<find>
DestroyOperation
</find>
<find>
operations
</find>
<find>
operation-wrapp
</find>
<find>
vxlandelet
</find>
<find>
vm_ops
</find>
<find>
network_op
</find>
<find>
vmdetail
</find>
<find>
vxlandeta
</find>
<find>
vxlandelete
</find>
<find>
vmdeply
</find>
</findStrings>
</findStrings>
<replaceStrings>
<replaceStrings>
<replace>
'ACTIVE'
</replace>
<replace>
'ACTIVE'
</replace>
...
@@ -115,13 +133,6 @@
...
@@ -115,13 +133,6 @@
<component
name=
"IdeDocumentHistory"
>
<component
name=
"IdeDocumentHistory"
>
<option
name=
"CHANGED_PATHS"
>
<option
name=
"CHANGED_PATHS"
>
<list>
<list>
<option
value=
"$PROJECT_DIR$/circle/network/views.py"
/>
<option
value=
"$PROJECT_DIR$/circle/network/templates/network/vxlan-create.html"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/templates/dashboard/vm-detail/resources.html"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/templates/dashboard/vm-detail/home.html"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/templates/dashboard/vm-detail/console.html"
/>
<option
value=
"$PROJECT_DIR$/circle/common/operations.py"
/>
<option
value=
"$PROJECT_DIR$/circle/openstack_api/nova.py"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/templates/dashboard/index.html"
/>
<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/templates/dashboard/index-templates.html"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/templatetags/instance_tags.py"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/templatetags/instance_tags.py"
/>
...
@@ -155,7 +166,6 @@
...
@@ -155,7 +166,6 @@
<option
value=
"$PROJECT_DIR$/circle/vm/admin.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/dashboard/templates/dashboard/vm-plain-image-create.html"
/>
<option
value=
"$PROJECT_DIR$/circle/circle/settings/base.py"
/>
<option
value=
"$PROJECT_DIR$/circle/circle/settings/base.py"
/>
<option
value=
"$PROJECT_DIR$/circle/network/models.py"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/templates/dashboard/vm-detail/_network-public-ip-add.html"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/templates/dashboard/vm-detail/_network-public-ip-add.html"
/>
<option
value=
"$PROJECT_DIR$/circle/vm/operations.py"
/>
<option
value=
"$PROJECT_DIR$/circle/vm/operations.py"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/forms.py"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/forms.py"
/>
...
@@ -165,7 +175,15 @@
...
@@ -165,7 +175,15 @@
<option
value=
"$PROJECT_DIR$/circle/dashboard/templates/dashboard/vm-detail.html"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/templates/dashboard/vm-detail.html"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/templates/dashboard/index-vm.html"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/templates/dashboard/index-vm.html"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/views/index.py"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/views/index.py"
/>
<option
value=
"$PROJECT_DIR$/circle/dashboard/templates/dashboard/confirm/base-delete.html"
/>
<option
value=
"$PROJECT_DIR$/circle/network/__init__.py"
/>
<option
value=
"$PROJECT_DIR$/circle/network/models.py"
/>
<option
value=
"$PROJECT_DIR$/circle/network/urls.py"
/>
<option
value=
"$PROJECT_DIR$/circle/openstack_api/neutron.py"
/>
<option
value=
"$PROJECT_DIR$/circle/network/forms.py"
/>
<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-edit.html"
/>
<option
value=
"$PROJECT_DIR$/circle/network/operations.py"
/>
</list>
</list>
</option>
</option>
</component>
</component>
...
@@ -236,6 +254,12 @@
...
@@ -236,6 +254,12 @@
<item
name=
"cloud"
type=
"462c0819:PsiDirectoryNode"
/>
<item
name=
"cloud"
type=
"462c0819:PsiDirectoryNode"
/>
<item
name=
"circle"
type=
"462c0819:PsiDirectoryNode"
/>
<item
name=
"circle"
type=
"462c0819:PsiDirectoryNode"
/>
</path>
</path>
<path>
<item
name=
"cloud"
type=
"b2602c69:ProjectViewProjectNode"
/>
<item
name=
"cloud"
type=
"462c0819:PsiDirectoryNode"
/>
<item
name=
"circle"
type=
"462c0819:PsiDirectoryNode"
/>
<item
name=
"openstack_api"
type=
"462c0819:PsiDirectoryNode"
/>
</path>
</expand>
</expand>
<select
/>
<select
/>
</subPane>
</subPane>
...
@@ -249,7 +273,7 @@
...
@@ -249,7 +273,7 @@
<property
name=
"settings.editor.selected.configurable"
value=
"watcher.settings"
/>
<property
name=
"settings.editor.selected.configurable"
value=
"watcher.settings"
/>
<property
name=
"NewWatcherDialog.advanced.open"
value=
"true"
/>
<property
name=
"NewWatcherDialog.advanced.open"
value=
"true"
/>
<property
name=
"DefaultHtmlFileTemplate"
value=
"HTML File"
/>
<property
name=
"DefaultHtmlFileTemplate"
value=
"HTML File"
/>
<property
name=
"SearchEverywhereHistoryKey"
value=
"
indexvi	null	null vmdeta	null	null vm-de	FILE	file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/vm-detail.html index-v	FILE	file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/index-vm.html detailvi	null	null network	FILE	file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/vm-detail/network.html nova.	FILE	file:///home/h3yduck/cloud/circle/circle/os_policies/nova_policy.json operation	FILE	file:///home/h3yduck/cloud/circle/vm/operations.py base	FILE	file:///home/h3yduck/cloud/circle/circle/settings/base.py indev	null	null indexview	null	null operatio	FILE	file:///home/h3yduck/cloud/circle/vm/operations.py vxlanc	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 templatedet	null	null instancetemp	null	null instancetem	null	null url	FILE	file:///home/h3yduck/cloud/circle/dashboard/urls.py vmcreate	null	null 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 vxla	null	null urls	FILE	file:///home/h3yduck/cloud/circle/dashboard/urls.py
"
/>
<property
name=
"SearchEverywhereHistoryKey"
value=
"
vmdetail	null	null vmdeta	null	null forms.	FILE	file:///home/h3yduck/cloud/circle/dashboard/forms.py urls.	FILE	file:///home/h3yduck/cloud/circle/dashboard/urls.py nova	FILE	file:///home/h3yduck/cloud/circle/circle/os_policies/nova_policy.json neutron_p	FILE	file:///home/h3yduck/cloud/circle/circle/os_policies/neutron_policy.json operations	FILE	file:///home/h3yduck/cloud/circle/vm/operations.py base-d	FILE	file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/confirm/base-delete.html indexvi	null	null vm-de	FILE	file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/vm-detail.html index-v	FILE	file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/index-vm.html detailvi	null	null network	FILE	file:///home/h3yduck/cloud/circle/dashboard/templates/dashboard/vm-detail/network.html nova.	FILE	file:///home/h3yduck/cloud/circle/circle/os_policies/nova_policy.json operation	FILE	file:///home/h3yduck/cloud/circle/vm/operations.py base	FILE	file:///home/h3yduck/cloud/circle/circle/settings/base.py indev	null	null indexview	null	null operatio	FILE	file:///home/h3yduck/cloud/circle/vm/operations.py vxlanc	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 templatedet	null	null instancetemp	null	null instancetem	null	null url	FILE	file:///home/h3yduck/cloud/circle/dashboard/urls.py vmcreate	null	null opera	FILE	file:///home/h3yduck/cloud/circle/vm/operations.py templat	null	null vmadd	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
"
/>
</component>
</component>
<component
name=
"RecentsManager"
>
<component
name=
"RecentsManager"
>
<key
name=
"CopyFile.RECENT_KEYS"
>
<key
name=
"CopyFile.RECENT_KEYS"
>
...
@@ -406,7 +430,7 @@
...
@@ -406,7 +430,7 @@
<window_info
id=
"Project"
active=
"false"
anchor=
"left"
auto_hide=
"false"
internal_type=
"DOCKED"
type=
"DOCKED"
visible=
"true"
show_stripe_button=
"true"
weight=
"0.20015106"
sideWeight=
"0.5"
order=
"0"
side_tool=
"false"
content_ui=
"combo"
/>
<window_info
id=
"Project"
active=
"false"
anchor=
"left"
auto_hide=
"false"
internal_type=
"DOCKED"
type=
"DOCKED"
visible=
"true"
show_stripe_button=
"true"
weight=
"0.20015106"
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=
"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=
"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.328
75264
"
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.328
0757
"
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=
"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=
"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=
"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"
/>
...
@@ -501,7 +525,7 @@
...
@@ -501,7 +525,7 @@
</properties>
</properties>
</breakpoint>
</breakpoint>
</default-breakpoints>
</default-breakpoints>
<option
name=
"time"
value=
"3
36
"
/>
<option
name=
"time"
value=
"3
47
"
/>
</breakpoint-manager>
</breakpoint-manager>
<watches-manager
/>
<watches-manager
/>
</component>
</component>
...
@@ -569,456 +593,457 @@ certifi.where()</expression-string>
...
@@ -569,456 +593,457 @@ certifi.where()</expression-string>
</expressions>
</expressions>
<expressions
id=
"evaluateExpression"
>
<expressions
id=
"evaluateExpression"
>
<expression>
<expression>
<expression-string>
Favourite.objects.get(instance=vm_id, user=user_id)
</expression-string>
<expression-string>
[p for p in ports if p.network_id == self.instance.id]
</expression-string>
<language-id>
Python
</language-id>
<language-id>
Python
</language-id>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
</expression>
</expression>
<expression>
<expression>
<expression-string>
Favourite.objects.filter(instance=vm_id, user=user_id)
</expression-string>
<expression-string>
[p for p in ports if p.network == self.instance.id]
</expression-string>
<language-id>
Python
</language-id>
<language-id>
Python
</language-id>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
</expression>
</expression>
<expression>
<expression>
<expression-string>
Favourite.objects.filter(instance=vm_id, user=user_id).delete(
)
</expression-string>
<expression-string>
openstack_api.neutron.port_list(request
)
</expression-string>
<language-id>
Python
</language-id>
<language-id>
Python
</language-id>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
</expression>
</expression>
<expression>
<expression>
<expression-string>
self.get_op(
)
</expression-string>
<expression-string>
openstack_api.neutron.port_list(request, network=self.instance.id
)
</expression-string>
<language-id>
Python
</language-id>
<language-id>
Python
</language-id>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
</expression>
</expression>
<expression>
<expression>
<expression-string>
openstack_api.neutron.tenant_floating_ip_list(self.request
)
</expression-string>
<expression-string>
Favourite.objects.get(instance=vm_id, user=user_id
)
</expression-string>
<language-id>
Python
</language-id>
<language-id>
Python
</language-id>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
</expression>
</expression>
<expression>
<expression>
<expression-string>
openstack_api.neutron.tenant_floating_ip_list(request
)
</expression-string>
<expression-string>
Favourite.objects.filter(instance=vm_id, user=user_id
)
</expression-string>
<language-id>
Python
</language-id>
<language-id>
Python
</language-id>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
</expression>
</expression>
<expression>
<expression>
<expression-string>
openstack_api.neutron.tenant_floating_ip_list
()
</expression-string>
<expression-string>
Favourite.objects.filter(instance=vm_id, user=user_id).delete
()
</expression-string>
<language-id>
Python
</language-id>
<language-id>
Python
</language-id>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
</expression>
</expression>
<expression>
<expression>
<expression-string>
openstack_api.neutron.tar
</expression-string>
<expression-string>
self.get_op()
</expression-string>
<language-id>
Python
</language-id>
<language-id>
Python
</language-id>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
</expression>
</expression>
<expression>
<expression>
<expression-string>
openstack_api.neutron.tenant_floating_ip_
allocate(request, pool, request.user.project_id
)
</expression-string>
<expression-string>
openstack_api.neutron.tenant_floating_ip_
list(self.request
)
</expression-string>
<language-id>
Python
</language-id>
<language-id>
Python
</language-id>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
<evaluation-mode>
EXPRESSION
</evaluation-mode>
</expression>
</expression>
</expressions>
</expressions>
</component>
</component>
<component
name=
"editorHistoryManager"
>
<component
name=
"editorHistoryManager"
>
<entry
file=
"file://$USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/django/contrib/auth/__init__.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/compilers.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<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/keystoneauth1/identity/base.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
136
"
>
<state
relative-caret-position=
"
0
"
>
<caret
line=
"
133"
column=
"0"
lean-forward=
"false"
selection-start-line=
"133"
selection-start-column=
"0"
selection-end-line=
"133
"
selection-end-column=
"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>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$
PROJECT_DIR$/circle/openstack_auth/plugin/base
.py"
>
<entry
file=
"file://$
USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/urllib3/connectionpool
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"102"
>
<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"
/>
<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>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
openstack_auth/backend
.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
common/management/commands/watch
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"1887"
>
<state
relative-caret-position=
"204"
>
<caret
line=
"122"
column=
"0"
lean-forward=
"false"
selection-start-line=
"122"
selection-start-column=
"0"
selection-end-line=
"122"
selection-end-column=
"0"
/>
<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>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$
USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/keystoneauth1/identity/v3/base
.py"
>
<entry
file=
"file://$
PROJECT_DIR$/circle/common/management/commands/compileless
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
2839
"
>
<state
relative-caret-position=
"
0
"
>
<caret
line=
"
175"
column=
"15"
lean-forward=
"false"
selection-start-line=
"175"
selection-start-column=
"15"
selection-end-line=
"176"
selection-end-column=
"7
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>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
openstack_auth/views
.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
vm/models/activity
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"2040"
>
<state
relative-caret-position=
"516"
>
<caret
line=
"148"
column=
"36"
lean-forward=
"false"
selection-start-line=
"148"
selection-start-column=
"36"
selection-end-line=
"148"
selection-end-column=
"36"
/>
<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>
<folding
/>
<element
signature=
"e#545#559#0"
expanded=
"false"
/>
</folding>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
dashboard/validators
.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
vm/admin
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
108
"
>
<state
relative-caret-position=
"
482
"
>
<caret
line=
"
16"
column=
"0"
lean-forward=
"false"
selection-start-line=
"16"
selection-start-column=
"0"
selection-end-line=
"16
"
selection-end-column=
"0"
/>
<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>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/
circle/circle/urls.py
"
>
<entry
file=
"file://$PROJECT_DIR$/
requirements/circlestack.txt
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"306"
>
<state
relative-caret-position=
"0"
>
<caret
line=
"51"
column=
"25"
lean-forward=
"false"
selection-start-line=
"51"
selection-start-column=
"25"
selection-end-line=
"51"
selection-end-column=
"25"
/>
<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>
<element
signature=
"e#732#773#0"
expanded=
"false"
/>
</folding>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
vm/models/node
.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
circle/settings/local
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
94
"
>
<state
relative-caret-position=
"
-600
"
>
<caret
line=
"
24"
column=
"0"
lean-forward=
"false"
selection-start-line=
"24"
selection-start-column=
"0"
selection-end-line=
"24
"
selection-end-column=
"0"
/>
<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
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
vm/models/instance.py
"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
dashboard/templates/dashboard/vm-plain-image-create.html
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
94
"
>
<state
relative-caret-position=
"
221
"
>
<caret
line=
"
53"
column=
"0"
lean-forward=
"false"
selection-start-line=
"53"
selection-start-column=
"0"
selection-end-line=
"5
3"
selection-end-column=
"0"
/>
<caret
line=
"
13"
column=
"0"
lean-forward=
"false"
selection-start-line=
"13"
selection-start-column=
"0"
selection-end-line=
"1
3"
selection-end-column=
"0"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$
PROJECT_DIR$/circle/dashboard/table
s.py"
>
<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"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
163
"
>
<state
relative-caret-position=
"
250
"
>
<caret
line=
"
106"
column=
"22"
lean-forward=
"true"
selection-start-line=
"106"
selection-start-column=
"22"
selection-end-line=
"106"
selection-end-column=
"22
"
/>
<caret
line=
"
734"
column=
"37"
lean-forward=
"false"
selection-start-line=
"734"
selection-start-column=
"37"
selection-end-line=
"734"
selection-end-column=
"37
"
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$
PROJECT_DIR$/circle/vm/models/__init__
.py"
>
<entry
file=
"file://$
USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/django/views/generic/detail
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
34
"
>
<state
relative-caret-position=
"
156
"
>
<caret
line=
"
2"
column=
"0"
lean-forward=
"false"
selection-start-line=
"2"
selection-start-column=
"0"
selection-end-line=
"2
"
selection-end-column=
"0"
/>
<caret
line=
"
115"
column=
"0"
lean-forward=
"false"
selection-start-line=
"115"
selection-start-column=
"0"
selection-end-line=
"115
"
selection-end-column=
"0"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/
compilers.py
"
>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/
templates/dashboard/vm-detail/console.html
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"0"
>
<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"
/>
<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>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$
USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/urllib3/connectionpool.py
"
>
<entry
file=
"file://$
PROJECT_DIR$/circle/dashboard/templates/dashboard/vm-detail/_network-port-add.html
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"102"
>
<state
relative-caret-position=
"238"
>
<caret
line=
"857"
column=
"0"
lean-forward=
"false"
selection-start-line=
"857"
selection-start-column=
"0"
selection-end-line=
"857"
selection-end-column=
"0"
/>
<caret
line=
"14"
column=
"55"
lean-forward=
"false"
selection-start-line=
"14"
selection-start-column=
"55"
selection-end-line=
"14"
selection-end-column=
"55"
/>
<folding>
<element
signature=
"n#style#0;n#select#0;n#div#0;n#form#0;n#div#0;n#!!top"
expanded=
"false"
/>
</folding>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
common/management/commands/watch
.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
openstack_api/keystone
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"204"
>
<state
relative-caret-position=
"289"
>
<caret
line=
"32"
column=
"0"
lean-forward=
"true"
selection-start-line=
"32"
selection-start-column=
"0"
selection-end-line=
"32"
selection-end-column=
"0"
/>
<caret
line=
"634"
column=
"31"
lean-forward=
"false"
selection-start-line=
"634"
selection-start-column=
"19"
selection-end-line=
"634"
selection-end-column=
"31"
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
common/management/commands/compileless.py
"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
dashboard/templates/dashboard/vm-detail/_network-public-ip-add.html
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"0"
>
<state
relative-caret-position=
"34"
>
<caret
line=
"0"
column=
"0"
lean-forward=
"false"
selection-start-line=
"0"
selection-start-column=
"0"
selection-end-line=
"0"
selection-end-column=
"0"
/>
<caret
line=
"2"
column=
"65"
lean-forward=
"true"
selection-start-line=
"2"
selection-start-column=
"46"
selection-end-line=
"2"
selection-end-column=
"65"
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
request/models
.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
openstack_api/base
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
-41
6"
>
<state
relative-caret-position=
"
15
6"
>
<caret
line=
"
39"
column=
"0"
lean-forward=
"false"
selection-start-line=
"39"
selection-start-column=
"0"
selection-end-line=
"39
"
selection-end-column=
"0"
/>
<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
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
vm/models/activity
.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
openstack_api/utils/memoized
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
516
"
>
<state
relative-caret-position=
"
148
"
>
<caret
line=
"1
96"
column=
"31"
lean-forward=
"false"
selection-start-line=
"196"
selection-start-column=
"31"
selection-end-line=
"196"
selection-end-column=
"31
"
/>
<caret
line=
"1
04"
column=
"0"
lean-forward=
"false"
selection-start-line=
"104"
selection-start-column=
"0"
selection-end-line=
"104"
selection-end-column=
"0
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$
PROJECT_DIR$/circle/vm/admin
.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"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"482"
>
<state
relative-caret-position=
"156"
>
<caret
line=
"35"
column=
"0"
lean-forward=
"false"
selection-start-line=
"35"
selection-start-column=
"0"
selection-end-line=
"35"
selection-end-column=
"0"
/>
<caret
line=
"87"
column=
"0"
lean-forward=
"false"
selection-start-line=
"87"
selection-start-column=
"0"
selection-end-line=
"87"
selection-end-column=
"0"
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/
requirements/circlestack.txt
"
>
<entry
file=
"file://$PROJECT_DIR$/
circle/dashboard/views/util.py
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"0"
>
<state
relative-caret-position=
"148"
>
<caret
line=
"11"
column=
"14"
lean-forward=
"false"
selection-start-line=
"11"
selection-start-column=
"14"
selection-end-line=
"11"
selection-end-column=
"14"
/>
<caret
line=
"296"
column=
"19"
lean-forward=
"false"
selection-start-line=
"296"
selection-start-column=
"19"
selection-end-line=
"296"
selection-end-column=
"32"
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/circle/settings/
local
.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/circle/settings/
base
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
-600
"
>
<state
relative-caret-position=
"
482
"
>
<caret
line=
"
38"
column=
"0"
lean-forward=
"true"
selection-start-line=
"38"
selection-start-column=
"0"
selection-end-line=
"38"
selection-end-column=
"0
"
/>
<caret
line=
"
592"
column=
"17"
lean-forward=
"false"
selection-start-line=
"592"
selection-start-column=
"17"
selection-end-line=
"592"
selection-end-column=
"17
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://
$PROJECT_DIR$/circle/dashboard/templates/dashboard/vm-plain-image-create.html
"
>
<entry
file=
"file://
/usr/lib/python2.7/SocketServer.py
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
221
"
>
<state
relative-caret-position=
"
306
"
>
<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"
/>
<caret
line=
"1
49"
column=
"0"
lean-forward=
"false"
selection-start-line=
"149"
selection-start-column=
"0"
selection-end-line=
"149
"
selection-end-column=
"0"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$
USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/neutronclient/v2_0/client
.py"
>
<entry
file=
"file://$
PROJECT_DIR$/circle/dashboard/models
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
306
"
>
<state
relative-caret-position=
"
299
"
>
<caret
line=
"
886"
column=
"8"
lean-forward=
"false"
selection-start-line=
"886"
selection-start-column=
"8"
selection-end-line=
"886"
selection-end-column=
"8
"
/>
<caret
line=
"
91"
column=
"17"
lean-forward=
"false"
selection-start-line=
"91"
selection-start-column=
"17"
selection-end-line=
"91"
selection-end-column=
"17
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$
USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/novaclient/v2/servers.py
"
>
<entry
file=
"file://$
PROJECT_DIR$/circle/dashboard/templates/dashboard/vm-detail.html
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"250"
>
<state
relative-caret-position=
"214"
>
<caret
line=
"734"
column=
"37"
lean-forward=
"false"
selection-start-line=
"734"
selection-start-column=
"37"
selection-end-line=
"734"
selection-end-column=
"37"
/>
<caret
line=
"75"
column=
"96"
lean-forward=
"false"
selection-start-line=
"75"
selection-start-column=
"96"
selection-end-line=
"75"
selection-end-column=
"96"
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
network/models
.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
dashboard/views/index
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
556
"
>
<state
relative-caret-position=
"
129
"
>
<caret
line=
"
100"
column=
"60"
lean-forward=
"false"
selection-start-line=
"100"
selection-start-column=
"60"
selection-end-line=
"100"
selection-end-column=
"60
"
/>
<caret
line=
"
53"
column=
"46"
lean-forward=
"false"
selection-start-line=
"53"
selection-start-column=
"46"
selection-end-line=
"53"
selection-end-column=
"46
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$
USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/django/views/generic/detail.py
"
>
<entry
file=
"file://$
PROJECT_DIR$/circle/dashboard/templates/dashboard/index-vm.html
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"1
56
"
>
<state
relative-caret-position=
"1
80
"
>
<caret
line=
"
115"
column=
"0"
lean-forward=
"false"
selection-start-line=
"115"
selection-start-column=
"0"
selection-end-line=
"115"
selection-end-column=
"0
"
/>
<caret
line=
"
39"
column=
"28"
lean-forward=
"false"
selection-start-line=
"39"
selection-start-column=
"28"
selection-end-line=
"39"
selection-end-column=
"28
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/templates/dashboard/
vm-detail/consol
e.html"
>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/templates/dashboard/
confirm/base-delet
e.html"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
0
"
>
<state
relative-caret-position=
"
408
"
>
<caret
line=
"
0"
column=
"0"
lean-forward=
"false"
selection-start-line=
"0"
selection-start-column=
"0"
selection-end-line=
"0"
selection-end-column=
"0
"
/>
<caret
line=
"
24"
column=
"51"
lean-forward=
"false"
selection-start-line=
"24"
selection-start-column=
"51"
selection-end-line=
"24"
selection-end-column=
"51
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/templates/dashboard/
vm-detail/_network-port-add
.html"
>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/templates/dashboard/
_disk-list-element
.html"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"238"
>
<state
relative-caret-position=
"136"
>
<caret
line=
"14"
column=
"55"
lean-forward=
"false"
selection-start-line=
"14"
selection-start-column=
"55"
selection-end-line=
"14"
selection-end-column=
"55"
/>
<caret
line=
"8"
column=
"25"
lean-forward=
"true"
selection-start-line=
"8"
selection-start-column=
"25"
selection-end-line=
"8"
selection-end-column=
"25"
/>
<folding>
<folding
/>
<element
signature=
"n#style#0;n#select#0;n#div#0;n#form#0;n#div#0;n#!!top"
expanded=
"false"
/>
</folding>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
openstack_api/keystone.py
"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
dashboard/templates/base.html
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
289
"
>
<state
relative-caret-position=
"
91
"
>
<caret
line=
"
634"
column=
"31"
lean-forward=
"false"
selection-start-line=
"634"
selection-start-column=
"19"
selection-end-line=
"634"
selection-end-column=
"31
"
/>
<caret
line=
"
76"
column=
"0"
lean-forward=
"false"
selection-start-line=
"76"
selection-start-column=
"0"
selection-end-line=
"76"
selection-end-column=
"0
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/templates/dashboard/
vm-detail/_network-public-ip-add
.html"
>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/templates/dashboard/
base
.html"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
34
"
>
<state
relative-caret-position=
"
0
"
>
<caret
line=
"
2"
column=
"65"
lean-forward=
"true"
selection-start-line=
"2"
selection-start-column=
"46"
selection-end-line=
"2"
selection-end-column=
"65
"
/>
<caret
line=
"
0"
column=
"18"
lean-forward=
"false"
selection-start-line=
"0"
selection-start-column=
"18"
selection-end-line=
"0"
selection-end-column=
"18
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$
PROJECT_DIR$/circle/openstack_api/base
.py"
>
<entry
file=
"file://$
USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/django/views/generic/edit
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
156
"
>
<state
relative-caret-position=
"
404
"
>
<caret
line=
"
156"
column=
"0"
lean-forward=
"false"
selection-start-line=
"156"
selection-start-column=
"0"
selection-end-line=
"156"
selection-end-column=
"0
"
/>
<caret
line=
"
286"
column=
"6"
lean-forward=
"false"
selection-start-line=
"286"
selection-start-column=
"6"
selection-end-line=
"286"
selection-end-column=
"6
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
openstack_api/neutron.py
"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
circle/os_policies/neutron_policy.json
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"1
5
6"
>
<state
relative-caret-position=
"1
7
6"
>
<caret
line=
"
619"
column=
"0"
lean-forward=
"false"
selection-start-line=
"619"
selection-start-column=
"0"
selection-end-line=
"619"
selection-end-column=
"0
"
/>
<caret
line=
"
75"
column=
"19"
lean-forward=
"true"
selection-start-line=
"75"
selection-start-column=
"19"
selection-end-line=
"75"
selection-end-column=
"19
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
openstack_api/utils/memoized.py
"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
circle/os_policies/nova_policy.json
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
148
"
>
<state
relative-caret-position=
"
214
"
>
<caret
line=
"
104"
column=
"0"
lean-forward=
"false"
selection-start-line=
"104"
selection-start-column=
"0"
selection-end-line=
"104"
selection-end-column=
"0
"
/>
<caret
line=
"
51"
column=
"5"
lean-forward=
"true"
selection-start-line=
"51"
selection-start-column=
"5"
selection-end-line=
"51"
selection-end-column=
"29
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$
USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/django/views/generic/base
.py"
>
<entry
file=
"file://$
PROJECT_DIR$/circle/vm/__init__
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
156
"
>
<state
relative-caret-position=
"
0
"
>
<caret
line=
"
87"
column=
"0"
lean-forward=
"false"
selection-start-line=
"87"
selection-start-column=
"0"
selection-end-line=
"87
"
selection-end-column=
"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
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
dashboard/views/util
.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
vm/operations
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
148
"
>
<state
relative-caret-position=
"
306
"
>
<caret
line=
"
296"
column=
"19"
lean-forward=
"false"
selection-start-line=
"296"
selection-start-column=
"19"
selection-end-line=
"296"
selection-end-column=
"32
"
/>
<caret
line=
"
18"
column=
"0"
lean-forward=
"false"
selection-start-line=
"18"
selection-start-column=
"0"
selection-end-line=
"18"
selection-end-column=
"0
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$
PROJECT_DIR$/circle/common/operations
.py"
>
<entry
file=
"file://$
USER_HOME$/.virtualenvs/cloud/local/lib/python2.7/site-packages/bpython/translations/__init__
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
148
"
>
<state
relative-caret-position=
"
52
"
>
<caret
line=
"
69"
column=
"0"
lean-forward=
"false"
selection-start-line=
"69"
selection-start-column=
"0"
selection-end-line=
"69
"
selection-end-column=
"0"
/>
<caret
line=
"
18"
column=
"0"
lean-forward=
"false"
selection-start-line=
"18"
selection-start-column=
"0"
selection-end-line=
"18
"
selection-end-column=
"0"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
circle/settings/base
.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
network/urls
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
482
"
>
<state
relative-caret-position=
"
346
"
>
<caret
line=
"
592"
column=
"17"
lean-forward=
"false"
selection-start-line=
"592"
selection-start-column=
"17"
selection-end-line=
"592"
selection-end-column=
"17
"
/>
<caret
line=
"
143"
column=
"60"
lean-forward=
"false"
selection-start-line=
"143"
selection-start-column=
"60"
selection-end-line=
"143"
selection-end-column=
"60
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://
/usr/lib/python2.7/SocketServer
.py"
>
<entry
file=
"file://
$PROJECT_DIR$/circle/request/models
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
306
"
>
<state
relative-caret-position=
"
44
"
>
<caret
line=
"
149"
column=
"0"
lean-forward=
"false"
selection-start-line=
"149"
selection-start-column=
"0"
selection-end-line=
"14
9"
selection-end-column=
"0"
/>
<caret
line=
"
39"
column=
"0"
lean-forward=
"false"
selection-start-line=
"39"
selection-start-column=
"0"
selection-end-line=
"3
9"
selection-end-column=
"0"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
dashboard/templates/dashboard/vm-detail/network.html
"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
network/models.py
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"248"
>
<state
relative-caret-position=
"237"
>
<caret
line=
"27"
column=
"37"
lean-forward=
"false"
selection-start-line=
"27"
selection-start-column=
"37"
selection-end-line=
"27"
selection-end-column=
"37"
/>
<caret
line=
"29"
column=
"32"
lean-forward=
"true"
selection-start-line=
"29"
selection-start-column=
"32"
selection-end-line=
"29"
selection-end-column=
"32"
/>
<folding>
<folding
/>
<marker
date=
"1524213794390"
expanded=
"false"
signature=
"3495:3513"
ph=
"..."
/>
</folding>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/
form
s.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/
url
s.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"78"
>
<state
relative-caret-position=
"
2
78"
>
<caret
line=
"
864"
column=
"40"
lean-forward=
"false"
selection-start-line=
"864"
selection-start-column=
"40"
selection-end-line=
"864"
selection-end-column=
"40
"
/>
<caret
line=
"
228"
column=
"18"
lean-forward=
"false"
selection-start-line=
"228"
selection-start-column=
"18"
selection-end-line=
"228"
selection-end-column=
"18
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
vm/operations
.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
network/__init__
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
159
"
>
<state
relative-caret-position=
"
0
"
>
<caret
line=
"
409"
column=
"36"
lean-forward=
"false"
selection-start-line=
"409"
selection-start-column=
"36"
selection-end-line=
"409"
selection-end-column=
"36
"
/>
<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
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
openstack_api/nova
.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
dashboard/forms
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
202
"
>
<state
relative-caret-position=
"
194
"
>
<caret
line=
"
1008"
column=
"4"
lean-forward=
"false"
selection-start-line=
"1008"
selection-start-column=
"4"
selection-end-line=
"1008"
selection-end-column=
"4
"
/>
<caret
line=
"
926"
column=
"6"
lean-forward=
"false"
selection-start-line=
"926"
selection-start-column=
"6"
selection-end-line=
"926"
selection-end-column=
"6
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
circle/os_policies/nova_policy.json
"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
dashboard/templates/dashboard/vm-detail/network.html
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
185
"
>
<state
relative-caret-position=
"
219
"
>
<caret
line=
"
51"
column=
"4"
lean-forward=
"false"
selection-start-line=
"51"
selection-start-column=
"4"
selection-end-line=
"51"
selection-end-column=
"30
"
/>
<caret
line=
"
27"
column=
"34"
lean-forward=
"false"
selection-start-line=
"27"
selection-start-column=
"34"
selection-end-line=
"27"
selection-end-column=
"34
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
dashboard/urls
.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
openstack_api/nova
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
288
"
>
<state
relative-caret-position=
"
423
"
>
<caret
line=
"
228"
column=
"19"
lean-forward=
"false"
selection-start-line=
"228"
selection-start-column=
"19"
selection-end-line=
"228"
selection-end-column=
"19
"
/>
<caret
line=
"
160"
column=
"0"
lean-forward=
"true"
selection-start-line=
"160"
selection-start-column=
"0"
selection-end-line=
"160"
selection-end-column=
"0
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
dashboard/model
s.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
network/form
s.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
299
"
>
<state
relative-caret-position=
"
380
"
>
<caret
line=
"
91"
column=
"17"
lean-forward=
"false"
selection-start-line=
"91"
selection-start-column=
"17"
selection-end-line=
"91"
selection-end-column=
"17
"
/>
<caret
line=
"
387"
column=
"0"
lean-forward=
"false"
selection-start-line=
"387"
selection-start-column=
"0"
selection-end-line=
"387"
selection-end-column=
"0
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/
templates/dashboard/vm-detail.html
"
>
<entry
file=
"file://$PROJECT_DIR$/circle/dashboard/
views/vm.py
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"2
14
"
>
<state
relative-caret-position=
"2
82
"
>
<caret
line=
"7
5"
column=
"96"
lean-forward=
"false"
selection-start-line=
"75"
selection-start-column=
"96"
selection-end-line=
"75"
selection-end-column=
"96
"
/>
<caret
line=
"7
73"
column=
"4"
lean-forward=
"true"
selection-start-line=
"772"
selection-start-column=
"4"
selection-end-line=
"773"
selection-end-column=
"4
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
dashboard/views/vm.py
"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
network/templates/network/vxlan-edit.html
"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
-3
08"
>
<state
relative-caret-position=
"
1
08"
>
<caret
line=
"
94"
column=
"6"
lean-forward=
"false"
selection-start-line=
"94"
selection-start-column=
"6"
selection-end-line=
"94"
selection-end-column=
"6
"
/>
<caret
line=
"
32"
column=
"21"
lean-forward=
"true"
selection-start-line=
"32"
selection-start-column=
"21"
selection-end-line=
"32"
selection-end-column=
"21
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
dashboard/views/index
.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
network/views
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
129
"
>
<state
relative-caret-position=
"
265
"
>
<caret
line=
"
53"
column=
"46"
lean-forward=
"false"
selection-start-line=
"53"
selection-start-column=
"46"
selection-end-line=
"53"
selection-end-column=
"46
"
/>
<caret
line=
"
95"
column=
"20"
lean-forward=
"false"
selection-start-line=
"95"
selection-start-column=
"20"
selection-end-line=
"95"
selection-end-column=
"20
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$
PROJECT_DIR$/circle/dashboard/templates/dashboard/index-vm.html
"
>
<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"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
180
"
>
<state
relative-caret-position=
"
66
"
>
<caret
line=
"
39"
column=
"28"
lean-forward=
"false"
selection-start-line=
"39"
selection-start-column=
"28"
selection-end-line=
"39"
selection-end-column=
"28
"
/>
<caret
line=
"
784"
column=
"39"
lean-forward=
"false"
selection-start-line=
"784"
selection-start-column=
"39"
selection-end-line=
"784"
selection-end-column=
"39
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
network/views
.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
openstack_api/neutron
.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
355
"
>
<state
relative-caret-position=
"
202
"
>
<caret
line=
"
983"
column=
"20"
lean-forward=
"false"
selection-start-line=
"983"
selection-start-column=
"20"
selection-end-line=
"983"
selection-end-column=
"20
"
/>
<caret
line=
"
1384"
column=
"4"
lean-forward=
"false"
selection-start-line=
"1384"
selection-start-column=
"4"
selection-end-line=
"1384"
selection-end-column=
"4
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/
network/form
s.py"
>
<entry
file=
"file://$PROJECT_DIR$/circle/
common/operation
s.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"
455
"
>
<state
relative-caret-position=
"
52
"
>
<caret
line=
"
383"
column=
"58"
lean-forward=
"true"
selection-start-line=
"383"
selection-start-column=
"58"
selection-end-line=
"383"
selection-end-column=
"58
"
/>
<caret
line=
"
89"
column=
"0"
lean-forward=
"false"
selection-start-line=
"89"
selection-start-column=
"0"
selection-end-line=
"89"
selection-end-column=
"0
"
/>
<folding
/>
<folding
/>
</state>
</state>
</provider>
</provider>
</entry>
</entry>
<entry
file=
"file://$PROJECT_DIR$/circle/network/operations.py"
>
<provider
selected=
"true"
editor-type-id=
"text-editor"
>
<state
relative-caret-position=
"465"
>
<caret
line=
"58"
column=
"63"
lean-forward=
"false"
selection-start-line=
"58"
selection-start-column=
"63"
selection-end-line=
"58"
selection-end-column=
"63"
/>
<folding>
<element
signature=
"e#0#20#0"
expanded=
"true"
/>
</folding>
</state>
</provider>
</entry>
</component>
</component>
</project>
</project>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
circle/network/forms.py
View file @
2c453601
...
@@ -384,3 +384,10 @@ class VxlanForm(forms.Form):
...
@@ -384,3 +384,10 @@ class VxlanForm(forms.Form):
isAdvancedConfig
=
forms
.
BooleanField
(
required
=
False
,
label
=
"Advanced"
)
isAdvancedConfig
=
forms
.
BooleanField
(
required
=
False
,
label
=
"Advanced"
)
#TODO: validate
#TODO: validate
class
NetworkDeleteForm
(
forms
.
Form
):
@property
def
helper
(
self
):
helper
=
super
(
NetworkDeleteForm
,
self
)
.
helper
helper
.
layout
=
Layout
()
return
helper
This diff is collapsed.
Click to expand it.
circle/network/models.py
View file @
2c453601
...
@@ -30,7 +30,7 @@ from django.contrib.contenttypes.models import ContentType
...
@@ -30,7 +30,7 @@ from django.contrib.contenttypes.models import ContentType
from
firewall.models
import
Vlan
from
firewall.models
import
Vlan
from
firewall.fields
import
val_alfanum
from
firewall.fields
import
val_alfanum
from
openstack_auth.user
import
User
from
openstack_auth.user
import
User
from
network
import
operations
class
EditorElement
(
models
.
Model
):
class
EditorElement
(
models
.
Model
):
x
=
models
.
IntegerField
()
x
=
models
.
IntegerField
()
...
...
This diff is collapsed.
Click to expand it.
circle/network/operations.py
0 → 100644
View file @
2c453601
import
openstack_api
from
common.models
import
humanize_exception
from
common.operations
import
Operation
,
register_operation
from
django.core.exceptions
import
PermissionDenied
from
django.utils.translation
import
ugettext_noop
from
openstack_api.neutron
import
Network
from
django.utils.translation
import
ugettext_lazy
as
_
class
NetworkOperation
(
Operation
):
host_cls
=
Network
os_policy_actions
=
None
def
__init__
(
self
,
instance
):
super
(
NetworkOperation
,
self
)
.
__init__
(
subject
=
instance
)
self
.
instance
=
instance
def
check_precond
(
self
):
pass
def
check_auth
(
self
,
user
,
request
):
if
self
.
os_policy_actions
:
from
django.utils.module_loading
import
import_string
check
=
import_string
(
"openstack_auth.policy.check"
)
has_rights
=
check
(
self
.
os_policy_actions
,
request
,
{
'project_id'
:
self
.
instance
.
tenant_id
})
if
not
has_rights
:
raise
humanize_exception
(
ugettext_noop
(
"operation not permitted"
),
PermissionDenied
())
super
(
NetworkOperation
,
self
)
.
check_auth
(
user
=
user
)
def
is_preferred
(
self
):
"""If this is the recommended op in the current state of the instance.
"""
return
False
@register_operation
class
DeleteNetworkOperation
(
NetworkOperation
):
id
=
'delete_network'
name
=
_
(
"delete network"
)
description
=
_
(
"Delete network and all associated resources."
)
os_policy_actions
=
(
(
"network"
,
"network:delete"
),
)
#TODO: remove attached interfaces, delete ports and assigned floating ips
def
_operation
(
self
,
request
):
ports
=
openstack_api
.
neutron
.
port_list
(
request
,
network
=
self
.
instance
.
id
)
network_ports
=
[
p
for
p
in
ports
if
p
.
network_id
==
self
.
instance
.
id
]
for
p
in
network_ports
:
if
p
.
device_owner
==
"network:router_interface"
:
openstack_api
.
neutron
.
router_remove_interface
(
request
,
p
.
device_id
,
port_id
=
p
.
id
)
if
p
.
device_owner
==
"compute:nova"
:
openstack_api
.
neutron
.
port_delete
(
request
,
p
.
id
)
# openstack_api.neutron.port_delete(request, p.id)
openstack_api
.
neutron
.
network_delete
(
request
,
self
.
instance
.
id
)
This diff is collapsed.
Click to expand it.
circle/network/templates/network/vxlan-edit.html
View file @
2c453601
...
@@ -28,7 +28,14 @@
...
@@ -28,7 +28,14 @@
<div
class=
"page-header"
>
<div
class=
"page-header"
>
<a
href=
"{% url "
network
.
vxlan-delete
"
pk=
network.id
%}"
class=
"btn btn-danger pull-right"
><i
class=
"fa fa-times-circle"
></i>
{% trans "Delete this network" %}
</a>
{% with op=op.delete_network %}{% if op %}
<span
class=
"operation-wrapper pull-right"
>
<a
href=
"{% url "
network
.
vxlan-delete
"
pk=
network.id
%}"
class=
"btn btn-{{ op.effect }} operation"
{%
if
op
.
disabled
%}
disabled
{%
endif
%}
>
{% trans "Delete this network" %}
</a>
</span>
{% endif %}{% endwith %}
<h2>
{{ form.name.value }}
</h2>
<h2>
{{ form.name.value }}
</h2>
</div>
</div>
...
@@ -41,6 +48,7 @@
...
@@ -41,6 +48,7 @@
</div>
</div>
<div
class=
"col-sm-6"
>
<div
class=
"col-sm-6"
>
<h3
class=
"pull-right"
><small>
{% trans "connected virtual machines" %}
</small></h3>
<h3
class=
"pull-right"
><small>
{% trans "connected virtual machines" %}
</small></h3>
</div>
</div>
</div>
</div>
{% endblock %}
{% endblock %}
This diff is collapsed.
Click to expand it.
circle/network/views.py
View file @
2c453601
...
@@ -24,7 +24,7 @@ from operator import itemgetter
...
@@ -24,7 +24,7 @@ from operator import itemgetter
import
openstack_api
import
openstack_api
from
braces.views
import
LoginRequiredMixin
,
SuperuserRequiredMixin
from
braces.views
import
LoginRequiredMixin
,
SuperuserRequiredMixin
from
dashboard.forms
import
AclUserOrGroupAddForm
from
dashboard.forms
import
AclUserOrGroupAddForm
from
dashboard.views
import
AclUpdateView
,
FormView
from
dashboard.views
import
AclUpdateView
,
FormView
,
OperationView
,
PermissionDenied
from
django.contrib
import
messages
from
django.contrib
import
messages
from
django.contrib.messages.views
import
SuccessMessageMixin
from
django.contrib.messages.views
import
SuccessMessageMixin
from
django.core.exceptions
import
(
from
django.core.exceptions
import
(
...
@@ -47,12 +47,13 @@ from firewall.models import (
...
@@ -47,12 +47,13 @@ from firewall.models import (
)
)
from
netaddr
import
IPNetwork
from
netaddr
import
IPNetwork
from
network.models
import
Vxlan
,
EditorElement
,
SubnetPool
from
network.models
import
Vxlan
,
EditorElement
,
SubnetPool
from
openstack_api.neutron
import
Network
from
openstack_api.utils.lazy_encoder
import
LazyTranslationEncoder
from
openstack_api.utils.lazy_encoder
import
LazyTranslationEncoder
from
vm.models
import
Interface
,
Instance
from
vm.models
import
Interface
,
Instance
from
.forms
import
(
from
.forms
import
(
HostForm
,
VlanForm
,
DomainForm
,
GroupForm
,
RecordForm
,
BlacklistItemForm
,
HostForm
,
VlanForm
,
DomainForm
,
GroupForm
,
RecordForm
,
BlacklistItemForm
,
RuleForm
,
VlanGroupForm
,
SwitchPortForm
,
FirewallForm
,
VxlanForm
)
RuleForm
,
VlanGroupForm
,
SwitchPortForm
,
FirewallForm
,
VxlanForm
,
NetworkDeleteForm
)
from
.tables
import
(
from
.tables
import
(
HostTable
,
VlanTable
,
SmallHostTable
,
DomainTable
,
GroupTable
,
HostTable
,
VlanTable
,
SmallHostTable
,
DomainTable
,
GroupTable
,
RecordTable
,
BlacklistItemTable
,
RuleTable
,
VlanGroupTable
,
RecordTable
,
BlacklistItemTable
,
RuleTable
,
VlanGroupTable
,
...
@@ -89,6 +90,47 @@ class MagicMixin(object):
...
@@ -89,6 +90,47 @@ class MagicMixin(object):
else
:
else
:
return
super
(
MagicMixin
,
self
)
.
get
(
*
args
,
**
kwargs
)
return
super
(
MagicMixin
,
self
)
.
get
(
*
args
,
**
kwargs
)
class
VxlanDelete
(
LoginRequiredMixin
,
OperationView
):
#TODO: check user
model
=
Network
op
=
'delete_network'
effect
=
'danger'
# form_class = NetworkDeleteForm
def
get_success_url
(
self
):
next
=
self
.
request
.
POST
.
get
(
'next'
)
if
next
:
return
next
else
:
return
reverse_lazy
(
'network.vxlan-list'
)
def
get_object
(
self
,
queryset
=
None
):
return
openstack_api
.
neutron
.
network_get
(
self
.
request
,
self
.
kwargs
[
'pk'
],
expand_subnet
=
True
)
def
delete
(
self
,
request
,
*
args
,
**
kwargs
):
response
=
super
(
VxlanDelete
,
self
)
.
delete
(
request
,
*
args
,
**
kwargs
)
messages
.
success
(
request
,
_
(
u"Vxlan successfully deleted."
))
return
response
network_ops
=
OrderedDict
([
(
'network_delete'
,
VxlanDelete
),
])
def
get_operations
(
instance
,
user
,
request
):
ops
=
[]
for
k
,
v
in
network_ops
.
iteritems
():
try
:
op
=
v
.
get_op_by_object
(
instance
)
op
.
check_auth
(
user
,
request
)
op
.
check_precond
()
except
PermissionDenied
as
e
:
logger
.
debug
(
'Not showing operation
%
s for
%
s:
%
s'
,
k
,
instance
,
unicode
(
e
))
except
Exception
as
e
:
ops
.
append
(
v
.
bind_to_object
(
instance
,
disabled
=
True
))
else
:
ops
.
append
(
v
.
bind_to_object
(
instance
))
return
ops
class
IndexView
(
LoginRequiredMixin
,
SuperuserRequiredMixin
,
TemplateView
):
class
IndexView
(
LoginRequiredMixin
,
SuperuserRequiredMixin
,
TemplateView
):
template_name
=
"network/index.html"
template_name
=
"network/index.html"
...
@@ -978,6 +1020,7 @@ class VxlanDetail(LoginRequiredMixin, SuccessMessageMixin, DetailView): #TODO: c
...
@@ -978,6 +1020,7 @@ class VxlanDetail(LoginRequiredMixin, SuccessMessageMixin, DetailView): #TODO: c
def
get_context_data
(
self
,
**
kwargs
):
def
get_context_data
(
self
,
**
kwargs
):
context
=
super
(
VxlanDetail
,
self
)
.
get_context_data
(
**
kwargs
)
context
=
super
(
VxlanDetail
,
self
)
.
get_context_data
(
**
kwargs
)
ops
=
get_operations
(
self
.
object
,
self
.
request
.
user
,
self
.
request
)
subnet
=
self
.
object
.
subnets
[
0
]
if
len
(
self
.
object
.
subnets
)
>
0
else
None
subnet
=
self
.
object
.
subnets
[
0
]
if
len
(
self
.
object
.
subnets
)
>
0
else
None
...
@@ -991,6 +1034,7 @@ class VxlanDetail(LoginRequiredMixin, SuccessMessageMixin, DetailView): #TODO: c
...
@@ -991,6 +1034,7 @@ class VxlanDetail(LoginRequiredMixin, SuccessMessageMixin, DetailView): #TODO: c
context
[
'isSubnetMissing'
]
=
len
(
self
.
object
.
subnets
)
<
1
context
[
'isSubnetMissing'
]
=
len
(
self
.
object
.
subnets
)
<
1
context
[
'vm_list'
]
=
()
#SmallVmTable(self.object.vm_interface.all())
context
[
'vm_list'
]
=
()
#SmallVmTable(self.object.vm_interface.all())
context
[
'form'
]
=
form
context
[
'form'
]
=
form
context
[
'op'
]
=
{
i
.
op
:
i
for
i
in
ops
}
return
context
return
context
class
VxlanCreate
(
LoginRequiredMixin
,
FormView
):
class
VxlanCreate
(
LoginRequiredMixin
,
FormView
):
...
@@ -1023,44 +1067,6 @@ class VxlanCreate(LoginRequiredMixin, FormView):
...
@@ -1023,44 +1067,6 @@ class VxlanCreate(LoginRequiredMixin, FormView):
return
redirect
(
reverse_lazy
(
'network.vxlan'
,
kwargs
=
{
'pk'
:
network_created
.
id
}))
return
redirect
(
reverse_lazy
(
'network.vxlan'
,
kwargs
=
{
'pk'
:
network_created
.
id
}))
class
VxlanDelete
(
LoginRequiredMixin
,
DeleteView
):
#TODO: check user
model
=
Vlan
read_level
=
'owner'
def
get_template_names
(
self
):
if
self
.
request
.
user
.
is_superuser
:
return
[
"network/confirm/base_delete.html"
]
else
:
return
[
"dashboard/confirm/base-delete.html"
]
def
get_success_url
(
self
):
next
=
self
.
request
.
POST
.
get
(
'next'
)
if
next
:
return
next
else
:
return
reverse_lazy
(
'network.vxlan-list'
)
def
get_object
(
self
,
queryset
=
None
):
""" we identify vlans by vid and not pk """
return
Vxlan
.
objects
.
get
(
vni
=
self
.
kwargs
[
'vni'
])
def
delete
(
self
,
request
,
*
args
,
**
kwargs
):
if
self
.
request
.
user
.
is_superuser
:
self
.
object
=
self
.
get_object
()
if
unicode
(
self
.
object
)
!=
request
.
POST
.
get
(
'confirm'
):
messages
.
error
(
request
,
_
(
u"Object name does not match."
))
return
self
.
get
(
request
,
*
args
,
**
kwargs
)
response
=
super
(
VxlanDelete
,
self
)
.
delete
(
request
,
*
args
,
**
kwargs
)
messages
.
success
(
request
,
_
(
u"Vxlan successfully deleted."
))
return
response
def
get_context_data
(
self
,
**
kwargs
):
context
=
super
(
VxlanDelete
,
self
)
.
get_context_data
(
**
kwargs
)
if
self
.
request
.
user
.
is_superuser
:
context
[
'confirmation'
]
=
True
return
context
class
TopologyBaseTab
():
class
TopologyBaseTab
():
def
get_context_data
(
request
,
context
=
None
):
def
get_context_data
(
request
,
context
=
None
):
"""Returns common context data for network topology views."""
"""Returns common context data for network topology views."""
...
...
This diff is collapsed.
Click to expand it.
circle/openstack_api/neutron.py
View file @
2c453601
...
@@ -105,6 +105,9 @@ class Agent(NeutronAPIDictWrapper):
...
@@ -105,6 +105,9 @@ class Agent(NeutronAPIDictWrapper):
class
Network
(
NeutronAPIDictWrapper
):
class
Network
(
NeutronAPIDictWrapper
):
"""Wrapper for neutron Networks."""
"""Wrapper for neutron Networks."""
def
__repr__
(
self
):
return
self
.
name
class
Subnet
(
NeutronAPIDictWrapper
):
class
Subnet
(
NeutronAPIDictWrapper
):
"""Wrapper for neutron subnets."""
"""Wrapper for neutron subnets."""
...
...
This diff is collapsed.
Click to expand it.
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