From issues-return-17279-archive-asf-public=cust-asf.ponee.io@airavata.apache.org Tue Mar 10 15:42:02 2020 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [207.244.88.153]) by mx-eu-01.ponee.io (Postfix) with SMTP id 3E153180665 for ; Tue, 10 Mar 2020 16:42:02 +0100 (CET) Received: (qmail 17206 invoked by uid 500); 10 Mar 2020 15:42:01 -0000 Mailing-List: contact issues-help@airavata.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list issues@airavata.apache.org Received: (qmail 17149 invoked by uid 99); 10 Mar 2020 15:42:01 -0000 Received: from mailrelay1-us-west.apache.org (HELO mailrelay1-us-west.apache.org) (209.188.14.139) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 10 Mar 2020 15:42:01 +0000 Received: from jira-he-de.apache.org (static.172.67.40.188.clients.your-server.de [188.40.67.172]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id C38D2E2FAF for ; Tue, 10 Mar 2020 15:42:00 +0000 (UTC) Received: from jira-he-de.apache.org (localhost.localdomain [127.0.0.1]) by jira-he-de.apache.org (ASF Mail Server at jira-he-de.apache.org) with ESMTP id 3481578074C for ; Tue, 10 Mar 2020 15:42:00 +0000 (UTC) Date: Tue, 10 Mar 2020 15:42:00 +0000 (UTC) From: "Marcus Christie (Jira)" To: issues@airavata.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (AIRAVATA-3126) Implement compute resource reservation addition MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/AIRAVATA-3126?page=3Dcom.atlas= sian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcus Christie updated AIRAVATA-3126: -------------------------------------- Description:=20 # In PGA portal implementation for a compute resource we could add a reserv= ation # Reservation is to have a dedicate computing time in a cluster queue/part= ition # As for the existing PGA implementation we could provide a reservation na= me and a start and end time for the particular reservation.=C2=A0 # In Django the implementation does not exists. # First we should have the previous implementation done in Django portal # Next step would be to improve it by enabling # Adding a reservation for a particular cluster queue/partition # Then we should also be able to add multiple reservations for a particula= r queue/partition. These multiples will have different reservation names an= d start and end dates. h5. Data Model - GroupComputeResourcePreference -- reservations: list --- queues: list --- reservationName --- startTime --- endTime A GroupComputeResourcePreference can have one or more ComputeResourceReserv= ation records. Each ComputeResourceReservation is applicable to one or more= queue/partitions for the GroupComputeResourcePreference's compute host. Th= e ComputeResourceReservation also has a name, start date and end date. h5. TODO - [ ] how to deal with expired reservations? -- in the UI have a button to remove all expired reservations - [ ] Validation: don't allow multiple reservations for the same queue/par= tition for the same overlapping time period? - [x] Validation: endTime must be greater than startTime - [x] update TaskContext.getReservation() logic where it looks to see if t= here is a currrently active reservation for the host and queue - [ ] document the automatic migration script creation logic - [x] Repository unit test: removing a reservation - [x] Repository unit test: updating a reservation - [x] Repository unit test: adding a queue - [x] Repository unit test: removing a queue - [ ] Refactor the openjpa MappingTool migration script creation logic - [ ] remove generate-sql-persistence.xml and maven goal that used it - [ ] migration for GroupComputeResourcePreference.reservation/reservation= StartTime/reservationEndTime into a ComputeResourceReservation record - [ ] switch ide-integration to using mariadb instead of mysqld for better= compatibility with migration scripts - [ ] summarize active (and upcoming?) reservations on Group Resource Prof= ile view - [x] invalidate GroupComputeResourcePreference save when reservation is i= nvalid - [ ] fix GroupComputeResourcePreference save/delete/cancel buttons to bot= tom of viewport=20 - [ ] reservations move around in the UI when date based sort changes, may= be don't dynamically sort - [ ] minutes aren't getting set if not selected? Can they be defaulted to= 00? Might also need to zero out seconds. - [ ] inline form for the reservation editor? h5. Migration Plan h6. Expand - database migration to add new tables - convert GroupComputeResourcePreference.reservation/reservationStartTime/= reservationEndTime into a ComputeResourceReservation record - (?) trigger to turn new values in GroupComputeResourcePreference.reserva= tionName/reservationStartTime/reservationEndTime into ComputeResourceReserv= ation records - but I don't think there is any UI or anything updating these fields now - deploy API server with new ComputeResourceReservation model h6. Migrate - Deploy Django UI for managing ComputeResourceReservation records - Helix tasks should check the ComputeResourceReservation records in addit= ion to GroupComputeResourcePreference.reservationName/reservationStartTime/= reservationEndTime h6. Contract - Helix tasks should stop checking the GroupComputeResourcePreference.rese= rvationName/reservationStartTime/reservationEndTime - Remove data model fields GroupComputeResourcePreference.reservation/rese= rvationStartTime/reservationEndTime and database columns was: # In PGA portal implementation for a compute resource we could add a reserv= ation # Reservation is to have a dedicate computing time in a cluster queue/part= ition # As for the existing PGA implementation we could provide a reservation na= me and a start and end time for the particular reservation.=C2=A0 # In Django the implementation does not exists. # First we should have the previous implementation done in Django portal # Next step would be to improve it by enabling # Adding a reservation for a particular cluster queue/partition # Then we should also be able to add multiple reservations for a particula= r queue/partition. These multiples will have different reservation names an= d start and end dates. h5. Data Model - GroupComputeResourcePreference -- reservations: list --- queues: list --- reservationName --- startTime --- endTime A GroupComputeResourcePreference can have one or more ComputeResourceReserv= ation records. Each ComputeResourceReservation is applicable to one or more= queue/partitions for the GroupComputeResourcePreference's compute host. Th= e ComputeResourceReservation also has a name, start date and end date. h5. TODO - [ ] how to deal with expired reservations? -- in the UI have a button to remove all expired reservations - [ ] Validation: don't allow multiple reservations for the same queue/par= tition for the same overlapping time period? - [x] Validation: endTime must be greater than startTime - [x] update TaskContext.getReservation() logic where it looks to see if t= here is a currrently active reservation for the host and queue - [ ] document the automatic migration script creation logic - [x] Repository unit test: removing a reservation - [x] Repository unit test: updating a reservation - [x] Repository unit test: adding a queue - [x] Repository unit test: removing a queue - [ ] Refactor the openjpa MappingTool migration script creation logic - [ ] remove generate-sql-persistence.xml and maven goal that used it - [ ] migration for GroupComputeResourcePreference.reservation/reservation= StartTime/reservationEndTime into a ComputeResourceReservation record - [ ] switch ide-integration to using mariadb instead of mysqld for better= compatibility with migration scripts - [ ] summarize active (and upcoming?) reservations on Group Resource Prof= ile view - [x] invalidate GroupComputeResourcePreference save when reservation is i= nvalid - [ ] fix GroupComputeResourcePreference save/delete/cancel buttons to bot= tom of viewport=20 - [ ] reservations move around in the UI when date based sort changes, may= be don't dynamically sort - [ ] minutes aren't getting set if not selected? Can they be defaulted to= 00? Might also need to zero out seconds. h5. Migration Plan h6. Expand - database migration to add new tables - convert GroupComputeResourcePreference.reservation/reservationStartTime/= reservationEndTime into a ComputeResourceReservation record - (?) trigger to turn new values in GroupComputeResourcePreference.reserva= tionName/reservationStartTime/reservationEndTime into ComputeResourceReserv= ation records - but I don't think there is any UI or anything updating these fields now - deploy API server with new ComputeResourceReservation model h6. Migrate - Deploy Django UI for managing ComputeResourceReservation records - Helix tasks should check the ComputeResourceReservation records in addit= ion to GroupComputeResourcePreference.reservationName/reservationStartTime/= reservationEndTime h6. Contract - Helix tasks should stop checking the GroupComputeResourcePreference.rese= rvationName/reservationStartTime/reservationEndTime - Remove data model fields GroupComputeResourcePreference.reservation/rese= rvationStartTime/reservationEndTime and database columns > Implement compute resource reservation addition=20 > ------------------------------------------------ > > Key: AIRAVATA-3126 > URL: https://issues.apache.org/jira/browse/AIRAVATA-3126 > Project: Airavata > Issue Type: Sub-task > Components: Django Portal, Registry API > Affects Versions: 0.18 > Environment: https://django.staging.seagrid.org > Reporter: Eroma > Assignee: Marcus Christie > Priority: Minor > > # In PGA portal implementation for a compute resource we could add a rese= rvation > # Reservation is to have a dedicate computing time in a cluster queue/pa= rtition > # As for the existing PGA implementation we could provide a reservation = name and a start and end time for the particular reservation.=C2=A0 > # In Django the implementation does not exists. > # First we should have the previous implementation done in Django portal > # Next step would be to improve it by enabling > # Adding a reservation for a particular cluster queue/partition > # Then we should also be able to add multiple reservations for a particu= lar queue/partition. These multiples will have different reservation names = and start and end dates. > h5. Data Model > - GroupComputeResourcePreference > -- reservations: list > --- queues: list > --- reservationName > --- startTime > --- endTime > A GroupComputeResourcePreference can have one or more ComputeResourceRese= rvation records. Each ComputeResourceReservation is applicable to one or mo= re queue/partitions for the GroupComputeResourcePreference's compute host. = The ComputeResourceReservation also has a name, start date and end date. > h5. TODO > - [ ] how to deal with expired reservations? > -- in the UI have a button to remove all expired reservations > - [ ] Validation: don't allow multiple reservations for the same queue/p= artition for the same overlapping time period? > - [x] Validation: endTime must be greater than startTime > - [x] update TaskContext.getReservation() logic where it looks to see if= there is a currrently active reservation for the host and queue > - [ ] document the automatic migration script creation logic > - [x] Repository unit test: removing a reservation > - [x] Repository unit test: updating a reservation > - [x] Repository unit test: adding a queue > - [x] Repository unit test: removing a queue > - [ ] Refactor the openjpa MappingTool migration script creation logic > - [ ] remove generate-sql-persistence.xml and maven goal that used it > - [ ] migration for GroupComputeResourcePreference.reservation/reservati= onStartTime/reservationEndTime into a ComputeResourceReservation record > - [ ] switch ide-integration to using mariadb instead of mysqld for bett= er compatibility with migration scripts > - [ ] summarize active (and upcoming?) reservations on Group Resource Pr= ofile view > - [x] invalidate GroupComputeResourcePreference save when reservation is= invalid > - [ ] fix GroupComputeResourcePreference save/delete/cancel buttons to b= ottom of viewport=20 > - [ ] reservations move around in the UI when date based sort changes, m= aybe don't dynamically sort > - [ ] minutes aren't getting set if not selected? Can they be defaulted = to 00? Might also need to zero out seconds. > - [ ] inline form for the reservation editor? > h5. Migration Plan > h6. Expand > - database migration to add new tables > - convert GroupComputeResourcePreference.reservation/reservationStartTim= e/reservationEndTime into a ComputeResourceReservation record > - (?) trigger to turn new values in GroupComputeResourcePreference.reser= vationName/reservationStartTime/reservationEndTime into ComputeResourceRese= rvation records > - but I don't think there is any UI or anything updating these fields no= w > - deploy API server with new ComputeResourceReservation model > h6. Migrate > - Deploy Django UI for managing ComputeResourceReservation records > - Helix tasks should check the ComputeResourceReservation records in add= ition to GroupComputeResourcePreference.reservationName/reservationStartTim= e/reservationEndTime > h6. Contract > - Helix tasks should stop checking the GroupComputeResourcePreference.re= servationName/reservationStartTime/reservationEndTime > - Remove data model fields GroupComputeResourcePreference.reservation/re= servationStartTime/reservationEndTime and database columns -- This message was sent by Atlassian Jira (v8.3.4#803005)