Promote script tests to classes in order to enforce the common testing pattern "setup-test-tear down"

This commit is contained in:
Travis Prescott 2016-04-20 16:14:24 -07:00
Родитель 55158f2478
Коммит 912a11582d
9 изменённых файлов: 1035 добавлений и 1253 удалений

Просмотреть файл

@ -37,6 +37,9 @@
<Compile Include="azure\cli\extensions\__init__.py" />
<Compile Include="azure\cli\main.py" />
<Compile Include="azure\cli\tests\test_add_resourcegroup_transform.py" />
<Compile Include="azure\cli\utils\command_test_script.py">
<SubType>Code</SubType>
</Compile>
<Compile Include="command_modules\azure-cli-resource\azure\cli\command_modules\resource\tests\test_api_check.py">
<SubType>Code</SubType>
</Compile>

Просмотреть файл

@ -0,0 +1,108 @@
from __future__ import print_function
import json
import os
import traceback
from six import StringIO
from azure.cli.main import main as cli
from azure.cli.parser import IncorrectUsageError
class CommandTestScript(object):
def __init__(self):
self._display = StringIO()
self._raw = StringIO()
self.display_result = ''
self.raw_result = ''
self.auto = True
self.fail = False
def set_up(self):
pass
def run_test(self):
try:
self.set_up()
self.test_body()
except Exception: #pylint: disable=broad-except
traceback.print_exc(file=self._display)
self.fail = True
finally:
self.tear_down()
self._tear_down()
def test_body(self):
raise NotImplementedError()
def tear_down(self):
pass
def _tear_down(self):
self.display_result = self._display.getvalue()
self.raw_result = self._raw.getvalue()
self._display.close()
self._raw.close()
def rec(self, command):
''' Run a command and save the output as part of the expected results. This will also
save the output to a display file so you can see the command, followed by its output
in order to determine if the output is acceptable. Invoking this command in a script
turns off the flag that signals the test is fully automatic. '''
self.auto = False
output = StringIO()
cli(command.split(), file=output)
result = output.getvalue().strip()
self._display.write('\n\n== {} ==\n\n{}'.format(command, result))
self._raw.write(result)
output.close()
return result
def run(self, command): #pylint: disable=no-self-use
''' Run a command without recording the output as part of expected results. Useful if you
need to run a command for branching logic or just to reset back to a known condition. '''
output = StringIO()
cli(command.split(), file=output)
result = output.getvalue().strip()
output.close()
return result
def test(self, command, checks):
''' Runs a command with the json output format and validates the input against the provided
checks. Multiple JSON properties can be submitted as a dictionary and are treated as an AND
condition. '''
def _check_json(source, checks):
for check in checks.keys():
if isinstance(checks[check], dict) and check in source:
_check_json(source[check], checks[check])
else:
assert source[check] == checks[check]
output = StringIO()
command += ' -o json'
cli(command.split(), file=output)
result = output.getvalue().strip()
self._raw.write(result)
if isinstance(checks, bool):
bool_val = result.lower() in ('yes', 'true', 't', '1')
assert bool_val == checks
elif isinstance(checks, dict):
json_val = json.loads(result)
_check_json(json_val, checks)
elif checks is None:
assert result is None or result == ''
else:
raise IncorrectUsageError('test only accepts a dictionary of json properties or ' + \
'a boolean value.')
def set_env(self, key, val): #pylint: disable=no-self-use
os.environ[key] = val
def pop_env(self, key): #pylint: disable=no-self-use
return os.environ.pop(key, None)
def print_(self, string):
''' Write free text to the display output only. This text will not be included in the
raw saved output and using this command does not flag a test as requiring manual
verification. '''
self._display.write('\n{}'.format(string))

Просмотреть файл

