Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos.core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
Rafael Monnerat
slapos.core
Commits
e58e7363
Commit
e58e7363
authored
May 13, 2013
by
Marco Mariani
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into cliff
parents
51b2e8ef
3de0ab52
Changes
26
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
972 additions
and
239 deletions
+972
-239
master/bt5/slapos_cloud/DocumentTemplateItem/SoftwareInstance.py
...bt5/slapos_cloud/DocumentTemplateItem/SoftwareInstance.py
+1
-1
master/bt5/slapos_cloud/SkinTemplateItem/portal_skins/slapos_cloud_promise/Alarm_checkPromiseSlapOSPAS.xml
...kins/slapos_cloud_promise/Alarm_checkPromiseSlapOSPAS.xml
+3
-0
master/bt5/slapos_cloud/bt/revision
master/bt5/slapos_cloud/bt/revision
+1
-1
master/bt5/slapos_erp5/LocalRolesTemplateItem/access_token_module.xml
...lapos_erp5/LocalRolesTemplateItem/access_token_module.xml
+14
-0
master/bt5/slapos_erp5/PortalTypeRolesTemplateItem/Access%20Token%20Module.xml
...5/PortalTypeRolesTemplateItem/Access%20Token%20Module.xml
+12
-0
master/bt5/slapos_erp5/PortalTypeRolesTemplateItem/One%20Time%20Restricted%20Access%20Token.xml
...TemplateItem/One%20Time%20Restricted%20Access%20Token.xml
+7
-0
master/bt5/slapos_erp5/TestTemplateItem/testSlapOSERP5GroupRoleSecurity.py
..._erp5/TestTemplateItem/testSlapOSERP5GroupRoleSecurity.py
+19
-0
master/bt5/slapos_erp5/bt/revision
master/bt5/slapos_erp5/bt/revision
+1
-1
master/bt5/slapos_erp5/bt/template_local_role_list
master/bt5/slapos_erp5/bt/template_local_role_list
+1
-0
master/bt5/slapos_erp5/bt/template_local_roles_list
master/bt5/slapos_erp5/bt/template_local_roles_list
+1
-0
master/bt5/slapos_erp5/bt/template_portal_type_role_list
master/bt5/slapos_erp5/bt/template_portal_type_role_list
+2
-0
master/bt5/slapos_erp5/bt/template_portal_type_roles_list
master/bt5/slapos_erp5/bt/template_portal_type_roles_list
+2
-0
master/bt5/slapos_slap_tool/TestTemplateItem/testSlapOSSlapTool.py
...5/slapos_slap_tool/TestTemplateItem/testSlapOSSlapTool.py
+199
-198
master/bt5/slapos_slap_tool/bt/revision
master/bt5/slapos_slap_tool/bt/revision
+1
-1
master/bt5/slapos_web/SkinTemplateItem/portal_skins/vifib_hosting/Base_generateAccessTokenFromJS.xml
...al_skins/vifib_hosting/Base_generateAccessTokenFromJS.xml
+87
-0
master/bt5/slapos_web/SkinTemplateItem/portal_skins/vifib_hosting/Base_getTokenGeneratorJS.xml
...m/portal_skins/vifib_hosting/Base_getTokenGeneratorJS.xml
+115
-0
master/bt5/slapos_web/SkinTemplateItem/portal_skins/vifib_hosting/WebSection_registerNewComputer.xml
...al_skins/vifib_hosting/WebSection_registerNewComputer.xml
+14
-7
master/bt5/slapos_web/SkinTemplateItem/portal_skins/vifib_hosting/WebSection_viewMyAccountRender.xml
...al_skins/vifib_hosting/WebSection_viewMyAccountRender.xml
+2
-0
master/bt5/slapos_web/SkinTemplateItem/portal_skins/vifib_hosting/WebSection_viewMyAccountRender/my_token_generate_button.xml
...bSection_viewMyAccountRender/my_token_generate_button.xml
+132
-0
master/bt5/slapos_web/SkinTemplateItem/portal_skins/vifib_hosting/WebSection_viewMyAccountRender/your_ad.xml
.../vifib_hosting/WebSection_viewMyAccountRender/your_ad.xml
+307
-0
master/bt5/slapos_web/bt/dependency_list
master/bt5/slapos_web/bt/dependency_list
+1
-0
master/bt5/slapos_web/bt/revision
master/bt5/slapos_web/bt/revision
+1
-1
master/product/SlapOS/tests/testSlapOSMixin.py
master/product/SlapOS/tests/testSlapOSMixin.py
+8
-5
master/product/Vifib/Tool/SlapTool.py
master/product/Vifib/Tool/SlapTool.py
+39
-22
slapos-client.cfg.example
slapos-client.cfg.example
+1
-1
slapos/grid/networkcache.py
slapos/grid/networkcache.py
+1
-1
No files found.
master/bt5/slapos_cloud/DocumentTemplateItem/SoftwareInstance.py
View file @
e58e7363
...
@@ -55,7 +55,7 @@ class SoftwareInstance(Item):
...
@@ -55,7 +55,7 @@ class SoftwareInstance(Item):
if
xml
is
None
or
xml
==
''
:
if
xml
is
None
or
xml
==
''
:
return
result_dict
return
result_dict
tree
=
etree
.
fromstring
(
xml
.
encode
(
'utf-8'
)
)
tree
=
etree
.
fromstring
(
xml
)
for
element
in
tree
.
findall
(
'parameter'
):
for
element
in
tree
.
findall
(
'parameter'
):
key
=
element
.
get
(
'id'
)
key
=
element
.
get
(
'id'
)
...
...
master/bt5/slapos_cloud/SkinTemplateItem/portal_skins/slapos_cloud_promise/Alarm_checkPromiseSlapOSPAS.xml
View file @
e58e7363
...
@@ -51,6 +51,9 @@
...
@@ -51,6 +51,9 @@
<item>
<item>
<key>
<string>
_body
</string>
</key>
<key>
<string>
_body
</string>
</key>
<value>
<string>
promise_dict = {\n
<value>
<string>
promise_dict = {\n
\'IExtractionPlugin\': [\n
\'ERP5 Access Token Extraction Plugin\',\n
],\n
\'IExtractionPlugin\': [\n
\'IExtractionPlugin\': [\n
\'SlapOS Machine Authentication Plugin\',\n
\'SlapOS Machine Authentication Plugin\',\n
],\n
],\n
...
...
master/bt5/slapos_cloud/bt/revision
View file @
e58e7363
277
279
\ No newline at end of file
\ No newline at end of file
master/bt5/slapos_erp5/LocalRolesTemplateItem/access_token_module.xml
0 → 100644
View file @
e58e7363
<local_roles_item>
<local_roles>
<role
id=
'G-COMPANY'
>
<item>
Auditor
</item>
<item>
Author
</item>
</role>
<role
id=
'R-MEMBER'
>
<item>
Author
</item>
</role>
<role
id=
'zope'
>
<item>
Owner
</item>
</role>
</local_roles>
</local_roles_item>
\ No newline at end of file
master/bt5/slapos_erp5/PortalTypeRolesTemplateItem/Access%20Token%20Module.xml
0 → 100644
View file @
e58e7363
<type_roles>
<role
id=
'Author; Auditor'
>
<property
id=
'title'
>
Group company
</property>
<multi_property
id=
'category'
>
group/company
</multi_property>
<multi_property
id=
'base_category'
>
group
</multi_property>
</role>
<role
id=
'Author'
>
<property
id=
'title'
>
Member
</property>
<multi_property
id=
'category'
>
role/member
</multi_property>
<multi_property
id=
'base_category'
>
role
</multi_property>
</role>
</type_roles>
\ No newline at end of file
master/bt5/slapos_erp5/PortalTypeRolesTemplateItem/One%20Time%20Restricted%20Access%20Token.xml
0 → 100644
View file @
e58e7363
<type_roles>
<role
id=
'Assignor'
>
<property
id=
'title'
>
Group company
</property>
<multi_property
id=
'category'
>
group/company
</multi_property>
<multi_property
id=
'base_category'
>
group
</multi_property>
</role>
</type_roles>
\ No newline at end of file
master/bt5/slapos_erp5/TestTemplateItem/testSlapOSERP5GroupRoleSecurity.py
View file @
e58e7363
...
@@ -1982,3 +1982,22 @@ class TestRegularisationRequest(TestSlapOSGroupRoleSecurityMixin):
...
@@ -1982,3 +1982,22 @@ class TestRegularisationRequest(TestSlapOSGroupRoleSecurityMixin):
self
.
assertRoles
(
product
,
'R-MEMBER'
,
[
'Auditor'
])
self
.
assertRoles
(
product
,
'R-MEMBER'
,
[
'Auditor'
])
self
.
assertPermissionsOfRole
(
product
,
'Auditor'
,
self
.
assertPermissionsOfRole
(
product
,
'Auditor'
,
[
'Access contents information'
,
'View'
])
[
'Access contents information'
,
'View'
])
class
TestAccessTokenModule
(
TestSlapOSGroupRoleSecurityMixin
):
def
test
(
self
):
module
=
self
.
portal
.
access_token_module
self
.
assertSecurityGroup
(
module
,
[
'G-COMPANY'
,
'R-MEMBER'
,
'zope'
],
False
)
self
.
assertRoles
(
module
,
'G-COMPANY'
,
[
'Auditor'
,
'Author'
])
self
.
assertRoles
(
module
,
'R-MEMBER'
,
[
'Author'
])
self
.
assertRoles
(
module
,
'zope'
,
[
'Owner'
])
class
TestOneTimeRestrictedAccessToken
(
TestSlapOSGroupRoleSecurityMixin
):
def
test_GroupCompany
(
self
):
product
=
self
.
portal
.
access_token_module
.
newContent
(
portal_type
=
'One Time Restricted Access Token'
)
product
.
updateLocalRolesOnSecurityGroups
()
self
.
assertSecurityGroup
(
product
,
[
'G-COMPANY'
,
self
.
user_id
],
False
)
self
.
assertRoles
(
product
,
'G-COMPANY'
,
[
'Assignor'
])
self
.
assertRoles
(
product
,
self
.
user_id
,
[
'Owner'
])
master/bt5/slapos_erp5/bt/revision
View file @
e58e7363
167
168
\ No newline at end of file
\ No newline at end of file
master/bt5/slapos_erp5/bt/template_local_role_list
View file @
e58e7363
access_token_module
account_module
account_module
account_module/bank
account_module/bank
account_module/capital
account_module/capital
...
...
master/bt5/slapos_erp5/bt/template_local_roles_list
View file @
e58e7363
access_token_module
account_module
account_module
account_module/bank
account_module/bank
account_module/capital
account_module/capital
...
...
master/bt5/slapos_erp5/bt/template_portal_type_role_list
View file @
e58e7363
Access Token Module
Account
Account
Account Module
Account Module
Accounting Period
Accounting Period
...
@@ -54,6 +55,7 @@ Meeting Module
...
@@ -54,6 +55,7 @@ Meeting Module
Note
Note
Notification Message
Notification Message
Notification Message Module
Notification Message Module
One Time Restricted Access Token
Open Sale Order
Open Sale Order
Open Sale Order Module
Open Sale Order Module
Organisation
Organisation
...
...
master/bt5/slapos_erp5/bt/template_portal_type_roles_list
View file @
e58e7363
Access Token Module
One Time Restricted Access Token
Account
Account
Account Module
Account Module
Accounting Period
Accounting Period
...
...
master/bt5/slapos_slap_tool/TestTemplateItem/testSlapOSSlapTool.py
View file @
e58e7363
This diff is collapsed.
Click to expand it.
master/bt5/slapos_slap_tool/bt/revision
View file @
e58e7363
25
26
\ No newline at end of file
\ No newline at end of file
master/bt5/slapos_web/SkinTemplateItem/portal_skins/vifib_hosting/Base_generateAccessTokenFromJS.xml
0 → 100644
View file @
e58e7363
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"PythonScript"
module=
"Products.PythonScripts.PythonScript"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
Script_magic
</string>
</key>
<value>
<int>
3
</int>
</value>
</item>
<item>
<key>
<string>
_bind_names
</string>
</key>
<value>
<object>
<klass>
<global
name=
"NameAssignments"
module=
"Shared.DC.Scripts.Bindings"
/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key>
<string>
_asgns
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
name_container
</string>
</key>
<value>
<string>
container
</string>
</value>
</item>
<item>
<key>
<string>
name_context
</string>
</key>
<value>
<string>
context
</string>
</value>
</item>
<item>
<key>
<string>
name_m_self
</string>
</key>
<value>
<string>
script
</string>
</value>
</item>
<item>
<key>
<string>
name_subpath
</string>
</key>
<value>
<string>
traverse_subpath
</string>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string>
import json\n
\n
portal = context.getPortalObject()\n
person = portal.ERP5Site_getAuthenticatedMemberPersonValue()\n
\n
web_site = context.getWebSiteValue()\n
request_method = "POST"\n
request_url = "%s/%s" % (web_site.absolute_url(), "add-a-server/WebSection_registerNewComputer")\n
\n
access_token = portal.access_token_module.newContent(\n
portal_type="One Time Restricted Access Token",\n
agent_value=person,\n
url_string=request_url,\n
url_method="POST",\n
)\n
access_token.validate()\n
\n
request = context.REQUEST\n
response = request.RESPONSE\n
response.setHeader(\'Content-Type\', "application/json")\n
return json.dumps({\'access_token\': access_token.getId()})\n
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
Base_generateAccessTokenFromJS
</string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
master/bt5/slapos_web/SkinTemplateItem/portal_skins/vifib_hosting/Base_getTokenGeneratorJS.xml
0 → 100644
View file @
e58e7363
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"PythonScript"
module=
"Products.PythonScripts.PythonScript"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
Script_magic
</string>
</key>
<value>
<int>
3
</int>
</value>
</item>
<item>
<key>
<string>
_bind_names
</string>
</key>
<value>
<object>
<klass>
<global
name=
"NameAssignments"
module=
"Shared.DC.Scripts.Bindings"
/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key>
<string>
_asgns
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
name_container
</string>
</key>
<value>
<string>
container
</string>
</value>
</item>
<item>
<key>
<string>
name_context
</string>
</key>
<value>
<string>
context
</string>
</value>
</item>
<item>
<key>
<string>
name_m_self
</string>
</key>
<value>
<string>
script
</string>
</value>
</item>
<item>
<key>
<string>
name_subpath
</string>
</key>
<value>
<string>
traverse_subpath
</string>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
_body
</string>
</key>
<value>
<string
encoding=
"cdata"
>
<![CDATA[
return """\n
<script>
\n
"use strict";\n
(function ($) {\n
\n
var methods;\n
\n
methods = {\n
click: function () {\n
$(this).click(function() {\n
$(this).parent().parent()\n
.slapostoken("generateToken");\n
return false;\n
});\n
},\n
generateToken: function () {\n
$.ajax("./Base_generateAccessTokenFromJS", {\n
context: $(this),\n
success: function(data) {\n
$(this).attr("class", "alignr")\n
.text("New token: " + data.access_token);\n
}\n
})\n
},\n
};\n
\n
$.fn.slapostoken = function (method) {\n
var result;\n
if (methods.hasOwnProperty(method)) {\n
result = methods[method].apply(\n
this,\n
Array.prototype.slice.call(arguments, 1)\n
);\n
} else {\n
$.error(\'Method \' + method +\n
\' does not exist on jQuery.slapostoken\');\n
}\n
return result;\n
};\n
}(jQuery));\n
\n
$("#tokengenerationlink")\n
.slapostoken("click");\n
</script>
\n
"""\n
]]>
</string>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
Base_getTokenGeneratorJS
</string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
master/bt5/slapos_web/SkinTemplateItem/portal_skins/vifib_hosting/WebSection_registerNewComputer.xml
View file @
e58e7363
...
@@ -52,13 +52,20 @@
...
@@ -52,13 +52,20 @@
<key>
<string>
_body
</string>
</key>
<key>
<string>
_body
</string>
</key>
<value>
<string>
portal = context.getPortalObject()\n
<value>
<string>
portal = context.getPortalObject()\n
person = portal.ERP5Site_getAuthenticatedMemberPersonValue()\n
person = portal.ERP5Site_getAuthenticatedMemberPersonValue()\n
request_kw = dict(computer_title=title)\n
\n
person.requestComputer(**request_kw)\n
request = context.REQUEST\n
computer = context.restrictedTraverse(context.REQUEST.get(\'computer\'))\n
response = request.RESPONSE\n
computer.generateCertificate()\n
\n
message = "Registering Computer"\n
if person is None:\n
context.REQUEST.set("portal_status_message", message)\n
response.setStatus(403)\n
return computer.Computer_viewConnectionInformationAsWeb()\n
else:\n
request_kw = dict(computer_title=title)\n
person.requestComputer(**request_kw)\n
computer = context.restrictedTraverse(context.REQUEST.get(\'computer\'))\n
computer.generateCertificate()\n
message = "Registering Computer"\n
context.REQUEST.set("portal_status_message", message)\n
return computer.Computer_viewConnectionInformationAsWeb()\n
</string>
</value>
</string>
</value>
</item>
</item>
<item>
<item>
...
...
master/bt5/slapos_web/SkinTemplateItem/portal_skins/vifib_hosting/WebSection_viewMyAccountRender.xml
View file @
e58e7363
...
@@ -90,6 +90,8 @@
...
@@ -90,6 +90,8 @@
<string>
my_certificate_request_button
</string>
<string>
my_certificate_request_button
</string>
<string>
my_certificate_revoke_button
</string>
<string>
my_certificate_revoke_button
</string>
<string>
my_update_credential_button
</string>
<string>
my_update_credential_button
</string>
<string>
my_token_generate_button
</string>
<string>
your_ad
</string>
</list>
</list>
</value>
</value>
</item>
</item>
...
...
master/bt5/slapos_web/SkinTemplateItem/portal_skins/vifib_hosting/WebSection_viewMyAccountRender/my_token_generate_button.xml
0 → 100644
View file @
e58e7363
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"ProxyField"
module=
"Products.ERP5Form.ProxyField"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
delegated_list
</string>
</key>
<value>
<list>
<string>
css_class
</string>
<string>
default
</string>
<string>
extra
</string>
<string>
href
</string>
<string>
title
</string>
</list>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
my_token_generate_button
</string>
</value>
</item>
<item>
<key>
<string>
message_values
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
external_validator_failed
</string>
</key>
<value>
<string>
The input failed the external validator.
</string>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key>
<string>
overrides
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
field_id
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
form_id
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
target
</string>
</key>
<value>
<string></string>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key>
<string>
tales
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
css_class
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
default
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
field_id
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
form_id
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
href
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
target
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string></string>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key>
<string>
values
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
css_class
</string>
</key>
<value>
<string>
nolabel validate alignr
</string>
</value>
</item>
<item>
<key>
<string>
default
</string>
</key>
<value>
<string>
Generate a security token
</string>
</value>
</item>
<item>
<key>
<string>
extra
</string>
</key>
<value>
<string>
id="tokengenerationlink"
</string>
</value>
</item>
<item>
<key>
<string>
field_id
</string>
</key>
<value>
<string>
my_hyperlink
</string>
</value>
</item>
<item>
<key>
<string>
form_id
</string>
</key>
<value>
<string>
Base_viewWebFieldLibrary
</string>
</value>
</item>
<item>
<key>
<string>
href
</string>
</key>
<value>
<string>
./
</string>
</value>
</item>
<item>
<key>
<string>
target
</string>
</key>
<value>
<string>
Click to edit the target
</string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
Generate a token
</string>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
master/bt5/slapos_web/SkinTemplateItem/portal_skins/vifib_hosting/WebSection_viewMyAccountRender/your_ad.xml
0 → 100644
View file @
e58e7363
This diff is collapsed.
Click to expand it.
master/bt5/slapos_web/bt/dependency_list
View file @
e58e7363
...
@@ -6,4 +6,5 @@ erp5_web
...
@@ -6,4 +6,5 @@ erp5_web
erp5_rss_style
erp5_rss_style
erp5_credential_oauth2
erp5_credential_oauth2
erp5_bearer_token
erp5_bearer_token
erp5_access_token
slapos_pdm
slapos_pdm
\ No newline at end of file
master/bt5/slapos_web/bt/revision
View file @
e58e7363
48
49
\ No newline at end of file
\ No newline at end of file
master/product/SlapOS/tests/testSlapOSMixin.py
View file @
e58e7363
...
@@ -231,6 +231,7 @@ class testSlapOSMixin(ERP5TypeTestCase):
...
@@ -231,6 +231,7 @@ class testSlapOSMixin(ERP5TypeTestCase):
'erp5_credential_oauth2'
,
'erp5_credential_oauth2'
,
'erp5_accounting_l10n_fr'
,
'erp5_accounting_l10n_fr'
,
'erp5_bearer_token'
,
'erp5_bearer_token'
,
'erp5_access_token'
,
'erp5_project'
,
'erp5_project'
,
'slapos_cache'
,
'slapos_cache'
,
'slapos_cloud'
,
'slapos_cloud'
,
...
@@ -540,21 +541,23 @@ class testSlapOSMixin(ERP5TypeTestCase):
...
@@ -540,21 +541,23 @@ class testSlapOSMixin(ERP5TypeTestCase):
self
.
portal
.
REQUEST
.
headers
=
{}
self
.
portal
.
REQUEST
.
headers
=
{}
def
generateNewId
(
self
):
def
generateNewId
(
self
):
return
self
.
portal
.
portal_ids
.
generateNewId
(
return
"%sö"
%
self
.
portal
.
portal_ids
.
generateNewId
(
id_group
=
(
'slapos_core_test'
))
id_group
=
(
'slapos_core_test'
))
def
generateNewSoftwareReleaseUrl
(
self
):
def
generateNewSoftwareReleaseUrl
(
self
):
return
'http://example.org/t
e
st%s.cfg'
%
self
.
generateNewId
()
return
'http://example.org/t
ê
st%s.cfg'
%
self
.
generateNewId
()
def
generateNewSoftwareType
(
self
):
def
generateNewSoftwareType
(
self
):
return
'Type%s'
%
self
.
generateNewId
()
return
'Type
ë@î
%s'
%
self
.
generateNewId
()
def
generateNewSoftwareTitle
(
self
):
def
generateNewSoftwareTitle
(
self
):
return
'Title%s'
%
self
.
generateNewId
()
return
'Title
é#ï
%s'
%
self
.
generateNewId
()
def
generateSafeXml
(
self
):
def
generateSafeXml
(
self
):
return
'<?xml version="1.0" encoding="utf-8"?><instance><parameter '
\
return
'<?xml version="1.0" encoding="utf-8"?><instance><parameter '
\
'id="param">%s</parameter></instance>'
%
self
.
generateNewId
()
'id="%s">%s</parameter></instance>'
%
\
(
"paramé"
.
decode
(
"UTF-8"
).
encode
(
"UTF-8"
),
self
.
generateNewId
().
decode
(
"UTF-8"
).
encode
(
"UTF-8"
))
def
generateEmptyXml
(
self
):
def
generateEmptyXml
(
self
):
return
'<?xml version="1.0" encoding="utf-8"?><instance></instance>'
return
'<?xml version="1.0" encoding="utf-8"?><instance></instance>'
...
...
master/product/Vifib/Tool/SlapTool.py
View file @
e58e7363
...
@@ -165,7 +165,7 @@ class SlapTool(BaseTool):
...
@@ -165,7 +165,7 @@ class SlapTool(BaseTool):
def
_getCacheComputerInformation
(
self
,
computer_id
,
user
):
def
_getCacheComputerInformation
(
self
,
computer_id
,
user
):
self
.
REQUEST
.
response
.
setHeader
(
'Content-Type'
,
'text/xml; charset=utf-8'
)
self
.
REQUEST
.
response
.
setHeader
(
'Content-Type'
,
'text/xml; charset=utf-8'
)
slap_computer
=
Computer
(
computer_id
)
slap_computer
=
Computer
(
computer_id
.
decode
(
"UTF-8"
)
)
parent_uid
=
self
.
_getComputerUidByReference
(
computer_id
)
parent_uid
=
self
.
_getComputerUidByReference
(
computer_id
)
slap_computer
.
_computer_partition_list
=
[]
slap_computer
.
_computer_partition_list
=
[]
...
@@ -230,7 +230,7 @@ class SlapTool(BaseTool):
...
@@ -230,7 +230,7 @@ class SlapTool(BaseTool):
reference
=
user
,
portal_type
=
[
'Person'
,
'Computer'
,
'Software Instance'
]))
reference
=
user
,
portal_type
=
[
'Person'
,
'Computer'
,
'Software Instance'
]))
user_type
=
user_document
.
getPortalType
()
user_type
=
user_document
.
getPortalType
()
self
.
REQUEST
.
response
.
setHeader
(
'Content-Type'
,
'text/xml; charset=utf-8'
)
self
.
REQUEST
.
response
.
setHeader
(
'Content-Type'
,
'text/xml; charset=utf-8'
)
slap_computer
=
Computer
(
computer_id
)
slap_computer
=
Computer
(
computer_id
.
decode
(
"UTF-8"
)
)
parent_uid
=
self
.
_getComputerUidByReference
(
computer_id
)
parent_uid
=
self
.
_getComputerUidByReference
(
computer_id
)
slap_computer
.
_computer_partition_list
=
[]
slap_computer
.
_computer_partition_list
=
[]
...
@@ -386,7 +386,7 @@ class SlapTool(BaseTool):
...
@@ -386,7 +386,7 @@ class SlapTool(BaseTool):
portal
=
self
.
getPortalObject
()
portal
=
self
.
getPortalObject
()
person
=
portal
.
ERP5Site_getAuthenticatedMemberPersonValue
()
person
=
portal
.
ERP5Site_getAuthenticatedMemberPersonValue
()
person
.
requestComputer
(
computer_title
=
computer_title
)
person
.
requestComputer
(
computer_title
=
computer_title
)
computer
=
Computer
(
self
.
REQUEST
.
get
(
'computer_reference'
))
computer
=
Computer
(
self
.
REQUEST
.
get
(
'computer_reference'
)
.
decode
(
"UTF-8"
)
)
return
xml_marshaller
.
xml_marshaller
.
dumps
(
computer
)
return
xml_marshaller
.
xml_marshaller
.
dumps
(
computer
)
security
.
declareProtected
(
Permissions
.
AccessContentsInformation
,
security
.
declareProtected
(
Permissions
.
AccessContentsInformation
,
...
@@ -596,8 +596,8 @@ class SlapTool(BaseTool):
...
@@ -596,8 +596,8 @@ class SlapTool(BaseTool):
def
_generateComputerCertificate
(
self
,
computer_id
):
def
_generateComputerCertificate
(
self
,
computer_id
):
self
.
_getComputerDocument
(
computer_id
).
generateCertificate
()
self
.
_getComputerDocument
(
computer_id
).
generateCertificate
()
result
=
{
result
=
{
'certificate'
:
self
.
REQUEST
.
get
(
'computer_certificate'
),
'certificate'
:
self
.
REQUEST
.
get
(
'computer_certificate'
)
.
decode
(
"UTF-8"
)
,
'key'
:
self
.
REQUEST
.
get
(
'computer_key'
)
'key'
:
self
.
REQUEST
.
get
(
'computer_key'
)
.
decode
(
"UTF-8"
)
}
}
return
xml_marshaller
.
xml_marshaller
.
dumps
(
result
)
return
xml_marshaller
.
xml_marshaller
.
dumps
(
result
)
...
@@ -630,8 +630,8 @@ class SlapTool(BaseTool):
...
@@ -630,8 +630,8 @@ class SlapTool(BaseTool):
portal
=
self
.
getPortalObject
()
portal
=
self
.
getPortalObject
()
computer_partition_document
=
self
.
_getComputerPartitionDocument
(
computer_partition_document
=
self
.
_getComputerPartitionDocument
(
computer_reference
,
computer_partition_reference
)
computer_reference
,
computer_partition_reference
)
slap_partition
=
SlapComputerPartition
(
computer_reference
,
slap_partition
=
SlapComputerPartition
(
computer_reference
.
decode
(
"UTF-8"
)
,
computer_partition_reference
)
computer_partition_reference
.
decode
(
"UTF-8"
)
)
slap_partition
.
_software_release_document
=
None
slap_partition
.
_software_release_document
=
None
slap_partition
.
_requested_state
=
'destroyed'
slap_partition
.
_requested_state
=
'destroyed'
slap_partition
.
_need_modification
=
0
slap_partition
.
_need_modification
=
0
...
@@ -664,8 +664,10 @@ class SlapTool(BaseTool):
...
@@ -664,8 +664,10 @@ class SlapTool(BaseTool):
slap_partition
.
_requested_state
=
'started'
slap_partition
.
_requested_state
=
'started'
slap_partition
.
_software_release_document
=
SoftwareRelease
(
slap_partition
.
_software_release_document
=
SoftwareRelease
(
software_release
=
software_instance
.
getUrlString
(),
software_release
=
software_instance
.
getUrlString
().
decode
(
"UTF-8"
),
computer_guid
=
computer_reference
)
computer_guid
=
computer_reference
.
decode
(
"UTF-8"
))
slap_partition
.
_software_release_document
.
_software_release
=
\
slap_partition
.
_software_release_document
.
_software_release
.
decode
(
"UTF-8"
)
slap_partition
.
_need_modification
=
1
slap_partition
.
_need_modification
=
1
...
@@ -742,7 +744,7 @@ class SlapTool(BaseTool):
...
@@ -742,7 +744,7 @@ class SlapTool(BaseTool):
result_dict
=
{}
result_dict
=
{}
try
:
try
:
if
xml
is
not
None
and
xml
!=
''
:
if
xml
is
not
None
and
xml
!=
''
:
tree
=
etree
.
fromstring
(
xml
.
encode
(
'utf-8'
)
)
tree
=
etree
.
fromstring
(
xml
)
for
element
in
tree
.
findall
(
'parameter'
):
for
element
in
tree
.
findall
(
'parameter'
):
key
=
element
.
get
(
'id'
)
key
=
element
.
get
(
'id'
)
value
=
result_dict
.
get
(
key
,
None
)
value
=
result_dict
.
get
(
key
,
None
)
...
@@ -761,9 +763,9 @@ class SlapTool(BaseTool):
...
@@ -761,9 +763,9 @@ class SlapTool(BaseTool):
portal
=
self
.
getPortalObject
()
portal
=
self
.
getPortalObject
()
while
computer
.
getPortalType
()
!=
'Computer'
:
while
computer
.
getPortalType
()
!=
'Computer'
:
computer
=
computer
.
getParentValue
()
computer
=
computer
.
getParentValue
()
computer_id
=
computer
.
getReference
()
computer_id
=
computer
.
getReference
()
.
decode
(
"UTF-8"
)
slap_partition
=
SlapComputerPartition
(
computer_id
,
slap_partition
=
SlapComputerPartition
(
computer_id
,
computer_partition_document
.
getReference
(
))
computer_partition_document
.
getReference
().
decode
(
"UTF-8"
))
slap_partition
.
_software_release_document
=
None
slap_partition
.
_software_release_document
=
None
slap_partition
.
_requested_state
=
'destroyed'
slap_partition
.
_requested_state
=
'destroyed'
...
@@ -795,8 +797,10 @@ class SlapTool(BaseTool):
...
@@ -795,8 +797,10 @@ class SlapTool(BaseTool):
slap_partition
.
_requested_state
=
'started'
slap_partition
.
_requested_state
=
'started'
slap_partition
.
_software_release_document
=
SoftwareRelease
(
slap_partition
.
_software_release_document
=
SoftwareRelease
(
software_release
=
software_instance
.
getUrlString
(),
software_release
=
software_instance
.
getUrlString
()
.
decode
(
"UTF-8"
)
,
computer_guid
=
computer_id
)
computer_guid
=
computer_id
)
slap_partition
.
_software_release_document
.
_software_release
=
\
slap_partition
.
_software_release_document
.
_software_release
.
decode
(
"UTF-8"
)
slap_partition
.
_need_modification
=
1
slap_partition
.
_need_modification
=
1
...
@@ -952,8 +956,12 @@ class SlapTool(BaseTool):
...
@@ -952,8 +956,12 @@ class SlapTool(BaseTool):
'created_at'
:
'%s'
%
rfc1123_date
(
DateTime
()),
'created_at'
:
'%s'
%
rfc1123_date
(
DateTime
()),
"text"
:
"#error no data found for %s"
%
context_reference
"text"
:
"#error no data found for %s"
%
context_reference
}
}
# Prepare for xml marshalling
d
[
"user"
]
=
d
[
"user"
].
decode
(
"UTF-8"
)
d
[
"text"
]
=
d
[
"text"
].
decode
(
"UTF-8"
)
else
:
else
:
d
=
json
.
loads
(
d
)
d
=
json
.
loads
(
d
)
# Keep in cache server for 7 days
# Keep in cache server for 7 days
self
.
REQUEST
.
response
.
setStatus
(
200
)
self
.
REQUEST
.
response
.
setStatus
(
200
)
self
.
REQUEST
.
response
.
setHeader
(
'Cache-Control'
,
self
.
REQUEST
.
response
.
setHeader
(
'Cache-Control'
,
...
@@ -1298,7 +1306,9 @@ class SlapTool(BaseTool):
...
@@ -1298,7 +1306,9 @@ class SlapTool(BaseTool):
ip_list
=
[]
ip_list
=
[]
for
internet_protocol_address
in
computer_partition
.
contentValues
(
portal_type
=
'Internet Protocol Address'
):
for
internet_protocol_address
in
computer_partition
.
contentValues
(
portal_type
=
'Internet Protocol Address'
):
ip_list
.
append
((
internet_protocol_address
.
getNetworkInterface
(
''
),
internet_protocol_address
.
getIpAddress
()))
ip_list
.
append
((
internet_protocol_address
.
getNetworkInterface
(
''
).
decode
(
"UTF-8"
),
internet_protocol_address
.
getIpAddress
().
decode
(
"UTF-8"
)))
slave_instance_list
=
[]
slave_instance_list
=
[]
if
(
software_instance
.
getPortalType
()
==
"Software Instance"
):
if
(
software_instance
.
getPortalType
()
==
"Software Instance"
):
...
@@ -1313,8 +1323,9 @@ class SlapTool(BaseTool):
...
@@ -1313,8 +1323,9 @@ class SlapTool(BaseTool):
# XXX Use catalog to filter more efficiently
# XXX Use catalog to filter more efficiently
if
slave_instance
.
getSlapState
()
==
"start_requested"
:
if
slave_instance
.
getSlapState
()
==
"start_requested"
:
append
({
append
({
'slave_title'
:
slave_instance
.
getTitle
(),
'slave_title'
:
slave_instance
.
getTitle
().
decode
(
"UTF-8"
),
'slap_software_type'
:
slave_instance
.
getSourceReference
(),
'slap_software_type'
:
\
slave_instance
.
getSourceReference
().
decode
(
"UTF-8"
),
'slave_reference'
:
slave_instance
.
getReference
(),
'slave_reference'
:
slave_instance
.
getReference
(),
'xml'
:
slave_instance
.
getTextContent
(),
'xml'
:
slave_instance
.
getTextContent
(),
'connection_xml'
:
slave_instance
.
getConnectionXml
(),
'connection_xml'
:
slave_instance
.
getConnectionXml
(),
...
@@ -1326,10 +1337,14 @@ class SlapTool(BaseTool):
...
@@ -1326,10 +1337,14 @@ class SlapTool(BaseTool):
'instance_guid'
:
software_instance
.
getReference
(),
'instance_guid'
:
software_instance
.
getReference
(),
'xml'
:
software_instance
.
getTextContent
(),
'xml'
:
software_instance
.
getTextContent
(),
'connection_xml'
:
software_instance
.
getConnectionXml
(),
'connection_xml'
:
software_instance
.
getConnectionXml
(),
'slap_computer_id'
:
computer_partition
.
getParentValue
().
getReference
(),
'slap_computer_id'
:
\
'slap_computer_partition_id'
:
computer_partition
.
getReference
(),
computer_partition
.
getParentValue
().
getReference
().
decode
(
"UTF-8"
),
'slap_software_type'
:
software_instance
.
getSourceReference
(),
'slap_computer_partition_id'
:
\
'slap_software_release_url'
:
software_instance
.
getUrlString
(),
computer_partition
.
getReference
().
decode
(
"UTF-8"
),
'slap_software_type'
:
\
software_instance
.
getSourceReference
().
decode
(
"UTF-8"
),
'slap_software_release_url'
:
\
software_instance
.
getUrlString
().
decode
(
"UTF-8"
),
'slave_instance_list'
:
slave_instance_list
,
'slave_instance_list'
:
slave_instance_list
,
'ip_list'
:
ip_list
,
'ip_list'
:
ip_list
,
'timestamp'
:
"%i"
%
timestamp
,
'timestamp'
:
"%i"
%
timestamp
,
...
@@ -1348,8 +1363,10 @@ class SlapTool(BaseTool):
...
@@ -1348,8 +1363,10 @@ class SlapTool(BaseTool):
):
):
software_installation
=
_assertACI
(
software_installation
.
getObject
())
software_installation
=
_assertACI
(
software_installation
.
getObject
())
software_release_response
=
SoftwareRelease
(
software_release_response
=
SoftwareRelease
(
software_release
=
software_installation
.
getUrlString
(),
software_release
=
software_installation
.
getUrlString
().
decode
(
'UTF-8'
),
computer_guid
=
computer_reference
)
computer_guid
=
computer_reference
.
decode
(
'UTF-8'
))
software_release_response
.
_software_release
=
\
software_release_response
.
_software_release
.
decode
(
"UTF-8"
)
if
software_installation
.
getSlapState
()
==
'destroy_requested'
:
if
software_installation
.
getSlapState
()
==
'destroy_requested'
:
software_release_response
.
_requested_state
=
'destroyed'
software_release_response
.
_requested_state
=
'destroyed'
else
:
else
:
...
...
slapos-client.cfg.example
View file @
e58e7363
...
@@ -25,6 +25,6 @@ alias =
...
@@ -25,6 +25,6 @@ alias =
opengoo http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/tags/slapos-0.158:/software/opengoo/software.cfg
opengoo http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/tags/slapos-0.158:/software/opengoo/software.cfg
postgresql http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/tags/slapos-0.157:/software/postgres/software.cfg
postgresql http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/tags/slapos-0.157:/software/postgres/software.cfg
slaposwebrunner http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/tags/slapos-0.160:/software/slaprunner/software.cfg
slaposwebrunner http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/tags/slapos-0.160:/software/slaprunner/software.cfg
wordpress http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/tags/slapos-0.1
5
3:/software/wordpress/software.cfg
wordpress http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/tags/slapos-0.1
6
3:/software/wordpress/software.cfg
xwiki http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/tags/slapos-0.46:/software/xwiki/software.cfg
xwiki http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/tags/slapos-0.46:/software/xwiki/software.cfg
zabbixagent http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/tags/slapos-0.162:/software/zabbix-agent/software.cfg
zabbixagent http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/tags/slapos-0.162:/software/zabbix-agent/software.cfg
slapos/grid/networkcache.py
View file @
e58e7363
...
@@ -163,7 +163,7 @@ def upload_network_cached(software_root, software_url, cached_key,
...
@@ -163,7 +163,7 @@ def upload_network_cached(software_root, software_url, cached_key,
try
:
try
:
return
nc
.
upload_generic
(
f
,
cached_key
,
**
kw
)
return
nc
.
upload_generic
(
f
,
cached_key
,
**
kw
)
except
(
IOError
,
UploadError
),
e
:
except
(
IOError
,
UploadError
),
e
:
logger
.
info
(
'Fail to upload file. %s'
%
(
str
(
e
)))
logger
.
info
(
'Fail
ed
to upload file. %s'
%
(
str
(
e
)))
return
False
return
False
finally
:
finally
:
f
.
close
()
f
.
close
()
...
...
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