Esempio n. 1
0
    def setup(self):
        new_sample = {
            "counter_name": self.config["counter_name"],
            "counter_type": self.config["counter_type"],
            "counter_unit": self.config["counter_unit"],
            "counter_volume": self.config["counter_volume"],
        }
        resources = []

        for user, tenant_id in rutils.iterate_per_tenants(
                self.context["users"]):
            self.context["tenants"][tenant_id]["samples"] = []
            self.context["tenants"][tenant_id]["resources"] = []
            scenario = ceilo_utils.CeilometerScenario(
                context={
                    "user": user,
                    "task": self.context["task"]
                })
            for i in moves.xrange(self.config["resources_per_tenant"]):
                samples_to_create = scenario._make_samples(
                    count=self.config["samples_per_resource"],
                    interval=self.config["timestamp_interval"],
                    metadata_list=self.config.get("metadata_list"),
                    batch_size=self.config.get("batch_size"),
                    **new_sample)
                samples = self._store_batch_samples(
                    scenario, samples_to_create,
                    self.config.get("batches_allow_lose"))
                for sample in samples:
                    self.context["tenants"][tenant_id]["samples"].append(
                        sample.to_dict())
                self.context["tenants"][tenant_id]["resources"].append(
                    samples[0].resource_id)
                resources.append((user, samples[0].resource_id))

        # NOTE(boris-42): Context should wait until samples are processed
        from ceilometerclient import exc

        for user, resource_id in resources:
            scenario = ceilo_utils.CeilometerScenario(
                context={
                    "user": user,
                    "task": self.context["task"]
                })

            success = False
            for i in range(60):
                try:
                    scenario._get_resource(resource_id)
                    success = True
                    break
                except exc.HTTPNotFound:
                    time.sleep(3)
            if not success:
                raise exceptions.ContextSetupFailure(
                    ctx_name=self.get_name(),
                    msg="Ceilometer Resource %s is not found" % resource_id)
Esempio n. 2
0
    def setup(self):
        counter_name = self.config["counter_name"]
        counter_type = self.config["counter_type"]
        counter_unit = self.config["counter_unit"]
        counter_volume = self.config["counter_volume"]
        for user, tenant_id in rutils.iterate_per_tenants(
                self.context["users"]):
            self.context["tenants"][tenant_id]["samples"] = []
            self.context["tenants"][tenant_id]["resources"] = []
            scenario = ceilo_utils.CeilometerScenario(
                context={
                    "user": user,
                    "task": self.context["task"]
                })
            for i in range(self.config["resources_per_tenant"]):
                for j in range(self.config["samples_per_resource"]):
                    sample = scenario._create_sample(counter_name,
                                                     counter_type,
                                                     counter_unit,
                                                     counter_volume)
                    self.context["tenants"][tenant_id]["samples"].append(
                        sample[0].to_dict())

                self.context["tenants"][tenant_id]["resources"].append(
                    sample[0].resource_id)
Esempio n. 3
0
 def setup(self):
     new_sample = {
         "counter_name": self.config["counter_name"],
         "counter_type": self.config["counter_type"],
         "counter_unit": self.config["counter_unit"],
         "counter_volume": self.config["counter_volume"],
     }
     for user, tenant_id in rutils.iterate_per_tenants(
             self.context["users"]):
         self.context["tenants"][tenant_id]["samples"] = []
         self.context["tenants"][tenant_id]["resources"] = []
         scenario = ceilo_utils.CeilometerScenario(
             context={"user": user, "task": self.context["task"]}
         )
         for i in moves.xrange(self.config["resources_per_tenant"]):
             samples_to_create = scenario._make_samples(
                 count=self.config["samples_per_resource"],
                 interval=self.config["timestamp_interval"],
                 metadata_list=self.config.get("metadata_list"),
                 batch_size=self.config.get("batch_size"),
                 **new_sample)
             samples = self._store_batch_samples(
                 scenario, samples_to_create,
                 self.config.get("batches_allow_lose")
             )
             for sample in samples:
                 self.context["tenants"][tenant_id]["samples"].append(
                     sample.to_dict())
             self.context["tenants"][tenant_id]["resources"].append(
                 samples[0].resource_id)
