[Erp5-report] r42374 davide.tammaro - /erp5/trunk/products/Vifib/Tool/VifibConduit.py

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Jan 17 13:19:24 CET 2011


Author: davide.tammaro
Date: Mon Jan 17 13:19:24 2011
New Revision: 42374

URL: http://svn.erp5.org?rev=42374&view=rev
Log:
Added VifibConduit.py

Added:
    erp5/trunk/products/Vifib/Tool/VifibConduit.py

Added: erp5/trunk/products/Vifib/Tool/VifibConduit.py
URL: http://svn.erp5.org/erp5/trunk/products/Vifib/Tool/VifibConduit.py?rev=42374&view=auto
==============================================================================
--- erp5/trunk/products/Vifib/Tool/VifibConduit.py (added)
+++ erp5/trunk/products/Vifib/Tool/VifibConduit.py [utf8] Mon Jan 17 13:19:24 2011
@@ -0,0 +1,83 @@
+# -*- coding: utf-8 -*-
+
+from AccessControl import ClassSecurityInfo
+from AccessControl import Unauthorized
+from AccessControl.SecurityManagement import newSecurityManager
+from OFS.Traversable import NotFound
+from Products.DCWorkflow.DCWorkflow import ValidationFailed
+from Products.ERP5Security.ERP5UserManager import SUPER_USER
+from Products.ERP5Type.Globals import InitializeClass
+from Products.ERP5Type.Tool.BaseTool import BaseTool
+from Products.ERP5Type.UnrestrictedMethod import UnrestrictedMethod
+from slapos.slap.slap import Computer
+from slapos.slap.slap import ComputerPartition as SlapComputerPartition
+from slapos.slap.slap import SoftwareInstance
+from slapos.slap.slap import SoftwareRelease
+from zLOG import LOG, INFO
+import xml_marshaller
+from lxml import etree
+from lxml.etree import Element
+parser = etree.XMLParser(remove_blank_text=True)
+
+
+class VifibConduit():
+  """This conduit is used to synchronize tiosafe packing list and erp5"""  
+
+  def __init__(self):
+    pass
+
+  def convertToXml(self, xml):
+    """
+    if xml is a string, convert it in a node
+    """
+    if xml is None: return None
+    if isinstance(xml, (str, unicode)):
+      if isinstance(xml, unicode):
+        xml = xml.encode('utf-8')
+      #LOG('VifibCounduit', INFO, '%s' % xml, error=True)
+      xml = etree.XML(xml, parser=parser)
+    #if we have the xml from the node erp5 we just take the subnode
+    if xml.xpath('local-name()') == 'erp5':
+      xml = xml[0]
+    return xml
+
+
+
+  def addNode(self, object=None, xml=None):
+    """
+      This method create an object
+    """
+    #LOG('VifibConduit-check-3', INFO, '%s' % xml, error=True)
+    xml = self.convertToXml(xml)
+    tags_text = {} 
+    #fill up a dict with (tag - text) pairs
+    for element in xml.iter():
+      tags_text[element.tag] = element.text
+    #retrieve the packing list module
+    sale_packing_list_portal_type = 'Sale Packing List'
+    sale_packing_list_module = \
+    object.getPortalObject().getDefaultModule(sale_packing_list_portal_type)    
+    #We create the new packing list
+     
+    usage_report_sale_packing_list_document = \
+        sale_packing_list_module.newContent(
+        portal_type = 'Sale Packing List',
+      )
+    
+    usage_report_sale_packing_list_document.confirm()
+    usage_report_sale_packing_list_document.start()
+    #Note inverted time and date---remember to correct in slapreport 
+    usage_report_sale_packing_list_document.edit(
+      start_date=tags_text['time'],
+      start_time=tags_text['date'],
+      memory=tags_text['Memory'],
+      cpu_time=tags_text['CpuTime'],
+      cpu_percent=tags_text['CPU'],
+      rss=tags_text['RSS'],
+    )
+    
+    return usage_report_sale_packing_list_document
+
+    #software_release_module_id = object.getDefaultModuleId(portal_type = 'Sale Packing List') 
+    #software_release_module_id = self.portal.restrictedTraverse(software_release_module_id)    
+    #software_release = software_release_module.newContent(portal_type = 'Sale Packing List')



More information about the Erp5-report mailing list