def from_kvs(job_id, epsilon_provider):
        """Return an aggregate curve using the GMFs and assets
        stored in the underlying kvs system."""

        vuln_model = vulnerability.load_vuln_model_from_kvs(job_id)
        aggregate_curve = AggregateLossCurve(vuln_model, epsilon_provider)

        gmfs_keys = kvs.get_keys("%s*%s*" % (
                job_id, kvs.tokens.GMF_KEY_TOKEN))

        LOG.debug("Found %s stored GMFs..." % len(gmfs_keys))
        asset_counter = 0

        for gmfs_key in gmfs_keys:
            assets = _assets_keys_for_gmfs(job_id, gmfs_key)

            for asset in assets:
                asset_counter += 1
                gmfs = kvs.get_value_json_decoded(gmfs_key)

                aggregate_curve.append(gmfs,
                        json.JSONDecoder().decode(asset))

        LOG.debug("Found %s stored assets..." % asset_counter)
        return aggregate_curve
Beispiel #2
0
    def test_simple_computation_using_the_java_calculator(self):
        self.engine.launch()

        for site in self.engine.sites_for_region():
            point = self.grid.point_at(site)
            key = kvs.tokens.ground_motion_values_key(self.engine.id, point)

            self.assertTrue(kvs.get_keys(key))
    def test_simple_computation_using_the_java_calculator(self):
        self.engine.launch()

        for site in self.engine.sites_for_region():
            point = self.grid.point_at(site)
            key = kvs.tokens.ground_motion_values_key(
                self.engine.id, point)

            self.assertTrue(kvs.get_keys(key))
    def test_simple_computation_using_the_java_calculator(self):
        # KVS garbage collection is going to be called asynchronously by the
        # job. We don't actually want that to happen in this test.
        with patch("subprocess.Popen"):

            self.job.launch()

            for site in self.job.sites_to_compute():
                point = self.grid.point_at(site)
                key = kvs.tokens.ground_motion_values_key(self.job.job_id, point)

                self.assertTrue(kvs.get_keys(key))
Beispiel #5
0
def hazard_curve_keys_for_job(job_id, sites, hc_token=kvs.tokens.HAZARD_CURVE_KEY_TOKEN):
    """Return the KVS keys of hazard curves for a given job_id
    and for a given list of sites.
    """

    kvs_keys = []
    for site in sites:
        pattern = "%s*%s*%s*%s" % (hc_token, job_id, site.longitude, site.latitude)
        curr_keys = kvs.get_keys(pattern)
        if curr_keys is not None and len(curr_keys) > 0:
            kvs_keys.extend(curr_keys)

    return kvs_keys
Beispiel #6
0
def hazard_curve_keys_for_job(job_id, sites,
                              hc_token=kvs.tokens.HAZARD_CURVE_KEY_TOKEN):
    """Return the KVS keys of hazard curves for a given job_id
    and for a given list of sites.
    """

    kvs_keys = []
    for site in sites:
        pattern = "%s*%s*%s*%s" % (hc_token, job_id, site.longitude,
                                   site.latitude)
        curr_keys = kvs.get_keys(pattern)
        if curr_keys is not None and len(curr_keys) > 0:
            kvs_keys.extend(curr_keys)

    return kvs_keys