Esempio n. 1
0
 def test_create_sat6_unknown(self):
     """Test the method to create a Sat 6 interface."""
     satellite_version = SourceOptions.SATELLITE_VERSION_62
     api_version = 9
     api = create(satellite_version, api_version, self.scan_task,
                  self.conn_result)
     self.assertEqual(api, None)
Esempio n. 2
0
 def test_create_sat_none(self):
     """Test the method to fail to create a Sat interface."""
     satellite_version = None
     api_version = 1
     api = create(satellite_version, api_version, self.scan_task,
                  self.conn_result)
     self.assertEqual(api, None)
Esempio n. 3
0
 def test_create_sat6_v2(self):
     """Test the method to create a Sat 6 interface."""
     satellite_version = SourceOptions.SATELLITE_VERSION_62
     api_version = 2
     api = create(satellite_version, api_version, self.scan_task,
                  self.conn_result)
     self.assertEqual(api.__class__, SatelliteSixV2)
 def test_create_sat6_v2(self):
     """Test the method to create a Sat 6 interface."""
     satellite_version = SATELLITE_VERSION_6
     api_version = 2
     api = create(satellite_version, api_version, self.scan_job,
                  self.scan_task)
     self.assertEqual(api.__class__, SatelliteSixV2)
 def test_create_sat6_unknown(self):
     """Test the method to create a Sat 6 interface."""
     satellite_version = SATELLITE_VERSION_6
     api_version = 9
     api = create(satellite_version, api_version, self.scan_job,
                  self.scan_task)
     self.assertEqual(api, None)
Esempio n. 6
0
    def run(self):
        """Scan network range ang attempt connections."""
        satellite_version = None
        options = self.source.options
        if options:
            satellite_version = options.satellite_version

        if satellite_version is None:
            error_message = 'Satellite version is unknown. '
            error_message += 'Connect scan failed for %s.' % self.scan_task
            return error_message, ScanTask.FAILED

        try:
            status_code, api_version = utils.status(self.scan_task,
                                                    satellite_version)
            if status_code == 200:
                api = create(satellite_version, api_version, self.scan_task,
                             self.conn_result)
                if not api:
                    error_message = 'Satellite version %s with '\
                        'api version %s is not supported.\n' %\
                        (satellite_version, api_version)
                    error_message += 'Connect scan failed for %s.' % \
                        self.scan_task
                    return error_message, ScanTask.FAILED
                api.host_count()
                api.hosts()
            else:
                error_message = 'Connect scan failed for %s.' % self.scan_task
                return error_message, ScanTask.FAILED
        except SatelliteException as sat_error:
            error_message = 'Satellite error encountered: %s\n' % sat_error
            error_message += 'Connect scan failed for %s.' % self.scan_task
            return error_message, ScanTask.FAILED
        except exceptions.ConnectionError as conn_error:
            error_message = 'Satellite error encountered: %s\n' % conn_error
            error_message += 'Connect scan failed for %s.' % self.scan_task
            return error_message, ScanTask.FAILED
        except TimeoutError as timeout_error:
            error_message = 'Satellite error encountered: %s\n' % timeout_error
            error_message += 'Connect scan failed for %s.' % self.scan_task
            return error_message, ScanTask.FAILED
        except Exception as unknown_error:  # pylint: disable=broad-except
            error_message = 'Satellite error encountered: %s\n' % unknown_error
            error_message += 'Inspect scan failed for %s.' % self.scan_task
            return error_message, ScanTask.FAILED

        return None, ScanTask.COMPLETED
Esempio n. 7
0
    def run(self):
        """Scan Satellite for system connection data."""
        try:
            status_code, api_version, satellite_version = \
                utils.status(self.scan_task)
            if status_code == 200:
                api = create(satellite_version, api_version, self.scan_job,
                             self.scan_task)
                if not api:
                    error_message = 'Satellite version %s with '\
                        'api version %s is not supported.\n' %\
                        (satellite_version, api_version)
                    error_message += 'Connect scan failed for %s. ' % \
                        self.source.name
                    return error_message, ScanTask.FAILED
                api.host_count()
                api.hosts()
            else:
                error_message = 'Connect scan failed for source %s.' \
                    % self.source.name
                return error_message, ScanTask.FAILED
        except SatelliteAuthException as auth_error:
            error_message = 'Satellite error encountered: %s. ' % auth_error
            error_message += 'Connect scan failed for source %s.' \
                % self.source.name
            return error_message, ScanTask.FAILED
        except SatelliteException as sat_error:
            error_message = 'Satellite error encountered: %s. ' % sat_error
            error_message += 'Connect scan failed for source %s.' \
                % self.source.name
            return error_message, ScanTask.FAILED
        except exceptions.ConnectionError as conn_error:
            error_message = 'Satellite error encountered: %s. ' % conn_error
            error_message += 'Connect scan failed for source %s.' \
                % self.source.name
            return error_message, ScanTask.FAILED
        except TimeoutError as timeout_error:
            error_message = 'Satellite error encountered: %s. ' % timeout_error
            error_message += 'Connect scan failed for source %s.' \
                % self.source.name
            return error_message, ScanTask.FAILED
        except socket.gaierror as socket_error:
            error_message = 'Satellite error encountered: %s. ' % socket_error
            error_message += 'Connect scan failed for source %s.' \
                             % self.source.name
            return error_message, ScanTask.FAILED

        return None, ScanTask.COMPLETED
