Skip to content

Commit dc744a5

Browse files
committed
Merge pull request #8 from adamjmcgrath/move-backups
Move and organise backups folder
2 parents 22eef69 + 57c2e09 commit dc744a5

File tree

5 files changed

+34
-3
lines changed

5 files changed

+34
-3
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ python:
66
env:
77
global:
88
- secure: KTWs8jE9COxyuULlAiynxrI61wKfZhz56B99zT75e4tdcCSGRIIWut8Skm1thAUSQsEymXhvhhmgND3qbjChyw90F/hAiA8xgo/QxpESvI48AXi9CLPfB9kyaf9SPqXokKxj0yYqCCYLLfmCu/glO66S69+5iQbwn8M+9WHdeHwYffJrFJonUt/E0HAuaNdmJIDCd3nuAp7Ol7JAuUsg8971SoeDqk+wBPNzN4UWYtpWGvxUas51w7YjIPwG7cr6C3XvP/G1x2YPU6yP0gQBtgKt3X3+W6FJqO1GZaiQ1iTK+nRhaU1SecjmkHJJKQjQDX+0CLVWW5Y98SrbtKYht/Ez3/3GG4NyHTtmBZ67F4cC3ikdTRDp3ixTAoay7M4osIgvkdNsCeiYGz8dXvIbOsh+bebCPHwYfdsVk0656XS3V2G5EnXMhqaOzDqdwdCMCUR/LUm4GOmZ2BqNAQT/CnsWugE7BZwyN9I8S1bVMfU0a4soXNAlXbr6Kzr01cdX7Po43y7GOe4QgQHMJuNrFzbJ24IT/OOKJKkgRRfUQoX3LQHH++EHUnKpeTDrT72MRp095jiRW5gjUVjidTtYG0YruZ4PFv66ICKHEmVEm57ATxjupea/goESWslp1/Vj2XV3mKhVcGwJ52WHV2czh8EEu/G16XZMHqwFDjIOg6c=
9-
- APPENGINE_SDK=google_appengine_1.9.21
9+
- APPENGINE_SDK=google_appengine_1.9.24
1010

1111
cache:
1212
directories:

src/cron.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ cron:
1919
schedule: every monday 05:00
2020

2121
- description: weekly backup
22-
url: /_ah/datastore_admin/backup.create?kind=Clue&kind=Question&kind=Season&kind=User&kind=UserQuestion&kind=UserSeason&kind=UserToken&kind=League&kind=LeagueUser&filesystem=gs&gs_bucket_name=ffcapp.appspot.com
22+
url: /tasks/backup
2323
schedule: every saturday 01:00
24-
target: ah-builtin-python-bundle
2524
timezone: Europe/London

src/main.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
'tasks-cleananonusers'),
4646
webapp2.Route(r'/tasks/cleanupusertokens', tasks.CleanUpUserTokens,
4747
'tasks-cleanupusertokens'),
48+
webapp2.Route(r'/tasks/backup', tasks.ScheduledBackup, 'tasks-backup'),
4849

4950
# Api.
5051
webapp2.Route(r'/api/question/<:.+>', question.Question, 'api-question'),

src/queue.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
queue:
22
- name: pose
33
rate: 100/s
4+
- name: backup-builtin-queue
5+
rate: 30/s
6+
target: ah-builtin-python-bundle

src/tasks.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,25 @@
99
import datetime
1010
import logging
1111

12+
from google.appengine.api import taskqueue
1213
from google.appengine.ext import deferred, blobstore, ndb
1314
from webapp2_extras.appengine.auth.models import UserToken
1415

1516
import baserequesthandler
1617
import models
1718

1819
BATCH_SIZE = 100
20+
BACKUP_ENTITIES = [
21+
'Clue',
22+
'Question',
23+
'Season',
24+
'User',
25+
'UserQuestion',
26+
'UserSeason',
27+
'UserToken',
28+
'League',
29+
'LeagueUser',
30+
]
1931

2032

2133
def delete_user(user_id, anonymous=False):
@@ -93,3 +105,19 @@ def get(self):
93105
else:
94106
break
95107

108+
109+
class ScheduledBackup(baserequesthandler.RequestHandler):
110+
111+
def get(self):
112+
backup_folder = datetime.now().strftime('%y-%m-%d')
113+
bucket_name = 'ffcapp.appspot.com/backups/%s' % backup_folder
114+
params = {
115+
'filesystem' : 'gs',
116+
'gs_bucket_name': bucket_name,
117+
'kind' : BACKUP_ENTITIES
118+
}
119+
120+
url = '/_ah/datastore_admin/backup.create'
121+
122+
logging.info('Backing up %s to: %s' % (BACKUP_ENTITIES, bucket_name))
123+
taskqueue.add(url=url, params=params, queue_name='backup-builtin-queue')

0 commit comments

Comments
 (0)