We no longer need to implement the getValueRP operation. The WS-ResourceProperties portTypes, or operations, are generated in the MathServiceWSRF class. But we need to implement the add, subtract and createResource methods.
############################################################################
# Automatically generated by wsdl2web.py
# See LBNLCopyright for copyright notice!
###########################################################################
from generated.MathRPService.services.MathRPService.MathService import MathServiceWSRF
class Service(MathServiceWSRF):
def wsa_add(self, ps, address, **kw):
request,response = MathServiceWSRF.wsa_add(self, ps, address)
ctx = self.GetResourceContext(ps, address)
ctx.properties.Value += request
ctx.properties.LastOp = "ADDITION"
return request,response
def wsa_subtract(self, ps, address, **kw):
request,response = MathServiceWSRF.wsa_subtract(self, ps, address)
ctx = self.GetResourceContext(ps, address)
ctx.properties.Value -= request
ctx.properties.LastOp = "SUBTRACT"
return request,response
#
# The Factory Method for our Finished MathService
#
def wsa_createResource(self, ps, address, **kw):
# Get request and response
request,response = MathServiceWSRF.wsa_createResource(self, ps, address, **kw)
# Create Resource Context
from pyGridWare.utility.http import GetURLFromRequest
ctx = self.NewResourceContextMathPort(\
GetURLFromRequest(kw['request'])
)
# Initialize Value to 0
counter = ctx.properties
counter.Value = 0
# Create EndPointReference and set in response
from pyGridWare.addressing.AddressingUtils import AddressingUtils
epr = AddressingUtils.createEndpointReference(ctx)
response.EndpointReference = epr
return request,response
resource = Service()