def serial_start_command(command_args):
    """ Start serial session command parser
    """
    try:
        permission = False
        deviceid = 0

        parser = ArgumentParser(prog="start serial",
                                description="Start serial session command")

        subparser = parser.add_subparsers(title="Commands", dest="command")

        serial_parser = subparser.add_parser("session",
                                             help="Start serial session")
        serial_parser.add_argument("-i",
                                   dest="serverid",
                                   type=int,
                                   help="server-id (1 to 48)",
                                   required=True)
        serial_parser.add_argument("-f",
                                   action="store_true",
                                   help="force start",
                                   required=False,
                                   default=False)

        args = parse_args_retain_case(parser, command_args)

        if args.serverid < 1 or args.serverid > 48:
            print_response(
                set_failure_dict(
                    "Server ID invalid {0}, expected (1-48)".format(
                        args.serverid), completion_code.failure))
            return

        config_cmd = repr(pre_settings.command_name_enum.set_blade_config)
        deviceid = args.serverid

        permission = pre_settings.pre_check_manager(config_cmd, deviceid)

        if (permission == False):
            return
        else:
            ocsaudit_log_command("", cmd_type.type_start,
                                 cmd_interface.interface_ocscli,
                                 "serial " + str(args.command),
                                 " ".join(command_args[1:]))

        system_serial_session(args.serverid, "startserialsession", args.f)

    except Exception, e:
        print_response("serial_start_command - Exception: {0}".format(e))
def rackmanager_parse_set_commands(command_args):
    """
    Set commands for rack manager
        ocscli set rackmanager <command> <parameters>
        
        Command options:
            "LEDOn",
            "LEDOff",
            "RelayOn",
            "RelayOff",
            "TFTPStart",
            "TFTPStop",
            "TFTPGet",
            "TFTPPut",
            "TFTPDelete",
            "NFSStart",
            "NFSStop",
            "FwUpdate",
            "ClearLog",
            "SessionKill",
            "Time"
    """
    
    try:
        parser = ArgumentParser(prog = 'set manager', description = "Manager set commands")
        
        subparser = parser.add_subparsers(title = "Commands", metavar = '', dest = 'command')
        
        rackmanager_setcommand_options(subparser)
        
        args = parse_args_retain_case(parser, command_args)
        
        set_rm_cmd = repr(pre_settings.command_name_enum.set_rm_state)
        
        if pre_settings.is_set_rm_call == True:
            ocsaudit_log_command("", cmd_type.type_set, cmd_interface.interface_ocscli, 
                                 "manager " + str(args.command), " ".join(command_args[1:]))
            rackmanager_setcommands(args)
        else:
            permission = pre_settings.pre_check_manager(set_rm_cmd, 0) 
            if (permission == False):
                return
            else:
                ocsaudit_log_command("", cmd_type.type_set, cmd_interface.interface_ocscli, 
                                     "manager " + str(args.command), " ".join(command_args[1:]))
                rackmanager_setcommands(args)     
        
    except Exception, e:
        ocslog.log_exception()
        print "rackmanager_parse_set_commands - Exception: {0}".format(e) 
def rackmanager_parse_show_commands(command_args):
    """
    Display commands for rack manager
        ocscli show rackmanager <command> <parameters>
        
        Command options:
            "Info",
            "PortStatus",
            "LEDStatus",
            "Relay",
            "TFTPStatus",
            "TFTPList",
            "NFSStatus",
            "SessionList",
            "Log",
            "Time",
            "Type",
            "ScanDevice",
            "FWUpdate"
    """
    
    try:
        parser = ArgumentParser(prog = 'show manager', description = "Manager show commands")
        
        subparser = parser.add_subparsers(title = "Commands", metavar = '', dest = 'command')
        
        rackmanager_showcommand_options(subparser)
                
        args = parse_args_retain_case(parser, command_args)
        
        get_rm_cmd = repr(pre_settings.command_name_enum.get_rm_state)
        if pre_settings.is_get_rm_call == True:
            ocsaudit_log_command("", cmd_type.type_show, cmd_interface.interface_ocscli, 
                                     "manager " + str(args.command)," ".join(command_args[1:]))
            rackmanager_showcommands(args)
        else:
            permission = pre_settings.pre_check_manager(get_rm_cmd, 0) 
            if (permission == False):
                return
            else:
                ocsaudit_log_command("", cmd_type.type_show, cmd_interface.interface_ocscli, 
                                     "manager " + args.command, " ".join(command_args[1:]))
                rackmanager_showcommands(args)      
        
    except Exception,e: print(e)
Exemplo n.º 4
0
def user_Actions(command_args):
    """
        Entry point to user management.
            List all users:
                ocscli show user info
                
            List user information by user name.
                ocscli show user info -t {user} -u {username}
            
            List user information by user name.
                ocscli show user info -t {role} -r {rolename}                        
                
            Add new User:
                ocscli set user add -u {username} -p '{password}' -r {role name}
            
            Update password: 
                ocscli set user update -t "password" -u {username} -p {new password}
            
            Update role:
                ocscli set user update -t "role" -u {username} -r {new role} 
            
            Delete User:
                ocscli set user delete -u {username}        
    """
    
    parser = ArgumentParser(description = "Display, create, or delete user accounts, or update role/password")

    subparsers = parser.add_subparsers(title = "Commands", metavar = '', dest = 'command')
    
    user_addCommand_options(subparsers)
    user_infoCommand_options(subparsers)
    user_updateCommand_options(subparsers)
    user_deleteCommand_options(subparsers)
       
    args = parse_args_retain_case(parser, command_args) 
    
    if args.command == "info":                       
        ocsaudit_log_command("", cmd_type.type_show, cmd_interface.interface_ocscli, 
                             "user " + str(args.command)," ".join(command_args[1:]))
                
        get_rm_cmd = repr(pre_settings.command_name_enum.get_rm_state)
        permission = pre_settings.pre_check_manager(get_rm_cmd, 0) 
            
        if (permission == False):
            return
        else:
            if args.username and args.role:
                user_displayByNameRole(args.username, args.role)            
            elif args.username:
                user_displayByName(args.username)
            elif args.role:
                user_displayByRole(args.role)
            else:
                user_displayAll()
    else:
        protected_args = command_args[1:]

        # Mask password when logged in OcsAudit
        if "-p" in protected_args:
            index = protected_args.index("-p") + 1
            protected_args[index] = "*****"
            
        ocsaudit_log_command("", cmd_type.type_set, cmd_interface.interface_ocscli, 
                             "user " + str(args.command)," ".join(protected_args))
        
        set_rm_cmd = repr(pre_settings.command_name_enum.set_rm_state)
        permission = pre_settings.pre_check_manager(set_rm_cmd, 0) 
            
        if (permission == False):
            return
        else:
            if args.command == "add":
                if not args.username:
                    print_response(set_failure_dict("Must provide username", completion_code.failure))
                elif not args.password:
                    print_response(set_failure_dict("Must provide password", completion_code.failure))
                elif not args.role:
                    print_response(set_failure_dict("Must provide role", completion_code.failure))
                else:
                    user_add(args.username, args.password, args.role)     
                           
            elif args.command == "update":
                if args.oType.lower() == "password":
                    if args.password:
                        user_updatePwd(args.username, args.password)
                    else:
                        print_response(set_failure_dict("Must provide password", completion_code.failure))
                elif args.oType.lower() == "role":
                    if args.role:
                        user_updateRole(args.username, args.role)
                    else:
                        print_response(set_failure_dict("Must provide role", completion_code.failure))
                        
            elif args.command == "delete":
                user_delete(args.username)