Commit 29ac24eb authored by Lu Xu's avatar Lu Xu 👀

Publish backend-url and change username to admin for Theia

See merge request nexedi/slapos!937
parents 618653e5 f993d86f
......@@ -15,7 +15,7 @@
[instance]
filename = instance.cfg.in
md5sum = 4f119df2b2d71e5ec1fd04051fd8fff8
md5sum = e56a6722e4f0bc958f6b61f13174e852
[yarn.lock]
filename = yarn.lock
......
......@@ -4,8 +4,8 @@
"additionalProperties": false,
"properties": {
"autorun": {
"title": "autorun",
"description": "State of the autorun service",
"title": "Automatically Run Sofware/Instance",
"description": "The option used to pilot automatic build and run of software and instances hosted inside Theia. When 'running', build and run is done automatically in the background. When 'stopped' build and run processes are stopped and need to be run manually. When 'disabled', the user can manage it directly in the local supervisord. ",
"type": "string",
"enum": [
"running",
......
......@@ -13,6 +13,10 @@
"password": {
"description": "Theia password",
"type": "string"
},
"backend-url": {
"description": "Theia Backend URL",
"type": "string"
}
},
"type": "object"
......
......@@ -7,6 +7,7 @@ theia-environment-parts =
slapos-repository
runner-link
settings.json
request-script
theia-parts =
frontend-reload
......@@ -41,6 +42,7 @@ recipe = slapos.cookbook:publish
url = $${apache-frontend:connection-secure_access}
username = $${frontend-instance-password:username}
password = $${frontend-instance-password:passwd}
backend-url = $${frontend-instance:url}
[directory]
......@@ -136,7 +138,7 @@ return = domain secure_access
[frontend-instance-password]
recipe = slapos.cookbook:generate.password
username = node
username = admin
bytes = 12
[frontend-instance-port]
......@@ -524,3 +526,18 @@ template =
recipe = slapos.cookbook:symbolic.link
target-directory = $${directory:project}
link-binary = $${directory:runner}
[request-script]
recipe = slapos.recipe.template:jinja2
rendered = $${directory:project}/$${:_buildout_section_name_}.sh
mode = 0700
template =
inline:#!/bin/sh
software_name=html5as-base #replace the software name
software_release_uri=~/srv/project/slapos/software/$software_name/software.cfg
# slapos supply is used to add the software to the software list to be supplied to a node.
slapos supply $software_release_uri slaprunner
# slapos request the allocation of an instance to the master.
# slapos request also gets status and parameters of the instance if it has any
# (slapos request is meant to be run multiple time until you get the status).
slapos request $software_name'_1' $software_release_uri
......@@ -55,6 +55,22 @@ class TestTheia(SlapOSInstanceTestCase):
def setUp(self):
self.connection_parameters = self.computer_partition.getConnectionParameterDict()
def test_backend_http_get(self):
resp = requests.get(self.connection_parameters['backend-url'], verify=False)
self.assertEqual(requests.codes.unauthorized, resp.status_code)
# with login/password, this is allowed
parsed_url = urlparse(self.connection_parameters['backend-url'])
authenticated_url = parsed_url._replace(
netloc='{}:{}@[{}]:{}'.format(
self.connection_parameters['username'],
self.connection_parameters['password'],
parsed_url.hostname,
parsed_url.port,
)).geturl()
resp = requests.get(authenticated_url, verify=False)
self.assertEqual(requests.codes.ok, resp.status_code)
def test_http_get(self):
resp = requests.get(self.connection_parameters['url'], verify=False)
self.assertEqual(requests.codes.unauthorized, resp.status_code)
......@@ -152,6 +168,15 @@ class TestTheia(SlapOSInstanceTestCase):
])
self.assertTrue(os.path.exists(test_file))
def test_theia_request_script(self):
script_path = os.path.join(
self.computer_partition_root_path,
'srv',
'project',
'request-script.sh',
)
self.assertTrue(os.path.exists(script_path))
class TestTheiaEmbeddedSlapOSShutdown(SlapOSInstanceTestCase):
__partition_reference__ = 'T' # for sockets in included slapos
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment