Commit graph

63 commits

Author SHA1 Message Date
Jacob Kozol
d05e9da3d7 ImagesTable: support additional image type labels
If image types are created that do not have a descriptive label then
default to using the image type.
2023-02-17 09:48:49 +01:00
Amir Fefer
acb0991ed4 feat(HMS-776): Add provider to provisioning wizard 2023-02-16 17:33:14 +01:00
lucasgarfield
4000b8d5e5 ESLint: Add prefer-const rule
Require const declarations for variables that are never reassigned after
being declared. If a variable is never reassigned, using the const
declaration is better. const declaration tells readers, “this variable
is never reassigned,” reducing cognitive load and improving
maintainability.
2023-02-10 11:37:06 +01:00
Ondrej Ezr
ceec580981 Hide Launch button until image is built
Refs HMSPROV-377
2023-02-09 09:14:10 +01:00
Ondrej Ezr
7e89e74813 Do not show Launch button on copied images 2023-02-09 09:14:10 +01:00
Ondrej Ezr
224df6de17 Enable provisioning wizard in Ephemeral environment 2023-01-13 09:47:54 +01:00
lucasgarfield
670f1c106f ImagesTable: Fix status bug
Fixes #899. The status of images (parent images and clones) in the
clones table was displayed incorrectly - the 'highest priority'
(e.g. failure > success) was displayed for all images.

This was due to a bug in a conditional in the ImageBuildStatus
component. In the main images table, rows for AWS images should display
the highest priority status of *all* images. A single failed clone
should cause the status of the row in the main images table to be
failure, even if the parent compose status is successful.

This logic was incorrectly being applied to *all* statuses. This commit
fixes this - from now on, this logic is only used for rows in the main
images table.
2023-01-06 14:20:06 +01:00
Sanne Raymaekers
026f2fbad4 ImagesTables: only show provisioning link in beta 2022-12-13 16:30:31 +01:00
Sanne Raymaekers
cb8ab9347e CreateImageWizard: use non-deprecated image type aliases
'ami' was deprecated a while ago, and is kept around as an alias of
'aws'. Same with 'vhd' and 'azure', and 'vhd' and 'gcp'.

This maintains support for the old aliases where necessary.
2022-12-06 15:14:53 +01:00
regexowl
ab1a7f4aab ESLint: Use --fix with updated rules to order imports
This applies the updated sorting rules to the files by running `npm run lint:js:fix`
2022-12-02 16:29:58 +01:00
Ondřej Budai
47d99a3903 ImagesTable: indent the downloaded compose request
Prior to this commit, the downloaded request was just an ugly unformatted
json. Surely, `jq . <request.json` could fix that, but it's much more
convenient if the frontend does it itself.

Signed-off-by: Ondřej Budai <ondrej@budai.cz>
2022-11-30 11:43:13 +01:00
Amir Fefer
28de575b94 HMSPROV #355 - add architecture to provisioning wizard 2022-11-18 12:40:56 +01:00
lucasgarfield
a42a6a220f ShareImageModal: Add ShareImageModal to clone (share) AWS composes 2022-11-08 11:29:31 +01:00
lucasgarfield
5c37e3b45b Images Table: Add clones table for AWS composes 2022-11-08 11:29:31 +01:00
regexowl
9c4c24746f ImagesTable: Fix Recreate image button
This removes an extra `/` from the path for the `navigate` function to be able to resolve relative path correctly.
2022-11-07 12:40:12 +01:00
regexowl
f32f65c9fb ImagesTable: Remove the icon from the download link
Fixes #803. This removes the download icon and adds brackets around the file extension.
2022-11-03 13:53:56 +01:00
Simon de Vlieger
35afba1bf2 imagestable: request.json link now non-styled
By adding custom CSS For the `ib-subdued-link` class the link now looks
like normal text. This approach was chosen as other approaches such as
clicking a non-rendered link cause serious ruckus in the test suite.

This resolves: #805.
2022-10-25 18:00:40 +02:00
Simon de Vlieger
87b853fc13 imagestable: removed label from release 2022-10-25 17:55:53 +02:00
Ondrej Ezr
f3d44adf01 Hide launch button until image is built
Move the conditional render on the main ImageLink component.
Also use destruct for props to streamline the usage of props.
2022-10-24 13:37:45 +02:00
regexowl
5168b80eeb ImagesTable: Indicate expiration of aws.s3 targets
This adds indication of expiring presigned urls for aws.s3 targets. Previously the targets remained marked as `Ready` until the builds disappeared after 14 days.

