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"]
Exemple #2
0
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
Exemple #3
0
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"]