shared.models.
KamajiModel
(*args, **kwargs)¶Bases: django.db.models.base.Model
Abstract class that adds convenience methods and properties to the django django.db.models.Model
class. More specifically it adds a validate method that is executed before saving.
save
(force_insert=False, force_update=False, using=None, update_fields=None, perform_validation=True)¶Raises: | django.core.exceptions.ValidationError if the validation fails. |
---|
validate
()¶Override this method in the child class to validate model instances before saving them. Subclasses should call the super validate method if it is overwritten.
Raises: | django.core.exceptions.ValidationError if the validation fails. |
---|
validate_unique
(exclude=None)¶Raises: | django.core.exceptions.ValidationError if the validation fails. |
---|
shared.openstack2.models.
KamajiRemoteModel
(*args, **kwargs)¶Bases: shared.models.KamajiModel
Abstract class that adds methods and properties related to remote
resource manipulation to the deriving shared.models.KamajiModel
class .
get_remote_mutable_targets
()¶Return a mapping of the model name and the target name of the field in OpenStack for all editable fields.
Returns: | Mapping of model name -> target name |
---|---|
Return type: | dict |
get_remote_sources
()¶Return a mapping of the model name and the source name of the field in OpenStack.
Returns: | A mapping of model name/source name |
---|---|
Return type: | dict |
get_remote_targets
()¶Return a mapping of the model name and the target name of the field in OpenStack.
Returns: | A mapping of model name/target name |
---|---|
Return type: | dict |
synchronize
()¶Synchronize this model with OpenStack by retrieving all resources from OpenStack and create local entries for those that have none.
shared.openstack2.models.
OSMetaModel
(name, bases, attributes)¶Bases: django.db.models.base.ModelBase
Metaclass that converts all instance variables of RemoteField
into properties whose setters and getters are bound to the set_value
resp. get_value of the field.
shared.openstack2.models.
OSModel
(*args, **kwargs)¶Bases: shared.openstack2.models.KamajiRemoteModel
Baseclass for all OpenStack models. Requires any subclasses to implement an inner class called OpenStackMeta that holds info about the OpenStack resource it is connected to. Stores a local id and the openstack_id in the database and the rest in the OpenStack backend using the OpenStack rest api.
Any instance variables of RemoteField
on the subclass will be
converted to properties with the getter and setter connected
to the get_value resp. set_value of the RemoteField
.
The RemoteFields stores the actual values in the _values dict of this
class.
The actual RemoteField
instances are stored in the OpenStackMeta.fields
dict.
See OSMetaModel
for the logic of changing fields to properties.
Parameters: | openstack_id (CharField) – |
---|
refresh_from_openstack
()¶Update all fields in the model with fresh values from OpenStack. Calling this method will reset any local changes to the model that has not been saved.
save
(**kwargs)¶Validate the model before saving
shared.views.
ActionView
(**kwargs)¶Bases: rest_framework.views.APIView
The ActionView facilitates views that implementents action-subendpoints. To implement a child to the ActionView inherit this class and implement methods for any actions you would like to support.
action
(view_func)¶Decorator for marking a method as an action that can be called by the ActionView it belongs to.
shared.views.
LookupMixin
¶Bases: object
A mixin that implements the get_object method on the view. To use add a queryset field to the inheriting view or override the get_queryset method.
shared.views.
ReducedKwargsRedirectView
(**kwargs)¶Bases: django.views.generic.base.RedirectView
This view will redirect the user to another specified view. Compared to RedirectView this view takes a list of kwargs to use when resolving the url, useful when you have more kwargs than you need for the redirect..
get_redirect_url
(*args, **kwargs)¶Return the URL to redirect to. Uses only the kwargs specified in the self.use_kwargs list.
This method will remove any items in the kwargs dict not in the use_kwargs list. After the a new dict is generated the method will hand over control to the overridden method of the super class.
Parameters: | |
---|---|
Returns: | The URL to redirect to |
Return type: |
shared.views.
RetrievePatchDestroyAPIView
(**kwargs)¶Bases: rest_framework.generics.RetrieveDestroyAPIView
Implements a view that only allows PATCH as a way of updating values. PUT is disallowed.
patch
(request, *args, **kwargs)¶Partially updates (Http PATCH) and no full replacement (Http PUT). :param request: The HttpRequest object for this update request. :param args: Miscellaneous args. :param kwargs: Miscellaneous kwargs. :return: A Response object containing the result of the update.
shared.managers.
FilteredManager
(filters=None, *args, **kwargs)¶Bases: django.db.models.manager.Manager
Provides a filtered object manager that returns only those objects matching the provided filter.
shared.ansible_tasks.
AnsiblePlaybookTask
¶Bases: shared.ansible_tasks._AnsibleTask
This class facilitates running a Celery task using an Ansible playbook.
execute
(playbook_name, args, hosts, private_key_file=None, remote_user=None)¶Run an Ansible playbook on a specific set of hosts.
Parameters: | |
---|---|
Returns: | The resulting TaskQueueManager. |
Return type: |
|
shared.ansible_tasks.
AnsibleRunnerTask
¶Bases: shared.ansible_tasks._AnsibleTask
This class facilitates running a Celery task using an Ansible module.
execute
(module, host, become=None)¶Run an Ansible module on a specific host.
Parameters: | |
---|---|
Returns: | The corresponding hostvars. |
Return type: |
|
shared.exceptions.
IllegalPlaybookFormatError
(message=None, *args, **kwargs)¶Bases: shared.exceptions.KamajiError
Thrown when a malformed playbook is uploaded
shared.exceptions.
IllegalState
(message=None, *args, **kwargs)¶Bases: shared.exceptions.KamajiError
Thrown when the user is trying to perform an action on a resource which can’t be fulfilled due to the state of said resource.
shared.exceptions.
InvalidSSHKeyError
(message=None, *args, **kwargs)¶Bases: shared.exceptions.KamajiError
Thrown when trying to create a KamajiUser with an invalid ssh key.
shared.exceptions.
KamajiApiException
(detail=None)¶Bases: rest_framework.exceptions.APIException
The base of all Kamaji Api Exceptions.
shared.exceptions.
KamajiError
(message=None, *args, **kwargs)¶Bases: exceptions.Exception
The base exception for all Kamaji Errors.
shared.exceptions.
KamajiOpenStackError
(message=None, status_code=None)¶Bases: shared.exceptions.KamajiError
The base exception for all OpenStack exceptions.
shared.exceptions.
OperationTimedOut
(message=None, *args, **kwargs)¶Bases: shared.exceptions.KamajiError
Thrown when the API has waited longer than the defined threshold for an external system to perform an operation.
shared.exceptions.
ResourceInUseError
(message=None, *args, **kwargs)¶Bases: shared.exceptions.KamajiError
Thrown when the user is trying to delete a resource that is in use. For example if the user tries to delete a layer when the layer is already added to a stack.
shared.exceptions.
UnsupportedOperation
(message=None, *args, **kwargs)¶Bases: shared.exceptions.KamajiError
Thrown when the user is trying to do something thatis not allowed. For example if the user is trying to remove a controller network.
shared.exceptions.
UpdatesNotSupported
(message=None, *args, **kwargs)¶Bases: shared.exceptions.KamajiError
Thrown when an update is initiated on a model which does not support updates.
shared.rest_validators.
ContainedIn
(value_list, field=None)¶Bases: object
Validates that the value exists in the specified list.
Raises: | rest_framework.serializers.ValidationError |
---|
shared.rest_validators.
IsNodeType
¶Bases: shared.rest_validators.ContainedIn
Validates that the value is a valid NodeType.
Raises: | rest_framework.serializers.ValidationError |
---|
shared.rest_validators.
IsSSHKey
(allow_blank=False)¶Bases: object
Raises: | rest_framework.serializers.ValidationError |
---|
shared.rest_validators.
Not
(validation, message_template, field=None)¶Bases: object
Inverts a validation. Results in a failed validation if the specified validation succeeds and vice versa.
Raises: | rest_framework.serializers.ValidationError |
---|
shared.rest_validators.
ValidationAggregator
(**validations)¶Bases: object
Allows aggregation of rest_framework.serializers.ValidationError
,
if one or more errors are detected the resulting
rest_framework.serializers.ValidationError
will contain the
details of all failed validations.
validate
()¶Validates all validations and aggregates the exception details into a dictionary with the validated fields as keys and error details as values.
Raises: | rest_framework.serializers.ValidationError |
---|
shared.rest_validators.
contained_in_dict
(field, attrs)¶Validate that a dict contains a specified field
Parameters: | |
---|---|
Raises: |
|
shared.rest_validators.
is_valid_name
(text)¶Raises: | rest_framework.serializers.ValidationError |
---|
shared.rest_validators.
validate_address_in_network
(subnet, prefix, *addresses)¶Validate that the address or addresses are in the specified network.
Parameters: | |
---|---|
Raises: |
|
shared.rest_validators.
validate_hostname
(value)¶Validate that a hostname is valid.
Parameters: | value (str) – The hostname to validate. |
---|---|
Raises: | rest_framework.serializers.ValidationError |
shared.rest_validators.
validate_ipv4_network
(subnet, prefix, gateway=None)¶Validates that the subnet and prefix describes a valid IP network (ex 10.10.0.0/24). If gateway address is specified, check that the IP address is within the network range.
Parameters: |
|
---|---|
Raises: |
|
shared.rest_validators.
validate_ipv4_network_compound
(value)¶Validates that the provided value describes a network together with a prefix on the form: 10.10.0.0/24.
Parameters: | value – The value to validate. |
---|---|
Raises: | rest_framework.serializers.ValidationError |
shared.rest_validators.
validate_mac_address
(value)¶Validate a Network MAC address given as a string, on the form XX:XX:XX:XX:XX:XX
Parameters: | value (str) – The MAC address to validate |
---|---|
Raises: | rest_framework.serializers.ValidationError |
shared.rest_validators.
validate_network_prefix
(value)¶Validate a network prefix given as an integer.
Parameters: | value (int) – The network prefix to validate |
---|---|
Raises: | rest_framework.serializers.ValidationError |
shared.rest_validators.
validate_ssh_key
(key)¶Raises: | rest_framework.serializers.ValidationError |
---|