Index index by Group index by Distribution index by Vendor index by creation date index by Name Mirrors Help Search

python3-azurectl-3.0.2-bp153.1.13 RPM for noarch

From OpenSuSE Leap 15.3 for noarch

Name: python3-azurectl Distribution: SUSE Linux Enterprise 15 SP3
Version: 3.0.2 Vendor: openSUSE
Release: bp153.1.13 Build date: Mon Mar 1 09:49:45 2021
Group: Development/Languages/Python Build host: lamb62
Size: 480232 Source RPM: python3-azurectl-3.0.2-bp153.1.13.src.rpm
Packager: https://bugs.opensuse.org
Url: https://github.com/SUSE/azurectl
Summary: Command Line Interface to manage Microsoft Azure services
Management tool for the Microsoft Azure public cloud service.
It allows uploading, registering and maintaining OS images for
multiple Azure Account Subscriptions.

Provides

Requires

License

Apache-2.0

Changelog

* Wed Aug 09 2017 ms@suse.de
  - Bump version: 3.0.1 → 3.0.2
* Wed Aug 09 2017 ms@suse.de
  - Ran osc service localrun format_spec_file
    Make obs happy with regards to missing Copyright information
* Tue Aug 08 2017 ms@suse.de
  - Add azurectl to pypi
* Thu Aug 03 2017 ms@suse.de
  - Bump version: 3.0.0 → 3.0.1
* Wed Aug 02 2017 sean.marlow@suse.de
  - Make all imports absolute.
    Update all explicit relative imports to absolute imports.
* Thu Jul 13 2017 ms@suse.de
  - Refactor handling of request IDs
    Added unify_id method for request id validation
    The request id value from the Azure rest api is not consistently
    of the same type which makes it hard to handle the id if it could
    be a string or a number. This commit introduce a static method
    called unify_id which allows us to properly format the id into
    a common value so that azurectl can consume the information in
    the same way all over the place. So far unify_id just python
    formats the information into a string.
    For the handling of the cloud service request id an explicit
    conversion into a number is performed in addition to the
    refactoring code
* Wed Jul 12 2017 ms@suse.de
  - Refactor XZ reading of size bytes
    Implement a read buffer for XZ decompression. It's required that we
    can read an exact number of uncompressed bytes from the XZ stream.
    As the max_length parameter was added to the lzma.decompress()
    method with python 3.5 for the first time and we have to stay
    compatible with 3.4 a self written solution to this problem was
    required
* Tue Jul 11 2017 ms@suse.de
  - Bump version: 2.3.2 → 3.0.0
* Tue Jul 11 2017 ms@suse.de
  - Refactor XZ uncompressed_size method
    Use lzma seek in stream instead of calling xz to lookup
    the uncompressed size.
* Fri Jul 07 2017 ms@suse.de
  - Move azurectl code base and package to python3
* Tue Jun 27 2017 sean.marlow@suse.de
  - Add requirement for pyOpenSSL.
    Remove requests and dnspython from requirements.
  - Requests is indrectly required by azure sdk.
  - dnspython is not required, build and tests all pass without.
* Tue May 09 2017 ms@suse.de
  - Fixed typo is vs. it
* Fri Apr 28 2017 jmason@suse.de
  - Fixup some github-flavored-markdown style issues
* Fri Apr 07 2017 ms@suse.de
  - Bump version: 2.3.1 → 2.3.2
* Mon Apr 03 2017 ms@suse.de
  - Be more clear on the reboot type
    Update code comment explaining why we can't really wait
    for a soft reboot through the API to complete
* Fri Mar 31 2017 ms@suse.de
  - Follow up fix for vm wait states
    On reboot no state change can be determined from the API.
    Thus we define the safe default and wait for the ReadyRole
    even though the vm might already be in that state before
    reboot
* Tue Mar 21 2017 sean.marlow@suse.de
  - Fix mutable default values.
    Default values should not contain mutable objects such as lists.
* Tue Mar 21 2017 sean.marlow@suse.de
  - Remove result not used in tests.
* Tue Mar 21 2017 sean.marlow@suse.de
  - Add azurectl compute vm start.
* Wed Mar 15 2017 ms@suse.de
  - Added azurectl compute vm status
    Allows to retrieve the current status of the virtual machine.
    In addition the wait behavior was refactored to actually wait
    for the vm command to complete. This means waiting for a specific
    virtual machine status or status change
* Wed Mar 15 2017 jmason@suse.de
  - Add --storage-container arg to global storager cmd
    The argument '--storage-container' was not defined for the top-level
    storage command, causing an error when using it.
    Resolves https://github.com/SUSE/azurectl/issues/215
* Mon Mar 13 2017 sean.marlow@suse.de
  - Update docs and docstrings to match correct order.
    Order should be by CRUD and alpha.
    In delete, show and update compare endpoint names case
    insensitive.
* Fri Mar 10 2017 sean.marlow@suse.de
  - Add update method to instance endpoint.
    Add method and cli option to update an existing endpoint
    on an instance. All args can be changed except the endpoint
    name.
* Fri Mar 03 2017 jmason@suse.de
  - Updating completion script; generated during build.
* Fri Mar 03 2017 jmason@suse.de
  - Bump version: 2.3.0 → 2.3.1
* Fri Mar 03 2017 jmason@suse.de
  - Remove redundant/conflicting README instructions
* Fri Mar 03 2017 jmason@suse.de
  - Use absolute imports
    Relative imports fail when imported from a different scope.
* Wed Mar 01 2017 jmason@suse.de
  - Bump version: 2.2.6 → 2.3.0
* Fri Feb 17 2017 sean.marlow@suse.de
  - Raise AzureEndpointDelete error instead of Exception.
    And re-raise error. Use more verbose index name for enumeration.
* Thu Feb 16 2017 jmason@suse.de
  - Add --blob-name argument to `compute data-disk attach`
* Thu Feb 16 2017 jmason@suse.de
  - Create data-disks during attach, as necessary.
* Thu Feb 16 2017 jmason@suse.de
  - Add an error for DataDisk Attach
* Thu Feb 16 2017 sean.marlow@suse.de
  - Use block if statement.
    Add test to cover list method with no endpoints.
* Thu Feb 16 2017 jmason@suse.de
  - Refactor vhd extension stripping into a function
* Thu Feb 16 2017 sean.marlow@suse.de
  - Fix methods if no endpoints.
    Azure is returning a None type instead of an empty list if no
    endpoints exist. Check for None in show and list method.
    In create method create a new instance of endpoints list if
    it is None for appending the new endpoint.
    In delete return an error if the endpoint is not foud in the list
    or if there are no endpoints.
    In show endpoint method return from for loop.
    If endpoint is found return from for loop. Otherwise if loop
    finishes raise exception, endpoint not found.
* Tue Feb 14 2017 jmason@suse.de
  - Delete single instance with delete_role
    Each cloud-service created through azurectl has a single deployment which
    defines the public network configuration for the cloud-service, including
    a reserved-ip if desired.
    Each instance (VM) is created with a role, which includes endpoint mapping
    for the specific instance from the cloud-service.
    A cloud-service with one instance has one deployment, and one role.
    A cloud-service with N instances has one deployment, and N roles.
    Therefore; deleting the deployment is an incorrect action when a single
    instance is targeted for deletion; the instance's role should be deleted
    instead.
    See https://github.com/Azure/azure-sdk-for-python/blob/master/azure-servicemanagement-legacy/azure/servicemanagement/servicemanagementservice.py#L1599
* Mon Jan 30 2017 ms@suse.de
  - Update help message for resource deallocation
    Be more clear on what happens with the static ip address
    on shutdown and the request to deallocate the used resources
* Mon Jan 30 2017 ms@suse.de
  - Added compute vm shutdown command
    Allows to shut down a virtual machine instance. Also taking
    into account if the used resources should be deallocated or
    not. This Fixes #200
* Thu Jan 19 2017 ms@suse.de
  - Bump version: 2.2.5 → 2.2.6
* Wed Jan 18 2017 sean.marlow@suse.de
  - Combine request status tests.
    Test for Failure and confirm both failure
    message and result exist in resulting dict.
* Wed Jan 18 2017 sean.marlow@suse.de
  - Return disctionary status from request_status.
    The get_operation_status command from azure SDK
    is returning an Operation object not a string.
    Return a dictionary with the result status plus
    the error message if the request has failed.
* Wed Jan 11 2017 ms@suse.de
  - retry operation status result on failure
    If the operation status can't be retrieved, try again for
    several times before raising an error. Fixes #199
* Thu Dec 15 2016 ms@suse.de
  - Bump version: 2.2.4 → 2.2.5
* Wed Dec 14 2016 jmason@suse.de
  - Adjust data-disk size for vhd footer
    Fixes #197
* Wed Dec 14 2016 ms@suse.de
  - Bump version: 2.2.3 → 2.2.4
* Mon Dec 12 2016 jmason@suse.de
  - Remove unused arguments.
* Mon Dec 12 2016 jmason@suse.de
  - Only upload vhd metadata on data-disk create
    The only content in an empty Azure data-disk is the
    fixed VHD footer, so instead of creating and reading
    an arbitary-sized empty file, just upload the footer
    data.
* Mon Oct 31 2016 ms@suse.de
  - Bump version: 2.2.2 → 2.2.3
* Mon Oct 31 2016 ms@suse.de
  - Tracker commit for bnc#1007751
    Fixup non conforming data disk setup
* Mon Oct 31 2016 ms@suse.de
  - Bump version: 2.2.1 → 2.2.2
* Mon Oct 31 2016 ms@suse.de
  - Append VHD footer to the end of the disk
* Sun Oct 30 2016 ms@suse.de
  - Fixup data disk creation
    The data disk file must be of the specified size in sparse
    containing the vhd metadata at the end of the disk. Azure
    only supports fixed size VHD's
* Wed Oct 26 2016 ms@suse.de
  - Bump version: 2.2.0 → 2.2.1
* Wed Oct 26 2016 ms@suse.de
  - Add man information about default data disk size
* Fri Oct 21 2016 ms@suse.de
  - Update data-disk manual page
    The man page for this command was not in line with the
    current state of the command and its subcommands. This
    Fixes #193
* Fri Oct 21 2016 ms@suse.de
  - Add missing data-disk attach subcomand help
* Fri Oct 14 2016 ms@suse.de
  - Update bash completion
    On make build the bash completion is automatically updated
    to the latest version. Thus it's not required to keep an
    up to date version of the file in the git repo. However,
    it also does not hurt and allows to make use of the latest
    completion from within a development environment
* Thu Oct 13 2016 cole.mickens@suse.de
  - Bump version: 2.1.1 -> 2.2.0
* Tue Sep 20 2016 cole.mickens@suse.de
  - add --show-in-gui and --recommended-vm-size to compute image update + tests
* Tue Sep 20 2016 cole.mickens@suse.de
  - Document: storage disk upload skips zero'd blocks
* Fri Sep 16 2016 ms@suse.de
  - Bump version: 2.1.0 → 2.1.1
