vagrant-unbundled 1.8.4.2 → 1.8.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/CHANGELOG.md +52 -0
- data/Gemfile.lock +9 -7
- data/RELEASE.md +37 -14
- data/lib/vagrant/action/builtin/box_add.rb +3 -1
- data/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb +5 -0
- data/lib/vagrant/box_collection.rb +2 -1
- data/lib/vagrant/bundler.rb +36 -1
- data/lib/vagrant/errors.rb +16 -8
- data/lib/vagrant/plugin/state_file.rb +8 -1
- data/lib/vagrant/util/platform.rb +1 -1
- data/plugins/guests/arch/cap/change_host_name.rb +13 -10
- data/plugins/guests/arch/cap/configure_networks.rb +11 -8
- data/plugins/guests/arch/cap/nfs.rb +35 -0
- data/plugins/guests/arch/cap/rsync.rb +16 -0
- data/plugins/guests/arch/cap/smb.rb +17 -0
- data/plugins/guests/arch/plugin.rb +28 -3
- data/plugins/guests/atomic/cap/change_host_name.rb +13 -10
- data/plugins/guests/atomic/plugin.rb +3 -3
- data/plugins/guests/{netbsd → bsd}/cap/halt.rb +2 -2
- data/plugins/guests/bsd/cap/nfs.rb +49 -0
- data/plugins/guests/bsd/cap/public_key.rb +65 -0
- data/plugins/guests/bsd/cap/virtualbox.rb +16 -0
- data/plugins/guests/bsd/guest.rb +9 -0
- data/plugins/guests/bsd/plugin.rb +40 -0
- data/plugins/guests/coreos/cap/change_host_name.rb +1 -1
- data/plugins/guests/coreos/plugin.rb +4 -4
- data/plugins/guests/darwin/cap/change_host_name.rb +4 -1
- data/plugins/guests/darwin/cap/configure_networks.rb +12 -5
- data/plugins/guests/darwin/cap/halt.rb +3 -1
- data/plugins/guests/darwin/cap/rsync.rb +7 -4
- data/plugins/guests/darwin/plugin.rb +13 -28
- data/plugins/guests/debian/cap/change_host_name.rb +14 -15
- data/plugins/guests/debian/cap/configure_networks.rb +2 -6
- data/plugins/guests/debian/cap/{nfs_client.rb → nfs.rb} +2 -1
- data/plugins/guests/debian/cap/rsync.rb +5 -6
- data/plugins/guests/debian/plugin.rb +8 -8
- data/plugins/guests/esxi/cap/mount_nfs_folder.rb +2 -2
- data/plugins/guests/esxi/plugin.rb +6 -6
- data/plugins/guests/fedora/cap/flavor.rb +1 -1
- data/plugins/guests/fedora/plugin.rb +2 -17
- data/plugins/guests/freebsd/cap/change_host_name.rb +2 -3
- data/plugins/guests/freebsd/cap/rsync.rb +7 -4
- data/plugins/guests/freebsd/plugin.rb +9 -29
- data/plugins/guests/funtoo/plugin.rb +3 -8
- data/plugins/guests/gentoo/cap/change_host_name.rb +21 -6
- data/plugins/guests/gentoo/cap/configure_networks.rb +35 -26
- data/plugins/guests/gentoo/plugin.rb +4 -4
- data/plugins/guests/linux/cap/choose_addressable_ip_addr.rb +2 -3
- data/plugins/guests/linux/cap/mount_virtualbox_shared_folder.rb +31 -45
- data/plugins/guests/linux/cap/network_interfaces.rb +20 -0
- data/plugins/guests/linux/cap/nfs.rb +57 -0
- data/plugins/guests/linux/cap/public_key.rb +65 -0
- data/plugins/guests/linux/cap/rsync.rb +7 -4
- data/plugins/guests/linux/plugin.rb +30 -25
- data/plugins/guests/mint/plugin.rb +1 -1
- data/plugins/guests/netbsd/plugin.rb +10 -30
- data/plugins/guests/nixos/plugin.rb +5 -5
- data/plugins/guests/omnios/cap/change_host_name.rb +1 -1
- data/plugins/guests/omnios/plugin.rb +4 -4
- data/plugins/guests/openbsd/cap/change_host_name.rb +21 -3
- data/plugins/guests/openbsd/plugin.rb +10 -30
- data/plugins/guests/photon/cap/change_host_name.rb +1 -1
- data/plugins/guests/photon/plugin.rb +4 -4
- data/plugins/guests/pld/cap/change_host_name.rb +1 -1
- data/plugins/guests/pld/plugin.rb +4 -4
- data/plugins/guests/redhat/cap/change_host_name.rb +4 -3
- data/plugins/guests/redhat/cap/configure_networks.rb +1 -24
- data/plugins/guests/redhat/plugin.rb +7 -7
- data/plugins/guests/slackware/cap/change_host_name.rb +1 -1
- data/plugins/guests/slackware/cap/configure_networks.rb +1 -5
- data/plugins/guests/slackware/plugin.rb +3 -3
- data/plugins/guests/smartos/plugin.rb +12 -12
- data/plugins/guests/solaris/plugin.rb +14 -14
- data/plugins/guests/solaris11/plugin.rb +12 -12
- data/plugins/guests/suse/cap/change_host_name.rb +1 -1
- data/plugins/guests/suse/cap/configure_networks.rb +1 -5
- data/plugins/guests/suse/plugin.rb +8 -8
- data/plugins/guests/tinycore/cap/mount_nfs.rb +2 -2
- data/plugins/guests/tinycore/plugin.rb +7 -7
- data/plugins/guests/trisquel/plugin.rb +1 -1
- data/plugins/guests/ubuntu/guest.rb +1 -1
- data/plugins/guests/ubuntu/plugin.rb +1 -6
- data/plugins/guests/windows/plugin.rb +2 -2
- data/plugins/kernel_v2/config/vm.rb +8 -1
- data/plugins/providers/hyperv/scripts/get_vm_status.ps1 +25 -5
- data/plugins/providers/virtualbox/driver/meta.rb +1 -0
- data/plugins/providers/virtualbox/driver/version_5_1.rb +734 -0
- data/plugins/providers/virtualbox/plugin.rb +1 -0
- data/plugins/synced_folders/nfs/synced_folder.rb +10 -2
- data/plugins/synced_folders/rsync/helper.rb +11 -4
- data/scripts/{bintray_upload.sh → sign.sh} +0 -0
- data/templates/guests/arch/network_static.erb +3 -3
- data/templates/guests/arch/network_static6.erb +8 -0
- data/templates/guests/freebsd/network_static6.erb +6 -0
- data/templates/guests/funtoo/network_static6.erb +9 -0
- data/templates/guests/gentoo/network_dhcp.erb +1 -1
- data/templates/guests/gentoo/network_static.erb +4 -4
- data/templates/guests/gentoo/network_static6.erb +7 -0
- data/templates/guests/redhat/network_dhcp.erb +1 -1
- data/templates/guests/redhat/network_static.erb +4 -1
- data/templates/guests/{fedora → redhat}/network_static6.erb +5 -2
- data/templates/locales/en.yml +40 -6
- data/test/unit/plugins/guests/arch/cap/change_host_name_test.rb +6 -6
- data/test/unit/plugins/guests/arch/cap/configure_networks_test.rb +20 -15
- data/test/unit/plugins/guests/arch/cap/rsync_test.rb +30 -0
- data/test/unit/plugins/guests/arch/cap/smb_test.rb +38 -0
- data/test/unit/plugins/guests/atomic/cap/change_host_name_test.rb +9 -8
- data/test/unit/plugins/guests/{freebsd → bsd}/cap/halt_test.rb +11 -10
- data/test/unit/plugins/guests/{freebsd → bsd}/cap/insert_public_key_test.rb +7 -6
- data/test/unit/plugins/guests/bsd/cap/nfs_test.rb +68 -0
- data/test/unit/plugins/guests/coreos/cap/change_host_name_test.rb +5 -5
- data/test/unit/plugins/guests/darwin/cap/change_host_name_test.rb +5 -5
- data/test/unit/plugins/guests/darwin/cap/halt_test.rb +36 -0
- data/test/unit/plugins/guests/debian/cap/change_host_name_test.rb +3 -5
- data/test/unit/plugins/guests/debian/cap/configure_networks_test.rb +13 -9
- data/test/unit/plugins/guests/debian/cap/rsync_test.rb +3 -11
- data/test/unit/plugins/guests/freebsd/cap/change_host_name_test.rb +2 -2
- data/test/unit/plugins/guests/linux/cap/mount_nfs_test.rb +16 -3
- data/test/unit/plugins/guests/omnios/cap/change_host_name_test.rb +2 -2
- data/test/unit/plugins/guests/photon/cap/change_host_name_test.rb +2 -2
- data/test/unit/plugins/guests/pld/cap/change_host_name_test.rb +2 -2
- data/test/unit/plugins/guests/redhat/cap/change_host_name_test.rb +4 -3
- data/test/unit/plugins/guests/redhat/cap/configure_networks_test.rb +17 -33
- data/test/unit/plugins/guests/slackware/cap/change_host_name_test.rb +2 -2
- data/test/unit/plugins/guests/slackware/cap/configure_networks_test.rb +8 -4
- data/test/unit/plugins/guests/suse/cap/change_host_name_test.rb +2 -2
- data/test/unit/plugins/guests/suse/cap/configure_networks_test.rb +13 -16
- data/test/unit/plugins/kernel_v2/config/vm_test.rb +10 -2
- data/test/unit/templates/guests/arch/network_static_test.rb +4 -2
- data/test/unit/templates/guests/gentoo/network_dhcp_test.rb +2 -2
- data/test/unit/templates/guests/gentoo/network_static_test.rb +10 -10
- data/test/unit/templates/guests/redhat/network_dhcp_test.rb +2 -2
- data/test/unit/templates/guests/redhat/network_static_test.rb +9 -9
- data/vagrant.gemspec +3 -3
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/CHANGELOG.md +1 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/CONTRIBUTING.md +38 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/README.md +297 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/bin/listen +12 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/adapter/base.rb +141 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/adapter/bsd.rb +106 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/adapter/config.rb +26 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/adapter/darwin.rb +92 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/adapter/linux.rb +106 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/adapter/polling.rb +37 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/adapter/windows.rb +98 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/adapter.rb +45 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/backend.rb +38 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/change.rb +76 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/cli.rb +65 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/directory.rb +87 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/event/config.rb +55 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/event/loop.rb +117 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/event/processor.rb +122 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/event/queue.rb +55 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/file.rb +80 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/fsm.rb +132 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/internals/thread_pool.rb +29 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/listener/config.rb +41 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/listener.rb +133 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/logger.rb +32 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/options.rb +23 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/queue_optimizer.rb +132 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/record/entry.rb +64 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/record/symlink_detector.rb +39 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/record.rb +118 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/silencer/controller.rb +48 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/silencer.rb +97 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen/version.rb +3 -0
- data/vendor/bundle/ruby/2.3.0/gems/listen-3.1.5/lib/listen.rb +57 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/.gitignore +8 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/.rspec +2 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/.rubocop-disables.yml +384 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/.rubocop.yml +3 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/.travis.yml +43 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/AUTHORS +98 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/Gemfile +11 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/LICENSE +21 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/README.md +667 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/Rakefile +132 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/bin/restclient +92 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/history.md +310 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/lib/rest-client.rb +2 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/lib/rest_client.rb +2 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/lib/restclient/abstract_response.rb +226 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/lib/restclient/exceptions.rb +244 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/lib/restclient/params_array.rb +72 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/lib/restclient/payload.rb +209 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/lib/restclient/platform.rb +49 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/lib/restclient/raw_response.rb +38 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/lib/restclient/request.rb +904 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/lib/restclient/resource.rb +168 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/lib/restclient/response.rb +80 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/lib/restclient/utils.rb +235 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/lib/restclient/version.rb +8 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/lib/restclient/windows/root_certs.rb +105 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/lib/restclient/windows.rb +8 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/lib/restclient.rb +184 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/rest-client.gemspec +31 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/rest-client.windows.gemspec +19 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/helpers.rb +22 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/integration/_lib.rb +1 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/integration/capath_digicert/244b5494.0 +19 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/integration/capath_digicert/81b9768f.0 +19 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/integration/capath_digicert/README +8 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/integration/capath_digicert/digicert.crt +19 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/integration/capath_verisign/415660c1.0 +14 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/integration/capath_verisign/7651b327.0 +14 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/integration/capath_verisign/README +8 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/integration/capath_verisign/verisign.crt +14 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/integration/certs/digicert.crt +19 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/integration/certs/verisign.crt +14 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/integration/httpbin_spec.rb +86 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/integration/integration_spec.rb +125 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/integration/request_spec.rb +127 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/spec_helper.rb +29 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/unit/_lib.rb +1 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/unit/abstract_response_spec.rb +145 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/unit/exceptions_spec.rb +108 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/unit/master_shake.jpg +0 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/unit/params_array_spec.rb +36 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/unit/payload_spec.rb +263 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/unit/raw_response_spec.rb +18 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/unit/request2_spec.rb +54 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/unit/request_spec.rb +1265 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/unit/resource_spec.rb +130 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/unit/response_spec.rb +241 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/unit/restclient_spec.rb +79 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/unit/utils_spec.rb +147 -0
- data/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.0/spec/unit/windows/root_certs_spec.rb +22 -0
- data/vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.4.0/.gitignore +10 -0
- data/vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.4.0/.rspec +3 -0
- data/vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.4.0/.rubocop.yml +3 -0
- data/vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.4.0/.travis.yml +11 -0
- data/vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.4.0/LICENSE.txt +21 -0
- data/vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.4.0/README.md +151 -0
- data/vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.4.0/lib/ruby_dep/logger.rb +16 -0
- data/vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.4.0/lib/ruby_dep/quiet.rb +3 -0
- data/vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.4.0/lib/ruby_dep/ruby_version.rb +58 -0
- data/vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.4.0/lib/ruby_dep/travis/ruby_version.rb +59 -0
- data/vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.4.0/lib/ruby_dep/travis.rb +58 -0
- data/vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.4.0/lib/ruby_dep/version.rb +3 -0
- data/vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.4.0/lib/ruby_dep/warning.rb +97 -0
- data/vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.4.0/lib/ruby_dep.rb +2 -0
- data/vendor/bundle/ruby/2.3.0/specifications/listen-3.1.5.gemspec +44 -0
- data/vendor/bundle/ruby/2.3.0/specifications/rest-client-2.0.0.gemspec +60 -0
- data/vendor/bundle/ruby/2.3.0/specifications/ruby_dep-1.4.0.gemspec +34 -0
- data/version.txt +1 -1
- metadata +147 -44
- data/plugins/guests/darwin/cap/insert_public_key.rb +0 -33
- data/plugins/guests/darwin/cap/mount_nfs_folder.rb +0 -37
- data/plugins/guests/darwin/cap/remove_public_key.rb +0 -21
- data/plugins/guests/fedora/cap/change_host_name.rb +0 -29
- data/plugins/guests/fedora/cap/configure_networks.rb +0 -135
- data/plugins/guests/fedora/cap/network_scripts_dir.rb +0 -15
- data/plugins/guests/freebsd/cap/halt.rb +0 -16
- data/plugins/guests/freebsd/cap/insert_public_key.rb +0 -34
- data/plugins/guests/freebsd/cap/mount_nfs_folder.rb +0 -24
- data/plugins/guests/freebsd/cap/remove_public_key.rb +0 -21
- data/plugins/guests/funtoo/cap/change_host_name.rb +0 -17
- data/plugins/guests/linux/cap/insert_public_key.rb +0 -31
- data/plugins/guests/linux/cap/mount_nfs.rb +0 -50
- data/plugins/guests/linux/cap/nfs_client.rb +0 -11
- data/plugins/guests/linux/cap/remove_public_key.rb +0 -24
- data/plugins/guests/netbsd/cap/insert_public_key.rb +0 -21
- data/plugins/guests/netbsd/cap/mount_nfs_folder.rb +0 -17
- data/plugins/guests/netbsd/cap/remove_public_key.rb +0 -21
- data/plugins/guests/openbsd/cap/halt.rb +0 -16
- data/plugins/guests/openbsd/cap/insert_public_key.rb +0 -21
- data/plugins/guests/openbsd/cap/mount_nfs_folder.rb +0 -14
- data/plugins/guests/openbsd/cap/remove_public_key.rb +0 -21
- data/plugins/guests/ubuntu/cap/change_host_name.rb +0 -52
- data/templates/guests/fedora/network_dhcp.erb +0 -6
- data/templates/guests/fedora/network_static.erb +0 -16
- data/test/unit/plugins/guests/freebsd/cap/mount_nfs_folder_test.rb +0 -53
- data/test/unit/plugins/guests/ubuntu/cap/change_host_name_test.rb +0 -42
- data/test/unit/templates/guests/fedora/network_dhcp_test.rb +0 -21
- data/test/unit/templates/guests/fedora/network_static6_test.rb +0 -25
- data/test/unit/templates/guests/fedora/network_static_test.rb +0 -71
@@ -0,0 +1,147 @@
|
|
1
|
+
require_relative '_lib'
|
2
|
+
|
3
|
+
describe RestClient::Utils do
|
4
|
+
describe '.get_encoding_from_headers' do
|
5
|
+
it 'assumes no encoding by default for text' do
|
6
|
+
headers = {:content_type => 'text/plain'}
|
7
|
+
expect(RestClient::Utils.get_encoding_from_headers(headers)).
|
8
|
+
to eq nil
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'returns nil on failures' do
|
12
|
+
expect(RestClient::Utils.get_encoding_from_headers(
|
13
|
+
{:content_type => 'blah'})).to eq nil
|
14
|
+
expect(RestClient::Utils.get_encoding_from_headers(
|
15
|
+
{})).to eq nil
|
16
|
+
expect(RestClient::Utils.get_encoding_from_headers(
|
17
|
+
{:content_type => 'foo; bar=baz'})).to eq nil
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'handles various charsets' do
|
21
|
+
expect(RestClient::Utils.get_encoding_from_headers(
|
22
|
+
{:content_type => 'text/plain; charset=UTF-8'})).to eq 'UTF-8'
|
23
|
+
expect(RestClient::Utils.get_encoding_from_headers(
|
24
|
+
{:content_type => 'application/json; charset=ISO-8859-1'})).
|
25
|
+
to eq 'ISO-8859-1'
|
26
|
+
expect(RestClient::Utils.get_encoding_from_headers(
|
27
|
+
{:content_type => 'text/html; charset=windows-1251'})).
|
28
|
+
to eq 'windows-1251'
|
29
|
+
|
30
|
+
expect(RestClient::Utils.get_encoding_from_headers(
|
31
|
+
{:content_type => 'text/html; charset="UTF-16"'})).
|
32
|
+
to eq 'UTF-16'
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe '.cgi_parse_header' do
|
37
|
+
it 'parses headers' do
|
38
|
+
expect(RestClient::Utils.cgi_parse_header('text/plain')).
|
39
|
+
to eq ['text/plain', {}]
|
40
|
+
|
41
|
+
expect(RestClient::Utils.cgi_parse_header('text/vnd.just.made.this.up ; ')).
|
42
|
+
to eq ['text/vnd.just.made.this.up', {}]
|
43
|
+
|
44
|
+
expect(RestClient::Utils.cgi_parse_header('text/plain;charset=us-ascii')).
|
45
|
+
to eq ['text/plain', {'charset' => 'us-ascii'}]
|
46
|
+
|
47
|
+
expect(RestClient::Utils.cgi_parse_header('text/plain ; charset="us-ascii"')).
|
48
|
+
to eq ['text/plain', {'charset' => 'us-ascii'}]
|
49
|
+
|
50
|
+
expect(RestClient::Utils.cgi_parse_header(
|
51
|
+
'text/plain ; charset="us-ascii"; another=opt')).
|
52
|
+
to eq ['text/plain', {'charset' => 'us-ascii', 'another' => 'opt'}]
|
53
|
+
|
54
|
+
expect(RestClient::Utils.cgi_parse_header(
|
55
|
+
'attachment; filename="silly.txt"')).
|
56
|
+
to eq ['attachment', {'filename' => 'silly.txt'}]
|
57
|
+
|
58
|
+
expect(RestClient::Utils.cgi_parse_header(
|
59
|
+
'attachment; filename="strange;name"')).
|
60
|
+
to eq ['attachment', {'filename' => 'strange;name'}]
|
61
|
+
|
62
|
+
expect(RestClient::Utils.cgi_parse_header(
|
63
|
+
'attachment; filename="strange;name";size=123;')).to eq \
|
64
|
+
['attachment', {'filename' => 'strange;name', 'size' => '123'}]
|
65
|
+
|
66
|
+
expect(RestClient::Utils.cgi_parse_header(
|
67
|
+
'form-data; name="files"; filename="fo\\"o;bar"')).to eq \
|
68
|
+
['form-data', {'name' => 'files', 'filename' => 'fo"o;bar'}]
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
describe '.encode_query_string' do
|
73
|
+
it 'handles simple hashes' do
|
74
|
+
{
|
75
|
+
{foo: 123, bar: 456} => 'foo=123&bar=456',
|
76
|
+
{'foo' => 123, 'bar' => 456} => 'foo=123&bar=456',
|
77
|
+
{foo: 'abc', bar: 'one two'} => 'foo=abc&bar=one+two',
|
78
|
+
{escaped: '1+2=3'} => 'escaped=1%2B2%3D3',
|
79
|
+
{'escaped + key' => 'foo'} => 'escaped+%2B+key=foo',
|
80
|
+
}.each_pair do |input, expected|
|
81
|
+
expect(RestClient::Utils.encode_query_string(input)).to eq expected
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'handles simple arrays' do
|
86
|
+
{
|
87
|
+
{foo: [1, 2, 3]} => 'foo[]=1&foo[]=2&foo[]=3',
|
88
|
+
{foo: %w{a b c}, bar: [1, 2, 3]} => 'foo[]=a&foo[]=b&foo[]=c&bar[]=1&bar[]=2&bar[]=3',
|
89
|
+
{foo: ['one two', 3]} => 'foo[]=one+two&foo[]=3',
|
90
|
+
{'a+b' => [1,2,3]} => 'a%2Bb[]=1&a%2Bb[]=2&a%2Bb[]=3',
|
91
|
+
}.each_pair do |input, expected|
|
92
|
+
expect(RestClient::Utils.encode_query_string(input)).to eq expected
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'handles nested hashes' do
|
97
|
+
{
|
98
|
+
{outer: {foo: 123, bar: 456}} => 'outer[foo]=123&outer[bar]=456',
|
99
|
+
{outer: {foo: [1, 2, 3], bar: 'baz'}} => 'outer[foo][]=1&outer[foo][]=2&outer[foo][]=3&outer[bar]=baz',
|
100
|
+
}.each_pair do |input, expected|
|
101
|
+
expect(RestClient::Utils.encode_query_string(input)).to eq expected
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
it 'handles null and empty values' do
|
106
|
+
{
|
107
|
+
{string: '', empty: nil, list: [], hash: {}, falsey: false } =>
|
108
|
+
'string=&empty&list&hash&falsey=false',
|
109
|
+
}.each_pair do |input, expected|
|
110
|
+
expect(RestClient::Utils.encode_query_string(input)).to eq expected
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
it 'handles nested nulls' do
|
115
|
+
{
|
116
|
+
{foo: {string: '', empty: nil}} => 'foo[string]=&foo[empty]',
|
117
|
+
}.each_pair do |input, expected|
|
118
|
+
expect(RestClient::Utils.encode_query_string(input)).to eq expected
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
it 'handles deep nesting' do
|
123
|
+
{
|
124
|
+
{coords: [{x: 1, y: 0}, {x: 2}, {x: 3}]} => 'coords[][x]=1&coords[][y]=0&coords[][x]=2&coords[][x]=3',
|
125
|
+
}.each_pair do |input, expected|
|
126
|
+
expect(RestClient::Utils.encode_query_string(input)).to eq expected
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
it 'handles multiple fields with the same name using ParamsArray' do
|
131
|
+
{
|
132
|
+
RestClient::ParamsArray.new([[:foo, 1], [:foo, 2], [:foo, 3]]) => 'foo=1&foo=2&foo=3',
|
133
|
+
}.each_pair do |input, expected|
|
134
|
+
expect(RestClient::Utils.encode_query_string(input)).to eq expected
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
it 'handles nested ParamsArrays' do
|
139
|
+
{
|
140
|
+
{foo: RestClient::ParamsArray.new([[:a, 1], [:a, 2]])} => 'foo[a]=1&foo[a]=2',
|
141
|
+
RestClient::ParamsArray.new([[:foo, {a: 1}], [:foo, {a: 2}]]) => 'foo[a]=1&foo[a]=2',
|
142
|
+
}.each_pair do |input, expected|
|
143
|
+
expect(RestClient::Utils.encode_query_string(input)).to eq expected
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require_relative '../_lib'
|
2
|
+
|
3
|
+
describe 'RestClient::Windows::RootCerts',
|
4
|
+
:if => RestClient::Platform.windows? do
|
5
|
+
let(:x509_store) { RestClient::Windows::RootCerts.instance.to_a }
|
6
|
+
|
7
|
+
it 'should return at least one X509 certificate' do
|
8
|
+
expect(x509_store.to_a.size).to be >= 1
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should return an X509 certificate with a subject' do
|
12
|
+
x509 = x509_store.first
|
13
|
+
|
14
|
+
expect(x509.subject.to_s).to match(/CN=.*/)
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should return X509 certificate objects' do
|
18
|
+
x509_store.each do |cert|
|
19
|
+
expect(cert).to be_a(OpenSSL::X509::Certificate)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2016 Cezary Baginski
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
@@ -0,0 +1,151 @@
|
|
1
|
+
# RubyDep
|
2
|
+
|
3
|
+
[![Gem Version](https://img.shields.io/gem/v/ruby_dep.svg?style=flat)](https://rubygems.org/gems/ruby_dep) [![Build Status](https://travis-ci.org/e2/ruby_dep.svg)](https://travis-ci.org/e2/ruby_dep)
|
4
|
+
|
5
|
+
## Description
|
6
|
+
|
7
|
+
RubyDep does 2 things right now:
|
8
|
+
|
9
|
+
1. Helps end users avoid incompatible, buggy and insecure Ruby versions.
|
10
|
+
2. Helps gem owners manage their gem's `required_ruby_version` gemspec field based on `.travis.yml`.
|
11
|
+
|
12
|
+
## Quick info
|
13
|
+
|
14
|
+
- if you want to know how to disable the warnings, see here: https://github.com/e2/ruby_dep/wiki/Disabling-warnings
|
15
|
+
- for a list of Ruby versions that can be used to install ruby_dep, see here: https://travis-ci.org/e2/ruby_dep
|
16
|
+
- if your version of Ruby is not supported, open a new issue and explain your situation/problem
|
17
|
+
- when in doubt, open a new issue or [read the FAQ on the Wiki](https://github.com/e2/ruby_dep/wiki/FAQ).
|
18
|
+
- gems using RubyDep are designed to not be installable on a given Ruby version, unless it's specifically declared supported by those gems - but it's ok to ask for supporting your Ruby if you're stuck on an older version (for whatever reason)
|
19
|
+
- discussions about Ruby versions can get complex and frustrating - please be patient and constructive, and open-minded about solutions - especially if you're having problems
|
20
|
+
|
21
|
+
|
22
|
+
## Supported Ruby versions:
|
23
|
+
|
24
|
+
NOTE: RubyDep uses it's own approach on itself. This means it can only be installed on Ruby versions tested here: [check out the Travis build status](https://travis-ci.org/e2/ruby_dep). If you need support for an different/older version of Ruby, open an issue with "backport" in the title and provide a compelling case for supporting the version of Ruby you need.
|
25
|
+
|
26
|
+
## Problem 1: "Which version of Ruby does your project support?"
|
27
|
+
|
28
|
+
Your gem shouldn't (and likely doesn't) support all possible Ruby versions.
|
29
|
+
|
30
|
+
So you have to tell users which versions your gem supports.
|
31
|
+
|
32
|
+
But, there are at least 3 places where you list the Rubies you support:
|
33
|
+
|
34
|
+
1. Your gemspec
|
35
|
+
2. Your README
|
36
|
+
3. Your .travis.yml file
|
37
|
+
|
38
|
+
That breaks the principle of single responsibility.
|
39
|
+
|
40
|
+
Is it possible to just list the supported Rubies in just one place?
|
41
|
+
|
42
|
+
Yes. That's what RubyDep helps with.
|
43
|
+
|
44
|
+
## Solution to problem 1
|
45
|
+
|
46
|
+
Since Travis doesn't allow generated `.travis.yml` files, option 3 is the only choice.
|
47
|
+
|
48
|
+
With RubyDep, your gemspec's `required_ruby_version` can be automatically set based on which Rubies you test your gem on.
|
49
|
+
|
50
|
+
What about the README? Well, just insert a link to your Travis build status page!
|
51
|
+
|
52
|
+
Example: do you want to know which Ruby versions RubyDep can be installed on? Just look here: https://travis-ci.org/e2/ruby_dep
|
53
|
+
|
54
|
+
If you're running Travis builds on a Ruby you support (and it's not in the "allow failures" section), it means you support that version of Ruby, right?
|
55
|
+
|
56
|
+
RubyDep intelligently creates a version constraint to encompass Rubies listed in your `.travis.yml`.
|
57
|
+
|
58
|
+
## Usage (to solve Problem 1)
|
59
|
+
|
60
|
+
### E.g. in your gemspec file:
|
61
|
+
|
62
|
+
```ruby
|
63
|
+
begin
|
64
|
+
require "ruby_dep/travis"
|
65
|
+
s.required_ruby_version = RubyDep::Travis.new.version_constraint
|
66
|
+
rescue LoadError
|
67
|
+
abort "Install 'ruby_dep' gem before building this gem"
|
68
|
+
end
|
69
|
+
|
70
|
+
s.add_development_dependency 'ruby_dep', '~> 1.1'
|
71
|
+
```
|
72
|
+
|
73
|
+
### In your `README.md`:
|
74
|
+
|
75
|
+
Replace your mentions of "supported Ruby versions" and just insert a link to your Travis build status page.
|
76
|
+
|
77
|
+
If users see their Ruby version "green" on Travis, they'll see those are the versions you support and test, right?
|
78
|
+
|
79
|
+
(Or, you can link to your project's rubygems.org page where the required Ruby version is listed).
|
80
|
+
|
81
|
+
### In your `.travis.yml`:
|
82
|
+
|
83
|
+
To add a "supported Ruby", simply add it to the Travis build.
|
84
|
+
|
85
|
+
To test a Ruby version, but not treat it as "supported", simply add that version to the `allowed_failures` section.
|
86
|
+
|
87
|
+
|
88
|
+
## Problem 2: Users don't know they're using an obsolete/buggy/insecure version of Ruby
|
89
|
+
|
90
|
+
Users don't track news updates on https://ruby-lang.org, so they may not know their ruby has known bugs or even serious security vulnerabilities.
|
91
|
+
|
92
|
+
And sometimes, that outdated/insecure Ruby is bundled by their operation system to begin with!
|
93
|
+
|
94
|
+
## The solution to problem 2
|
95
|
+
|
96
|
+
RubyDep has a small "database" of Ruby versions with information about which are buggy and insecure.
|
97
|
+
|
98
|
+
If you like, your gem can use RubyDep to show those warnings - to encourage users to upgrade and protect them from nasty bugs or bad security holes.
|
99
|
+
|
100
|
+
This way, when most of the Ruby community has switched to newer versions, everyone can be more productive by having faster, more stable and more feature-rich tools. And less time will be wasted supporting obsolete versions that users simply don't know are worth upgrading.
|
101
|
+
|
102
|
+
This also helps users understand that they should nudge their hosting providers, managers and package maintainers to provided up-to-date versions of Ruby to that everyone can benefit.
|
103
|
+
|
104
|
+
### Usage (to solve Problem 2)
|
105
|
+
|
106
|
+
In your gemspec:
|
107
|
+
|
108
|
+
```ruby
|
109
|
+
s.add_runtime_dependency 'ruby_dep', '~> 1.1'
|
110
|
+
```
|
111
|
+
|
112
|
+
Somewhere in your library:
|
113
|
+
|
114
|
+
```ruby
|
115
|
+
require 'ruby_dep/warnings'
|
116
|
+
RubyDep::Warning.show_warnings
|
117
|
+
ENV['RUBY_DEP_GEM_SILENCE_WARNINGS'] = '1' # to ignore repeating the warning if other gems use `ruby_dep` too
|
118
|
+
```
|
119
|
+
|
120
|
+
That way, as soon as there's a severe vulnerability discovered in Ruby (and RubyDep is updated), users will be notified quickly.
|
121
|
+
|
122
|
+
|
123
|
+
## Tips
|
124
|
+
|
125
|
+
1. To disable warnings, just set the following environment variable: `RUBY_DEP_GEM_SILENCE_WARNINGS=1`
|
126
|
+
2. If you want to support a newer version of Ruby, just add it to your `.travis.yml` (e.g. ruby-2.3.1)
|
127
|
+
3. To support an earlier version of Ruby, add it to your `.travis.yml` and release a new gem version.
|
128
|
+
4. If you want to support a range of Rubies, include the whole range without gaps in minor version numbers (e.g. 2.0, 2.1, 2.2, 2.3) and ruby_dep will use the whole range. (If there's a gap, older versions will be considered "unsupported").
|
129
|
+
5. If you want to drop support for a Ruby, remove it from the `.travis.yml` and just bump your gem's minor number (Yes! Bumping just the minor if fine according to SemVer).
|
130
|
+
5. If you just want to test a Ruby version (but not actually support it), put it into the `allow failures` part of your Travis build matrix. (ruby_dep ignores versions there).
|
131
|
+
|
132
|
+
When in doubt, open an issue and just ask.
|
133
|
+
|
134
|
+
## Roadmap
|
135
|
+
|
136
|
+
Pull Requests are welcome.
|
137
|
+
|
138
|
+
Plans include: reading supported Ruby from `.rubocop.yml` (`TargetRubyVersion` field).
|
139
|
+
|
140
|
+
|
141
|
+
## Development
|
142
|
+
|
143
|
+
Use `rake` to run tests.
|
144
|
+
|
145
|
+
## Contributing
|
146
|
+
|
147
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/e2/ruby_dep.
|
148
|
+
|
149
|
+
## License
|
150
|
+
|
151
|
+
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
@@ -0,0 +1,58 @@
|
|
1
|
+
|
2
|
+
module RubyDep
|
3
|
+
class RubyVersion
|
4
|
+
attr_reader :status # NOTE: monkey-patched by acceptance tests
|
5
|
+
attr_reader :version
|
6
|
+
attr_reader :engine
|
7
|
+
|
8
|
+
def initialize(ruby_version, engine)
|
9
|
+
@engine = engine
|
10
|
+
@version = Gem::Version.new(ruby_version)
|
11
|
+
@status = detect_status
|
12
|
+
end
|
13
|
+
|
14
|
+
def recognized?
|
15
|
+
info.any?
|
16
|
+
end
|
17
|
+
|
18
|
+
def recommended(status)
|
19
|
+
current = Gem::Version.new(@version)
|
20
|
+
info.select do |key, value|
|
21
|
+
value == status && Gem::Version.new(key) > current
|
22
|
+
end.keys.reverse
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
VERSION_INFO = {
|
28
|
+
'ruby' => {
|
29
|
+
'2.3.1' => :unknown,
|
30
|
+
'2.3.0' => :buggy,
|
31
|
+
'2.2.5' => :unknown,
|
32
|
+
'2.2.4' => :buggy,
|
33
|
+
'2.2.0' => :insecure,
|
34
|
+
'2.1.9' => :buggy,
|
35
|
+
'2.0.0' => :insecure
|
36
|
+
},
|
37
|
+
|
38
|
+
'jruby' => {
|
39
|
+
'2.3.0' => :unknown, # jruby-9.1.2.0, jruby-9.1.0.0
|
40
|
+
'2.2.3' => :buggy, # jruby-9.0.5.0
|
41
|
+
'2.2.0' => :insecure
|
42
|
+
}
|
43
|
+
}.freeze
|
44
|
+
|
45
|
+
def info
|
46
|
+
@info ||= VERSION_INFO[@engine] || {}
|
47
|
+
end
|
48
|
+
|
49
|
+
def detect_status
|
50
|
+
return :untracked unless recognized?
|
51
|
+
|
52
|
+
info.each do |ruby, status|
|
53
|
+
return status if @version >= Gem::Version.new(ruby)
|
54
|
+
end
|
55
|
+
:insecure
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|