Merge branch 'release_3.1.3' into devel

* release_3.1.3:
  create .lock file without needing the proj dir to exist
  work around a change in ansible 2.3 to `Task.get_name()`
  mock message obect in callback receiver test
This commit is contained in:
Matthew Jones
2017-05-01 14:35:11 -04:00
3 changed files with 14 additions and 7 deletions

View File

@@ -301,7 +301,7 @@ class BaseCallbackModule(CallbackBase):
# strip environment vars from the job event; it already exists on the
# job and sensitive values are filtered there
if result._task.get_name() == 'setup':
if result._task.action in ('setup', 'gather_facts'):
result._result.get('ansible_facts', {}).pop('ansible_env', None)
event_data = dict(

View File

@@ -205,7 +205,11 @@ class ProjectOptions(models.Model):
return sorted(results, key=lambda x: smart_str(x).lower())
def get_lock_file(self):
proj_path = self.get_project_path()
'''
We want the project path in name only, we don't care if it exists or
not. This method will just append .lock onto the full directory path.
'''
proj_path = self.get_project_path(check_if_exists=False)
if not proj_path:
return None
return proj_path + '.lock'

View File

@@ -6,6 +6,9 @@ import pytest
from datetime import datetime
import json
# Mock
import mock
# Django
from django.utils import timezone
@@ -41,21 +44,21 @@ def check_process_fact_message_module(fact_returned, data, module_name):
@pytest.mark.django_db
def test_process_fact_message_ansible(fact_msg_ansible, monkeypatch_jsonbfield_get_db_prep_save):
receiver = FactBrokerWorker(None)
fact_returned = receiver.process_fact_message(fact_msg_ansible, None)
fact_returned = receiver.process_fact_message(fact_msg_ansible, mock.MagicMock())
check_process_fact_message_module(fact_returned, fact_msg_ansible, 'ansible')
@pytest.mark.django_db
def test_process_fact_message_packages(fact_msg_packages, monkeypatch_jsonbfield_get_db_prep_save):
receiver = FactBrokerWorker(None)
fact_returned = receiver.process_fact_message(fact_msg_packages, None)
fact_returned = receiver.process_fact_message(fact_msg_packages, mock.MagicMock())
check_process_fact_message_module(fact_returned, fact_msg_packages, 'packages')
@pytest.mark.django_db
def test_process_fact_message_services(fact_msg_services, monkeypatch_jsonbfield_get_db_prep_save):
receiver = FactBrokerWorker(None)
fact_returned = receiver.process_fact_message(fact_msg_services, None)
fact_returned = receiver.process_fact_message(fact_msg_services, mock.MagicMock())
check_process_fact_message_module(fact_returned, fact_msg_services, 'services')
@@ -75,10 +78,10 @@ def test_process_facts_message_ansible_overwrite(fact_scans, fact_msg_ansible, m
value = 'hello world'
receiver = FactBrokerWorker(None)
receiver.process_fact_message(fact_msg_ansible, None)
receiver.process_fact_message(fact_msg_ansible, mock.MagicMock())
fact_msg_ansible['facts'][key] = value
fact_returned = receiver.process_fact_message(fact_msg_ansible, None)
fact_returned = receiver.process_fact_message(fact_msg_ansible, mock.MagicMock())
fact_obj = Fact.objects.get(id=fact_returned.id)
assert key in fact_obj.facts