* Fri Sep 16 2016 ms@suse.de
  - Tracker commit for package update (bnc#999200)
* Fri Sep 16 2016 ms@suse.de
  - Rebuild bash completion
* Fri Sep 16 2016 ms@suse.de
  - Bump version: 2.0.7 → 2.1.0
* Thu Sep 15 2016 jmason@suse.de
  - Remove line breaks from manpage source.
* Wed Sep 14 2016 ms@suse.de
  - Fixup command order following CRUD
* Wed Sep 14 2016 ms@suse.de
  - Update reserved_ip manual page
    Added information about reserved_ip associate and disassociate
    commands
* Wed Sep 14 2016 ms@suse.de
  - Added compute reserved-ip associate/disassociate
* Wed Sep 14 2016 ms@suse.de
  - Added reserved_ip associate/disassociate methods
* Tue Sep 13 2016 ms@suse.de
  - Fixup unit tests
    Some unit tests open a network connection and are not correctly patched
* Tue Sep 13 2016 ms@suse.de
  - Fixed setup.cfg
    WC1 None [pytest] section in setup.cfg files is deprecated,
    use [tool:pytest] instead.
* Tue Sep 13 2016 ms@suse.de
  - Update install-azure-sdk-from-git
    Use dev branch by default
* Tue Sep 13 2016 ms@suse.de
  - Fixup version for future module in setup.py
    The version of the future(s) module was accidentally used
* Tue Sep 06 2016 jmason@suse.de
  - Add  to docs
* Tue Sep 06 2016 jmason@suse.de
  - Generate SAS URLs for disk images
* Tue Sep 06 2016 jmason@suse.de
  - Fix missing returns in validation shortcuts
* Tue Sep 06 2016 jmason@suse.de
  - Move date validation out to validation helper
* Tue Sep 06 2016 jmason@suse.de
  - Move SAS permission validation out to validations helper
* Fri Aug 26 2016 ms@suse.de
  - Provide disk name example in help and man page
* Fri Aug 26 2016 ms@suse.de
  - Move from --identifier to --disk-basename option
    The new option name better describes the expected value
* Mon Aug 22 2016 ms@suse.de
  - Kudos to Steven Edouard
    https://gist.github.com/sedouard, great gist for creating blank vhd's
* Mon Aug 22 2016 ms@suse.de
  - Add future to travis requirements
* Mon Aug 22 2016 ms@suse.de
  - Refactor compute data-disk create command
    Really only create a data-disk and do not require an instance
    Use the attach command to make the created disk available in
    an instance
* Mon Aug 22 2016 ms@suse.de
  - Refactor data-disk create method
    The command required an existing instance to create a data disk
    It should be possible to create and register data disks without
    immediately attaching them to a running instance. The workflow
    should be data-disk create followed by data-disk attach
* Mon Aug 22 2016 ms@suse.de
  - Add python future requirement
    future provides builtins.bytes support needed for creating
    empty VHD disks of a custom size
* Wed Aug 17 2016 jmason@suse.de
  - Extend scope of documentation to explain how and where customdata ends up
* Wed Aug 17 2016 ms@suse.de
  - Update compute data-disk command
    * add data-disk attach subcommand
      attach an existing data disk to the selected virtual machine
* Tue Aug 16 2016 ms@suse.de
  - Added attach method to DataDisk class
    Allows to attach an existing data disk to an instance
* Tue Aug 16 2016 jmason@suse.de
  - Accept string or file as customdata
* Tue Aug 16 2016 jmason@suse.de
  - MOAR UNDERSCORES
* Tue Aug 16 2016 jmason@suse.de
  - Fix a grammar error in docs
* Tue Aug 16 2016 jmason@suse.de
  - Simplify descriptions WRT base64-encoding of customdata
* Mon Aug 15 2016 jmason@suse.de
  - Fixup flake8 issue
* Mon Aug 15 2016 jmason@suse.de
  - Handle custom data via file or string on vm creation
    re: https://github.com/SUSE/azurectl/issues/177
    Also resolves an issue with double-encoding of customdata - the custom
    data supplied _should not_ be base64-encoded; this is handled by the
    API.
* Wed Aug 10 2016 ms@suse.de
  - Update manual page for data-disk command
* Wed Aug 10 2016 ms@suse.de
  - Update compute data-disk command
    * add data-disk detach subcommand
      detach a data disk from the selected virtual machine and
      retain the data disk vhd file
    * modify data-disk (delete | list | show) subcommands
      Allow them to work without an instance specification
    * add data-disk (list | show) attached subcommands
      Former list and show commands connected to an instance
      specification
* Wed Aug 10 2016 ms@suse.de
  - Refactor DataDisk class
    * do not require explicit set_instance method. It should be
      possible to construct an object of DataDisk without being
      force to manually run a second initialization method
    * change behaviour of show and list methods. Those actually
      list or show information for attached disks. Thus those are
      renamed to show_attached and list_attached. In addition
      the former show and list methods now provides information
      for all registered disks.
    * change behaviour of delete to allow deletion of the specified
      disk no matter if that disk is attached to an instance or not
    * introduce a detach method which allows to detach a data disk
      from an instance to set it free, for e.g deletion
    * move default LUN numbers to the Defaults namespace
* Wed Aug 10 2016 ms@suse.de
  - Show error details from docopt if present
* Wed Aug 10 2016 rjschwei@suse.de
  - Clarify the format of the password argument for VM creation in the help
    message
* Fri Jul 22 2016 ms@suse.de
  - Fixed OS image lookup in VirtualMachine
    Before we start an instance a check is made if the provided image
    is reachable by the cloud service. However if the image itself
    does not (or not yet) exist azurectl runs into an unhandled
    exception
* Thu Jul 21 2016 ms@suse.de
  - Update manual page for compute vm show
* Wed Jul 20 2016 ms@suse.de
  - Added compute vm show command
    show detailed information about all virtual machines running
    in the specified cloud service
* Wed Jul 20 2016 ms@suse.de
  - Added get_properties for cloud_service
    Retrieves cloud service attributes and all details about
    instances running in this cloud service
* Wed Jul 20 2016 ms@suse.de
  - Added --wait option for compute vm reboot
* Tue Jul 19 2016 ms@suse.de
  - Added documentation about compute vm reboot
* Tue Jul 19 2016 ms@suse.de
  - Added compute vm reboot command
* Tue Jul 19 2016 ms@suse.de
  - Added VirtualMachine reboot_instance method
* Thu Jul 14 2016 ms@suse.de
  - Update manual pages
    Added --wait options, fixup various markup issues
* Thu Jul 14 2016 ms@suse.de
  - Added --wait option for async commands
    Commands which comes back with a request id can be started
    with the --wait option. This causes the command to block the
    caller until the request status changes to a success state.
    There are commands like replication which implements the
    wait differently because the condition of success for the
    request is not enough. What exactly the command is waiting
    for needs to end up in the documentation
* Thu Jul 14 2016 ms@suse.de
  - Async commands are expected to return a request id
    The storage account update command should return a request id
    to allow for waiting like it is done with all other async
    methods returning a request id
* Thu Jul 14 2016 ms@suse.de
  - Refactor use of RequestResult in CliTask's
    Provide request_wait/request_status methods to be available
    for any command class inheriting from CliTask and adapt
    existing command implementations to make use of the methods
* Fri Jun 17 2016 ms@suse.de
  - Update README
    Fix zypper command for package pre conditions
* Tue Jun 14 2016 ms@suse.de
  - Bump version: 2.0.6 → 2.0.7
* Tue Jun 14 2016 ms@suse.de
  - Fixed license setup in spec file
* Tue Jun 14 2016 ms@suse.de
  - Bump version: 2.0.5 → 2.0.6
* Mon Jun 13 2016 ms@suse.de
  - Better message for default config file conflict
    If a default account configuration file from a former
    azurectl version was found, an error message explaining
    the possible options should be displayed
* Tue May 24 2016 jmason@suse.de
  - Bump version: 2.0.4 → 2.0.5
* Tue May 24 2016 jmason@suse.de
  - Use API lookup instead of DNS entry for cloud service check
* Tue May 24 2016 jmason@suse.de
  - Remove unnecessary blob service mapping
    blob service name is always the management url, without the
    'management.' prefix.
* Tue May 24 2016 jmason@suse.de
  - Bump version: 2.0.3 → 2.0.4
* Tue May 24 2016 jmason@suse.de
  - Add domain references for new UK regions
* Mon May 23 2016 ms@suse.de
  - Bump version: 2.0.2 → 2.0.3
* Mon May 23 2016 ms@suse.de
  - Fixed ReservedIp constructor
    We don't need storage account information here, Fixes #166
* Wed May 18 2016 jmason@suse.de
  - Bump version: 2.0.1 → 2.0.2
* Wed May 18 2016 jmason@suse.de
  - Automated update of completion script
* Mon May 16 2016 jmason@suse.de
  - Always parse region name the same way (with the same method)
    Config#__get_region_option() had its own implementation of choosing a region,
    which conflicted with Config#get_region_name(), so we dump it and use
    get_region_name() in both cases.
    Resolves https://github.com/SUSE/azurectl/issues/160
* Thu May 12 2016 jmason@suse.de
  'storage disk delete' uses blob-name argument
    resolves #163
* Mon May 09 2016 ms@suse.de
  - Better error message for storage/container config
    The information for the storage account and container is connected
    to a region section in the configuration file. This means if azurectl
    needs to read for example the name of the default storage container
    name configured for the default- or commandline provided region,
    it has to first read the region section. If the region section
    does not exist azurectl provides an error message to the user about
    the missing region, however the user requested information about the
    storage container and that could confuse users who do not know how
    the configuration file is structured. This patch puts together the
    complete set of information and forms a more clear error message
    for all data read from a region section in the configuration file
* Sun May 08 2016 ms@suse.de
  - Fixup VirtualMachine and CloudService instances
    The constructor requested information which is not always
    needed depending on the called instance methods. Therefore
    the class requests operational information like container
    names, region name, etc only when needed but not directly
    at instance creation time. Fixes #158
* Thu May 05 2016 rjschwei@suse.de
  - Add the --region global option to the account setup command sequence
    for clarity
    + We should assume a user is starting from scratch and has no default
      region in the configuration at this point
* Thu May 05 2016 rjschwei@suse.de
  - Add a tar target
    + The option will create a tarball that is suitable for local package
      builds and does not require a complete functioning development
      environment for azurectl. For releases the existing build target should
      be used.
* Thu May 05 2016 jmason@suse.de
  - Allow a region argument to bypass the config file
    There are specific cases where the region argument is valuable
    in a function, but not essential to the configuration file.
    An example is `storage account create`; it's necessary to define
    the region where the storage account will be placed, but a _specific
    storage account_ or a _specific container_ is not required (which is
    what the config provides); only the name of the region.
    In the event the region name is invalid, it will be reflected in an
    error raised by the upstream API.
* Wed May 04 2016 ms@suse.de
  - Added missing setup account test
    processing the account setup if no default configuration exists
    was not tested
* Wed May 04 2016 jmason@suse.de
  - Bump version: 2.0.0 → 2.0.1
* Wed May 04 2016 jmason@suse.de
  - Deployment slot is global to the cloud service
    ... therefore added roles are in the same deployment slot, so add_role
    doesn't accept this argument.
    Since we don't offer an option to choose a role (yet), I moved it out of
    the command code.
* Wed May 04 2016 ms@suse.de
  - Fixup role name on instance creation
    role_name = instance_name
* Tue May 03 2016 jmason@suse.de
  - Properly reference deployments and roles in data-disk functions.
* Tue May 03 2016 ms@suse.de
  - Added check for reserved_ip on instance creation
    Reserved IP name can only be assigned on initial deployment
* Tue May 03 2016 ms@suse.de
  - Delete create_reserved_ip_address handling
    azurectl has an explicit reserved_ip command for this purpose
* Tue May 03 2016 ms@suse.de
  - Check error code from get_deployment_by_name
    In case of an exception, check if the exception type is a
    ResourceNotFound error. In any other case raise
* Tue May 03 2016 jmason@suse.de
  - Add missing argument to 'compute endpoint delete'
* Tue May 03 2016 jmason@suse.de
  - Properly reference deployments and roles in endpoint functions.
* Tue May 03 2016 jmason@suse.de
  - Remove deprecated 'compute storage' section from manpage
    Commands have moved to 'storage disk' and 'storage container'
    commands, which are already documented.
    Resolves https://github.com/SUSE/azurectl/issues/149
* Tue May 03 2016 ms@suse.de
  - Wait for request to complete on reserved_ip setup
* Mon May 02 2016 ms@suse.de
  - Refactor check for deployment
* Sun May 01 2016 ms@suse.de
  - Make name argument mandatory for container create
    If the container name is optional on create, it is taken from
    the region section of the config file. However if the config
    file does not contain a region section it is not possible to
    create a container. This commit solves the chicken & egg
    problem. Related to #124
* Sun May 01 2016 ms@suse.de
  - Update README
    More detailed information about the account setup
    Fixes #124
* Sun May 01 2016 ms@suse.de
  - Fixed deployment label setup on instance creation
    A deployment label can be specified on initial deployment only
* Sun May 01 2016 ms@suse.de
  - Fixed reserved ip setup on instance creation
    A reserved IP address name can be specified on initial deployment
    and requires a create_reserved_ip_address call before. Additional
    instances in the same deployment cannot be instanciated with a
    reserved IP address name according to the current add_role
    implementation. Related to #144
* Sun May 01 2016 ms@suse.de
  - Fixed instance creation if deployment exists
    check if the virtual machine deployment already exists. If so
    any new instance must be created as additional role to the
    deployment. Only the initial virtual machine instance must
    be created as a new deployment for the selected cloud service
    Fixes #144
* Sat Apr 30 2016 ms@suse.de
  - Update README
    Information how to build rpm package
* Sat Apr 30 2016 ms@suse.de
  - Configuration file compatibility
    prior to this release azurectl allowed multiple account
    sections in one config file. In order to prevent the
    configuration of duplicate and potentially inconsistent
    account configurations this patch checks the account
    sections of an existing default config file for conflicts
    Fixes #138
* Fri Apr 29 2016 ms@suse.de
  - Not all operations requires a region setup
    Follow up fix for 'azurectl --region <name> compute image list'
    This operation doesn't require storage information from the
    region. If the region name is given this is enough. Fixes #140
* Fri Apr 29 2016 ms@suse.de
  - Provide subcommand help as usage information
    Fixes #139
* Fri Apr 29 2016 ms@suse.de
  - Update usage information for global options
    Depending on the selected service different global options
    are available. This patch categorizes the global option
    information to be specific for the selected service.
    Fixes #137
* Fri Apr 29 2016 ms@suse.de
  - Not all operations requires a region setup
    azurectl operations like 'storage account list' or 'compute vm types'
    as well as 'compute vm regions' do not require a region setup in the
    configuration file. In addition we allow to setup the account with
    the region setup to be optional but the code always reads in a default
    region setup. Therefore this commit changes the behaviour to read
    the region setup only when required and allows for operations without
    a region setup. This is related to Issue #124
* Fri Apr 29 2016 ms@suse.de
  - Fixed typo loction -> location
* Thu Apr 28 2016 ms@suse.de
  - Bump version: 1.8.1 → 2.0.0
* Thu Apr 28 2016 ms@suse.de
  - Prevent double render on usage
* Wed Apr 27 2016 jmason@suse.de
  - Add some scope to the docopts
    Use the brief descriptions of function scope, WRT Azure, with
    the docopts as well.
    Inspired by Robert's request for an explanation of the endpoint
    commands.
* Wed Apr 27 2016 jmason@suse.de
  - Fix up manpages
    * Reorder commands and options in manpages to agree with docopts.
    * Add missing commands/options in manpages and docopts.
    * Add brief descriptions to manpages explaining the scope of
      functionality within the Azure framework
* Wed Apr 27 2016 jmason@suse.de
  - Add missing sections to the root manpage
* Wed Apr 27 2016 ms@suse.de
  - Fixed completion generator
* Wed Apr 27 2016 jmason@suse.de
  - Sort subcommands based on the sorting rules.
* Wed Apr 27 2016 jmason@suse.de
  - Add subcommand sorting rules to README.
* Wed Apr 27 2016 ms@suse.de
  - Fixed docopt setup for compute image update
    Options for the image update command were not part of
    the usage help
* Wed Apr 27 2016 ms@suse.de
  - Fixed docopt setup for compute image --name
    Be more consistent what --name is used for in the compute
    image command
* Wed Apr 27 2016 ms@suse.de
  - Fixed docopt setup for compute image --label
    Be more clear and consistent in the docopt specification
    for the --label option in the compute image command
* Wed Apr 27 2016 jmason@suse.de
  - Add an example date format, consistent with other date fields
* Tue Apr 26 2016 jmason@suse.de
  - Add a description for 'compute endpoint'
* Tue Apr 26 2016 jmason@suse.de
  - change --blob arg of 'compute image create' to --blob-name
* Tue Apr 26 2016 jmason@suse.de
  - change --name arg of 'storage disk upload' to --blob-name
* Tue Apr 26 2016 jmason@suse.de
  - Add details on 'container sas' subcommand
* Tue Apr 26 2016 ms@suse.de
  - Provide custom usage message
    Instead of the docopt way to show the usage information we
    provide an azurectl specific usage information. The usage
    data now always consists of
    * the generic call
      azurectl [global options] service <command> [<args>]
    * the command specific usage defined by the docopt string
      short form by default, long form with -h | --help
    * the global options
* Tue Apr 26 2016 jmason@suse.de
  - Sort commands and options in docopts alphabetically
* Tue Apr 26 2016 jmason@suse.de
  - Add a date format example
* Tue Apr 26 2016 jmason@suse.de
  - request commands were using a deprecated internal interface.
* Mon Apr 18 2016 jmason@suse.de
  - Use azurectl with a management cert instead of publishsettings
    A management cert allows the user to define the certificate used for API
    authentication, instead of one generated by Azure (which is included in the
    publishsettings file). Since no publishsettings file is available, the other
    data normally supplied must be explicitly set in the config as well.
* Wed Apr 13 2016 ms@suse.de
  - Update README
    Update developer documentation for changed API
* Wed Apr 13 2016 ms@suse.de
  - Update README
    azurectl caller semantic has changed
* Tue Apr 12 2016 jmason@suse.de
  - Remove references to publishsettings in Classes
    + Consolidate cert file construction and service instantiation in
      account
    + ServiceManager is no longer of value
    + ServiceManager-dependent classes are moved appropriately
* Tue Apr 12 2016 ms@suse.de
  - Move compute storage commands to storage service
    The subcommands from the compute storage task has been moved
    to the storage service. The following new commands exists
    * storage container
      list, show, create, delete, sas containers
    * storage share
      list, create, delete file shares
    * storage disk
      upload, delete, blob data, preferably vhd disks
      References:
      https://trello.com/c/vQ8nMkW3/138-azurectl-move-compute-storage
* Tue Apr 12 2016 ms@suse.de
  - Update documentation for storage commands
    The compute storage commands has been moved into the storage
    namespace. Thus the manual pages needs to follow the change
* Tue Apr 12 2016 jmason@suse.de
  - Add management_url account config attribute
    ... which precedes publishsettings options
* Tue Apr 12 2016 jmason@suse.de
  - mv StorageAccount to storage.account module
* Fri Apr 08 2016 ms@suse.de
  - Better user experience on command invocation
    If a command plugin can not be found show a list of possible
    actions for the selected service
* Fri Apr 08 2016 ms@suse.de
  - Use one source tarball
    Don't manage completion and man pages in extra source
    tarballs. The information has been placed into the
    MANIFEST.in configuration
* Fri Apr 08 2016 ms@suse.de
  - Adapt completion generator
    Only read source files with docopt information
* Fri Apr 08 2016 ms@suse.de
  - Added MANIFEST.in to describe package sources
* Fri Apr 08 2016 ms@suse.de
  - Refactor management into sub package
    management/service_manager.py
    management/endpoint.py
    management/reserved_ip.py
    management/request_result.py
    management/data_disk.py
* Fri Apr 08 2016 ms@suse.de
  - Refactor storage into sub package
    storage/page_blob.py
    storage/container.py
    storage/storage.py
* Fri Apr 08 2016 ms@suse.de
  - Refactor instance into sub package
    instance/image.py
    instance/cloud_service.py
    instance/virtual_machine.py
* Fri Apr 08 2016 ms@suse.de
  - Refactor config into sub package
    config/parser.py
    config/file_path.py
* Thu Apr 07 2016 ms@suse.de
  - Refactor accounts into sub package
    account/setup.py
    account/service.py
    account/storage.py
* Thu Apr 07 2016 ms@suse.de
  - Refactor commands into sub package
    commands/base.py
    commands/compute_data_disk.py
    commands/compute_endpoint.py
    commands/compute_image.py
    commands/compute_request.py
    commands/compute_reserved_ip.py
    commands/compute_shell.py
    commands/compute_storage.py
    commands/compute_vm.py
    commands/setup_account.py
    commands/storage_account.py
* Thu Apr 07 2016 ms@suse.de
  - Refactor utils into sub package
    utils/collector.py
    utils/output.py
    utils/filetype.py
    utils/validations.py
    utils/xz.py
* Wed Apr 06 2016 ms@suse.de
  - Complete deletion of account configuration
    If an account configuration was deleted which was also setup as
    the default configuration, the call left with a broken symlink.
    This is not a problem for azurectl but should be avoided
* Wed Apr 06 2016 ms@suse.de
  - Don't fail account configuration if storage exists
* Wed Apr 06 2016 ms@suse.de
  - Update compute storage man page
    Added missing/changed information about upload options
* Tue Apr 05 2016 ms@suse.de
  - Refactor ServiceManager base class
    Any class using ServiceManager as base class requires the presence
    of a storage account because the constructor of the base class
    always reads the storage key and name. However the assumption
    that every azure service management pointer provides access to
    a storage account is not necessarily true
* Tue Apr 05 2016 jmason@suse.de
  - Make blobname arg optional on `compute storage upload`
    It's common to use the source filename as the blob filename, and
    Storage#upload already handled that behavior, but it didn't account for how
    compressed files are handled automatically.
    + Make the argument optional in the command line
    + Properly adjust the filename of compressed files
* Tue Apr 05 2016 jmason@suse.de
  - Add domain suffixes for new Canadian regions
* Mon Apr 04 2016 ms@suse.de
  - Update manual page
    Information about --create option for account configuration
* Mon Apr 04 2016 ms@suse.de
  - Allow storage/container creation for account setup
    When configuring a new account setup an optional --create
    parameter exists which will create the provided storage
    account and the container as part of the azurectl account
    configuration
    References: https://trello.com/c/q09teezP/122-azurectl-better-initial-experience
* Fri Apr 01 2016 ms@suse.de
  - Fixed azure module names
    Use the module names a pip search returns results for
* Fri Apr 01 2016 jmason@suse.de
  - Flake8 fixes
* Fri Apr 01 2016 jmason@suse.de
  - When waiting for replication to complete, show a progress bar...
    ... or be --quiet.
* Fri Apr 01 2016 ms@suse.de
  - Allow setup of custom Azure SDK in virtualenv
    If the pip version of the Azure SDK and the Azure Storage SDK
    is not suitable for the development tasks we have to manually
    install the code from git into the virtualenv in order to allow
    azurectl to make use of this SDK version. This commit adds the
    helper script .virtualenv.install-azure-sdk which pulls the
    SUSE SDK fork to the local development tree.
* Thu Mar 31 2016 jmason@suse.de
  - Add argument to wait for replication to complete
    re: https://github.com/SUSE/azurectl/issues/89
* Thu Mar 31 2016 jmason@suse.de
  - Add a command to show image replication status
    re: https://github.com/SUSE/azurectl/issues/89
* Thu Mar 31 2016 ms@suse.de
  - Update README
    According to the changed setup account behaviour the documentation
    needs to be adapted too
* Thu Mar 31 2016 ms@suse.de
  - Man page update
    Style fixes
* Wed Mar 30 2016 ms@suse.de
  - Update man page for setup account default
* Wed Mar 30 2016 ms@suse.de
  - Refactor account setup default command
    Instead of making an account section the default a symlink to the
    specified account configuration file is created
    References: https://trello.com/c/q09teezP/122-azurectl-better-initial-experience
* Wed Mar 30 2016 ms@suse.de
  - Delete setup account add command
    Combine this command with the configure command
* Wed Mar 30 2016 ms@suse.de
  - Refactor account setup list command
    Instead of listing only the information for the default account
    the command now lists all configuration files and their setup.
    In addition an information which config file is used by default
    is part of the output
    References: https://trello.com/c/q09teezP/122-azurectl-better-initial-experience
* Tue Mar 29 2016 ms@suse.de
  - Update documentation
    Man page update for changed setup account command
* Tue Mar 29 2016 ms@suse.de
  - Refactor account setup command
    Instead of managing several accounts in one config file, each
    account is represented by its own config file. Support for
    account config files were already in place but the account
    setup command did not manage accounts as single files. This
    commit changes the behaviour as follows:
    setup account add/configure
    creates a new account configuration file and does not add
    sections to the existing configuration file
    setup account remove
    removes the account configuration file and not the
    section reference in an existing configuration file
    References: https://trello.com/c/q09teezP/122-azurectl-better-initial-experience
* Tue Mar 29 2016 ms@suse.de
  - Refactor loading of config file
    Instead of loading the config file any time a class inherits
    from CliTask just provide the load_config capability and
    let any task explicitly load the config file when required.
    In addition the load_config method creates a new default
    config file if no config file existed and the user requested
    the automatic configuration file setup on the commandline
    References: https://trello.com/c/q09teezP/122-azurectl-better-initial-experience
* Tue Mar 29 2016 jmason@suse.de
  - Add command to list storage account regions
* Mon Mar 28 2016 jmason@suse.de
  - Add a command for listing regions for starting a VM
* Mon Mar 28 2016 jmason@suse.de
  - Make `compute shell` command a bit more convenient
* Mon Mar 28 2016 jmason@suse.de
  - Add commands for managing VM endpoints
* Thu Mar 24 2016 jmason@suse.de
  - Update pre-commit hook for flake8
* Thu Mar 24 2016 jmason@suse.de
  - Add additional development dependencies to README
* Fri Mar 18 2016 ms@suse.de
  - Update and document virtualenv setup
    Along with the virtualenv setup the bin/azurectl entry
    point is no longer required. We get that for free
* Fri Mar 18 2016 ms@suse.de
  - Update documentation
    Refer to flake8 which covers the whole stack of conventions
* Fri Mar 18 2016 ms@suse.de
  - Cleanup storage account commands
    listing storage accounts is part of the azurectl storage
    command. The compute storage subcommand and its help has been
    deleted
    In addition the missing 'compute storage share help' command
    was added. The manual page existed but there was no way to call
    the help from azurectl itself
* Tue Mar 15 2016 toms@suse.de
  - Prepare Python virtual environment
    * Use two requirement files for development and normal
    * Add comment in setup.py's install_requires key
* Tue Mar 15 2016 toms@suse.de
  - Ignore .env/ directory
* Tue Mar 15 2016 ms@suse.de
  - Fixed exclude syntax for flake8
* Tue Mar 15 2016 ms@suse.de
  - No flake8 on travis for the azure storage sdk
* Tue Mar 15 2016 ms@suse.de
  - No flake8 on travis for the azure sdk
* Tue Mar 15 2016 ms@suse.de
  - Cleanup code according to flake8 checks
* Tue Mar 15 2016 ms@suse.de
  - Switch to flake8 checks
    flake8 is more accurate and precise in checking the code for
    e.g unused imports, unused variables and more
* Tue Mar 15 2016 ms@suse.de
  - Move data_disk unit tests to pytest
* Tue Mar 15 2016 toms@suse.de
  - Set x-Bit and add she-bang line
* Tue Mar 15 2016 toms@suse.de
  - Improve setup.cfg with pytest and other settings
  - Remove obsolete section nosetest (migrated to pytest)
  - Add section bdist_wheel for wheels support
  - Add section sdist to create tar.gz archive by default
* Tue Mar 15 2016 toms@suse.de
  - Restore .bumpversion.cfg and setup.cfg
    Seems setup.cfg was overwritten by .bumpversion.cfg accidently.
    Restored setup.cfg from commit e0d09e7e019
* Mon Mar 14 2016 jmason@suse.de
  - Privatize some methods
    re: https://github.com/SUSE/azurectl/pull/105#discussion_r55975836
* Mon Mar 14 2016 jmason@suse.de
  - Use upstream method for constructing blob URLs
    re: https://github.com/SUSE/azurectl/pull/105#discussion_r55976239
* Mon Mar 14 2016 ms@suse.de
  - Update travis setup for pytest
* Mon Mar 14 2016 ms@suse.de
  - Move from nose to pytest
    nose is no longer maintained, thus we have to move to another
    testing system in the long run. This commit updates the make
    setup to use pytest instead of nose. However all tests needs
    to be migrated to pytest now and no longer use nose/tools
    Fixes #102
* Sun Mar 13 2016 ms@suse.de
  - patch version bump
* Sun Mar 13 2016 ms@suse.de
  - Fixed upload performance issues
    Revert back to our page uploader and adapt the code to use
    the pageblobservice code from the latest azure storage sdk
* Sun Mar 13 2016 ms@suse.de
  - Delete custom coverage check
    Use --cover-min-percentage=100 from testing framework
* Fri Mar 11 2016 jmason@suse.de
  - Add command to list data disks on a VM
* Fri Mar 11 2016 jmason@suse.de
  - Add command for deleting a data disk from a VM.
* Fri Mar 11 2016 jmason@suse.de
  - Add command for showing a data disk
* Fri Mar 11 2016 jmason@suse.de
  - Bump version: 1.8.0 → 1.8.1
* Fri Mar 11 2016 jmason@suse.de
  - Add bumpversion config
* Fri Mar 11 2016 ms@suse.de
  - Prevent real HTTP connection in unit test
    storage_account_test::test_update_error did not mock
    get_storage_account_properties which causes a real network
    connection in the test
* Thu Mar 10 2016 ms@suse.de
  - Create a uniq disk identifier on vm create
    When instantiating a new VM, we create a disk file with the
    name '_instance', in the selected storage container. Since
    storage files have unique names an additional information
    is required to allow creation of multiple vm's from the same image
    in a selected region and container. The naming schema is as
    follows
    <cloud-service-name>_instance_<instance-name>_image_<image-name>
    This fixes #99
* Thu Mar 10 2016 jmason@suse.de
  - Add test coverage of alternative Container init scenarios
* Thu Mar 10 2016 jmason@suse.de
  - proposed solution to calling Container from StorageAccount
* Thu Mar 10 2016 jmason@suse.de
  - Break an overly long line
    re: https://github.com/SUSE/azurectl/pull/97#discussion_r55652223
* Wed Mar 09 2016 jmason@suse.de
  - Alphabetize azurectl exceptions
* Wed Mar 09 2016 jmason@suse.de
  - Inline a large string with dedent instead of breaking indent
    re: https://github.com/SUSE/azurectl/pull/98#discussion_r55486058
* Wed Mar 09 2016 jmason@suse.de
  - Add command for creating a data disk
    re: https://github.com/SUSE/azurectl/issues/103
* Tue Mar 08 2016 jmason@suse.de
  - Rename AsmObject to ServiceManager
    re: https://github.com/SUSE/azurectl/pull/97#discussion_r55359763
* Tue Mar 08 2016 jmason@suse.de
  - Add `compute shell` command -> drops to interactive python
* Fri Mar 04 2016 ms@suse.de
  - Update man page due to updated container options
* Fri Mar 04 2016 ms@suse.de
  - Update option handling for container operations
    * container show should have the option to specify a container name.
    * container create should have the container name as option and not
      as a mandatory information. If not provided the configured container
      name is used.
    * container delete should have the container name as mandatory option
      to let people think before they delete a container and its contents
* Fri Mar 04 2016 ms@suse.de
  - minor version bump
* Fri Mar 04 2016 ms@suse.de
  - Update spec template
    azurectl has to require the latest version of the
    azure-storage SDK to support the advanced blob
    operations
* Thu Mar 03 2016 ms@suse.de
  - Update storage code to match azure storage 0.30.0
* Thu Mar 03 2016 ms@suse.de
  - Added compute storage container create|delete
    Allows creation and deletion of containers for the
    configured storage account
* Tue Mar 01 2016 jmason@suse.de
  - Cleanup stdout printing in tests
* Fri Feb 26 2016 jmason@suse.de
  - Add commands for CRUD of storage accounts
    TODO: add tests
* Fri Feb 26 2016 jmason@suse.de
  - Add some general docopt validations
* Tue Feb 23 2016 jmason@suse.de
  - Refactor 'reserved_ip' command to 'reserved-ip'
    ... for consistency with other arguments; rework dynamic loaders
    to better handle multi-word commands.
* Tue Feb 23 2016 jmason@suse.de
  - Instead of importing , add local camelize method.
* Sun Feb 21 2016 jmason@suse.de
  - semantic version bump
* Sat Feb 20 2016 jmason@suse.de
  - Add reserved_ip support to creation of VMs.
* Sat Feb 20 2016 jmason@suse.de
  - Add manpage for 'reserved_ip' command space.
* Sat Feb 20 2016 jmason@suse.de
  - add 'reserved_ip delete' command
* Sat Feb 20 2016 jmason@suse.de
  - add 'reserved_ip create' command
* Fri Feb 19 2016 jmason@suse.de
  - Add 'reserved_ip show' command
* Fri Feb 19 2016 jmason@suse.de
  - Use an inflection to find task class instead of title()
* Fri Feb 19 2016 jmason@suse.de
  - Foundations: list reserved ips
* Thu Feb 18 2016 jmason@suse.de
  - semantic version bump
* Thu Feb 18 2016 jmason@suse.de
  - Bug in errormsg for VM domains
* Thu Feb 18 2016 jmason@suse.de
  - Add VM domains for disconnected regions
* Thu Feb 18 2016 ms@suse.de
  - Fixed doc/man Makefile
    Fail if one of the used tools to build the docs is not installed
    or throws an error
* Thu Feb 18 2016 jmason@suse.de
  - Indentation changes per review comments.
* Wed Feb 17 2016 jmason@suse.de
  - semantic version update
* Wed Feb 17 2016 jmason@suse.de
  - Blob storage in disconnected regions
    Define the 'host_base' for different azure disconnected regions;
    derive it from the management url, and pass it along.
    This enables working with blob storage in disconnect regions.
* Wed Feb 17 2016 jmason@suse.de
  - Use management URL from publishsettings
    Instead of defaulting to the standard management URL, explicitly send the
    management URL defined in publishsettings.
    This enables access to additional endpoints for detached regions.
* Fri Feb 12 2016 ms@suse.de
  - Added python-azure-sdk-storage package requirement
    Our Azure SDK package has been split into service and storage
    management. Therefore azurectl has to require both packages
* Thu Feb 04 2016 ms@suse.de
  - Added tests for PageBlob class
* Thu Feb 04 2016 ms@suse.de
  - Update Storage class tests
    Due to storage upload refactoring the tests needs to follow
* Thu Feb 04 2016 ms@suse.de
  - Complete tests for XZ class
* Thu Feb 04 2016 ms@suse.de
  - Refactor storage upload method
    Instead of a set of nested while loops a new iterator class
    called PageBlob has been introduced. This allows to encapsulate
    the details of a page update in a blob storage and also
    separates them from the actual upload code
* Tue Feb 02 2016 jmason@suse.de
  - Semantic minor version bump
* Tue Feb 02 2016 ms@suse.de
  - Update spec template to require azure sdk >= 1.0.3
* Tue Feb 02 2016 jmason@suse.de
  - Allow image upload to retry a block upload multiple times
    Instead of dying when we have a failure on a single block upload, try more than
    once. Number of times to try can be passed into the upload function as an
    argument, so we could, in theory, extend docopt to make this configurable.
* Fri Jan 22 2016 ms@suse.de
  - Make decorator methods real private
* Fri Jan 22 2016 ms@suse.de
  - Allow custom date formats
    Instead of forcing the user to a specific date format, it is
    now possible to pass in any format supported by python's date
    parser.
* Fri Jan 22 2016 ms@suse.de
  - Update os image test data to more realistic values
* Thu Jan 21 2016 ms@suse.de
  - Added date and time format check
    Make sure any data/time attributes in an os update call uses
    the Azure API date and time format. Fixes #87
* Thu Jan 21 2016 ms@suse.de
  - Fixed check for URI based OS image attributes
    After an update of e.g privacy_uri the API might have changed
    the value to be still correct but different from the original
    value provided on the commandline by e.g a slash (/).
    Fixes #86
* Mon Jan 18 2016 ms@suse.de
  - Updated unit tests to make travis happy again
    Travis has changed their pep8 default setup to be more strict.
    The tests failed if a comparison for a bool value is not done
    via 'if cond is True:' or 'if cond:'. In azurectl we have used
    the '==' operator to do the compare.
  - Updated unit tests to make travis happy again
    Travis has changed their pep8 default setup to be more strict.
    The tests failed if a comparison for a bool value is not done
    via 'if cond is True:' or 'if cond:'. In azurectl we have used
    the '==' operator to do the compare.
* Fri Jan 15 2016 jmason@suse.de
  - Add command for listing a single image, by name.
* Tue Dec 22 2015 ms@suse.de
  - Update travis SDK branch to master
    update_os_image_from_image_reference was merged by Microsoft
    into the SDK master branch. Therefore the travis checks are
    back on master
* Fri Dec 11 2015 ms@suse.de
  - Update spec file
    make sure to reference the correct SDK version
* Fri Dec 11 2015 ms@suse.de
  - minor version bump
    Support for updating OS image data has been added
* Fri Dec 11 2015 ms@suse.de
  - Add missing setuptools dependency to setup.py
* Tue Dec 01 2015 ms@suse.de
  - Update manual page
    man page data for azurectl compute image update
* Tue Nov 24 2015 jmason@suse.de
  - Add missing dependency
* Tue Nov 24 2015 ms@suse.de
  - Added support for replicating to all regions
    The option --regions supports the value 'all', this Fixes #77
* Mon Nov 23 2015 ms@suse.de
  - Added azurectl compute image update
    Allow to update OS image metadata, also check if updated
    data was really set. This Fixes #76
* Wed Nov 11 2015 ms@suse.de
  - minor version bump
    Azure SDK has our replication/publishing patches in a
    a different namespace. Thus this version and the dependency
    to the python-azure-sdk version were adapted
* Tue Nov 10 2015 ms@suse.de
  - update version requirement for legacy service
* Wed Nov 04 2015 ms@suse.de
  - Update module dependencies strictness
    Instead of requiring an exact version we opened this to
    match the major version and its releases. This fixes Issue #73
* Wed Nov 04 2015 ms@suse.de
  - Adaptions to replication/publishing SDK patches
    My patches to the Azure SDK were accepted, however I had to
    rename the methods and the class where they live after review
    by $MS. Thus these changes have an effect on azurectl too
* Wed Oct 21 2015 ms@suse.de
  - minor version bump
* Wed Oct 21 2015 ms@suse.de
  - Editorial review of message texts
* Wed Oct 21 2015 ms@suse.de
  - Editorial review of message texts
* Wed Oct 21 2015 ms@suse.de
  - Use the host DNS resolution setup
    Instead of directly asking a public DNS server we use
    the host DNS configuration and assume it's properly
    configured
* Tue Oct 20 2015 ms@suse.de
  - Editorial review of message texts
* Tue Oct 20 2015 ms@suse.de
  - Editorial review of message texts
* Tue Oct 20 2015 ms@suse.de
  - Added check for region consistency
    When running an instance of an image the following region
    constraints must be fulfilled
    * storage account region and cloud service region matches
    * image exists in cloud service region
      This patch adds those checks prior to running an instance
      and provides useful error messages to the user. This
      fixes Issue #69 and Issue #68
* Tue Oct 20 2015 ms@suse.de
  - Added check for cloudservice URL
    A requested cloud service will be registered as public address in Azure
    If this address is already in use the service comes back with a message
    that is not clear to the user how to fix the situation. This patch adds
    a DNS check prior to creating a new cloud service and provides a better
    error message to the user. This fixes Issue #67
* Mon Oct 19 2015 ms@suse.de
  - Update manual page
    Add information about minimal and mandatory sections in
    the configuration file
* Mon Oct 19 2015 ms@suse.de
  - Prevent misleading use of template name
* Mon Oct 19 2015 ms@suse.de
  - Update usage message for --account option
* Mon Oct 19 2015 ms@suse.de
  - show all image attributes
    azurectl compute image list did not show all information
* Mon Oct 19 2015 jmason@suse.de
  - Cascade up the location attribute removal.
* Fri Oct 16 2015 ms@suse.de
  - Update manual pages
    manual page update due to code refactoring from Issues #60 and #61
* Fri Oct 16 2015 ms@suse.de
  - Delete config file options
    storage_accounts and storage_containers are gone from the config
    file. They were only used for pre validation of specified storage
    account and container names. This validation is meaningless if
    the data provided in the config file is not valid compared to the
    service. In addition the combination of storage account and
    container was not validated at all. Thus these data was removed
    from the config file. If an invalid storage account or container
    or a combination of both is used azurectl will raise an exception
    with the data we get back from the service. This fixes Issue #61
* Fri Oct 16 2015 ms@suse.de
  - Refactor account handling
    Instead of managing multiple account sections in one configuration
    file we allow to select a configuration file by a template name
    The former --account parameter specified a section name in a
    configuration file. With this patch --account specifies a template
    name for a configuration file with the name
    ~/.config/azurectl/<template_name>.config
    Along with this change the options --config and --account are
    mutually exclusive. --config still allows to specify any filename.
    The basic structure of the configuration has not changed. Thus
    it is still possible to maintain multiple account sections in
    the configuration file, however only one can be actively selected
    by the default_account attribute from the DEFAULT section.
    Switching between accounts can be achieved by selecting a new
    default account via 'azurectl setup account default --name ...'
    but no longer via the --account option. This fixes Issue #60
* Fri Oct 16 2015 jmason@suse.de
  - Don't pass the 'media_location' attribute to python API
    Signed-off-by: James Mason <jmason@suse.com>
* Fri Oct 16 2015 ms@suse.de
  - Fixed completion generator
    mutual exclusive options were not parsed correctly
* Wed Oct 07 2015 ms@suse.de
  - Prefix accounts and regions in config file
* Tue Oct 06 2015 ms@suse.de
  - Fixed completion generator
    global options without a value contained the closing bracket
* Mon Oct 05 2015 ms@suse.de
  - major version bump
* Mon Oct 05 2015 ms@suse.de
  - Update manual pages and documentation
* Mon Oct 05 2015 ms@suse.de
  - Change configuration file structure
    Instead of one account section containing information about the Azure
    account as well as information about the storage/container account it
    is required to handle these information in separate sections. The reason
    for this change is that storage accounts can exist in different regions.
    Therefore the storage accounts should be placed in a region section
    This refactoring also impacts commands with --region and/or --container
    options because they are now handled as global options.
    The new configuration format is as follows:
    [DEFAULT]
    default_account = account:name
    default_region  = region:name
    [account:some-account]
    publishsettings = filename
    [region:some-region]
    default_storage_account   = name
    default_storage_container = name
    storage_accounts   = comma-list
    storage_containers = comma-list
    The account setup command allows to perform the following actions
    * add account and region sections
    * remove sections
    * set default account
    * set default region
      There is still room for improvement on the account setup command
      However that should be part of an additional implementation. This
      fixes Issue #57
* Fri Oct 02 2015 ms@suse.de
  - Revert "Add a script that enables running azurectl commands from the git project dir."
* Thu Oct 01 2015 jmason@suse.de
  - Add a script that enables runnign azurectl commands from the git project.
* Thu Oct 01 2015 jmason@suse.de
  - When creating a VM using an ssh key, wait for service to create the key dependency before continuing on.
* Mon Sep 28 2015 ms@suse.de
  - Some alpha order fixes
* Mon Sep 28 2015 ms@suse.de
  - Update manual page for setup account default
* Mon Sep 28 2015 ms@suse.de
  - Fixed config parser default section handling
    The DEFAULT section in an INI file is handled special by
    python's config parser implementation. Therefore this patch
    refactors the way we use the config file sections. Any
    section of the config file belongs to an account, the DEFAULT
    section allows to select one of those accounts as the default
    account with the default_account keyword. In addition the
    subcommand to handle the default account was added. This
    fixes Issue #51
* Fri Sep 25 2015 jmason@suse.de
  - Remove unnecessary imports and params
    re: https://github.com/SUSE/azurectl/pull/52#discussion_r40405561
    re: https://github.com/SUSE/azurectl/pull/52#discussion_r40405594
    re: https://github.com/SUSE/azurectl/pull/52#discussion_r40405682
* Fri Sep 25 2015 jmason@suse.de
  - Fixup app initialization of CliTask
    re: https://github.com/SUSE/azurectl/pull/52#discussion_r40405511
* Thu Sep 24 2015 jmason@suse.de
  - Override a smaller scoped  method instead of __init__.
    re: https://github.com/SUSE/azurectl/pull/52#discussion_r40293520
* Thu Sep 24 2015 jmason@suse.de
  - Simplify code around re-raising an error.
    "By using raise with no arguments, you will re-raise the last exception."
  - https://wiki.python.org/moin/HandlingExceptions
    re: https://github.com/SUSE/azurectl/pull/52#discussion_r40293596
* Thu Sep 24 2015 ms@suse.de
  - Update coverage reference
* Thu Sep 24 2015 ms@suse.de
  - Fixed code smells
* Wed Sep 23 2015 ms@suse.de
  - Major version bump
    Added request command
* Wed Sep 23 2015 jmason@suse.de
  - Update coverage
* Wed Sep 23 2015 jmason@suse.de
  - Allow `setup account add` to function without an existing config file
    Addresses Issue #48
* Wed Sep 23 2015 ms@suse.de
  - Cleanup misleading use of get_service member
* Wed Sep 23 2015 ms@suse.de
  - Separate commands and options in usage message
* Tue Sep 22 2015 ms@suse.de
  - Added request management
    Added support for obtaining request status and also waiting
    for request completion for service management tasks
* Tue Sep 22 2015 ms@suse.de
  - Minor coverage checker fix
    Don't fail on missing hash key
* Tue Sep 22 2015 ms@suse.de
  - Fixed wait_for_request_completion in vm create
    The RequestResult class expects a service management instance
    not a cloud service instance in order to get the request status.
* Fri Sep 18 2015 ms@suse.de
  - Minor version bump
    Follow XDG Base Directory Specification for config file
* Fri Sep 18 2015 ms@suse.de
  - Update README file and manual page
    Added information about config files to the README
    Added information about debug option in the man page
* Fri Sep 18 2015 ms@suse.de
  - Better error message for config file not found
* Fri Sep 18 2015 ms@suse.de
  - Make config file message a debug message
    Along with the change introduce a --debug global switch
* Fri Sep 18 2015 ms@suse.de
  - Display a log message which config file is used
* Fri Sep 18 2015 ms@suse.de
  - Make sure config file is read only once
    I realized any instance of AzureAccount reads in the config
    file. This is unwanted and should be done only once. In order
    to fix this in a clean way the AzureAccount needs to receive
    a Config instance instead of the data to create its own one
* Fri Sep 18 2015 ms@suse.de
  - Better error message for missing default config
* Thu Sep 17 2015 ms@suse.de
  - Moved primary default config file location
    With respect to the XDG Base Directory Specification the default
    config file location for azurectl has changed. The default config
    file is now searched in the following order and paths
    1. ~/.config/azurectl/config
    2. ~/.azurectl/config
    This fixes issue #41
* Fri Sep 11 2015 ms@suse.de
  - Move travis script to refer community project
    Instead of my personal (schaefi) fork we should have the forked
    repos for azure-storage and azure-sdk in the SUSE namespace to
    allow all team members to contribute
* Wed Sep 09 2015 jmason@suse.de
  - Bugfix: image deletion
    There are two types of images in Azure: OS Images, which are like 'templates',
    and VM Images, which are extracted from a running VM.
    Images are created with `create_os_image`; but the delete method attempted to
    use `delete_vm_image`.
* Wed Sep 09 2015 jmason@suse.de
  - Sub version bump for bugfix on subscription selection
* Wed Sep 09 2015 jmason@suse.de
  - Consistent naming of fixtures
* Wed Sep 09 2015 jmason@suse.de
  - Recomplete test coverage
* Wed Sep 09 2015 jmason@suse.de
  - Bugfix: Load certificates from the selected subscription
* Wed Sep 09 2015 jmason@suse.de
  - Rename a function for improved clarity
* Wed Sep 09 2015 ms@suse.de
  - Minor style fix to make the completion happy
* Wed Sep 09 2015 jmason@suse.de
  - Minor version bump
    + publishing with subscription-id config support
* Tue Sep 08 2015 jmason@suse.de
  - An Azure account may contain many subscriptions:
    + Add a config option to select a subscription id from a set
    + Default to the first subscription in an account if no id is supplied
* Tue Sep 08 2015 jmason@suse.de
  - Test for default behavior when publishsettings includes more than one subscription
* Tue Sep 08 2015 jmason@suse.de
  - Add XML prefix to existing publishsettings fixtures
* Fri Sep 04 2015 ms@suse.de
  - Fixed build for older distributions <= 1110
* Thu Aug 27 2015 ms@suse.de
  - Fixed requires in setup.py
    due to Azure renaming the module distribution the azurectl
    required names has to follow the change too
* Thu Aug 27 2015 jmason@suse.de
  - Update coverage
* Thu Aug 27 2015 jmason@suse.de
  - Version bump due to new features
* Thu Aug 27 2015 jmason@suse.de
  - Update python-dateutil to match the package we ship in Cloud:Tools
* Wed Aug 26 2015 ms@suse.de
  - Support for VM publishing
* Wed Aug 26 2015 ms@suse.de
  - Set travis target to development branch
    replication support has been added to the Azure SDK in the
    compute_management_service development branch. As long as this
    is not merged to Azure master testing needs to be done from there
* Wed Aug 26 2015 ms@suse.de
  - Support for VM image replication/unreplication
* Tue Aug 25 2015 ms@suse.de
  - Catch exceptions from get_storage_account_keys
* Mon Aug 24 2015 ms@suse.de
  - Update travis tests due to Azure SDK restructuring
    The Azure Storage part of the SDK has been moved into its own
    git repository. This testing and also packaging of the SDK
    has changed
* Tue Jul 28 2015 ms@suse.de
  - Fixed cloud service creation
    Instead of looking for a specific exception type on creation
    of a cloud service check before if the cloud service in question
    already exists by calling get_hosted_service_properties
* Tue Jul 28 2015 ms@suse.de
  - Avoid unspecified except blocks
* Sun Jul 26 2015 ms@suse.de
  - Update SDK version requirement
* Fri Jul 24 2015 ms@suse.de
  - Specify log string format arguments as parameters
* Fri Jul 24 2015 ms@suse.de
  - Specify log string format arguments as parameters
* Fri Jul 24 2015 ms@suse.de
  - Fixed Health indicator
* Fri Jul 24 2015 ms@suse.de
  - Added code health status to README
* Fri Jul 24 2015 ms@suse.de
  - Don't use old style class declarations
* Fri Jul 24 2015 ms@suse.de
  - Fixed unused imports and variables
* Fri Jul 24 2015 ms@suse.de
  - Fixed unused imports from OpenSSL.crypto
* Fri Jul 24 2015 ms@suse.de
  - Fixed unused imports
* Fri Jul 24 2015 ms@suse.de
  - Specify the scope of the travis requirements file
* Fri Jul 24 2015 ms@suse.de
  - Moved comment from travis.yml to requirements.txt
    The comment about azure usage from pip and the fact that
    we currently use the dev branch has been moved to the
    requirements.txt file
* Fri Jul 24 2015 tom_schr@suse.de
  - Renamed requirements.txt -> .requirements.txt
    As suggested by Marcus :)
