vagrant_utm 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +11 -0
  4. data/CHANGELOG.md +5 -0
  5. data/CODE_OF_CONDUCT.md +132 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +59 -0
  8. data/Rakefile +12 -0
  9. data/docs/.gitignore +15 -0
  10. data/docs/Gemfile +10 -0
  11. data/docs/Gemfile.lock +276 -0
  12. data/docs/README.md +174 -0
  13. data/docs/_config.yml +76 -0
  14. data/docs/_includes/footer_custom.html +3 -0
  15. data/docs/_sass/gallery.scss +64 -0
  16. data/docs/_virtual_machines/archlinux-arm.md +13 -0
  17. data/docs/assets/images/favicon.ico +0 -0
  18. data/docs/assets/images/logo.png +0 -0
  19. data/docs/assets/images/screens/archlinux-logo.png +0 -0
  20. data/docs/assets/images/screens/debian-11-xfce-arm64.png +0 -0
  21. data/docs/boxes/creating_utm_box.md +70 -0
  22. data/docs/boxes/index.md +6 -0
  23. data/docs/boxes/utm_box_gallery.md +117 -0
  24. data/docs/commands.md +156 -0
  25. data/docs/configuration.md +51 -0
  26. data/docs/features/index.md +5 -0
  27. data/docs/features/synced_folders.md +28 -0
  28. data/docs/index.md +103 -0
  29. data/docs/internals/actions.md +20 -0
  30. data/docs/internals/index.md +5 -0
  31. data/docs/internals/status.md +25 -0
  32. data/docs/internals/utm_api.md +31 -0
  33. data/docs/known_issues.md +24 -0
  34. data/lib/vagrant_utm/action/boot.rb +22 -0
  35. data/lib/vagrant_utm/action/boot_disposable.rb +22 -0
  36. data/lib/vagrant_utm/action/check_accessible.rb +33 -0
  37. data/lib/vagrant_utm/action/check_created.rb +24 -0
  38. data/lib/vagrant_utm/action/check_guest_additions.rb +37 -0
  39. data/lib/vagrant_utm/action/check_qemu_img.rb +21 -0
  40. data/lib/vagrant_utm/action/check_running.rb +25 -0
  41. data/lib/vagrant_utm/action/check_utm.rb +30 -0
  42. data/lib/vagrant_utm/action/clear_forwarded_ports.rb +26 -0
  43. data/lib/vagrant_utm/action/created.rb +26 -0
  44. data/lib/vagrant_utm/action/customize.rb +50 -0
  45. data/lib/vagrant_utm/action/destroy.rb +25 -0
  46. data/lib/vagrant_utm/action/download_confirm.rb +19 -0
  47. data/lib/vagrant_utm/action/export.rb +22 -0
  48. data/lib/vagrant_utm/action/forced_halt.rb +28 -0
  49. data/lib/vagrant_utm/action/forward_ports.rb +90 -0
  50. data/lib/vagrant_utm/action/import.rb +63 -0
  51. data/lib/vagrant_utm/action/is_paused.rb +26 -0
  52. data/lib/vagrant_utm/action/is_running.rb +26 -0
  53. data/lib/vagrant_utm/action/is_stopped.rb +26 -0
  54. data/lib/vagrant_utm/action/message_already_running.rb +22 -0
  55. data/lib/vagrant_utm/action/message_not_created.rb +22 -0
  56. data/lib/vagrant_utm/action/message_not_running.rb +22 -0
  57. data/lib/vagrant_utm/action/message_not_stopped.rb +22 -0
  58. data/lib/vagrant_utm/action/message_will_not_create.rb +23 -0
  59. data/lib/vagrant_utm/action/message_will_not_destroy.rb +23 -0
  60. data/lib/vagrant_utm/action/prepare_forwarded_port_collision_params.rb +43 -0
  61. data/lib/vagrant_utm/action/resume.rb +24 -0
  62. data/lib/vagrant_utm/action/set_id.rb +20 -0
  63. data/lib/vagrant_utm/action/set_name.rb +62 -0
  64. data/lib/vagrant_utm/action/snapshot_delete.rb +34 -0
  65. data/lib/vagrant_utm/action/snapshot_restore.rb +28 -0
  66. data/lib/vagrant_utm/action/snapshot_save.rb +34 -0
  67. data/lib/vagrant_utm/action/suspend.rb +23 -0
  68. data/lib/vagrant_utm/action/wait_for_running.rb +28 -0
  69. data/lib/vagrant_utm/action.rb +413 -0
  70. data/lib/vagrant_utm/cap.rb +40 -0
  71. data/lib/vagrant_utm/config.rb +141 -0
  72. data/lib/vagrant_utm/disposable.rb +16 -0
  73. data/lib/vagrant_utm/driver/base.rb +358 -0
  74. data/lib/vagrant_utm/driver/meta.rb +132 -0
  75. data/lib/vagrant_utm/driver/version_4_5.rb +307 -0
  76. data/lib/vagrant_utm/errors.rb +77 -0
  77. data/lib/vagrant_utm/model/forwarded_port.rb +75 -0
  78. data/lib/vagrant_utm/model/list_result.rb +77 -0
  79. data/lib/vagrant_utm/plugin.rb +65 -0
  80. data/lib/vagrant_utm/provider.rb +139 -0
  81. data/lib/vagrant_utm/scripts/add_port_forwards.applescript +72 -0
  82. data/lib/vagrant_utm/scripts/clear_port_forwards.applescript +56 -0
  83. data/lib/vagrant_utm/scripts/customize_vm.applescript +59 -0
  84. data/lib/vagrant_utm/scripts/downloadVM.sh +1 -0
  85. data/lib/vagrant_utm/scripts/list_vm.js +32 -0
  86. data/lib/vagrant_utm/scripts/open_with_utm.js +30 -0
  87. data/lib/vagrant_utm/scripts/read_forwarded_ports.applescript +27 -0
  88. data/lib/vagrant_utm/scripts/read_guest_ip.applescript +9 -0
  89. data/lib/vagrant_utm/scripts/read_network_interfaces.applescript +12 -0
  90. data/lib/vagrant_utm/util/compile_forwarded_ports.rb +43 -0
  91. data/lib/vagrant_utm/version.rb +9 -0
  92. data/lib/vagrant_utm.rb +40 -0
  93. data/locales/en.yml +154 -0
  94. data/sig/vagrant_utm.rbs +4 -0
  95. data/vagrantfile_examples/Vagrantfile +27 -0
  96. metadata +140 -0
