Commit 7187b0de authored by Romain Courteaud's avatar Romain Courteaud

REVERT: stop spreading api code in every bt5

parent 812a96a2
...@@ -28,12 +28,9 @@ ...@@ -28,12 +28,9 @@
from AccessControl import ClassSecurityInfo from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet from Products.ERP5Type import Permissions, PropertySheet
from erp5.component.document.JSONType import JSONType
from erp5.component.document.Machine import Machine from erp5.component.document.Machine import Machine
import json class Computer(Machine):
class Computer(Machine, JSONType):
""" """
This class represents a computer like personal computer, printer, router. This class represents a computer like personal computer, printer, router.
""" """
...@@ -57,58 +54,4 @@ class Computer(Machine, JSONType): ...@@ -57,58 +54,4 @@ class Computer(Machine, JSONType):
, PropertySheet.Mapping , PropertySheet.Mapping
, PropertySheet.Task , PropertySheet.Task
, PropertySheet.Reference , PropertySheet.Reference
, PropertySheet.TextDocument
, PropertySheet.JSONTypeConstraint
) )
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)
...@@ -29,9 +29,8 @@ ...@@ -29,9 +29,8 @@
from AccessControl import ClassSecurityInfo from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet from Products.ERP5Type import Permissions, PropertySheet
from erp5.component.document.Item import Item from erp5.component.document.Item import Item
from erp5.component.document.JSONType import JSONType
class ComputerPartition(Item, JSONType): class ComputerPartition(Item):
"""Computer partition represents usage of Computer""" """Computer partition represents usage of Computer"""
meta_type = 'ERP5 Computer Partition' meta_type = 'ERP5 Computer Partition'
portal_type = 'Computer Partition' portal_type = 'Computer Partition'
...@@ -50,6 +49,4 @@ class ComputerPartition(Item, JSONType): ...@@ -50,6 +49,4 @@ class ComputerPartition(Item, JSONType):
, PropertySheet.Mapping , PropertySheet.Mapping
, PropertySheet.Task , PropertySheet.Task
, PropertySheet.Reference , PropertySheet.Reference
, PropertySheet.TextDocument
, PropertySheet.JSONTypeConstraint
) )
...@@ -6,12 +6,6 @@ ...@@ -6,12 +6,6 @@
</pickle> </pickle>
<pickle> <pickle>
<dictionary> <dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item> <item>
<key> <string>default_reference</string> </key> <key> <string>default_reference</string> </key>
<value> <string>ComputerPartition</string> </value> <value> <string>ComputerPartition</string> </value>
...@@ -20,12 +14,6 @@ ...@@ -20,12 +14,6 @@
<key> <string>default_source_reference</string> </key> <key> <string>default_source_reference</string> </key>
<value> <string>Products.ERP5.Document.ComputerPartition</string> </value> <value> <string>Products.ERP5.Document.ComputerPartition</string> </value>
</item> </item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>document.erp5.ComputerPartition</string> </value> <value> <string>document.erp5.ComputerPartition</string> </value>
...@@ -59,28 +47,13 @@ ...@@ -59,28 +47,13 @@
<item> <item>
<key> <string>workflow_history</string> </key> <key> <string>workflow_history</string> </key>
<value> <value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
</record> </record>
<record id="2" aka="AAAAAAAAAAI="> <record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle> <pickle>
<global name="PersistentMapping" module="Persistence.mapping"/> <global name="PersistentMapping" module="Persistence.mapping"/>
</pickle> </pickle>
...@@ -93,7 +66,7 @@ ...@@ -93,7 +66,7 @@
<item> <item>
<key> <string>component_validation_workflow</string> </key> <key> <string>component_validation_workflow</string> </key>
<value> <value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value> </value>
</item> </item>
</dictionary> </dictionary>
...@@ -102,7 +75,7 @@ ...@@ -102,7 +75,7 @@
</dictionary> </dictionary>
</pickle> </pickle>
</record> </record>
<record id="4" aka="AAAAAAAAAAQ="> <record id="3" aka="AAAAAAAAAAM=">
<pickle> <pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/> <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle> </pickle>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<ZopeData> <ZopeData>
<record id="1" aka="AAAAAAAAAAE="> <record id="1" aka="AAAAAAAAAAE=">
<pickle> <pickle>
<global name="JSON Type" module="erp5.portal_type"/> <global name="Base Type" module="erp5.portal_type"/>
</pickle> </pickle>
<pickle> <pickle>
<dictionary> <dictionary>
...@@ -18,6 +18,10 @@ ...@@ -18,6 +18,10 @@
<none/> <none/>
</value> </value>
</item> </item>
<item>
<key> <string>factory</string> </key>
<value> <string>addXMLObject</string> </value>
</item>
<item> <item>
<key> <string>group_list</string> </key> <key> <string>group_list</string> </key>
<value> <value>
...@@ -42,119 +46,7 @@ ...@@ -42,119 +46,7 @@
</item> </item>
<item> <item>
<key> <string>portal_type</string> </key> <key> <string>portal_type</string> </key>
<value> <string>JSON Type</string> </value> <value> <string>Base Type</string> </value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string>{\n
"$schema": "http://json-schema.org/draft-07/schema#",\n
"$id": "compute-node-base-schema.json",\n
"title": "Compute Node",\n
"description": "Compute Node",\n
"type": "object",\n
"properties": {\n
"$schema": {\n
"title": "Schema URL",\n
"type": "string",\n
"description": "URL of the response schema"\n
},\n
"portal_type": {\n
"title": "Portal Type",\n
"const": "Compute Node",\n
"type": "string"\n
},\n
"compute_node_id": {\n
"title": "Compute Node ID",\n
"type": "string",\n
"description": "Unique Id of the object. It is not editable."\n
},\n
"title": {\n
"title": "Title",\n
"type": "string",\n
"maxLength": 200\n
},\n
"compute_partition_list": {\n
"title": "Compute Partition List",\n
"type": "array",\n
"descritpion": "List Compute Node Partitions hosted on the computer",\n
"items": {\n
"type": "object",\n
"title": "Compute Node Partition",\n
"description": "Compute Node Partitions host Software Instances",\n
"properties": {\n
"partition_id": {\n
"title": "Partition ID",\n
"descritpion": "Unique ID of the Compute Node Partition",\n
"type": "string"\n
},\n
"ip_list": {\n
"title": "IP List",\n
"type": "array",\n
"descritpion": "List of IPs usable by the Software Instance on the partition. Used to configure firewall when necessary and allow only related instances to access it.",\n
"items": {\n
"type": "object",\n
"title": "Internet Protocol Address",\n
"description": "All element to describe the interface",\n
"properties": {\n
"ip-address": {\n
"title": "IP Address",\n
"type": "string"\n
},\n
"network-interface": {\n
"title": "Network Interface",\n
"type": "string"\n
},\n
"gateway-ip-address": {\n
"title": "Gateway Ip Address",\n
"type": "string"\n
},\n
"netmask": {\n
"title": "Netmask",\n
"type": "string"\n
},\n
"network-address": {\n
"title": "Network Address",\n
"type": "string"\n
}\n
},\n
"required": ["ip-address"]\n
}\n
}\n
},\n
"required": ["partition_id"]\n
}\n
},\n
"access_token": {\n
"title": "Access Token",\n
"description": "Access Token to retrieve Computer Certificate",\n
"type": "string",\n
"maxLength": 200\n
},\n
"certificate_url_access": {\n
"title": "Certificate URL Access",\n
"type": "string",\n
"description": "If defined, url to retrieve certificates"\n
},\n
"slapos_master_web": {\n
"title": "SlapOS Master Web Interface",\n
"type": "string"\n
},\n
"slapos_master_api": {\n
"title": "Slap API Interface Url",\n
"type": "string"\n
},\n
"initialisation_comand": {\n
"title": "Command to initiate slapos node",\n
"type": "string"\n
},\n
"api_revision": {\n
"title": "API Revision",\n
"type": "string",\n
"description": "The API Revision is set by the master node to mark when the element was last processed. It is incremental. If revision has changed, critical data has been updated"\n
}\n
}\n
}\n
</string> </value>
</item> </item>
<item> <item>
<key> <string>type_class</string> </key> <key> <string>type_class</string> </key>
......
...@@ -2,10 +2,29 @@ ...@@ -2,10 +2,29 @@
<ZopeData> <ZopeData>
<record id="1" aka="AAAAAAAAAAE="> <record id="1" aka="AAAAAAAAAAE=">
<pickle> <pickle>
<global name="JSON Type" module="erp5.portal_type"/> <global name="Base Type" module="erp5.portal_type"/>
</pickle> </pickle>
<pickle> <pickle>
<dictionary> <dictionary>
<item>
<key> <string>_property_domain_dict</string> </key>
<value>
<dictionary>
<item>
<key> <string>short_title</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
<item> <item>
<key> <string>acquire_local_roles</string> </key> <key> <string>acquire_local_roles</string> </key>
<value> <int>1</int> </value> <value> <int>1</int> </value>
...@@ -14,12 +33,24 @@ ...@@ -14,12 +33,24 @@
<key> <string>content_icon</string> </key> <key> <string>content_icon</string> </key>
<value> <string>document_icon.gif</string> </value> <value> <string>document_icon.gif</string> </value>
</item> </item>
<item>
<key> <string>content_meta_type</string> </key>
<value> <string>ERP5 Computer</string> </value>
</item>
<item> <item>
<key> <string>description</string> </key> <key> <string>description</string> </key>
<value> <value>
<none/> <none/>
</value> </value>
</item> </item>
<item>
<key> <string>factory</string> </key>
<value> <string>addComputerPartition</string> </value>
</item>
<item>
<key> <string>filter_content_types</string> </key>
<value> <int>1</int> </value>
</item>
<item> <item>
<key> <string>group_list</string> </key> <key> <string>group_list</string> </key>
<value> <value>
...@@ -45,8 +76,8 @@ ...@@ -45,8 +76,8 @@
</value> </value>
</item> </item>
<item> <item>
<key> <string>portal_type</string> </key> <key> <string>title</string> </key>
<value> <string>JSON Type</string> </value> <value> <string>Compute Partition</string> </value>
</item> </item>
<item> <item>
<key> <string>type_class</string> </key> <key> <string>type_class</string> </key>
...@@ -61,4 +92,48 @@ ...@@ -61,4 +92,48 @@
</dictionary> </dictionary>
</pickle> </pickle>
</record> </record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>domain_name</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>property_name</string> </key>
<value> <string>short_title</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<tuple>
<global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>domain_name</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>property_name</string> </key>
<value> <string>title</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData> </ZopeData>
erp5_base erp5_base
erp5_immobilisation erp5_immobilisation
erp5_json_type \ No newline at end of file
\ No newline at end of file
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