Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Lukas Niegsch
slapos
Commits
e63c9c59
Commit
e63c9c59
authored
May 07, 2021
by
Xavier Thompson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
software/theia: Add frontend configuration options
parent
cb40e46f
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
69 additions
and
12 deletions
+69
-12
software/theia/buildout.hash.cfg
software/theia/buildout.hash.cfg
+2
-2
software/theia/instance-theia.cfg.jinja.in
software/theia/instance-theia.cfg.jinja.in
+40
-10
software/theia/instance.cfg.in
software/theia/instance.cfg.in
+11
-0
software/theia/test/test.py
software/theia/test/test.py
+16
-0
No files found.
software/theia/buildout.hash.cfg
View file @
e63c9c59
...
@@ -15,11 +15,11 @@
...
@@ -15,11 +15,11 @@
[instance-theia]
[instance-theia]
filename = instance-theia.cfg.jinja.in
filename = instance-theia.cfg.jinja.in
md5sum =
a5a7db274eb11c022a12142fabc9a355
md5sum =
65c66a4cc4eb1d074dcafddf945a34d4
[instance]
[instance]
filename = instance.cfg.in
filename = instance.cfg.in
md5sum =
eb4ee219603da65b748cb912685b9b17
md5sum =
43923e3e1f27c43696ecbca9ee147bdb
[yarn.lock]
[yarn.lock]
filename = yarn.lock
filename = yarn.lock
...
...
software/theia/instance-theia.cfg.jinja.in
View file @
e63c9c59
{% set additional_frontend = slapconfiguration_section['configuration.additional-frontend-guid'] %}
[buildout]
[buildout]
extends =
extends =
${monitor-template:rendered}
${monitor-template:rendered}
...
@@ -33,7 +35,10 @@ offline = true
...
@@ -33,7 +35,10 @@ offline = true
[publish-connection-parameter]
[publish-connection-parameter]
<= monitor-publish
<= monitor-publish
recipe = slapos.cookbook:publish
recipe = slapos.cookbook:publish
url = $${apache-frontend:connection-secure_access}
url = $${remote-frontend:connection-secure_access}
{% if additional_frontend %}
additional-url = $${remote-additional-frontend:connection-secure_access}
{% endif %}
username = $${frontend-instance-password:username}
username = $${frontend-instance-password:username}
password = $${frontend-instance-password:passwd}
password = $${frontend-instance-password:passwd}
backend-url = $${frontend-instance:url}
backend-url = $${frontend-instance:url}
...
@@ -68,7 +73,10 @@ recipe =
...
@@ -68,7 +73,10 @@ recipe =
instance-promises =
instance-promises =
$${theia-listen-promise:name}
$${theia-listen-promise:name}
$${frontend-listen-promise:name}
$${frontend-listen-promise:name}
$${apache-frontend-url-available-promise:name}
$${remote-frontend-url-available-promise:name}
{% if additional_frontend %}
$${remote-additional-frontend-url-available-promise:name}
{% endif %}
$${slapos-standalone-listen-promise:name}
$${slapos-standalone-listen-promise:name}
$${slapos-autorun-promise:name}
$${slapos-autorun-promise:name}
...
@@ -86,13 +94,22 @@ name = $${:_buildout_section_name_}.py
...
@@ -86,13 +94,22 @@ name = $${:_buildout_section_name_}.py
config-hostname = $${frontend-instance:ip}
config-hostname = $${frontend-instance:ip}
config-port = $${frontend-instance:port}
config-port = $${frontend-instance:port}
[
apach
e-frontend-url-available-promise]
[
remot
e-frontend-url-available-promise]
<= monitor-promise-base
<= monitor-promise-base
module = check_url_available
module = check_url_available
name = $${:_buildout_section_name_}.py
name = $${:_buildout_section_name_}.py
config-url = $${
apach
e-frontend:connection-secure_access}
config-url = $${
remot
e-frontend:connection-secure_access}
config-check-secure = 1
config-check-secure = 1
{% if additional_frontend %}
[remote-additional-frontend-url-available-promise]
<= monitor-promise-base
module = check_url_available
name = $${:_buildout_section_name_}.py
config-url = $${remote-additional-frontend:connection-secure_access}
config-check-secure = 1
{% endif %}
[slapos-standalone-listen-promise]
[slapos-standalone-listen-promise]
<= monitor-promise-base
<= monitor-promise-base
module = check_port_listening
module = check_port_listening
...
@@ -110,15 +127,12 @@ config-service = $${slapos-autorun:service-name}
...
@@ -110,15 +127,12 @@ config-service = $${slapos-autorun:service-name}
config-expect = $${slapos-autorun:autorun}
config-expect = $${slapos-autorun:autorun}
# Remote
Apache
Frontend
# Remote
Caddy
Frontend
# ---------------------
-
# ---------------------
[
apache-frontend
]
[
remote-frontend-base
]
<= slap-connection
<= slap-connection
recipe = slapos.cookbook:requestoptional
recipe = slapos.cookbook:requestoptional
name = Theia Frontend
# XXX We have hardcoded SR URL here.
software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
slave = true
slave = true
config-url = $${frontend-instance:url}
config-url = $${frontend-instance:url}
config-https-only = true
config-https-only = true
...
@@ -126,6 +140,22 @@ config-type = websocket
...
@@ -126,6 +140,22 @@ config-type = websocket
config-websocket-path-list = /services /file-upload
config-websocket-path-list = /services /file-upload
return = domain secure_access
return = domain secure_access
[remote-frontend]
<= remote-frontend-base
name = $${instance-parameter:configuration.frontend-name}
software-url = $${instance-parameter:configuration.frontend-sr}
software-type = $${instance-parameter:configuration.frontend-sr-type}
sla-instance_guid = $${instance-parameter:configuration.frontend-guid}
{% if additional_frontend %}
[remote-additional-frontend]
<= remote-frontend-base
name = $${instance-parameter:configuration.additional-frontend-name}
software-url = $${instance-parameter:configuration.additional-frontend-sr}
software-type = $${instance-parameter:configuration.additional-frontend-sr-type}
sla-instance_guid = $${instance-parameter:configuration.additional-frontend-guid}
{% endif %}
# Local Caddy Frontend
# Local Caddy Frontend
# --------------------
# --------------------
...
...
software/theia/instance.cfg.in
View file @
e63c9c59
...
@@ -12,9 +12,20 @@ partition = $${slap-connection:partition-id}
...
@@ -12,9 +12,20 @@ partition = $${slap-connection:partition-id}
url = $${slap-connection:server-url}
url = $${slap-connection:server-url}
key = $${slap-connection:key-file}
key = $${slap-connection:key-file}
cert = $${slap-connection:cert-file}
cert = $${slap-connection:cert-file}
;Theia default configuration
configuration.autorun = running
configuration.autorun = running
configuration.embedded-sr =
configuration.embedded-sr =
configuration.embedded-sr-type =
configuration.embedded-sr-type =
;Frontend default configuration
configuration.frontend-name = Theia Frontend
configuration.frontend-sr = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
configuration.frontend-sr-type = RootSoftwareInstance
configuration.frontend-guid =
;Additional frontend default configuration
configuration.additional-frontend-name = Theia Additional Frontend
configuration.additional-frontend-sr = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
configuration.additional-frontend-sr-type = RootSoftwareInstance
configuration.additional-frontend-guid =
[switch-softwaretype]
[switch-softwaretype]
recipe = slapos.cookbook:switch-softwaretype
recipe = slapos.cookbook:switch-softwaretype
...
...
software/theia/test/test.py
View file @
e63c9c59
...
@@ -247,6 +247,22 @@ class TestTheiaWithSR(TheiaTestCase):
...
@@ -247,6 +247,22 @@ class TestTheiaWithSR(TheiaTestCase):
self
.
assertIsNotNone
(
re
.
search
(
r"%s\
s+%s
\s+%s"
%
(
self
.
sr_url
,
self
.
sr_type
,
instance_name
),
info
),
info
)
self
.
assertIsNotNone
(
re
.
search
(
r"%s\
s+%s
\s+%s"
%
(
self
.
sr_url
,
self
.
sr_type
,
instance_name
),
info
),
info
)
class
TestTheiaFrontend
(
TheiaTestCase
):
@
classmethod
def
getInstanceParameterDict
(
cls
):
return
{
'additional-frontend-guid'
:
'SOMETHING'
}
def
setUp
(
self
):
self
.
connection_parameters
=
self
.
computer_partition
.
getConnectionParameterDict
()
def
test_http_get
(
self
):
for
key
in
(
'url'
,
'additional-url'
):
resp
=
requests
.
get
(
self
.
connection_parameters
[
key
],
verify
=
False
)
self
.
assertEqual
(
requests
.
codes
.
unauthorized
,
resp
.
status_code
)
class
TestTheiaEnv
(
TheiaTestCase
):
class
TestTheiaEnv
(
TheiaTestCase
):
dummy_software_path
=
os
.
path
.
abspath
(
'dummy/software.cfg'
)
dummy_software_path
=
os
.
path
.
abspath
(
'dummy/software.cfg'
)
...
...
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