Esempio n. 8
0
    def run(self):
        """Scan satellite manager and obtain host facts."""
        self.connect_scan_task = self.scan_task.prerequisites.first()
        if self.connect_scan_task.status != ScanTask.COMPLETED:
            error_message = 'Prerequisites scan task with id %d failed.' %\
                (self.connect_scan_task.id)
            return error_message, ScanTask.FAILED

        try:
            status_code, api_version, satellite_version = \
                utils.status(self.scan_task)
            if status_code == 200:
                api = create(satellite_version, api_version, self.scan_job,
                             self.scan_task)
                if not api:
                    error_message = 'Satellite version %s with '\
                        'api version %s is not supported. ' %\
                        (satellite_version, api_version)
                    error_message += 'Inspect scan failed for source %s.' % \
                        (self.source.name)
                    return error_message, ScanTask.FAILED
                api.hosts_facts()
            else:
                error_message = 'Inspect scan failed for source %s.' \
                    % self.source.name
                return error_message, ScanTask.FAILED
        except SatelliteAuthException as auth_error:
            error_message = 'Satellite error encountered: %s. ' % auth_error
            error_message += 'Inspect scan failed for source %s.' \
                % self.source.name
            return error_message, ScanTask.FAILED
        except SatelliteException as sat_error:
            error_message = 'Satellite error encountered: %s. ' % sat_error
            error_message += 'Inspect scan failed for source %s.' \
                % self.source.name
            return error_message, ScanTask.FAILED
        except exceptions.ConnectionError as conn_error:
            error_message = 'Satellite error encountered: %s. ' % conn_error
            error_message += 'Inspect scan failed for %s.' % self.source.name
            return error_message, ScanTask.FAILED
        except TimeoutError as timeout_error:
            error_message = 'Satellite error encountered: %s. ' % timeout_error
            error_message += 'Inspect scan failed for %s.' % self.source.name
            return error_message, ScanTask.FAILED

        return None, ScanTask.COMPLETED
Esempio n. 9
0
    def run(self, manager_interrupt):
        """Scan satellite manager and obtain host facts."""
        # Make sure job is not cancelled or paused
        if manager_interrupt.value == ScanJob.JOB_TERMINATE_CANCEL:
            manager_interrupt.value = ScanJob.JOB_TERMINATE_ACK
            error_message = 'Scan canceled for %s.' % self.source.name
            manager_interrupt.value = ScanJob.JOB_TERMINATE_ACK
            return error_message, ScanTask.CANCELED

        if manager_interrupt.value == ScanJob.JOB_TERMINATE_PAUSE:
            manager_interrupt.value = ScanJob.JOB_TERMINATE_ACK
            error_message = 'Scan paused for %s.' % self.source.name
            manager_interrupt.value = ScanJob.JOB_TERMINATE_ACK
            return error_message, ScanTask.PAUSED

        self.connect_scan_task = self.scan_task.prerequisites.first()
        if self.connect_scan_task.status != ScanTask.COMPLETED:
            error_message = 'Prerequisites scan task with id %d failed.' %\
                (self.connect_scan_task.id)
            return error_message, ScanTask.FAILED

        try:
            status_code, api_version, satellite_version = \
                utils.status(self.scan_task)
            if status_code == 200:
                api = create(satellite_version, api_version, self.scan_job,
                             self.scan_task)
                if not api:
                    error_message = 'Satellite version %s with '\
                        'api version %s is not supported. ' %\
                        (satellite_version, api_version)
                    error_message += 'Inspect scan failed for source %s.' % \
                        (self.source.name)
                    return error_message, ScanTask.FAILED
                api.hosts_facts(manager_interrupt)
            else:
                error_message = 'Inspect scan failed for source %s.' \
                    % self.source.name
                return error_message, ScanTask.FAILED
        except SatelliteAuthException as auth_error:
            error_message = 'Satellite auth error encountered: %s. ' % \
                auth_error
            error_message += 'Inspect scan failed for source %s.' \
                % self.source.name
            return error_message, ScanTask.FAILED
        except SatelliteException as sat_error:
            error_message = 'Satellite unknown error encountered: %s. ' % \
                sat_error
            error_message += 'Inspect scan failed for source %s.' \
                % self.source.name
            return error_message, ScanTask.FAILED
        except SatelliteCancelException:
            error_message = 'Inspect scan cancel for %s.' % self.source.name
            manager_interrupt.value = ScanJob.JOB_TERMINATE_ACK
            return error_message, ScanTask.CANCELED
        except SatellitePauseException:
            error_message = 'Inspect scan pause for %s.' % self.source.name
            manager_interrupt.value = ScanJob.JOB_TERMINATE_ACK
            return error_message, ScanTask.PAUSED
        except exceptions.ConnectionError as conn_error:
            error_message = 'Satellite connection error encountered: %s. ' % \
                conn_error
            error_message += 'Inspect scan failed for %s.' % self.source.name
            return error_message, ScanTask.FAILED
        except TimeoutError as timeout_error:
            error_message = 'Satellite timeout error encountered: %s. ' % \
                timeout_error
            error_message += 'Inspect scan failed for %s.' % self.source.name
            return error_message, ScanTask.FAILED

        return None, ScanTask.COMPLETED
