Module: WebDAV

Defined in:
lib/fs/MiqFS/modules/WebDAV.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#guestOSObject (readonly)

Returns the value of attribute guestOS.



7
8
9
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 7

def guestOS
  @guestOS
end

Instance Method Details

#dirRmdir(_path) ⇒ Object

Raises:

  • (Errno::EACCES)


114
115
116
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 114

def dirRmdir(_path)
  raise Errno::EACCES
end

#freeBytesObject



27
28
29
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 27

def freeBytes
  0
end

#fs_dirEntries(_path) ⇒ Object

Raises:

  • (NotImplementedError)


31
32
33
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 31

def fs_dirEntries(_path)
  raise NotImplementedError
end

#fs_dirMkdir(_path) ⇒ Object

Raises:

  • (Errno::EACCES)


110
111
112
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 110

def fs_dirMkdir(_path)
  raise Errno::EACCES
end

#fs_fileAtime(_path) ⇒ Object

Raises:

  • (NotImplementedError)


65
66
67
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 65

def fs_fileAtime(_path)
  raise NotImplementedError
end

#fs_fileAtime_obj(_fobj) ⇒ Object

Raises:

  • (NotImplementedError)


77
78
79
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 77

def fs_fileAtime_obj(_fobj)
  raise NotImplementedError
end

#fs_fileClose(fobj) ⇒ Object



102
103
104
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 102

def fs_fileClose(fobj)
  fobj.close
end

#fs_fileCtime(_path) ⇒ Object

Raises:

  • (NotImplementedError)


69
70
71
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 69

def fs_fileCtime(_path)
  raise NotImplementedError
end

#fs_fileCtime_obj(_fobj) ⇒ Object

Raises:

  • (NotImplementedError)


81
82
83
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 81

def fs_fileCtime_obj(_fobj)
  raise NotImplementedError
end

#fs_fileDelete(_path) ⇒ Object

Raises:

  • (Errno::EACCES)


118
119
120
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 118

def fs_fileDelete(_path)
  raise Errno::EACCES
end

#fs_fileDirectory?(path) ⇒ Boolean

Returns:

  • (Boolean)


47
48
49
50
51
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 47

def fs_fileDirectory?(path)
  # TODO: implement proper check for being a directory
  path += '/' unless path.end_with?('/')
  fs_fileExists?(path)
end

#fs_fileExists?(path) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
38
39
40
41
42
43
44
45
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 35

def fs_fileExists?(path)
  response = WebDAVFile.head_response(@connection, remote_uri(path), @headers)
  case response
  when Net::HTTPOK
    return true
  when Net::HTTPNotFound
    return false
  else
    raise Errno::EINVAL
  end
end

#fs_fileFile?(_path) ⇒ Boolean

Returns:

  • (Boolean)

Raises:

  • (NotImplementedError)


53
54
55
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 53

def fs_fileFile?(_path)
  raise NotImplementedError
end

#fs_fileMtime(_path) ⇒ Object

Raises:

  • (NotImplementedError)


73
74
75
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 73

def fs_fileMtime(_path)
  raise NotImplementedError
end

#fs_fileMtime_obj(_fobj) ⇒ Object

Raises:

  • (NotImplementedError)


85
86
87
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 85

def fs_fileMtime_obj(_fobj)
  raise NotImplementedError
end

#fs_fileOpen(path, mode = "r") ⇒ Object

Raises:

  • (Errno::EACCES)


89
90
91
92
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 89

def fs_fileOpen(path, mode = "r")
  raise Errno::EACCES unless mode == 'r'
  WebDAVFile.new(remote_uri(path), @dobj.http_options, @headers)
end

#fs_fileRead(fobj, len) ⇒ Object



98
99
100
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 98

def fs_fileRead(fobj, len)
  fobj.read(len)
end

#fs_fileSeek(fobj, offset, whence) ⇒ Object



94
95
96
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 94

def fs_fileSeek(fobj, offset, whence)
  fobj.seek(offset, whence)
end

#fs_fileSize(path) ⇒ Object



57
58
59
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 57

def fs_fileSize(path)
  WebDAVFile.file_size(remote_uri(path))
end

#fs_fileSize_obj(fobj) ⇒ Object



61
62
63
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 61

def fs_fileSize_obj(fobj)
  fobj.size
end

#fs_fileWrite(_fobj, _buf, _len) ⇒ Object

Raises:

  • (Errno::EACCES)


106
107
108
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 106

def fs_fileWrite(_fobj, _buf, _len)
  raise Errno::EACCES
end

#fs_initObject



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 9

def fs_init
  @fsType = "WebDAV"
  @guestOS = @dobj.guest_os

  @uri = URI(@dobj.uri.to_s)
  @headers = @dobj.headers || {}

  @connection = Net::HTTP.start(
    @uri.host,
    @uri.port,
    @dobj.http_options
  )
end

#fs_unmountObject



23
24
25
# File 'lib/fs/MiqFS/modules/WebDAV.rb', line 23

def fs_unmount
  @connection.finish
end