41 lines
2.0 KiB
Python
41 lines
2.0 KiB
Python
import re
|
|
|
|
class Pattern1:
|
|
|
|
def parseServicesAndMethods(self, metricExpression):
|
|
result = re.findall(r"type\(\"?service_method\"?\)[\s\n\r]*,[\s\n\r]*fromRelationship[\s\n\r]*\.[\s\n\r]*isServiceMethodOfService[\s\n\r]*\([\s\n\r]*type\(\"?service\"?\)[\s\n\r]*,[\s\n\r]*entityName[\s\n\r]*\.[\s\n\r]*in[\s\n\r]*\([\s\n\r]*([^\)]*)\)[\s\n\r]*\)[\s\n\r]*\,[\s\n\r]*entityName[\s\n\r]*\.[\s\n\r]*in\([\s\n\r]*([^\)]*)[\s\n\r]*\)", metricExpression,flags=re.IGNORECASE|re.X|re.MULTILINE)
|
|
services=[]
|
|
methods=[]
|
|
if result:
|
|
for r in result:
|
|
services=[s.strip() for s in r[0].split(",")]
|
|
methods=[s.strip() for s in r[1].split(",")]
|
|
|
|
return services, methods
|
|
|
|
class Pattern2:
|
|
|
|
def parseServicesAndMethods(self, metricExpression):
|
|
result = re.findall(r"type\(\"?service_method\"?\)[\s\n\r]*,[\s\n\r]*fromRelationship[\s\n\r]*\.[\s\n\r]*isServiceMethodOfService[\s\n\r]*\([\s\n\r]*type\(\"?service\"?\)[\s\n\r]*,[\s\n\r]*entityName[\s\n\r]*\.[\s\n\r]*in[\s\n\r]*\([\s\n\r]*([^\)]*)\),[\s\n\r]*tag\([^\)]*[\s\n\r]*\)[\s\n\r]*\)[\s\n\r]*\,[\s\n\r]*entityName[\s\n\r]*\.[\s\n\r]*in\([\s\n\r]*([^\)]*)[\s\n\r]*\)", metricExpression,flags=re.IGNORECASE|re.X|re.MULTILINE)
|
|
services=[]
|
|
methods=[]
|
|
if result:
|
|
for r in result:
|
|
services=[s.strip() for s in r[0].split(",")]
|
|
methods=[s.strip() for s in r[1].split(",")]
|
|
|
|
return services, methods
|
|
|
|
|
|
|
|
class Pattern3:
|
|
|
|
def parseServicesAndMethods(self, metricExpression):
|
|
result = re.findall(r"type\(\"?service_method\"?\)[\s\n\r]*,[\s\n\r]*entityId[\s\n\r]*[\s\n\r]*\([\s\n\r]*[\s\n\r]*([^\)]*)[\s\n\r]*\)", metricExpression,flags=re.IGNORECASE|re.X|re.MULTILINE)
|
|
services=[]
|
|
methods=[]
|
|
if result:
|
|
for r in result:
|
|
methods=[s.strip() for s in r.split(",")]
|
|
|
|
return services, methods |