Example #1
0
    def _find_substitution(self, query):
        max_distance = min(3, len(query) / 4)
        scenarios = scenario.Scenario.list_benchmark_scenarios()
        scenario_groups = list(set(s.split(".")[0] for s in scenarios))
        scenario_methods = list(set(s.split(".")[1] for s in scenarios))
        sla_info = [cls.get_name() for cls in sla.SLA.get_all()]
        deploy_engines = [cls.get_name() for cls in engine.Engine.get_all()]
        server_providers = [cls.get_name() for cls in provider.ProviderFactory.get_all()]

        candidates = scenarios + scenario_groups + scenario_methods + sla_info + deploy_engines + server_providers
        suggestions = []
        # NOTE(msdubov): Incorrect query may either have typos or be truncated.
        for candidate in candidates:
            if utils.distance(query, candidate) <= max_distance or candidate.startswith(query):
                suggestions.append(candidate)
        return suggestions
Example #2
0
    def _find_substitution(self, query):
        max_distance = min(3, len(query) / 4)
        scenarios = [s.get_name() for s in scenario.Scenario.get_all()]
        sla_info = [cls.get_name() for cls in sla.SLA.get_all()]
        deploy_engines = [cls.get_name() for cls in
                          engine.Engine.get_all()]
        server_providers = [cls.get_name() for cls in
                            provider.ProviderFactory.get_all()]

        candidates = (scenarios + sla_info + deploy_engines + server_providers)
        suggestions = []
        # NOTE(msdubov): Incorrect query may either have typos or be truncated.
        for candidate in candidates:
            if ((utils.distance(query, candidate) <= max_distance or
                 query.lower() in candidate.lower())):
                suggestions.append(candidate)
        return suggestions
Example #3
0
 def _find_substitution(self, query):
     max_distance = min(3, len(query) / 4)
     scenarios = scenario_base.Scenario.list_benchmark_scenarios()
     scenario_groups = list(set(s.split(".")[0] for s in scenarios))
     scenario_methods = list(set(s.split(".")[1] for s in scenarios))
     sla_info = [cls.__name__ for cls in utils.itersubclasses(sla.SLA)]
     sla_info.extend([cls.OPTION_NAME for cls in utils.itersubclasses(
         sla.SLA)])
     deploy_engines = [cls.__name__ for cls in utils.itersubclasses(
         deploy.EngineFactory)]
     server_providers = [cls.__name__ for cls in utils.itersubclasses(
         serverprovider.ProviderFactory)]
     candidates = (scenarios + scenario_groups + scenario_methods +
                   sla_info + deploy_engines + server_providers)
     suggestions = []
     # NOTE(msdubov): Incorrect query may either have typos or be truncated.
     for candidate in candidates:
         if ((utils.distance(query, candidate) <= max_distance or
              candidate.startswith(query))):
             suggestions.append(candidate)
     return suggestions
Example #4
0
 def test_distance_deletion(self):
     dist = utils.distance("abcde", "abc")
     self.assertEqual(2, dist)
Example #5
0
 def test_distance_insertion(self):
     dist = utils.distance("abcde", "ab__cde")
     self.assertEqual(2, dist)
Example #6
0
 def test_distance_replacement(self):
     dist = utils.distance("abcde", "__cde")
     self.assertEqual(2, dist)
Example #7
0
 def test_distance_equal_strings(self):
     dist = utils.distance("abcde", "abcde")
     self.assertEqual(0, dist)
Example #8
0
 def test_distance_empty_strings(self):
     dist = utils.distance("", "")
     self.assertEqual(0, dist)
Example #9
0
 def test_distance_replacement(self):
     dist = utils.distance("abcde", "__cde")
     self.assertEqual(2, dist)
Example #10
0
 def test_distance_equal_strings(self):
     dist = utils.distance("abcde", "abcde")
     self.assertEqual(0, dist)
Example #11
0
 def test_distance_empty_strings(self):
     dist = utils.distance("", "")
     self.assertEqual(0, dist)
Example #12
0
 def test_distance_deletion(self):
     dist = utils.distance("abcde", "abc")
     self.assertEqual(2, dist)
Example #13
0
 def test_distance_insertion(self):
     dist = utils.distance("abcde", "ab__cde")
     self.assertEqual(2, dist)