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
58ca65ad
authored
Nov 15, 2025
by
Szeberényi Imre
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
füred fix
parent
a0d175b0
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
24 additions
and
7 deletions
+24
-7
circle/circle/settings/base.py
+8
-0
circle/dashboard/forms.py
+4
-1
circle/dashboard/views/index.py
+1
-1
circle/vm/models/instance.py
+9
-3
circle/vm/operations.py
+1
-1
requirements/base.txt
+1
-1
No files found.
circle/circle/settings/base.py
View file @
58ca65ad
...
...
@@ -497,6 +497,8 @@ if get_env_variable('DJANGO_SAML', 'FALSE') == 'TRUE':
'required_attributes'
:
required_attrs
,
'optional_attributes'
:
optional_attrs
,
'want_response_signed'
:
False
,
"logout_requests_signed"
:
True
,
"logout_responses_signed"
:
True
,
},
},
'metadata'
:
{
'local'
:
[
remote_metadata
],
},
...
...
@@ -528,6 +530,12 @@ if get_env_variable('DJANGO_SAML', 'FALSE') == 'TRUE':
SAML_MAIN_ATTRIBUTE_MAX_LENGTH
=
int
(
get_env_variable
(
"DJANGO_SAML_MAIN_ATTRIBUTE_MAX_LENGTH"
,
0
))
SAML_LOGOUT_REQUESTS_SIGNED
=
True
SAML_LOGOUT_RESPONSES_SIGNED
=
True
SESSION_EXPIRE_AT_BROWSER_CLOSE
=
True
LOGIN_REDIRECT_URL
=
"/"
AGENT_DIR
=
get_env_variable
(
...
...
circle/dashboard/forms.py
View file @
58ca65ad
...
...
@@ -659,6 +659,7 @@ class LeaseForm(forms.ModelForm):
(
60
*
60
*
24
*
7
,
"weeks"
),
(
60
*
60
*
24
,
"days"
),
(
60
*
60
,
"hours"
),
(
60
,
"minutes"
),
)
for
i
,
(
seconds
,
name
)
in
enumerate
(
chunks
):
count
=
delta_seconds
//
seconds
...
...
@@ -673,7 +674,7 @@ class LeaseForm(forms.ModelForm):
return
re
def
generate_fields
(
self
):
intervals
=
[
"hours"
,
"days"
,
"weeks"
,
"months"
]
intervals
=
[
"
minutes"
,
"
hours"
,
"days"
,
"weeks"
,
"months"
]
methods
=
[
"suspend"
,
"delete"
]
# feels redundant but these lines are so long
s
=
(
self
.
instance
.
suspend_interval
.
total_seconds
()
...
...
@@ -698,12 +699,14 @@ class LeaseForm(forms.ModelForm):
data
=
self
.
cleaned_data
suspend_seconds
=
timedelta
(
minutes
=
data
[
'suspend_minutes'
],
hours
=
data
[
'suspend_hours'
],
days
=
(
data
[
'suspend_days'
]
+
data
[
'suspend_months'
]
%
12
*
30
+
data
[
'suspend_months'
]
/
12
*
365
),
weeks
=
data
[
'suspend_weeks'
],
)
delete_seconds
=
timedelta
(
minutes
=
data
[
'delete_minutes'
],
hours
=
data
[
'delete_hours'
],
days
=
(
data
[
'delete_days'
]
+
data
[
'delete_months'
]
%
12
*
30
+
data
[
'delete_months'
]
/
12
*
365
),
...
...
circle/dashboard/views/index.py
View file @
58ca65ad
...
...
@@ -111,7 +111,7 @@ class IndexView(LoginRequiredMixin, TemplateView):
quota
=
store
.
get_quota
()
files
=
{
'toplist'
:
toplist
,
'quota'
:
quota
}
except
Exception
:
logger
.
exception
(
"Unable to get tolist for
%
s"
,
logger
.
exception
(
"Unable to get to
p
list for
%
s"
,
unicode
(
self
.
request
.
user
))
files
=
{
'toplist'
:
[]}
cache
.
set
(
cache_key
,
files
,
300
)
...
...
circle/vm/models/instance.py
View file @
58ca65ad
...
...
@@ -744,8 +744,11 @@ class Instance(AclBase, VirtualMachineDescModel, StatusModel, OperatedMixin,
interval
=
self
.
lease
.
suspend_interval
if
(
self
.
status
!=
"SUSPENDED"
and
self
.
time_of_suspend
is
not
None
and
interval
is
not
None
):
limit
=
timezone
.
now
()
+
timedelta
(
seconds
=
(
threshold
*
self
.
lease
.
suspend_interval
.
total_seconds
()))
limit
=
timedelta
(
seconds
=
(
threshold
*
self
.
lease
.
suspend_interval
.
total_seconds
()))
if
limit
<
timedelta
(
seconds
=
300
):
limit
=
timedelta
(
seconds
=
300
)
limit
+=
timezone
.
now
()
return
limit
>
self
.
time_of_suspend
else
:
return
False
...
...
@@ -753,8 +756,11 @@ class Instance(AclBase, VirtualMachineDescModel, StatusModel, OperatedMixin,
def
_is_delete_expiring
(
self
,
threshold
=
0.1
):
interval
=
self
.
lease
.
delete_interval
if
self
.
time_of_delete
is
not
None
and
interval
is
not
None
:
limit
=
time
zone
.
now
()
+
time
delta
(
seconds
=
(
limit
=
timedelta
(
seconds
=
(
threshold
*
self
.
lease
.
delete_interval
.
total_seconds
()))
if
limit
<
timedelta
(
seconds
=
300
):
limit
=
timedelta
(
seconds
=
300
)
limit
+=
timezone
.
now
()
return
limit
>
self
.
time_of_delete
else
:
return
False
...
...
circle/vm/operations.py
View file @
58ca65ad
...
...
@@ -1072,7 +1072,7 @@ class RenewOperation(InstanceOperation):
return
create_readable
(
ugettext_noop
(
"Renewed to suspend at
%(suspend)
s and destroy at
%(delete)
s."
),
suspend
=
self
.
instance
.
time_of_suspend
,
delete
=
self
.
instance
.
time_of_
suspend
)
delete
=
self
.
instance
.
time_of_
delete
)
@register_operation
...
...
requirements/base.txt
View file @
58ca65ad
...
...
@@ -47,5 +47,5 @@ python-memcached==1.58
enum34==1.1.6
ipaddress==1.0.18
django-qrcode2
install
Image
Image
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