Skip to content
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

Redesign Appliance handling #2490

Closed
ghost opened this issue May 9, 2018 · 17 comments
Closed

Redesign Appliance handling #2490

ghost opened this issue May 9, 2018 · 17 comments
Assignees
Milestone

Comments

@ghost
Copy link

ghost commented May 9, 2018

I hate the appliances showing in the device tab, introduced with v2.1. It mixes appliances with installed devices. Several posts in the GNS3 community shows, that other people are confused about this as well. Furthermore I assume that few people will check the repository, when they have the appliances locally. So bugfixes or new appliances will get to the users only when they update.

My suggestion is to go back to the v2.0 implementation, the left device tab shows only the installed devices. But to make installation of appliances easier, the "Import appliance" function should support two sources. One is the local file system, the second one is loading it from the internet. Perhaps the appliances come directly from github or maybe from the appliance section of gns3.com. The user should be able to select the appliance similar to a local appliance file.

That way GNS3 keeps a simple and easily understandable UI, and still the user can easily import appliances.

@adosztal
Copy link

adosztal commented May 9, 2018

Furthermore, as far as I know, the list is fixed in each version. Hence one still has to import new appliances manually. If you load the GitHub files in the import window, this can become dynamic.

@grossmj grossmj self-assigned this May 19, 2018
@grossmj grossmj added this to the 2.2 milestone May 19, 2018
@grossmj
Copy link
Member

grossmj commented May 19, 2018

I agree with your comments, I am not satisfied with the current design as well.

@ghost
Copy link
Author

ghost commented May 19, 2018

Loading appliances from the internet:

I have no information how to get the information from the appliance section of gns3.com. But the GNS3 devs should be able to get these infos.

Github API request to get list of appliances (actually a list of files in the appliances directory):
curl -i https://api.github.com/repos/GNS3/gns3-registry/contents/appliances

Github API request to get the contents of an appliance (base64 encoded):
curl -i https://api.github.com/repos/GNS3/gns3-registry/contents/appliances/zeroshell.gns3a

@spickles
Copy link

The other issue I found is that even if I go to the appliance file that is installed in the program directory and edit that file, when I close and re-open GNS3 the updated appliance is not loaded. When I search my machine for appliance files, I find some in the temp directory too. Even if we didn't pull the list from something like GitHub, which I agree is a good idea, GNS3 should scan the appliance directory at some regular interval. Whether that's on startup, shutdown, etc. I'm not sure. The only way I could make my custom appliances work was to directly import them. Just as we have an option to have GNS3 search other custom locations for images, I feel like we should be able to add a custom location for appliances as well, and perhaps identify them as available, installed, and custom/local?

@spickles
Copy link

Also, what about a REST API type service that would be off by default, but could be turned on to automatically upload an appliance file for custom objects we've made? Perhaps we used a different image with a new checksum? If that automatically goes up to the appliances repository, or at least to a holding repository that can be published by an admin? Maybe it's over kill but would be an idea for creating and sharing appliances easily.

@grossmj
Copy link
Member

grossmj commented Aug 14, 2018

@Ehlers I've started to work on this issue, do you think it is useful to keep the filter text box?

@ghost
Copy link
Author

ghost commented Aug 14, 2018

I'm a bit undecided. It's handy in 2.1, because the list of available appliances is quite big. With the redesign only installed appliances are shown, so it will have no big importance. Personally I would remove it.

grossmj added a commit that referenced this issue Aug 16, 2018
 - Removed appliance templates from device dock
 - Use new controller notification stream
 - Fixed device update and remove from device dock
@grossmj
Copy link
Member

grossmj commented Aug 16, 2018

@Ehlers I have decided to keep it for now and will see later if we want to remove it.

@grossmj
Copy link
Member

grossmj commented Aug 20, 2018

Here is what I have changed so far and there is most likely a few things to improve.

There are 3 ways to add a new device/appliance after clicking on the "New appliance" button:

  1. Using one of the template returned from the GNS3 server with the possibility to update from our GitHub registry repository. The controller downloads the files from GitHub and store them locally (where the controller is running). The appliance templates list is returned to the client(s).

  2. Using a local appliance template file (.gns3a or .gns3appliance).

  3. Manually, by creating a new template in the GNS3 preferences.

