@validation.required_services(consts.Service.SAHARA)
    @validation.required_contexts("users", "sahara_image",
                                  "sahara_job_binaries", "sahara_cluster")
    @scenario.configure(context={"cleanup": ["sahara"]})
    def create_launch_job_sequence_with_scaling(self, jobs, deltas):

        cluster_id = self.context["tenant"]["sahara"]["cluster"]

        # Executing the sequence before the first scaling
        self.create_launch_job_sequence(jobs)

        for delta in deltas:
            # The Cluster is fetched every time so that its node groups have
            # correct 'count' values.
            cluster = self.clients("sahara").clusters.get(cluster_id)

            LOG.debug("Scaling cluster %s with delta %d" %
                      (cluster.name, delta))
            if delta == 0:
                # Zero scaling makes no sense.
                continue
            elif delta > 0:
                self._scale_cluster_up(cluster, delta)
            elif delta < 0:
                self._scale_cluster_down(cluster, delta)

            LOG.debug("Starting Job sequence")
            self.create_launch_job_sequence(jobs)
Allows for the filtering of applicable objects.
dataset/ETHPy150Open openstack/rally/rally/plugins/openstack/scenarios/sahara/jobs.py/SaharaJob.create_launch_job_sequence_with_scaling--crossover with--dataset/ETHPy150Open mozilla/inventory/vendor-local/src/django-tastypie/tastypie/resources.py/Resource.build_filters