vagrant-solaris10 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 01667b843e06f08aa5f3e746b92d57d3d394b98d
4
- data.tar.gz: 72b7fa074ff551d7014f870b30dd5b2a3b04d48c
3
+ metadata.gz: 8fe793851c454fdf9487f7926caeb4315a77694b
4
+ data.tar.gz: a23a987241ac69f815e8aa308b732e5467e63e36
5
5
  SHA512:
6
- metadata.gz: ec901eb2c143afa0a074e1d31c2f76f906fc9bf1dc9e24fbc167c5a1145690010546e026bb9f6d1222ac1ba590c64578db4321e4d45fd44382cfe0d42f03aecc
7
- data.tar.gz: 2b5960d8797c505478b314471936b46cbce36e6f5eacbdb4333445ca4174e9c39f15910f4b89157f46f75efc9bb746ded46ad30b6f9fe015dabd36c35e06e688
6
+ metadata.gz: 194c73b855a7bef609f32aedf674e2e4000f9de77ea9bd2f929cc80346778aed199492cac7ac77f2151fdafdc0bb9357c6fda2f4dc561c7bdfd3bd2734f57301
7
+ data.tar.gz: 4751b5fba00849c604785c02b2796ca1c3d87821e9d94072dcd87a5b3d2dda88a774fcea2bc74af4c5f35f6f3c874635cf7b3e24c4554ccc2eeb8d0673d7e284
@@ -0,0 +1,47 @@
1
+ # Copyright (c) 2014 Tnarik Innael - adaptation to Solaris and repackaging
2
+ # Copyright (c) 2013-2014 Mitchell Hashimoto - from plugins/guests/darwin/cap/mount_vnfs_folder.rb
3
+ require "vagrant/util/retryable"
4
+ require "vagrant/errors"
5
+
6
+ module Vagrant
7
+ module Errors
8
+ class Vagrant::Errors::SolarisNFSMountFailed < VagrantError
9
+ error_key(:solaris_nfs_mount_failed)
10
+ end
11
+ end
12
+
13
+ module Solaris10
14
+ module Cap
15
+ class MountNFSFolder
16
+ extend Vagrant::Util::Retryable
17
+
18
+ def self.mount_nfs_folder(machine, ip, folders)
19
+ folders.each do |name, opts|
20
+ # Expand the guest path so we can handle things like "~/vagrant"
21
+ expanded_guest_path = machine.guest.capability(
22
+ :shell_expand_guest_path, opts[:guestpath])
23
+
24
+ # Create the folder
25
+ machine.communicate.sudo("mkdir -p #{expanded_guest_path}")
26
+
27
+ # Figure out any options
28
+ mount_opts = ["vers=#{opts[:nfs_version]}"]
29
+ if opts[:mount_options]
30
+ mount_opts = opts[:mount_options].dup
31
+ end
32
+
33
+ mount_command = "mount -F nfs " +
34
+ "-o '#{mount_opts.join(",")}' " +
35
+ "'#{ip}:#{opts[:hostpath]}' '#{expanded_guest_path}'"
36
+ retryable(on: Vagrant::Errors::SolarisNFSMountFailed, tries: 10, sleep: 5) do
37
+ machine.communicate.sudo(
38
+ mount_command,
39
+ error_class: Vagrant::Errors::SolarisNFSMountFailed)
40
+ end
41
+ end
42
+ end
43
+
44
+ end
45
+ end
46
+ end
47
+ end
@@ -6,7 +6,7 @@ module Vagrant
6
6
  class MountParallelsSharedFolder
7
7
 
8
8
  def self.mount_parallels_shared_folder(machine, name, guestpath, options)
9
- p "mount parallels"
9
+ machine.ui.warn("Parallels doesn't support shared folders for Solaris")
10
10
  end
11
11
 
12
12
  end
@@ -0,0 +1,33 @@
1
+ # Copyright (c) 2014 Tnarik Innael - repackaged
2
+ # Copyright (c) 2014 Mitchell Hashimoto - from plugins/guest/linux/cap/shell_expand_guest_path.rb
3
+ module Vagrant
4
+ module Solaris10
5
+ module Cap
6
+ class ShellExpandGuestPath
7
+
8
+ def self.shell_expand_guest_path(machine, path)
9
+ real_path = nil
10
+ machine.communicate.execute("echo; printf #{path}") do |type, data|
11
+ if type == :stdout
12
+ real_path ||= ""
13
+ real_path += data
14
+ end
15
+ end
16
+
17
+ # The last line is the path we care about
18
+ real_path = real_path.split("\n").last.chomp
19
+
20
+ if !real_path
21
+ # If no real guest path was detected, this is really strange
22
+ # and we raise an exception because this is a bug.
23
+ raise ShellExpandFailed
24
+ end
25
+
26
+ # Chomp the string so that any trailing newlines are killed
27
+ return real_path.chomp
28
+ end
29
+
30
+ end
31
+ end
32
+ end
33
+ end
@@ -2,7 +2,6 @@ require "vagrant"
2
2
 
3
3
  module Vagrant
4
4
  module Solaris10
5
-
6
5
  class Plugin < Vagrant.plugin("2")
7
6
  name "Solaris10 guest"
8
7
  description "Solaris10 guest support."
@@ -17,6 +16,11 @@ module Vagrant
17
16
  Cap::MountParallelsSharedFolder
18
17
  end
19
18
 
19
+ guest_capability("solaris", "mount_nfs_folder") do
20
+ require_relative "cap/mount_nfs_folder"
21
+ Cap::MountNFSFolder
22
+ end
23
+
20
24
  guest_capability("solaris", "insert_public_key") do
21
25
  require_relative "cap/insert_public_key"
22
26
  Cap::InsertPublicKey
@@ -27,6 +31,11 @@ module Vagrant
27
31
  Cap::RemovePublicKey
28
32
  end
29
33
 
34
+ guest_capability("solaris", "shell_expand_guest_path") do
35
+ require_relative "cap/shell_expand_guest_path"
36
+ Cap::ShellExpandGuestPath
37
+ end
38
+
30
39
  guest_capability("solaris", "rsync_post") do
31
40
  require_relative "cap/rsync"
32
41
  Cap::RSync
@@ -1,5 +1,5 @@
1
1
  module Vagrant
2
2
  module Solaris10
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-solaris10
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tnarik Innael
@@ -55,10 +55,12 @@ files:
55
55
  - Rakefile
56
56
  - lib/vagrant-solaris10.rb
57
57
  - lib/vagrant-solaris10/cap/insert_public_key.rb
58
+ - lib/vagrant-solaris10/cap/mount_nfs_folder.rb
58
59
  - lib/vagrant-solaris10/cap/mount_parallels_shared_folder.rb
59
60
  - lib/vagrant-solaris10/cap/mount_vmware_shared_folder.rb
60
61
  - lib/vagrant-solaris10/cap/remove_public_key.rb
61
62
  - lib/vagrant-solaris10/cap/rsync.rb
63
+ - lib/vagrant-solaris10/cap/shell_expand_guest_path.rb
62
64
  - lib/vagrant-solaris10/plugin.rb
63
65
  - lib/vagrant-solaris10/version.rb
64
66
  - vagrant-solaris10.gemspec