Skip to content

Commit

Permalink
Merge pull request #3436 from szymi-/dns-edit-revert
Browse files Browse the repository at this point in the history
Revert "RAS-1296 - handle empty/incorrect payload from dnsaas (#3381)"
  • Loading branch information
romcheg committed Mar 13, 2019
2 parents dcb3b85 + 6b2b12f commit 69f066d
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 71 deletions.
3 changes: 0 additions & 3 deletions Makefile
Expand Up @@ -85,9 +85,6 @@ isort:
test: clean
test_ralph test $(TEST) $(TEST_ARGS)

fast_test: clean
test_ralph test -v2 -k --failfast $(TEST)

flake: isort
flake8 src/ralph
flake8 src/ralph/settings --ignore=F405 --exclude=*local.py
Expand Down
1 change: 0 additions & 1 deletion requirements/test.txt
Expand Up @@ -9,4 +9,3 @@ flake8==3.0.4
sphinx
flake8-debugger==1.4.0
flake8-print==2.0.2
httpretty==0.9.6
53 changes: 3 additions & 50 deletions src/ralph/dns/tests.py
@@ -1,21 +1,15 @@
# -*- coding: utf-8 -*-
from unittest.mock import MagicMock, patch
from unittest.mock import patch

import httpretty
from django.db import transaction
from django.test import override_settings, TestCase, TransactionTestCase
from django.test.client import RequestFactory
from django.utils.translation import ugettext_lazy as _

from ralph.assets.tests.factories import (
ConfigurationClassFactory,
EthernetFactory
)
from ralph.data_center.models import BaseObjectCluster, DataCenterAsset
from ralph.data_center.tests.factories import (
ClusterFactory,
DataCenterAssetFullFactory
)
from ralph.dns.dnsaas import DNSaaS
from ralph.dns.forms import DNSRecordForm, RecordType
from ralph.dns.publishers import _get_txt_data_to_publish_to_dnsaas
Expand All @@ -25,8 +19,6 @@
DNSView
)
from ralph.networks.tests.factories import IPAddressFactory
from ralph.tests import factories
from ralph.tests.mixins import ClientMixin
from ralph.virtual.models import VirtualServer
from ralph.virtual.tests.factories import VirtualServerFactory

Expand Down Expand Up @@ -99,12 +91,7 @@ def test_build_url_with_id_and_get_params(self):
)


class TestDNSView(TestCase, ClientMixin):

def setUp(self):
super().setUp()
self.user = factories.UserFactory(is_superuser=True)

class TestDNSView(TestCase):
@override_settings(ENABLE_DNSAAS_INTEGRATION=False)
def test_dnsaasintegration_disabled(self):
with self.assertRaises(DNSaaSIntegrationNotEnabledError):
Expand All @@ -115,39 +102,6 @@ def test_dnsaasintegration_enabled(self):
# should not raise exception
DNSView()

@httpretty.activate
@override_settings(ENABLE_DNSAAS_INTEGRATION=True)
@override_settings(DNSAAS_URL='http://100.200.250.251/')
def test_dnsaas_returns_empty_json(self):
cluster = ClusterFactory()

IPAddressFactory(ethernet__base_object=cluster)

cluster.baseobjectcluster_set.create(
is_master=True,
base_object=DataCenterAssetFullFactory(
rack__name='Rack #1',
rack__server_room__name='SR1',
rack__server_room__data_center__name='DC1',
)
)

httpretty.register_uri(httpretty.GET,
"http://100.200.250.251/api/v2/records/",
body={})
req = RequestFactory().get("/") # url doesn't matter (I hope)
req.user = self.user
mesgs = MagicMock()
v = DNSView(object=cluster)
with patch("ralph.dns.views.messages", mesgs):
v.get_forms(req)

mesgs.error.assert_called()
msgtext = mesgs.error.call_args[0][1]
expected = str(_("Invalid response from DNSaaS:"))
assert msgtext.startswith(expected),\
"%s not in %s" % (expected, msgtext)


class TestGetTXTDataToPublishToDNSaaS(TestCase):

Expand Down Expand Up @@ -593,11 +547,10 @@ def test_publishing_auto_txt_data_when_dc_asset_updated(self, publish_mock):

class TestDNSaaS(TestCase):
def test_user_get_info_when_dnsaas_user_has_no_perm(self):
dns = DNSaaS()

class RequestStub():
status_code = 202
request = RequestStub()
dns = DNSaaS()

result = dns._response2result(request)

Expand Down
15 changes: 5 additions & 10 deletions src/ralph/dns/views.py
Expand Up @@ -5,7 +5,6 @@
from django.contrib import messages
from django.http import HttpResponseRedirect
from django.utils.translation import ugettext_lazy as _
from simplejson import JSONDecodeError

from ralph.admin.views.extra import RalphDetailView
from ralph.dns.dnsaas import DNSaaS
Expand Down Expand Up @@ -51,7 +50,7 @@ def __init__(self, *args, **kwargs):
self.dnsaas = DNSaaS()
return super().__init__(*args, **kwargs)

def get_forms(self, request):
def get_forms(self):
forms = []
ipaddresses = self.object.ipaddresses.all().values_list(
'address', flat=True
Expand All @@ -61,13 +60,9 @@ def get_forms(self, request):
# identify the records do not have any IP address
return forms

try:
initial = self.dnsaas.get_dns_records(ipaddresses)
for item in initial:
forms.append(DNSRecordForm(item))
except JSONDecodeError as e:
messages.error(request, _("Invalid response from DNSaaS: %s") % e)
initial = []
initial = self.dnsaas.get_dns_records(ipaddresses)
for item in initial:
forms.append(DNSRecordForm(item))

if initial and initial[0]['type'] == RecordType.a.id:
# from API "A" record is always first
Expand All @@ -80,7 +75,7 @@ def get_forms(self, request):

def get(self, request, *args, **kwargs):
if 'forms' not in kwargs:
kwargs['forms'] = self.get_forms(request)
kwargs['forms'] = self.get_forms()
return super().get(request, *kwargs, **kwargs)

def post(self, request, *args, **kwargs):
Expand Down
13 changes: 6 additions & 7 deletions src/ralph/settings/dev.py
@@ -1,4 +1,3 @@
# flake8: noqa: E405
from ralph.settings import * # noqa


Expand All @@ -8,12 +7,12 @@ def only_true(request):

DEBUG = True

INSTALLED_APPS = INSTALLED_APPS + ( # type: ignore
INSTALLED_APPS = INSTALLED_APPS + (
'debug_toolbar',
'django_extensions',
)

MIDDLEWARE_CLASSES = MIDDLEWARE_CLASSES + ( # type: ignore
MIDDLEWARE_CLASSES = MIDDLEWARE_CLASSES + (
'debug_toolbar.middleware.DebugToolbarMiddleware',
)

Expand Down Expand Up @@ -41,10 +40,10 @@ def only_true(request):
},
]

LOGGING['handlers']['console']['level'] = 'DEBUG' # type: ignore
for logger in LOGGING['loggers']: # type: ignore
LOGGING['loggers'][logger]['level'] = 'DEBUG' # type: ignore
LOGGING['loggers'][logger]['handlers'].append('console') # type: ignore
LOGGING['handlers']['console']['level'] = 'DEBUG'
for logger in LOGGING['loggers']:
LOGGING['loggers'][logger]['level'] = 'DEBUG'
LOGGING['loggers'][logger]['handlers'].append('console')

if bool_from_env('RALPH_PROFILING'):
SILKY_PYTHON_PROFILER = True
Expand Down

0 comments on commit 69f066d

Please sign in to comment.