@ -17,49 +17,6 @@ import vcr
from azure.cli.main import main as cli
# SCRIPT METHODS
class CommandTestScriptRunner(object):
def __init__(self):
self.display = StringIO()
self.raw = StringIO()
def rec(self, command):
''' Run a command and save the output as part of the expected results. This will also
save the output to a display file so you can see the command, followed by its output
in order to determine if the output is acceptable. '''
output = StringIO()
cli(command.split(), file=output)
result = output.getvalue().strip()
self.display.write('\n\n== {} ==\n\n{}'.format(command, result))
self.raw.write('{}'.format(result))
output.close()
return result
def get(self, command): #pylint: disable=no-self-use
''' Run a command without recording the output as part of expected results. Useful if you
need to run a command for automated verification. '''
output = StringIO()
cli(command.split(), file=output)
result = output.getvalue().strip()
output.close()
return result
def set_env(self, key, val): #pylint: disable=no-self-use
os.environ[key] = val
def pop_env(self, key): #pylint: disable=no-self-use
return os.environ.pop(key, None)
def close(self):
self.display.close()
self.raw.close()
def write(self, string):
self.display.write('\n{}'.format(string))
self.raw.write(string)
class CommandTestGenerator(object):
FILTER_HEADERS = [
@ -139,10 +96,15 @@ class CommandTestGenerator(object):
cli(action.split(), file=io)
actual_result = io.getvalue()
display_result = actual_result
auto_validated = False
fail = False
else:
test_runner = action()
actual_result = test_runner.raw.getvalue()
display_result = test_runner.display.getvalue()
test_runner = action
test_runner.run_test()
actual_result = test_runner.raw_result
display_result = test_runner.display_result
auto_validated = test_runner.auto
fail = test_runner.fail
if expected is None:
expected_results = _get_expected_results_from_file(recording_dir)
header = '| RECORDED RESULT FOR {} |'.format(test_name)
@ -150,14 +112,19 @@ class CommandTestGenerator(object):
print(header, file=sys.stderr)
print('-' * len(header) + '\n', file=sys.stderr)
print(display_result, file=sys.stderr)
ans = input('Save result for \'{}\'? [Y/n]: '.format(test_name))
if ans and ans.lower()[0] == 'y':
if not auto_validated and not fail:
ans = input('Save result for \'{}\'? [Y/n]: '.format(test_name))
fail = False if ans and ans.lower()[0] == 'y' else True
if not fail:
print('*** SAVING TEST {} ***'.format(test_name), file=sys.stderr)
expected_results = _get_expected_results_from_file(recording_dir)
expected_results[test_name] = actual_result
expected = actual_result
_save_expected_results_file(recording_dir, expected_results)
else:
print('*** TEST {} FAILED ***'.format(test_name), file=sys.stderr)
_remove_expected_result(test_name, recording_dir)
expected = None
io.close()
self.assertEqual(actual_result, expected)

Просмотреть файл

@ -3,10 +3,11 @@
import collections
import os
import sys
from time import sleep
from six import StringIO
from azure.cli.utils.command_test_util import CommandTestScriptRunner
from azure.cli.utils.command_test_script import CommandTestScript
from azure.common import AzureHttpError
RESOURCE_GROUP_NAME = 'travistestresourcegroup'
@ -19,191 +20,234 @@ ENV_VAR = {
'AccountKey=blahblah').format(STORAGE_ACCOUNT_NAME)
}
def _get_connection_string(r):
out = r.get('storage account connection-string -g {} -n {}'
def _get_connection_string(runner):
out = runner.run('storage account connection-string -g {} -n {}'
.format(RESOURCE_GROUP_NAME, STORAGE_ACCOUNT_NAME))
connection_string = out.replace('Connection String : ', '')
r.set_env('AZURE_STORAGE_CONNECTION_STRING', connection_string)
runner.set_env('AZURE_STORAGE_CONNECTION_STRING', connection_string)
def storage_account_scenario():
account = STORAGE_ACCOUNT_NAME
rg = RESOURCE_GROUP_NAME
r = CommandTestScriptRunner()
r.rec('storage account check-name --name teststorageomega')
r.rec('storage account check-name --name {}'.format(account))
r.rec('storage account list')
r.rec('storage account show --resourcegroup {} --account-name {}'.format(rg, account))
r.rec('storage account usage')
r.rec('storage account connection-string -g {} --account-name {} --use-http'.format(rg, account))
r.rec('storage account keys list -g {} --account-name {}'.format(rg, account))
r.rec('storage account keys renew -g {} --account-name {}'.format(rg, account))
r.rec('storage account keys renew -g {} --account-name {} --key key2'.format(rg, account))
r.rec('storage account set -g {} -n {} --tags foo=bar;cat'.format(rg, account))
# TODO: This should work like other tag commands--no value to clear
r.rec('storage account set -g {} -n {} --tags none='.format(rg, account))
r.rec('storage account set -g {} -n {} --type Standard_GRS'.format(rg, account))
r.rec('storage account set -g {} -n {} --type Standard_LRS'.format(rg, account))
return r
class StorageAccountScenarioTest(CommandTestScript):
def storage_container_scenario():
container = 'testcontainer01'
proposed_lease_id = 'abcdabcd-abcd-abcd-abcd-abcdabcdabcd'
new_lease_id = 'dcbadcba-dcba-dcba-dcba-dcbadcbadcba'
date = '2016-04-08T12:00Z'
r = CommandTestScriptRunner()
_get_connection_string(r)
sas_token = r.get('storage account generate-sas --services b --resource-types sco --permission rwdl --expiry 2017-01-01T00:00Z')
r.set_env('AZURE_SAS_TOKEN', sas_token)
r.set_env('AZURE_STORAGE_ACCOUNT', STORAGE_ACCOUNT_NAME)
r.pop_env('AZURE_STORAGE_CONNECTION_STRING')
r.get('storage container delete --container-name {}'.format(container))
if r.get('storage container exists --container-name {}'.format(container)) == 'False':
try:
# fail fast if the container is being deleted. Wait some time and rerecord.
r.rec('storage container create --container-name {} --fail-on-exist'.format(container))
except AzureHttpError as ex:
return(ex)
r.rec('storage container show --container-name {}'.format(container))
r.rec('storage container list')
# TODO: After a successful create--this command should not fail!!!
#if cmd('storage container exists --container-name {}'.format(container)) != 'True':
# raise FileNotFoundError('Container not found after successful create command!')
r.rec('storage container metadata set -c {} --metadata foo=bar;moo=bak;'.format(container))
r.rec('storage container metadata get -c {}'.format(container))
r.rec('storage container metadata set -c {}'.format(container)) # reset metadata
r.rec('storage container metadata get -c {}'.format(container))
r.rec('storage container lease acquire --lease-duration 60 -c {} --if-modified-since {} --proposed-lease-id {}'.format(container, date, proposed_lease_id))
r.rec('storage container show --container-name {}'.format(container))
def __init__(self):
super(StorageAccountScenarioTest, self).__init__()
def set_up(self):
pass
def test_body(self):
account = STORAGE_ACCOUNT_NAME
rg = RESOURCE_GROUP_NAME
s = self
s.test('storage account check-name --name teststorageomega', {'nameAvailable': True})
s.test('storage account check-name --name {}'.format(account),
{'nameAvailable': False, 'reason': 'AlreadyExists'})
s.rec('storage account list -g {}'.format(rg))
s.test('storage account show --resourcegroup {} --account-name {}'.format(rg, account),
{'name': account, 'accountType': 'Standard_LRS', 'location': 'westus', 'resourceGroup': rg})
s.rec('storage account usage')
s.rec('storage account connection-string -g {} --account-name {} --use-http'.format(rg, account))
s.rec('storage account keys list -g {} --account-name {}'.format(rg, account))
s.rec('storage account keys renew -g {} --account-name {}'.format(rg, account))
s.rec('storage account keys renew -g {} --account-name {} --key key2'.format(rg, account))
s.test('storage account set -g {} -n {} --tags foo=bar;cat'.format(rg, account),
{'tags': {'cat':'', 'foo':'bar'}})
# TODO: This should work like other tag commands--no value to clear
s.test('storage account set -g {} -n {} --tags none='.format(rg, account),
{'tags': {'none': ''}})
s.test('storage account set -g {} -n {} --type Standard_GRS'.format(rg, account),
{'accountType': 'Standard_GRS'})
s.run('storage account set -g {} -n {} --type Standard_LRS'.format(rg, account))
def tear_down(self):
pass
class StorageBlobScenarioTest(CommandTestScript):
def __init__(self):
super(StorageBlobScenarioTest, self).__init__()
_storage_blob_scenario(container, r)
def set_up(self):
self.container = 'testcontainer01'
self.blob = 'testblob1'
self.rg = RESOURCE_GROUP_NAME
self.proposed_lease_id = 'abcdabcd-abcd-abcd-abcd-abcdabcdabcd'
self.new_lease_id = 'dcbadcba-dcba-dcba-dcba-dcbadcbadcba'
self.dest_file = os.path.join(TEST_DIR, 'download-blob.rst')
self.date = '2016-04-08T12:00Z'
_get_connection_string(self)
sas_token = self.run('storage account generate-sas --services b --resource-types sco --permission rwdl --expiry 2017-01-01T00:00Z')
self.set_env('AZURE_SAS_TOKEN', sas_token)
self.set_env('AZURE_STORAGE_ACCOUNT', STORAGE_ACCOUNT_NAME)
self.pop_env('AZURE_STORAGE_CONNECTION_STRING')
self.run('storage container delete --container-name {}'.format(self.container))
if self.run('storage container exists --container-name {}'.format(self.container)) == 'True':
raise RuntimeError('Failed to delete already pre-existing container {}. Unable to continue test.'.format(self.container))
def _storage_blob_scenario(self):
s = self
container = s.container
blob = s.blob
dest_file = s.dest_file
if s.run('storage blob exists -b {} -c {}'.format(blob, container)) == 'True':
s.run('storage blob delete --container-name {} --blob-name {}'.format(container, blob))
if s.run('storage blob exists -b {} -c {}'.format(blob, container)) == 'False':
s.run('storage blob upload-block-blob -b {} -c {} --upload-from {}'.format(blob, container, os.path.join(TEST_DIR, 'testfile.rst')))
s.run('storage blob download -b {} -c {} --download-to {}'.format(blob, container, dest_file))
if os.path.isfile(dest_file):
os.remove(dest_file)
else:
raise RuntimeError('Download failed. Test failed!')
s.rec('storage blob exists -b {} -c {}'.format(blob, container))
s.rec('storage blob list --container-name {}'.format(container))
s.rec('storage blob properties get --container-name {} --blob-name {}'.format(container, blob))
s.rec('storage blob delete --container-name {} --blob-name {}'.format(container, blob))
s.test('storage blob exists -b {} -c {}'.format(blob, container), False)
else:
s.print_('Failed to delete already existing blob {}. Unable to continue test.'.format(container))
def test_body(self):
s = self
container = s.container
rg = s.rg
proposed_lease_id = s.proposed_lease_id
new_lease_id = s.new_lease_id
date = s.date
s.run('storage container create --container-name {} --fail-on-exist'.format(container))
s.test('storage container show --container-name {}'.format(container), {'name': container})
s.rec('storage container list')
s.run('storage container metadata set -c {} --metadata foo=bar;moo=bak;'.format(container))
s.test('storage container metadata get -c {}'.format(container), {'foo': 'bar', 'moo': 'bak'})
s.run('storage container metadata set -c {}'.format(container)) # reset metadata
s.test('storage container metadata get -c {}'.format(container), None)
# TODO: Because 'exists' isn't working... blob scenarios are failing...
#s._storage_blob_scenario()
# test lease operations
r.rec('storage container lease change --container-name {} --lease-id {} --proposed-lease-id {}'.format(container, proposed_lease_id, new_lease_id))
r.rec('storage container lease renew --container-name {} --lease-id {}'.format(container, new_lease_id))
r.rec('storage container show --container-name {}'.format(container))
r.rec('storage container lease break --container-name {} --lease-break-period 30'.format(container))
r.rec('storage container show --container-name {}'.format(container))
r.rec('storage container lease release --container-name {} --lease-id {}'.format(container, new_lease_id))
r.rec('storage container show --container-name {}'.format(container))
s.run('storage container lease acquire --lease-duration 60 -c {} --if-modified-since {} --proposed-lease-id {}'.format(container, date, proposed_lease_id))
s.test('storage container show --container-name {}'.format(container),
{'properties': {'lease': {'duration': 'fixed', 'state': 'leased', 'status': 'locked'}}})
s.run('storage container lease change --container-name {} --lease-id {} --proposed-lease-id {}'.format(container, proposed_lease_id, new_lease_id))
s.run('storage container lease renew --container-name {} --lease-id {}'.format(container, new_lease_id))
s.test('storage container show --container-name {}'.format(container),
{'properties': {'lease': {'duration': 'fixed', 'state': 'leased', 'status': 'locked'}}})
s.run('storage container lease break --container-name {} --lease-break-period 30'.format(container))
s.test('storage container show --container-name {}'.format(container),
{'properties': {'lease': {'duration': None, 'state': 'breaking', 'status': 'locked'}}})
s.run('storage container lease release --container-name {} --lease-id {}'.format(container, new_lease_id))
s.test('storage container show --container-name {}'.format(container),
{'properties': {'lease': {'duration': None, 'state': 'available', 'status': 'unlocked'}}})
# TODO: After a successful create--this command should not fail!!!
#s.test('storage container exists --container-name {}'.format(container), True)
# verify delete operation
r.rec('storage container delete --container-name {} --fail-not-exist'.format(container))
r.rec('storage container exists --container-name {}'.format(container))
else:
r.write('Failed to delete already existing container {}. Unable to continue test.'.format(container))
return r
s.run('storage container delete --container-name {} --fail-not-exist'.format(container))
s.test('storage container exists --container-name {}'.format(container), False)
def _storage_blob_scenario(container, r):
blob = "testblob1"
dest_file = os.path.join(TEST_DIR, 'download-blob.rst')
r = CommandTestScriptRunner()
_get_connection_string(r)
if r.get('storage blob exists -b {} -c {}'.format(blob, container)) == 'True':
r.get('storage blob delete --container-name {} --blob-name {}'.format(container, blob))
if r.get('storage blob exists -b {} -c {}'.format(blob, container)) == 'False':
r.rec('storage blob upload-block-blob -b {} -c {} --upload-from {}'.format(blob, container, os.path.join(TEST_DIR, 'testfile.rst')))
r.rec('storage blob download -b {} -c {} --download-to {}'.format(blob, container, dest_file))
def tear_down(self):
self.run('storage container delete --container-name {}'.format(self.container))
class StorageFileScenarioTest(CommandTestScript):
def __init__(self):
super(StorageFileScenarioTest, self).__init__()
def set_up(self):
self.share1 = 'testshare01'
self.share2 = 'testshare02'
_get_connection_string(self)
self.run('storage share delete --share-name {}'.format(self.share1))
self.run('storage share delete --share-name {}'.format(self.share2))
def _storage_directory_scenario(self, share):
s = self
dir = 'testdir01'
s.test('storage directory create --share-name {} --directory-name {} --fail-on-exist'.format(share, dir), True)
s.rec('storage directory exists --share-name {} --directory-name {}'.format(share, dir))
s.run('storage directory metadata set --share-name {} --directory-name {} --metadata a=b;c=d'.format(share, dir))
s.test('storage directory metadata get --share-name {} --directory-name {}'.format(share, dir),
{'a': 'b', 'c': 'd'})
s.run('storage directory metadata set --share-name {} --directory-name {}'.format(share, dir))
s.test('storage directory metadata get --share-name {} --directory-name {}'.format(share, dir), None)
s._storage_file_in_subdir_scenario(share, dir)
s.test('storage directory delete --share-name {} --directory-name {} --fail-not-exist'.format(share, dir), True)
s.test('storage directory exists --share-name {} --directory-name {}'.format(share, dir), False)
# verify a directory can be created with metadata and then delete
dir = 'testdir02'
s.test('storage directory create --share-name {} --directory-name {} --fail-on-exist --metadata foo=bar;cat=hat'.format(share, dir), True)
s.test('storage directory metadata get --share-name {} --directory-name {}'.format(share, dir),
{'cat': 'hat', 'foo': 'bar'})
s.test('storage directory delete --share-name {} --directory-name {} --fail-not-exist'.format(share, dir), True)
def _storage_file_scenario(self, share):
source_file = os.path.join(TEST_DIR, 'testfile.rst')
dest_file = os.path.join(TEST_DIR, 'download_test.rst')
filename = 'testfile.rst'
s = self
s.run('storage file upload --share-name {} --local-file-name {} --file-name {}'.format(share, source_file, filename))
#TODO: Exists commands!!!
#s.test('storage file exists --share-name {} --file-name {}'.format(share, filename), True)
if os.path.isfile(dest_file):
os.remove(dest_file)
s.run('storage file download --share-name {} --file-name {} --local-file-name {}'.format(share, filename, dest_file))
if os.path.isfile(dest_file):
os.remove(dest_file)
else:
r.write('Download failed. Test failed!')
r.rec('storage blob exists -b {} -c {}'.format(blob, container))
r.rec('storage blob list --container-name {}'.format(container))
r.rec('storage blob properties get --container-name {} --blob-name {}'.format(container, blob))
r.rec('storage blob delete --container-name {} --blob-name {}'.format(container, blob))
r.rec('storage blob exists -b {} -c {}'.format(blob, container))
else:
r.write('Failed to delete already existing blob {}. Unable to continue test.'.format(container))
s.print_('\nDownload failed. Test failed!')
s.rec('storage share contents --share-name {}'.format(share))
s.run('storage file delete --share-name {} --file-name {}'.format(share, filename))
s.test('storage file exists --share-name {} --file-name {}'.format(share, filename), False)
def storage_share_scenario():
share1 = 'testshare01'
share2 = 'testshare02'
r = CommandTestScriptRunner()
_get_connection_string(r)
def _storage_file_in_subdir_scenario(self, share, dir):
source_file = os.path.join(TEST_DIR, 'testfile.rst')
dest_file = os.path.join(TEST_DIR, 'download_test.rst')
filename = 'testfile.rst'
s = self
s.run('storage file upload --share-name {} --directory-name {} --local-file-name {} --file-name {}'.format(share, dir, source_file, filename))
#TODO: Storage file exists
#s.test('storage file exists --share-name {} --directory-name {} --file-name {}'.format(share, dir, filename), True)
if os.path.isfile(dest_file):
os.remove(dest_file)
s.run('storage file download --share-name {} --directory-name {} --file-name {} --local-file-name {}'.format(share, dir, filename, dest_file))
if os.path.isfile(dest_file):
os.remove(dest_file)
else:
io.print_('\nDownload failed. Test failed!')
s.rec('storage share contents --share-name {} --directory-name {}'.format(share, dir))
s.run('storage file delete --share-name {} --directory-name {} --file-name {}'.format(share, dir, filename))
s.test('storage file exists --share-name {} --file-name {}'.format(share, filename), False)
# setup - do not record
r.get('storage share delete --share-name {}'.format(share1))
r.get('storage share delete --share-name {}'.format(share2))
def test_body(self):
s = self
share1 = s.share1
share2 = s.share2
s.test('storage share create --share-name {} --fail-on-exist'.format(share1), True)
s.test('storage share create --share-name {} --fail-on-exist --metadata foo=bar;cat=hat'.format(share2), True)
# TODO: exists command should not fail after share is created!
#s.test('storage share exists --share-name {}'.format(share1), True)
s.test('storage share metadata get --share-name {}'.format(share2), {'cat': 'hat', 'foo': 'bar'})
# TODO: Would need to enable behavior if a dictionary contains a list...
s.rec('storage share list')
try:
r.rec('storage share create --share-name {} --fail-on-exist'.format(share1))
r.rec('storage share create --share-name {} --fail-on-exist --metadata foo=bar;cat=hat'.format(share2))
except AzureHttpError as ex:
return(ex)
r.rec('storage share exists --share-name {}'.format(share1))
r.rec('storage share metadata get --share-name {}'.format(share2))
r.rec('storage share list')
# verify metadata can be set, queried, and cleared
s.run('storage share metadata set --share-name {} --metadata a=b;c=d'.format(share1))
s.test('storage share metadata get --share-name {}'.format(share1), {'a': 'b', 'c': 'd'})
s.run('storage share metadata set --share-name {}'.format(share1))
s.test('storage share metadata get --share-name {}'.format(share1), None)
# verify metadata can be set, queried, and cleared
r.rec('storage share metadata set --share-name {} --metadata a=b;c=d'.format(share1))
r.rec('storage share metadata get --share-name {}'.format(share1))
r.rec('storage share metadata set --share-name {}'.format(share1))
r.rec('storage share metadata get --share-name {}'.format(share1))
self._storage_file_scenario(share1)
self._storage_directory_scenario(share1)
_storage_file_scenario(share1, r)
_storage_directory_scenario(share1, r)
r.rec('storage share delete --share-name {} --fail-not-exist'.format(share1))
r.rec('storage share delete --share-name {} --fail-not-exist'.format(share2))
return r
def _storage_directory_scenario(share, r):
dir = 'testdir01'
r.rec('storage directory create --share-name {} --directory-name {} --fail-on-exist'.format(share, dir))
r.rec('storage directory exists --share-name {} --directory-name {}'.format(share, dir))
r.rec('storage directory metadata set --share-name {} --directory-name {} --metadata a=b;c=d'.format(share, dir))
r.rec('storage directory metadata get --share-name {} --directory-name {}'.format(share, dir))
r.rec('storage directory metadata set --share-name {} --directory-name {}'.format(share, dir))
r.rec('storage directory metadata get --share-name {} --directory-name {}'.format(share, dir))
_storage_file_in_subdir_scenario(share, dir, r)
r.rec('storage directory delete --share-name {} --directory-name {} --fail-not-exist'.format(share, dir))
r.rec('storage directory exists --share-name {} --directory-name {}'.format(share, dir))
# verify a directory can be created with metadata and then delete
dir = 'testdir02'
r.rec('storage directory create --share-name {} --directory-name {} --fail-on-exist --metadata foo=bar;cat=hat'.format(share, dir))
r.rec('storage directory metadata get --share-name {} --directory-name {}'.format(share, dir))
r.rec('storage directory delete --share-name {} --directory-name {} --fail-not-exist'.format(share, dir))
def _storage_file_scenario(share, r):
source_file = os.path.join(TEST_DIR, 'testfile.rst')
dest_file = os.path.join(TEST_DIR, 'download_test.rst')
filename = 'testfile.rst'
r.rec('storage file upload --share-name {} --local-file-name {} --file-name {}'.format(share, source_file, filename))
r.rec('storage file exists --share-name {} --file-name {}'.format(share, filename))
if os.path.isfile(dest_file):
os.remove(dest_file)
r.rec('storage file download --share-name {} --file-name {} --local-file-name {}'.format(share, filename, dest_file))
if os.path.isfile(dest_file):
os.remove(dest_file)
else:
r.write('\nDownload failed. Test failed!')
r.rec('storage share contents --share-name {}'.format(share))
r.rec('storage file delete --share-name {} --file-name {}'.format(share, filename))
r.rec('storage file exists --share-name {} --file-name {}'.format(share, filename))
def _storage_file_in_subdir_scenario(share, dir, r):
source_file = os.path.join(TEST_DIR, 'testfile.rst')
dest_file = os.path.join(TEST_DIR, 'download_test.rst')
filename = 'testfile.rst'
r.rec('storage file upload --share-name {} --directory-name {} --local-file-name {} --file-name {}'.format(share, dir, source_file, filename))
r.rec('storage file exists --share-name {} --directory-name {} --file-name {}'.format(share, dir, filename))
if os.path.isfile(dest_file):
os.remove(dest_file)
r.rec('storage file download --share-name {} --directory-name {} --file-name {} --local-file-name {}'.format(share, dir, filename, dest_file))
if os.path.isfile(dest_file):
os.remove(dest_file)
else:
io.write('\nDownload failed. Test failed!')
r.rec('storage share contents --share-name {} --directory-name {}'.format(share, dir))
r.rec('storage file delete --share-name {} --directory-name {} --file-name {}'.format(share, dir, filename))
r.rec('storage file exists --share-name {} --file-name {}'.format(share, filename))
def tear_down(self):
self.run('storage share delete --share-name {} --fail-not-exist'.format(self.share1))
self.run('storage share delete --share-name {} --fail-not-exist'.format(self.share2))
TEST_DEF = [
# STORAGE ACCOUNT TESTS
{
'test_name': 'storage_account',
'script': storage_account_scenario
'script': StorageAccountScenarioTest()
},
# TODO: Enable when item #117262541 is complete
#{
@ -216,12 +260,12 @@ TEST_DEF = [
},
# STORAGE CONTAINER TESTS
{
'test_name': 'storage_container',
'script': storage_container_scenario
'test_name': 'storage_blob',
'script': StorageBlobScenarioTest()
},
# STORAGE SHARE TESTS
{
'test_name': 'storage_share',
'script': storage_share_scenario
'test_name': 'storage_file',
'script': StorageFileScenarioTest()
}
]

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -24,7 +24,7 @@ interactions:
Cache-Control: [no-cache]
Content-Encoding: [gzip]
Content-Type: [application/json]
Date: ['Tue, 19 Apr 2016 22:36:41 GMT']
Date: ['Wed, 20 Apr 2016 23:06:20 GMT']
Expires: ['-1']
Pragma: [no-cache]
Server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
@ -57,7 +57,7 @@ interactions:
Cache-Control: [no-cache]
Content-Encoding: [gzip]
Content-Type: [application/json]
Date: ['Tue, 19 Apr 2016 22:36:42 GMT']
Date: ['Wed, 20 Apr 2016 23:06:20 GMT']
Expires: ['-1']
Pragma: [no-cache]
Server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
@ -75,64 +75,26 @@ interactions:
Azure-SDK-For-Python AZURECLI_0.0.32]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/storageAccounts?api-version=2015-06-15
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/travistestresourcegroup/providers/Microsoft.Storage/storageAccounts?api-version=2015-06-15
response:
body:
string: !!binary |
H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcpl
VmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/In7xR5dZ
uc4/evS9X/xRMfvo0Ud3m/WkmdbFqi2qZXN3Z7J7/un+g93t3cn5zvb+bJZtZ/n03vZ08nDvwd75
zsP7D3fu1nlTretp/nldrVfN3Vl+nq3LdjtbrcpimgFQsWyKi3nbbE/zZVtTj83dVV1dFrO8bu5+
UUzrqqnO2/Hrtqqzi/xuIz+Pp9NqvWybuwTJQNCv9nZ2P/1o9FFZCXxC3EKmj5fZgob00eBr1Pcq
r9sibz569Is/yqSbN9crvPS6zZazrJ79/s9fvaam0zrnHt4UDBIAtnfu0f/e7N17tPPg0d7O+ODe
g08f7B/8FLVe1cUiq69Pl7NVVRDmAD8pqwm9OW/bVfPo7sBYxmg1nlZ1Pr4qlrPqqhkv8/YugTwv
SnR8w+toFX39F61zTO9N73OzKIA2m9wGAW4WAfBLLFGex+eK5uKyaOjzYnlBtG/R1+v1dJrns3xG
3zf02br58vylQKFvs8usKNEdgLfZBaiM32T+buQmeuub4/Xri8vFBX59L36elsXOwe6nk/18N9u7
v/tgN8t29+8/uEfD9Tj6Km9o5PSZsvOGt6jzD2XoB2929h/tPHy09+n43oOH9+99+uCWDD2E1q1Z
ehAA2kUBMLfeBgI3jIJomYFuAYIbRkAQxylxPMa2U0YT8v9hriZitHmZT/LldF5fvC9r3/v0/s69
hw8eHtzbffBgb3/n4NN9KN3NnD3wEnX9gYx9b/fN7sNHOweP7u2PP93f273/6cPbM3YMq/fh6+j7
aBZ9n7n1FgC4XRRCywx0MwRuF4FADKeE+f8fU39tVf3p/fP9873JzsOdbG8vm37KeoGGu5mhh96i
zj+Qo0VV7x482t8ZPzx4uLO/d1vfYwit92HpOAC0iwJgXr0NBG4YBdEyA90CBDeMgCCOU+L8iKsZ
A5Aw39vb230wO5ju3j+YzB7mTEIa7mauHnqLOv9GuHr//qP9/THx9P379+7dnqujaL0PV8cBoF0U
ADPrbSBwwyiIlhnoFiC4YQQEcZwS5/9/XD0t123T7u/s7H36nnyN9/Z29u59Sl/RMDdyc6ctdXQz
D38+zMO723s7iAr3iI0/He/t3f9092D31jzsI/MenBu8hm+jrzEbDr/HX0dfbJkhBl/kryMvEt/o
oL8Wb+bTCtT2X84zfXkT47pvXxsQwfeE1v87GHv3Hn3FZHg/xt5/eLBHX9FAb2Zs15Y6+lDG3n2z
s/fo3h4FiOP9nd379+6/J2MrMu/L2OY1fBt9jTl3+D3+Ovpiywwx+CJ/HXmR+EYH7fGmnQAi9M9v
xn6wf+/eva/B2J8e7Ow9pK9ooDcytteWOvpQxmaNvbv76D55HRQa7u3cfy/GNsi8J2Pb1/Bt9DXm
3OH3+Ovoiy0zxOCL/HXkReIbHbTHm3YCiNA/vxn74FPKCX0Nxn6wv7cPS0kDvZGxvbbU0Ycy9j7c
6Xs7HCQS4IOHt8/n+ci8J2Pb1/Bt9DXm3OH3+Ovoiy0zxOCL/HXkReIbHbTHm3YCiNA/vxl77+HX
09gPHj7YOaCvaKA3M7ZrSx19KGOzxt759NF9SlQfUO7j4e3zeT4y78vY5jV8G32NOXf4Pf46+mLL
DDH4In8deZH4Rgft8aadACL0z1fGnhENsuXbarulX3bfi7fNq7t7SGpsYOywIXVxM1dvyH4QVz9A
lpr+R9mPA1p/2P90/5Zc7WFya5b238FX0XeYYQde4u+ib7XMBPG3+LvIW8QoOlCPGS3FibibOZk+
AzvGmJUg/xwzYz69XFAe5+DhvYOD/d2He/ffcz2l936T0Zg9zqTe2jkkN2sKfKUMGn+Peg4ZFZ28
B6Pe2967/2aPnIqDR3sH43v7u3uf3r9tmi6C0a0ZNvYumkTfZea84WVuE327ZcbZ/Da3ibxNTKaE
8Bi5O0E0B/8f5uf6/RQq/X2RgXdoYB7TTvNlW2cly7cyrN+SeriZTV8db/ATKJ98/83OzqO9+492
9scPKJ/84N7eLRnVYnJr9nRv4IvoG8xw0Vf4m+g7Lc957B3+JvIOcYUO0GNAn9hE2c3MZ2z6rQi0
bZsPk4qHd8PL3Cb6douB3vA2t4m8TcSwjTxyQBTXzR4B3yRp7tv/t7o5NKc0lfBxzBfvvw6Et/Uz
lbIdEMaTVGuGVUwH3qBOb5bYDYZlf3vn0zd7u+T+kG2hFOPOg4e7t83ExFAa5kdI6E0vo030ZWbU
m97mRtHXmVNvep0bRV4nPlNieMxsp4cmgLiBPhwSbPoM3BzjdYKsvPwRAaavqP15VdEvk6zmb2Ui
b+Qnavv/Mv6OwLi3s7tPA9zE48NvUecfxOf3tnfJgaL4lf63N37w8GB/59Pb2qUhtG7P60MA0C4K
gFn5NhC4YRREyyx2CxDcMAKC+E+J87PI98tqiTf5I5nNG5mL2n5zzP6ebtXlfKYf3V8u7uf7+9Pz
+28/fUvj3cDWwy9R1x/E1fvbu7tv9vYekQK/tzO+d5+Cgp3bhgUDWN2aqYfeR7Po+8yqtwDA7aIQ
WuaemyFwuwgEYjIlzM8iR8+KZlVm1y9k7pWRlIG4nUzvjbxGbf9fwObz/evrfH9xVV9ctODYW7F5
9yXq+kPZfB/K+/7uo90DStPsPNi/f9s0zQBWX4PNw/fRLPo+s+8tAHC7KISWWepmCNwuAoGYTAnz
Izbf1LVH2F/0i7IfPGg/ffd2Vt9HuvxWbN59ibr+QDan2JlSkbR+tP9gvLfz8N7DhwfvzeYBVl+D
zcP30Sz6PrPvLQBwuyiEllnqZgjcLgKBmEwJ8yM239S1R9h3+/P9KlvXP8gWP70gItyKzbsvUdcf
zuakzXd2H+08GD+kpf8HDz99bzYPsPoabB6+j2bR95l9bwGA20UhtMxSN0PgdhEIxGRKmB+x+aau
fcLOl2/z/WXx9tPrc/gft2PzzkvU9QeyuTgt9/awYvrp3t7Bzv77a/MAq6/D5sH7aBZ9n9n3FgC4
XRRCyyx1MwRuF4FATKaE+fnG5u8IpRZx+cXlYlZN3+b1pw927r8X6zOIppW3H9x78JBI4jG9ZF7p
M2X6WHPq7oPYfW977+GbXQpFaZHq4ZgGu3P/wc4t2b2Hz60Zvf8mGkTfZNbd+Cq3iL7bMiNtepdb
RN4lplICeGxt54OI/g2wNX6TibqRU+itn03G3Xt4//10NoMwhDy4v7NLg74t42pz6u4DGXf34M3u
p4927j+6/3C8/+n9B7ufPvw6jAt8vh7j8ptoEH2T2XLjq9wi+m7LrLLpXW4ReZeYSgnw/2fGzd+1
+RLjuP9wf+frcC5/+K7de7gHJepY15EqZF3TXtpThx/Iu6R0dw7Au3t7492DBzTk22a1+wi9L/P6
r6JF9FXmzc3vcpPoyy0zzMaXuUnkZeItJcLPC/59uHPwtVwG/vBdu//pvXs0bI9/qcN2DnplTZHR
V1E21teo3w9i493tPUpjk6tMuY+98f7Bzt7Dna/HxkDoa7Ixv4oW0VeZRze/y02iL7fMNxtf5iaR
l4nFlAgeG3fnhuj/w+bm7/+S5P8BMz52RcNEAAA=
zsP7D3fu1nlTretp/nldrVfN3bbOLoumzZvWfHGBL+6u6uqymOV1c/eLYlpXTXXejl+3VZ1d5Hcb
+Xk8nVbrZUsw6G39LJPPdvY+Gn1UVtMMiBGiV9Ri3dBny2xB+H808AZ1usrrtsibjx794o/0mzfX
K7zyus2Ws6ye/f7PX72mptM6Z+BvCga4t7P76fbO/vbOp2/2dh/t7z/aPxjv7+w8eLh7/6eo9aou
Fll9fbqcraqCUAb4SVlN6M15266aR3ejgxijzXha1fn4qljOqqtmvMzbuwTwvCjR7caX0Sb68i9a
55jFzW9zo+jrbTa5uXNuFHn9l1hiPI9MD00AcQN9WCwviOAtunm9nk7zfJbP6PuGPls3X56/FBD0
bXaZFSX6AuQ2u2DSEmD6itqfVxX9Mslq/lYm8kZ+orb/L+PvCIx7O7v7NMBNPD78FnX+QXx+b3v3
/pu9e4926H974wcPD/Z3Pt27LZ8PoHV7Xh8CgHZRAMzKt4HADaMgWmaxW4DghhEQxH9KnJ9Fvl9W
S7zJH8ls3shcH/2S7/+S5P8BC9XYt9kFAAA=
headers:
Cache-Control: [no-cache]
Content-Encoding: [gzip]
Content-Type: [application/json]
Date: ['Tue, 19 Apr 2016 22:36:42 GMT']
Date: ['Wed, 20 Apr 2016 23:06:21 GMT']
Expires: ['-1']
Pragma: [no-cache]
Server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
@ -167,7 +129,7 @@ interactions:
Cache-Control: [no-cache]
Content-Encoding: [gzip]
Content-Type: [application/json]
Date: ['Tue, 19 Apr 2016 22:36:42 GMT']
Date: ['Wed, 20 Apr 2016 23:06:21 GMT']
Expires: ['-1']
Pragma: [no-cache]
Server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
@ -198,7 +160,7 @@ interactions:
Cache-Control: [no-cache]
Content-Encoding: [gzip]
Content-Type: [application/json]
Date: ['Tue, 19 Apr 2016 22:36:43 GMT']
Date: ['Wed, 20 Apr 2016 23:06:21 GMT']
Expires: ['-1']
Pragma: [no-cache]
Server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
@ -223,21 +185,21 @@ interactions:
string: !!binary |
H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcpl
VmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/In7xR2/z
692PHn306vnx/eLbeTHZ/c6z/d/ry7fz9u7idHZ/8tN7n5789On173O5t/8TB9P9L69/+nx6tvz0
wewXTefPv/pF1Rd3Zz9ZXqw+f3L2/NOfyHeyB+vqpx5cHhcv9s8+//Lqs88+GqGHPepht3x1/6e/
KOcPr78ov/1658uHJ2ef3P3p0x+sX3537+XBV9fz1ZvvXP8+3337+xw/ebK/evj7/KL85OVBtrr7
7vXdWfb298kX3/29vvPdp7/Xu6uf2H/yi35R/fv8Xr/P7ovqgnr4Jcn/Ax1NgVXGAAAA
692PHn30nbev2ounP523v+jT4nr6LPu9Tvc/ye9dPXn4uvi9z48vv2ieNl/e/70/Pfj02+evi0+/
c3X8i8qvXn76E2+Xz7/9U5+8/fT5/Bfdr37R2er3Xizuf/X571W9/eSnvmpPrj777KMRetijHuov
7r2rn//e69ffne58+8m7n3qzW85/+nh6/8v7kzdX7d7r5+3Lz3/6we+THZ9dHCze/F6/6P7yJ9rd
z5/v1T/5E0X+dvXqxd3ZT999/fsc/97rhw9+8OXT77zdX+08O6Yefkny/wDkJfZqxgAAAA==
headers:
Cache-Control: [no-cache]
Content-Encoding: [gzip]
Content-Type: [application/json]
Date: ['Tue, 19 Apr 2016 22:36:44 GMT']
Date: ['Wed, 20 Apr 2016 23:06:22 GMT']
Expires: ['-1']
Pragma: [no-cache]
Server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
Vary: [Accept-Encoding]
x-ms-ratelimit-remaining-subscription-writes: ['1196']
x-ms-ratelimit-remaining-subscription-writes: ['1199']
status: {code: 200, message: OK}
- request:
body: null
@ -257,21 +219,21 @@ interactions:
string: !!binary |
H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcpl
VmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/In7xR2/z
692PHn306vnx/eLbeTHZ/c6z/d/ry7fz9u7idHZ/8tN7n5789On173O5t/8TB9P9L69/+nx6tvz0
wewXTefPv/pF1Rd3Zz9ZXqw+f3L2/NOfyHeyB+vqpx5cHhcv9s8+//Lqs88+GqGHPepht3x1/6e/
KOcPr78ov/1658uHJ2ef3P3p0x+sX3537+XBV9fz1ZvvXP8+3337+xw/ebK/evj7/KL85OVBtrr7
7vXdWfb298kX3/29vvPdp7/Xu6uf2H/yi35R/fv8Xr/P7ovqgnr4Jcn/Ax1NgVXGAAAA
692PHn30nbev2ounP523v+jT4nr6LPu9Tvc/ye9dPXn4uvi9z48vv2ieNl/e/70/Pfj02+evi0+/
c3X8i8qvXn76E2+Xz7/9U5+8/fT5/Bfdr37R2er3Xizuf/X571W9/eSnvmpPrj777KMRetijHuov
7r2rn//e69ffne58+8m7n3qzW85/+nh6/8v7kzdX7d7r5+3Lz3/6we+THZ9dHCze/F6/6P7yJ9rd
z5/v1T/5E0X+dvXqxd3ZT999/fsc/97rhw9+8OXT77zdX+08O6Yefkny/wDkJfZqxgAAAA==
headers:
Cache-Control: [no-cache]
Content-Encoding: [gzip]
Content-Type: [application/json]
Date: ['Tue, 19 Apr 2016 22:36:44 GMT']
Date: ['Wed, 20 Apr 2016 23:06:22 GMT']
Expires: ['-1']
Pragma: [no-cache]
Server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
Vary: [Accept-Encoding]
x-ms-ratelimit-remaining-subscription-writes: ['1198']
x-ms-ratelimit-remaining-subscription-writes: ['1199']
status: {code: 200, message: OK}
- request:
body: !!binary |
@ -292,50 +254,15 @@ interactions:
string: !!binary |
H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcpl
VmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/In7xR2/z
692PHn300xdNM2l/n7vPFteLu8/2Xj5ty89PXry+Pi+u5uWk+XLyE/c+3X9x8fTsfH/96s0ny/rF
/RefL9/t7K/2n/zen88mrw/e/qKfWj09Of193n777puf/qnzV6/nb64+++yjEXrYox52y1f3f/qL
cv7w+ovy2693vnx4cvbJ3Z8+/cH65Xf3Xh58dT1fvfnO9e/z3be/z/GTJ/urh7/PL8pPXh5kq7vv
Xt+dZW9/n3zx3d/rO999+nu9u/qJ/Se/6BfVv8/v9fvsvqguqIdfkvw/z9aMJcYAAAA=
692PHn00ef3p/Pjz48n1J88Ws92zL589/b1/n518+uXT2b1vr5pnD988/UV3709+75e/1y/6bvnT
7652zz6/+GS6+L2+/Pyn978ofnD32eL3muRvP/9FD1fnv89y56vvLrLyxS/66YvPPvtohB72qIf6
i3vv6ue/9/r1d6c7337y7qfe7Jbznz6e3v/y/uTNVbv3+nn78vOffvD7ZMdnFweLN7/XL7q//Il2
9/Pne/VP/kSRv129enF39tN3X/8+x7/3+uGDH3z59Dtv91c7z46ph1+S/D/vkcHYxgAAAA==
headers:
Cache-Control: [no-cache]
Content-Encoding: [gzip]
Content-Type: [application/json]
Date: ['Tue, 19 Apr 2016 22:36:45 GMT']
Expires: ['-1']
Pragma: [no-cache]
Server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
Vary: [Accept-Encoding]
x-ms-ratelimit-remaining-subscription-writes: ['1197']
status: {code: 200, message: OK}
- request:
body: !!binary |
eyJrZXlOYW1lIjogImtleTIifQ==
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
Connection: [keep-alive]
Content-Length: ['19']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.5.1 requests/2.9.1 msrest/0.2.0 msrest_azure/0.2.1 storagemanagementclient/2015-06-15
Azure-SDK-For-Python AZURECLI_0.0.32]
accept-language: [en-US]
method: POST
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/travistestresourcegroup/providers/Microsoft.Storage/storageAccounts/travistestresourcegr3014/regenerateKey?api-version=2015-06-15
response:
body:
string: !!binary |
H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcpl
VmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/In7xR2/z
692PHn300xdNM2l/n7vPFteLu8/2Xj5ty89PXry+Pi+u5uWk+XLyE/c+3X9x8fTsfH/96s0ny/rF
/RefL9/t7K/2n/zen88mrw/e/qKfWj09Of193n777puf/qnzV6/nb64+++yjEXrYox6+rH6f3fb0
6juvf9Hr4pOX97/zZO/55/ey3S/mx8+ar04uz3Z2f++vnlxfXUyrL/f2nl//Pu8+X07mX96bP3ty
8W759Nn1T16+bZrPf/Ls9Q+Wr9/u/j7rZ/Xii9kx9fBLkv8H7KivA8YAAAA=
headers:
Cache-Control: [no-cache]
Content-Encoding: [gzip]
Content-Type: [application/json]
Date: ['Tue, 19 Apr 2016 22:36:46 GMT']
Date: ['Wed, 20 Apr 2016 23:06:23 GMT']
Expires: ['-1']
Pragma: [no-cache]
Server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
@ -362,25 +289,60 @@ interactions:
string: !!binary |
H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcpl
VmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/In7xR2/z
692PHn300xdNM2l/n7vPFteLu8/2Xj5ty89PXry+Pi+u5uWk+XLyE/c+3X9x8fTsfH/96s0ny/rF
/RefL9/t7K/2n/zen88mrw/e/qKfWj09Of193n777puf/qnzV6/nb64+++yjEXrYox5WzZtvP38x
O109/eknD0+yyRefNDuTnef14s3zFy8e7NfN7rs3b65mL37y5P7vfe8HP/35tx/Ov/P6zU/f2/mp
X3TvO2cvrk4+/XRn8t3f66vj4y/une+/27n31eTu/WPq4Zck/w9c2j5XxgAAAA==
692PHn00ef3p/Pjz48n1J88Ws92zL589/b1/n518+uXT2b1vr5pnD988/UV3709+75e/1y/6bvnT
7652zz6/+GS6+L2+/Pyn978ofnD32eL3muRvP/9FD1fnv89y56vvLrLyxS/66YvPPvtohB72qIdX
Bw9+spj+xOvfa+egqa/nk7wt9558evXy8k2+P3+xt/fJxdsXv/dPvXh29vynDh589953fvry9/7J
el3/9P2r47c7+fptWe/+Xruff3GwPH34/N3nO7/3Vz/97Oknx9TDL0n+H4HCwXbGAAAA
headers:
Cache-Control: [no-cache]
Content-Encoding: [gzip]
Content-Type: [application/json]
Date: ['Tue, 19 Apr 2016 22:36:47 GMT']
Date: ['Wed, 20 Apr 2016 23:06:25 GMT']
Expires: ['-1']
Pragma: [no-cache]
Server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
Vary: [Accept-Encoding]
x-ms-ratelimit-remaining-subscription-writes: ['1198']
x-ms-ratelimit-remaining-subscription-writes: ['1199']
status: {code: 200, message: OK}
- request:
body: !!binary |
eyJ0YWdzIjogeyJjYXQiOiAiIiwgImZvbyI6ICJiYXIifX0=
eyJrZXlOYW1lIjogImtleTIifQ==
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
Connection: [keep-alive]
Content-Length: ['19']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.5.1 requests/2.9.1 msrest/0.2.0 msrest_azure/0.2.1 storagemanagementclient/2015-06-15
Azure-SDK-For-Python AZURECLI_0.0.32]
accept-language: [en-US]
method: POST
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/travistestresourcegroup/providers/Microsoft.Storage/storageAccounts/travistestresourcegr3014/regenerateKey?api-version=2015-06-15
response:
body:
string: !!binary |
H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcpl
VmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/In7xR2/z
692PHn00ef3p/Pjz48n1J88Ws92zL589/b1/n518+uXT2b1vr5pnD988/UV3709+75e/1y/6bvnT
7652zz6/+GS6+L2+/Pyn978ofnD32eL3muRvP/9FD1fnv89y56vvLrLyxS/66YvPPvtohB72qIf8
TXVQnp+Ud3d+r2xv9fusm0+KL56/efPTp09+r+OL/cvf5yc/+erZdPLgp06bN7/X/vonHv7E/npv
trz8fe4fT8rf51l5meW/14ufLl7Of6+zb5//9JvVq5/+ZP/17k9QD78k+X8AUZ1E08YAAAA=
headers:
Cache-Control: [no-cache]
Content-Encoding: [gzip]
Content-Type: [application/json]
Date: ['Wed, 20 Apr 2016 23:06:40 GMT']
Expires: ['-1']
Pragma: [no-cache]
Server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
Vary: [Accept-Encoding]
x-ms-ratelimit-remaining-subscription-writes: ['1199']
status: {code: 200, message: OK}
- request:
body: !!binary |
eyJ0YWdzIjogeyJmb28iOiAiYmFyIiwgImNhdCI6ICIifX0=
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
@ -397,18 +359,18 @@ interactions:
string: !!binary |
H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcpl
VmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/In7xR212
0Xz06Bd/NM3ajx599NHoo/Oqol8mWf3RL/kl/w8KtBWFHwAAAA==
0Xz06Bd/dF5VHz36aJLVH40+mmYt/f7RL/kl/w/0s/SAHwAAAA==
headers:
Cache-Control: [no-cache]
Content-Encoding: [gzip]
Content-Type: [application/json]
Date: ['Tue, 19 Apr 2016 22:36:50 GMT']
Date: ['Wed, 20 Apr 2016 23:06:43 GMT']
Expires: ['-1']
Pragma: [no-cache]
Server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
Vary: [Accept-Encoding]
x-ms-ratelimit-remaining-subscription-writes: ['1199']
x-ms-ratelimit-remaining-subscription-writes: ['1198']
status: {code: 200, message: OK}
- request:
body: !!binary |
@ -434,13 +396,13 @@ interactions:
Cache-Control: [no-cache]
Content-Encoding: [gzip]
Content-Type: [application/json]
Date: ['Tue, 19 Apr 2016 22:36:53 GMT']
Date: ['Wed, 20 Apr 2016 23:06:45 GMT']
Expires: ['-1']
Pragma: [no-cache]
Server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
Vary: [Accept-Encoding]
x-ms-ratelimit-remaining-subscription-writes: ['1199']
x-ms-ratelimit-remaining-subscription-writes: ['1198']
status: {code: 200, message: OK}
- request:
body: !!binary |
@ -466,7 +428,7 @@ interactions:
Cache-Control: [no-cache]
Content-Encoding: [gzip]
Content-Type: [application/json]
Date: ['Tue, 19 Apr 2016 22:36:54 GMT']
Date: ['Wed, 20 Apr 2016 23:06:46 GMT']
Expires: ['-1']
Pragma: [no-cache]
Server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
@ -498,7 +460,7 @@ interactions:
Cache-Control: [no-cache]
Content-Encoding: [gzip]
Content-Type: [application/json]
Date: ['Tue, 19 Apr 2016 22:36:55 GMT']
Date: ['Wed, 20 Apr 2016 23:06:47 GMT']
Expires: ['-1']
Pragma: [no-cache]
Server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]