* Thu Jul 23 2015 tom_schr@suse.de
  - Support pip requirements.txt for Travis too
* Thu Jul 23 2015 tom_schr@suse.de
  - Inserted requirements.txt for pip
    Useful as you don't need to change .travis.yml and only the
    file requirements.txt.
    For more information, see
    https://pip.readthedocs.org/en/1.1/requirements.html
* Tue Jul 21 2015 ms@suse.de
  - Update code base to use SDK's dev branch
    Microsoft will release the dev branch to be the new SDK.
    The version will be at 0.20.x and is incompatible to 0.11.x
    This commit updates azurectl to work with the dev branch
* Sun Jul 19 2015 ms@suse.de
  - Revert "Integrate with https://codecov.io"
    Sorry my fault, wanted to integrate with landscape.io and not
    with codecov. This reverts commit 956b81b
* Sun Jul 19 2015 ms@suse.de
  - Integrate with https://codecov.io
* Fri Jul 17 2015 ms@suse.de
  - Fixed completion generator
    Add special handling for --version which will also support
    a short option form -v added by James in the next commit
* Thu Jul 16 2015 jmason@suse.de
  - Short switch `-v` for version.
* Thu Jul 16 2015 tom_schr@suse.de
  - Added Travis batch image
* Wed Jul 15 2015 jmason@suse.de
  - Increment azure-sdk dependency to match version in OBS.
