示例#1
0
    def testUnequalCloudDiskEmbeddedArgs(self, mock_copyDisk, _):
        """Test unequal number of args for cloud embedded disk evidence type."""
        # Fail when zones don't match
        config.SHARED_FILESYSTEM = False
        config.TASK_MANAGER = 'PSQ'
        self.assertRaises(TurbiniaException, turbiniactl.process_args, [
            'googleclouddiskembedded', '--disk_name', 'disk1,disk2,disk3',
            '--zone', 'zone1,zone2', '--project', 'proj1,proj2,proj3',
            '--embedded_path', 'path1,path2,path3'
        ])

        # Fail when embedded path don't match
        self.assertRaises(TurbiniaException, turbiniactl.process_args, [
            'googleclouddiskembedded', '--disk_name', 'disk1,disk2,disk3',
            '--zone', 'zone1,zone2,zone3', '--project', 'proj1,proj2,proj3',
            '--embedded_path', 'path1,path2'
        ])

        # Fail when name don't match
        self.assertRaises(TurbiniaException, turbiniactl.process_args, [
            'googleclouddiskembedded', '--disk_name', 'disk1,disk2', '--zone',
            'zone1,zone2,zone3', '--project', 'proj1,proj2,proj3', '--name',
            'name1,name2', '--embedded_path', 'path1,path2,path3'
        ])
        # Fail when mount source don't match
        self.assertRaises(TurbiniaException, turbiniactl.process_args, [
            'googleclouddiskembedded', '--disk_name', 'disk1,disk2,disk3',
            '--zone', 'zone1,zone2,zone3', '--project', 'proj1,proj2,proj3',
            '--source', 'source1,source2', '--embedded_path',
            'path1,path2,path3'
        ])

        # Fail when project don't match
        self.assertRaises(TurbiniaException, turbiniactl.process_args, [
            'googleclouddiskembedded', '--disk_name', 'disk1,disk2,disk3',
            '--zone', 'zone1,zone2,zone3', '--project', 'proj1,proj2',
            '--source', 'source1,source2', '--embedded_path',
            'path1,path2,path3'
        ])

        # Pass when all the args match
        turbiniactl.process_evidence = mock.MagicMock(return_value=None)
        mock_copyDisk.return_value = compute.GoogleComputeDisk(
            'fake-proj', 'fake-zone', 'fake-disk-copy')
        turbiniactl.process_args([
            'googleclouddiskembedded', '--disk_name', 'disk1,disk2,disk3',
            '--zone', 'zone1,zone2,zone3', '--project', 'proj1,proj2,proj3',
            '--embedded_path', 'path1,path2,path3'
        ])
        self.assertTrue(turbiniactl.process_evidence.called)

        # Raise error when running locally
        config.SHARED_FILESYSTEM = True
        with self.assertRaisesRegex(TurbiniaException, 'Cloud only'):
            turbiniactl.process_args([
                'googleclouddiskembedded', '--disk_name', 'disk1,disk2,disk3',
                '--zone', 'zone1,zone2,zone3', '--project',
                'proj1,proj2,proj3', '--embedded_path', 'path1,path2,path3'
            ])
示例#2
0
 def testUnequalRawdiskArgs(self, mockClient):
     """Test unequal number of args for rawdisk evidence type."""
     self.assertRaises(TurbiniaException, turbiniactl.process_args, [
         'rawdisk', '--source_path', 'img1,img2', '--source',
         'source,source2,source3'
     ])
     self.assertRaises(TurbiniaException, turbiniactl.process_args, [
         'rawdisk', '--source_path', 'img1,img2', '--name',
         'name1,name2,name3'
     ])
     turbiniactl.process_evidence = mock.MagicMock(return_value=None)
     turbiniactl.process_args(
         ['rawdisk', '--source_path', 'img1,img2', '--name', 'name1,name2'])
     self.assertTrue(turbiniactl.process_evidence.called)
示例#3
0
    def testUnequalRawMemoryArgs(self, _):
        """Test unequal number of args for rawmemory evidence type."""
        self.assertRaises(TurbiniaException, turbiniactl.process_args, [
            'rawmemory', '--source_path', 'disk1,disk2,disk3', '--profile',
            'prof1,prof2,prof3,prof4', '--module_list', 'mock'
        ])
        self.assertRaises(TurbiniaException, turbiniactl.process_args, [
            'rawmemory', '--source_path', 'disk1,disk2,disk3', '--profile',
            'prof1,prof2,prof3', '--module_list', 'mock', '--name',
            'name1,name2'
        ])

        turbiniactl.process_evidence = mock.MagicMock(return_value=None)
        turbiniactl.process_args([
            'rawmemory', '--source_path', 'disk1,disk2,disk3', '--profile',
            'prof1,prof2,prof3', '--module_list', 'mock'
        ])
        self.assertTrue(turbiniactl.process_evidence.called)
