-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add upload image functionality and a create image upload wizard #767
Conversation
🎉 🎉 🎉 This is awesome! There are some console errors that prevented me from accessing some of the updates, but here are some comments and questions on what I could review...
|
Okay so asking for Image Name may actually be misleading. The user is setting the image name for the upload. For example, if the user uploads an image to a service with the name "database-image" they will see an image with that name in their cloud provider. But, the image that we show in the UI will no have that user defined name. Only the uploads for a given image will have user defined names. Do you think we should change the terminology?
I agree that this is a good question to be be discussed in more detail at either the standup or engineering meeting. In my opinion I think we should allow users to name their compose, then have the image be named from the compose and image type such as "compose-name-tar", and finally allow the user to specify the name for their upload. I will update the styles per your recommendations. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some very abstract initial feedback.
defaultMessage: "Select one" | ||
}, | ||
title: { | ||
defaultMessage: "Create and Upload Image" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The modal title is 'Create and Upload Image', however for many image types upload operation is not supported.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you think we should start the title as Create Image and then if the user selects an upload provider change it to Create and Upload Image?
ab7e66e
to
1a54e30
Compare
I missed this in previous reviews, but PF4 recommends sentence-style capitalization for all text strings (except proper nouns and product names). We should start adopting the PF4 style guide for all new UI or UI updates. |
@jgiardino I believe all of the capitalization should be fixed now by the Fix capitalization in CreateImageUpload Wizard commit. I will squish this commit after your review. |
e6b5d64
to
aab09c0
Compare
This depends on #776 now which is included in this PR as well. |
Codecov Report
@@ Coverage Diff @@
## master #767 +/- ##
=========================================
Coverage ? 77.55%
=========================================
Files ? 72
Lines ? 3489
Branches ? 738
=========================================
Hits ? 2706
Misses ? 783
Partials ? 0
Continue to review full report at Codecov.
|
09ccafa
to
3e7c198
Compare
There is an issue on the Edit page with the current css defined for the toolbars on that page and the new PF4 wizard. I noticed that if I changed |
3e7c198
to
23003ac
Compare
I'm still waiting for the image build process to complete, but here are some suggestions and questions about what I was able to do today...
|
Because of how the playbooks work the authentication is part of the process of executing the upload, there is no separate authentication step. BUT there is good news -- we can upload previously built images. That's what the
As I commented in the other PR, seems like this should be added to the provider.toml that drives the values used for the playbook. |
23003ac
to
9cb8b8a
Compare
9cb8b8a
to
d798e73
Compare
Currently, this PR only contains support for uploading to AWS since it is the only service I have successfully tested. Once I am able to test vsphere and openstack I will either add those to this PR or open another one. |
I tested the AWS flow. I don't think I was able to upload anything, unless it's taking a really long time. I'm assuming it failed, but I'm not sure what the point of failure was. Ultimately, this is something we should address (i.e. either eliminate or expose points of failure in the UI), but I'm not sure we can in the scope of this PR. Aside from that, here are some suggestions:
|
d798e73
to
1817349
Compare
@jgiardino Thank you for the detailed review.
That makes sense. I've updated the string.
Still working on fixing this.
All switched
The image name field has been moved into the correct position.
I have updated this per the suggestions in the documentation
The region is used to create the bucket.
Yes. You should enter the region as listed here. This is good idea. Having a set of regions for users to select from would be useful. |
0e5619a
to
22e595f
Compare
This comment has been minimized.
This comment has been minimized.
22e595f
to
5ed4b71
Compare
Rebased on master to include #836. |
Sorry, this needs rebasing after #833, i. e. the tests need to be adjusted to the newer (and simpler) webdriver v5 style. |
5ed4b71
to
c4ea415
Compare
c2d0ec4
to
52103cb
Compare
I'm testing this out and am having trouble getting a successful image build, but there are a couple of things I have noticed. These might not be related to this PR specifically, but wanted to note them here, since I'm currently looking at this PR. Let me know if you think these are actually separate issues. In the example below showing RHEL:
In the example below showing Fedora 32:
|
This is a known issue on the osbuild-composer side: osbuild/osbuild-composer#369 |
The store, actions, reducers, and sagas can fetch and store upload provider settings. These settings are currently read from data/providers.
The compose api calls have been updated to call the v1 api version which supports uploads. The start compose call can now pass upload settings which will start an upload when the compose finishes. The start compose actions and reducers also support upload settings now.
0b173f9
to
97f5a3b
Compare
A user may want to upload an image to a cloud service provider. The create image modal has been updated to be a wizard. When creating an ami a user has the option to upload it to aws. If they select to upload it to aws they will be prompted for the needed upload arguments. The create image modal has also been renamed to the create image upload modal. Therefore, several files have been updated per the name changes. Also, the tests relating to image creation or the create image button are updated.
I looked into the upload issues, afaik everything works correctly in Uploads to |
Thanks for the update, @ondrejbudai! I have tested this UI in both the RHEL and F32 auto-deploy instances, and was successfully able to build and upload an image. 🎉 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Testing the UI, I'm able to successfully build and upload images. Additional refinements can be handled with separate issues/PRs.
Thanks for working on this!!
The create image modal has been replaced with a wizard that can create an image while also allowing the user to upload the image to a select group of cloud providers. This wizard guides the user through selecting the image type and where to upload the image, then has the user enter the settings needed to upload the image, and finally has the user review the upload settings before uploading the image. The redux store and sagas have also been updated to handle the upload data.
This PR is dependent on weldr/lorax#843
This PR includes only a basic uploads list attached to each image in the images list and no ability to create an upload for an already created image. There are also a few of console warnings which still need to be fixed:
Each child in a list should have a unique "key" prop error caused by the mapping of TextListItems
Changing an uncontrolled input of type text to be controlled caused by the use of TextInputs
Inline style errors caused by Patternfly 4 (fixed in the recent version of patternfly which requires additional configuration in our webpack config)