Class AdminControllerImpl
java.lang.Object
uk.ac.manchester.spinnaker.alloc.db.SQLQueries
uk.ac.manchester.spinnaker.alloc.db.DatabaseAwareBean
uk.ac.manchester.spinnaker.alloc.admin.AdminControllerImpl
- All Implemented Interfaces:
AdminController
@Controller("mvc.adminUI") @PreAuthorize("hasRole(\'ADMIN\')") public class AdminControllerImpl extends DatabaseAwareBean implements AdminController
Implements the logic supporting the JSP views and maps them into URL space.
- Author:
- Donal Fellows
-
Nested Class Summary
Nested classes/interfaces inherited from class uk.ac.manchester.spinnaker.alloc.db.DatabaseAwareBean
DatabaseAwareBean.AbstractSQL
Nested classes/interfaces inherited from interface uk.ac.manchester.spinnaker.alloc.admin.AdminController
AdminController.BlacklistData, AdminController.CreateGroupModel
-
Field Summary
Fields inherited from class uk.ac.manchester.spinnaker.alloc.db.SQLQueries
ADD_BLACKLISTED_CHIP, ADD_BLACKLISTED_CORE, ADD_BLACKLISTED_LINK, ADD_USER_TO_GROUP, ADJUST_QUOTA, ALLOCATE_BOARDS_BOARD, ALLOCATE_BOARDS_JOB, BUMP_IMPORTANCE, CHECK_LOCATION, checkRectangle, checkRectangleAt, CLEAR_BLACKLISTED_CHIPS, CLEAR_BLACKLISTED_CORES, CLEAR_BLACKLISTED_LINKS, COMPLETED_BLACKLIST_WRITE, COMPLETED_BOARD_INFO_READ, COMPLETED_GET_SERIAL_REQ, COUNT_CHANGES_FOR_JOB, COUNT_FUNCTIONING_BOARDS, COUNT_MACHINE_THINGS, COUNT_POWERED_BOARDS, countConnected, CREATE_BLACKLIST_READ, CREATE_BLACKLIST_WRITE, CREATE_GROUP, CREATE_GROUP_IF_NOT_EXISTS, CREATE_SERIAL_READ_REQ, CREATE_TEMP_READ_REQ, CREATE_USER, DEALLOCATE_BMP_BOARDS_JOB, DECREMENT_QUOTA, DELETE_ALLOC_RECORD, DELETE_BLACKLIST_OP, DELETE_GROUP, DELETE_JOB_RECORD, DELETE_MACHINE_TAGS, DELETE_NMPI_JOB, DELETE_NMPI_SESSION, DELETE_PENDING, DELETE_TASK, DELETE_USER, DESTROY_JOB, ERROR_PENDING, FAILED_BLACKLIST_OP, FIND_BOARD_BY_ID, FIND_BOARD_BY_NAME_AND_CFB, FIND_BOARD_BY_NAME_AND_IP_ADDRESS, FIND_BOARD_BY_NAME_AND_XYZ, FIND_EXPIRED_JOBS, FIND_FREE_BOARD, FIND_LOCATION, findBoardByGlobalChip, findBoardByIPAddress, findBoardByJobChip, findBoardByLogicalCoords, findBoardByPhysicalCoords, findRectangle, findRectangleAt, FINISHED_PENDING, GET_ALL_BMP_BOARDS, GET_ALL_BMPS, GET_ALL_BOARDS, GET_ALL_BOARDS_OF_ALL_MACHINES, GET_ALL_MACHINES, GET_AVAILABLE_BOARD_NUMBERS, GET_BLACKLIST_READS, GET_BLACKLIST_WRITES, GET_BLACKLISTED_CHIPS, GET_BLACKLISTED_CORES, GET_BLACKLISTED_LINKS, GET_BMP_ADDRESS, GET_BMP_BOARD_NUMBERS, GET_BOARD_ADDRESS, GET_BOARD_BY_COORDS, GET_BOARD_CONNECT_INFO, GET_BOARD_JOB, GET_BOARD_NUMBERS, GET_BOARD_POWER_INFO, GET_BOARD_REPORTS, GET_CHANGES, GET_COMPLETED_BLACKLIST_OP, GET_CONSOLIDATION_TARGETS, GET_CURRENT_USAGE, GET_DEAD_BOARDS, GET_FUNCTIONING_FIELD, GET_GROUP_BY_ID, GET_GROUP_BY_NAME, GET_GROUP_BY_NAME_AND_MEMBER, GET_GROUP_NAMES_OF_USER, GET_GROUP_QUOTA, GET_JOB, GET_JOB_BOARD_COORDS, GET_JOB_BOARDS, GET_JOB_CHIP_DIMENSIONS, GET_JOB_IDS, GET_JOB_NMPI_JOB, GET_JOB_SESSION, GET_JOB_USAGE_AND_QUOTA, GET_LIVE_BOARDS, GET_LIVE_JOB_IDS, GET_LOCAL_USER_DETAILS, GET_MACHINE_BY_ID, GET_MACHINE_JOBS, GET_MACHINE_REPORTS, GET_MACHINE_WRAPS, GET_MEMBERSHIP, GET_MEMBERSHIPS_OF_USER, GET_NAMED_MACHINE, GET_ROOT_BMP_ADDRESS, GET_ROOT_COORDS, GET_ROOT_OF_BOARD, GET_SERIAL_INFO_REQS, GET_SUM_BOARDS_POWERED, GET_TAGS, GET_TEMP_INFO_REQS, GET_USER_AUTHORITIES, GET_USER_DETAILS, GET_USER_DETAILS_BY_NAME, GET_USER_DETAILS_BY_SUBJECT, GET_USER_ID, GET_USER_QUOTA, GET_USERS_OF_GROUP, getAllocationTasks, getConnectedBoards, getDeadLinks, getJobsWithChanges, getPerimeterLinks, getReportedBoards, GROUP_SYNC_ADD_GROUPS, GROUP_SYNC_DROP_TEMP_TABLE, GROUP_SYNC_INSERT_TEMP_ROW, GROUP_SYNC_MAKE_TEMP_TABLE, GROUP_SYNC_REMOVE_GROUPS, INSERT_BMP, INSERT_BOARD, INSERT_BOARD_REPORT, INSERT_JOB, INSERT_LINK, INSERT_MACHINE_SPINN_5, INSERT_REQ_BOARD, INSERT_REQ_N_BOARDS, INSERT_REQ_SIZE, INSERT_REQ_SIZE_BOARD, INSERT_TAG, IS_BOARD_BLACKLIST_CURRENT, IS_USER_LOCKED, issueChangeForJob, KILL_JOB_ALLOC_TASK, LIST_ALL_GROUPS, LIST_ALL_GROUPS_OF_TYPE, LIST_ALL_USERS, LIST_ALL_USERS_OF_TYPE, LIST_LIVE_JOBS, LIST_MACHINE_NAMES, LOAD_DIR_INFO, MARK_BOARD_BLACKLIST_CHANGED, MARK_BOARD_BLACKLIST_SYNCHED, MARK_CONSOLIDATED, MARK_LOGIN_FAILURE, MARK_LOGIN_SUCCESS, NOTE_DESTROY_REASON, READ_HISTORICAL_ALLOCS, READ_HISTORICAL_JOBS, REMOVE_USER_FROM_GROUP, SET_BOARD_POWER_OFF, SET_BOARD_POWER_ON, SET_BOARD_SERIAL_IDS, SET_COLLAB_QUOTA, SET_FUNCTIONING_FIELD, SET_JOB_NMPI_JOB, SET_JOB_SESSION, SET_MACHINE_STATE, SET_MAX_COORDS, SET_STATE_DESTROYED, SET_STATE_PENDING, SET_USER_DISABLED, SET_USER_LOCKED, SET_USER_NAME, SET_USER_PASS, SET_USER_TRUST, UNLOCK_LOCKED_USERS, UPDATE_GROUP, UPDATE_KEEPALIVE, WRITE_HISTORICAL_ALLOCS, WRITE_HISTORICAL_JOBS
Fields inherited from interface uk.ac.manchester.spinnaker.alloc.admin.AdminController
BASE_PATH, BLACKLIST_PATH, BOARDS_PATH, CREATE_GROUP_PATH, CREATE_USER_PATH, GROUP_ADD_USER_PATH, GROUP_DELETE_PATH, GROUP_PATH, GROUP_QUOTA_PATH, GROUP_REMOVE_USER_PATH, GROUPS_PATH, MACHINE_FILE_PARAM, MACHINE_PATH, MACHINE_RETAG_PARAM, TEMPERATURE_PATH, USER_DELETE_PATH, USER_PATH, USERS_PATH
-
Constructor Summary
Constructors Constructor Description AdminControllerImpl()
-
Method Summary
Modifier and Type Method Description ModelAndView
addUserToGroup(int id, String user, RedirectAttributes attrs)
Add a user to a group.ModelAndView
adjustGroupQuota(int id, int delta, RedirectAttributes attrs)
Adjust the quota of a group.AdminController.BlacklistData
blacklistFetch(int boardId, int bmpId)
Fetch the blacklist for a board from the machine.ResponseEntity<Void>
blacklistSave(AdminController.BlacklistData bldata)
Save a new blacklist.ModelAndView
board(BoardRecord board, ModelMap model)
Manipulate a board.ModelAndView
boards(ModelMap ignored)
UI for boards.ModelAndView
createGroup(AdminController.CreateGroupModel groupRequest, RedirectAttributes attrs)
Create a group.ModelAndView
createUser(UserRecord user, ModelMap model, RedirectAttributes attrs)
Create a user.ModelAndView
defineMachine(MultipartFile file)
Handle the upload of a machine definition.ModelAndView
deleteGroup(int id, RedirectAttributes attrs)
Delete a group.ModelAndView
deleteUser(int id, Principal principal, RedirectAttributes attrs)
Delete a user.ModelAndView
disableMachine(String machineName)
Mark a machine as out of service.ModelAndView
enableMachine(String machineName)
Mark a machine as in service.ModelAndView
getGroupCreationForm(ModelMap ignored)
Get the form for creating a group.BoardTemperatures
getTemperatures(int boardId, int bmpId)
Get the temperature data for a board.ModelAndView
getUserCreationForm(ModelMap ignored)
Get the form for creating a user.ModelAndView
listGroups(ModelMap ignored)
List all groups.ModelAndView
listUsers(ModelMap ignored)
List all users.ModelAndView
machineManagement(ModelMap ignored)
Provide the form for uploading a machine definition.ModelAndView
mainUI(ModelMap ignored)
Get supported ops.ModelAndView
removeUserFromGroup(int id, int userid, RedirectAttributes attrs)
Remove a user from a group.ModelAndView
retagMachine(String machineName, String newTags)
Handle the change of the tags of a machine.ModelAndView
showGroupInfo(int id)
Get info about a particular group.ModelAndView
showUserForm(int id)
Show user details.ModelAndView
submitUserForm(int id, UserRecord user, ModelMap model, Principal principal)
Modify user details.Methods inherited from class uk.ac.manchester.spinnaker.alloc.db.DatabaseAwareBean
execute, executeRead, getConnection, getHistoricalConnection, isHistoricalDBAvailable
-
Constructor Details
-
AdminControllerImpl
public AdminControllerImpl()
-
-
Method Details
-
mainUI
Description copied from interface:AdminController
Get supported ops.- Specified by:
mainUI
in interfaceAdminController
- Parameters:
ignored
- Overall model- Returns:
- the view
-
listUsers
Description copied from interface:AdminController
List all users.- Specified by:
listUsers
in interfaceAdminController
- Parameters:
ignored
- Overall model- Returns:
- the model and view
-
getUserCreationForm
Description copied from interface:AdminController
Get the form for creating a user.- Specified by:
getUserCreationForm
in interfaceAdminController
- Parameters:
ignored
- Overall model- Returns:
- the model and view
-
createUser
Description copied from interface:AdminController
Create a user.- Specified by:
createUser
in interfaceAdminController
- Parameters:
user
- The description of the user to createmodel
- Overall modelattrs
- Where to put attributes of the model so that they are respected after the redirect without being present in the URL.- Returns:
- the model and view
-
showUserForm
Description copied from interface:AdminController
Show user details.- Specified by:
showUserForm
in interfaceAdminController
- Parameters:
id
- The user ID- Returns:
- the model and view
-
submitUserForm
Description copied from interface:AdminController
Modify user details.- Specified by:
submitUserForm
in interfaceAdminController
- Parameters:
id
- The user IDuser
- The description of the user to updatemodel
- Overall modelprincipal
- Who is the admin? Used for safety checks.- Returns:
- the model and view
-
deleteUser
Description copied from interface:AdminController
Delete a user.- Specified by:
deleteUser
in interfaceAdminController
- Parameters:
id
- The user ID to deleteprincipal
- Who is the admin? Used for safety checks.attrs
- Where to put attributes of the model so that they are respected after the redirect without being present in the URL.- Returns:
- the model and view
-
listGroups
Description copied from interface:AdminController
List all groups.- Specified by:
listGroups
in interfaceAdminController
- Parameters:
ignored
- Overall model- Returns:
- the model and view
-
showGroupInfo
Description copied from interface:AdminController
Get info about a particular group.- Specified by:
showGroupInfo
in interfaceAdminController
- Parameters:
id
- The ID of the group to get info about.- Returns:
- the model and view
-
getGroupCreationForm
Description copied from interface:AdminController
Get the form for creating a group.- Specified by:
getGroupCreationForm
in interfaceAdminController
- Parameters:
ignored
- Overall model- Returns:
- the model (a
AdminController.CreateGroupModel
) and view
-
createGroup
public ModelAndView createGroup(AdminController.CreateGroupModel groupRequest, RedirectAttributes attrs)Description copied from interface:AdminController
Create a group.- Specified by:
createGroup
in interfaceAdminController
- Parameters:
groupRequest
- The description of the group to createattrs
- Where to put attributes of the model so that they are respected after the redirect without being present in the URL.- Returns:
- the model and view
-
addUserToGroup
Description copied from interface:AdminController
Add a user to a group.- Specified by:
addUserToGroup
in interfaceAdminController
- Parameters:
id
- The group ID to adjustuser
- The name of the user to addattrs
- Where to put attributes of the model so that they are respected after the redirect without being present in the URL.- Returns:
- the model and view
-
removeUserFromGroup
Description copied from interface:AdminController
Remove a user from a group.- Specified by:
removeUserFromGroup
in interfaceAdminController
- Parameters:
id
- The group ID to adjustuserid
- The ID of the user to removeattrs
- Where to put attributes of the model so that they are respected after the redirect without being present in the URL.- Returns:
- the model and view
-
adjustGroupQuota
Description copied from interface:AdminController
Adjust the quota of a group.- Specified by:
adjustGroupQuota
in interfaceAdminController
- Parameters:
id
- The group ID to adjustdelta
- By how much are we to adjust the quota. In board-hours.attrs
- Where to put attributes of the model so that they are respected after the redirect without being present in the URL.- Returns:
- the model and view
-
deleteGroup
Description copied from interface:AdminController
Delete a group. It is legal for a user to not be a member of any group; they just won't be able to submit jobs if that's the case.- Specified by:
deleteGroup
in interfaceAdminController
- Parameters:
id
- The group ID to deleteattrs
- Where to put attributes of the model so that they are respected after the redirect without being present in the URL.- Returns:
- the model and view
-
boards
Description copied from interface:AdminController
UI for boards.- Specified by:
boards
in interfaceAdminController
- Parameters:
ignored
- Overall model- Returns:
- the model and view
-
board
Description copied from interface:AdminController
Manipulate a board.- Specified by:
board
in interfaceAdminController
- Parameters:
board
- The board coordinates, and possibly the state changemodel
- Overall model- Returns:
- the model and view
-
blacklistSave
Description copied from interface:AdminController
Save a new blacklist.- Specified by:
blacklistSave
in interfaceAdminController
- Parameters:
bldata
- The blacklist data.- Returns:
- The empty response with the appropriate code.
-
blacklistFetch
Description copied from interface:AdminController
Fetch the blacklist for a board from the machine.- Specified by:
blacklistFetch
in interfaceAdminController
- Parameters:
boardId
- The board to get the data for.bmpId
- The BMP of the board.- Returns:
- the blacklist data.
-
getTemperatures
Description copied from interface:AdminController
Get the temperature data for a board.- Specified by:
getTemperatures
in interfaceAdminController
- Parameters:
boardId
- Which board to get the data for.bmpId
- The BMP that controls the board.- Returns:
- the model and view in a future
-
machineManagement
Provide the form for uploading a machine definition.Implementation note: This is the baseline information that
admin/machine.jsp
needs.- Specified by:
machineManagement
in interfaceAdminController
- Parameters:
ignored
- Overall model- Returns:
- the model and view
-
retagMachine
Description copied from interface:AdminController
Handle the change of the tags of a machine.- Specified by:
retagMachine
in interfaceAdminController
- Parameters:
machineName
- The name of the machine being retaggednewTags
- The tags of the machine; comma-separated list- Returns:
- the model and view
-
disableMachine
Description copied from interface:AdminController
Mark a machine as out of service.- Specified by:
disableMachine
in interfaceAdminController
- Parameters:
machineName
- The name of the machine being disabled- Returns:
- the model and view
-
enableMachine
Description copied from interface:AdminController
Mark a machine as in service.- Specified by:
enableMachine
in interfaceAdminController
- Parameters:
machineName
- The name of the machine being enabled- Returns:
- the model and view
-
defineMachine
Description copied from interface:AdminController
Handle the upload of a machine definition. Note that no user has any quota set on a newly defined machine; it's totally free to use by default.- Specified by:
defineMachine
in interfaceAdminController
- Parameters:
file
- The file being uploaded- Returns:
- the model and view
-