* Wed Jul 15 2015 jmason@suse.de
  - Remove logging noise during uploads.
    The scheduler was still triggering events during upload, causing lots of
    log noise around the progress bar.  Proposed solution is to add another
    class of event for logging to ignore.
    TODO: subversion bump on merge.
* Wed Jul 15 2015 jmason@suse.de
  - Minor version bump.
    In accordance with semantic versioning, both the `azure files` functions
    and the `compute vm` functions should have been accompanied by a version
    bump.
    Time to catch up.
* Wed Jul 08 2015 ms@suse.de
  - Added support for compute vm types
    List available instance types and their attributes
* Tue Jul 07 2015 ms@suse.de
  - Don't require test env to provide a config file
* Tue Jul 07 2015 ms@suse.de
  - Use of has_key is deprecated
* Tue Jul 07 2015 ms@suse.de
  - Test code coverage now at 100%
* Tue Jul 07 2015 ms@suse.de
  - Editorial review compute::vm manual page
* Mon Jul 06 2015 ms@suse.de
  - Don't require tests to have pjson installed
* Mon Jul 06 2015 ms@suse.de
  - Test code coverage now at 99%
* Sun Jul 05 2015 ms@suse.de
  - Added RequestResult class
    Encapsulate operations based on a request ID returned from the
    Azure API. This makes the code more explicit as well as allows
    to think of commands like
    azurectl compute request status --id <id>
    azurectl compute request wait --id <id>
    in the future
