Metadata-Version: 1.2
Name: python3-ipa
Version: 1.0.0
Summary: Package for automated testing of cloud images.
Home-page: https://github.com/SUSE/pubcloud/ipa
Author: SUSE
Author-email: public-cloud-dev@susecloud.net
License: GPLv3+
Description-Content-Type: UNKNOWN
Description: = ipa
        
        image:https://travis-ci.org/SUSE/ipa.svg?branch=master["Build Status", link="https://travis-ci.org/SUSE/ipa"]
        
        *IPA* (Image Proofing App)
        
        == overview
        
        *IPA* provides a command line utility to test images in the
        Public Cloud (AWS, Azure, GCE, etc.).
        
        With *IPA* you can now test custom images in a provider agnostic way with one
        tool and one API. In the first release, *IPA* supports the openSUSE and SLES
        distributions. It also supports the three largest cloud providers
        (AWS, Azure and GCE). However, it is intended to be distribution agnostic
        and framework transparent so both are easily extensible.
        
        For each distribution there are specific synchronization points that must be
        provided. These currently include soft reboot and system update. The synch
        points not only test functionality but also act as dividers to separate
        distinct sections of a test suite. For example you can run a test to ensure
        the proper repos exist before and after a system update. The system update
        synch point will guarantee the order of tests. Speaking of tests, if you're
        already familiar with Pytest conventions there's no need to learn a whole
        new unit testing framework. *IPA* is written in Python and leverages the
        Pytest framework through Testinfra.
        
        == Installation
        
        To install the package use the following commands as root:
        
        [source]
        ----
        zypper ar http://download.opensuse.org/repositories/Cloud:/Tools/<distribution>
        zypper refresh
        zypper in python3-ipa
        ----
        
        == Requirements
        
        * apache-libcloud
        * azure-common
        * azure-mgmt-compute
        * azure-mgmt-network
        * azure-mgmt-resource
        * Click
        * cryptography
        * paramiko
        * pycrypto
        * pytest
        * PyYaml
        * testinfra
        
        == Configuration
        
        The framework configuration is ini format ~/.config/ipa/config. Anything
        specific to the test framework can be found in this file. Thus anything
        that is cloud framework independent such as the test dir and results dir.
        
        [source,ini]
        ----
        [ipa]
        tests=~/ipa/tests/
        results=~/ipa/results/
        
        [ec2]
        region=us-west-1
        ----
        
        === Azure Configuration
        
        There is no additional configuration file used for Azure. All options
        should be placed in the *ipa* config file.
        
        === EC2 Configuration
        
        For testing EC2 instances *ipa* will use the ec2utils configuration file
        located at ~/.ec2utils.conf. See
        link:https://github.com/SUSE/Enceladus/tree/master/ec2utils[ec2utils] for an
        example configuration file.
        
        === GCE Configuration
        
        GCE uses service accounts for authentication. See
        link:https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances[GCE docs]
        for more info on creating a service account json file. The file must include
        a key pair for proper authentication. Additional configuration options can
        be placed in the `gce` section of the `ipa` configuration file.
        
        == Tests
        
        *ipa* uses the Testinfra package for writing unit tests. Testinfra leverages
        Pytest and provides modules such as Package, Process and Service to test the
        state of images. See the
        link:https://testinfra.readthedocs.io/en/latest/[Testinfra Docs] for more
        information on writing infrastructure tests.
        
        [NOTE]
        ====
        *ipa* currently passes the Pytest option `-x` (stop on first failure) through
        as `--early-exit`. If there's an interest or need for any other options/args
        please submit an issue to link:https://github.com/SUSE/ipa/issues[Github].
        ====
        
        == CLI Overview
        
        The CLI provides multiple subcommands to initiate image testing:
        
        `ipa test`::
        Test image in the given framework using the supplied test files.
        
        `ipa results`::
        Invokes the default show subcommand `ipa results show 1`.
        
        `ipa results clear`::
        Clear the results from the history file.
        
        `ipa results delete`::
        Delete the specified history item from the history log.
        
        `ipa results list`::
        Display list of results history.
        
        `ipa results show`::
        Display the results or log file for a history item.
        
        `ipa list`::
        Print a list of test files or test cases.
        
        == Issues/Enhancements
        
        Please submit issues and requests to
        link:https://github.com/SUSE/ipa/issues[Github].
        
        == Contributing
        
        Contributions to *ipa* are welcome and encouraged.
        See link:CONTRIBUTING.asciidoc[CONTRIBUTING] for info on getting started.
        
        == License
        
        Copyright (c) 2017 SUSE LLC.
        
        Distributed under the terms of GPL-3.0+ license, see
        link:LICENSE[LICENSE] for details.
        
Keywords: ipa
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Testing
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Requires-Python: >=3.4
