Repository URL to install this package:
|
Version:
6.1.1.dev2 ▾
|
# Copyright (c) 2014 TrilioData, Inc.
# All Rights Reserved.
"""
Backup Target interface (1.1 extension).
"""
import six
try:
from urllib import urlencode
except ImportError:
from urllib.parse import urlencode
from workloadmgrclient import base
class BackupTarget(base.Resource):
def __repr__(self):
return "<BackupTarget: %s>" % self.id
class BackupTargetManager(base.ManagerWithFind):
"""Manage :class:`BackupTarget` resources."""
resource_class = BackupTarget
def get(self, backup_target_id, query_string=None):
"""
Show details of a backup target.
:param backup_target_id: The ID of the backup_target to display.
:rtype: :class:`BackupTarget`
"""
return self._get("/backup_targets/%s" % backup_target_id, "backup_targets")
def list(self, detailed=True):
"""
Get a list of all backup targets
:rtype: list of :class:`BackupTarget`
"""
detail = "/detail" if detailed else ""
return self._list("/backup_targets%s" % (detail), "backup_targets")
def create(
self,
s3_endpoint_url,
s3_bucket,
filesystem_export,
type,
btt_name,
default,
immutable,
metadata
):
body = {
"backup_target" :
{
"s3_endpoint_url": s3_endpoint_url,
"s3_bucket": s3_bucket,
"filesystem_export": filesystem_export,
"type": type,
"btt_name": btt_name,
"is_default": 1 if default else 0,
"immutable": 1 if immutable else 0,
"metadata": metadata
}
}
return self._create("/backup_targets", body, "backup_targets")
def delete(self, backup_target_id):
"""Delete a BT.
:param backup_target_id: The :class:`BackupTarget` to delete.
"""
self._delete(
"/backup_targets/%s" % (base.getid(backup_target_id))
)
def set_default(self, backup_target_id):
return self._get("/backup_targets/%s/set_default" % backup_target_id, "backup_targets")