From 39f337d9333c33eb91a1278840e3c752e784e373 Mon Sep 17 00:00:00 2001 From: Wayne Witzel III Date: Thu, 6 Oct 2016 16:16:27 -0400 Subject: [PATCH] added model for holding channel group information, updating asgi_amsqp req --- awx/main/consumers.py | 7 +----- awx/main/migrations/0039_v310_channelgroup.py | 22 +++++++++++++++++++ awx/main/models/__init__.py | 1 + awx/main/models/channels.py | 5 +++++ requirements/requirements.txt | 2 +- 5 files changed, 30 insertions(+), 7 deletions(-) create mode 100644 awx/main/migrations/0039_v310_channelgroup.py create mode 100644 awx/main/models/channels.py diff --git a/awx/main/consumers.py b/awx/main/consumers.py index 67fe0e428d..fb4bf55fd3 100644 --- a/awx/main/consumers.py +++ b/awx/main/consumers.py @@ -7,7 +7,6 @@ from channels.sessions import channel_session def discard_groups(message): if 'groups' in message.channel_session: for group in message.channel_session['groups']: - print("removing from group: {}".format(group)) Group(group).discard(message.reply_channel) @channel_session @@ -16,9 +15,7 @@ def ws_disconnect(message): @channel_session def ws_receive(message): - print(message) raw_data = message.content['text'] - print(raw_data) data = json.loads(raw_data) if 'groups' in data: @@ -29,16 +26,14 @@ def ws_receive(message): if type(v) is list: for oid in v: name = '{}-{}'.format(group_name, oid) - print("listening to group: {}".format(name)) current_groups.append(name) Group(name).add(message.reply_channel) else: - print("listening to group: {}".format(group_name)) current_groups.append(group_name) Group(group_name).add(message.reply_channel) message.channel_session['groups'] = current_groups def emit_channel_notification(group, payload): - print("sending message to group {}".format(group)) + payload = json.dumps(payload) Group(group).send({"text": json.dumps(payload)}) diff --git a/awx/main/migrations/0039_v310_channelgroup.py b/awx/main/migrations/0039_v310_channelgroup.py new file mode 100644 index 0000000000..a150f4cf29 --- /dev/null +++ b/awx/main/migrations/0039_v310_channelgroup.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0038_v310_workflow_rbac_prompts'), + ] + + operations = [ + migrations.CreateModel( + name='ChannelGroup', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('group', models.CharField(unique=True, max_length=200)), + ('channels', models.TextField()), + ], + ), + ] diff --git a/awx/main/models/__init__.py b/awx/main/models/__init__.py index 161a59e65c..f70229cf72 100644 --- a/awx/main/models/__init__.py +++ b/awx/main/models/__init__.py @@ -22,6 +22,7 @@ from awx.main.models.notifications import * # noqa from awx.main.models.fact import * # noqa from awx.main.models.label import * # noqa from awx.main.models.workflow import * # noqa +from awx.main.models.channels import * # noqa # Monkeypatch Django serializer to ignore django-taggit fields (which break # the dumpdata command; see https://github.com/alex/django-taggit/issues/155). diff --git a/awx/main/models/channels.py b/awx/main/models/channels.py new file mode 100644 index 0000000000..cd34678638 --- /dev/null +++ b/awx/main/models/channels.py @@ -0,0 +1,5 @@ +from django.db import models + +class ChannelGroup(models.Model): + group = models.CharField(max_length=200, unique=True) + channels = models.TextField() diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 5f0beba4b7..bcdded9433 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -9,7 +9,7 @@ billiard==3.3.0.16 boto==2.40.0 celery==3.1.23 channels==0.17.2 -asgi_amqp==0.2.1 +asgi_amqp==0.3 cliff==1.15.0 cmd2==0.6.8 d2to1==0.2.11 # TODO: Still needed?