Esempio n. 4
0
 def setup(self):
     counter_name = self.config["counter_name"]
     counter_type = self.config["counter_type"]
     counter_unit = self.config["counter_unit"]
     counter_volume = self.config["counter_volume"]
     resources_per_tenant = self.config["resources_per_tenant"]
     samples_per_resource = self.config["samples_per_resource"]
     for user, tenant_id in rutils.iterate_per_tenants(
             self.context["users"]):
         self.context["tenants"][tenant_id]["samples"] = []
         self.context["tenants"][tenant_id]["resources"] = []
         clients = osclients.Clients(user["endpoint"])
         scenario = ceilo_utils.CeilometerScenario(
             clients=clients)
         for i in range(resources_per_tenant):
             for j in range(samples_per_resource):
                 try:
                     sample = scenario._create_sample(counter_name,
                                                      counter_type,
                                                      counter_unit,
                                                      counter_volume)
                     self.context["tenants"][tenant_id]["samples"].append(
                         sample[0].to_dict())
                 except Exception as err:
                     LOG.error("Creating a sample failed: %s" % err)
             self.context["tenants"][tenant_id]["resources"].append(
                 sample[0].resource_id)
Esempio n. 5
0
    def test_setup(self):
        tenants_count = 2
        users_per_tenant = 2
        resources_per_tenant = 2
        samples_per_resource = 2

        tenants, real_context = self._gen_context(tenants_count,
                                                  users_per_tenant,
                                                  resources_per_tenant,
                                                  samples_per_resource)
        scenario = ceilo_utils.CeilometerScenario(real_context)
        sample = {
            "counter_name":
            "fake-counter-name",
            "counter_type":
            "fake-counter-type",
            "counter_unit":
            "fake-counter-unit",
            "counter_volume":
            100,
            "resource_id":
            "fake-resource-id",
            "metadata_list": [{
                "status": "active",
                "name": "fake_resource",
                "deleted": "False",
                "created_at": "2015-09-04T12:34:19.000000"
            }, {
                "status": "not_active",
                "name": "fake_resource_1",
                "deleted": "False",
                "created_at": "2015-09-10T06:55:12.000000"
            }]
        }
        scenario.generate_random_name = mock.Mock(
            return_value="fake_resource-id")
        kwargs = copy.deepcopy(sample)
        kwargs.pop("resource_id")
        samples_to_create = scenario._make_samples(count=samples_per_resource,
                                                   interval=60,
                                                   **kwargs)
        new_context = copy.deepcopy(real_context)
        for id_ in tenants.keys():
            new_context["tenants"][id_].setdefault("samples", [])
            new_context["tenants"][id_].setdefault("resources", [])
            for i in six.moves.xrange(resources_per_tenant):
                for sample in samples_to_create:
                    new_context["tenants"][id_]["samples"].append(sample)
                new_context["tenants"][id_]["resources"].append(
                    sample["resource_id"])
        with mock.patch("%s.samples.ceilo_utils.CeilometerScenario"
                        "._create_samples" % CTX) as mock_create_samples:
            mock_create_samples.return_value = []
            for i, sample in enumerate(samples_to_create):
                sample_object = mock.MagicMock(resource_id="fake_resource-id")
                sample_object.to_dict.return_value = sample
                mock_create_samples.return_value.append(sample_object)
            ceilometer_ctx = samples.CeilometerSampleGenerator(real_context)
            ceilometer_ctx.setup()
            self.assertEqual(new_context, ceilometer_ctx.context)
Esempio n. 6
0
 def setUp(self):
     super(CeilometerScenarioTestCase, self).setUp()
     self.scenario = utils.CeilometerScenario()
     self.res_is = mockpatch.Patch(BM_UTILS + ".resource_is")
     self.get_fm = mockpatch.Patch(BM_UTILS + ".get_from_manager")
     self.wait_for = mockpatch.Patch(CEILOMETER_UTILS +
                                     ".bench_utils.wait_for")
     self.useFixture(self.wait_for)
     self.useFixture(self.res_is)
     self.useFixture(self.get_fm)
     self.gfm = self.get_fm.mock
Esempio n. 7
0
    def test__store_batch_samples(self):
        tenants_count = 2
        users_per_tenant = 2
        resources_per_tenant = 2
        samples_per_resource = 2

        tenants, real_context = self._gen_context(tenants_count,
                                                  users_per_tenant,
                                                  resources_per_tenant,
                                                  samples_per_resource)
        ceilometer_ctx = samples.CeilometerSampleGenerator(real_context)
        scenario = ceilo_utils.CeilometerScenario(real_context)
        self.assertRaises(exceptions.ContextSetupFailure,
                          ceilometer_ctx._store_batch_samples, scenario,
                          ["foo", "bar"], 1)
Esempio n. 8
0
 def setUp(self):
     super(CeilometerScenarioTestCase, self).setUp()
     self.scenario = utils.CeilometerScenario(self.context)