Resource resolution GRPC client
How to use examples
Insecure channel
from proto.BluePrintCommon_pb2_grpc import ActionIdentifiers, CommonHeader
from proto.BluePrintProcessing_pb2_grpc import ExecutionServiceInput
from resource_resolution.grpc.client import Client as ResourceResolutionClient
def generate_messages():
commonHeader = CommonHeader()
commonHeader.requestId = "1234"
commonHeader.subRequestId = "1234-1"
commonHeader.originatorId = "CDS"
actionIdentifiers = ActionIdentifiers()
actionIdentifiers.blueprintName = "sample-cba"
actionIdentifiers.blueprintVersion = "1.0.0"
actionIdentifiers.actionName = "SampleScript"
input = ExecutionServiceInput(commonHeader=commonHeader, actionIdentifiers=actionIdentifiers)
commonHeader2 = CommonHeader()
commonHeader2.requestId = "1235"
commonHeader2.subRequestId = "1234-2"
commonHeader2.originatorId = "CDS"
input2 = ExecutionServiceInput(commonHeader=commonHeader2, actionIdentifiers=actionIdentifiers)
yield from [input, input2]
if __name__ == "__main__":
with ResourceResolutionClient("localhost:50052") as client:
for response in client.process(generate_messages()):
print(response)
Secure channel
from proto.BluePrintCommon_pb2_grpc import ActionIdentifiers, CommonHeader
from proto.BluePrintProcessing_pb2_grpc import ExecutionServiceInput
from resource_resolution.grpc.client import Client as ResourceResolutionClient
def generate_messages():
commonHeader = CommonHeader()
commonHeader.requestId = "1234"
commonHeader.subRequestId = "1234-1"
commonHeader.originatorId = "CDS"
actionIdentifiers = ActionIdentifiers()
actionIdentifiers.blueprintName = "sample-cba"
actionIdentifiers.blueprintVersion = "1.0.0"
actionIdentifiers.actionName = "SampleScript"
input = ExecutionServiceInput(commonHeader=commonHeader, actionIdentifiers=actionIdentifiers)
commonHeader2 = CommonHeader()
commonHeader2.requestId = "1235"
commonHeader2.subRequestId = "1234-2"
commonHeader2.originatorId = "CDS"
input2 = ExecutionServiceInput(commonHeader=commonHeader2, actionIdentifiers=actionIdentifiers)
yield from [input, input2]
if __name__ == "__main__":
with open("certs/py-executor/py-executor-chain.pem", "rb") as f:
with ResourceResolutionClient("localhost:50052", use_ssl=True, root_certificates=f.read()) as client:
for response in client.process(generate_messages()):
print(response)
Authorizarion header
from proto.BluePrintCommon_pb2 import ActionIdentifiers, CommonHeader
from proto.BluePrintProcessing_pb2 import ExecutionServiceInput
from resource_resolution.grpc.client import Client as ResourceResolutionClient
def generate_messages():
commonHeader = CommonHeader()
commonHeader.requestId = "1234"
commonHeader.subRequestId = "1234-1"
commonHeader.originatorId = "CDS"
actionIdentifiers = ActionIdentifiers()
actionIdentifiers.blueprintName = "sample-cba"
actionIdentifiers.blueprintVersion = "1.0.0"
actionIdentifiers.actionName = "SampleScript"
input = ExecutionServiceInput(commonHeader=commonHeader, actionIdentifiers=actionIdentifiers)
commonHeader2 = CommonHeader()
commonHeader2.requestId = "1235"
commonHeader2.subRequestId = "1234-2"
commonHeader2.originatorId = "CDS"
input2 = ExecutionServiceInput(commonHeader=commonHeader2, actionIdentifiers=actionIdentifiers)
yield from [input, input2]
if __name__ == "__main__":
with ResourceResolutionClient("127.0.0.1:9111", use_header_auth=True, header_auth_token="Token test") as client:
for response in client.process(generate_messages()):
print(response)
ResourceResoulution helper class
How to use examples
GRPC insecure channel
from resource_resolution.resource_resolution import ResourceResolution, WorkflowExecution, WorkflowExecutionResult
if __name__ == "__main__":
with ResourceResolution(use_header_auth=True, header_auth_token="Basic token") as rr:
for response in rr.execute_workflows( # type: WorkflowExecutionResult
WorkflowExecution(
blueprint_name="blueprintName",
blueprint_version="1.0",
workflow_name="resource-assignment"
)
):
if response.has_error:
print(response.error_message)
else:
print(response.payload)
HTTP retrieve/store template
from resource_resolution.resource_resolution import ResourceResolution
if __name__ == "__main__":
# If you want to use only HTTP you don't have to use context manager
r = ResourceResolution(
http_server_port=8081,
http_auth_user="ccsdkapps",
http_auth_pass="ccsdkapps",
http_use_tls=False
)
r.store_template(
blueprint_name="blueprintName",
blueprint_version="1.0.0",
artifact_name="test",
resolution_key="test",
result="test")
template = r.retrieve_template(
blueprint_name="blueprintName",
blueprint_version="1.0.0",
artifact_name="test",
resolution_key="test",
)
assert template.result == "test"
template.result = "another value"
template.store()
another_template = r.retrieve_template(
blueprint_name="blueprintName",
blueprint_version="1.0.0",
artifact_name="test",
resolution_key="test",
)
assert another_template.result == "another_value"