* Fri Jul 03 2015 ms@suse.de
  - Update spec file requirements
* Fri Jul 03 2015 ms@suse.de
  - Fixed completion generator
    Option values of the form [opt1=<val1> | opt2=<val2>] were
    not processed correctly
* Thu Jul 02 2015 ms@suse.de
  - Update manual page for azurectl compute vm
* Wed Jul 01 2015 ms@suse.de
  - Fixed shell quotation for bin/azurectl helper
* Mon Jun 29 2015 ms@suse.de
  - Added compute image delete command
    Along with virtual machine creation the deletion of the image
    created per instance should be possible. This also completes
    the image command
* Fri Jun 26 2015 ms@suse.de
  - Added support for virtual machine management
* Wed Jun 24 2015 ms@suse.de
  - Update travis setup to allow custom azure versions
* Wed Jun 24 2015 ms@suse.de
  - Added support for the Azure File Share service
    azurectl compute storage share list, create and delete will be
    added with this commit. Once created a file share can be mounted
    using a CIFS mount
* Wed Jun 10 2015 ms@suse.de
  - Update README
    signing git patches belongs to issue tracking and solving
* Wed Jun 10 2015 ms@suse.de
  - Update README
    Improve the flow of reading the doc in the sequence of the tasks
    in order to get started
