Exemplo n.º 1
0
    def test_should_enable_and_decrease_dependency_score_based_on_edges(self):
        self.bar_service.needs = ['service://foobar42/bazservice']      # -1
        self.baz_service.needs = ['service://foobar42/ackservice']      # -1
        self.bar_service.needed_by = ['service://foobar42/ackservice']  # +1
        compute_dependency_scores(self.components)

        self.assertEqual(self.bar_service.dependency_score, -1)
Exemplo n.º 2
0
 def test_should_ignore_cross_host_outward_dependencies(self):
     self.components['service://otherhost/foo'] = Service(self.otherhost, 'foo', {})
     self.bar_service.needs = ['service://otherhost/foo']
     compute_dependency_scores(self.components)
     self.assertEqual(
         self.bar_service.dependency_score, STANDALONE_SERVICE_RANK)
Exemplo n.º 3
0
 def test_should_ignore_cross_host_inward_dependencies(self):
     self.components['service://otherhost/foo'] = Service(self.otherhost, 'foo', {})
     self.bar_service.needed_by = ['service://otherhost/foo']
     compute_dependency_scores(self.components)
Exemplo n.º 4
0
    def test_should_decrease_dependency_score_when_outdoing_edge_found(self):
        self.bar_service.needs = ['service://foobar42/bazservice']
        compute_dependency_scores(self.components)

        self.assertEqual(self.bar_service.dependency_score, -1)
Exemplo n.º 5
0
 def test_should_label_standalone_services(self):
     compute_dependency_scores(self.components)
     self.assertEqual(
         self.baz_service.dependency_score, STANDALONE_SERVICE_RANK)
Exemplo n.º 6
0
                except (KeyError, AttributeError), e:
                    logger.debug('needed: ' + needed)
                    raise e

            component.needs = needs_with_resolved_version_alias
        components._add_when_missing_ = False

        for component in components.values():
            for dependent in getattr(component, 'needed_by', []):
                try:
                    dependent_component = components[dependent]
                    dependent_component.needs.add(component.uri)
                except KeyError, ke:
                    logger.warning("unknown dependent key " + str(ke))

        compute_dependency_scores(components)

    def store_status_locally(ignored, components):
        def _open_component_file(component_type):
            return open(
                os.path.join(yadtshell.settings.OUT_DIR, component_type), 'w')

        component_files = {
            yadtshell.settings.ARTEFACT: _open_component_file('artefacts'),
            yadtshell.settings.SERVICE: _open_component_file('services'),
            yadtshell.settings.HOST: _open_component_file('hosts'),
        }
        for component in components.values():
            component_files[component.type].write(component.uri + "\n")

        for f in component_files.values():
Exemplo n.º 7
0
                except (KeyError, AttributeError), e:
                    logger.debug('needed: ' + needed)
                    raise e

            component.needs = needs_with_resolved_version_alias
        components._add_when_missing_ = False

        for component in components.values():
            for dependent in getattr(component, 'needed_by', []):
                try:
                    dependent_component = components[dependent]
                    dependent_component.needs.add(component.uri)
                except KeyError, ke:
                    logger.warning("unknown dependent key " + str(ke))

        compute_dependency_scores(components)

    def store_status_locally(ignored, components):
        def _open_component_file(component_type):
            return open(os.path.join(yadtshell.settings.OUT_DIR, component_type), 'w')

        component_files = {
            yadtshell.settings.ARTEFACT: _open_component_file('artefacts'),
            yadtshell.settings.SERVICE: _open_component_file('services'),
            yadtshell.settings.HOST: _open_component_file('hosts'),
        }
        for component in components.values():
            component_files[component.type].write(component.uri + "\n")

        for f in component_files.values():
            f.close()