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
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
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
Romain Courteaud
slapos.core
Commits
2534c2bb
Commit
2534c2bb
authored
Nov 19, 2024
by
Romain Courteaud
🐸
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
slapos_jio_api_style: try to move the compute node json type class to a mixin
parent
3b4b65d5
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
201 additions
and
0 deletions
+201
-0
master/bt5/slapos_jio_api_style/MixinTemplateItem/portal_components/mixin.erp5.ComputeNodeJsonTypeMixin.py
.../portal_components/mixin.erp5.ComputeNodeJsonTypeMixin.py
+86
-0
master/bt5/slapos_jio_api_style/MixinTemplateItem/portal_components/mixin.erp5.ComputeNodeJsonTypeMixin.xml
...portal_components/mixin.erp5.ComputeNodeJsonTypeMixin.xml
+112
-0
master/bt5/slapos_jio_api_style/PortalTypeTypeMixinTemplateItem/type_mixin.xml
..._api_style/PortalTypeTypeMixinTemplateItem/type_mixin.xml
+1
-0
master/bt5/slapos_jio_api_style/bt/template_mixin_id_list
master/bt5/slapos_jio_api_style/bt/template_mixin_id_list
+1
-0
master/bt5/slapos_jio_api_style/bt/template_portal_type_type_mixin_list
...pos_jio_api_style/bt/template_portal_type_type_mixin_list
+1
-0
No files found.
master/bt5/slapos_jio_api_style/MixinTemplateItem/portal_components/mixin.erp5.ComputeNodeJsonTypeMixin.py
0 → 100644
View file @
2534c2bb
##############################################################################
#
# Copyright (c) 2024 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
from
AccessControl
import
ClassSecurityInfo
from
Products.ERP5Type
import
Permissions
import
json
class
ComputeNodeJsonTypeMixin
:
# Declarative security
security
=
ClassSecurityInfo
()
def
useRevision
(
self
):
return
getattr
(
self
,
"use_jio_api_revision"
,
False
)
security
.
declareProtected
(
Permissions
.
AccessContentsInformation
,
'asJSONText'
)
def
asJSONText
(
self
):
"""
Return a minimal representation of the Compute Node
"""
compute_node_dict
=
{
"$schema"
:
self
.
getPortalObject
().
portal_types
.
restrictedTraverse
(
self
.
getPortalType
()
).
absolute_url
()
+
"/getTextContent"
,
"portal_type"
:
"Compute Node"
,
"compute_node_id"
:
self
.
getReference
().
decode
(
"UTF-8"
),
"title"
:
self
.
getTitle
().
decode
(
"UTF-8"
),
"compute_partition_list"
:
[],
}
if
self
.
useRevision
():
web_section
=
self
.
getWebSectionValue
()
web_section
=
web_section
.
getRelativeUrl
()
if
web_section
else
self
.
REQUEST
.
get
(
"web_section_relative_url"
,
None
)
if
web_section
:
revision
=
self
.
getJIOAPIRevision
(
web_section
)
if
revision
:
compute_node_dict
[
"api_revision"
]
=
revision
compute_partition_list
=
self
.
contentValues
(
portal_type
=
"Compute Partition"
,
checked_permission
=
"View"
)
for
compute_partition
in
compute_partition_list
:
ip_list
=
[]
for
internet_protocol_address
in
compute_partition
.
contentValues
(
portal_type
=
'Internet Protocol Address'
):
ip_dict
=
{
"ip-address"
:
internet_protocol_address
.
getIpAddress
().
decode
(
"UTF-8"
),
"network-interface"
:
internet_protocol_address
.
getNetworkInterface
(
''
).
decode
(
"UTF-8"
),
}
if
internet_protocol_address
.
getGatewayIpAddress
(
''
):
ip_dict
[
"gateway-ip-address"
]
=
internet_protocol_address
.
getGatewayIpAddress
(
''
).
decode
(
"UTF-8"
)
if
internet_protocol_address
.
getNetmask
(
''
):
ip_dict
[
"netmask"
]
=
internet_protocol_address
.
getNetmask
(
''
).
decode
(
"UTF-8"
)
if
internet_protocol_address
.
getNetworkAddress
(
''
):
ip_dict
[
"network-address"
]
=
internet_protocol_address
.
getNetworkAddress
(
''
).
decode
(
"UTF-8"
)
ip_list
.
append
(
ip_dict
)
compute_node_dict
[
"compute_partition_list"
].
append
({
"partition_id"
:
compute_partition
.
getReference
(),
"ip_list"
:
ip_list
,
})
return
json
.
dumps
(
compute_node_dict
,
indent
=
2
)
master/bt5/slapos_jio_api_style/MixinTemplateItem/portal_components/mixin.erp5.ComputeNodeJsonTypeMixin.xml
0 → 100644
View file @
2534c2bb
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Mixin Component"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
ComputeNodeJsonTypeMixin
</string>
</value>
</item>
<item>
<key>
<string>
default_source_reference
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
mixin.erp5.ComputeNodeJsonTypeMixin
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Mixin Component
</string>
</value>
</item>
<item>
<key>
<string>
sid
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
text_content_error_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
text_content_warning_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
<value>
<string>
erp5
</string>
</value>
</item>
<item>
<key>
<string>
workflow_history
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
component_validation_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.Workflow"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_log
</string>
</key>
<value>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
validate
</string>
</value>
</item>
<item>
<key>
<string>
validation_state
</string>
</key>
<value>
<string>
validated
</string>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
master/bt5/slapos_jio_api_style/PortalTypeTypeMixinTemplateItem/type_mixin.xml
View file @
2534c2bb
<type_mixin>
<portal_type
id=
"Compute Node"
>
<item>
ComputeNodeJsonTypeMixin
</item>
<item>
JIOAPIRevisionMixin
</item>
</portal_type>
<portal_type
id=
"Slave Instance"
>
...
...
master/bt5/slapos_jio_api_style/bt/template_mixin_id_list
View file @
2534c2bb
mixin.erp5.ComputeNodeJsonTypeMixin
mixin.erp5.SoftwareInstallationJsonTypeMixin
mixin.erp5.SoftwareInstanceJsonTypeMixin
\ No newline at end of file
master/bt5/slapos_jio_api_style/bt/template_portal_type_type_mixin_list
View file @
2534c2bb
Compute Node | JIOAPIRevisionMixin
Compute Node | ComputeNodeJsonTypeMixin
Slave Instance | JIOAPIRevisionMixin
Software Installation | JIOAPIRevisionMixin
Software Installation | SoftwareInstallationJsonTypeMixin
...
...
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