'Launch AnalyzeClientMemory flow and return its output as a string.
Args:
request: A RekallRequest() proto.
Returns:
The session_id of the AnalyzeClientMemory flow.'

def LaunchRekallPlugin(self, request):

    with test_lib.ConfigOverrider({'Client.rekall_profile_cache_path': self.temp_dir}):
        image_path = os.path.join(self.base_path, 'win7_trial_64bit.raw')
        request.device.path = image_path
        self.CreateClient()
        for s in flow_test_lib.TestFlowHelper(memory.AnalyzeClientMemory.__name__, action_mocks.MemoryClientMock(grr_rekall.RekallAction, tempfiles.DeleteGRRTempFiles), token=self.token, client_id=self.client_id, request=request):
            session_id = s
        test_profile_dir = os.path.join(config.CONFIG['Test.data_dir'], 'profiles')
        self.assertEqual(json.load(gzip.open(os.path.join(self.temp_dir, 'v1.0/pe.gz'))), json.load(gzip.open(os.path.join(test_profile_dir, 'v1.0/pe.gz'))))
        p_name = 'v1.0/nt/GUID/F8E2A8B5C9B74BF4A6E4A48F180099942.gz'
        self.assertEqual(json.load(gzip.open(os.path.join(self.temp_dir, p_name))), json.load(gzip.open(os.path.join(test_profile_dir, p_name))))
    return session_id