* Wed Jun 10 2015 ms@suse.de
  - Update README
    Added information how to install azurectl via zypper
* Tue Jun 09 2015 ms@suse.de
  - Catch ConfigParser exceptions and handle them
    When adding a section we might run into error conditions like
    DuplicateSectionError. These were not handled and caused an
    Unexpected error plus trace
* Mon Jun 08 2015 ms@suse.de
  - Switch back to argument lists
    For details read Pull #27
* Mon Jun 08 2015 ms@suse.de
  - Update README, editorial changes
* Mon Jun 08 2015 ms@suse.de
  - Update README
    Make the section about signing git commits more readable due
    to style and format
* Mon Jun 08 2015 ms@suse.de
  - Added information about azurectl setup account use
* Fri Jun 05 2015 ms@suse.de
  - Prevent hard class dependency
    Don't create a hard dependency between commandline arguments
    and the implementation classes uses them
* Thu Jun 04 2015 ms@suse.de
  - Apply Sandy Metz, practical OO design pattern
    Use an argument hash for methods with more than one or two arguments
* Thu Jun 04 2015 ms@suse.de
  - Validate if given publish settings files exists
    On 'azurectl setup account add' check if the given publish
    settings file exists
* Thu Jun 04 2015 ms@suse.de
  - Fixed typo in exception message
    print information about filename not class name
* Wed Jun 03 2015 rjschwei@suse.de
  - Add information about signing of code commits
* Tue Jun 02 2015 ms@suse.de
  - Make sure warning messages are logged on stdout
* Tue Jun 02 2015 ms@suse.de
  - Update coverage reference
* Tue Jun 02 2015 ms@suse.de
  - Added azurectl setup service
    The command allows to manage the azurectl configuration by
    adding, deleting and listing configuration sections. This
    Fixes #10
* Tue Jun 02 2015 ms@suse.de
  - Fixed coverage checker
    Dealing with new source files not part of the reference data
    caused an exception in the checker. This is fixed treating new
    source files as 100% covered which are then compared with their
    real coverage value. If the new source can't be 100% covered
    an update of the reference data is needed via 'make coverage'
* Mon Jun 01 2015 ms@suse.de
  - Fixed build
    latest change to make build target breaks the build because the
    spec file template was not adapted accordingly
* Mon Jun 01 2015 ms@suse.de
  - Update spec file requirements
    Due to incompatible changes in the SDK version from Microsoft
    we explicitly bind azurectl to an SDK version >= 0.11.0
* Mon Jun 01 2015 ms@suse.de
  - Fixed setup.py azure module version dependency
* Sun May 31 2015 ms@suse.de
  - Fixed azurectl for use with latest SDK version
    The way how shared access signatures are created has changed incompatible
* Sat May 30 2015 rjschwei@suse.de
  - Provide version number in the tarballs generated by the 'make build'
    + It is easier for packagers to manage packaging if the version number
      is encoded in the name of the tarball. This is also common accepted
      practice. This fixes Issue #24
* Fri May 22 2015 ms@suse.de
  - get_operation_status called on the wrong object
    The status can be queried with a request ID from the
    ServiceManagementService and not from AsynchronousOperationResult
    This Fixes #22
* Wed May 20 2015 ms@suse.de
  - Fixed Makefile target: build
    Delete version information from setup.py on make build
    The rpm package and the packagemanager should handle this
    exclusively and we don't want the egg info to play a role
    here
* Wed May 20 2015 ms@suse.de
  - Version 0.8.4
    Final touches before first public release
* Tue May 19 2015 ms@suse.de
  - Pin required python modules to version in setup.py
* Tue May 19 2015 jmason@suse.de
  - Suggested changes to the existing manpage content
* Tue May 19 2015 jmason@suse.de
  - s/azure?cli/azurectl/g
    Tests pass, make makes
* Mon May 18 2015 ms@suse.de
  - Added test code coverage check
    Based on a reference file test/unit/coverage.reference.xml a check runs
    which compares the coverage ratio from a current nosetests coverage
    information with the reference data. If the code coverage decreases
    this is an error and coverage-check invoked by 'make test' with fail
* Fri May 15 2015 ms@suse.de
  - Log error messages to stderr and info to stdout
* Fri May 15 2015 ms@suse.de
  - Update travis setup
    Use an azure SDK version from pip compatible with the
    rpm packaged version we ship
* Fri May 15 2015 ms@suse.de
  - Filter out message from BackgroundSscheduler
    Appscheduler is auto connected to the python logging system
    and spawns info messages about each iteration. We don't want to
    see this information especially when we show a progress information
    from a long running process
* Fri May 15 2015 rjschwei@suse.de
  - Add information agreed upon during final code review
* Tue May 12 2015 ms@suse.de
  - Fixed setup
    the name of the dateutil module is python-dateutil
    In order to fix the requirement list the name must
    match
* Wed May 06 2015 ms@suse.de
  - Fixed man page typos
* Wed May 06 2015 ms@suse.de
  - Fixed missing logging.setLevel
    By default logging.INFO is used but other loglevels are possible
    if specified the call to make the level effective was missing
* Wed May 06 2015 ms@suse.de
  - Update README
* Wed May 06 2015 ms@suse.de
  - Added azure_command_help.txt reference data
    The README points to this information but it is not present in
    the repo. It was only present on the trello card
