Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
CIRCLE
/
cloud
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
94
Merge Requests
10
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
46323c27
authored
9 years ago
by
Kálmán Viktor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
circle: fix flake8 warnings
parent
0282e224
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
70 additions
and
69 deletions
+70
-69
circle/acl/models.py
+2
-2
circle/circle/wsgi.py
+1
-1
circle/common/models.py
+4
-4
circle/dashboard/autocomplete_light_registry.py
+4
-4
circle/dashboard/forms.py
+4
-4
circle/dashboard/management/commands/init.py
+2
-2
circle/dashboard/tests/selenium/util.py
+2
-2
circle/dashboard/views/user.py
+2
-2
circle/dashboard/views/vm.py
+7
-6
circle/firewall/fields.py
+4
-4
circle/firewall/models.py
+2
-2
circle/manager/scheduler.py
+2
-2
circle/monitor/tasks/local_periodic_tasks.py
+3
-3
circle/network/views.py
+2
-2
circle/vm/models/activity.py
+2
-2
circle/vm/models/common.py
+2
-2
circle/vm/models/instance.py
+2
-2
circle/vm/operations.py
+23
-23
No files found.
circle/acl/models.py
View file @
46323c27
...
...
@@ -246,8 +246,8 @@ class AclBase(Model):
def
save
(
self
,
*
args
,
**
kwargs
):
super
(
AclBase
,
self
)
.
save
(
*
args
,
**
kwargs
)
if
'owner'
in
dict
(
self
.
ACL_LEVELS
)
and
(
hasattr
(
self
,
'owner'
)
and
self
.
owner
):
if
'owner'
in
dict
(
self
.
ACL_LEVELS
)
and
(
hasattr
(
self
,
'owner'
)
and
self
.
owner
):
self
.
set_user_level
(
self
.
owner
,
'owner'
)
class
Meta
:
...
...
This diff is collapsed.
Click to expand it.
circle/circle/wsgi.py
View file @
46323c27
...
...
@@ -46,7 +46,7 @@ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "circle.settings.production")
# This application object is used by any WSGI server configured to use this
# file. This includes Django's development server, if the WSGI_APPLICATION
# setting points here.
from
django.core.wsgi
import
get_wsgi_application
from
django.core.wsgi
import
get_wsgi_application
# noqa
_application
=
get_wsgi_application
()
...
...
This diff is collapsed.
Click to expand it.
circle/common/models.py
View file @
46323c27
...
...
@@ -97,7 +97,7 @@ def has_prefix(activity_code, *prefixes):
>>> assert has_prefix('foo.bar.buz', 'foo', 'bar', 'buz')
>>> assert not has_prefix('foo.bar.buz', 'foo', 'buz')
"""
equal
=
lambda
a
,
b
:
a
==
b
def
equal
(
a
,
b
):
return
a
==
b
act_code_parts
=
split_activity_code
(
activity_code
)
prefixes
=
chain
(
*
imap
(
split_activity_code
,
prefixes
))
return
all
(
imap
(
equal
,
act_code_parts
,
prefixes
))
...
...
@@ -112,7 +112,7 @@ def has_suffix(activity_code, *suffixes):
>>> assert has_suffix('foo.bar.buz', 'foo', 'bar', 'buz')
>>> assert not has_suffix('foo.bar.buz', 'foo', 'buz')
"""
equal
=
lambda
a
,
b
:
a
==
b
def
equal
(
a
,
b
):
return
a
==
b
act_code_parts
=
split_activity_code
(
activity_code
)
suffixes
=
list
(
chain
(
*
imap
(
split_activity_code
,
suffixes
)))
return
all
(
imap
(
equal
,
reversed
(
act_code_parts
),
reversed
(
suffixes
)))
...
...
@@ -441,8 +441,8 @@ class HumanReadableObject(object):
@classmethod
def
create
(
cls
,
user_text_template
,
admin_text_template
=
None
,
**
params
):
return
cls
(
user_text_template
=
user_text_template
,
admin_text_template
=
(
admin_text_template
or
user_text_template
),
params
=
params
)
admin_text_template
=
(
admin_text_template
or
user_text_template
),
params
=
params
)
def
set
(
self
,
user_text_template
,
admin_text_template
=
None
,
**
params
):
self
.
_set_values
(
user_text_template
,
...
...
This diff is collapsed.
Click to expand it.
circle/dashboard/autocomplete_light_registry.py
View file @
46323c27
...
...
@@ -38,10 +38,10 @@ def highlight(field, q, none_wo_match=True):
match
=
None
if
q
and
match
is
not
None
:
match_end
=
match
+
len
(
q
)
return
(
escape
(
field
[:
match
])
+
'<span class="autocomplete-hl">'
+
escape
(
field
[
match
:
match_end
])
+
'</span>'
+
escape
(
field
[
match_end
:]))
return
(
escape
(
field
[:
match
])
+
'<span class="autocomplete-hl">'
+
escape
(
field
[
match
:
match_end
])
+
'</span>'
+
escape
(
field
[
match_end
:]))
elif
none_wo_match
:
return
None
else
:
...
...
This diff is collapsed.
Click to expand it.
circle/dashboard/forms.py
View file @
46323c27
...
...
@@ -506,8 +506,8 @@ class TemplateForm(forms.ModelForm):
self
.
allowed_fields
=
(
'name'
,
'access_method'
,
'description'
,
'system'
,
'tags'
,
'arch'
,
'lease'
,
'has_agent'
)
if
(
self
.
user
.
has_perm
(
'vm.change_template_resources'
)
or
not
self
.
instance
.
pk
):
if
(
self
.
user
.
has_perm
(
'vm.change_template_resources'
)
or
not
self
.
instance
.
pk
):
self
.
allowed_fields
+=
tuple
(
set
(
self
.
fields
.
keys
())
-
set
([
'raw_data'
]))
if
self
.
user
.
is_superuser
:
...
...
@@ -523,8 +523,8 @@ class TemplateForm(forms.ModelForm):
self
.
initial
[
'max_ram_size'
]
=
512
lease_queryset
=
(
Lease
.
get_objects_with_level
(
"operator"
,
self
.
user
)
.
distinct
()
|
Lease
.
objects
.
filter
(
pk
=
self
.
instance
.
lease_id
)
.
distinct
())
Lease
.
get_objects_with_level
(
"operator"
,
self
.
user
)
.
distinct
()
|
Lease
.
objects
.
filter
(
pk
=
self
.
instance
.
lease_id
)
.
distinct
())
self
.
fields
[
"lease"
]
.
queryset
=
lease_queryset
...
...
This diff is collapsed.
Click to expand it.
circle/dashboard/management/commands/init.py
View file @
46323c27
...
...
@@ -64,8 +64,8 @@ class Command(BaseCommand):
def
handle
(
self
,
*
args
,
**
options
):
self
.
changed
=
False
if
(
DataStore
.
objects
.
exists
()
and
Vlan
.
objects
.
exists
()
and
not
options
[
'force'
]):
if
(
DataStore
.
objects
.
exists
()
and
Vlan
.
objects
.
exists
()
and
not
options
[
'force'
]):
return
self
.
print_state
()
admin
=
self
.
create
(
User
,
'username'
,
username
=
options
[
'admin_user'
],
...
...
This diff is collapsed.
Click to expand it.
circle/dashboard/tests/selenium/util.py
View file @
46323c27
...
...
@@ -601,8 +601,8 @@ class CircleSeleniumMixin(SeleniumMixin):
choices
=
self
.
driver
.
find_elements_by_css_selector
(
"input[type='radio']"
)
choice_list
=
[
item
for
item
in
choices
if
(
'test'
not
in
item
.
get_attribute
(
'value'
)
and
item
.
get_attribute
(
'value'
)
!=
'base_vm'
)]
'test'
not
in
item
.
get_attribute
(
'value'
)
and
item
.
get_attribute
(
'value'
)
!=
'base_vm'
)]
chosen
=
random
.
randint
(
0
,
len
(
choice_list
)
-
1
)
choice_list
[
chosen
]
.
click
()
self
.
driver
.
find_element_by_id
(
...
...
This diff is collapsed.
Click to expand it.
circle/dashboard/views/user.py
View file @
46323c27
...
...
@@ -545,8 +545,8 @@ class UserList(LoginRequiredMixin, PermissionRequiredMixin, SingleTableView):
q
=
self
.
search_form
.
cleaned_data
.
get
(
's'
)
if
q
:
filters
=
(
Q
(
username__icontains
=
q
)
|
Q
(
email__icontains
=
q
)
|
Q
(
profile__org_id__icontains
=
q
))
filters
=
(
Q
(
username__icontains
=
q
)
|
Q
(
email__icontains
=
q
)
|
Q
(
profile__org_id__icontains
=
q
))
for
w
in
q
.
split
()[:
3
]:
filters
|=
(
Q
(
first_name__icontains
=
w
)
|
Q
(
last_name__icontains
=
w
))
...
...
This diff is collapsed.
Click to expand it.
circle/dashboard/views/vm.py
View file @
46323c27
...
...
@@ -150,8 +150,8 @@ class VmDetailView(GraphMixin, CheckedDetailView):
# resources forms
can_edit
=
(
instance
.
has_level
(
user
,
"owner"
)
and
self
.
request
.
user
.
has_perm
(
"vm.change_resources"
))
instance
.
has_level
(
user
,
"owner"
)
and
self
.
request
.
user
.
has_perm
(
"vm.change_resources"
))
context
[
'resources_form'
]
=
VmResourcesForm
(
can_edit
=
can_edit
,
instance
=
instance
)
...
...
@@ -569,8 +569,8 @@ class VmResourcesChangeView(VmOperationView):
content_type
=
"application=json"
)
else
:
return
HttpResponseRedirect
(
instance
.
get_absolute_url
()
+
"#resources"
)
return
HttpResponseRedirect
(
instance
.
get_absolute_url
()
+
"#resources"
)
else
:
extra
=
form
.
cleaned_data
extra
[
'max_ram_size'
]
=
extra
[
'ram_size'
]
...
...
@@ -1261,8 +1261,9 @@ def vm_activity(request, pk):
response
[
'status'
]
=
instance
.
status
response
[
'icon'
]
=
instance
.
get_status_icon
()
latest
=
instance
.
get_latest_activity_in_progress
()
response
[
'is_new_state'
]
=
(
latest
and
latest
.
resultant_state
is
not
None
and
instance
.
status
!=
latest
.
resultant_state
)
response
[
'is_new_state'
]
=
(
latest
and
latest
.
resultant_state
is
not
None
and
instance
.
status
!=
latest
.
resultant_state
)
context
=
{
'instance'
:
instance
,
...
...
This diff is collapsed.
Click to expand it.
circle/firewall/fields.py
View file @
46323c27
...
...
@@ -188,11 +188,11 @@ class IPNetworkField(models.Field):
if
isinstance
(
value
,
IPNetwork
):
if
self
.
version
==
4
:
return
(
'.'
.
join
(
"
%03
d"
%
x
for
x
in
value
.
ip
.
words
)
+
'/
%02
d'
%
value
.
prefixlen
)
return
(
'.'
.
join
(
"
%03
d"
%
x
for
x
in
value
.
ip
.
words
)
+
'/
%02
d'
%
value
.
prefixlen
)
else
:
return
(
':'
.
join
(
"
%04
X"
%
x
for
x
in
value
.
ip
.
words
)
+
'/
%03
d'
%
value
.
prefixlen
)
return
(
':'
.
join
(
"
%04
X"
%
x
for
x
in
value
.
ip
.
words
)
+
'/
%03
d'
%
value
.
prefixlen
)
return
value
def
formfield
(
self
,
**
kwargs
):
...
...
This diff is collapsed.
Click to expand it.
circle/firewall/models.py
View file @
46323c27
...
...
@@ -700,8 +700,8 @@ class Host(models.Model):
return
self
.
vlan
.
network_type
!=
'public'
def
clean
(
self
):
if
(
self
.
external_ipv4
and
not
self
.
shared_ip
and
self
.
behind_nat
and
Host
.
objects
.
exclude
(
id
=
self
.
id
)
.
filter
(
if
(
self
.
external_ipv4
and
not
self
.
shared_ip
and
self
.
behind_nat
and
Host
.
objects
.
exclude
(
id
=
self
.
id
)
.
filter
(
external_ipv4
=
self
.
external_ipv4
)):
raise
ValidationError
(
_
(
"If shared_ip has been checked, "
"external_ipv4 has to be unique."
))
...
...
This diff is collapsed.
Click to expand it.
circle/manager/scheduler.py
View file @
46323c27
...
...
@@ -55,8 +55,8 @@ def select_node(instance, nodes):
'''
# check required traits
nodes
=
[
n
for
n
in
nodes
if
n
.
schedule_enabled
and
n
.
online
and
has_traits
(
instance
.
req_traits
.
all
(),
n
)]
if
n
.
schedule_enabled
and
n
.
online
and
has_traits
(
instance
.
req_traits
.
all
(),
n
)]
if
not
nodes
:
logger
.
warning
(
'select_node: no usable node for
%
s'
,
unicode
(
instance
))
raise
TraitsUnsatisfiableException
()
...
...
This diff is collapsed.
Click to expand it.
circle/monitor/tasks/local_periodic_tasks.py
View file @
46323c27
...
...
@@ -54,7 +54,7 @@ def measure_response_time():
@celery.task
(
ignore_result
=
True
)
def
check_celery_queues
():
graphite_string
=
lambda
component
,
hostname
,
celery
,
is_alive
,
time
:
(
def
graphite_string
(
component
,
hostname
,
celery
,
is_alive
,
time
):
return
(
"
%
s.
%
s.celery-queues.
%
s
%
d
%
s"
%
(
component
,
hostname
,
celery
,
1
if
is_alive
else
0
,
time
)
)
...
...
@@ -92,7 +92,7 @@ def check_celery_queues():
@celery.task
(
ignore_result
=
True
)
def
instance_per_template
():
graphite_string
=
lambda
pk
,
state
,
val
,
time
:
(
def
graphite_string
(
pk
,
state
,
val
,
time
):
return
(
"template.
%
d.instances.
%
s
%
d
%
s"
%
(
pk
,
state
,
val
,
time
)
)
...
...
@@ -111,7 +111,7 @@ def instance_per_template():
@celery.task
(
ignore_result
=
True
)
def
allocated_memory
():
graphite_string
=
lambda
hostname
,
val
,
time
:
(
def
graphite_string
(
hostname
,
val
,
time
):
return
(
"circle.
%
s.memory.allocated
%
d
%
s"
%
(
hostname
,
val
,
time
)
)
...
...
This diff is collapsed.
Click to expand it.
circle/network/views.py
View file @
46323c27
...
...
@@ -979,8 +979,8 @@ def remove_switch_port_device(request, **kwargs):
def
add_switch_port_device
(
request
,
**
kwargs
):
device_name
=
request
.
POST
.
get
(
'device_name'
)
if
(
request
.
method
==
"POST"
and
device_name
and
len
(
device_name
)
>
0
and
EthernetDevice
.
objects
.
filter
(
name
=
device_name
)
.
count
()
==
0
):
if
(
request
.
method
==
"POST"
and
device_name
and
len
(
device_name
)
>
0
and
EthernetDevice
.
objects
.
filter
(
name
=
device_name
)
.
count
()
==
0
):
switch_port
=
SwitchPort
.
objects
.
get
(
pk
=
kwargs
[
'pk'
])
new_device
=
EthernetDevice
(
name
=
device_name
,
switch_port
=
switch_port
)
...
...
This diff is collapsed.
Click to expand it.
circle/vm/models/activity.py
View file @
46323c27
...
...
@@ -145,8 +145,8 @@ class InstanceActivity(ActivityModel):
def
has_percentage
(
self
):
op
=
self
.
instance
.
get_operation_from_activity_code
(
self
.
activity_code
)
return
(
self
.
task_uuid
and
op
and
op
.
has_percentage
and
not
self
.
finished
)
return
(
self
.
task_uuid
and
op
and
op
.
has_percentage
and
not
self
.
finished
)
def
get_percentage
(
self
):
"""Returns the percentage of the running operation if available.
...
...
This diff is collapsed.
Click to expand it.
circle/vm/models/common.py
View file @
46323c27
...
...
@@ -174,6 +174,6 @@ class Trait(Model):
@property
def
in_use
(
self
):
return
(
self
.
instance_set
.
exists
()
or
self
.
node_set
.
exists
()
or
self
.
instancetemplate_set
.
exists
()
self
.
instance_set
.
exists
()
or
self
.
node_set
.
exists
()
or
self
.
instancetemplate_set
.
exists
()
)
This diff is collapsed.
Click to expand it.
circle/vm/models/instance.py
View file @
46323c27
...
...
@@ -852,8 +852,8 @@ class Instance(AclBase, VirtualMachineDescModel, StatusModel, OperatedMixin,
def
is_in_status_change
(
self
):
latest
=
self
.
get_latest_activity_in_progress
()
return
(
latest
and
latest
.
resultant_state
is
not
None
and
self
.
status
!=
latest
.
resultant_state
)
return
(
latest
and
latest
.
resultant_state
is
not
None
and
self
.
status
!=
latest
.
resultant_state
)
@property
def
metric_prefix
(
self
):
...
...
This diff is collapsed.
Click to expand it.
circle/vm/operations.py
View file @
46323c27
...
...
@@ -133,8 +133,8 @@ class InstanceOperation(Operation):
super
(
InstanceOperation
,
self
)
.
check_auth
(
user
=
user
)
if
(
self
.
instance
.
node
and
not
self
.
instance
.
node
.
online
and
not
user
.
is_superuser
):
if
(
self
.
instance
.
node
and
not
self
.
instance
.
node
.
online
and
not
user
.
is_superuser
):
raise
self
.
instance
.
WrongStateError
(
self
.
instance
)
def
create_activity
(
self
,
parent
,
user
,
kwargs
):
...
...
@@ -534,8 +534,8 @@ class MigrateOperation(RemoteInstanceOperation):
remote_timeout
=
1000
def
_get_remote_args
(
self
,
to_node
,
live_migration
,
**
kwargs
):
return
(
super
(
MigrateOperation
,
self
)
.
_get_remote_args
(
**
kwargs
)
+
[
to_node
.
host
.
hostname
,
live_migration
])
return
(
super
(
MigrateOperation
,
self
)
.
_get_remote_args
(
**
kwargs
)
+
[
to_node
.
host
.
hostname
,
live_migration
])
def
rollback
(
self
,
activity
):
with
activity
.
sub_activity
(
...
...
@@ -908,8 +908,8 @@ class SleepOperation(InstanceOperation):
def
_get_remote_args
(
self
,
**
kwargs
):
return
(
super
(
SleepOperation
.
SuspendVmOperation
,
self
)
.
_get_remote_args
(
**
kwargs
)
+
[
self
.
instance
.
mem_dump
[
'path'
]])
.
_get_remote_args
(
**
kwargs
)
+
[
self
.
instance
.
mem_dump
[
'path'
]])
@register_operation
...
...
@@ -962,8 +962,8 @@ class WakeUpOperation(InstanceOperation):
def
_get_remote_args
(
self
,
**
kwargs
):
return
(
super
(
WakeUpOperation
.
WakeUpVmOperation
,
self
)
.
_get_remote_args
(
**
kwargs
)
+
[
self
.
instance
.
mem_dump
[
'path'
]])
.
_get_remote_args
(
**
kwargs
)
+
[
self
.
instance
.
mem_dump
[
'path'
]])
@register_operation
...
...
@@ -1408,9 +1408,9 @@ class PasswordResetOperation(RemoteAgentOperation):
task
=
agent_tasks
.
change_password
required_perms
=
()
def
_get_remote_args
(
self
,
password
,
**
kw
a
rgs
):
return
(
super
(
PasswordResetOperation
,
self
)
.
_get_remote_args
(
**
kw
args
)
+
[
password
])
def
_get_remote_args
(
self
,
password
,
**
kwrgs
):
return
(
super
(
PasswordResetOperation
,
self
)
.
_get_remote_args
(
**
kw
rgs
)
+
[
password
])
def
_operation
(
self
,
password
=
None
):
if
not
password
:
...
...
@@ -1433,8 +1433,8 @@ class InstallKeysOperation(RemoteAgentOperation):
def
_get_remote_args
(
self
,
user
,
keys
=
None
,
**
kwargs
):
if
keys
is
None
:
keys
=
list
(
user
.
userkey_set
.
values_list
(
'key'
,
flat
=
True
))
return
(
super
(
InstallKeysOperation
,
self
)
.
_get_remote_args
(
**
kwargs
)
+
[
keys
])
return
(
super
(
InstallKeysOperation
,
self
)
.
_get_remote_args
(
**
kwargs
)
+
[
keys
])
@register_operation
...
...
@@ -1446,8 +1446,8 @@ class RemoveKeysOperation(RemoteAgentOperation):
required_perms
=
()
def
_get_remote_args
(
self
,
user
,
keys
,
**
kwargs
):
return
(
super
(
RemoveKeysOperation
,
self
)
.
_get_remote_args
(
**
kwargs
)
+
[
keys
])
return
(
super
(
RemoveKeysOperation
,
self
)
.
_get_remote_args
(
**
kwargs
)
+
[
keys
])
@register_operation
...
...
@@ -1541,8 +1541,8 @@ class AgentStartedOperation(InstanceOperation):
def
_get_remote_args
(
self
,
**
kwargs
):
cls
=
AgentStartedOperation
.
SetTimeOperation
return
(
super
(
cls
,
self
)
.
_get_remote_args
(
**
kwargs
)
+
[
time
.
time
()])
return
(
super
(
cls
,
self
)
.
_get_remote_args
(
**
kwargs
)
+
[
time
.
time
()])
@register_operation
class
SetHostnameOperation
(
SubOperationMixin
,
RemoteAgentOperation
):
...
...
@@ -1552,8 +1552,8 @@ class AgentStartedOperation(InstanceOperation):
def
_get_remote_args
(
self
,
**
kwargs
):
cls
=
AgentStartedOperation
.
SetHostnameOperation
return
(
super
(
cls
,
self
)
.
_get_remote_args
(
**
kwargs
)
+
[
self
.
instance
.
short_hostname
])
return
(
super
(
cls
,
self
)
.
_get_remote_args
(
**
kwargs
)
+
[
self
.
instance
.
short_hostname
])
@register_operation
class
RestartNetworkingOperation
(
SubOperationMixin
,
RemoteAgentOperation
):
...
...
@@ -1572,8 +1572,8 @@ class AgentStartedOperation(InstanceOperation):
interfaces
=
{
str
(
host
.
mac
):
host
.
get_network_config
()
for
host
in
hosts
}
cls
=
AgentStartedOperation
.
ChangeIpOperation
return
(
super
(
cls
,
self
)
.
_get_remote_args
(
**
kwargs
)
+
[
interfaces
,
settings
.
FIREWALL_SETTINGS
[
'rdns_ip'
]])
return
(
super
(
cls
,
self
)
.
_get_remote_args
(
**
kwargs
)
+
[
interfaces
,
settings
.
FIREWALL_SETTINGS
[
'rdns_ip'
]])
@register_operation
...
...
@@ -1697,8 +1697,8 @@ class AbstractDiskOperation(SubOperationMixin, RemoteInstanceOperation):
required_perms
=
()
def
_get_remote_args
(
self
,
disk
,
**
kwargs
):
return
(
super
(
AbstractDiskOperation
,
self
)
.
_get_remote_args
(
**
kwargs
)
+
[
disk
.
get_vmdisk_desc
()])
return
(
super
(
AbstractDiskOperation
,
self
)
.
_get_remote_args
(
**
kwargs
)
+
[
disk
.
get_vmdisk_desc
()])
@register_operation
...
...
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