When an image is ready, the countdown in hours is shown in `Status` column. After that the image is marked as `Expired` and the download link changes to `Recreate image`.
2022-10-20 11:08:47 +02:00
Ondrej Ezr
357401ecfa Add the provisioning Button 2022-10-18 10:37:29 +02:00
Sanne Raymaekers
03421acc74 src/Router: use release as a basename in BrowserRouter
The insights platform is moving to react router v6, meaning router
contexts can no longer be nested. As a result all applications will end
up sharing the same `BrowserRouter`.

Switch to using the release (`/` or `/beta/`) as a basename for the
BrowserRouter, and offload the full path (`/insights/$appname`) to the
individual routes. This makes it easier to drop the BrowserRouter in
image builder for the platform one in future.
2022-10-17 15:53:21 +02:00
lucasgarfield
a17a759d5e Redux: Modernize Redux store
This commit modernizes the Redux store to bring it in line with the
current recommended best practices/patterns. It is possible because of a
recent previous commit that added Redux Toolkit as a dependency.

For detailed information on what modern Redux entails, see the Redux docs:
https://redux.js.org/introduction/getting-started#learn-modern-redux-livestream

Practically speaking, this means a huge reduction in boilerplate code.
Maintaining and extending the code will be much easier. All Redux logic
is now encapsulated by 'slices'. Reducers are defined in the slices, and
action creators and action types are generated automatically.

Redux Toolkit includes Immer, which greatly simplifies writing reducer logic
much simpler - state updates in Redux must be immutable, but working
with Javascript objects in an immutable fashion is clumsy, requiring
gratuitious use of the spread ... operator. With Immer, the state can be
updated as if mutable updates were allowed. Reducer logic has been
changed to take advantage of this in this commit.

This commit also removes a large amount of unused code. Fingers crossed
that nothing breaks. The tests do pass, afterall...

One other minor change... composesGet was renamed to fetchComposes and
composeGetStatus was renamed to fetchComposeStatus. This is in line with
the Redux documentation examples.
2022-09-30 13:17:09 +02:00
regexowl
03ff9fd3d9 ImagesTable: Increase bottom margin of the pagination toolbar
Fixes #797. This increases the size of the margin at the bottom of the table of images. That way the pagination controls are not obscured by the notifications icon.
2022-09-23 18:16:20 +02:00
Sanne Raymaekers
e868ffcaa6 ImagesTable: Reset polling each time the composes are updated
Previously the polling was started once on mount, but the reference to
the list of composes the polling function had didn't get updated. Reset
the polling on each render, ensuring the polling function has the latest
the list of composes from the store.

Fixes #767
2022-09-21 23:09:56 +02:00
regexowl
45d0db3f04 ImagesTable: Increase font size of text in Status column
Fixes #808. This removes the `<small>` tag around status message to unify the font size within the table.
2022-09-20 14:50:10 +02:00
regexowl
0bced556a9 ESLint: Use --fix with new rules to order import declarations
Related to #795. This applies the new sorting rules in ESLint to the files by running `npm run lint:js:fix`
2022-09-14 13:24:38 +02:00
regexowl
05e678f8c1 ImagesTable: Add pagination to the bottom of the table
Fixes #594. This adds pagination to the bottom of the images list so the user doesn't have to scroll up to use it.

Tests were also updated to reflect the change.
2022-09-14 10:32:38 +02:00
Ondřej Budai
5264896bff ImagesTable: add option to download a raw compose request
In order to help people transition from using GUI to use the API directly,
it's helpful to give them an easy way to inspect the whole raw compose
request.

This commit adds a new button next to each compose that simply downloads
the original compose request in a json format. This request can then be
directly piped into the IB API to build a new image.

Original idea by Troy Dawson

Co-authored-by: Lucas Garfield <lucas@redhat.com>