Esempio n. 10
0
    def run(self):
        """Scan satellite manager and obtain host facts."""
        self.connect_scan_task = self.scan_task.prerequisites.first()
        if self.connect_scan_task.status != ScanTask.COMPLETED:
            error_message = 'Prerequisites scan task with id %d failed.' %\
                (self.connect_scan_task.id)
            return error_message, ScanTask.FAILED

        satellite_version = None
        options = self.source.options
        if options:
            satellite_version = options.satellite_version

        if satellite_version is None:
            error_message = 'Satellite version is unknown. '
            error_message += 'Connect scan failed for %s.' % self.scan_task
            return error_message, ScanTask.FAILED

        try:
            status_code, api_version = utils.status(self.scan_task,
                                                    satellite_version)
            if status_code == 200:
                self.conn_result = self.scan_job.connection_results.results.\
                    filter(scan_task=self.connect_scan_task.id).first()
                inspect_result = None
                if self.scan_job.inspection_results is not None:
                    inspect_result = self.scan_job.inspection_results.results.\
                        filter(source__id=self.source.id).first()

                if inspect_result is None:
                    inspect_result = TaskInspectionResult(
                        source=self.scan_task.source, scan_task=self.scan_task)
                    inspect_result.save()
                    self.scan_job.inspection_results.results.add(
                        inspect_result)
                    self.scan_job.inspection_results.save()
                self.inspect_result = inspect_result

                api = create(satellite_version, api_version, self.scan_task,
                             self.conn_result, self.inspect_result)
                if not api:
                    error_message = 'Satellite version %s with '\
                        'api version %s is not supported.\n' %\
                        (satellite_version, api_version)
                    error_message += 'Inspect scan failed for %s.' % \
                        (self.scan_task)
                    return error_message, ScanTask.FAILED
                api.hosts_facts()
            else:
                error_message = 'Inspect scan failed for %s.' % self.scan_task
                return error_message, ScanTask.FAILED
        except SatelliteException as sat_error:
            error_message = 'Satellite error encountered: %s\n' % sat_error
            error_message += 'Inspect scan failed for %s.' % self.scan_task
            return error_message, ScanTask.FAILED
        except exceptions.ConnectionError as conn_error:
            error_message = 'Satellite error encountered: %s\n' % conn_error
            error_message += 'Inspect scan failed for %s.' % self.scan_task
            return error_message, ScanTask.FAILED
        except TimeoutError as timeout_error:
            error_message = 'Satellite error encountered: %s\n' % timeout_error
            error_message += 'Connect scan failed for %s.' % self.scan_task
            return error_message, ScanTask.FAILED
        except Exception as unknown_error:  # pylint: disable=broad-except
            error_message = 'Satellite error encountered: %s\n' % unknown_error
            error_message += 'Inspect scan failed for %s.' % self.scan_task
            return error_message, ScanTask.FAILED

        return None, ScanTask.COMPLETED
