This file is indexed.

/usr/lib/python2.7/dist-packages/os_faults-0.1.17.egg-info/PKG-INFO is in python-os-faults 0.1.17-0ubuntu1.1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
Metadata-Version: 2.1
Name: os-faults
Version: 0.1.17
Summary: OpenStack fault-injection library
Home-page: http://os-faults.readthedocs.io/
Author: OpenStack
Author-email: openstack-dev@lists.openstack.org
License: UNKNOWN
Description: =========
        OS-Faults
        =========
        
        **OpenStack fault-injection library**
        
        The library does destructive actions inside an OpenStack cloud. It provides
        an abstraction layer over different types of cloud deployments. The actions
        are implemented as drivers (e.g. DevStack driver, Fuel driver, Libvirt driver,
        IPMI driver).
        
        * Free software: Apache license
        * Documentation: http://os-faults.readthedocs.io
        * Source: https://github.com/openstack/os-faults
        * Bugs: http://bugs.launchpad.net/os-faults
        
        
        Installation
        ------------
        
        Reqular installation::
        
            pip install os-faults
        
        The library contains optional libvirt driver, if you plan to use it,
        please use the following command to install os-faults with extra dependencies::
        
            pip install os-faults[libvirt]
        
        
        Configuration
        -------------
        
        The cloud deployment configuration schema is an extension to the cloud config
        used by the `os-client-config <https://github.com/openstack/os-client-config>`_
        library:
        
        .. code-block:: python
        
            cloud_config = {
                'cloud_management': {
                    'driver': 'devstack',
                    'args': {
                        'address': 'devstack.local',
                        'username': 'root',
                    }
                },
                'power_managements': [
                    {
                        'driver': 'libvirt',
                        'args': {
                            'connection_uri': 'qemu+unix:///system',
                        }
                    },
                    {
                        'driver': 'ipmi',
                        'args': {
                            'mac_to_bmc': {
                                'aa:bb:cc:dd:ee:01': {
                                    'address': '55.55.55.55',
                                    'username': 'foo',
                                    'password': 'bar',
                                }
                            }
                        }
                    }
                ]
            }
        
        Establish a connection to the cloud and verify it:
        
        .. code-block:: python
        
            destructor = os_faults.connect(cloud_config)
            destructor.verify()
        
        The library can also read configuration from a file and the file can be in the
        following three formats: os-faults.{json,yaml,yml}. The configuration file can
        be specified in the `OS_FAULTS_CONFIG` environment variable or can be read from
        one of the default locations:
         * current directory
         * ~/.config/os-faults
         * /etc/openstack
        
        Make some destructive actions:
        
        .. code-block:: python
        
            destructor.get_service(name='keystone').restart()
        
        
        The library operates with 2 types of objects:
         * `service` - is a software that runs in the cloud, e.g. `nova-api`
         * `nodes` - nodes that host the cloud, e.g. a hardware server with a hostname
        
        
        Simplified API
        --------------
        
        Simplified API is used to inject faults in a human-friendly form.
        
        **Service-oriented** command performs specified `action` against `service` on
        all, on one random node or on the node specified by FQDN::
        
            <action> <service> service [on (random|one|single|<fqdn> node[s])]
        
        Examples:
            * `Restart Keystone service` - restarts Keystone service on all nodes.
            * `kill nova-api service on one node` - restarts Nova API on one
              randomly-picked node.
        
        **Node-oriented** command performs specified `action` on node specified by FQDN
        or set of service's nodes::
        
            <action> [random|one|single|<fqdn>] node[s] [with <service> service]
        
        Examples:
            * `Reboot one node with mysql` - reboots one random node with MySQL.
            * `Reset node-2.domain.tld node` - reset node `node-2.domain.tld`.
        
        **Network-oriented** command is a subset of node-oriented and performs network
        management operation on selected nodes::
        
            <action> <network> network on [random|one|single|<fqdn>] node[s]
                [with <service> service]
        
        Examples:
            * `Disconnect management network on nodes with rabbitmq service` - shuts
              down management network interface on all nodes where rabbitmq runs.
            * `Connect storage network on node-1.domain.tld node` - enables storage
              network interface on node-1.domain.tld.
        
        
        Extended API
        ------------
        
        1. Service actions
        ~~~~~~~~~~~~~~~~~~
        
        Get a service and restart it:
        
        .. code-block:: python
        
            destructor = os_faults.connect(cloud_config)
            service = destructor.get_service(name='glance-api')
            service.restart()
        
        Available actions:
         * `start` - start Service
         * `terminate` - terminate Service gracefully
         * `restart` - restart Service
         * `kill` - terminate Service abruptly
         * `unplug` - unplug Service out of network
         * `plug` - plug Service into network
        
        2. Node actions
        ~~~~~~~~~~~~~~~
        
        Get all nodes in the cloud and reboot them:
        
        .. code-block:: python
        
            nodes = destructor.get_nodes()
            nodes.reboot()
        
        Available actions:
         * `reboot` - reboot all nodes gracefully
         * `poweroff` - power off all nodes abruptly
         * `reset` - reset (cold restart) all nodes
         * `oom` - fill all node's RAM
         * `disconnect` - disable network with the specified name on all nodes
         * `connect` - enable network with the specified name on all nodes
        
        3. Operate with nodes
        ~~~~~~~~~~~~~~~~~~~~~
        
        Get all nodes where a service runs, pick one of them and reset:
        
        .. code-block:: python
        
            nodes = service.get_nodes()
            one = nodes.pick()
            one.reset()
        
        Get nodes where l3-agent runs and disable the management network on them:
        
        .. code-block:: python
        
            fqdns = neutron.l3_agent_list_hosting_router(router_id)
            nodes = destructor.get_nodes(fqdns=fqdns)
            nodes.disconnect(network_name='management')
        
        4. Operate with services
        ~~~~~~~~~~~~~~~~~~~~~~~~
        
        Restart a service on a single node:
        
        .. code-block:: python
        
            service = destructor.get_service(name='keystone')
            nodes = service.get_nodes().pick()
            service.restart(nodes)
        
        
Platform: UNKNOWN
Classifier: Environment :: OpenStack
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Provides-Extra: libvirt