First draft of azure management command

This commit is contained in:
Fergal Moran
2014-08-26 21:05:29 +01:00
parent 1bd693dfa6
commit 1578f183c2
4 changed files with 18 additions and 15 deletions

View File

@@ -95,7 +95,7 @@ MIDDLEWARE_CLASSES = (
'django_user_agents.middleware.UserAgentMiddleware', 'django_user_agents.middleware.UserAgentMiddleware',
'pipeline.middleware.MinifyHTMLMiddleware', 'pipeline.middleware.MinifyHTMLMiddleware',
# 'spa.middleware.uploadify.SWFUploadMiddleware', # 'spa.middleware.uploadify.SWFUploadMiddleware',
#'spa.middleware.sqlprinter.SqlPrintingMiddleware' if DEBUG else None, 'spa.middleware.sqlprinter.SqlPrintingMiddleware' if DEBUG else None,
#'debug_toolbar.middleware.DebugToolbarMiddleware', #'debug_toolbar.middleware.DebugToolbarMiddleware',
) )

View File

@@ -58,4 +58,5 @@ djrill
python-shout python-shout
django-dirtyfields django-dirtyfields
django-storages django-storages
django-user-sessions django-user-sessions
apache-libcloud

View File

@@ -1,6 +1,7 @@
from django.core.management.base import NoArgsCommand from django.core.management.base import NoArgsCommand
from libcloud.storage.types import Provider from libcloud.storage.types import Provider
from libcloud.storage.providers import get_driver from libcloud.storage.providers import get_driver
from core.utils.url import url_path_join
from dss import settings from dss import settings
from spa.models.mix import Mix from spa.models.mix import Mix
from datetime import datetime, timedelta from datetime import datetime, timedelta
@@ -8,32 +9,36 @@ from django.db.models import Count
import os import os
import urlparse import urlparse
class Command(NoArgsCommand): class Command(NoArgsCommand):
def handle_noargs(self, **options): def handle_noargs(self, **options):
try: try:
FILE_PATH = '/tmp/dss.log'
cls = get_driver(Provider.AZURE_BLOBS) cls = get_driver(Provider.AZURE_BLOBS)
driver = cls(settings.AZURE_ACCOUNT_NAME, settings.AZURE_ACCOUNT_KEY) driver = cls(settings.AZURE_ACCOUNT_NAME, settings.AZURE_ACCOUNT_KEY)
container = driver.get_container(container_name='mixes') container = driver.get_container(container_name=settings.AZURE_CONTAINER)
mixes = Mix.objects.filter(slug='lsd')
"""
mixes = Mix.objects.filter(upload_date__lte=datetime.today() - timedelta(days=180)) \ mixes = Mix.objects.filter(upload_date__lte=datetime.today() - timedelta(days=180)) \
.annotate(num_plays=Count('activity_plays')) \ .annotate(num_plays=Count('activity_plays')) \
.order_by('num_plays')[:10] .order_by('num_plays')[:1]
"""
for mix in mixes: for mix in mixes:
if os.path.isfile(mix.get_absolute_path()): if os.path.isfile(mix.get_absolute_path()):
print "Uploading file for: %s" % mix.slug print "Uploading file for: %s" % mix.slug
file_name = "%s%s.mp3" % (urlparse.urljoin(settings.AZURE_ITEM_BASE_URL, "mixes/"), mix.uid) file_name = "%s.%s" % (mix.uid, mix.filetype)
archive_path = url_path_join(settings.AZURE_ITEM_BASE_URL, settings.AZURE_CONTAINER, file_name)
with open(mix.get_absolute_path(), 'rb') as iterator: with open(mix.get_absolute_path(), 'rb') as iterator:
obj = driver.upload_object_via_stream( obj = driver.upload_object_via_stream(
iterator=iterator, iterator=iterator,
container=container, container=container,
object_name = file_name object_name=file_name
) )
mix.archive_file = file_name; print "Uploaded"
mix.save() mix.archive_path = archive_path
print "done- file is %s" % file_name mix.save()
print "done- file is %s" % mix.archive_path
except Exception, ex: except Exception, ex:
print "Debug exception: %s" % ex.message print "Debug exception: %s" % ex.message

View File

@@ -163,13 +163,10 @@ class Mix(BaseModel):
return super(Mix, self).get_image_url(self.mix_image, settings.STATIC_URL + 'img/default-track.png') return super(Mix, self).get_image_url(self.mix_image, settings.STATIC_URL + 'img/default-track.png')
def get_stream_path(self): def get_stream_path(self):
ret = url_path_join(localsettings.STREAM_URL, "%s.mp3" % self.uid)
"""
if self.archive_path in [None, '']: if self.archive_path in [None, '']:
ret = url_path_join(localsettings.STREAM_URL, "%s.mp3" % self.uid) ret = url_path_join(localsettings.STREAM_URL, "%s.mp3" % self.uid)
else: else:
ret = self.archive_path ret = self.archive_path
"""
return ret return ret
#used for podcast xml #used for podcast xml