Home | Trees | Indices | Help |
---|
|
1 # 2 # Copyright (c) 2013, EMC Corporation 3 # All rights reserved. 4 # 5 # Redistribution and use in source and binary forms, with or without 6 # modification, are permitted provided that the following conditions are met: 7 # 8 # 1. Redistributions of source code must retain the above copyright notice, 9 # this list of conditions and the following disclaimer. 10 # 2. Redistributions in binary form must reproduce the above copyright notice, 11 # this list of conditions and the following disclaimer in the documentation 12 # and/or other materials provided with the distribution. 13 # 14 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 18 # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 19 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 20 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 22 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 23 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 24 # POSSIBILITY OF SUCH DAMAGE. 25 # 26 # Module Name: 27 # 28 # set.py 29 # 30 # Abstract: 31 # 32 # SMB2_SET_INFO command tests with SMB2_0_INFO_FILE type. 33 # 34 # Authors: Rafal Szczesniak (rafal.szczesniak@isilon.com) 35 # 36 37 import pike.model 38 import pike.smb2 39 import pike.nttime 40 import pike.test 41 import datetime 42 43 from pike.test import unittest 44 4510548 self.chan, self.tree = self.tree_connect() 49 return self.chan.create(self.tree, "test.txt", disposition=pike.smb2.FILE_SUPERSEDE).result()50 51 # Set timestamps and file attributes with FILE_BASIC_INFORMATION53 handle = self.open_file() 54 now = pike.nttime.NtTime(datetime.datetime.now()) 55 56 with self.chan.set_file_info(handle, pike.smb2.FileBasicInformation) as file_info: 57 file_info.last_write_time = now 58 file_info.last_access_time = now 59 60 with self.chan.set_file_info(handle, pike.smb2.FileBasicInformation) as file_info: 61 file_info.file_attributes = pike.smb2.FILE_ATTRIBUTE_READONLY 62 63 with self.chan.set_file_info(handle, pike.smb2.FileBasicInformation) as file_info: 64 file_info.file_attributes = pike.smb2.FILE_ATTRIBUTE_NORMAL 65 66 self.chan.close(handle)67 68 # Set file cursor position with FILE_POSITION_INFORMATION70 handle = self.open_file() 71 72 with self.chan.set_file_info(handle, pike.smb2.FilePositionInformation) as file_info: 73 file_info.current_byte_offset = 100L 74 75 self.chan.close(handle)76 77 # Set file mode with FILE_MODE_INFORMATION79 handle = self.open_file() 80 81 with self.chan.set_file_info(handle, pike.smb2.FileModeInformation) as file_info: 82 file_info.mode = pike.smb2.FILE_SEQUENTIAL_ONLY 83 84 self.chan.close(handle)85 86 # Set file name with FILE_RENAME_INFORMATION88 self.chan, self.tree = self.tree_connect() 89 handle = self.chan.create(self.tree, "test.txt", 90 disposition=pike.smb2.FILE_SUPERSEDE, 91 access=pike.smb2.DELETE).result() 92 93 with self.chan.set_file_info(handle, pike.smb2.FileRenameInformation) as file_info: 94 file_info.replace_if_exists = 1 95 file_info.file_name = "renamed.txt" 96 97 self.chan.close(handle) 98 99 # open the renamed file for delete and ensure that it exists 100 handle2 = self.chan.create(self.tree, "renamed.txt", 101 disposition=pike.smb2.FILE_OPEN, # fail if doesn't exist 102 access=pike.smb2.DELETE, 103 options=pike.smb2.FILE_DELETE_ON_CLOSE).result() 104 self.chan.close(handle2)
Home | Trees | Indices | Help |
---|
Generated by Epydoc 3.0.1 on Thu Jun 29 08:51:26 2017 | http://epydoc.sourceforge.net |