Example #1
0
 def test_healthcheck_returns_500_if_the_mysql_server_is_off(self):
     request = RequestFactory().get("/resources/g8mysql/status/")
     with mock.patch("mysqlapi.api.models.DatabaseManager.is_up") as is_up:
         is_up.return_value = False
         view = Healthcheck()
         fake = mocks.FakeEC2Client()
         view._client = fake
         response = view.get(request, "g8mysql")
     self.assertEqual(500, response.status_code)
Example #2
0
 def test_healthcheck_returns_201_when_ec2_instance_is_running(self):
     request = RequestFactory().get("/resources/g8mysql/status/")
     with mock.patch("mysqlapi.api.models.DatabaseManager.is_up") as is_up:
         is_up.return_value = True
         view = Healthcheck()
         fake = mocks.FakeEC2Client()
         view._client = fake
         response = view.get(request, "g8mysql")
     self.assertEqual(204, response.status_code)
Example #3
0
 def test_healthcheck_returns_201_when_ec2_instance_is_running(self):
     request = RequestFactory().get("/resources/g8mysql/status/")
     with mock.patch("mysqlapi.api.models.DatabaseManager.is_up") as is_up:
         is_up.return_value = True
         view = Healthcheck()
         fake = mocks.FakeEC2Client()
         view._client = fake
         response = view.get(request, "g8mysql")
     self.assertEqual(204, response.status_code)
Example #4
0
 def test_healthcheck_returns_500_if_the_mysql_server_is_off(self):
     request = RequestFactory().get("/resources/g8mysql/status/")
     with mock.patch("mysqlapi.api.models.DatabaseManager.is_up") as is_up:
         is_up.return_value = False
         view = Healthcheck()
         fake = mocks.FakeEC2Client()
         view._client = fake
         response = view.get(request, "g8mysql")
     self.assertEqual(500, response.status_code)
Example #5
0
    def test_healthcheck_doesnt_touch_ec2_when_instance_is_pending(self):
        self.instance.state = "pending"
        self.instance.save()
        request = RequestFactory().get("/resources/g8mysql/status/")
        view = Healthcheck()
        fake = mocks.FakeEC2ClientPendingInstance()
        view._client = fake

        response = view.get(request, "g8mysql")
        self.assertEqual(202, response.status_code)
        self.assertEqual([], fake.actions)
Example #6
0
    def test_healthcheck_does_not_calls_ec2_get_when_instance_is_pending_and_returns_500(self):
        self.instance.state = "pending"
        self.instance.save()
        request = RequestFactory().get("/resources/g8mysql/status/")
        view = Healthcheck()
        fake = mocks.FakeEC2ClientPendingInstance()
        view._client = fake

        response = view.get(request, "g8mysql")
        self.assertEqual(500, response.status_code)
        self.assertEqual([], fake.actions)
Example #7
0
 def test_healthcheck_returns_500_if_the_mysql_server_is_off(self):
     mocker = Mocker()
     obj = mocker.replace("mysqlapi.api.models.DatabaseManager.is_up")
     obj()
     mocker.result(False)
     mocker.replay()
     request = RequestFactory().get("/resources/g8mysql/status/")
     view = Healthcheck()
     fake = mocks.FakeEC2Client()
     view._client = fake
     response = view.get(request, "g8mysql")
     self.assertEqual(500, response.status_code)
     mocker.verify()
Example #8
0
    def test_healthcheck_calls_ec2_get_when_instance_is_running_and_returns_201(self):
        mocker = Mocker()
        obj = mocker.replace("mysqlapi.api.models.DatabaseManager.is_up")
        obj()
        mocker.result(True)
        mocker.count(1, 2)
        mocker.replay()

        request = RequestFactory().get("/resources/g8mysql/status/")
        view = Healthcheck()
        fake = mocks.FakeEC2Client()
        view._client = fake

        response = view.get(request, "g8mysql")
        self.assertEqual(204, response.status_code)
        mocker.verify()
Example #9
0
# Copyright 2014 mysqlapi authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.

from django.conf.urls import patterns, url

from mysqlapi.api.decorators import basic_auth_required
from mysqlapi.api.views import (BindApp, BindUnit, CreateDatabase,
                                DropDatabase, Healthcheck)

urlpatterns = patterns(
    '',
    url(r'^resources$', basic_auth_required(CreateDatabase.as_view())),
    url(r'^resources/(?P<name>[\w-]+)$',
        basic_auth_required(DropDatabase.as_view())),
    url(r'^resources/(?P<name>[\w-]+)/bind$',
        basic_auth_required(BindUnit.as_view())),
    url(r'^resources/(?P<name>[\w-]+)/bind-app$',
        basic_auth_required(BindApp.as_view())),
    url(r'^resources/(?P<name>[\w-]+)/export$', 'mysqlapi.api.views.export'),
    url(r'^resources/(?P<name>[\w-]+)/status$',
        basic_auth_required(Healthcheck.as_view())),
)
Example #10
0
from django.conf.urls import patterns, url

from mysqlapi.api.views import CreateUserOrDropDatabase, Healthcheck


urlpatterns = patterns('',
    url(r'^resources/$', 'mysqlapi.api.views.create_database'),  # post
    url(r'^resources/(?P<name>[\w-]+)/$', CreateUserOrDropDatabase.as_view()),  # post and delete
    url(r'^resources/(?P<name>[\w-]+)/export/$', 'mysqlapi.api.views.export'),  # get
    url(r'^resources/(?P<name>[\w-]+)/status/$', Healthcheck.as_view()),  # get
    url(r'^resources/(?P<name>[\w-]+)/hostname/(?P<hostname>[\w.]+)/$', 'mysqlapi.api.views.drop_user'),  # delete
)
Example #11
0
# Copyright 2014 mysqlapi authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.

from django.conf.urls import patterns, url

from mysqlapi.api.decorators import basic_auth_required
from mysqlapi.api.views import (BindApp, BindUnit, CreateDatabase,
                                DropDatabase, Healthcheck)

urlpatterns = patterns('',
                       url(r'^resources$',
                           basic_auth_required(CreateDatabase.as_view())),
                       url(r'^resources/(?P<name>[\w-]+)$',
                           basic_auth_required(DropDatabase.as_view())),
                       url(r'^resources/(?P<name>[\w-]+)/bind$',
                           basic_auth_required(BindUnit.as_view())),
                       url(r'^resources/(?P<name>[\w-]+)/bind-app$',
                           basic_auth_required(BindApp.as_view())),
                       url(r'^resources/(?P<name>[\w-]+)/export$',
                           'mysqlapi.api.views.export'),
                       url(r'^resources/(?P<name>[\w-]+)/status$',
                           basic_auth_required(Healthcheck.as_view())),
                       )
Example #12
0
# Copyright 2013 mysqlapi authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.

from django.conf.urls import patterns, url

from mysqlapi.api.views import (CreateUserOrDropDatabase,
                                CreateDatabase, Healthcheck)


urlpatterns = patterns('',
                       url(r'^resources$',
                           CreateDatabase.as_view()),  # post
                       url(r'^resources/(?P<name>[\w-]+)$',
                           CreateUserOrDropDatabase.as_view()),
                       url(r'^resources/(?P<name>[\w-]+)/export$',
                           'mysqlapi.api.views.export'),  # get
                       url(r'^resources/(?P<name>[\w-]+)/status$',
                           Healthcheck.as_view()),  # get
                       url(r'^resources/(?P<name>[\w-]+)/hostname/' +
                           '(?P<hostname>[\w.]+)$',
                           'mysqlapi.api.views.drop_user'),
                       )