示例#1
0
class ServiceTest(CharmTest):

    def setUp(self):
        super().setUp()
        self.service = Service()

    def test_check_ready(self):
        """
        If the service is ready, no exception is raised.
        """
        self.fakes.network.get("http://localhost:8080", status_code=403)
        self.assertIsNone(self.service.check_ready())

    def test_check_ready_transient_failure(self):
        """
        Transient failures are retried.
        """
        start = time.time()

        def callback(requests, context):
            if time.time() - start >= 2:
                context.status_code = 503
            else:
                context.status_code = 200
            return ""

        self.fakes.network.get(URL, text=callback)
        self.assertIsNone(self.service.check_ready())

    def test_check_ready_unavailable(self):
        """
        If the backend keeps returning 5xx, an error is raised.
        """
        self.fakes.network.get(URL, status_code=500)
        self.assertRaises(ServiceUnavailable, self.service.check_ready)
示例#2
0
def bootstrap_jenkins():
    status_set("maintenance", "Bootstrapping Jenkins configuration")
    service = Service()
    service.check_ready()
    configuration = Configuration()
    configuration.bootstrap()
    set_state("jenkins.bootstrapped")
示例#3
0
def bootstrap_jenkins():
    status_set("maintenance", "Bootstrapping Jenkins configuration")
    service = Service()
    service.check_ready()
    configuration = Configuration()
    configuration.bootstrap()
    set_state("jenkins.bootstrapped")