# 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" ```