Esempio n. 11
0
    def run(self, manager_interrupt):
        """Scan Satellite for system connection data."""
        # Make sure job is not cancelled or paused
        if manager_interrupt.value == ScanJob.JOB_TERMINATE_CANCEL:
            manager_interrupt.value = ScanJob.JOB_TERMINATE_ACK
            error_message = 'Scan canceled for %s.' % self.source.name
            manager_interrupt.value = ScanJob.JOB_TERMINATE_ACK
            return error_message, ScanTask.CANCELED

        if manager_interrupt.value == ScanJob.JOB_TERMINATE_PAUSE:
            manager_interrupt.value = ScanJob.JOB_TERMINATE_ACK
            error_message = 'Scan paused for %s.' % self.source.name
            manager_interrupt.value = ScanJob.JOB_TERMINATE_ACK
            return error_message, ScanTask.PAUSED
        try:
            status_code, api_version, satellite_version = \
                utils.status(self.scan_task)
            if status_code is None:
                error_message = 'Unknown satellite version is not ' \
                                'supported. '
                error_message += 'Connect scan failed for source %s.' % \
                                 (self.source.name)
                return error_message, ScanTask.FAILED
            if status_code == 200:
                api = create(satellite_version, api_version, self.scan_job,
                             self.scan_task)
                if not api:
                    error_message = 'Satellite version %s with '\
                        'api version %s is not supported.\n' %\
                        (satellite_version, api_version)
                    error_message += 'Connect scan failed for %s. ' % \
                        self.source.name
                    return error_message, ScanTask.FAILED
                api.host_count()
                api.hosts()
            else:
                error_message = 'Connect scan failed for source %s.' \
                    % self.source.name
                return error_message, ScanTask.FAILED
        except SatelliteAuthException as auth_error:
            error_message = 'Satellite auth error encountered: %s. ' \
                % auth_error
            error_message += 'Connect scan failed for source %s.' \
                % self.source.name
            return error_message, ScanTask.FAILED
        except SatelliteException as sat_error:
            error_message = 'Satellite unknown error encountered: %s. ' \
                % sat_error
            error_message += 'Connect scan failed for source %s.' \
                % self.source.name
            return error_message, ScanTask.FAILED
        except exceptions.ConnectionError as conn_error:
            error_message = 'Satellite connect error encountered: %s. '\
                % conn_error
            error_message += 'Connect scan failed for source %s.' \
                % self.source.name
            return error_message, ScanTask.FAILED
        except TimeoutError as timeout_error:
            error_message = 'Satellite timeout error encountered: %s. ' \
                % timeout_error
            error_message += 'Connect scan failed for source %s.' \
                % self.source.name
            return error_message, ScanTask.FAILED
        except socket.gaierror as socket_error:
            error_message = 'Satellite gaierror error encountered: %s. ' \
                % socket_error
            error_message += 'Connect scan failed for source %s.' \
                             % self.source.name
            return error_message, ScanTask.FAILED

        return None, ScanTask.COMPLETED
Esempio n. 12
0
 def test_create_sat5(self):
     """Test the method to create a Sat 5 interface."""
     satellite_version = SATELLITE_VERSION_5
     api_version = 1
     api = create(satellite_version, api_version, self.scan_task)
     self.assertEqual(api.__class__, SatelliteFive)
Esempio n. 13
0
    def run(self, manager_interrupt):
        """Scan Satellite for system connection data."""
        super_message, super_status = super().run(manager_interrupt)
        if super_status != ScanTask.COMPLETED:
            return super_message, super_status

        try:
            status_code, api_version, satellite_version = \
                utils.status(self.scan_task)
            if status_code is None:
                error_message = 'Unknown satellite version is not ' \
                                'supported. '
                error_message += 'Connect scan failed for source %s.' % \
                                 (self.source.name)
                return error_message, ScanTask.FAILED
            if status_code == 200:
                api = create(satellite_version, api_version, self.scan_job,
                             self.scan_task)
                if not api:
                    error_message = 'Satellite version %s with '\
                        'api version %s is not supported.\n' %\
                        (satellite_version, api_version)
                    error_message += 'Connect scan failed for %s. ' % \
                        self.source.name
                    return error_message, ScanTask.FAILED
                api.host_count()
                api.hosts()
            else:
                error_message = 'Connect scan failed for source %s.' \
                    % self.source.name
                return error_message, ScanTask.FAILED
        except SatelliteAuthException as auth_error:
            error_message = 'Satellite auth error encountered: %s. ' \
                % auth_error
            error_message += 'Connect scan failed for source %s.' \
                % self.source.name
            return error_message, ScanTask.FAILED
        except SatelliteException as sat_error:
            error_message = 'Satellite unknown error encountered: %s. ' \
                % sat_error
            error_message += 'Connect scan failed for source %s.' \
                % self.source.name
            return error_message, ScanTask.FAILED
        except exceptions.ConnectionError as conn_error:
            error_message = 'Satellite connect error encountered: %s. '\
                % conn_error
            error_message += 'Connect scan failed for source %s.' \
                % self.source.name
            return error_message, ScanTask.FAILED
        except TimeoutError as timeout_error:
            error_message = 'Satellite timeout error encountered: %s. ' \
                % timeout_error
            error_message += 'Connect scan failed for source %s.' \
                % self.source.name
            return error_message, ScanTask.FAILED
        except socket.gaierror as socket_error:
            error_message = 'Satellite gaierror error encountered: %s. ' \
                % socket_error
            error_message += 'Connect scan failed for source %s.' \
                             % self.source.name
            return error_message, ScanTask.FAILED

        return None, ScanTask.COMPLETED