Class: Chef::Util::Windows::NetUse

Inherits:
Chef::Util::Windows show all
Defined in:
lib/chef/util/windows/net_use.rb

Instance Method Summary collapse

Constructor Details

#initialize(localname) ⇒ NetUse

Returns a new instance of NetUse.



27
28
29
# File 'lib/chef/util/windows/net_use.rb', line 27

def initialize(localname)
  @use_name = localname
end

Instance Method Details

#add(args) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/chef/util/windows/net_use.rb', line 38

def add(args)
  if args.class == String
    remote = args
    args = Hash.new
    args[:remote] = remote
  end
  args[:local] ||= use_name
  ui2_hash = to_ui2_struct(args)

  begin
    Chef::ReservedNames::Win32::Net.net_use_add_l2(nil, ui2_hash)
  rescue Chef::Exceptions::Win32APIError => e
    raise ArgumentError, e
  end
end

#deleteObject



74
75
76
77
78
79
80
# File 'lib/chef/util/windows/net_use.rb', line 74

def delete
  begin
    Chef::ReservedNames::Win32::Net.net_use_del(nil, use_name, :use_noforce)
  rescue Chef::Exceptions::Win32APIError => e
    raise ArgumentError, e
  end
end

#deviceObject



70
71
72
# File 'lib/chef/util/windows/net_use.rb', line 70

def device
  get_info()[:remote]
end

#from_use_info_struct(ui2_hash) ⇒ Object



54
55
56
57
58
59
# File 'lib/chef/util/windows/net_use.rb', line 54

def from_use_info_struct(ui2_hash)
  ui2_hash.inject({}) do |memo, (k, v)|
    memo[k.to_s.sub("ui2_", "").to_sym] = v
    memo
  end
end

#get_infoObject



61
62
63
64
65
66
67
68
# File 'lib/chef/util/windows/net_use.rb', line 61

def get_info
  begin
    ui2 = Chef::ReservedNames::Win32::Net.net_use_get_info_l2(nil, use_name)
    from_use_info_struct(ui2)
  rescue Chef::Exceptions::Win32APIError => e
    raise ArgumentError, e
  end
end

#to_ui2_struct(use_info) ⇒ Object



31
32
33
34
35
36
# File 'lib/chef/util/windows/net_use.rb', line 31

def to_ui2_struct(use_info)
  use_info.inject({}) do |memo, (k, v)|
    memo["ui2_#{k}".to_sym] = v
    memo
  end
end

#use_nameObject



82
83
84
# File 'lib/chef/util/windows/net_use.rb', line 82

def use_name
  @use_name
end