Utilities and helper functions.
alias of _PosixLock
Bases: object
A pluggable backend loaded lazily based on some value.
Bases: object
Bases: exceptions.Exception
Exception to break out and stop a LoopingCall.
The poll-function passed to LoopingCall can raise this exception to break out of the loop normally. This is somewhat analogous to StopIteration.
An optional return-value can be included as the argument to the exception; this return-value will be returned by LoopingCall.wait()
Bases: object
Provides a mechanism to facilitate rolling back a series of actions when an exception is raised.
Rollback a series of actions then re-raise the exception.
Note
(sirp) This should only be called within an exception handler.
Convert a string representation of a bool into a bool value
Checks that obj is of type cls, and lets PyLint infer types.
Convert a value or list into a list of dicts
delete a file, but ignore file not found error
Return a dict describing how to change orig to new. The keys correspond to values that have changed; the value will be a list of one or two elements. The first element of the list will be either ‘+’ or ‘-‘, indicating whether the key was updated or deleted; if the key was updated, the list will contain a second element, giving the updated value.
Create a directory (and any ancestor directories required)
Parameters: | path – Directory to create |
---|
Helper method to execute command with optional retry.
If you add a run_as_root=True command, don’t forget to add the corresponding filter to etc/nova/rootwrap.d !
Parameters: |
|
---|---|
Raises: |
|
Returns: | a tuple, (stdout, stderr) from the spawned process, or None if the command fails. |
Open file
see built-in file() documentation for more details
Recursively flatten a nested dictionary.
Generate the URL to glance.
Generate an image URL from an image_ref.
Generate an Ethernet MAC address.
Generate a random password from the supplied symbol groups.
At least one symbol from each group will be included. Unpredictable results if length is less than the number of symbol groups.
Believed to be reasonably secure (with a reasonable password length!)
Returns a list of items matching the specified path.
Takes an XPath-like expression e.g. prop1/prop2/prop3, and for each item in items, looks up items[prop1][prop2][prop3]. Like XPath, if any of the intermediate results are lists it will treat each list item individually. A ‘None’ in items or any child expressions will be ignored, this function will not throw because of None (anywhere) in items. The returned list will contain no None values.
Generate a hash for the contents of a file.
For our purposes, a UUID is a string in canonical form:
aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
Check if the provided string is a valid bool string or not.
Check if the provided ipv4 or ipv6 address is a valid CIDR address or not
valid the address strictly as per format xxx.xxx.xxx.xxx. where xxx is a value between 0 and 255.
Return num bytes from the end of the file, and remaining byte count.
Parameters: |
|
---|
:returns (data, remaining)
This method gives you the most recently completed audit period.
Return a path to a particular device.
>>> make_dev_path('xvdc')
/dev/xvdc
>>> make_dev_path('xvdc', 1)
/dev/xvdc1
Return a dict in which the dictionaries keys are mapped to new keys.
If the Flags.monkey_patch set as True, this function patches a decorator for all functions in specified modules. You can set decorators for each modules using FLAGS.monkey_patch_modules. The format is “Module path:Decorator function”. Example: ‘nova.api.ec2.cloud:nova.notifier.api.notify_decorator’
Parameters of the decorator is as follows. (See nova.notifier.api.notify_decorator)
name - name of the function function - object of the function
Parses the given server_string and returns a list of host and port. If it’s not a combination of host part and port, the port element is a null string. If the input is invalid expression, return a null list.
Return two dicts, one with keys the other with everything else.
Read from a file if it has been modified.
Parameters: |
|
---|---|
Returns: | data from file |
Secure helper to read file as root.
Protect code that wants to operate on PATH atomically. Any exception will cause PATH to be removed.
Return a hostname which conforms to RFC-952 and RFC-1123 specs.
Check whether a service is up based on last heartbeat.
Constant-time string comparison.
Params s1: | the first string |
---|---|
Params s2: | the second string |
Returns: | True if the strings are equal. |
This function takes two strings and compares them. It is intended to be used when doing a comparison for authentication purposes to help guard against timing attacks.
Return a dict that only contains a subset of keys.
Synchronization decorator.
Decorating a method like so:
@synchronized('mylock')
def foo(self, *args):
...
ensures that only one thread will execute the bar method at a time.
Different methods can share the same lock:
@synchronized('mylock')
def foo(self, *args):
...
@synchronized('mylock')
def bar(self, *args):
...
This way only one of either foo or bar can be executing at a time.
The external keyword argument denotes whether this lock should work across multiple processes. This means that if two different workers both run a a method decorated with @synchronized(‘mylock’, external=True), only one of them will execute at a time.
The lock_path keyword argument is used to specify a special location for external lock files to live. If nothing is set, then FLAGS.lock_path is used as a default.
Temporarily chown a path.
Params owner_uid: | |
---|---|
UID of temporary owner (defaults to current user) |
Temporarily set the attr on a particular object to a given value then revert when finished.
One use of this is to temporarily set the read_deleted flag on a context object:
- with temporary_mutation(context, read_deleted=”yes”):
- do_something_that_needed_deleted_objects()
Decorator that logs how long a particular function took to execute
Local total_seconds implementation for compatibility with python 2.6
A wrapper around execute() to more easily handle warnings and errors.
Returns an (out, err) tuple of strings containing the output of the command’s stdout and stderr. If ‘err’ is not empty then the command can be considered to have failed.
Try to turn a string into utf-8 if possible.
Code is directly from the utf8 function in http://github.com/facebook/tornado/blob/master/tornado/escape.py
Sends a vpn negotiation packet and returns the server session.
Returns False on a failure. Basic packet structure is below.
Client packet (14 bytes):
0 1 8 9 13
+-+--------+-----+
|x| cli_id |?????|
+-+--------+-----+
x = packet identifier 0x38
cli_id = 64 bit identifier
? = unknown, probably flags/padding
Server packet (26 bytes):
0 1 8 9 13 14 21 2225
+-+--------+-----+--------+----+
|x| srv_id |?????| cli_id |????|
+-+--------+-----+--------+----+
x = packet identifier 0x40
cli_id = 64 bit identifier
? = unknown, probably flags/padding
bit 9 was 1 and the rest were 0 in testing
Walk class hierarchy, yielding most derived classes first
Escapes a string so it is valid within XML or XHTML.