def run(job, server, **kwargs): duration = kwargs.get('snapshot_duration') if duration >= 0: set_progress(f"Requested snapshot retention is {duration} minutes") else: set_progress("Requested snapshot will be set to never expire") tintri = Tintri() session_id = tintri.get_session_id(None, save_to_self=True) set_progress(f"Calls to Tintri API will be using session ID: {session_id}") snapshot_name_template = "{{ server.hostname }}-snapshot-00X" snapshot_name = generate_string_from_template_for_server( snapshot_name_template, server ) resp = tintri.create_snapshot( "CRASH_CONSISTENT", kwargs.get( 'snapshot_duration'), snapshot_name, server.tintri_vm_uuid ) set_progress(f"Tintri API response: {resp}") if isinstance(resp, dict): if "code" in resp and resp["code"].startswith("ERR"): return "FAILURE", "", resp["message"]
def get_session(server): """ Get authenticated Tintri Session for the given server Requires: ConnectionInfo object with name 'Tintri VMstore for Environment X' Otherwise return None Args: server (obj): CB server object Returns: tintri: Tintri object """ # instantiate the Tintri server. tintri = Tintri() tintri.get_session_id(None, save_to_self=True) # Login to VMstore conn = tintri.get_connection_info() if not conn: return None return tintri
def run(job, server, **kwargs): snapshot_uuid = kwargs.get('snapshot_uuid') set_progress( f"Attempting to delete snapshot wiht uuid '{snapshot_uuid}' for server '{server}'" ) tintri = Tintri() session_id = tintri.get_session_id(None, save_to_self=True) set_progress(f"Calls to Tintri API will be using session ID: {session_id}") resp = tintri.delete_snapshot(snapshot_uuid) set_progress(f"Tintri API response: {resp}") if isinstance(resp, dict): if "code" in resp and resp["code"].startswith("ERR"): return "FAILURE", "", resp["message"]
def run(job, server, **kwargs): snapshot_uuid = kwargs.get('snapshot_uuid') new_vm_name = kwargs.get('new_vm_name') set_progress( f"New vm '{new_vm_name} will be created by cloning from Tintri snapshot with uuid '{snapshot_uuid}" ) tintri = Tintri() session_id = tintri.get_session_id(None, save_to_self=True) set_progress(f"Calls to Tintri API will be using session ID: {session_id}") resp = tintri.clone_from_snapshot(server.tintri_vm_uuid, snapshot_uuid, new_vm_name) set_progress(f"Tintri API response: {resp}") if isinstance(resp, dict): if "code" in resp and resp["code"].startswith("ERR"): return "FAILURE", "", resp["message"]