Skip to content

Commit fa526e5

Browse files
committed
Merge pull request #125 from andrewsomething/enable_backups
Allow enabling Droplet backups after creation.
2 parents c393b42 + 6bee300 commit fa526e5

3 files changed

Lines changed: 43 additions & 3 deletions

File tree

digitalocean/Droplet.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -321,11 +321,17 @@ def rebuild(self, image_id=None, return_dict=True):
321321
return_dict
322322
)
323323

324-
def enable_backups(self):
324+
def enable_backups(self, return_dict=True):
325325
"""
326-
Enable automatic backups (Not yet implemented in APIv2)
326+
Enable automatic backups
327+
328+
Optional Args:
329+
return_dict - bool : Return a dict when True (default),
330+
otherwise return an Action.
331+
332+
Returns dict or Action
327333
"""
328-
print("Not yet implemented in APIv2")
334+
return self._perform_action({'type': 'enable_backups'}, return_dict)
329335

330336
def disable_backups(self, return_dict=True):
331337
"""
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"action":
3+
{
4+
"id":54321,
5+
"status":"in-progress",
6+
"type":"enable_backups",
7+
"started_at":"2014-12-21T02:19:17Z",
8+
"completed_at":null,
9+
"resource_id":12345,
10+
"resource_type":"droplet",
11+
"region":"nyc3"
12+
}
13+
}

digitalocean/tests/test_droplet.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -526,6 +526,27 @@ def test_rebuild_not_passing_image_action(self):
526526
self.assertEqual(response.resource_id, 12345)
527527
self.assertEqual(response.resource_type, "droplet")
528528

529+
@responses.activate
530+
def test_enable_backups(self):
531+
data = self.load_from_file('droplet_actions/enable_backups.json')
532+
533+
responses.add(responses.POST, self.actions_url,
534+
body=data,
535+
status=201,
536+
content_type='application/json')
537+
538+
response = self.droplet.enable_backups()
539+
540+
self.assertEqual(responses.calls[0].request.url,
541+
self.actions_url)
542+
self.assertEqual(json.loads(responses.calls[0].request.body),
543+
{"type": "enable_backups"})
544+
self.assertEqual(response['action']['id'], 54321)
545+
self.assertEqual(response['action']['status'], "in-progress")
546+
self.assertEqual(response['action']['type'], "enable_backups")
547+
self.assertEqual(response['action']['resource_id'], 12345)
548+
self.assertEqual(response['action']['resource_type'], "droplet")
549+
529550
@responses.activate
530551
def test_disable_backups(self):
531552
data = self.load_from_file('droplet_actions/disable_backups.json')

0 commit comments

Comments
 (0)