Просмотреть файл

@ -0,0 +1,488 @@
interactions:
- request:
body: null
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
Connection: [keep-alive]
Content-Length: ['0']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.5.1 requests/2.9.1 msrest/0.2.0 msrest_azure/0.2.1 storagemanagementclient/2015-06-15
Azure-SDK-For-Python AZURECLI_0.0.32]
accept-language: [en-US]
method: POST
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/travistestresourcegroup/providers/Microsoft.Storage/storageAccounts/travistestresourcegr3014/listKeys?api-version=2015-06-15
response:
body:
string: !!binary |
H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcpl
VmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/In7xR2/z
692PHn30nbev2ounP523v+jT4nr6LPu9Tvc/ye9dPXn4uvi9z48vv2ieNl/e/70/Pfj02+evi0+/
c3X8i8qvXn76E2+Xz7/9U5+8/fT5/Bfdr37R2er3Xizuf/X571W9/eSnvmpPrj777KMRetijHuov
7r2rn//e69ffne58+8m7n3qzW85/+nh6/8v7kzdX7d7r5+3Lz3/6we+THZ9dHCze/F6/6P7yJ9rd
z5/v1T/5E0X+dvXqxd3ZT999/fsc/97rhw9+8OXT77zdX+08O6Yefkny/wDkJfZqxgAAAA==
headers:
Cache-Control: [no-cache]
Content-Encoding: [gzip]
Content-Type: [application/json]
Date: ['Wed, 20 Apr 2016 23:05:49 GMT']
Expires: ['-1']
Pragma: [no-cache]
Server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
Vary: [Accept-Encoding]
x-ms-ratelimit-remaining-subscription-writes: ['1199']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:50 GMT']
x-ms-version: ['2015-04-05']
method: DELETE
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&srt=sco&sp=rwdl&sig=WFZA1vkqjI/5RtNN8WAFhKSqb9C%2BMlk32tHCnAFwhrg%3D&se=2017-01-01T00%3A00Z&sv=2015-04-05&ss=b
response:
body: {string: "\uFEFF<?xml version=\"1.0\" encoding=\"utf-8\"?><Error><Code>ContainerNotFound</Code><Message>The\
\ specified container does not exist.\nRequestId:b2f628ff-0001-0121-1c59-9b9180000000\n\
Time:2016-04-20T23:05:50.9979495Z</Message></Error>"}
headers:
Content-Length: ['225']
Content-Type: [application/xml]
Date: ['Wed, 20 Apr 2016 23:05:50 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 404, message: The specified container does not exist.}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:50 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container
response:
body: {string: "\uFEFF<?xml version=\"1.0\" encoding=\"utf-8\"?><Error><Code>ResourceNotFound</Code><Message>The\
\ specified resource does not exist.\nRequestId:f15ab952-0001-0056-0759-9b5294000000\n\
Time:2016-04-20T23:05:51.4017350Z</Message></Error>"}
headers:
Content-Length: ['223']
Content-Type: [application/xml]
Date: ['Wed, 20 Apr 2016 23:05:50 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 404, message: The specified resource does not exist.}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:51 GMT']
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&srt=sco&sp=rwdl&sig=WFZA1vkqjI/5RtNN8WAFhKSqb9C%2BMlk32tHCnAFwhrg%3D&se=2017-01-01T00%3A00Z&sv=2015-04-05&ss=b
response:
body: {string: ''}
headers:
Date: ['Wed, 20 Apr 2016 23:05:50 GMT']
ETag: ['"0x8D36970514D55BB"']
Last-Modified: ['Wed, 20 Apr 2016 23:05:51 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 201, message: Created}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:51 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&srt=sco&sp=rwdl&sig=WFZA1vkqjI/5RtNN8WAFhKSqb9C%2BMlk32tHCnAFwhrg%3D&se=2017-01-01T00%3A00Z&sv=2015-04-05&ss=b
response:
body: {string: ''}
headers:
Date: ['Wed, 20 Apr 2016 23:05:51 GMT']
ETag: ['"0x8D36970514D55BB"']
Last-Modified: ['Wed, 20 Apr 2016 23:05:51 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-lease-state: [available]
x-ms-lease-status: [unlocked]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:51 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/?comp=list&srt=sco&sp=rwdl&sig=WFZA1vkqjI/5RtNN8WAFhKSqb9C%2BMlk32tHCnAFwhrg%3D&se=2017-01-01T00%3A00Z&sv=2015-04-05&ss=b
response:
body: {string: "\uFEFF<?xml version=\"1.0\" encoding=\"utf-8\"?><EnumerationResults\
\ ServiceEndpoint=\"https://travistestresourcegr3014.blob.core.windows.net/\"\
><Containers><Container><Name>bootdiagnostics-testvm234-8bc8e6e1-9728-4540-b2a3-7f741fdd4609</Name><Properties><Last-Modified>Tue,\
\ 15 Mar 2016 23:03:43 GMT</Last-Modified><Etag>\"0x8D34D260EA39931\"</Etag><LeaseStatus>unlocked</LeaseStatus><LeaseState>available</LeaseState></Properties></Container><Container><Name>testcontainer01</Name><Properties><Last-Modified>Wed,\
\ 20 Apr 2016 23:05:51 GMT</Last-Modified><Etag>\"0x8D36970514D55BB\"</Etag><LeaseStatus>unlocked</LeaseStatus><LeaseState>available</LeaseState></Properties></Container><Container><Name>testcontainer03</Name><Properties><Last-Modified>Wed,\
\ 13 Apr 2016 22:49:04 GMT</Last-Modified><Etag>\"0x8D363EDD07E5CE2\"</Etag><LeaseStatus>unlocked</LeaseStatus><LeaseState>available</LeaseState></Properties></Container><Container><Name>testcontainer1234</Name><Properties><Last-Modified>Wed,\
\ 13 Apr 2016 22:48:55 GMT</Last-Modified><Etag>\"0x8D363EDCB2D35D1\"</Etag><LeaseStatus>unlocked</LeaseStatus><LeaseState>expired</LeaseState></Properties></Container><Container><Name>vhds</Name><Properties><Last-Modified>Tue,\
\ 15 Mar 2016 23:03:44 GMT</Last-Modified><Etag>\"0x8D34D260EEA5070\"</Etag><LeaseStatus>locked</LeaseStatus><LeaseState>leased</LeaseState><LeaseDuration>infinite</LeaseDuration></Properties></Container></Containers><NextMarker\
\ /></EnumerationResults>"}
headers:
Content-Type: [application/xml]
Date: ['Wed, 20 Apr 2016 23:05:51 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:51 GMT']
x-ms-meta-foo: [bar]
x-ms-meta-moo: [bak]
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&comp=metadata&srt=sco&sp=rwdl&sig=WFZA1vkqjI/5RtNN8WAFhKSqb9C%2BMlk32tHCnAFwhrg%3D&se=2017-01-01T00%3A00Z&sv=2015-04-05&ss=b
response:
body: {string: ''}
headers:
Date: ['Wed, 20 Apr 2016 23:05:51 GMT']
ETag: ['"0x8D3697051D0744D"']
Last-Modified: ['Wed, 20 Apr 2016 23:05:51 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:52 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&comp=metadata&srt=sco&sp=rwdl&sig=WFZA1vkqjI/5RtNN8WAFhKSqb9C%2BMlk32tHCnAFwhrg%3D&se=2017-01-01T00%3A00Z&sv=2015-04-05&ss=b
response:
body: {string: ''}
headers:
Date: ['Wed, 20 Apr 2016 23:05:51 GMT']
ETag: ['"0x8D3697051D0744D"']
Last-Modified: ['Wed, 20 Apr 2016 23:05:51 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-meta-foo: [bar]
x-ms-meta-moo: [bak]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:52 GMT']
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&comp=metadata&srt=sco&sp=rwdl&sig=WFZA1vkqjI/5RtNN8WAFhKSqb9C%2BMlk32tHCnAFwhrg%3D&se=2017-01-01T00%3A00Z&sv=2015-04-05&ss=b
response:
body: {string: ''}
headers:
Date: ['Wed, 20 Apr 2016 23:05:51 GMT']
ETag: ['"0x8D36970520E4F81"']
Last-Modified: ['Wed, 20 Apr 2016 23:05:52 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:52 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&comp=metadata&srt=sco&sp=rwdl&sig=WFZA1vkqjI/5RtNN8WAFhKSqb9C%2BMlk32tHCnAFwhrg%3D&se=2017-01-01T00%3A00Z&sv=2015-04-05&ss=b
response:
body: {string: ''}
headers:
Date: ['Wed, 20 Apr 2016 23:05:51 GMT']
ETag: ['"0x8D36970520E4F81"']
Last-Modified: ['Wed, 20 Apr 2016 23:05:52 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
If-Modified-Since: ['Fri, 08 Apr 2016 12:00:00 GMT']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:52 GMT']
x-ms-lease-action: [acquire]
x-ms-lease-duration: ['60']
x-ms-proposed-lease-id: [abcdabcd-abcd-abcd-abcd-abcdabcdabcd]
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&comp=lease&srt=sco&sp=rwdl&sig=WFZA1vkqjI/5RtNN8WAFhKSqb9C%2BMlk32tHCnAFwhrg%3D&se=2017-01-01T00%3A00Z&sv=2015-04-05&ss=b
response:
body: {string: ''}
headers:
Date: ['Wed, 20 Apr 2016 23:05:51 GMT']
ETag: ['"0x8D36970520E4F81"']
Last-Modified: ['Wed, 20 Apr 2016 23:05:52 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-lease-id: [abcdabcd-abcd-abcd-abcd-abcdabcdabcd]
x-ms-version: ['2015-04-05']
status: {code: 201, message: Created}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:52 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&srt=sco&sp=rwdl&sig=WFZA1vkqjI/5RtNN8WAFhKSqb9C%2BMlk32tHCnAFwhrg%3D&se=2017-01-01T00%3A00Z&sv=2015-04-05&ss=b
response:
body: {string: ''}
headers:
Date: ['Wed, 20 Apr 2016 23:05:52 GMT']
ETag: ['"0x8D36970520E4F81"']
Last-Modified: ['Wed, 20 Apr 2016 23:05:52 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-lease-duration: [fixed]
x-ms-lease-state: [leased]
x-ms-lease-status: [locked]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:52 GMT']
x-ms-lease-action: [change]
x-ms-lease-id: [abcdabcd-abcd-abcd-abcd-abcdabcdabcd]
x-ms-proposed-lease-id: [dcbadcba-dcba-dcba-dcba-dcbadcbadcba]
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&comp=lease&srt=sco&sp=rwdl&sig=WFZA1vkqjI/5RtNN8WAFhKSqb9C%2BMlk32tHCnAFwhrg%3D&se=2017-01-01T00%3A00Z&sv=2015-04-05&ss=b
response:
body: {string: ''}
headers:
Date: ['Wed, 20 Apr 2016 23:05:52 GMT']
ETag: ['"0x8D36970520E4F81"']
Last-Modified: ['Wed, 20 Apr 2016 23:05:52 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-lease-id: [dcbadcba-dcba-dcba-dcba-dcbadcbadcba]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:53 GMT']
x-ms-lease-action: [renew]
x-ms-lease-id: [dcbadcba-dcba-dcba-dcba-dcbadcbadcba]
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&comp=lease&srt=sco&sp=rwdl&sig=WFZA1vkqjI/5RtNN8WAFhKSqb9C%2BMlk32tHCnAFwhrg%3D&se=2017-01-01T00%3A00Z&sv=2015-04-05&ss=b
response:
body: {string: ''}
headers:
Date: ['Wed, 20 Apr 2016 23:05:53 GMT']
ETag: ['"0x8D36970520E4F81"']
Last-Modified: ['Wed, 20 Apr 2016 23:05:52 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-lease-id: [dcbadcba-dcba-dcba-dcba-dcbadcbadcba]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:53 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&srt=sco&sp=rwdl&sig=WFZA1vkqjI/5RtNN8WAFhKSqb9C%2BMlk32tHCnAFwhrg%3D&se=2017-01-01T00%3A00Z&sv=2015-04-05&ss=b
response:
body: {string: ''}
headers:
Date: ['Wed, 20 Apr 2016 23:05:54 GMT']
ETag: ['"0x8D36970520E4F81"']
Last-Modified: ['Wed, 20 Apr 2016 23:05:52 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-lease-duration: [fixed]
x-ms-lease-state: [leased]
x-ms-lease-status: [locked]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:53 GMT']
x-ms-lease-action: [break]
x-ms-lease-break-period: ['30']
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&comp=lease&srt=sco&sp=rwdl&sig=WFZA1vkqjI/5RtNN8WAFhKSqb9C%2BMlk32tHCnAFwhrg%3D&se=2017-01-01T00%3A00Z&sv=2015-04-05&ss=b
response:
body: {string: ''}
headers:
Date: ['Wed, 20 Apr 2016 23:05:53 GMT']
ETag: ['"0x8D36970520E4F81"']
Last-Modified: ['Wed, 20 Apr 2016 23:05:52 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-lease-time: ['30']
x-ms-version: ['2015-04-05']
status: {code: 202, message: Accepted}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:54 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&srt=sco&sp=rwdl&sig=WFZA1vkqjI/5RtNN8WAFhKSqb9C%2BMlk32tHCnAFwhrg%3D&se=2017-01-01T00%3A00Z&sv=2015-04-05&ss=b
response:
body: {string: ''}
headers:
Date: ['Wed, 20 Apr 2016 23:05:54 GMT']
ETag: ['"0x8D36970520E4F81"']
Last-Modified: ['Wed, 20 Apr 2016 23:05:52 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-lease-state: [breaking]
x-ms-lease-status: [locked]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:54 GMT']
x-ms-lease-action: [release]
x-ms-lease-id: [dcbadcba-dcba-dcba-dcba-dcbadcbadcba]
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&comp=lease&srt=sco&sp=rwdl&sig=WFZA1vkqjI/5RtNN8WAFhKSqb9C%2BMlk32tHCnAFwhrg%3D&se=2017-01-01T00%3A00Z&sv=2015-04-05&ss=b
response:
body: {string: ''}
headers:
Date: ['Wed, 20 Apr 2016 23:05:53 GMT']
ETag: ['"0x8D36970520E4F81"']
Last-Modified: ['Wed, 20 Apr 2016 23:05:52 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:54 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&srt=sco&sp=rwdl&sig=WFZA1vkqjI/5RtNN8WAFhKSqb9C%2BMlk32tHCnAFwhrg%3D&se=2017-01-01T00%3A00Z&sv=2015-04-05&ss=b
response:
body: {string: ''}
headers:
Date: ['Wed, 20 Apr 2016 23:05:53 GMT']
ETag: ['"0x8D36970520E4F81"']
Last-Modified: ['Wed, 20 Apr 2016 23:05:52 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-lease-state: [available]
x-ms-lease-status: [unlocked]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:54 GMT']
x-ms-version: ['2015-04-05']
method: DELETE
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&srt=sco&sp=rwdl&sig=WFZA1vkqjI/5RtNN8WAFhKSqb9C%2BMlk32tHCnAFwhrg%3D&se=2017-01-01T00%3A00Z&sv=2015-04-05&ss=b
response:
body: {string: ''}
headers:
Date: ['Wed, 20 Apr 2016 23:05:55 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 202, message: Accepted}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:54 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container
response:
body: {string: "\uFEFF<?xml version=\"1.0\" encoding=\"utf-8\"?><Error><Code>ResourceNotFound</Code><Message>The\
\ specified resource does not exist.\nRequestId:d578e818-0001-00f3-0b59-9b698d000000\n\
Time:2016-04-20T23:05:55.0371717Z</Message></Error>"}
headers:
Content-Length: ['223']
Content-Type: [application/xml]
Date: ['Wed, 20 Apr 2016 23:05:54 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 404, message: The specified resource does not exist.}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Wed, 20 Apr 2016 23:05:55 GMT']
x-ms-version: ['2015-04-05']
method: DELETE
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&srt=sco&sp=rwdl&sig=WFZA1vkqjI/5RtNN8WAFhKSqb9C%2BMlk32tHCnAFwhrg%3D&se=2017-01-01T00%3A00Z&sv=2015-04-05&ss=b
response:
body: {string: ''}
headers:
Date: ['Wed, 20 Apr 2016 23:05:55 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 202, message: Accepted}
version: 1

Просмотреть файл

@ -1,726 +0,0 @@
interactions:
- request:
body: null
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
Connection: [keep-alive]
Content-Length: ['0']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.5.1 requests/2.9.1 msrest/0.2.0 msrest_azure/0.2.1 storagemanagementclient/2015-06-15
Azure-SDK-For-Python AZURECLI_0.0.32]
accept-language: [en-US]
method: POST
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/travistestresourcegroup/providers/Microsoft.Storage/storageAccounts/travistestresourcegr3014/listKeys?api-version=2015-06-15
response:
body:
string: !!binary |
H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcpl
VmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/In7xR2/z
692PHn306vnx/eLbeTHZ/c6z/d/ry7fz9u7idHZ/8tN7n5789On173O5t/8TB9P9L69/+nx6tvz0
wewXTefPv/pF1Rd3Zz9ZXqw+f3L2/NOfyHeyB+vqpx5cHhcv9s8+//Lqs88+GqGHPepht3x1/6e/
KOcPr78ov/1658uHJ2ef3P3p0x+sX3537+XBV9fz1ZvvXP8+3337+xw/ebK/evj7/KL85OVBtrr7
7vXdWfb298kX3/29vvPdp7/Xu6uf2H/yi35R/fv8Xr/P7ovqgnr4Jcn/Ax1NgVXGAAAA
headers:
Cache-Control: [no-cache]
Content-Encoding: [gzip]
Content-Type: [application/json]
Date: ['Tue, 19 Apr 2016 22:36:09 GMT']
Expires: ['-1']
Pragma: [no-cache]
Server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
Vary: [Accept-Encoding]
x-ms-ratelimit-remaining-subscription-writes: ['1199']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:10 GMT']
x-ms-version: ['2015-04-05']
method: DELETE
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&srt=sco&ss=b&sv=2015-04-05&sp=rwdl&sig=KDnOlU/J%2BQ2dop81rhzkZJhYNSU9CH8YJSEEew/x/7s%3D&se=2017-01-01T00%3A00Z
response:
body: {string: "\uFEFF<?xml version=\"1.0\" encoding=\"utf-8\"?><Error><Code>ContainerNotFound</Code><Message>The\
\ specified container does not exist.\nRequestId:79c78b58-0001-00b2-4f8b-9a419e000000\n\
Time:2016-04-19T22:36:11.2866061Z</Message></Error>"}
headers:
Content-Length: ['225']
Content-Type: [application/xml]
Date: ['Tue, 19 Apr 2016 22:36:10 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 404, message: The specified container does not exist.}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:10 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container
response:
body: {string: "\uFEFF<?xml version=\"1.0\" encoding=\"utf-8\"?><Error><Code>ResourceNotFound</Code><Message>The\
\ specified resource does not exist.\nRequestId:c9423859-0001-0007-218b-9a4c61000000\n\
Time:2016-04-19T22:36:11.2901997Z</Message></Error>"}
headers:
Content-Length: ['223']
Content-Type: [application/xml]
Date: ['Tue, 19 Apr 2016 22:36:10 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 404, message: The specified resource does not exist.}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:11 GMT']
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&srt=sco&ss=b&sv=2015-04-05&sp=rwdl&sig=KDnOlU/J%2BQ2dop81rhzkZJhYNSU9CH8YJSEEew/x/7s%3D&se=2017-01-01T00%3A00Z
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:11 GMT']
ETag: ['"0x8D368A30282765F"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:12 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 201, message: Created}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:11 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&srt=sco&ss=b&sv=2015-04-05&sp=rwdl&sig=KDnOlU/J%2BQ2dop81rhzkZJhYNSU9CH8YJSEEew/x/7s%3D&se=2017-01-01T00%3A00Z
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:11 GMT']
ETag: ['"0x8D368A30282765F"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:12 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-lease-state: [available]
x-ms-lease-status: [unlocked]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:11 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/?comp=list&srt=sco&ss=b&sv=2015-04-05&sp=rwdl&sig=KDnOlU/J%2BQ2dop81rhzkZJhYNSU9CH8YJSEEew/x/7s%3D&se=2017-01-01T00%3A00Z
response:
body: {string: "\uFEFF<?xml version=\"1.0\" encoding=\"utf-8\"?><EnumerationResults\
\ ServiceEndpoint=\"https://travistestresourcegr3014.blob.core.windows.net/\"\
><Containers><Container><Name>bootdiagnostics-testvm234-8bc8e6e1-9728-4540-b2a3-7f741fdd4609</Name><Properties><Last-Modified>Tue,\
\ 15 Mar 2016 23:03:43 GMT</Last-Modified><Etag>\"0x8D34D260EA39931\"</Etag><LeaseStatus>unlocked</LeaseStatus><LeaseState>available</LeaseState></Properties></Container><Container><Name>testcontainer01</Name><Properties><Last-Modified>Tue,\
\ 19 Apr 2016 22:36:12 GMT</Last-Modified><Etag>\"0x8D368A30282765F\"</Etag><LeaseStatus>unlocked</LeaseStatus><LeaseState>available</LeaseState></Properties></Container><Container><Name>testcontainer03</Name><Properties><Last-Modified>Wed,\
\ 13 Apr 2016 22:49:04 GMT</Last-Modified><Etag>\"0x8D363EDD07E5CE2\"</Etag><LeaseStatus>unlocked</LeaseStatus><LeaseState>available</LeaseState></Properties></Container><Container><Name>testcontainer1234</Name><Properties><Last-Modified>Wed,\
\ 13 Apr 2016 22:48:55 GMT</Last-Modified><Etag>\"0x8D363EDCB2D35D1\"</Etag><LeaseStatus>unlocked</LeaseStatus><LeaseState>expired</LeaseState></Properties></Container><Container><Name>vhds</Name><Properties><Last-Modified>Tue,\
\ 15 Mar 2016 23:03:44 GMT</Last-Modified><Etag>\"0x8D34D260EEA5070\"</Etag><LeaseStatus>locked</LeaseStatus><LeaseState>leased</LeaseState><LeaseDuration>infinite</LeaseDuration></Properties></Container></Containers><NextMarker\
\ /></EnumerationResults>"}
headers:
Content-Type: [application/xml]
Date: ['Tue, 19 Apr 2016 22:36:11 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:11 GMT']
x-ms-meta-foo: [bar]
x-ms-meta-moo: [bak]
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&comp=metadata&srt=sco&ss=b&sv=2015-04-05&sp=rwdl&sig=KDnOlU/J%2BQ2dop81rhzkZJhYNSU9CH8YJSEEew/x/7s%3D&se=2017-01-01T00%3A00Z
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:12 GMT']
ETag: ['"0x8D368A302827660"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:12 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:11 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&comp=metadata&srt=sco&ss=b&sv=2015-04-05&sp=rwdl&sig=KDnOlU/J%2BQ2dop81rhzkZJhYNSU9CH8YJSEEew/x/7s%3D&se=2017-01-01T00%3A00Z
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:11 GMT']
ETag: ['"0x8D368A302827660"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:12 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-meta-foo: [bar]
x-ms-meta-moo: [bak]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:12 GMT']
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&comp=metadata&srt=sco&ss=b&sv=2015-04-05&sp=rwdl&sig=KDnOlU/J%2BQ2dop81rhzkZJhYNSU9CH8YJSEEew/x/7s%3D&se=2017-01-01T00%3A00Z
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:12 GMT']
ETag: ['"0x8D368A302BD0AE2"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:12 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:12 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&comp=metadata&srt=sco&ss=b&sv=2015-04-05&sp=rwdl&sig=KDnOlU/J%2BQ2dop81rhzkZJhYNSU9CH8YJSEEew/x/7s%3D&se=2017-01-01T00%3A00Z
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:12 GMT']
ETag: ['"0x8D368A302BD0AE2"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:12 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
If-Modified-Since: ['Fri, 08 Apr 2016 12:00:00 GMT']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:12 GMT']
x-ms-lease-action: [acquire]
x-ms-lease-duration: ['60']
x-ms-proposed-lease-id: [abcdabcd-abcd-abcd-abcd-abcdabcdabcd]
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&comp=lease&srt=sco&ss=b&sv=2015-04-05&sp=rwdl&sig=KDnOlU/J%2BQ2dop81rhzkZJhYNSU9CH8YJSEEew/x/7s%3D&se=2017-01-01T00%3A00Z
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:12 GMT']
ETag: ['"0x8D368A302BD0AE2"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:12 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-lease-id: [abcdabcd-abcd-abcd-abcd-abcdabcdabcd]
x-ms-version: ['2015-04-05']
status: {code: 201, message: Created}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:12 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&srt=sco&ss=b&sv=2015-04-05&sp=rwdl&sig=KDnOlU/J%2BQ2dop81rhzkZJhYNSU9CH8YJSEEew/x/7s%3D&se=2017-01-01T00%3A00Z
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:12 GMT']
ETag: ['"0x8D368A302BD0AE2"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:12 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-lease-duration: [fixed]
x-ms-lease-state: [leased]
x-ms-lease-status: [locked]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
Connection: [keep-alive]
Content-Length: ['0']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.5.1 requests/2.9.1 msrest/0.2.0 msrest_azure/0.2.1 storagemanagementclient/2015-06-15
Azure-SDK-For-Python AZURECLI_0.0.32]
accept-language: [en-US]
method: POST
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/travistestresourcegroup/providers/Microsoft.Storage/storageAccounts/travistestresourcegr3014/listKeys?api-version=2015-06-15
response:
body:
string: !!binary |
H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcpl
VmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/In7xR2/z
692PHn306vnx/eLbeTHZ/c6z/d/ry7fz9u7idHZ/8tN7n5789On173O5t/8TB9P9L69/+nx6tvz0
wewXTefPv/pF1Rd3Zz9ZXqw+f3L2/NOfyHeyB+vqpx5cHhcv9s8+//Lqs88+GqGHPepht3x1/6e/
KOcPr78ov/1658uHJ2ef3P3p0x+sX3537+XBV9fz1ZvvXP8+3337+xw/ebK/evj7/KL85OVBtrr7
7vXdWfb298kX3/29vvPdp7/Xu6uf2H/yi35R/fv8Xr/P7ovqgnr4Jcn/Ax1NgVXGAAAA
headers:
Cache-Control: [no-cache]
Content-Encoding: [gzip]
Content-Type: [application/json]
Date: ['Tue, 19 Apr 2016 22:36:13 GMT']
Expires: ['-1']
Pragma: [no-cache]
Server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
Strict-Transport-Security: [max-age=31536000; includeSubDomains]
Vary: [Accept-Encoding]
x-ms-ratelimit-remaining-subscription-writes: ['1197']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:13 GMT']
x-ms-version: ['2015-04-05']
method: HEAD
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01/testblob1
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:12 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 404, message: The specified blob does not exist.}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:13 GMT']
x-ms-version: ['2015-04-05']
method: HEAD
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01/testblob1
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:13 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 404, message: The specified blob does not exist.}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:13 GMT']
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container
response:
body: {string: "\uFEFF<?xml version=\"1.0\" encoding=\"utf-8\"?><Error><Code>ContainerAlreadyExists</Code><Message>The\
\ specified container already exists.\nRequestId:b990f3a0-0001-0055-2a8b-9a5193000000\n\
Time:2016-04-19T22:36:14.5242029Z</Message></Error>"}
headers:
Content-Length: ['230']
Content-Type: [application/xml]
Date: ['Tue, 19 Apr 2016 22:36:14 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 409, message: The specified container already exists.}
- request:
body: !!binary |
VGhpcyBpcyBhIHRlc3QgZmlsZSBmb3IgcGVyZm9ybWFuY2Ugb2YgYXV0b21hdGVkIHRlc3RzLiBE
TyBOT1QgTU9WRSBPUiBERUxFVEUh
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['78']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-blob-type: [BlockBlob]
x-ms-date: ['Tue, 19 Apr 2016 22:36:13 GMT']
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01/testblob1
response:
body: {string: ''}
headers:
Content-MD5: [zeGiTMG1TdAobIHawzap3A==]
Date: ['Tue, 19 Apr 2016 22:36:14 GMT']
ETag: ['"0x8D368A303BAA479"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:14 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 201, message: Created}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:14 GMT']
x-ms-range: [bytes=None-]
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01/testblob1
response:
body: {string: This is a test file for performance of automated tests. DO NOT
MOVE OR DELETE!}
headers:
Accept-Ranges: [bytes]
Content-Length: ['78']
Content-MD5: [zeGiTMG1TdAobIHawzap3A==]
Content-Type: [application/octet-stream]
Date: ['Tue, 19 Apr 2016 22:36:14 GMT']
ETag: ['"0x8D368A303BAA479"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:14 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-blob-type: [BlockBlob]
x-ms-lease-state: [available]
x-ms-lease-status: [unlocked]
x-ms-version: ['2015-04-05']
x-ms-write-protection: ['false']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:14 GMT']
x-ms-version: ['2015-04-05']
method: HEAD
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01/testblob1
response:
body: {string: ''}
headers:
Accept-Ranges: [bytes]
Content-Length: ['78']
Content-MD5: [zeGiTMG1TdAobIHawzap3A==]
Content-Type: [application/octet-stream]
Date: ['Tue, 19 Apr 2016 22:36:14 GMT']
ETag: ['"0x8D368A303BAA479"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:14 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-blob-type: [BlockBlob]
x-ms-lease-state: [available]
x-ms-lease-status: [unlocked]
x-ms-version: ['2015-04-05']
x-ms-write-protection: ['false']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:14 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&comp=list
response:
body: {string: "\uFEFF<?xml version=\"1.0\" encoding=\"utf-8\"?><EnumerationResults\
\ ServiceEndpoint=\"https://travistestresourcegr3014.blob.core.windows.net/\"\
\ ContainerName=\"testcontainer01\"><Blobs><Blob><Name>testblob1</Name><Properties><Last-Modified>Tue,\
\ 19 Apr 2016 22:36:14 GMT</Last-Modified><Etag>0x8D368A303BAA479</Etag><Content-Length>78</Content-Length><Content-Type>application/octet-stream</Content-Type><Content-Encoding\
\ /><Content-Language /><Content-MD5>zeGiTMG1TdAobIHawzap3A==</Content-MD5><Cache-Control\
\ /><Content-Disposition /><BlobType>BlockBlob</BlobType><LeaseStatus>unlocked</LeaseStatus><LeaseState>available</LeaseState></Properties></Blob></Blobs><NextMarker\
\ /></EnumerationResults>"}
headers:
Content-Type: [application/xml]
Date: ['Tue, 19 Apr 2016 22:36:13 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:14 GMT']
x-ms-version: ['2015-04-05']
method: HEAD
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01/testblob1
response:
body: {string: ''}
headers:
Accept-Ranges: [bytes]
Content-Length: ['78']
Content-MD5: [zeGiTMG1TdAobIHawzap3A==]
Content-Type: [application/octet-stream]
Date: ['Tue, 19 Apr 2016 22:36:14 GMT']
ETag: ['"0x8D368A303BAA479"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:14 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-blob-type: [BlockBlob]
x-ms-lease-state: [available]
x-ms-lease-status: [unlocked]
x-ms-version: ['2015-04-05']
x-ms-write-protection: ['false']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:14 GMT']
x-ms-version: ['2015-04-05']
method: DELETE
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01/testblob1
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:14 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 202, message: Accepted}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:15 GMT']
x-ms-version: ['2015-04-05']
method: HEAD
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01/testblob1
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:14 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 404, message: The specified blob does not exist.}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:15 GMT']
x-ms-lease-action: [change]
x-ms-lease-id: [abcdabcd-abcd-abcd-abcd-abcdabcdabcd]
x-ms-proposed-lease-id: [dcbadcba-dcba-dcba-dcba-dcbadcbadcba]
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&comp=lease
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:15 GMT']
ETag: ['"0x8D368A302BD0AE2"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:12 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-lease-id: [dcbadcba-dcba-dcba-dcba-dcbadcbadcba]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:15 GMT']
x-ms-lease-action: [renew]
x-ms-lease-id: [dcbadcba-dcba-dcba-dcba-dcbadcbadcba]
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&comp=lease
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:15 GMT']
ETag: ['"0x8D368A302BD0AE2"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:12 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-lease-id: [dcbadcba-dcba-dcba-dcba-dcbadcbadcba]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:15 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:16 GMT']
ETag: ['"0x8D368A302BD0AE2"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:12 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-lease-duration: [fixed]
x-ms-lease-state: [leased]
x-ms-lease-status: [locked]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:16 GMT']
x-ms-lease-action: [break]
x-ms-lease-break-period: ['30']
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&comp=lease
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:15 GMT']
ETag: ['"0x8D368A302BD0AE2"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:12 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-lease-time: ['30']
x-ms-version: ['2015-04-05']
status: {code: 202, message: Accepted}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:16 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:15 GMT']
ETag: ['"0x8D368A302BD0AE2"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:12 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-lease-state: [breaking]
x-ms-lease-status: [locked]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:16 GMT']
x-ms-lease-action: [release]
x-ms-lease-id: [dcbadcba-dcba-dcba-dcba-dcbadcbadcba]
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container&comp=lease
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:15 GMT']
ETag: ['"0x8D368A302BD0AE2"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:12 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:16 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:16 GMT']
ETag: ['"0x8D368A302BD0AE2"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:12 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-lease-state: [available]
x-ms-lease-status: [unlocked]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:16 GMT']
x-ms-version: ['2015-04-05']
method: DELETE
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:15 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 202, message: Accepted}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:17 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.blob.core.windows.net/testcontainer01?restype=container
response:
body: {string: "\uFEFF<?xml version=\"1.0\" encoding=\"utf-8\"?><Error><Code>ContainerNotFound</Code><Message>The\
\ specified container does not exist.\nRequestId:e6e841b6-0001-0051-7e8b-9aa411000000\n\
Time:2016-04-19T22:36:17.3969698Z</Message></Error>"}
headers:
Content-Length: ['225']
Content-Type: [application/xml]
Date: ['Tue, 19 Apr 2016 22:36:17 GMT']
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 404, message: The specified container does not exist.}
version: 1

Просмотреть файл

@ -17,15 +17,15 @@ interactions:
string: !!binary |
H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcpl
VmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/In7xR2/z
692PHn306vnx/eLbeTHZ/c6z/d/ry7fz9u7idHZ/8tN7n5789On173O5t/8TB9P9L69/+nx6tvz0
wewXTefPv/pF1Rd3Zz9ZXqw+f3L2/NOfyHeyB+vqpx5cHhcv9s8+//Lqs88+GqGHPepht3x1/6e/
KOcPr78ov/1658uHJ2ef3P3p0x+sX3537+XBV9fz1ZvvXP8+3337+xw/ebK/evj7/KL85OVBtrr7
7vXdWfb298kX3/29vvPdp7/Xu6uf2H/yi35R/fv8Xr/P7ovqgnr4Jcn/Ax1NgVXGAAAA
692PHn30nbev2ounP523v+jT4nr6LPu9Tvc/ye9dPXn4uvi9z48vv2ieNl/e/70/Pfj02+evi0+/
c3X8i8qvXn76E2+Xz7/9U5+8/fT5/Bfdr37R2er3Xizuf/X571W9/eSnvmpPrj777KMRetijHuov
7r2rn//e69ffne58+8m7n3qzW85/+nh6/8v7kzdX7d7r5+3Lz3/6we+THZ9dHCze/F6/6P7yJ9rd
z5/v1T/5E0X+dvXqxd3ZT999/fsc/97rhw9+8OXT77zdX+08O6Yefkny/wDkJfZqxgAAAA==
headers:
Cache-Control: [no-cache]
Content-Encoding: [gzip]
Content-Type: [application/json]
Date: ['Tue, 19 Apr 2016 22:36:21 GMT']
Date: ['Wed, 20 Apr 2016 23:06:02 GMT']
Expires: ['-1']
Pragma: [no-cache]
Server: [Microsoft-Azure-Storage-Resource-Provider/1.0, Microsoft-HTTPAPI/2.0]
@ -40,18 +40,18 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:21 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:02 GMT']
x-ms-version: ['2015-04-05']
method: DELETE
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01?restype=share
response:
body: {string: "\uFEFF<?xml version=\"1.0\" encoding=\"utf-8\"?><Error><Code>ShareNotFound</Code><Message>The\
\ specified share does not exist.\nRequestId:e217f28f-001a-0007-568b-9a4c61000000\n\
Time:2016-04-19T22:36:22.1294566Z</Message></Error>"}
\ specified share does not exist.\nRequestId:5f14d638-001a-00e9-3d59-9b46e2000000\n\
Time:2016-04-20T23:06:02.0425881Z</Message></Error>"}
headers:
Content-Length: ['217']
Content-Type: [application/xml]
Date: ['Tue, 19 Apr 2016 22:36:21 GMT']
Date: ['Wed, 20 Apr 2016 23:06:01 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 404, message: The specified share does not exist.}
@ -62,18 +62,18 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:21 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:02 GMT']
x-ms-version: ['2015-04-05']
method: DELETE
uri: https://travistestresourcegr3014.file.core.windows.net/testshare02?restype=share
response:
body: {string: "\uFEFF<?xml version=\"1.0\" encoding=\"utf-8\"?><Error><Code>ShareNotFound</Code><Message>The\
\ specified share does not exist.\nRequestId:ad3825e8-001a-0061-288b-9afe3b000000\n\
Time:2016-04-19T22:36:22.6470039Z</Message></Error>"}
\ specified share does not exist.\nRequestId:8c8d6442-001a-0052-2159-9ba716000000\n\
Time:2016-04-20T23:06:03.0774813Z</Message></Error>"}
headers:
Content-Length: ['217']
Content-Type: [application/xml]
Date: ['Tue, 19 Apr 2016 22:36:22 GMT']
Date: ['Wed, 20 Apr 2016 23:06:02 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 404, message: The specified share does not exist.}
@ -84,16 +84,16 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:22 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:02 GMT']
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01?restype=share
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:21 GMT']
ETag: ['"0x8D368A308B999AE"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:22 GMT']
Date: ['Wed, 20 Apr 2016 23:06:01 GMT']
ETag: ['"0x8D3697058520FE3"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:02 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 201, message: Created}
@ -104,7 +104,7 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:22 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:03 GMT']
x-ms-meta-cat: [hat]
x-ms-meta-foo: [bar]
x-ms-version: ['2015-04-05']
@ -113,9 +113,9 @@ interactions:
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:22 GMT']
ETag: ['"0x8D368A308D34F14"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:22 GMT']
Date: ['Wed, 20 Apr 2016 23:06:03 GMT']
ETag: ['"0x8D3697058B40DAD"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:03 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 201, message: Created}
@ -125,36 +125,16 @@ interactions:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:22 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01?restype=share
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:22 GMT']
ETag: ['"0x8D368A308B999AE"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:22 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-share-quota: ['5120']
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:22 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:03 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.file.core.windows.net/testshare02?restype=share&comp=metadata
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:22 GMT']
ETag: ['"0x8D368A308D34F14"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:22 GMT']
Date: ['Wed, 20 Apr 2016 23:06:03 GMT']
ETag: ['"0x8D3697058B40DAD"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:03 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-meta-cat: [hat]
x-ms-meta-foo: [bar]
@ -166,21 +146,21 @@ interactions:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:22 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:03 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.file.core.windows.net/?comp=list
response:
body: {string: "\uFEFF<?xml version=\"1.0\" encoding=\"utf-8\"?><EnumerationResults\
\ ServiceEndpoint=\"https://travistestresourcegr3014.file.core.windows.net/\"\
><Shares><Share><Name>testshare01</Name><Properties><Last-Modified>Tue, 19\
\ Apr 2016 22:36:22 GMT</Last-Modified><Etag>\"0x8D368A308B999AE\"</Etag><Quota>5120</Quota></Properties></Share><Share><Name>testshare02</Name><Properties><Last-Modified>Tue,\
\ 19 Apr 2016 22:36:22 GMT</Last-Modified><Etag>\"0x8D368A308D34F14\"</Etag><Quota>5120</Quota></Properties></Share><Share><Name>testshare03</Name><Properties><Last-Modified>Fri,\
><Shares><Share><Name>testshare01</Name><Properties><Last-Modified>Wed, 20\
\ Apr 2016 23:06:02 GMT</Last-Modified><Etag>\"0x8D3697058520FE3\"</Etag><Quota>5120</Quota></Properties></Share><Share><Name>testshare02</Name><Properties><Last-Modified>Wed,\
\ 20 Apr 2016 23:06:03 GMT</Last-Modified><Etag>\"0x8D3697058B40DAD\"</Etag><Quota>5120</Quota></Properties></Share><Share><Name>testshare03</Name><Properties><Last-Modified>Fri,\
\ 08 Apr 2016 22:20:07 GMT</Last-Modified><Etag>\"0x8D35FFBF0F5F48F\"</Etag><Quota>5120</Quota></Properties></Share></Shares><NextMarker\
\ /></EnumerationResults>"}
headers:
Content-Type: [application/xml]
Date: ['Tue, 19 Apr 2016 22:36:22 GMT']
Date: ['Wed, 20 Apr 2016 23:06:03 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
@ -191,7 +171,7 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:23 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:03 GMT']
x-ms-meta-a: [b]
x-ms-meta-c: [d]
x-ms-version: ['2015-04-05']
@ -200,9 +180,9 @@ interactions:
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:22 GMT']
ETag: ['"0x8D368A30962C86D"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:23 GMT']
Date: ['Wed, 20 Apr 2016 23:06:03 GMT']
ETag: ['"0x8D36970594A58E5"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:04 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
@ -212,16 +192,16 @@ interactions:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:23 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:04 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01?restype=share&comp=metadata
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:24 GMT']
ETag: ['"0x8D368A30962C86D"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:23 GMT']
Date: ['Wed, 20 Apr 2016 23:06:03 GMT']
ETag: ['"0x8D36970594A58E5"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:04 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-meta-a: [b]
x-ms-meta-c: [d]
@ -234,16 +214,16 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:23 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:04 GMT']
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01?restype=share&comp=metadata
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:24 GMT']
ETag: ['"0x8D368A309BCE531"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:24 GMT']
Date: ['Wed, 20 Apr 2016 23:06:03 GMT']
ETag: ['"0x8D3697059ADA01A"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:05 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
@ -253,16 +233,16 @@ interactions:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:24 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:04 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01?restype=share&comp=metadata
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:24 GMT']
ETag: ['"0x8D368A309BCE531"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:24 GMT']
Date: ['Wed, 20 Apr 2016 23:06:04 GMT']
ETag: ['"0x8D3697059ADA01A"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:05 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
@ -274,7 +254,7 @@ interactions:
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-content-length: ['78']
x-ms-date: ['Tue, 19 Apr 2016 22:36:24 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:04 GMT']
x-ms-type: [file]
x-ms-version: ['2015-04-05']
method: PUT
@ -282,9 +262,9 @@ interactions:
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:24 GMT']
ETag: ['"0x8D368A30A42BBDF"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:25 GMT']
Date: ['Wed, 20 Apr 2016 23:06:04 GMT']
ETag: ['"0x8D3697059CBF49A"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:05 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 201, message: Created}
@ -297,7 +277,7 @@ interactions:
Connection: [keep-alive]
Content-Length: ['78']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:24 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:05 GMT']
x-ms-range: [bytes=0-77]
x-ms-version: ['2015-04-05']
x-ms-write: [update]
@ -307,9 +287,9 @@ interactions:
body: {string: ''}
headers:
Content-MD5: [zeGiTMG1TdAobIHawzap3A==]
Date: ['Tue, 19 Apr 2016 22:36:24 GMT']
ETag: ['"0x8D368A30A4B2264"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:25 GMT']
Date: ['Wed, 20 Apr 2016 23:06:04 GMT']
ETag: ['"0x8D3697059DA28EB"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:05 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 201, message: Created}
@ -319,29 +299,7 @@ interactions:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:24 GMT']
x-ms-version: ['2015-04-05']
method: HEAD
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01/testfile.rst
response:
body: {string: ''}
headers:
Content-Length: ['78']
Content-Type: [application/octet-stream]
Date: ['Tue, 19 Apr 2016 22:36:23 GMT']
ETag: ['"0x8D368A30A4B2264"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:25 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-type: [File]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:24 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:05 GMT']
x-ms-range: [bytes=None-]
x-ms-version: ['2015-04-05']
method: GET
@ -353,9 +311,9 @@ interactions:
Accept-Ranges: [bytes]
Content-Length: ['78']
Content-Type: [application/octet-stream]
Date: ['Tue, 19 Apr 2016 22:36:24 GMT']
ETag: ['"0x8D368A30A4B2264"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:25 GMT']
Date: ['Wed, 20 Apr 2016 23:06:04 GMT']
ETag: ['"0x8D3697059DA28EB"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:05 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-type: [File]
x-ms-version: ['2015-04-05']
@ -366,7 +324,7 @@ interactions:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:25 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:05 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01?restype=directory&comp=list
@ -377,7 +335,7 @@ interactions:
\ /></EnumerationResults>"}
headers:
Content-Type: [application/xml]
Date: ['Tue, 19 Apr 2016 22:36:24 GMT']
Date: ['Wed, 20 Apr 2016 23:06:05 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
@ -388,14 +346,14 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:25 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:05 GMT']
x-ms-version: ['2015-04-05']
method: DELETE
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01/testfile.rst
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:24 GMT']
Date: ['Wed, 20 Apr 2016 23:06:05 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 202, message: Accepted}
@ -405,14 +363,14 @@ interactions:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:25 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:05 GMT']
x-ms-version: ['2015-04-05']
method: HEAD
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01/testfile.rst
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:25 GMT']
Date: ['Wed, 20 Apr 2016 23:06:05 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 404, message: The specified resource does not exist.}
@ -423,16 +381,16 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:25 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:06 GMT']
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01/testdir01?restype=directory
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:25 GMT']
ETag: ['"0x8D368A30AFFD171"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:26 GMT']
Date: ['Wed, 20 Apr 2016 23:06:05 GMT']
ETag: ['"0x8D369705A8F4D9C"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:06 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 201, message: Created}
@ -442,16 +400,16 @@ interactions:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:25 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:06 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01/testdir01?restype=directory
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:26 GMT']
ETag: ['"0x8D368A30AFFD171"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:26 GMT']
Date: ['Wed, 20 Apr 2016 23:06:06 GMT']
ETag: ['"0x8D369705A8F4D9C"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:06 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
@ -462,7 +420,7 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:26 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:06 GMT']
x-ms-meta-a: [b]
x-ms-meta-c: [d]
x-ms-version: ['2015-04-05']
@ -471,9 +429,9 @@ interactions:
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:25 GMT']
ETag: ['"0x8D368A30B3E977A"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:26 GMT']
Date: ['Wed, 20 Apr 2016 23:06:06 GMT']
ETag: ['"0x8D369705ADEB99C"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:07 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
@ -483,16 +441,16 @@ interactions:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:26 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:06 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01/testdir01?restype=directory&comp=metadata
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:25 GMT']
ETag: ['"0x8D368A30B3E977A"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:26 GMT']
Date: ['Wed, 20 Apr 2016 23:06:07 GMT']
ETag: ['"0x8D369705ADEB99C"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:07 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-meta-a: [b]
x-ms-meta-c: [d]
@ -505,16 +463,16 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:26 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:07 GMT']
x-ms-version: ['2015-04-05']
method: PUT
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01/testdir01?restype=directory&comp=metadata
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:26 GMT']
ETag: ['"0x8D368A30B9F6CC5"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:27 GMT']
Date: ['Wed, 20 Apr 2016 23:06:07 GMT']
ETag: ['"0x8D369705B3468C1"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:07 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
@ -524,16 +482,16 @@ interactions:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:26 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:07 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01/testdir01?restype=directory&comp=metadata
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:27 GMT']
ETag: ['"0x8D368A30B9F6CC5"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:27 GMT']
Date: ['Wed, 20 Apr 2016 23:06:07 GMT']
ETag: ['"0x8D369705B3468C1"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:07 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
@ -545,7 +503,7 @@ interactions:
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-content-length: ['78']
x-ms-date: ['Tue, 19 Apr 2016 22:36:27 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:07 GMT']
x-ms-type: [file]
x-ms-version: ['2015-04-05']
method: PUT
@ -553,9 +511,9 @@ interactions:
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:27 GMT']
ETag: ['"0x8D368A30BEE8A7B"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:27 GMT']
Date: ['Wed, 20 Apr 2016 23:06:07 GMT']
ETag: ['"0x8D369705B79E74A"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:08 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 201, message: Created}
@ -568,7 +526,7 @@ interactions:
Connection: [keep-alive]
Content-Length: ['78']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:27 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:07 GMT']
x-ms-range: [bytes=0-77]
x-ms-version: ['2015-04-05']
x-ms-write: [update]
@ -578,9 +536,9 @@ interactions:
body: {string: ''}
headers:
Content-MD5: [zeGiTMG1TdAobIHawzap3A==]
Date: ['Tue, 19 Apr 2016 22:36:27 GMT']
ETag: ['"0x8D368A30BF51BC3"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:27 GMT']
Date: ['Wed, 20 Apr 2016 23:06:07 GMT']
ETag: ['"0x8D369705B82C318"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:08 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 201, message: Created}
@ -590,29 +548,7 @@ interactions:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:27 GMT']
x-ms-version: ['2015-04-05']
method: HEAD
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01/testdir01/testfile.rst
response:
body: {string: ''}
headers:
Content-Length: ['78']
Content-Type: [application/octet-stream]
Date: ['Tue, 19 Apr 2016 22:36:27 GMT']
ETag: ['"0x8D368A30BF51BC3"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:27 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-type: [File]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:27 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:08 GMT']
x-ms-range: [bytes=None-]
x-ms-version: ['2015-04-05']
method: GET
@ -624,9 +560,9 @@ interactions:
Accept-Ranges: [bytes]
Content-Length: ['78']
Content-Type: [application/octet-stream]
Date: ['Tue, 19 Apr 2016 22:36:27 GMT']
ETag: ['"0x8D368A30BF51BC3"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:27 GMT']
Date: ['Wed, 20 Apr 2016 23:06:08 GMT']
ETag: ['"0x8D369705B82C318"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:08 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-type: [File]
x-ms-version: ['2015-04-05']
@ -637,7 +573,7 @@ interactions:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:28 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:08 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01/testdir01?restype=directory&comp=list
@ -648,7 +584,7 @@ interactions:
\ /></EnumerationResults>"}
headers:
Content-Type: [application/xml]
Date: ['Tue, 19 Apr 2016 22:36:28 GMT']
Date: ['Wed, 20 Apr 2016 23:06:08 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 200, message: OK}
@ -659,14 +595,14 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:28 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:08 GMT']
x-ms-version: ['2015-04-05']
method: DELETE
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01/testdir01/testfile.rst
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:27 GMT']
Date: ['Wed, 20 Apr 2016 23:06:08 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 202, message: Accepted}
@ -676,14 +612,14 @@ interactions:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:28 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:08 GMT']
x-ms-version: ['2015-04-05']
method: HEAD
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01/testfile.rst
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:28 GMT']
Date: ['Wed, 20 Apr 2016 23:06:07 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 404, message: The specified resource does not exist.}
@ -694,14 +630,14 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:28 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:08 GMT']
x-ms-version: ['2015-04-05']
method: DELETE
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01/testdir01?restype=directory
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:29 GMT']
Date: ['Wed, 20 Apr 2016 23:06:08 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 202, message: Accepted}
@ -711,18 +647,18 @@ interactions:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:29 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:09 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01/testdir01?restype=directory
response:
body: {string: "\uFEFF<?xml version=\"1.0\" encoding=\"utf-8\"?><Error><Code>ResourceNotFound</Code><Message>The\
\ specified resource does not exist.\nRequestId:edd70ad8-001a-0011-718b-9a8dff000000\n\
Time:2016-04-19T22:36:29.0889488Z</Message></Error>"}
\ specified resource does not exist.\nRequestId:762f8925-001a-008c-2059-9bf7bf000000\n\
Time:2016-04-20T23:06:09.6450198Z</Message></Error>"}
headers:
Content-Length: ['223']
Content-Type: [application/xml]
Date: ['Tue, 19 Apr 2016 22:36:28 GMT']
Date: ['Wed, 20 Apr 2016 23:06:08 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 404, message: The specified resource does not exist.}
@ -733,7 +669,7 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:29 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:09 GMT']
x-ms-meta-cat: [hat]
x-ms-meta-foo: [bar]
x-ms-version: ['2015-04-05']
@ -742,9 +678,9 @@ interactions:
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:29 GMT']
ETag: ['"0x8D368A30D2225A8"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:29 GMT']
Date: ['Wed, 20 Apr 2016 23:06:09 GMT']
ETag: ['"0x8D369705C540233"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:09 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 201, message: Created}
@ -754,16 +690,16 @@ interactions:
Accept-Encoding: [identity]
Connection: [keep-alive]
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:29 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:09 GMT']
x-ms-version: ['2015-04-05']
method: GET
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01/testdir02?restype=directory&comp=metadata
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:28 GMT']
ETag: ['"0x8D368A30D2225A8"']
Last-Modified: ['Tue, 19 Apr 2016 22:36:29 GMT']
Date: ['Wed, 20 Apr 2016 23:06:09 GMT']
ETag: ['"0x8D369705C540233"']
Last-Modified: ['Wed, 20 Apr 2016 23:06:09 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-meta-cat: [hat]
x-ms-meta-foo: [bar]
@ -776,14 +712,14 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:29 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:09 GMT']
x-ms-version: ['2015-04-05']
method: DELETE
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01/testdir02?restype=directory
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:29 GMT']
Date: ['Wed, 20 Apr 2016 23:06:09 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 202, message: Accepted}
@ -794,14 +730,14 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:30 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:09 GMT']
x-ms-version: ['2015-04-05']
method: DELETE
uri: https://travistestresourcegr3014.file.core.windows.net/testshare01?restype=share
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:29 GMT']
Date: ['Wed, 20 Apr 2016 23:06:10 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 202, message: Accepted}
@ -812,14 +748,14 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
User-Agent: [Azure-Storage/0.30.0 (Python CPython 3.5.1; Windows 10)]
x-ms-date: ['Tue, 19 Apr 2016 22:36:30 GMT']
x-ms-date: ['Wed, 20 Apr 2016 23:06:10 GMT']
x-ms-version: ['2015-04-05']
method: DELETE
uri: https://travistestresourcegr3014.file.core.windows.net/testshare02?restype=share
response:
body: {string: ''}
headers:
Date: ['Tue, 19 Apr 2016 22:36:29 GMT']
Date: ['Wed, 20 Apr 2016 23:06:10 GMT']
Server: [Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0]
x-ms-version: ['2015-04-05']
status: {code: 202, message: Accepted}