Example #1
0
def run(server, *args, **kwargs):
    set_progress("Starting install CloudEndure agent process...")
    cloud_endure_manager = CloudEndureManager()
    install_token = kwargs.get('install_token')
    cloud_endure_project = kwargs.get('cloud_endure_project')

    if server.is_windows():
        try:
            cloud_endure_manager.install_agent(
                INSTALL_WINDOWS_AGENT,
                {'agent_installation_token': install_token[0]}, server)
        except Exception as error:
            set_progress(error)
        try:
            if cloud_endure_manager.check_agent_status(server):
                set_progress("The agent was installed successfully.")
                server.cloud_endure_project = cloud_endure_project
                server.save()
                return "SUCCESS", "The agent was installed successfully.", ""
            else:
                set_progress("The agent was not installed successfully.")
                return "FAILURE", "Agent not installed", ""
        except Exception as error:
            set_progress(error)
            return "FAILURE", "", f"{error}"

    elif server.os_family.get_base_name() == 'Linux':
        try:
            cloud_endure_manager.install_agent(
                INSTALL_LINUX_AGENT,
                {'agent_installation_token': install_token[0]}, server)
        except Exception as error:
            set_progress(
                f"Error occurred while trying to install the agent. {error}")
        try:
            if cloud_endure_manager.check_agent_status(server):
                set_progress("The agent was installed successfully.")
                server.cloud_endure_project = cloud_endure_project
                server.save()
                return "SUCCESS", "The agent was installed successfully.", ""
            else:
                set_progress("The agent was not installed successfully.")

        except Exception as error:
            set_progress(f"The agent was not installed successfully. {error}")
            return "FAILURE", "", f"{error}"
    else:
        return "FAILURE", "CloudEndure Agent can't be installed on this server", ""
Example #2
0
def cloudendure_tab(request, obj_id):
    context = {}
    server = Server.objects.get(id=obj_id)
    cloud_endure_manager = CloudEndureManager()
    context['install_ready'] = cloud_endure_manager.check_agent_status(
        server)[0]
    context['server'] = server

    # check if server credentials are set
    if server.password is None:
        msg = helper_tags.alert(
            'warning',
            'Agent is not installed. It can not be installed because the server password is not set.'
        )
        context['server_credentials'] = False, msg
    else:
        context['server_credentials'] = True, "Server password is set"

    # check if the server is turned on
    if server.power_status == 'POWERON':
        context['power_on'] = True, "Server is turned on"
    else:
        msg = helper_tags.alert(
            'warning',
            'Agent is not installed. It can not be installed because the server is turned off.'
        )
        context['power_on'] = False, msg

    context['machine_actions'] = [('start', 'Start Data Replication'),
                                  ('uninstall', 'Uninstall Agent'),
                                  ('pause', 'Pause Data Replication'),
                                  ('stop', 'Stop Data Replication'),
                                  ('migrate', 'Migrate VM to AWS')]

    install_job = server.jobs.filter(
        job_parameters__hookparameters__hook__name='Install CloudEndure Agent'
    ).last()
    job_running = False
    if install_job and install_job.is_active():
        job_running = True
        context['job_url'] = install_job.get_absolute_url()

    context['job_running'] = job_running
    return render(request, 'cloudendure/templates/server_tab.html', context)