Signed-off-by: Ondřej Budai <ondrej@budai.cz>
2022-08-15 15:38:13 +02:00
Jacob Kozol
4fa71cede8 update style across the project
The eslint updates require style changes in all components.
2022-05-23 12:47:20 +02:00
Sanne Raymaekers
cfaa8a463d CreateImageWizard: RHEL 9
Expose rhel-90, it has reached GA.
2022-05-18 15:24:04 +02:00
Gianluca Zuccarelli
90d15807a6 ImagesTable: add error status
Add error information for failed image
builds. The error details are only displayed
for failed builds and the error highest up
the error chain is displayed in the expandable
section of the image.
2022-04-29 17:13:37 +02:00
lucasgarfield
d7035d544b ImagesTable: Show UUID in expandable details row
This commit displays the UUID in an expandable details row. This is
necessary because if an image was named, the UUID was not displayed.
It is important that a user know the UUID for troubleshooting, for
example in the case of requesting help with an image.

To facilitate this, the original Table component was converted to a
TableComposable component. TableComposable is newer and recommended over
the older Table by PatternFly.
2022-04-26 16:11:30 +02:00
Chloe Kaubisch
760a4366e9 LandingPage: tighten space between status icon and text
Tighten the space between the status icon and the status
text.

Fixes #595
2022-04-01 12:40:19 +02:00
Jacob Kozol
20c1537d8e CreateImageWizard: navigate to review step on recreate
When recreating an image navigate to the review step instead of the
initial step. This requires forming the step history to enable a
functional sidebar.
2022-03-23 12:30:42 +01:00
Jacob Kozol
d16f71c98f ImagesTable: add ability to recreate image type 2022-03-23 12:30:42 +01:00
Jacob Kozol
a16244edaa ImagesTable: migrate to functional component
The ImagesTable component is now a functional instead of class
component. This is useful because it allows us to use react hooks in the
component.
2022-03-17 16:49:21 +01:00
lucasgarfield
f85f60bcf0 CreateImageWizard: Use new DocumentationButton component in ImagesTable 2022-03-04 16:44:12 +01:00
Sanne Raymaekers
531e2ac1b0 CreateImageWizard: Expose centos 9 stream 2022-03-02 17:03:09 +01:00
Jacob Kozol
2300af1152 ImagesTable: add image name
If a user has specified an image name the name will appear. Otherwise
the image's UUID will appear.

The test needed to be modified to search for the compose in the store
with either the image name or the id
2022-03-02 16:24:35 +01:00
Jacob Kozol
81629feaad ImagesTable: add target labels for new image types
The "guest-image", "image-installer", and "vsphere" image types now
display proper labels in the ImagesTable target column. Also, the upload
component is renamed to Target for consistency.
2022-01-14 22:23:50 +01:00
Jacob Kozol
59e951653d ImagesTable: add image download link
The new blobby image types are uploaded to aws.s3 for download. Instead
of linking to a cloud instance, these image types display a download
link.
2022-01-14 22:23:50 +01:00
Jacob Kozol
989d5fabac ImagesTable: align gcp image details with other instance text
The link for the gcp Instance description was not set to isInline.
Fixing this aligns the text with the rest of the instance links.
2022-01-09 17:13:03 +01:00
Jacob Kozol
c230d41d88 ImagesTable: add title to Instance column
Also, test the table has expected headers.
2021-11-30 12:08:52 +01:00
Jacob Kozol
6468d33d25 ImagesTable: update pending text
"Image build is pending" is more in line with the rest of our status
texts.
2021-11-22 00:32:12 +00:00
Sanne Raymaekers
b986067079 constants: Introduce RHEL_8 constant
Bump rhel-84 to rhel-85.
2021-11-11 19:13:48 +01:00
Sanne Raymaekers
e86b210a22 src: Use rhel-84 instead of rhel-8 2021-06-16 11:35:05 +02:00
Sanne Raymaekers
d45ee17aca src: Rename RHEL 8.3 to just RHEL 8
We should pull these labels/descriptions from the service, but let's do
that separately.
2021-06-03 17:04:22 +02:00
Jacob Kozol
6db456a17c ImagesTable: data-testid should be lowercase 2021-06-02 15:45:35 +02:00
Jacob Kozol
ebdfbbf57d ImagesTable: add gcp info
When a gcp image is successfully uploaded the user needs to know the
project id, image name, and account the image is shared with. These are
now displayed in a popover accessible from the status section of the
images table.
2021-06-02 15:44:38 +02:00