new_appliance_01

new_appliance_02

Maybe I should add a 4th option to download the appliance templates from GitHub directly to the client however retrieving the list (including the template information) can take some time and that list doesn't need to be refreshed too many times? One solution could be to only download the files if the registry repository has been updated.

Also, how do we manage custom appliance templates? should these to be uploaded to the controller and stored in the ~/GNS3/appliances directory?

@ghost
Copy link
Author

ghost commented Aug 20, 2018

Also, how do we manage custom appliance templates? should these to be uploaded to the controller and stored in the ~/GNS3/appliances directory?

Honestly I'm not sure I understand appliances.

My understanding:

I have device templates. Originally they were added/modified in the preferences. In v1.4 appliances give the possibility for a simpler installation of device templates. After the installation these appliances are no longer used. The drawback with that implementation was, that the appliances had to be downloaded, what was too difficult for too many people. So with 2.1 the current set of appliances were included. For me that cluttered the user interface and has some other drawbacks.

The new implementation of appliances looks impressive, but I don't understand, why you want to store them locally (on the GUI or the server). I see no need for any local storage of appliances. What I had in mind was, that "import appliance" was able to install a local stored appliance (just like in v2.0) or loads the one selected appliance from github and then installs it.

@grossmj
Copy link
Member

grossmj commented Aug 20, 2018

Honestly I have no idea, what's the difference of an appliance template and a device template (an installed appliance)?

Sounds like we need to do a better job about naming things, what is the different between a device, a device template, an appliance and an appliance template? Sometimes these are interchangeable but sometimes not.

What do you think of the current redesign state to install an appliance?

@ghost
Copy link
Author

ghost commented Aug 20, 2018

I've updated my previous comment to clarify my confusion just some seconds before your post. So please have a look at that. As I wrote there, I see no reason for storing appliances.

@spickles
Copy link

How difficult would it be to allow multiple versions of an appliance to be installed in one operation? Instead of highlighting an appliance version, going through the install process, and then having to load the template again and install another, can we have either CTL left click to select multiple or check boxes to install multiple appliance versions?

@grossmj
Copy link
Member

grossmj commented Aug 20, 2018

The new implementation of appliances looks impressive, but I don't understand, why you want to store them locally (on the GUI or the server). I see no need for any local storage of appliances. What I had in mind was, that "import appliance" was able to install a local stored appliance (just like in v2.0) or loads the one selected appliance from github and then installs it.

We only intend to store the files on the server side. I see two advantages to do this, one is that it allows users who do not have Internet access (because of proxy or restricted access) to still use the templates, second reason is we want to return the information contained in these files to allow users to better pick which appliance they want to install. Storing the files allows us to send all that information to the clients without having to retrieve the files from the GitHub repository everytime, it is just caching if you prefer.

@spickles
Copy link

So we will continue to have a local directory to scan periodically? It would be nice to have newly downloaded templates available once they're in the folder, but I know how difficult it can be to have a program monitor a folder periodically for changes. For those of us with internet access will new templates/appliances that are on the marketplace still show up in the list as available when published?

grossmj added a commit to GNS3/gns3-server that referenced this issue Aug 21, 2018
@grossmj
Copy link
Member

grossmj commented Aug 21, 2018

@spickles

How difficult would it be to allow multiple versions of an appliance to be installed in one operation? Instead of highlighting an appliance version, going through the install process, and then having to load the template again and install another, can we have either CTL left click to select multiple or check boxes to install multiple appliance versions?

Now we allow users to select multiple appliances using CTRL. I hope we get feedback about it once we release 2.2 alpha.

So we will continue to have a local directory to scan periodically? It would be nice to have newly downloaded templates available once they're in the folder, but I know how difficult it can be to have a program monitor a folder periodically for changes.

Actually, I don't think we need to scan a local directory periodically. With the new design, we refresh the appliance templates every time a client need the list of all templates.

For those of us with internet access will new templates/appliances that are on the marketplace still show up in the list as available when published?

Yes, new templates will show up in the list after clicking on "Update from online registry".

@grossmj
Copy link
Member

grossmj commented Aug 21, 2018

I think the redesign is done. I hope to get feedback to improve it once we release the first 2.2 alpha version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants