Esempio n. 1
0
def create_session():
    userid = current_user.get_id()
    try:
        service_info = K8SessionManager.getInstance().create_session(
            #session_type=request.args.get('session_type'),
            session_type='simulation',
            platform=request.args.get('platform'),
            simics_version=request.args.get('simics_version'),
            version=request.args.get('version'),
            host_os=request.args.get('host'),
            user=userid)
        name, host_port, created = service_info
        headers = ["Session Name", "VNC", "Created Date"]
        print(headers, service_info)
        return {
            'status': 'ok',
            'headers': headers,
            'data': [name, host_port, created]
        }
    except Exception as error:
        return {
            'status':
            'nok',
            'data':
            f'Failed to create session for {userid}.  Please contact [email protected]'
        }
Esempio n. 2
0
def cmd_create_session(args, _):
    release_tree = simics.ReleaseTree()
    if not args.version:
        versions = release_tree.get_platform_versions(
            args.platform,
            args.simics_version,
        )
        version = versions[-1]
    else:
        version = args.version

    session_manager = K8SessionManager.getInstance()
    if not session_manager.is_valid_os(args.os):
        logging.warning('not valid OS: %s', args.os)
    service_info = session_manager.create_session(
        session_type='simulation',
        platform=args.platform,
        simics_version=args.simics_version,
        version=version,
        host_os=args.os
    )
    name, host_port, created = service_info
    headers = ["Session Name", "Host OS", "VNC Address"]
    data = [[name, args.os, host_port]]
    table = columnar(data, headers, no_borders=True)
    print(table)

    if platform.system() == 'Windows':
        path_vnc = pathlib.Path('C:/Program Files/RealVNC/VNC Viewer/vncviewer.exe')
        if path_vnc.exists():
            command = f'"{path_vnc}" {host_port}'
            popen = sp.Popen(shlex.split(command), shell=True)
Esempio n. 3
0
def delete_session():
    userid = current_user.get_id()
    try:
        session_name = request.args.get("session_name")
        session_type = request.args.get("session_type")
        print(f"Will delete {session_name}")
        K8SessionManager.getInstance().delete_session(
            session_type=session_type, session_name=session_name, user=userid)
        return {
            'status': 'success',
            'data': f'Successfully deleted {session_name}'
        }
    except Exception as error:
        return {
            'status':
            'nok',
            'data':
            f'Failed to delete session for {userid}.  Please contact [email protected]'
        }
Esempio n. 4
0
def get_oses():
    try:
        (headers, data) = K8SessionManager.getInstance().get_oses()
        print(headers, data)
        return {'status': 'ok', 'header': headers, 'data': data}
    except:
        return {
            'status':
            'nok',
            'data':
            f'Failed to get Host OS.  Please contact [email protected]'
        }
Esempio n. 5
0
def get_sessions():
    userid = current_user.get_id()
    try:
        (headers,
         data) = K8SessionManager.getInstance().list_sessions('simulation',
                                                              user=userid)
        #print(headers, data)
        return {'status': 'ok', 'header': headers, 'data': data}
    except Exception as error:
        return {
            'status':
            'nok',
            'data':
            f'Failed to list session for {userid}.  Please contact [email protected]'
        }
Esempio n. 6
0
def cmd_open_session(args, _):
    host_port = ''
    (headers, data) = K8SessionManager.getInstance().list_sessions('interactive')
    for session in data:
        if args.session == session[0]:
            host_port = session[2]
            break

    if host_port != '':
        path_vnc = pathlib.Path('C:/Program Files/RealVNC/VNC Viewer/vncviewer.exe')
        if path_vnc.exists():
            command = f'"{path_vnc}" {host_port}'
            popen = sp.Popen(shlex.split(command), shell=True)
        logging.info(f"Launched {args.session}")
    else:
        raise errors.LaunchError(f'could not launch session {host_port} in VNC')
Esempio n. 7
0
def cmd_delete_session(args, _):
    session_manager = K8SessionManager.getInstance()
    if args.sessions[0] == 'all':
        header, data = session_manager.list_sessions('interactive')
        if data:
            sessions = [session[0] for session in data]
            args.sessions = sessions
        else:
            return # silently since list_session will show the error message

    for session in args.sessions:
        try:
            session_manager.delete_session(
                session_type='interactive',
                session_name=session,
            )
            logging.info(f"Successfully deleted {session}")
        except errors.ContainerError:
            logging.error(f"Failed to delete {session}")
def cmd_create_session(args, _):
    session_manager = K8SessionManager.getInstance()
    if session_manager.is_valid_os(args.os):

        service_info = session_manager.create_session(
                            session_type='interactive',
                            platform=None,
                            simics_version=None,
                            version=None,
                            host_os=args.os
        )
        name, host_port, created = service_info
        headers = ["Session Name", "Host OS", "VNC Address"]
        data = [[name, args.os, host_port]]
        table = columnar(data, headers, no_borders=True)
        print(table)
        
        if platform.system() == 'Windows':
            path_vnc = pathlib.Path('C:/Program Files/RealVNC/VNC Viewer/vncviewer.exe')
            if path_vnc.exists():
                command = f'"{path_vnc}" {host_port}'
                popen = sp.Popen(shlex.split(command), shell=True)
    else:
        logging.error("Selected OS %s is invalid.Check valid OSes with --list-oses" % args.os)
def cmd_list_sessions(args, _):
    (headers,
     data) = K8SessionManager.getInstance().list_sessions('simulation')
    if data:
        table = columnar(data, headers, no_borders=True)
        print(table)
Esempio n. 10
0
def cmd_list_oses(args, _):
    (headers, data) = K8SessionManager.getInstance().get_oses()
    table = columnar(data, headers, no_borders=True)
    print(table)