* Wed May 06 2015 ms@suse.de
  - Update README
* Wed May 06 2015 ms@suse.de
  - Update README
* Wed May 06 2015 ms@suse.de
  - Beautify error message output
    prevent unneeded class path information and use format
    instead of str to format output strings provided by the SDK
* Wed May 06 2015 ms@suse.de
  - Version 0.8.3
    Added support for Shared Access Signature URLs
* Tue May 05 2015 ms@suse.de
  - Added DataOutput class
    In order to support different output styles e.g json, XML or machine
    readable a new class to encapsulate this has been introduced. By
    default we will use json as output format. Along with this change
    also colored output is added which Fixes #11
* Tue May 05 2015 ms@suse.de
  - Fixed log.info call
    One overlooked old style info call, now clean with the
    python logging info implementation
* Tue May 05 2015 ms@suse.de
  - Fixed storage::container man page layout
    markdown to man conversion requires this style change
* Tue May 05 2015 ms@suse.de
  - Use python logging class
    The python logging class offers most of the functionality
    we need to log our messages. However it does not provide
    a progress indicator. Thus the logging class as it is used
    here is also extended by a progress indicator
* Tue May 05 2015 jmason@suse.de
  - Add manpage content & fix a typo in docopts.
* Tue May 05 2015 ms@suse.de
  - Added file type identification for upload source
    The azurectl compute storage upload command will now detect the
    filetype and apply the decompression only for detected types.
    If no supported decompressor type is found the file is uploaded
    as it is
* Tue May 05 2015 jmason@suse.de
  - Add additional dependency: dateutil
    The other additional includes are all part of the std. libraries
    (datetime, re, urlparse).
* Mon May 04 2015 jmason@suse.de
  - Change travis config to allow use of container service
* Mon May 04 2015 jmason@suse.de
  - Redefine test to be not bound to my specific signature.
* Mon May 04 2015 jmason@suse.de
  - Generate SAS URLS for storage containers
* Mon May 04 2015 jmason@suse.de
  - Change unknown exception to closest existing match.
* Mon May 04 2015 jmason@suse.de
  - Validate new arguments
* Fri May 01 2015 jmason@suse.de
  - Add task & interface for generating container SAS urls
* Wed Apr 29 2015 ms@suse.de
  - Fixed exception handling in AzureAccount
    exceptions from the service management service were
    not caught which caused an unexpected error
* Wed Apr 29 2015 ms@suse.de
  - Fixed install_requires in setup.py
* Tue Apr 28 2015 ms@suse.de
  - Use SDK make_blob_url to construct the media_link
* Tue Apr 28 2015 ms@suse.de
  - Added note that we need a get_media_link in the SDK
* Tue Apr 28 2015 ms@suse.de
  - Added azure sdk via pip to travis tests
* Tue Apr 28 2015 ms@suse.de
  - Only run pep8 tests in travis
    Because the azure-cloud-sdk is not available in pip
    the support for running unit tests is currently disabled
* Tue Apr 28 2015 ms@suse.de
  - Added pep8 to travis install section
* Tue Apr 28 2015 ms@suse.de
  - Added travis CI configuration
    The project will be added to the Travis Continous
    Integration Test framework
* Tue Apr 28 2015 ms@suse.de
  - Added tests for exceptions
    AzureBlobServicePropertyError, AzureOsImageCreateError
* Tue Apr 28 2015 ms@suse.de
  - Added azurectl compute image create command
    This command implements the creation of an Os image
    from a VHD disk image file stored in a Microsoft Azure
    storage container
* Mon Apr 27 2015 ms@suse.de
  - Fixed Makefile default target processing
* Mon Apr 27 2015 ms@suse.de
  - Better error message for unknown service command
* Sun Apr 05 2015 ms@suse.de
  - Update README
    style fix for list elements
* Sun Apr 05 2015 ms@suse.de
  - Update README
* Sun Apr 05 2015 ms@suse.de
  - Update README
    Add information about manual pages
* Sat Apr 04 2015 ms@suse.de
  - Integrate man pages to package
* Sat Apr 04 2015 ms@suse.de
  - Added manual page system
    Each command and subcommand understands 'help' and opens
    the appropriate man page for detailed information
* Sat Apr 04 2015 ms@suse.de
  - Added manual page templates for azurectl commands
* Fri Apr 03 2015 ms@suse.de
  - Fixed rpmlint warnings
* Fri Apr 03 2015 ms@suse.de
  - Fixed spec file template due to name change
* Fri Apr 03 2015 ms@suse.de
  - Fixed package build target
    completion source tarball does not contain the azurectl.sh
    completion script at the right path
* Fri Apr 03 2015 ms@suse.de
  - Fixed package build target
    completion source file has changed its name
* Fri Apr 03 2015 ms@suse.de
  - Fixed spec file due to name change
* Fri Apr 03 2015 ms@suse.de
  - Fixed azurectl completion
    Continue to complete possible option values for the used command
    even if one of the set is already used in the command line
* Fri Apr 03 2015 ms@suse.de
  - Fixed typo in AzureXZError exception message
* Fri Apr 03 2015 ms@suse.de
  - Update completion generator
    The previous version was based on completing positional
    parameters. But we don't want to use them thus the completion
    file generator has to adapt
* Fri Apr 03 2015 ms@suse.de
  - Don't use positional arguments in help command
* Thu Apr 02 2015 ms@suse.de
  - Don't use positional parameters
* Thu Apr 02 2015 ms@suse.de
  - Added unit tests for publish settings exceptions
* Wed Apr 01 2015 ms@suse.de
  - Added --quiet option for upload
    In addition document the available option values
* Wed Apr 01 2015 ms@suse.de
  - Handle error conditions for publishsettings import
    Exceptions for invalid XML and/or missing Subscription section
    are captured as well es decoding errors from pkcs12/base64
    decryption
* Tue Mar 31 2015 ms@suse.de
  - Fully automated creation of bash completion file
    completion_generator now based on python to parse the docopt
    string and turn that information into a bash completion file
* Mon Mar 30 2015 rjschwei@suse.de
  - Support a default location on non Unix based system
* Sun Mar 29 2015 ms@suse.de
  - Fixed task unit tests
    The tests should not read the default config file, they
    should read the unit test provided config file
* Sun Mar 29 2015 rjschwei@suse.de
  - Handle parse error
    + Provide the user with a reasonable message if there is an error
      parsing the config file.
* Sun Mar 29 2015 rjschwei@suse.de
  - Copyright needs a year to be valid
* Sun Mar 29 2015 rjschwei@suse.de
  - Add pre-commit hook
    + Run basic testing locally before commiting changes to the branch.
      This should help to catch the most obvious errors first.
* Sun Mar 29 2015 rjschwei@suse.de
  - rename the config class read() method to get_option()
    + The new name is less ganeric and reflects more closely the purpose
      of the method.
    - rjschwei@suse.de
  - Editorial changes and additions for README.md
    + Add dependency list
    + Add more information about how to contribute
* Sat Mar 28 2015 ms@suse.de
  - Fixed completion for current caller syntax
    This one is just a start. The completion script is a static
    version and not yet autogenerated from the source code
* Sat Mar 28 2015 ms@suse.de
  - Update location of global options in help message
* Sat Mar 28 2015 ms@suse.de
  - Update README due to to rename of the tool
* Sat Mar 28 2015 ms@suse.de
  - Adapt command usage help to new caller layout
* Fri Mar 27 2015 ms@suse.de
  - Adapt unit tests to new caller layout
* Thu Mar 26 2015 ms@suse.de
  - Restructure command call syntax due to review
* Wed Mar 25 2015 ms@suse.de
  - Clarify parameter names in __query_account_for()
* Wed Mar 25 2015 ms@suse.de
  - Perform align check prior to setting upload status
* Wed Mar 25 2015 ms@suse.de
  - Added doc string for all classes
* Wed Mar 25 2015 ms@suse.de
  - Fixed e-mail address in setup.py
* Wed Mar 25 2015 ms@suse.de
  - Rename exceptions to azurectl_exceptions
    Avoid confusion about generic python exception class
* Wed Mar 25 2015 ms@suse.de
  - Rename azure-cli command to azurectl
* Wed Mar 25 2015 ms@suse.de
  - Added Apache license and pre-able to source files
* Wed Mar 25 2015 ms@suse.de
  - Automatically know about new commands
* Wed Mar 25 2015 ms@suse.de
  - First series of patches according to style guide
    Also added a pep8 test target for the source and the tests
* Tue Mar 24 2015 ms@suse.de
  - Correct program name in version output
* Tue Mar 24 2015 ms@suse.de
  - Delete unused code
* Mon Mar 23 2015 ms@suse.de
  - Update bash completion
* Mon Mar 23 2015 ms@suse.de
  - Added missing test for storage_container method
* Mon Mar 23 2015 ms@suse.de
  - Update README
* Sat Mar 21 2015 ms@suse.de
  - Added default container name in config file
* Fri Mar 20 2015 ms@suse.de
  - Make sure the upload progress is shown
    At the end of an upload update the upload status to
    ensure a final result information
* Fri Mar 20 2015 ms@suse.de
  - Added percentage progress bar on upload
* Thu Mar 19 2015 ms@suse.de
  - Added python-azure-sdk requirement to spec file
* Tue Mar 17 2015 ms@suse.de
  - Fixed build
* Mon Mar 16 2015 ms@suse.de
  - Added completion data to build source
* Mon Mar 16 2015 ms@suse.de
  - Added automatic creation of completion script
* Mon Mar 16 2015 ms@suse.de
  - Switch back to default completion if no cmd result
* Mon Mar 16 2015 ms@suse.de
  - Added version.py
    export __version__ for the entire tool and use it at
    runtime and for building the package
* Mon Mar 16 2015 ms@suse.de
  - Added rpm package build infrastructure
* Thu Mar 12 2015 aosthof@suse.de
  - Proofread and correct README.md for azure-cli
* Thu Mar 12 2015 ms@suse.de
  - Update README
    Provide more detailed information how to download the
    publishsettings file for a specific azure account
* Tue Mar 10 2015 ms@suse.de
  - Read new zero_page only if required
* Tue Mar 10 2015 ms@suse.de
  - Explicitly set UTC timezone for upload
* Tue Mar 10 2015 ms@suse.de
  - APScheduler api has changed
    adapt code for use with non blocking scheduler
* Tue Mar 10 2015 ms@suse.de
  - Update README
* Sun Mar 08 2015 ms@suse.de
  - Added bash completion to install target
* Sun Mar 08 2015 ms@suse.de
  - Make --max-chunk-size a disk command option
    Remove the option from the global space
* Sun Mar 08 2015 ms@suse.de
  - Added bash completion
* Sun Mar 08 2015 ms@suse.de
  - Add a Config class and test
    Move the former account super class to be a config class
    because that's what it knows about. The single responsibility
    of the Config class is to be able to read the config file
    parameters
* Sun Mar 08 2015 ms@suse.de
  - No need to have an Account super class
    Since there is now only one AzureAccount class there is no
    need to have an account super class
* Sun Mar 08 2015 ms@suse.de
  - Switch to JSON output
* Sun Mar 08 2015 ms@suse.de
  - More precise help messages for container and disk
* Sun Mar 08 2015 ms@suse.de
  - Use named tuples instead of hash keys
    This is to keep the dot notation and the message based
    object design
* Sun Mar 08 2015 ms@suse.de
  - On XZ error raise useful exception
* Sun Mar 08 2015 ms@suse.de
  - Refactor account usage
    Use only one AzureAccount class to handle storage and
    service account credentials. They are tied together anyway
* Sat Mar 07 2015 ms@suse.de
  - Cleanup storage account unit test
    class stub names have to correspond with the implementation
* Sat Mar 07 2015 ms@suse.de
  - Make use of mock.patch
    Instead of global Fake class definitions use patch
    feature for unit tests
* Sat Mar 07 2015 ms@suse.de
  - Added 512 byte align check for PageBlobs
* Fri Mar 06 2015 ms@suse.de
  - Accept XZ compressed input for upload
    In addition an the option --name for disk upload has been added
    to specify the target name of the image file in the container
* Thu Mar 05 2015 ms@suse.de
  - Added XZ decompression class