data/locales/en.yml ADDED
@@ -0,0 +1,154 @@
1
+ en:
2
+ vagrant_utm:
3
+ config:
4
+ utm_file_url_required: |-
5
+ Configuration must specify utm.file_url.
6
+ UTM file URL is required to import the UTM virtual machine.
7
+ errors:
8
+ utm_not_detected: |-
9
+ UTM Application not detected. Please install UTM from https://mac.getutm.app/
10
+ utm_invalid_version: |-
11
+ utm_vagrant has detected that you have a version of UTM installed
12
+ that is not supported by this version of utm_vagrant. Please install one of
13
+ the supported versions listed below to use utm_vagrant plugin:
14
+
15
+ %{supported_versions}
16
+
17
+ A plugin update may also be available that adds support for the version
18
+ you specified. Please check github page of the plugin to download
19
+ the latest version.
20
+ command_error: |-
21
+ There was an error while executing a command.
22
+ The command and stderr is shown below.
23
+
24
+ Command: %{command}
25
+
26
+ Stderr: %{stderr}
27
+ Stdout: %{stdout}
28
+ instance_not_created: |-
29
+ The virtual machine has not been created yet.
30
+ instance_not_running: |-
31
+ The virtual machine is not running.
32
+ macos_required: |-
33
+ MacOS is required to run this provider
34
+ qemu_img_required: |-
35
+ qemu-img is required to use snapshot feature.
36
+ You can install qemu-img using `brew install qemu`.
37
+ snapshot_command_failed: |-
38
+ There was an error while executing `qemu-img`, a CLI used by vagrant-utm
39
+ for managing UTM snapshots. qemu-img only supports offline operations, so
40
+ the VM must be stopped before any snapshot operation.
41
+ The error is shown below.
42
+
43
+ Error: %{stderr}
44
+ snapshot_multiple_vm_files: |-
45
+ Multiple VM files detected. vagrant-utm which uses qemu-img does not support
46
+ snapshot feature when multiple VM files are present.
47
+
48
+ Directory checked: %{directory}
49
+ Files found: %{files}
50
+ snapshot_vm_file_not_found: |-
51
+ VM file not detected. vagrant-utm checks for single qcow2 file named in
52
+ UUID format in VM's data directory.
53
+
54
+ Directory checked: %{directory}
55
+ utm_import_failed: |-
56
+ UTM virtual machine import failed.
57
+ utmctl_error: |-
58
+ There was an error while executing `utmctl`, a CLI used by vagrant-utm
59
+ for controlling UTM. The command and stderr is shown below.
60
+
61
+ Command: %{command}
62
+
63
+ Stderr: %{stderr}
64
+ utm_launch_error: |-
65
+ There was an error running UTM or OSA. This is usually a permissions
66
+ problem or installation problem with UTM itself, and not Vagrant.
67
+ Please note the error message below (if any), resolve the issue, and
68
+ try Vagrant again.
69
+
70
+ %{message}
71
+
72
+ messages:
73
+ importing_utm_file: |-
74
+ Importing UTM virtual machine file %{name}...
75
+ download_confirmation: |-
76
+ IMPORTANT: Due to limited UTM API support, this plugin does not know when the download is finished.
77
+ 1. Headover to UTM and confirm to download UTM file.
78
+ 2. Make sure the file is loaded and exists as last VM in UTM list (UI).
79
+ 3. If the downloaded VM file name is same as existing VM, UTM will cause unexpected behavior.
80
+ Change VM, make sure the VM is last in the list and then continue.
81
+ "Are you sure the file '%{name}' is loaded in UTM and exists as last VM? [y/N]
82
+ setting_id: |-
83
+ Setting the Vagrant machine ID to UTM VM UUID: %{id}
84
+ waiting_for_vm: |-
85
+ UTM does not report when the VM is ready, it only reports when the VM is started.
86
+ So, waiting %{time} secs for the UTM virtual machine to be ready...
87
+ Default wait time is 20 seconds, you can change it by setting `config.vm.provider.utm.wait_time` in Vagrantfile.
88
+
89
+ commands:
90
+ common:
91
+ vm_already_running: |-
92
+ The UTM VM is already running.
93
+ # VM Commands
94
+ up:
95
+ will_not_create: |-
96
+ The UTM virtual machine will not be created.
97
+ # UTM VM Status
98
+ status:
99
+ stopped: |-
100
+ The VM is stopped. To restart the VM, simply run `vagrant up`
101
+ starting: |-
102
+ The VM is starting.
103
+ started: |-
104
+ The VM is started. To stop this VM, you can run `vagrant halt` to
105
+ shut it down forcefully, or you can run `vagrant suspend` to simply
106
+ suspend the virtual machine. In either case, to restart it again,
107
+ simply run `vagrant up`.
108
+ pausing: |-
109
+ The VM is pausing.
110
+ paused: |-
111
+ The VM is paused. To resume this VM, simply run `vagrant resume`.
112
+ resuming: |-
113
+ The VM is resuming.
114
+ stopping: |-
115
+ The VM is stopping.
116
+ not_created: |-
117
+ The environment has not yet been created. Run `vagrant up` to
118
+ create the environment. If a machine is not created, only the
119
+ default provider will be shown. So if a provider is not listed,
120
+ then the machine is not created for that environment.
121
+ common:
122
+ vm_not_stopped: |-
123
+ The VM is not in a stopped state, but the command requires the VM to be
124
+ stopped. To stop this VM, you can run `vagrant halt` to shut it down forcefully.
125
+ utm:
126
+ checking_guest_additions: |-
127
+ Checking for guest additions in VM...
128
+
129
+ actions:
130
+ vm:
131
+ check_guest_additions:
132
+ detected: |-
133
+ Guest additions detected
134
+ not_detected: |-
135
+ No guest additions were detected for this VM! Guest
136
+ additions are required for forwarded ports, shared folders, host only
137
+ networking, and more. If SSH fails on this machine, please install
138
+ the guest additions and retry
139
+ export:
140
+ manual_exporting: |-
141
+ UTM 'Share' feature in UI will Export the virtual machine and all its data.
142
+ Till 'Share' is exposed via API, this plugin shows manual steps to export VM.
143
+ 1. Headover to UTM.
144
+ 2. Open the action menu of VM by a secondary click on a virtual machine %{name} in the list.
145
+ 3. Select 'Share' and save the file to a location.
146
+ boot:
147
+ disposable: |-
148
+ WARNING: The UTM virtual machine is booting in disposable mode.
149
+ Changes made to the VM will be lost when the VM is powered off.
150
+ Learn more at https://docs.getutm.app/advanced/disposable/
151
+ snapshot:
152
+ list: |-
153
+ Listing snapshots for UTM virtual machine...
154
+
@@ -0,0 +1,4 @@
1
+ module VagrantUtm
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
@@ -0,0 +1,27 @@
1
+ # -*- mode: ruby -*-
2
+ # frozen_string_literal: true
3
+
4
+ # vi: set ft=ruby :
5
+
6
+ Vagrant.configure("2") do |config|
7
+ # hostname inside the VM
8
+ config.vm.hostname = "utm"
9
+ config.vm.network "forwarded_port", guest: 80, host: 8989
10
+ config.vm.provider :utm do |utm|
11
+ # Name in UTM UI
12
+ # utm.name = "debian"
13
+ # UTM VM file
14
+ utm.utm_file_url = "http://localhost:8000/debian_vagrant_utm.zip"
15
+ utm.memory = 512
16
+ utm.cpus = 1
17
+ utm.notes = "Vagrant: For testing plugin development"
18
+ # Wait time in secs for VM to be running after 'started'
19
+ utm.wait_time = 22
20
+ # QEMU Directoy Share mode for the VM
21
+ utm.directory_share_mode = "webDAV"
22
+ end
23
+ config.vm.provision "shell", inline: <<-SHELL
24
+ apt-get update
25
+ apt-get install -y apache2
26
+ SHELL
27
+ end
metadata ADDED
@@ -0,0 +1,140 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: vagrant_utm
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Naveenraj M
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2024-08-09 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Vagrant UTM provider that allows you to manage UTM virtual machines.
14
+ email:
15
+ - naveenrajm97@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - ".rspec"
21
+ - ".rubocop.yml"
22
+ - CHANGELOG.md
23
+ - CODE_OF_CONDUCT.md
24
+ - LICENSE.txt
25
+ - README.md
26
+ - Rakefile
27
+ - docs/.gitignore
28
+ - docs/Gemfile
29
+ - docs/Gemfile.lock
30
+ - docs/README.md
31
+ - docs/_config.yml
32
+ - docs/_includes/footer_custom.html
33
+ - docs/_sass/gallery.scss
34
+ - docs/_virtual_machines/archlinux-arm.md
35
+ - docs/assets/images/favicon.ico
36
+ - docs/assets/images/logo.png
37
+ - docs/assets/images/screens/archlinux-logo.png
38
+ - docs/assets/images/screens/debian-11-xfce-arm64.png
39
+ - docs/boxes/creating_utm_box.md
40
+ - docs/boxes/index.md
41
+ - docs/boxes/utm_box_gallery.md
42
+ - docs/commands.md
43
+ - docs/configuration.md
44
+ - docs/features/index.md
45
+ - docs/features/synced_folders.md
46
+ - docs/index.md
47
+ - docs/internals/actions.md
48
+ - docs/internals/index.md
49
+ - docs/internals/status.md
50
+ - docs/internals/utm_api.md
51
+ - docs/known_issues.md
52
+ - lib/vagrant_utm.rb
53
+ - lib/vagrant_utm/action.rb
54
+ - lib/vagrant_utm/action/boot.rb
55
+ - lib/vagrant_utm/action/boot_disposable.rb
56
+ - lib/vagrant_utm/action/check_accessible.rb
57
+ - lib/vagrant_utm/action/check_created.rb
58
+ - lib/vagrant_utm/action/check_guest_additions.rb
59
+ - lib/vagrant_utm/action/check_qemu_img.rb
60
+ - lib/vagrant_utm/action/check_running.rb
61
+ - lib/vagrant_utm/action/check_utm.rb
62
+ - lib/vagrant_utm/action/clear_forwarded_ports.rb
63
+ - lib/vagrant_utm/action/created.rb
64
+ - lib/vagrant_utm/action/customize.rb
65
+ - lib/vagrant_utm/action/destroy.rb
66
+ - lib/vagrant_utm/action/download_confirm.rb
67
+ - lib/vagrant_utm/action/export.rb
68
+ - lib/vagrant_utm/action/forced_halt.rb
69
+ - lib/vagrant_utm/action/forward_ports.rb
70
+ - lib/vagrant_utm/action/import.rb
71
+ - lib/vagrant_utm/action/is_paused.rb
72
+ - lib/vagrant_utm/action/is_running.rb
73
+ - lib/vagrant_utm/action/is_stopped.rb
74
+ - lib/vagrant_utm/action/message_already_running.rb
75
+ - lib/vagrant_utm/action/message_not_created.rb
76
+ - lib/vagrant_utm/action/message_not_running.rb
77
+ - lib/vagrant_utm/action/message_not_stopped.rb
78
+ - lib/vagrant_utm/action/message_will_not_create.rb
79
+ - lib/vagrant_utm/action/message_will_not_destroy.rb
80
+ - lib/vagrant_utm/action/prepare_forwarded_port_collision_params.rb
81
+ - lib/vagrant_utm/action/resume.rb
82
+ - lib/vagrant_utm/action/set_id.rb
83
+ - lib/vagrant_utm/action/set_name.rb
84
+ - lib/vagrant_utm/action/snapshot_delete.rb
85
+ - lib/vagrant_utm/action/snapshot_restore.rb
86
+ - lib/vagrant_utm/action/snapshot_save.rb
87
+ - lib/vagrant_utm/action/suspend.rb
88
+ - lib/vagrant_utm/action/wait_for_running.rb
89
+ - lib/vagrant_utm/cap.rb
90
+ - lib/vagrant_utm/config.rb
91
+ - lib/vagrant_utm/disposable.rb
92
+ - lib/vagrant_utm/driver/base.rb
93
+ - lib/vagrant_utm/driver/meta.rb
94
+ - lib/vagrant_utm/driver/version_4_5.rb
95
+ - lib/vagrant_utm/errors.rb
96
+ - lib/vagrant_utm/model/forwarded_port.rb
97
+ - lib/vagrant_utm/model/list_result.rb
98
+ - lib/vagrant_utm/plugin.rb
99
+ - lib/vagrant_utm/provider.rb
100
+ - lib/vagrant_utm/scripts/add_port_forwards.applescript
101
+ - lib/vagrant_utm/scripts/clear_port_forwards.applescript
102
+ - lib/vagrant_utm/scripts/customize_vm.applescript
103
+ - lib/vagrant_utm/scripts/downloadVM.sh
104
+ - lib/vagrant_utm/scripts/list_vm.js
105
+ - lib/vagrant_utm/scripts/open_with_utm.js
106
+ - lib/vagrant_utm/scripts/read_forwarded_ports.applescript
107
+ - lib/vagrant_utm/scripts/read_guest_ip.applescript
108
+ - lib/vagrant_utm/scripts/read_network_interfaces.applescript
109
+ - lib/vagrant_utm/util/compile_forwarded_ports.rb
110
+ - lib/vagrant_utm/version.rb
111
+ - locales/en.yml
112
+ - sig/vagrant_utm.rbs
113
+ - vagrantfile_examples/Vagrantfile
114
+ homepage: https://naveenrajm7.github.io/vagrant_utm/
115
+ licenses:
116
+ - MIT
117
+ metadata:
118
+ homepage_uri: https://naveenrajm7.github.io/vagrant_utm/
119
+ source_code_uri: https://github.com/naveenrajm7/vagrant_utm
120
+ changelog_uri: https://github.com/naveenrajm7/vagrant_utm/blob/main/CHANGELOG.md
121
+ post_install_message:
122
+ rdoc_options: []
123
+ require_paths:
124
+ - lib
125
+ required_ruby_version: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: 3.0.0
130
+ required_rubygems_version: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ requirements: []
136
+ rubygems_version: 3.5.11
137
+ signing_key:
138
+ specification_version: 4
139
+ summary: Vagrant UTM provider
140
+ test_files: []