Ejemplo n.º 1
0
 def create_id_set(self):
     self.id_set = re_create_id_set(id_set_path=self.output,
                                    pack_to_create=self.input,
                                    print_logs=self.print_logs)
     self.add_command_to_implementing_integrations_mapping()
     self.save_id_set()
     return self.id_set
Ejemplo n.º 2
0
    def create_id_set(self):
        self.id_set, excluded_items_by_pack, excluded_items_by_type = re_create_id_set(
            id_set_path=self.output,
            pack_to_create=self.input,
            print_logs=self.print_logs,
            fail_on_duplicates=self.fail_duplicates,
            marketplace=self.marketplace)

        self.add_command_to_implementing_integrations_mapping()
        self.save_id_set()
        return self.id_set, excluded_items_by_pack, excluded_items_by_type
Ejemplo n.º 3
0
    def test_find_duplicates(self):
        sys.path.insert(1, os.getcwd())
        # Make the script run from tests dir
        os.chdir(
            os.path.abspath(os.path.join(os.path.dirname(__file__),
                                         TESTS_DIR)))

        # create duplicate report
        temp_report = tempfile.NamedTemporaryFile(
            mode="w+",
            prefix='report-',  # disable-secrets-detection
            suffix='.json',
            dir='Reports')  # disable-secrets-detection
        json.dump(REPORT_DATA, temp_report)
        temp_report.flush()
        os.fsync(temp_report.fileno())
        temp_report2 = tempfile.NamedTemporaryFile(
            mode="w+",
            prefix='report-',  # disable-secrets-detection
            suffix='.json',
            dir='Reports')  # disable-secrets-detection
        json.dump(REPORT_DATA, temp_report2)
        temp_report2.flush()
        os.fsync(temp_report2.fileno())

        # create duplicate Widgets
        temp_widget = tempfile.NamedTemporaryFile(
            mode="w+",
            prefix='widget-',  # disable-secrets-detection
            suffix='.json',
            dir='Widgets')  # disable-secrets-detection
        json.dump(WIDGET_DATA, temp_widget)
        temp_widget.flush()
        os.fsync(temp_widget.fileno())
        temp_widget2 = tempfile.NamedTemporaryFile(
            mode="w+",
            prefix='widget-',  # disable-secrets-detection
            suffix='.json',
            dir='Widgets')  # disable-secrets-detection
        json.dump(WIDGET_DATA, temp_widget2)
        temp_widget2.flush()
        os.fsync(temp_widget2.fileno())

        # create duplicate Classifier
        temp_classifier = tempfile.NamedTemporaryFile(
            mode="w+",
            prefix='classifier-',  # disable-secrets-detection
            suffix='.json',
            dir='Classifiers')  # disable-secrets-detection
        json.dump(WIDGET_DATA, temp_classifier)
        temp_classifier.flush()
        os.fsync(temp_classifier.fileno())
        temp_classifier2 = tempfile.NamedTemporaryFile(
            mode="w+",
            prefix='classifier-',  # disable-secrets-detection
            suffix='.json',
            dir='Classifiers')  # disable-secrets-detection
        json.dump(WIDGET_DATA, temp_classifier2)
        temp_classifier2.flush()
        os.fsync(temp_classifier2.fileno())

        # create duplicate Layout
        temp_layout = tempfile.NamedTemporaryFile(
            mode="w+",
            prefix='layout-',  # disable-secrets-detection
            suffix='.json',
            dir='Layouts')  # disable-secrets-detection
        json.dump(LAYOUT_DATA, temp_layout)
        temp_layout.flush()
        os.fsync(temp_layout.fileno())
        temp_layout2 = tempfile.NamedTemporaryFile(
            mode="w+",
            prefix='layout-',
            suffix='.json',
            # disable-secrets-detection
            dir='Packs/CortexXDR/Layouts')  # disable-secrets-detection
        json.dump(LAYOUT_DATA, temp_layout2)
        temp_layout2.flush()
        os.fsync(temp_layout2.fileno())

        # create duplicate Dashboard
        temp_dashboard = tempfile.NamedTemporaryFile(
            mode="w+",
            prefix='dashboard-',  # disable-secrets-detection
            suffix='.json',
            dir='Dashboards')  # disable-secrets-detection
        json.dump(DASHBOARD_DATA, temp_dashboard)
        temp_dashboard.flush()
        os.fsync(temp_dashboard.fileno())
        temp_dashboard2 = tempfile.NamedTemporaryFile(
            mode="w+",
            prefix='dashboard-',  # disable-secrets-detection
            suffix='.json',
            dir='Dashboards')  # disable-secrets-detection
        json.dump(DASHBOARD_DATA2, temp_dashboard2)
        temp_dashboard2.flush()
        os.fsync(temp_dashboard2.fileno())

        # create one incident type field and one indicator type field with same data
        temp_incident_field = tempfile.NamedTemporaryFile(
            mode='w+',
            prefix='incidentfield-',
            # disable-secrets-detection
            suffix='.json',
            dir='IncidentFields')  # disable-secrets-detection
        json.dump(INCIDENT_FIELD_DATA, temp_incident_field)
        temp_incident_field.flush()
        os.fsync(temp_incident_field.fileno())
        temp_indicator_field = tempfile.NamedTemporaryFile(
            mode='w+',
            prefix='incidentfield-',
            # disable-secrets-detection
            suffix='.json',
            dir='IndicatorFields')
        json.dump(INCIDENT_FIELD_DATA, temp_indicator_field)
        temp_indicator_field.flush()
        os.fsync(temp_indicator_field.fileno())

        # create temporary file for id_set
        temp_id_set = tempfile.NamedTemporaryFile(
            mode="w+",
            prefix='temp_id_set-',  # disable-secrets-detection
            suffix='.json',
            dir='Tests/scripts')  # disable-secrets-detection
        json_path = temp_id_set.name

        re_create_id_set(json_path, [
            'Reports', 'Layouts', 'Widgets', 'Classifiers', 'Dashboards',
            'IndicatorFields', 'IncidentFields'
        ])
        with open(json_path) as json_file:
            data = json.load(json_file)
            dup_data = find_duplicates(data)
            assert any('temp-widget-dup-check' in i for i in dup_data)
            assert any('temp-report-dup-check' in i for i in dup_data)
            assert any('temp-widget-dup-check' in i for i in dup_data)
            assert any('dup-check-dashbaord' in i for i in dup_data)
            assert any('layout-dup-check-id' in i for i in dup_data)
            assert any('incident_account_field_dup_check' in i
                       for i in dup_data)
Ejemplo n.º 4
0
 def create_id_set(self):
     return re_create_id_set(id_set_path=self.output,
                             print_logs=self.print_logs)
Ejemplo n.º 5
0
 def create_id_set(self):
     return re_create_id_set(self.output)