* Thu Mar 05 2015 ms@suse.de
  - Update README
* Thu Mar 05 2015 ms@suse.de
  - Move container content <name> to disk command
    It feels more natural to allow listing the disk in a container
    by a disk list <container> command which also allows upload
    and deletion
* Tue Mar 03 2015 ms@suse.de
  - Fixed too many spaces in variable assignment
* Tue Mar 03 2015 ms@suse.de
  - Upload only non zero pages
    This implements a smarter handling of sparse file uploading
* Tue Mar 03 2015 ms@suse.de
  - Use put_page to allow offset based page updates
* Tue Mar 03 2015 ms@suse.de
  - Implement our own chunking in upload
    This is done to be more flexible in uploading big files as
    list of blocks. Better handling of sparse file uploads will
    be a follow up on this change
* Thu Feb 26 2015 ms@suse.de
  - Update README
* Thu Feb 26 2015 ms@suse.de
  - Update README
* Thu Feb 26 2015 ms@suse.de
  - Add used storage account name in container info
    When calling e.g 'container list' you get all container names
    but you don't know from which storage account name was used
    One would need to look at the config file to check which
    storage account name was configured which could be avoided
    by just adding this information to the output
* Thu Feb 26 2015 ms@suse.de
  - Added azure-cli storage command
    Allows to list names of storage accounts
* Thu Feb 26 2015 ms@suse.de
  - Added method to get storage names
    Added method StorageAccount::list() which returns the names
    of the available storage accounts within the subscription.
* Tue Feb 17 2015 ms@suse.de
  - Added list_tests and single test targets
* Tue Feb 17 2015 ms@suse.de
  - Fixed unit tests
    mocked classes are not reset which prevented the tests
    from being able to run separately
* Tue Feb 17 2015 ms@suse.de
  - Fixed typo, uppload -> upload
* Tue Feb 17 2015 ms@suse.de
  - Makefile target for test should be a phony target
* Wed Feb 11 2015 ms@suse.de
  - Don't require explicit import of task classes
* Wed Feb 11 2015 ms@suse.de
  - Move command docopt usage to task classes
    Cleanup and simplify task classes unit tests
* Tue Feb 10 2015 ms@suse.de
  - Delete unused get_command() call
* Thu Jan 22 2015 ms@suse.de
  - Add missing assertions to task tests
* Tue Jan 20 2015 ms@suse.de
  - Restructure command processing
    What should be done for a command and its options should
    be encapsulated in a task class which knows that
* Fri Jan 16 2015 ms@suse.de
  - Update README
* Fri Jan 16 2015 ms@suse.de
  - Retrieve account key from ServiceManagementService
* Fri Jan 16 2015 ms@suse.de
  - Update publish settings reader to schema v2.0
* Wed Jan 14 2015 ms@suse.de
  - Added unit tests for ServiceAccount
* Wed Jan 14 2015 ms@suse.de
  - Make use of publish settings file
* Tue Jan 13 2015 ms@suse.de
  - Added image command
    implemented service account handling and the list
    command which prints the available os images for
    the configured subscription
* Tue Jan 13 2015 ms@suse.de
  - Added info message if detailed help is missing
* Mon Jan 12 2015 ms@suse.de
  - Added disk command
    Implemented disk image upload and removal
* Sun Jan 11 2015 ms@suse.de
  - Document basic azure-cli behavior
* Wed Jan 07 2015 ms@suse.de
  - Initial azure commandline tool interface
    Start with a proposal for the azure-cli project including
    tests based on nose, commandline parsing based on docopt
    and an initial structure for implementing commands

Files

/etc/bash_completion.d/azurectl.sh
/usr/bin/azurectl
/usr/lib/python3.6/site-packages/azurectl
/usr/lib/python3.6/site-packages/azurectl-3.0.2-py3.6.egg-info
/usr/lib/python3.6/site-packages/azurectl-3.0.2-py3.6.egg-info/PKG-INFO
/usr/lib/python3.6/site-packages/azurectl-3.0.2-py3.6.egg-info/SOURCES.txt
/usr/lib/python3.6/site-packages/azurectl-3.0.2-py3.6.egg-info/dependency_links.txt
/usr/lib/python3.6/site-packages/azurectl-3.0.2-py3.6.egg-info/entry_points.txt
/usr/lib/python3.6/site-packages/azurectl-3.0.2-py3.6.egg-info/not-zip-safe
/usr/lib/python3.6/site-packages/azurectl-3.0.2-py3.6.egg-info/requires.txt
/usr/lib/python3.6/site-packages/azurectl-3.0.2-py3.6.egg-info/top_level.txt
/usr/lib/python3.6/site-packages/azurectl/__init__.py
/usr/lib/python3.6/site-packages/azurectl/__pycache__
/usr/lib/python3.6/site-packages/azurectl/__pycache__/__init__.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/__pycache__/app.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/__pycache__/azurectl.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/__pycache__/azurectl_exceptions.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/__pycache__/cli.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/__pycache__/defaults.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/__pycache__/help.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/__pycache__/logger.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/__pycache__/version.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/account
/usr/lib/python3.6/site-packages/azurectl/account/__init__.py
/usr/lib/python3.6/site-packages/azurectl/account/__pycache__
/usr/lib/python3.6/site-packages/azurectl/account/__pycache__/__init__.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/account/__pycache__/service.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/account/__pycache__/setup.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/account/service.py
/usr/lib/python3.6/site-packages/azurectl/account/setup.py
/usr/lib/python3.6/site-packages/azurectl/app.py
/usr/lib/python3.6/site-packages/azurectl/azurectl.py
/usr/lib/python3.6/site-packages/azurectl/azurectl_exceptions.py
/usr/lib/python3.6/site-packages/azurectl/cli.py
/usr/lib/python3.6/site-packages/azurectl/commands
/usr/lib/python3.6/site-packages/azurectl/commands/__init__.py
/usr/lib/python3.6/site-packages/azurectl/commands/__pycache__
/usr/lib/python3.6/site-packages/azurectl/commands/__pycache__/__init__.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/commands/__pycache__/base.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/commands/__pycache__/compute_data-disk.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/commands/__pycache__/compute_endpoint.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/commands/__pycache__/compute_image.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/commands/__pycache__/compute_request.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/commands/__pycache__/compute_reserved-ip.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/commands/__pycache__/compute_shell.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/commands/__pycache__/compute_vm.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/commands/__pycache__/setup_account.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/commands/__pycache__/storage_account.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/commands/__pycache__/storage_container.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/commands/__pycache__/storage_disk.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/commands/__pycache__/storage_share.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/commands/base.py
/usr/lib/python3.6/site-packages/azurectl/commands/compute_data-disk.py
/usr/lib/python3.6/site-packages/azurectl/commands/compute_endpoint.py
/usr/lib/python3.6/site-packages/azurectl/commands/compute_image.py
/usr/lib/python3.6/site-packages/azurectl/commands/compute_request.py
/usr/lib/python3.6/site-packages/azurectl/commands/compute_reserved-ip.py
/usr/lib/python3.6/site-packages/azurectl/commands/compute_shell.py
/usr/lib/python3.6/site-packages/azurectl/commands/compute_vm.py
/usr/lib/python3.6/site-packages/azurectl/commands/setup_account.py
/usr/lib/python3.6/site-packages/azurectl/commands/storage_account.py
/usr/lib/python3.6/site-packages/azurectl/commands/storage_container.py
/usr/lib/python3.6/site-packages/azurectl/commands/storage_disk.py
/usr/lib/python3.6/site-packages/azurectl/commands/storage_share.py
/usr/lib/python3.6/site-packages/azurectl/config
/usr/lib/python3.6/site-packages/azurectl/config/__init__.py
/usr/lib/python3.6/site-packages/azurectl/config/__pycache__
/usr/lib/python3.6/site-packages/azurectl/config/__pycache__/__init__.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/config/__pycache__/file_path.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/config/__pycache__/parser.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/config/file_path.py
/usr/lib/python3.6/site-packages/azurectl/config/parser.py
/usr/lib/python3.6/site-packages/azurectl/defaults.py
/usr/lib/python3.6/site-packages/azurectl/help.py
/usr/lib/python3.6/site-packages/azurectl/instance
/usr/lib/python3.6/site-packages/azurectl/instance/__init__.py
/usr/lib/python3.6/site-packages/azurectl/instance/__pycache__
/usr/lib/python3.6/site-packages/azurectl/instance/__pycache__/__init__.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/instance/__pycache__/cloud_service.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/instance/__pycache__/data_disk.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/instance/__pycache__/endpoint.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/instance/__pycache__/image.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/instance/__pycache__/reserved_ip.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/instance/__pycache__/virtual_machine.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/instance/cloud_service.py
/usr/lib/python3.6/site-packages/azurectl/instance/data_disk.py
/usr/lib/python3.6/site-packages/azurectl/instance/endpoint.py
/usr/lib/python3.6/site-packages/azurectl/instance/image.py
/usr/lib/python3.6/site-packages/azurectl/instance/reserved_ip.py
/usr/lib/python3.6/site-packages/azurectl/instance/virtual_machine.py
/usr/lib/python3.6/site-packages/azurectl/logger.py
/usr/lib/python3.6/site-packages/azurectl/management
/usr/lib/python3.6/site-packages/azurectl/management/__init__.py
/usr/lib/python3.6/site-packages/azurectl/management/__pycache__
/usr/lib/python3.6/site-packages/azurectl/management/__pycache__/__init__.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/management/__pycache__/request_result.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/management/request_result.py
/usr/lib/python3.6/site-packages/azurectl/storage
/usr/lib/python3.6/site-packages/azurectl/storage/__init__.py
/usr/lib/python3.6/site-packages/azurectl/storage/__pycache__
/usr/lib/python3.6/site-packages/azurectl/storage/__pycache__/__init__.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/storage/__pycache__/account.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/storage/__pycache__/container.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/storage/__pycache__/fileshare.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/storage/__pycache__/page_blob.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/storage/__pycache__/storage.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/storage/account.py
/usr/lib/python3.6/site-packages/azurectl/storage/container.py
/usr/lib/python3.6/site-packages/azurectl/storage/fileshare.py
/usr/lib/python3.6/site-packages/azurectl/storage/page_blob.py
/usr/lib/python3.6/site-packages/azurectl/storage/storage.py
/usr/lib/python3.6/site-packages/azurectl/utils
/usr/lib/python3.6/site-packages/azurectl/utils/__init__.py
/usr/lib/python3.6/site-packages/azurectl/utils/__pycache__
/usr/lib/python3.6/site-packages/azurectl/utils/__pycache__/__init__.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/utils/__pycache__/collector.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/utils/__pycache__/filetype.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/utils/__pycache__/output.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/utils/__pycache__/validations.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/utils/__pycache__/xz.cpython-36.pyc
/usr/lib/python3.6/site-packages/azurectl/utils/collector.py
/usr/lib/python3.6/site-packages/azurectl/utils/filetype.py
/usr/lib/python3.6/site-packages/azurectl/utils/output.py
/usr/lib/python3.6/site-packages/azurectl/utils/validations.py
/usr/lib/python3.6/site-packages/azurectl/utils/xz.py
/usr/lib/python3.6/site-packages/azurectl/version.py
/usr/share/man/man1/azurectl.1.gz
/usr/share/man/man1/azurectl::compute::data_disk.1.gz
/usr/share/man/man1/azurectl::compute::endpoint.1.gz
/usr/share/man/man1/azurectl::compute::image.1.gz
/usr/share/man/man1/azurectl::compute::request.1.gz
/usr/share/man/man1/azurectl::compute::reserved_ip.1.gz
/usr/share/man/man1/azurectl::compute::vm.1.gz
/usr/share/man/man1/azurectl::setup::account.1.gz
/usr/share/man/man1/azurectl::setup::account::region.1.gz
/usr/share/man/man1/azurectl::storage::account.1.gz
/usr/share/man/man1/azurectl::storage::container.1.gz
/usr/share/man/man1/azurectl::storage::disk.1.gz
/usr/share/man/man1/azurectl::storage::share.1.gz


Generated by rpm2html 1.8.1

Fabrice Bellet, Tue Apr 9 14:50:04 2024