Open candlerb opened 3 years ago
Oh.... I would go for something like this as a design for an exported project in powershell: Requires CiscoIOSv Hrmmm, but that does require the exporter to put that in the exported project. Hrmmm, gns3 users make mistakes and are forgetful sometimes.
I am trying candlerb.....but this looks so error prone.
Your "missing" images has nothing to do with the real solution and has something to do with how Ean Towne responds to gns3 users with a greenfield deployment. The way he does it is extremely powerful. But.......he just left a 10Gigabyte VM somewhere to help another gns3 user. And.........gns3 users do not respond to a reply immediately and they may, or may not, ever reply again and he is left with a 10Gigabyte VM laying around. If he can export the project, put the Require This10GigabyteVM in the exported project file, then he can free up that 10G of space he just used.
OTOH, I have 32TB of on-premise storage, so it looks like a ton of work for me. But it would be cool to do it that way...and it really is the right way to do it.
In other words....
if i did a greenfield deployment to help another gns3 user,
I would export the project from my GNS3 VM delete the project on my GNS3 VM delete the vm from my gns3_controller the project would not be deleted on my Windows Host because I have my topology.png and my text log files in there and my powershell remoting text files in there, etc.
I would have nothing in my /images/QEMU /projects gns3_controller
and the Requires statement would reinstall that VM ........if and only if the OP replied. very cool
candlerb, My external way of backing up the gns3 appdata discussed over here: https://github.com/GNS3/gns3-server/issues/2044
is completely safe. It can hurt no gns3 user.
So, the Requires statement seems to want the gns3_controller file to be changed to something like this: Cisco IOSv { { "compute_id": "vm", "name": "Cisco IOSv 15.5(3)M", }, { "compute_id": "vm", "name": "Cisco IOSv 15.5(4)M", } }
Ignore the fact that someone would have to categorize every VM from every OEM, that looks super dangerous.
I'm afraid I've read that several times and I don't really understand it, nor how it relates to the issue reported here. It certainly doesn't relate to powershell, nor to gns3_controller.conf.
The specific issue that I wanted to raise in this ticket is that GNS3 currently does not allow you to import a project unless either:
Exported projects already can contain all the images they depend on - there is a checkbox to say whether you want to include images - and if you select that option at export time, of course there is no problem.
But you may have projects which make use of images that you are not legally allowed to share (like Cisco IOSv), but you still want to export or share the topology. Therefore you export them without images.
Now, let's say someone has exported a project without images, and you're trying to import it. The project uses vios-adventerprisek9-m.spa.159-3.m3.qcow2
- but you have only vios-adventerprisek9-m.spa.159-3.m4.qcow2
. This is a very similar image, and the project would almost certainly work with it, but GNS3 currently won't let you important the project without the exact image referenced.
What I am proposing is that it would be very useful if GNS3 would let you:
vios-adventerprisek9-m.spa.159-3.m4.qcow2
, so that you can...okay......i am thinking
I hope you do realize that I have already published a script in the gns3 community that deals with missing images: https://gns3.com/community/featured/quick-powershell-to-investigate-import-projects-from-gns3-marketplace
My script works external to GNS3.
Your point is well taken by me. It is a nuisance when you get faced with multiple missing images and gns3 does fail on importing a project for the first missing image until the image is installed. So, 10 missing images means 10 missing image failures.
My point is, your suggestion looks like a ton of work for the gns3 developers. My script runs in 5 seconds and it is..........okay.
If you import a project with a missing image, GNS3 doesn't let you proceed. I'd like to be able to view the topology, open the device node, and choose a different image to use.
In the web UI, there is a modal box which only allows page refresh and returning to the server list:
In the desktop GUI, you get a similar error message and the project remains "closed". That's why I suspect this is being enforced by the server, not the UI.
Obviously, I'm happy that the project can't run until all images are provided.
It would also be nice to be able to import the missing images, which was raised separately as https://github.com/GNS3/gns3-gui/issues/2881. But in the case where you don't have the required image (with the right md5sum), you may want to edit the project to choose a different but similar image that you do have.