示例#4
0
    def testUnequalCompresseddirectoryArgs(self, _):
        """Test unequal number of args for compresseddirectory evidence type."""
        self.assertRaises(TurbiniaException, turbiniactl.process_args, [
            'compresseddirectory', '--source_path', 'img1,img2,img3',
            '--source', 'source1,source2'
        ])

        self.assertRaises(TurbiniaException, turbiniactl.process_args, [
            'compresseddirectory', '--source_path', 'img1,img2', '--name',
            'name1,name2,name3'
        ])

        turbiniactl.process_evidence = mock.MagicMock(return_value=None)
        turbiniactl.process_args([
            'compresseddirectory', '--source_path', 'img1,img2', '--name',
            'name1,name2'
        ])
        self.assertTrue(turbiniactl.process_evidence.called)
示例#5
0
    def testUnequalHindsightArgs(self, _):
        """Test unequal number of args for hindsight evidence type."""
        self.assertRaises(TurbiniaException, turbiniactl.process_args, [
            'hindsight', '--source_path', 'disk1,disk2,disk3', '--format',
            'prof1,prof2,prof3', '--name', 'name1,name2'
        ])
        self.assertRaises(TurbiniaException, turbiniactl.process_args, [
            'hindsight', '--source_path', 'disk1,disk2,disk3', '--format',
            'sqlite,sqlite,sqlite,sqlite'
        ])
        self.assertRaises(TurbiniaException, turbiniactl.process_args, [
            'hindsight', '--source_path', 'disk1,disk2,disk3', '--format',
            'sqlite,sqlite,sqlite', '--browser_type', 'type1,type2'
        ])

        turbiniactl.process_evidence = mock.MagicMock(return_value=None)
        turbiniactl.process_args(
            ['hindsight', '--source_path', 'disk1,disk2,disk3'])
        self.assertTrue(turbiniactl.process_evidence.called)
示例#6
0
    def testUnequalCloudDiskArgs(self, mockParser, mock_copyDisk, _):
        """Test unequal number of args for cloud disk evidence type."""
        config.SHARED_FILESYSTEM = False
        config.TASK_MANAGER = 'PSQ'
        mockArgs = argparse.Namespace(
            all_fields=False,
            command='googleclouddisk',
            config_file=None,
            copy_only=False,
            debug=False,
            debug_tasks=False,
            decryption_keys=[],
            disk_name=['disk1', 'disk2', 'disk3'],
            dump_json=False,
            embedded_path=['path1', 'path2', 'path3'],
            filter_patterns_file=None,
            force_evidence=False,
            jobs_allowlist=[],
            jobs_denylist=[],
            log_file=None,
            mount_partition=None,
            name=None,
            output_dir=None,
            poll_interval=60,
            project=['proj1', 'proj2', 'proj3'],
            quiet=False,
            recipe=None,
            recipe_path=None,
            request_id=None,
            server=False,
            skip_recipe_validation=False,
            source=[None],
            verbose=True,
            wait=False,
            yara_rules_file=None,
            zone=['zone1', 'zone2'],
            group_name=None,
            reason=None,
            all_args=None)
        mockParser.return_value = mockArgs

        # Fail when zones dont match
        self.assertRaises(TurbiniaException, turbiniactl.process_args, [
            'googleclouddisk', '--disk_name', 'disk1,disk2,disk3', '--zone',
            'zone1,zone2', '--project', 'proj1,proj2,proj3'
        ])

        # Fail when projects don't match
        mockArgs.zone = ['zone1', 'zone2', 'zone3']
        mockArgs.project = ['proj1', 'proj2']
        mockParser.return_value = mockArgs
        self.assertRaises(TurbiniaException, turbiniactl.process_args, [
            'googleclouddisk', '--disk_name', 'disk1,disk2,disk3', '--zone',
            'zone1,zone2,zone3', '--project', 'proj1,proj2'
        ])

        #Fail when names dont match
        mockArgs.project = ['proj1', 'proj2', 'proj3']
        mockArgs.name = ['name1', 'name2']
        mockParser.return_value = mockArgs
        self.assertRaises(TurbiniaException, turbiniactl.process_args, [
            'googleclouddisk', '--disk_name', 'disk1,disk2,disk3', '--zone',
            'zone1,zone2,zone3', '--project', 'proj1,proj2,proj3', '--name',
            'name1,name2'
        ])
        mockArgs.name = ['name1', 'name2', 'name3']
        mockArgs.source = ['source1', 'source2']
        self.assertRaises(TurbiniaException, turbiniactl.process_args, [
            'googleclouddisk', '--disk_name', 'disk1,disk2,disk3', '--zone',
            'zone1,zone2,zone3', '--project', 'proj1,proj2,proj3', '--source',
            'source1,source2'
        ])

        mockArgs.source = ['source1', 'source2', 'source3']
        turbiniactl.process_evidence = mock.MagicMock(return_value=None)
        mock_copyDisk.return_value = compute.GoogleComputeDisk(
            'fake-proj', 'fake-zone', 'fake-disk-copy')
        turbiniactl.process_args([
            'googleclouddisk', '--disk_name', 'disk1,disk2,disk3', '--zone',
            'zone1,zone2,zone3', '--project', 'proj1,proj2,proj3'
        ])
        self.assertTrue(turbiniactl.process_evidence.called)