Rename resource2 and proxy2 to resource and proxy
This caps off a bunch of work to get to the new and improved Resouce2/Proxy2 interfaces. All of the services have been migrated and the old classes have been removed. Rename openstack.resource2 to openstack.resource and openstack.proxy2 to openstack.proxy. Change-Id: I0b7e1c679358e1f60b5316a255aad3a59fbbc8a9
This commit is contained in:
@@ -23,11 +23,11 @@ already. For reference, those are:
|
|||||||
* Removed the Session object in favor of using keystoneauth.
|
* Removed the Session object in favor of using keystoneauth.
|
||||||
* Plumbed Proxy use of Adapter through the Adapter subclass from shade that
|
* Plumbed Proxy use of Adapter through the Adapter subclass from shade that
|
||||||
uses the TaskManager to run REST calls.
|
uses the TaskManager to run REST calls.
|
||||||
|
* Finish migrating to Resource2 and Proxy2, rename them to Resource and Proxy.
|
||||||
|
|
||||||
Next steps
|
Next steps
|
||||||
==========
|
==========
|
||||||
|
|
||||||
* Finish migrating to Resource2 and Proxy2, rename them to Resource and Proxy.
|
|
||||||
* Maybe rename self.session and session parameter in all usage in proxy and
|
* Maybe rename self.session and session parameter in all usage in proxy and
|
||||||
resource to self.adapter. They are Adapters not Sessions, but that may not
|
resource to self.adapter. They are Adapters not Sessions, but that may not
|
||||||
mean anything to people.
|
mean anything to people.
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
# Apache 2 header omitted for brevity
|
# Apache 2 header omitted for brevity
|
||||||
|
|
||||||
from openstack.fake import fake_service
|
from openstack.fake import fake_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Fake(resource.Resource):
|
class Fake(resource.Resource):
|
||||||
|
@@ -137,7 +137,7 @@ can be customized.
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
resource2
|
resource
|
||||||
service_filter
|
service_filter
|
||||||
utils
|
utils
|
||||||
|
|
||||||
|
@@ -4,23 +4,23 @@ this module will be drop the 2 suffix and be the only resource module.**
|
|||||||
|
|
||||||
Resource
|
Resource
|
||||||
========
|
========
|
||||||
.. automodule:: openstack.resource2
|
.. automodule:: openstack.resource
|
||||||
|
|
||||||
Components
|
Components
|
||||||
----------
|
----------
|
||||||
|
|
||||||
.. autoclass:: openstack.resource2.Body
|
.. autoclass:: openstack.resource.Body
|
||||||
:members:
|
:members:
|
||||||
|
|
||||||
.. autoclass:: openstack.resource2.Header
|
.. autoclass:: openstack.resource.Header
|
||||||
:members:
|
:members:
|
||||||
|
|
||||||
.. autoclass:: openstack.resource2.URI
|
.. autoclass:: openstack.resource.URI
|
||||||
:members:
|
:members:
|
||||||
|
|
||||||
The Resource class
|
The Resource class
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
.. autoclass:: openstack.resource2.Resource
|
.. autoclass:: openstack.resource.Resource
|
||||||
:members:
|
:members:
|
||||||
:member-order: bysource
|
:member-order: bysource
|
@@ -15,11 +15,11 @@ from openstack.baremetal.v1 import driver as _driver
|
|||||||
from openstack.baremetal.v1 import node as _node
|
from openstack.baremetal.v1 import node as _node
|
||||||
from openstack.baremetal.v1 import port as _port
|
from openstack.baremetal.v1 import port as _port
|
||||||
from openstack.baremetal.v1 import port_group as _portgroup
|
from openstack.baremetal.v1 import port_group as _portgroup
|
||||||
from openstack import proxy2
|
from openstack import proxy
|
||||||
from openstack import utils
|
from openstack import utils
|
||||||
|
|
||||||
|
|
||||||
class Proxy(proxy2.BaseProxy):
|
class Proxy(proxy.BaseProxy):
|
||||||
|
|
||||||
def chassis(self, details=False, **query):
|
def chassis(self, details=False, **query):
|
||||||
"""Retrieve a generator of chassis.
|
"""Retrieve a generator of chassis.
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.baremetal import baremetal_service
|
from openstack.baremetal import baremetal_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Chassis(resource.Resource):
|
class Chassis(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.baremetal import baremetal_service
|
from openstack.baremetal import baremetal_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Driver(resource.Resource):
|
class Driver(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.baremetal import baremetal_service
|
from openstack.baremetal import baremetal_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Node(resource.Resource):
|
class Node(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.baremetal import baremetal_service
|
from openstack.baremetal import baremetal_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Port(resource.Resource):
|
class Port(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.baremetal import baremetal_service
|
from openstack.baremetal import baremetal_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class PortGroup(resource.Resource):
|
class PortGroup(resource.Resource):
|
||||||
|
@@ -11,10 +11,10 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.baremetal import baremetal_service
|
from openstack.baremetal import baremetal_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Version(resource2.Resource):
|
class Version(resource.Resource):
|
||||||
resource_key = 'version'
|
resource_key = 'version'
|
||||||
resources_key = 'versions'
|
resources_key = 'versions'
|
||||||
base_path = '/'
|
base_path = '/'
|
||||||
@@ -26,6 +26,6 @@ class Version(resource2.Resource):
|
|||||||
allow_list = True
|
allow_list = True
|
||||||
|
|
||||||
# Attributes
|
# Attributes
|
||||||
links = resource2.Body('links')
|
links = resource.Body('links')
|
||||||
status = resource2.Body('status')
|
status = resource.Body('status')
|
||||||
updated = resource2.Body('updated')
|
updated = resource.Body('updated')
|
||||||
|
@@ -14,10 +14,10 @@ from openstack.block_storage.v2 import snapshot as _snapshot
|
|||||||
from openstack.block_storage.v2 import stats as _stats
|
from openstack.block_storage.v2 import stats as _stats
|
||||||
from openstack.block_storage.v2 import type as _type
|
from openstack.block_storage.v2 import type as _type
|
||||||
from openstack.block_storage.v2 import volume as _volume
|
from openstack.block_storage.v2 import volume as _volume
|
||||||
from openstack import proxy2
|
from openstack import proxy
|
||||||
|
|
||||||
|
|
||||||
class Proxy(proxy2.BaseProxy):
|
class Proxy(proxy.BaseProxy):
|
||||||
|
|
||||||
def get_snapshot(self, snapshot):
|
def get_snapshot(self, snapshot):
|
||||||
"""Get a single snapshot
|
"""Get a single snapshot
|
||||||
|
@@ -12,17 +12,17 @@
|
|||||||
|
|
||||||
from openstack.block_storage import block_storage_service
|
from openstack.block_storage import block_storage_service
|
||||||
from openstack import format
|
from openstack import format
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Snapshot(resource2.Resource):
|
class Snapshot(resource.Resource):
|
||||||
resource_key = "snapshot"
|
resource_key = "snapshot"
|
||||||
resources_key = "snapshots"
|
resources_key = "snapshots"
|
||||||
base_path = "/snapshots"
|
base_path = "/snapshots"
|
||||||
service = block_storage_service.BlockStorageService()
|
service = block_storage_service.BlockStorageService()
|
||||||
|
|
||||||
_query_mapping = resource2.QueryParameters('all_tenants', 'name', 'status',
|
_query_mapping = resource.QueryParameters(
|
||||||
'volume_id')
|
'all_tenants', 'name', 'status', 'volume_id')
|
||||||
|
|
||||||
# capabilities
|
# capabilities
|
||||||
allow_get = True
|
allow_get = True
|
||||||
@@ -33,26 +33,26 @@ class Snapshot(resource2.Resource):
|
|||||||
|
|
||||||
# Properties
|
# Properties
|
||||||
#: A ID representing this snapshot.
|
#: A ID representing this snapshot.
|
||||||
id = resource2.Body("id")
|
id = resource.Body("id")
|
||||||
#: Name of the snapshot. Default is None.
|
#: Name of the snapshot. Default is None.
|
||||||
name = resource2.Body("name")
|
name = resource.Body("name")
|
||||||
|
|
||||||
#: The current status of this snapshot. Potential values are creating,
|
#: The current status of this snapshot. Potential values are creating,
|
||||||
#: available, deleting, error, and error_deleting.
|
#: available, deleting, error, and error_deleting.
|
||||||
status = resource2.Body("status")
|
status = resource.Body("status")
|
||||||
#: Description of snapshot. Default is None.
|
#: Description of snapshot. Default is None.
|
||||||
description = resource2.Body("description")
|
description = resource.Body("description")
|
||||||
#: The timestamp of this snapshot creation.
|
#: The timestamp of this snapshot creation.
|
||||||
created_at = resource2.Body("created_at")
|
created_at = resource.Body("created_at")
|
||||||
#: Metadata associated with this snapshot.
|
#: Metadata associated with this snapshot.
|
||||||
metadata = resource2.Body("metadata", type=dict)
|
metadata = resource.Body("metadata", type=dict)
|
||||||
#: The ID of the volume this snapshot was taken of.
|
#: The ID of the volume this snapshot was taken of.
|
||||||
volume_id = resource2.Body("volume_id")
|
volume_id = resource.Body("volume_id")
|
||||||
#: The size of the volume, in GBs.
|
#: The size of the volume, in GBs.
|
||||||
size = resource2.Body("size", type=int)
|
size = resource.Body("size", type=int)
|
||||||
#: Indicate whether to create snapshot, even if the volume is attached.
|
#: Indicate whether to create snapshot, even if the volume is attached.
|
||||||
#: Default is ``False``. *Type: bool*
|
#: Default is ``False``. *Type: bool*
|
||||||
is_forced = resource2.Body("force", type=format.BoolStr)
|
is_forced = resource.Body("force", type=format.BoolStr)
|
||||||
|
|
||||||
|
|
||||||
class SnapshotDetail(Snapshot):
|
class SnapshotDetail(Snapshot):
|
||||||
@@ -60,6 +60,6 @@ class SnapshotDetail(Snapshot):
|
|||||||
base_path = "/snapshots/detail"
|
base_path = "/snapshots/detail"
|
||||||
|
|
||||||
#: The percentage of completeness the snapshot is currently at.
|
#: The percentage of completeness the snapshot is currently at.
|
||||||
progress = resource2.Body("os-extended-snapshot-attributes:progress")
|
progress = resource.Body("os-extended-snapshot-attributes:progress")
|
||||||
#: The project ID this snapshot is associated with.
|
#: The project ID this snapshot is associated with.
|
||||||
project_id = resource2.Body("os-extended-snapshot-attributes:project_id")
|
project_id = resource.Body("os-extended-snapshot-attributes:project_id")
|
||||||
|
@@ -11,10 +11,10 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.block_storage import block_storage_service
|
from openstack.block_storage import block_storage_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Pools(resource2.Resource):
|
class Pools(resource.Resource):
|
||||||
resource_key = "pool"
|
resource_key = "pool"
|
||||||
resources_key = "pools"
|
resources_key = "pools"
|
||||||
base_path = "/scheduler-stats/get_pools?detail=True"
|
base_path = "/scheduler-stats/get_pools?detail=True"
|
||||||
@@ -28,7 +28,6 @@ class Pools(resource2.Resource):
|
|||||||
|
|
||||||
# Properties
|
# Properties
|
||||||
#: The Cinder name for the pool
|
#: The Cinder name for the pool
|
||||||
name = resource2.Body("name")
|
name = resource.Body("name")
|
||||||
#: returns a dict with information about the pool
|
#: returns a dict with information about the pool
|
||||||
capabilities = resource2.Body("capabilities",
|
capabilities = resource.Body("capabilities", type=dict)
|
||||||
type=dict)
|
|
||||||
|
@@ -11,10 +11,10 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.block_storage import block_storage_service
|
from openstack.block_storage import block_storage_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Type(resource2.Resource):
|
class Type(resource.Resource):
|
||||||
resource_key = "volume_type"
|
resource_key = "volume_type"
|
||||||
resources_key = "volume_types"
|
resources_key = "volume_types"
|
||||||
base_path = "/types"
|
base_path = "/types"
|
||||||
@@ -28,8 +28,8 @@ class Type(resource2.Resource):
|
|||||||
|
|
||||||
# Properties
|
# Properties
|
||||||
#: A ID representing this type.
|
#: A ID representing this type.
|
||||||
id = resource2.Body("id")
|
id = resource.Body("id")
|
||||||
#: Name of the type.
|
#: Name of the type.
|
||||||
name = resource2.Body("name")
|
name = resource.Body("name")
|
||||||
#: A dict of extra specifications. "capabilities" is a usual key.
|
#: A dict of extra specifications. "capabilities" is a usual key.
|
||||||
extra_specs = resource2.Body("extra_specs", type=dict)
|
extra_specs = resource.Body("extra_specs", type=dict)
|
||||||
|
@@ -12,17 +12,17 @@
|
|||||||
|
|
||||||
from openstack.block_storage import block_storage_service
|
from openstack.block_storage import block_storage_service
|
||||||
from openstack import format
|
from openstack import format
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Volume(resource2.Resource):
|
class Volume(resource.Resource):
|
||||||
resource_key = "volume"
|
resource_key = "volume"
|
||||||
resources_key = "volumes"
|
resources_key = "volumes"
|
||||||
base_path = "/volumes"
|
base_path = "/volumes"
|
||||||
service = block_storage_service.BlockStorageService()
|
service = block_storage_service.BlockStorageService()
|
||||||
|
|
||||||
_query_mapping = resource2.QueryParameters('all_tenants', 'name',
|
_query_mapping = resource.QueryParameters(
|
||||||
'status', 'project_id')
|
'all_tenants', 'name', 'status', 'project_id')
|
||||||
|
|
||||||
# capabilities
|
# capabilities
|
||||||
allow_get = True
|
allow_get = True
|
||||||
@@ -33,48 +33,48 @@ class Volume(resource2.Resource):
|
|||||||
|
|
||||||
# Properties
|
# Properties
|
||||||
#: A ID representing this volume.
|
#: A ID representing this volume.
|
||||||
id = resource2.Body("id")
|
id = resource.Body("id")
|
||||||
#: The name of this volume.
|
#: The name of this volume.
|
||||||
name = resource2.Body("name")
|
name = resource.Body("name")
|
||||||
#: A list of links associated with this volume. *Type: list*
|
#: A list of links associated with this volume. *Type: list*
|
||||||
links = resource2.Body("links", type=list)
|
links = resource.Body("links", type=list)
|
||||||
|
|
||||||
#: The availability zone.
|
#: The availability zone.
|
||||||
availability_zone = resource2.Body("availability_zone")
|
availability_zone = resource.Body("availability_zone")
|
||||||
#: To create a volume from an existing volume, specify the ID of
|
#: To create a volume from an existing volume, specify the ID of
|
||||||
#: the existing volume. If specified, the volume is created with
|
#: the existing volume. If specified, the volume is created with
|
||||||
#: same size of the source volume.
|
#: same size of the source volume.
|
||||||
source_volume_id = resource2.Body("source_volid")
|
source_volume_id = resource.Body("source_volid")
|
||||||
#: The volume description.
|
#: The volume description.
|
||||||
description = resource2.Body("description")
|
description = resource.Body("description")
|
||||||
#: To create a volume from an existing snapshot, specify the ID of
|
#: To create a volume from an existing snapshot, specify the ID of
|
||||||
#: the existing volume snapshot. If specified, the volume is created
|
#: the existing volume snapshot. If specified, the volume is created
|
||||||
#: in same availability zone and with same size of the snapshot.
|
#: in same availability zone and with same size of the snapshot.
|
||||||
snapshot_id = resource2.Body("snapshot_id")
|
snapshot_id = resource.Body("snapshot_id")
|
||||||
#: The size of the volume, in GBs. *Type: int*
|
#: The size of the volume, in GBs. *Type: int*
|
||||||
size = resource2.Body("size", type=int)
|
size = resource.Body("size", type=int)
|
||||||
#: The ID of the image from which you want to create the volume.
|
#: The ID of the image from which you want to create the volume.
|
||||||
#: Required to create a bootable volume.
|
#: Required to create a bootable volume.
|
||||||
image_id = resource2.Body("imageRef")
|
image_id = resource.Body("imageRef")
|
||||||
#: The name of the associated volume type.
|
#: The name of the associated volume type.
|
||||||
volume_type = resource2.Body("volume_type")
|
volume_type = resource.Body("volume_type")
|
||||||
#: Enables or disables the bootable attribute. You can boot an
|
#: Enables or disables the bootable attribute. You can boot an
|
||||||
#: instance from a bootable volume. *Type: bool*
|
#: instance from a bootable volume. *Type: bool*
|
||||||
is_bootable = resource2.Body("bootable", type=format.BoolStr)
|
is_bootable = resource.Body("bootable", type=format.BoolStr)
|
||||||
#: One or more metadata key and value pairs to associate with the volume.
|
#: One or more metadata key and value pairs to associate with the volume.
|
||||||
metadata = resource2.Body("metadata")
|
metadata = resource.Body("metadata")
|
||||||
#: One or more metadata key and value pairs about image
|
#: One or more metadata key and value pairs about image
|
||||||
volume_image_metadata = resource2.Body("volume_image_metadata")
|
volume_image_metadata = resource.Body("volume_image_metadata")
|
||||||
|
|
||||||
#: One of the following values: creating, available, attaching, in-use
|
#: One of the following values: creating, available, attaching, in-use
|
||||||
#: deleting, error, error_deleting, backing-up, restoring-backup,
|
#: deleting, error, error_deleting, backing-up, restoring-backup,
|
||||||
#: error_restoring. For details on these statuses, see the
|
#: error_restoring. For details on these statuses, see the
|
||||||
#: Block Storage API documentation.
|
#: Block Storage API documentation.
|
||||||
status = resource2.Body("status")
|
status = resource.Body("status")
|
||||||
#: TODO(briancurtin): This is currently undocumented in the API.
|
#: TODO(briancurtin): This is currently undocumented in the API.
|
||||||
attachments = resource2.Body("attachments")
|
attachments = resource.Body("attachments")
|
||||||
#: The timestamp of this volume creation.
|
#: The timestamp of this volume creation.
|
||||||
created_at = resource2.Body("created_at")
|
created_at = resource.Body("created_at")
|
||||||
|
|
||||||
|
|
||||||
class VolumeDetail(Volume):
|
class VolumeDetail(Volume):
|
||||||
@@ -82,24 +82,24 @@ class VolumeDetail(Volume):
|
|||||||
base_path = "/volumes/detail"
|
base_path = "/volumes/detail"
|
||||||
|
|
||||||
#: The volume's current back-end.
|
#: The volume's current back-end.
|
||||||
host = resource2.Body("os-vol-host-attr:host")
|
host = resource.Body("os-vol-host-attr:host")
|
||||||
#: The project ID associated with current back-end.
|
#: The project ID associated with current back-end.
|
||||||
project_id = resource2.Body("os-vol-tenant-attr:tenant_id")
|
project_id = resource.Body("os-vol-tenant-attr:tenant_id")
|
||||||
#: The status of this volume's migration (None means that a migration
|
#: The status of this volume's migration (None means that a migration
|
||||||
#: is not currently in progress).
|
#: is not currently in progress).
|
||||||
migration_status = resource2.Body("os-vol-mig-status-attr:migstat")
|
migration_status = resource.Body("os-vol-mig-status-attr:migstat")
|
||||||
#: The volume ID that this volume's name on the back-end is based on.
|
#: The volume ID that this volume's name on the back-end is based on.
|
||||||
migration_id = resource2.Body("os-vol-mig-status-attr:name_id")
|
migration_id = resource.Body("os-vol-mig-status-attr:name_id")
|
||||||
#: Status of replication on this volume.
|
#: Status of replication on this volume.
|
||||||
replication_status = resource2.Body("replication_status")
|
replication_status = resource.Body("replication_status")
|
||||||
#: Extended replication status on this volume.
|
#: Extended replication status on this volume.
|
||||||
extended_replication_status = resource2.Body(
|
extended_replication_status = resource.Body(
|
||||||
"os-volume-replication:extended_status")
|
"os-volume-replication:extended_status")
|
||||||
#: ID of the consistency group.
|
#: ID of the consistency group.
|
||||||
consistency_group_id = resource2.Body("consistencygroup_id")
|
consistency_group_id = resource.Body("consistencygroup_id")
|
||||||
#: Data set by the replication driver
|
#: Data set by the replication driver
|
||||||
replication_driver_data = resource2.Body(
|
replication_driver_data = resource.Body(
|
||||||
"os-volume-replication:driver_data")
|
"os-volume-replication:driver_data")
|
||||||
#: ``True`` if this volume is encrypted, ``False`` if not.
|
#: ``True`` if this volume is encrypted, ``False`` if not.
|
||||||
#: *Type: bool*
|
#: *Type: bool*
|
||||||
is_encrypted = resource2.Body("encrypted", type=format.BoolStr)
|
is_encrypted = resource.Body("encrypted", type=format.BoolStr)
|
||||||
|
@@ -23,12 +23,12 @@ from openstack.clustering.v1 import profile as _profile
|
|||||||
from openstack.clustering.v1 import profile_type as _profile_type
|
from openstack.clustering.v1 import profile_type as _profile_type
|
||||||
from openstack.clustering.v1 import receiver as _receiver
|
from openstack.clustering.v1 import receiver as _receiver
|
||||||
from openstack.clustering.v1 import service as _service
|
from openstack.clustering.v1 import service as _service
|
||||||
from openstack import proxy2
|
from openstack import proxy
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
from openstack import utils
|
from openstack import utils
|
||||||
|
|
||||||
|
|
||||||
class Proxy(proxy2.BaseProxy):
|
class Proxy(proxy.BaseProxy):
|
||||||
|
|
||||||
def get_build_info(self):
|
def get_build_info(self):
|
||||||
"""Get build info for service engine and API
|
"""Get build info for service engine and API
|
||||||
@@ -913,7 +913,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
enabled on the cluster.
|
enabled on the cluster.
|
||||||
:returns: A generator of cluster-policy binding instances.
|
:returns: A generator of cluster-policy binding instances.
|
||||||
"""
|
"""
|
||||||
cluster_id = resource2.Resource._get_id(cluster)
|
cluster_id = resource.Resource._get_id(cluster)
|
||||||
return self._list(_cluster_policy.ClusterPolicy, paginated=False,
|
return self._list(_cluster_policy.ClusterPolicy, paginated=False,
|
||||||
cluster_id=cluster_id, **query)
|
cluster_id=cluster_id, **query)
|
||||||
|
|
||||||
@@ -1102,13 +1102,13 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
"""
|
"""
|
||||||
return self._list(_event.Event, paginated=True, **query)
|
return self._list(_event.Event, paginated=True, **query)
|
||||||
|
|
||||||
def wait_for_status(self, resource, status, failures=None, interval=2,
|
def wait_for_status(self, res, status, failures=None, interval=2,
|
||||||
wait=120):
|
wait=120):
|
||||||
"""Wait for a resource to be in a particular status.
|
"""Wait for a resource to be in a particular status.
|
||||||
|
|
||||||
:param resource: The resource to wait on to reach the specified status.
|
:param res: The resource to wait on to reach the specified status.
|
||||||
The resource must have a ``status`` attribute.
|
The resource must have a ``status`` attribute.
|
||||||
:type resource: A :class:`~openstack.resource2.Resource` object.
|
:type resource: A :class:`~openstack.resource.Resource` object.
|
||||||
:param status: Desired status.
|
:param status: Desired status.
|
||||||
:param failures: Statuses that would be interpreted as failures.
|
:param failures: Statuses that would be interpreted as failures.
|
||||||
:type failures: :py:class:`list`
|
:type failures: :py:class:`list`
|
||||||
@@ -1125,14 +1125,14 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
``status`` attribute.
|
``status`` attribute.
|
||||||
"""
|
"""
|
||||||
failures = [] if failures is None else failures
|
failures = [] if failures is None else failures
|
||||||
return resource2.wait_for_status(self, resource, status,
|
return resource.wait_for_status(
|
||||||
failures, interval, wait)
|
self, res, status, failures, interval, wait)
|
||||||
|
|
||||||
def wait_for_delete(self, resource, interval=2, wait=120):
|
def wait_for_delete(self, res, interval=2, wait=120):
|
||||||
"""Wait for a resource to be deleted.
|
"""Wait for a resource to be deleted.
|
||||||
|
|
||||||
:param resource: The resource to wait on to be deleted.
|
:param res: The resource to wait on to be deleted.
|
||||||
:type resource: A :class:`~openstack.resource2.Resource` object.
|
:type resource: A :class:`~openstack.resource.Resource` object.
|
||||||
:param interval: Number of seconds to wait before to consecutive
|
:param interval: Number of seconds to wait before to consecutive
|
||||||
checks. Default to 2.
|
checks. Default to 2.
|
||||||
:param wait: Maximum number of seconds to wait before the change.
|
:param wait: Maximum number of seconds to wait before the change.
|
||||||
@@ -1141,8 +1141,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
:raises: :class:`~openstack.exceptions.ResourceTimeout` if transition
|
:raises: :class:`~openstack.exceptions.ResourceTimeout` if transition
|
||||||
to delete failed to occur in the specified seconds.
|
to delete failed to occur in the specified seconds.
|
||||||
"""
|
"""
|
||||||
return resource2.wait_for_delete(self, resource, interval,
|
return resource.wait_for_delete(self, res, interval, wait)
|
||||||
wait)
|
|
||||||
|
|
||||||
def services(self, **query):
|
def services(self, **query):
|
||||||
"""Get a generator of services.
|
"""Get a generator of services.
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
|
|
||||||
from openstack.clustering import clustering_service
|
from openstack.clustering import clustering_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Action(resource.Resource):
|
class Action(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.clustering import clustering_service
|
from openstack.clustering import clustering_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class BuildInfo(resource.Resource):
|
class BuildInfo(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.clustering import clustering_service
|
from openstack.clustering import clustering_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
from openstack import utils
|
from openstack import utils
|
||||||
|
|
||||||
|
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.clustering import clustering_service
|
from openstack.clustering import clustering_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class ClusterAttr(resource.Resource):
|
class ClusterAttr(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.clustering import clustering_service
|
from openstack.clustering import clustering_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class ClusterPolicy(resource.Resource):
|
class ClusterPolicy(resource.Resource):
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
|
|
||||||
from openstack.clustering import clustering_service
|
from openstack.clustering import clustering_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Event(resource.Resource):
|
class Event(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.clustering import clustering_service
|
from openstack.clustering import clustering_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
from openstack import utils
|
from openstack import utils
|
||||||
|
|
||||||
|
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.clustering import clustering_service
|
from openstack.clustering import clustering_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Policy(resource.Resource):
|
class Policy(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.clustering import clustering_service
|
from openstack.clustering import clustering_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class PolicyType(resource.Resource):
|
class PolicyType(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.clustering import clustering_service
|
from openstack.clustering import clustering_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Profile(resource.Resource):
|
class Profile(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.clustering import clustering_service
|
from openstack.clustering import clustering_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class ProfileType(resource.Resource):
|
class ProfileType(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.clustering import clustering_service
|
from openstack.clustering import clustering_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Receiver(resource.Resource):
|
class Receiver(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.clustering import clustering_service
|
from openstack.clustering import clustering_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Service(resource.Resource):
|
class Service(resource.Resource):
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
|
|
||||||
from openstack.clustering import clustering_service
|
from openstack.clustering import clustering_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Version(resource.Resource):
|
class Version(resource.Resource):
|
||||||
|
@@ -23,11 +23,11 @@ from openstack.compute.v2 import server_interface as _server_interface
|
|||||||
from openstack.compute.v2 import server_ip
|
from openstack.compute.v2 import server_ip
|
||||||
from openstack.compute.v2 import service as _service
|
from openstack.compute.v2 import service as _service
|
||||||
from openstack.compute.v2 import volume_attachment as _volume_attachment
|
from openstack.compute.v2 import volume_attachment as _volume_attachment
|
||||||
from openstack import proxy2
|
from openstack import proxy
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Proxy(proxy2.BaseProxy):
|
class Proxy(proxy.BaseProxy):
|
||||||
|
|
||||||
def find_extension(self, name_or_id, ignore_missing=True):
|
def find_extension(self, name_or_id, ignore_missing=True):
|
||||||
"""Find a single extension
|
"""Find a single extension
|
||||||
@@ -501,7 +501,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
:returns: None
|
:returns: None
|
||||||
"""
|
"""
|
||||||
server = self._get_resource(_server.Server, server)
|
server = self._get_resource(_server.Server, server)
|
||||||
flavor_id = resource2.Resource._get_id(flavor)
|
flavor_id = resource.Resource._get_id(flavor)
|
||||||
server.resize(self, flavor_id)
|
server.resize(self, flavor_id)
|
||||||
|
|
||||||
def confirm_server_resize(self, server):
|
def confirm_server_resize(self, server):
|
||||||
@@ -551,7 +551,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
:returns: None
|
:returns: None
|
||||||
"""
|
"""
|
||||||
server = self._get_resource(_server.Server, server)
|
server = self._get_resource(_server.Server, server)
|
||||||
security_group_id = resource2.Resource._get_id(security_group)
|
security_group_id = resource.Resource._get_id(security_group)
|
||||||
server.add_security_group(self, security_group_id)
|
server.add_security_group(self, security_group_id)
|
||||||
|
|
||||||
def remove_security_group_from_server(self, server, security_group):
|
def remove_security_group_from_server(self, server, security_group):
|
||||||
@@ -566,7 +566,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
:returns: None
|
:returns: None
|
||||||
"""
|
"""
|
||||||
server = self._get_resource(_server.Server, server)
|
server = self._get_resource(_server.Server, server)
|
||||||
security_group_id = resource2.Resource._get_id(security_group)
|
security_group_id = resource.Resource._get_id(security_group)
|
||||||
server.remove_security_group(self, security_group_id)
|
server.remove_security_group(self, security_group_id)
|
||||||
|
|
||||||
def add_fixed_ip_to_server(self, server, network_id):
|
def add_fixed_ip_to_server(self, server, network_id):
|
||||||
@@ -806,8 +806,8 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
|
|
||||||
def wait_for_server(self, server, status='ACTIVE', failures=['ERROR'],
|
def wait_for_server(self, server, status='ACTIVE', failures=['ERROR'],
|
||||||
interval=2, wait=120):
|
interval=2, wait=120):
|
||||||
return resource2.wait_for_status(self, server, status,
|
return resource.wait_for_status(
|
||||||
failures, interval, wait)
|
self, server, status, failures, interval, wait)
|
||||||
|
|
||||||
def create_server_interface(self, server, **attrs):
|
def create_server_interface(self, server, **attrs):
|
||||||
"""Create a new server interface from attributes
|
"""Create a new server interface from attributes
|
||||||
@@ -822,7 +822,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
:returns: The results of server interface creation
|
:returns: The results of server interface creation
|
||||||
:rtype: :class:`~openstack.compute.v2.server_interface.ServerInterface`
|
:rtype: :class:`~openstack.compute.v2.server_interface.ServerInterface`
|
||||||
"""
|
"""
|
||||||
server_id = resource2.Resource._get_id(server)
|
server_id = resource.Resource._get_id(server)
|
||||||
return self._create(_server_interface.ServerInterface,
|
return self._create(_server_interface.ServerInterface,
|
||||||
server_id=server_id, **attrs)
|
server_id=server_id, **attrs)
|
||||||
|
|
||||||
@@ -848,7 +848,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
"""
|
"""
|
||||||
server_id = self._get_uri_attribute(server_interface, server,
|
server_id = self._get_uri_attribute(server_interface, server,
|
||||||
"server_id")
|
"server_id")
|
||||||
server_interface = resource2.Resource._get_id(server_interface)
|
server_interface = resource.Resource._get_id(server_interface)
|
||||||
|
|
||||||
self._delete(_server_interface.ServerInterface,
|
self._delete(_server_interface.ServerInterface,
|
||||||
port_id=server_interface,
|
port_id=server_interface,
|
||||||
@@ -874,7 +874,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
"""
|
"""
|
||||||
server_id = self._get_uri_attribute(server_interface, server,
|
server_id = self._get_uri_attribute(server_interface, server,
|
||||||
"server_id")
|
"server_id")
|
||||||
server_interface = resource2.Resource._get_id(server_interface)
|
server_interface = resource.Resource._get_id(server_interface)
|
||||||
|
|
||||||
return self._get(_server_interface.ServerInterface,
|
return self._get(_server_interface.ServerInterface,
|
||||||
server_id=server_id, port_id=server_interface)
|
server_id=server_id, port_id=server_interface)
|
||||||
@@ -888,7 +888,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
:returns: A generator of ServerInterface objects
|
:returns: A generator of ServerInterface objects
|
||||||
:rtype: :class:`~openstack.compute.v2.server_interface.ServerInterface`
|
:rtype: :class:`~openstack.compute.v2.server_interface.ServerInterface`
|
||||||
"""
|
"""
|
||||||
server_id = resource2.Resource._get_id(server)
|
server_id = resource.Resource._get_id(server)
|
||||||
return self._list(_server_interface.ServerInterface, paginated=False,
|
return self._list(_server_interface.ServerInterface, paginated=False,
|
||||||
server_id=server_id)
|
server_id=server_id)
|
||||||
|
|
||||||
@@ -903,7 +903,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
:returns: A generator of ServerIP objects
|
:returns: A generator of ServerIP objects
|
||||||
:rtype: :class:`~openstack.compute.v2.server_ip.ServerIP`
|
:rtype: :class:`~openstack.compute.v2.server_ip.ServerIP`
|
||||||
"""
|
"""
|
||||||
server_id = resource2.Resource._get_id(server)
|
server_id = resource.Resource._get_id(server)
|
||||||
return self._list(server_ip.ServerIP, paginated=False,
|
return self._list(server_ip.ServerIP, paginated=False,
|
||||||
server_id=server_id, network_label=network_label)
|
server_id=server_id, network_label=network_label)
|
||||||
|
|
||||||
@@ -1150,7 +1150,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
:rtype:
|
:rtype:
|
||||||
:class:`~openstack.compute.v2.volume_attachment.VolumeAttachment`
|
:class:`~openstack.compute.v2.volume_attachment.VolumeAttachment`
|
||||||
"""
|
"""
|
||||||
server_id = resource2.Resource._get_id(server)
|
server_id = resource.Resource._get_id(server)
|
||||||
return self._create(_volume_attachment.VolumeAttachment,
|
return self._create(_volume_attachment.VolumeAttachment,
|
||||||
server_id=server_id, **attrs)
|
server_id=server_id, **attrs)
|
||||||
|
|
||||||
@@ -1177,7 +1177,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
"""
|
"""
|
||||||
server_id = self._get_uri_attribute(volume_attachment, server,
|
server_id = self._get_uri_attribute(volume_attachment, server,
|
||||||
"server_id")
|
"server_id")
|
||||||
volume_attachment = resource2.Resource._get_id(volume_attachment)
|
volume_attachment = resource.Resource._get_id(volume_attachment)
|
||||||
|
|
||||||
return self._update(_volume_attachment.VolumeAttachment,
|
return self._update(_volume_attachment.VolumeAttachment,
|
||||||
attachment_id=volume_attachment,
|
attachment_id=volume_attachment,
|
||||||
@@ -1206,7 +1206,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
"""
|
"""
|
||||||
server_id = self._get_uri_attribute(volume_attachment, server,
|
server_id = self._get_uri_attribute(volume_attachment, server,
|
||||||
"server_id")
|
"server_id")
|
||||||
volume_attachment = resource2.Resource._get_id(volume_attachment)
|
volume_attachment = resource.Resource._get_id(volume_attachment)
|
||||||
|
|
||||||
self._delete(_volume_attachment.VolumeAttachment,
|
self._delete(_volume_attachment.VolumeAttachment,
|
||||||
attachment_id=volume_attachment,
|
attachment_id=volume_attachment,
|
||||||
@@ -1239,7 +1239,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
"""
|
"""
|
||||||
server_id = self._get_uri_attribute(volume_attachment, server,
|
server_id = self._get_uri_attribute(volume_attachment, server,
|
||||||
"server_id")
|
"server_id")
|
||||||
volume_attachment = resource2.Resource._get_id(volume_attachment)
|
volume_attachment = resource.Resource._get_id(volume_attachment)
|
||||||
|
|
||||||
return self._get(_volume_attachment.VolumeAttachment,
|
return self._get(_volume_attachment.VolumeAttachment,
|
||||||
server_id=server_id,
|
server_id=server_id,
|
||||||
@@ -1256,7 +1256,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
:rtype:
|
:rtype:
|
||||||
:class:`~openstack.compute.v2.volume_attachment.VolumeAttachment`
|
:class:`~openstack.compute.v2.volume_attachment.VolumeAttachment`
|
||||||
"""
|
"""
|
||||||
server_id = resource2.Resource._get_id(server)
|
server_id = resource.Resource._get_id(server)
|
||||||
return self._list(_volume_attachment.VolumeAttachment, paginated=False,
|
return self._list(_volume_attachment.VolumeAttachment, paginated=False,
|
||||||
server_id=server_id)
|
server_id=server_id)
|
||||||
|
|
||||||
|
@@ -11,10 +11,10 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.compute import compute_service
|
from openstack.compute import compute_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class AvailabilityZone(resource2.Resource):
|
class AvailabilityZone(resource.Resource):
|
||||||
resources_key = 'availabilityZoneInfo'
|
resources_key = 'availabilityZoneInfo'
|
||||||
base_path = '/os-availability-zone'
|
base_path = '/os-availability-zone'
|
||||||
|
|
||||||
@@ -25,11 +25,11 @@ class AvailabilityZone(resource2.Resource):
|
|||||||
|
|
||||||
# Properties
|
# Properties
|
||||||
#: name of availability zone
|
#: name of availability zone
|
||||||
name = resource2.Body('zoneName')
|
name = resource.Body('zoneName')
|
||||||
#: state of availability zone
|
#: state of availability zone
|
||||||
state = resource2.Body('zoneState')
|
state = resource.Body('zoneState')
|
||||||
#: hosts of availability zone
|
#: hosts of availability zone
|
||||||
hosts = resource2.Body('hosts')
|
hosts = resource.Body('hosts')
|
||||||
|
|
||||||
|
|
||||||
class AvailabilityZoneDetail(AvailabilityZone):
|
class AvailabilityZoneDetail(AvailabilityZone):
|
||||||
|
@@ -11,10 +11,10 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.compute import compute_service
|
from openstack.compute import compute_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Extension(resource2.Resource):
|
class Extension(resource.Resource):
|
||||||
resource_key = 'extension'
|
resource_key = 'extension'
|
||||||
resources_key = 'extensions'
|
resources_key = 'extensions'
|
||||||
base_path = '/extensions'
|
base_path = '/extensions'
|
||||||
@@ -27,15 +27,15 @@ class Extension(resource2.Resource):
|
|||||||
|
|
||||||
# Properties
|
# Properties
|
||||||
#: A short name by which this extension is also known.
|
#: A short name by which this extension is also known.
|
||||||
alias = resource2.Body('alias', alternate_id=True)
|
alias = resource.Body('alias', alternate_id=True)
|
||||||
#: Text describing this extension's purpose.
|
#: Text describing this extension's purpose.
|
||||||
description = resource2.Body('description')
|
description = resource.Body('description')
|
||||||
#: Links pertaining to this extension. This is a list of dictionaries,
|
#: Links pertaining to this extension. This is a list of dictionaries,
|
||||||
#: each including keys ``href`` and ``rel``.
|
#: each including keys ``href`` and ``rel``.
|
||||||
links = resource2.Body('links')
|
links = resource.Body('links')
|
||||||
#: The name of the extension.
|
#: The name of the extension.
|
||||||
name = resource2.Body('name')
|
name = resource.Body('name')
|
||||||
#: A URL pointing to the namespace for this extension.
|
#: A URL pointing to the namespace for this extension.
|
||||||
namespace = resource2.Body('namespace')
|
namespace = resource.Body('namespace')
|
||||||
#: Timestamp when this extension was last updated.
|
#: Timestamp when this extension was last updated.
|
||||||
updated_at = resource2.Body('updated')
|
updated_at = resource.Body('updated')
|
||||||
|
@@ -11,10 +11,10 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.compute import compute_service
|
from openstack.compute import compute_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Flavor(resource2.Resource):
|
class Flavor(resource.Resource):
|
||||||
resource_key = 'flavor'
|
resource_key = 'flavor'
|
||||||
resources_key = 'flavors'
|
resources_key = 'flavors'
|
||||||
base_path = '/flavors'
|
base_path = '/flavors'
|
||||||
@@ -26,33 +26,34 @@ class Flavor(resource2.Resource):
|
|||||||
allow_delete = True
|
allow_delete = True
|
||||||
allow_list = True
|
allow_list = True
|
||||||
|
|
||||||
_query_mapping = resource2.QueryParameters("sort_key", "sort_dir",
|
_query_mapping = resource.QueryParameters(
|
||||||
min_disk="minDisk",
|
"sort_key", "sort_dir",
|
||||||
min_ram="minRam")
|
min_disk="minDisk",
|
||||||
|
min_ram="minRam")
|
||||||
|
|
||||||
# Properties
|
# Properties
|
||||||
#: Links pertaining to this flavor. This is a list of dictionaries,
|
#: Links pertaining to this flavor. This is a list of dictionaries,
|
||||||
#: each including keys ``href`` and ``rel``.
|
#: each including keys ``href`` and ``rel``.
|
||||||
links = resource2.Body('links')
|
links = resource.Body('links')
|
||||||
#: The name of this flavor.
|
#: The name of this flavor.
|
||||||
name = resource2.Body('name')
|
name = resource.Body('name')
|
||||||
#: Size of the disk this flavor offers. *Type: int*
|
#: Size of the disk this flavor offers. *Type: int*
|
||||||
disk = resource2.Body('disk', type=int)
|
disk = resource.Body('disk', type=int)
|
||||||
#: ``True`` if this is a publicly visible flavor. ``False`` if this is
|
#: ``True`` if this is a publicly visible flavor. ``False`` if this is
|
||||||
#: a private image. *Type: bool*
|
#: a private image. *Type: bool*
|
||||||
is_public = resource2.Body('os-flavor-access:is_public', type=bool)
|
is_public = resource.Body('os-flavor-access:is_public', type=bool)
|
||||||
#: The amount of RAM (in MB) this flavor offers. *Type: int*
|
#: The amount of RAM (in MB) this flavor offers. *Type: int*
|
||||||
ram = resource2.Body('ram', type=int)
|
ram = resource.Body('ram', type=int)
|
||||||
#: The number of virtual CPUs this flavor offers. *Type: int*
|
#: The number of virtual CPUs this flavor offers. *Type: int*
|
||||||
vcpus = resource2.Body('vcpus', type=int)
|
vcpus = resource.Body('vcpus', type=int)
|
||||||
#: Size of the swap partitions.
|
#: Size of the swap partitions.
|
||||||
swap = resource2.Body('swap')
|
swap = resource.Body('swap')
|
||||||
#: Size of the ephemeral data disk attached to this server. *Type: int*
|
#: Size of the ephemeral data disk attached to this server. *Type: int*
|
||||||
ephemeral = resource2.Body('OS-FLV-EXT-DATA:ephemeral', type=int)
|
ephemeral = resource.Body('OS-FLV-EXT-DATA:ephemeral', type=int)
|
||||||
#: ``True`` if this flavor is disabled, ``False`` if not. *Type: bool*
|
#: ``True`` if this flavor is disabled, ``False`` if not. *Type: bool*
|
||||||
is_disabled = resource2.Body('OS-FLV-DISABLED:disabled', type=bool)
|
is_disabled = resource.Body('OS-FLV-DISABLED:disabled', type=bool)
|
||||||
#: The bandwidth scaling factor this flavor receives on the network.
|
#: The bandwidth scaling factor this flavor receives on the network.
|
||||||
rxtx_factor = resource2.Body('rxtx_factor', type=float)
|
rxtx_factor = resource.Body('rxtx_factor', type=float)
|
||||||
|
|
||||||
|
|
||||||
class FlavorDetail(Flavor):
|
class FlavorDetail(Flavor):
|
||||||
|
@@ -12,10 +12,10 @@
|
|||||||
|
|
||||||
|
|
||||||
from openstack.compute import compute_service
|
from openstack.compute import compute_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Hypervisor(resource2.Resource):
|
class Hypervisor(resource.Resource):
|
||||||
resource_key = 'hypervisor'
|
resource_key = 'hypervisor'
|
||||||
resources_key = 'hypervisors'
|
resources_key = 'hypervisors'
|
||||||
base_path = '/os-hypervisors'
|
base_path = '/os-hypervisors'
|
||||||
@@ -28,40 +28,40 @@ class Hypervisor(resource2.Resource):
|
|||||||
|
|
||||||
# Properties
|
# Properties
|
||||||
#: Status of hypervisor
|
#: Status of hypervisor
|
||||||
status = resource2.Body('status')
|
status = resource.Body('status')
|
||||||
#: State of hypervisor
|
#: State of hypervisor
|
||||||
state = resource2.Body('state')
|
state = resource.Body('state')
|
||||||
#: Name of hypervisor
|
#: Name of hypervisor
|
||||||
name = resource2.Body('hypervisor_hostname')
|
name = resource.Body('hypervisor_hostname')
|
||||||
#: Service details
|
#: Service details
|
||||||
service_details = resource2.Body('service')
|
service_details = resource.Body('service')
|
||||||
#: Count of the VCPUs in use
|
#: Count of the VCPUs in use
|
||||||
vcpus_used = resource2.Body('vcpus_used')
|
vcpus_used = resource.Body('vcpus_used')
|
||||||
#: Count of all VCPUs
|
#: Count of all VCPUs
|
||||||
vcpus = resource2.Body('vcpus')
|
vcpus = resource.Body('vcpus')
|
||||||
#: Count of the running virtual machines
|
#: Count of the running virtual machines
|
||||||
running_vms = resource2.Body('running_vms')
|
running_vms = resource.Body('running_vms')
|
||||||
#: The type of hypervisor
|
#: The type of hypervisor
|
||||||
hypervisor_type = resource2.Body('hypervisor_type')
|
hypervisor_type = resource.Body('hypervisor_type')
|
||||||
#: Version of the hypervisor
|
#: Version of the hypervisor
|
||||||
hypervisor_version = resource2.Body('hypervisor_version')
|
hypervisor_version = resource.Body('hypervisor_version')
|
||||||
#: The amount, in gigabytes, of local storage used
|
#: The amount, in gigabytes, of local storage used
|
||||||
local_disk_used = resource2.Body('local_gb_used')
|
local_disk_used = resource.Body('local_gb_used')
|
||||||
#: The amount, in gigabytes, of the local storage device
|
#: The amount, in gigabytes, of the local storage device
|
||||||
local_disk_size = resource2.Body('local_gb')
|
local_disk_size = resource.Body('local_gb')
|
||||||
#: The amount, in gigabytes, of free space on the local storage device
|
#: The amount, in gigabytes, of free space on the local storage device
|
||||||
local_disk_free = resource2.Body('free_disk_gb')
|
local_disk_free = resource.Body('free_disk_gb')
|
||||||
#: The amount, in megabytes, of memory
|
#: The amount, in megabytes, of memory
|
||||||
memory_used = resource2.Body('memory_mb_used')
|
memory_used = resource.Body('memory_mb_used')
|
||||||
#: The amount, in megabytes, of total memory
|
#: The amount, in megabytes, of total memory
|
||||||
memory_size = resource2.Body('memory_mb')
|
memory_size = resource.Body('memory_mb')
|
||||||
#: The amount, in megabytes, of available memory
|
#: The amount, in megabytes, of available memory
|
||||||
memory_free = resource2.Body('free_ram_mb')
|
memory_free = resource.Body('free_ram_mb')
|
||||||
#: Measurement of the hypervisor's current workload
|
#: Measurement of the hypervisor's current workload
|
||||||
current_workload = resource2.Body('current_workload')
|
current_workload = resource.Body('current_workload')
|
||||||
#: Information about the hypervisor's CPU
|
#: Information about the hypervisor's CPU
|
||||||
cpu_info = resource2.Body('cpu_info')
|
cpu_info = resource.Body('cpu_info')
|
||||||
#: IP address of the host
|
#: IP address of the host
|
||||||
host_ip = resource2.Body('host_ip')
|
host_ip = resource.Body('host_ip')
|
||||||
#: Disk space available to the scheduler
|
#: Disk space available to the scheduler
|
||||||
disk_available = resource2.Body("disk_available_least")
|
disk_available = resource.Body("disk_available_least")
|
||||||
|
@@ -12,10 +12,10 @@
|
|||||||
|
|
||||||
from openstack.compute import compute_service
|
from openstack.compute import compute_service
|
||||||
from openstack.compute.v2 import metadata
|
from openstack.compute.v2 import metadata
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Image(resource2.Resource, metadata.MetadataMixin):
|
class Image(resource.Resource, metadata.MetadataMixin):
|
||||||
resource_key = 'image'
|
resource_key = 'image'
|
||||||
resources_key = 'images'
|
resources_key = 'images'
|
||||||
base_path = '/images'
|
base_path = '/images'
|
||||||
@@ -26,35 +26,35 @@ class Image(resource2.Resource, metadata.MetadataMixin):
|
|||||||
allow_delete = True
|
allow_delete = True
|
||||||
allow_list = True
|
allow_list = True
|
||||||
|
|
||||||
_query_mapping = resource2.QueryParameters("server", "name",
|
_query_mapping = resource.QueryParameters(
|
||||||
"status", "type",
|
"server", "name", "status", "type",
|
||||||
min_disk="minDisk",
|
min_disk="minDisk",
|
||||||
min_ram="minRam",
|
min_ram="minRam",
|
||||||
changes_since="changes-since")
|
changes_since="changes-since")
|
||||||
|
|
||||||
# Properties
|
# Properties
|
||||||
#: Links pertaining to this image. This is a list of dictionaries,
|
#: Links pertaining to this image. This is a list of dictionaries,
|
||||||
#: each including keys ``href`` and ``rel``, and optionally ``type``.
|
#: each including keys ``href`` and ``rel``, and optionally ``type``.
|
||||||
links = resource2.Body('links')
|
links = resource.Body('links')
|
||||||
#: The name of this image.
|
#: The name of this image.
|
||||||
name = resource2.Body('name')
|
name = resource.Body('name')
|
||||||
#: Timestamp when the image was created.
|
#: Timestamp when the image was created.
|
||||||
created_at = resource2.Body('created')
|
created_at = resource.Body('created')
|
||||||
#: Metadata pertaining to this image. *Type: dict*
|
#: Metadata pertaining to this image. *Type: dict*
|
||||||
metadata = resource2.Body('metadata', type=dict)
|
metadata = resource.Body('metadata', type=dict)
|
||||||
#: The mimimum disk size. *Type: int*
|
#: The mimimum disk size. *Type: int*
|
||||||
min_disk = resource2.Body('minDisk', type=int)
|
min_disk = resource.Body('minDisk', type=int)
|
||||||
#: The minimum RAM size. *Type: int*
|
#: The minimum RAM size. *Type: int*
|
||||||
min_ram = resource2.Body('minRam', type=int)
|
min_ram = resource.Body('minRam', type=int)
|
||||||
#: If this image is still building, its progress is represented here.
|
#: If this image is still building, its progress is represented here.
|
||||||
#: Once an image is created, progres will be 100. *Type: int*
|
#: Once an image is created, progres will be 100. *Type: int*
|
||||||
progress = resource2.Body('progress', type=int)
|
progress = resource.Body('progress', type=int)
|
||||||
#: The status of this image.
|
#: The status of this image.
|
||||||
status = resource2.Body('status')
|
status = resource.Body('status')
|
||||||
#: Timestamp when the image was updated.
|
#: Timestamp when the image was updated.
|
||||||
updated_at = resource2.Body('updated')
|
updated_at = resource.Body('updated')
|
||||||
#: Size of the image in bytes. *Type: int*
|
#: Size of the image in bytes. *Type: int*
|
||||||
size = resource2.Body('OS-EXT-IMG-SIZE:size', type=int)
|
size = resource.Body('OS-EXT-IMG-SIZE:size', type=int)
|
||||||
|
|
||||||
|
|
||||||
class ImageDetail(Image):
|
class ImageDetail(Image):
|
||||||
|
@@ -11,10 +11,10 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.compute import compute_service
|
from openstack.compute import compute_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Keypair(resource2.Resource):
|
class Keypair(resource.Resource):
|
||||||
resource_key = 'keypair'
|
resource_key = 'keypair'
|
||||||
resources_key = 'keypairs'
|
resources_key = 'keypairs'
|
||||||
base_path = '/os-keypairs'
|
base_path = '/os-keypairs'
|
||||||
@@ -29,7 +29,7 @@ class Keypair(resource2.Resource):
|
|||||||
# Properties
|
# Properties
|
||||||
#: The short fingerprint associated with the ``public_key`` for
|
#: The short fingerprint associated with the ``public_key`` for
|
||||||
#: this keypair.
|
#: this keypair.
|
||||||
fingerprint = resource2.Body('fingerprint')
|
fingerprint = resource.Body('fingerprint')
|
||||||
# NOTE: There is in fact an 'id' field. However, it's not useful
|
# NOTE: There is in fact an 'id' field. However, it's not useful
|
||||||
# because all operations use the 'name' as an identifier.
|
# because all operations use the 'name' as an identifier.
|
||||||
# Additionally, the 'id' field only appears *after* creation,
|
# Additionally, the 'id' field only appears *after* creation,
|
||||||
@@ -37,13 +37,13 @@ class Keypair(resource2.Resource):
|
|||||||
# and it just gets in the way. We need to cover this up by listing
|
# and it just gets in the way. We need to cover this up by listing
|
||||||
# name as alternate_id and listing id as coming from name.
|
# name as alternate_id and listing id as coming from name.
|
||||||
#: The id identifying the keypair
|
#: The id identifying the keypair
|
||||||
id = resource2.Body('name')
|
id = resource.Body('name')
|
||||||
#: A name identifying the keypair
|
#: A name identifying the keypair
|
||||||
name = resource2.Body('name', alternate_id=True)
|
name = resource.Body('name', alternate_id=True)
|
||||||
#: The private key for the keypair
|
#: The private key for the keypair
|
||||||
private_key = resource2.Body('private_key')
|
private_key = resource.Body('private_key')
|
||||||
#: The SSH public key that is paired with the server.
|
#: The SSH public key that is paired with the server.
|
||||||
public_key = resource2.Body('public_key')
|
public_key = resource.Body('public_key')
|
||||||
|
|
||||||
def _consume_attrs(self, mapping, attrs):
|
def _consume_attrs(self, mapping, attrs):
|
||||||
# TODO(mordred) This should not be required. However, without doing
|
# TODO(mordred) This should not be required. However, without doing
|
||||||
|
@@ -11,72 +11,72 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.compute import compute_service
|
from openstack.compute import compute_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class AbsoluteLimits(resource2.Resource):
|
class AbsoluteLimits(resource.Resource):
|
||||||
|
|
||||||
#: The number of key-value pairs that can be set as image metadata.
|
#: The number of key-value pairs that can be set as image metadata.
|
||||||
image_meta = resource2.Body("maxImageMeta")
|
image_meta = resource.Body("maxImageMeta")
|
||||||
#: The maximum number of personality contents that can be supplied.
|
#: The maximum number of personality contents that can be supplied.
|
||||||
personality = resource2.Body("maxPersonality")
|
personality = resource.Body("maxPersonality")
|
||||||
#: The maximum size, in bytes, of a personality.
|
#: The maximum size, in bytes, of a personality.
|
||||||
personality_size = resource2.Body("maxPersonalitySize")
|
personality_size = resource.Body("maxPersonalitySize")
|
||||||
#: The maximum amount of security group rules allowed.
|
#: The maximum amount of security group rules allowed.
|
||||||
security_group_rules = resource2.Body("maxSecurityGroupRules")
|
security_group_rules = resource.Body("maxSecurityGroupRules")
|
||||||
#: The maximum amount of security groups allowed.
|
#: The maximum amount of security groups allowed.
|
||||||
security_groups = resource2.Body("maxSecurityGroups")
|
security_groups = resource.Body("maxSecurityGroups")
|
||||||
#: The amount of security groups currently in use.
|
#: The amount of security groups currently in use.
|
||||||
security_groups_used = resource2.Body("totalSecurityGroupsUsed")
|
security_groups_used = resource.Body("totalSecurityGroupsUsed")
|
||||||
#: The number of key-value pairs that can be set as sever metadata.
|
#: The number of key-value pairs that can be set as sever metadata.
|
||||||
server_meta = resource2.Body("maxServerMeta")
|
server_meta = resource.Body("maxServerMeta")
|
||||||
#: The maximum amount of cores.
|
#: The maximum amount of cores.
|
||||||
total_cores = resource2.Body("maxTotalCores")
|
total_cores = resource.Body("maxTotalCores")
|
||||||
#: The amount of cores currently in use.
|
#: The amount of cores currently in use.
|
||||||
total_cores_used = resource2.Body("totalCoresUsed")
|
total_cores_used = resource.Body("totalCoresUsed")
|
||||||
#: The maximum amount of floating IPs.
|
#: The maximum amount of floating IPs.
|
||||||
floating_ips = resource2.Body("maxTotalFloatingIps")
|
floating_ips = resource.Body("maxTotalFloatingIps")
|
||||||
#: The amount of floating IPs currently in use.
|
#: The amount of floating IPs currently in use.
|
||||||
floating_ips_used = resource2.Body("totalFloatingIpsUsed")
|
floating_ips_used = resource.Body("totalFloatingIpsUsed")
|
||||||
#: The maximum amount of instances.
|
#: The maximum amount of instances.
|
||||||
instances = resource2.Body("maxTotalInstances")
|
instances = resource.Body("maxTotalInstances")
|
||||||
#: The amount of instances currently in use.
|
#: The amount of instances currently in use.
|
||||||
instances_used = resource2.Body("totalInstancesUsed")
|
instances_used = resource.Body("totalInstancesUsed")
|
||||||
#: The maximum amount of keypairs.
|
#: The maximum amount of keypairs.
|
||||||
keypairs = resource2.Body("maxTotalKeypairs")
|
keypairs = resource.Body("maxTotalKeypairs")
|
||||||
#: The maximum RAM size in megabytes.
|
#: The maximum RAM size in megabytes.
|
||||||
total_ram = resource2.Body("maxTotalRAMSize")
|
total_ram = resource.Body("maxTotalRAMSize")
|
||||||
#: The RAM size in megabytes currently in use.
|
#: The RAM size in megabytes currently in use.
|
||||||
total_ram_used = resource2.Body("totalRAMUsed")
|
total_ram_used = resource.Body("totalRAMUsed")
|
||||||
#: The maximum amount of server groups.
|
#: The maximum amount of server groups.
|
||||||
server_groups = resource2.Body("maxServerGroups")
|
server_groups = resource.Body("maxServerGroups")
|
||||||
#: The amount of server groups currently in use.
|
#: The amount of server groups currently in use.
|
||||||
server_groups_used = resource2.Body("totalServerGroupsUsed")
|
server_groups_used = resource.Body("totalServerGroupsUsed")
|
||||||
#: The maximum number of members in a server group.
|
#: The maximum number of members in a server group.
|
||||||
server_group_members = resource2.Body("maxServerGroupMembers")
|
server_group_members = resource.Body("maxServerGroupMembers")
|
||||||
|
|
||||||
|
|
||||||
class RateLimit(resource2.Resource):
|
class RateLimit(resource.Resource):
|
||||||
|
|
||||||
# TODO(mordred) Make a resource type for the contents of limit and add
|
# TODO(mordred) Make a resource type for the contents of limit and add
|
||||||
# it to list_type here.
|
# it to list_type here.
|
||||||
#: A list of the specific limits that apply to the ``regex`` and ``uri``.
|
#: A list of the specific limits that apply to the ``regex`` and ``uri``.
|
||||||
limits = resource2.Body("limit", type=list)
|
limits = resource.Body("limit", type=list)
|
||||||
#: A regex representing which routes this rate limit applies to.
|
#: A regex representing which routes this rate limit applies to.
|
||||||
regex = resource2.Body("regex")
|
regex = resource.Body("regex")
|
||||||
#: A URI representing which routes this rate limit applies to.
|
#: A URI representing which routes this rate limit applies to.
|
||||||
uri = resource2.Body("uri")
|
uri = resource.Body("uri")
|
||||||
|
|
||||||
|
|
||||||
class Limits(resource2.Resource):
|
class Limits(resource.Resource):
|
||||||
base_path = "/limits"
|
base_path = "/limits"
|
||||||
resource_key = "limits"
|
resource_key = "limits"
|
||||||
service = compute_service.ComputeService()
|
service = compute_service.ComputeService()
|
||||||
|
|
||||||
allow_get = True
|
allow_get = True
|
||||||
|
|
||||||
absolute = resource2.Body("absolute", type=AbsoluteLimits)
|
absolute = resource.Body("absolute", type=AbsoluteLimits)
|
||||||
rate = resource2.Body("rate", type=list, list_type=RateLimit)
|
rate = resource.Body("rate", type=list, list_type=RateLimit)
|
||||||
|
|
||||||
def get(self, session, requires_id=False, error_message=None):
|
def get(self, session, requires_id=False, error_message=None):
|
||||||
"""Get the Limits resource.
|
"""Get the Limits resource.
|
||||||
|
@@ -12,11 +12,11 @@
|
|||||||
|
|
||||||
from openstack.compute import compute_service
|
from openstack.compute import compute_service
|
||||||
from openstack.compute.v2 import metadata
|
from openstack.compute.v2 import metadata
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
from openstack import utils
|
from openstack import utils
|
||||||
|
|
||||||
|
|
||||||
class Server(resource2.Resource, metadata.MetadataMixin):
|
class Server(resource.Resource, metadata.MetadataMixin):
|
||||||
resource_key = 'server'
|
resource_key = 'server'
|
||||||
resources_key = 'servers'
|
resources_key = 'servers'
|
||||||
base_path = '/servers'
|
base_path = '/servers'
|
||||||
@@ -29,115 +29,116 @@ class Server(resource2.Resource, metadata.MetadataMixin):
|
|||||||
allow_delete = True
|
allow_delete = True
|
||||||
allow_list = True
|
allow_list = True
|
||||||
|
|
||||||
_query_mapping = resource2.QueryParameters("image", "flavor", "name",
|
_query_mapping = resource.QueryParameters(
|
||||||
"status", "host", "all_tenants",
|
"image", "flavor", "name",
|
||||||
"sort_key", "sort_dir",
|
"status", "host", "all_tenants",
|
||||||
"reservation_id", "tags",
|
"sort_key", "sort_dir",
|
||||||
"project_id",
|
"reservation_id", "tags",
|
||||||
tags_any="tags-any",
|
"project_id",
|
||||||
not_tags="not-tags",
|
tags_any="tags-any",
|
||||||
not_tags_any="not-tags-any",
|
not_tags="not-tags",
|
||||||
is_deleted="deleted",
|
not_tags_any="not-tags-any",
|
||||||
ipv4_address="ip",
|
is_deleted="deleted",
|
||||||
ipv6_address="ip6",
|
ipv4_address="ip",
|
||||||
changes_since="changes-since")
|
ipv6_address="ip6",
|
||||||
|
changes_since="changes-since")
|
||||||
|
|
||||||
#: A list of dictionaries holding links relevant to this server.
|
#: A list of dictionaries holding links relevant to this server.
|
||||||
links = resource2.Body('links')
|
links = resource.Body('links')
|
||||||
|
|
||||||
access_ipv4 = resource2.Body('accessIPv4')
|
access_ipv4 = resource.Body('accessIPv4')
|
||||||
access_ipv6 = resource2.Body('accessIPv6')
|
access_ipv6 = resource.Body('accessIPv6')
|
||||||
#: A dictionary of addresses this server can be accessed through.
|
#: A dictionary of addresses this server can be accessed through.
|
||||||
#: The dictionary contains keys such as ``private`` and ``public``,
|
#: The dictionary contains keys such as ``private`` and ``public``,
|
||||||
#: each containing a list of dictionaries for addresses of that type.
|
#: each containing a list of dictionaries for addresses of that type.
|
||||||
#: The addresses are contained in a dictionary with keys ``addr``
|
#: The addresses are contained in a dictionary with keys ``addr``
|
||||||
#: and ``version``, which is either 4 or 6 depending on the protocol
|
#: and ``version``, which is either 4 or 6 depending on the protocol
|
||||||
#: of the IP address. *Type: dict*
|
#: of the IP address. *Type: dict*
|
||||||
addresses = resource2.Body('addresses', type=dict)
|
addresses = resource.Body('addresses', type=dict)
|
||||||
#: Timestamp of when the server was created.
|
#: Timestamp of when the server was created.
|
||||||
created_at = resource2.Body('created')
|
created_at = resource.Body('created')
|
||||||
#: The flavor reference, as a ID or full URL, for the flavor to use for
|
#: The flavor reference, as a ID or full URL, for the flavor to use for
|
||||||
#: this server.
|
#: this server.
|
||||||
flavor_id = resource2.Body('flavorRef')
|
flavor_id = resource.Body('flavorRef')
|
||||||
#: The flavor property as returned from server.
|
#: The flavor property as returned from server.
|
||||||
flavor = resource2.Body('flavor', type=dict)
|
flavor = resource.Body('flavor', type=dict)
|
||||||
#: An ID representing the host of this server.
|
#: An ID representing the host of this server.
|
||||||
host_id = resource2.Body('hostId')
|
host_id = resource.Body('hostId')
|
||||||
#: The image reference, as a ID or full URL, for the image to use for
|
#: The image reference, as a ID or full URL, for the image to use for
|
||||||
#: this server.
|
#: this server.
|
||||||
image_id = resource2.Body('imageRef')
|
image_id = resource.Body('imageRef')
|
||||||
#: The image property as returned from server.
|
#: The image property as returned from server.
|
||||||
image = resource2.Body('image', type=dict)
|
image = resource.Body('image', type=dict)
|
||||||
#: Metadata stored for this server. *Type: dict*
|
#: Metadata stored for this server. *Type: dict*
|
||||||
metadata = resource2.Body('metadata', type=dict)
|
metadata = resource.Body('metadata', type=dict)
|
||||||
#: While the server is building, this value represents the percentage
|
#: While the server is building, this value represents the percentage
|
||||||
#: of completion. Once it is completed, it will be 100. *Type: int*
|
#: of completion. Once it is completed, it will be 100. *Type: int*
|
||||||
progress = resource2.Body('progress', type=int)
|
progress = resource.Body('progress', type=int)
|
||||||
#: The ID of the project this server is associated with.
|
#: The ID of the project this server is associated with.
|
||||||
project_id = resource2.Body('tenant_id')
|
project_id = resource.Body('tenant_id')
|
||||||
#: The state this server is in. Valid values include ``ACTIVE``,
|
#: The state this server is in. Valid values include ``ACTIVE``,
|
||||||
#: ``BUILDING``, ``DELETED``, ``ERROR``, ``HARD_REBOOT``, ``PASSWORD``,
|
#: ``BUILDING``, ``DELETED``, ``ERROR``, ``HARD_REBOOT``, ``PASSWORD``,
|
||||||
#: ``PAUSED``, ``REBOOT``, ``REBUILD``, ``RESCUED``, ``RESIZED``,
|
#: ``PAUSED``, ``REBOOT``, ``REBUILD``, ``RESCUED``, ``RESIZED``,
|
||||||
#: ``REVERT_RESIZE``, ``SHUTOFF``, ``SOFT_DELETED``, ``STOPPED``,
|
#: ``REVERT_RESIZE``, ``SHUTOFF``, ``SOFT_DELETED``, ``STOPPED``,
|
||||||
#: ``SUSPENDED``, ``UNKNOWN``, or ``VERIFY_RESIZE``.
|
#: ``SUSPENDED``, ``UNKNOWN``, or ``VERIFY_RESIZE``.
|
||||||
status = resource2.Body('status')
|
status = resource.Body('status')
|
||||||
#: Timestamp of when this server was last updated.
|
#: Timestamp of when this server was last updated.
|
||||||
updated_at = resource2.Body('updated')
|
updated_at = resource.Body('updated')
|
||||||
#: The ID of the owners of this server.
|
#: The ID of the owners of this server.
|
||||||
user_id = resource2.Body('user_id')
|
user_id = resource.Body('user_id')
|
||||||
#: The name of an associated keypair
|
#: The name of an associated keypair
|
||||||
key_name = resource2.Body('key_name')
|
key_name = resource.Body('key_name')
|
||||||
#: The disk configuration. Either AUTO or MANUAL.
|
#: The disk configuration. Either AUTO or MANUAL.
|
||||||
disk_config = resource2.Body('OS-DCF:diskConfig')
|
disk_config = resource.Body('OS-DCF:diskConfig')
|
||||||
#: Indicates whether a configuration drive enables metadata injection.
|
#: Indicates whether a configuration drive enables metadata injection.
|
||||||
#: Not all cloud providers enable this feature.
|
#: Not all cloud providers enable this feature.
|
||||||
has_config_drive = resource2.Body('config_drive')
|
has_config_drive = resource.Body('config_drive')
|
||||||
#: The name of the availability zone this server is a part of.
|
#: The name of the availability zone this server is a part of.
|
||||||
availability_zone = resource2.Body('OS-EXT-AZ:availability_zone')
|
availability_zone = resource.Body('OS-EXT-AZ:availability_zone')
|
||||||
#: The power state of this server.
|
#: The power state of this server.
|
||||||
power_state = resource2.Body('OS-EXT-STS:power_state')
|
power_state = resource.Body('OS-EXT-STS:power_state')
|
||||||
#: The task state of this server.
|
#: The task state of this server.
|
||||||
task_state = resource2.Body('OS-EXT-STS:task_state')
|
task_state = resource.Body('OS-EXT-STS:task_state')
|
||||||
#: The VM state of this server.
|
#: The VM state of this server.
|
||||||
vm_state = resource2.Body('OS-EXT-STS:vm_state')
|
vm_state = resource.Body('OS-EXT-STS:vm_state')
|
||||||
#: A list of an attached volumes. Each item in the list contains at least
|
#: A list of an attached volumes. Each item in the list contains at least
|
||||||
#: an "id" key to identify the specific volumes.
|
#: an "id" key to identify the specific volumes.
|
||||||
attached_volumes = resource2.Body(
|
attached_volumes = resource.Body(
|
||||||
'os-extended-volumes:volumes_attached')
|
'os-extended-volumes:volumes_attached')
|
||||||
#: The timestamp when the server was launched.
|
#: The timestamp when the server was launched.
|
||||||
launched_at = resource2.Body('OS-SRV-USG:launched_at')
|
launched_at = resource.Body('OS-SRV-USG:launched_at')
|
||||||
#: The timestamp when the server was terminated (if it has been).
|
#: The timestamp when the server was terminated (if it has been).
|
||||||
terminated_at = resource2.Body('OS-SRV-USG:terminated_at')
|
terminated_at = resource.Body('OS-SRV-USG:terminated_at')
|
||||||
#: A list of applicable security groups. Each group contains keys for
|
#: A list of applicable security groups. Each group contains keys for
|
||||||
#: description, name, id, and rules.
|
#: description, name, id, and rules.
|
||||||
security_groups = resource2.Body('security_groups')
|
security_groups = resource.Body('security_groups')
|
||||||
#: When a server is first created, it provides the administrator password.
|
#: When a server is first created, it provides the administrator password.
|
||||||
admin_password = resource2.Body('adminPass')
|
admin_password = resource.Body('adminPass')
|
||||||
#: The file path and contents, text only, to inject into the server at
|
#: The file path and contents, text only, to inject into the server at
|
||||||
#: launch. The maximum size of the file path data is 255 bytes.
|
#: launch. The maximum size of the file path data is 255 bytes.
|
||||||
#: The maximum limit is The number of allowed bytes in the decoded,
|
#: The maximum limit is The number of allowed bytes in the decoded,
|
||||||
#: rather than encoded, data.
|
#: rather than encoded, data.
|
||||||
personality = resource2.Body('personality')
|
personality = resource.Body('personality')
|
||||||
#: Configuration information or scripts to use upon launch.
|
#: Configuration information or scripts to use upon launch.
|
||||||
#: Must be Base64 encoded.
|
#: Must be Base64 encoded.
|
||||||
user_data = resource2.Body('OS-EXT-SRV-ATTR:user_data')
|
user_data = resource.Body('OS-EXT-SRV-ATTR:user_data')
|
||||||
#: Enables fine grained control of the block device mapping for an
|
#: Enables fine grained control of the block device mapping for an
|
||||||
#: instance. This is typically used for booting servers from volumes.
|
#: instance. This is typically used for booting servers from volumes.
|
||||||
block_device_mapping = resource2.Body('block_device_mapping_v2')
|
block_device_mapping = resource.Body('block_device_mapping_v2')
|
||||||
#: The dictionary of data to send to the scheduler.
|
#: The dictionary of data to send to the scheduler.
|
||||||
scheduler_hints = resource2.Body('OS-SCH-HNT:scheduler_hints', type=dict)
|
scheduler_hints = resource.Body('OS-SCH-HNT:scheduler_hints', type=dict)
|
||||||
#: A networks object. Required parameter when there are multiple
|
#: A networks object. Required parameter when there are multiple
|
||||||
#: networks defined for the tenant. When you do not specify the
|
#: networks defined for the tenant. When you do not specify the
|
||||||
#: networks parameter, the server attaches to the only network
|
#: networks parameter, the server attaches to the only network
|
||||||
#: created for the current tenant.
|
#: created for the current tenant.
|
||||||
networks = resource2.Body('networks')
|
networks = resource.Body('networks')
|
||||||
#: The hypervisor host name. Appears in the response for administrative
|
#: The hypervisor host name. Appears in the response for administrative
|
||||||
#: users only.
|
#: users only.
|
||||||
hypervisor_hostname = resource2.Body('OS-EXT-SRV-ATTR:hypervisor_hostname')
|
hypervisor_hostname = resource.Body('OS-EXT-SRV-ATTR:hypervisor_hostname')
|
||||||
#: The instance name. The Compute API generates the instance name from the
|
#: The instance name. The Compute API generates the instance name from the
|
||||||
#: instance name template. Appears in the response for administrative users
|
#: instance name template. Appears in the response for administrative users
|
||||||
#: only.
|
#: only.
|
||||||
instance_name = resource2.Body('OS-EXT-SRV-ATTR:instance_name')
|
instance_name = resource.Body('OS-EXT-SRV-ATTR:instance_name')
|
||||||
|
|
||||||
def _prepare_request(self, requires_id=True, prepend_key=True):
|
def _prepare_request(self, requires_id=True, prepend_key=True):
|
||||||
request = super(Server, self)._prepare_request(requires_id=requires_id,
|
request = super(Server, self)._prepare_request(requires_id=requires_id,
|
||||||
@@ -206,7 +207,7 @@ class Server(resource2.Resource, metadata.MetadataMixin):
|
|||||||
'preserve_ephemeral': preserve_ephemeral
|
'preserve_ephemeral': preserve_ephemeral
|
||||||
}
|
}
|
||||||
if image is not None:
|
if image is not None:
|
||||||
action['imageRef'] = resource2.Resource._get_id(image)
|
action['imageRef'] = resource.Resource._get_id(image)
|
||||||
if access_ipv4 is not None:
|
if access_ipv4 is not None:
|
||||||
action['accessIPv4'] = access_ipv4
|
action['accessIPv4'] = access_ipv4
|
||||||
if access_ipv6 is not None:
|
if access_ipv6 is not None:
|
||||||
|
@@ -11,16 +11,16 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.compute import compute_service
|
from openstack.compute import compute_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class ServerGroup(resource2.Resource):
|
class ServerGroup(resource.Resource):
|
||||||
resource_key = 'server_group'
|
resource_key = 'server_group'
|
||||||
resources_key = 'server_groups'
|
resources_key = 'server_groups'
|
||||||
base_path = '/os-server-groups'
|
base_path = '/os-server-groups'
|
||||||
service = compute_service.ComputeService()
|
service = compute_service.ComputeService()
|
||||||
|
|
||||||
_query_mapping = resource2.QueryParameters("all_projects")
|
_query_mapping = resource.QueryParameters("all_projects")
|
||||||
|
|
||||||
# capabilities
|
# capabilities
|
||||||
allow_create = True
|
allow_create = True
|
||||||
@@ -30,10 +30,10 @@ class ServerGroup(resource2.Resource):
|
|||||||
|
|
||||||
# Properties
|
# Properties
|
||||||
#: A name identifying the server group
|
#: A name identifying the server group
|
||||||
name = resource2.Body('name')
|
name = resource.Body('name')
|
||||||
#: The list of policies supported by the server group
|
#: The list of policies supported by the server group
|
||||||
policies = resource2.Body('policies')
|
policies = resource.Body('policies')
|
||||||
#: The list of members in the server group
|
#: The list of members in the server group
|
||||||
member_ids = resource2.Body('members')
|
member_ids = resource.Body('members')
|
||||||
#: The metadata associated with the server group
|
#: The metadata associated with the server group
|
||||||
metadata = resource2.Body('metadata')
|
metadata = resource.Body('metadata')
|
||||||
|
@@ -11,10 +11,10 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.compute import compute_service
|
from openstack.compute import compute_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class ServerInterface(resource2.Resource):
|
class ServerInterface(resource.Resource):
|
||||||
resource_key = 'interfaceAttachment'
|
resource_key = 'interfaceAttachment'
|
||||||
resources_key = 'interfaceAttachments'
|
resources_key = 'interfaceAttachments'
|
||||||
base_path = '/servers/%(server_id)s/os-interface'
|
base_path = '/servers/%(server_id)s/os-interface'
|
||||||
@@ -28,14 +28,14 @@ class ServerInterface(resource2.Resource):
|
|||||||
allow_list = True
|
allow_list = True
|
||||||
|
|
||||||
#: Fixed IP addresses with subnet IDs.
|
#: Fixed IP addresses with subnet IDs.
|
||||||
fixed_ips = resource2.Body('fixed_ips')
|
fixed_ips = resource.Body('fixed_ips')
|
||||||
#: The MAC address.
|
#: The MAC address.
|
||||||
mac_addr = resource2.Body('mac_addr')
|
mac_addr = resource.Body('mac_addr')
|
||||||
#: The network ID.
|
#: The network ID.
|
||||||
net_id = resource2.Body('net_id')
|
net_id = resource.Body('net_id')
|
||||||
#: The ID of the port for which you want to create an interface.
|
#: The ID of the port for which you want to create an interface.
|
||||||
port_id = resource2.Body('port_id', alternate_id=True)
|
port_id = resource.Body('port_id', alternate_id=True)
|
||||||
#: The port state.
|
#: The port state.
|
||||||
port_state = resource2.Body('port_state')
|
port_state = resource.Body('port_state')
|
||||||
#: The ID for the server.
|
#: The ID for the server.
|
||||||
server_id = resource2.URI('server_id')
|
server_id = resource.URI('server_id')
|
||||||
|
@@ -11,11 +11,11 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.compute import compute_service
|
from openstack.compute import compute_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
from openstack import utils
|
from openstack import utils
|
||||||
|
|
||||||
|
|
||||||
class ServerIP(resource2.Resource):
|
class ServerIP(resource.Resource):
|
||||||
resources_key = 'addresses'
|
resources_key = 'addresses'
|
||||||
base_path = '/servers/%(server_id)s/ips'
|
base_path = '/servers/%(server_id)s/ips'
|
||||||
service = compute_service.ComputeService()
|
service = compute_service.ComputeService()
|
||||||
@@ -25,13 +25,13 @@ class ServerIP(resource2.Resource):
|
|||||||
|
|
||||||
# Properties
|
# Properties
|
||||||
#: The IP address. The format of the address depends on :attr:`version`
|
#: The IP address. The format of the address depends on :attr:`version`
|
||||||
address = resource2.Body('addr')
|
address = resource.Body('addr')
|
||||||
#: The network label, such as public or private.
|
#: The network label, such as public or private.
|
||||||
network_label = resource2.URI('network_label')
|
network_label = resource.URI('network_label')
|
||||||
#: The ID for the server.
|
#: The ID for the server.
|
||||||
server_id = resource2.URI('server_id')
|
server_id = resource.URI('server_id')
|
||||||
# Version of the IP protocol. Currently either 4 or 6.
|
# Version of the IP protocol. Currently either 4 or 6.
|
||||||
version = resource2.Body('version')
|
version = resource.Body('version')
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def list(cls, session, paginated=False, server_id=None,
|
def list(cls, session, paginated=False, server_id=None,
|
||||||
|
@@ -11,11 +11,11 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.compute import compute_service
|
from openstack.compute import compute_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
from openstack import utils
|
from openstack import utils
|
||||||
|
|
||||||
|
|
||||||
class Service(resource2.Resource):
|
class Service(resource.Resource):
|
||||||
resource_key = 'service'
|
resource_key = 'service'
|
||||||
resources_key = 'services'
|
resources_key = 'services'
|
||||||
base_path = '/os-services'
|
base_path = '/os-services'
|
||||||
@@ -28,19 +28,19 @@ class Service(resource2.Resource):
|
|||||||
|
|
||||||
# Properties
|
# Properties
|
||||||
#: Status of service
|
#: Status of service
|
||||||
status = resource2.Body('status')
|
status = resource.Body('status')
|
||||||
#: State of service
|
#: State of service
|
||||||
state = resource2.Body('state')
|
state = resource.Body('state')
|
||||||
#: Name of service
|
#: Name of service
|
||||||
binary = resource2.Body('binary')
|
binary = resource.Body('binary')
|
||||||
#: Id of service
|
#: Id of service
|
||||||
id = resource2.Body('id')
|
id = resource.Body('id')
|
||||||
#: Disabled reason of service
|
#: Disabled reason of service
|
||||||
disables_reason = resource2.Body('disabled_reason')
|
disables_reason = resource.Body('disabled_reason')
|
||||||
#: Host where service runs
|
#: Host where service runs
|
||||||
host = resource2.Body('host')
|
host = resource.Body('host')
|
||||||
#: The availability zone of service
|
#: The availability zone of service
|
||||||
zone = resource2.Body("zone")
|
zone = resource.Body("zone")
|
||||||
|
|
||||||
def _action(self, session, action, body):
|
def _action(self, session, action, body):
|
||||||
url = utils.urljoin(Service.base_path, action)
|
url = utils.urljoin(Service.base_path, action)
|
||||||
|
@@ -11,10 +11,10 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.compute import compute_service
|
from openstack.compute import compute_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class VolumeAttachment(resource2.Resource):
|
class VolumeAttachment(resource.Resource):
|
||||||
resource_key = 'volumeAttachment'
|
resource_key = 'volumeAttachment'
|
||||||
resources_key = 'volumeAttachments'
|
resources_key = 'volumeAttachments'
|
||||||
base_path = '/servers/%(server_id)s/os-volume_attachments'
|
base_path = '/servers/%(server_id)s/os-volume_attachments'
|
||||||
@@ -27,15 +27,15 @@ class VolumeAttachment(resource2.Resource):
|
|||||||
allow_delete = True
|
allow_delete = True
|
||||||
allow_list = True
|
allow_list = True
|
||||||
|
|
||||||
_query_mapping = resource2.QueryParameters("limit", "offset")
|
_query_mapping = resource.QueryParameters("limit", "offset")
|
||||||
|
|
||||||
#: Name of the device such as, /dev/vdb.
|
#: Name of the device such as, /dev/vdb.
|
||||||
device = resource2.Body('device')
|
device = resource.Body('device')
|
||||||
#: The ID of the attachment.
|
#: The ID of the attachment.
|
||||||
id = resource2.Body('id')
|
id = resource.Body('id')
|
||||||
#: The ID for the server.
|
#: The ID for the server.
|
||||||
server_id = resource2.URI('server_id')
|
server_id = resource.URI('server_id')
|
||||||
#: The ID of the attached volume.
|
#: The ID of the attached volume.
|
||||||
volume_id = resource2.Body('volumeId')
|
volume_id = resource.Body('volumeId')
|
||||||
#: The ID of the attachment you want to delete or update.
|
#: The ID of the attachment you want to delete or update.
|
||||||
attachment_id = resource2.Body('attachment_id', alternate_id=True)
|
attachment_id = resource.Body('attachment_id', alternate_id=True)
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.compute import compute_service
|
from openstack.compute import compute_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Version(resource.Resource):
|
class Version(resource.Resource):
|
||||||
|
@@ -250,10 +250,10 @@ class Connection(object):
|
|||||||
def add_service(self, service):
|
def add_service(self, service):
|
||||||
"""Add a service to the Connection.
|
"""Add a service to the Connection.
|
||||||
|
|
||||||
Attaches an instance of the :class:`~openstack.proxy2.BaseProxy`
|
Attaches an instance of the :class:`~openstack.proxy.BaseProxy`
|
||||||
class contained in
|
class contained in
|
||||||
:class:`~openstack.service_description.ServiceDescription`.
|
:class:`~openstack.service_description.ServiceDescription`.
|
||||||
The :class:`~openstack.proxy2.BaseProxy` will be attached to the
|
The :class:`~openstack.proxy.BaseProxy` will be attached to the
|
||||||
`Connection` by its ``service_type`` and by any ``aliases`` that
|
`Connection` by its ``service_type`` and by any ``aliases`` that
|
||||||
may be specified.
|
may be specified.
|
||||||
|
|
||||||
|
@@ -14,10 +14,10 @@ from openstack.database.v1 import database as _database
|
|||||||
from openstack.database.v1 import flavor as _flavor
|
from openstack.database.v1 import flavor as _flavor
|
||||||
from openstack.database.v1 import instance as _instance
|
from openstack.database.v1 import instance as _instance
|
||||||
from openstack.database.v1 import user as _user
|
from openstack.database.v1 import user as _user
|
||||||
from openstack import proxy2
|
from openstack import proxy
|
||||||
|
|
||||||
|
|
||||||
class Proxy(proxy2.BaseProxy):
|
class Proxy(proxy.BaseProxy):
|
||||||
|
|
||||||
def create_database(self, instance, **attrs):
|
def create_database(self, instance, **attrs):
|
||||||
"""Create a new database from attributes
|
"""Create a new database from attributes
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.database import database_service
|
from openstack.database import database_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Database(resource.Resource):
|
class Database(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.database import database_service
|
from openstack.database import database_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Flavor(resource.Resource):
|
class Flavor(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.database import database_service
|
from openstack.database import database_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
from openstack import utils
|
from openstack import utils
|
||||||
|
|
||||||
|
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.database import database_service
|
from openstack.database import database_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
from openstack import utils
|
from openstack import utils
|
||||||
|
|
||||||
|
|
||||||
|
@@ -14,7 +14,7 @@ from openstack.identity.v2 import extension as _extension
|
|||||||
from openstack.identity.v2 import role as _role
|
from openstack.identity.v2 import role as _role
|
||||||
from openstack.identity.v2 import tenant as _tenant
|
from openstack.identity.v2 import tenant as _tenant
|
||||||
from openstack.identity.v2 import user as _user
|
from openstack.identity.v2 import user as _user
|
||||||
from openstack import proxy2 as proxy
|
from openstack import proxy
|
||||||
|
|
||||||
|
|
||||||
class Proxy(proxy.BaseProxy):
|
class Proxy(proxy.BaseProxy):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Extension(resource.Resource):
|
class Extension(resource.Resource):
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
from openstack import format
|
from openstack import format
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Role(resource.Resource):
|
class Role(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Tenant(resource.Resource):
|
class Tenant(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class User(resource.Resource):
|
class User(resource.Resource):
|
||||||
|
@@ -31,7 +31,7 @@ from openstack.identity.v3 import role_project_user_assignment \
|
|||||||
from openstack.identity.v3 import service as _service
|
from openstack.identity.v3 import service as _service
|
||||||
from openstack.identity.v3 import trust as _trust
|
from openstack.identity.v3 import trust as _trust
|
||||||
from openstack.identity.v3 import user as _user
|
from openstack.identity.v3 import user as _user
|
||||||
from openstack import proxy2 as proxy
|
from openstack import proxy
|
||||||
|
|
||||||
|
|
||||||
class Proxy(proxy.BaseProxy):
|
class Proxy(proxy.BaseProxy):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Credential(resource.Resource):
|
class Credential(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
from openstack import utils
|
from openstack import utils
|
||||||
|
|
||||||
|
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Endpoint(resource.Resource):
|
class Endpoint(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Group(resource.Resource):
|
class Group(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Policy(resource.Resource):
|
class Policy(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
from openstack import utils
|
from openstack import utils
|
||||||
|
|
||||||
|
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Region(resource.Resource):
|
class Region(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Role(resource.Resource):
|
class Role(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class RoleAssignment(resource.Resource):
|
class RoleAssignment(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class RoleDomainGroupAssignment(resource.Resource):
|
class RoleDomainGroupAssignment(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class RoleDomainUserAssignment(resource.Resource):
|
class RoleDomainUserAssignment(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class RoleProjectGroupAssignment(resource.Resource):
|
class RoleProjectGroupAssignment(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class RoleProjectUserAssignment(resource.Resource):
|
class RoleProjectUserAssignment(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Service(resource.Resource):
|
class Service(resource.Resource):
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Trust(resource.Resource):
|
class Trust(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class User(resource.Resource):
|
class User(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.identity import identity_service
|
from openstack.identity import identity_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Version(resource.Resource):
|
class Version(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.image.v1 import image as _image
|
from openstack.image.v1 import image as _image
|
||||||
from openstack import proxy2 as proxy
|
from openstack import proxy
|
||||||
|
|
||||||
|
|
||||||
class Proxy(proxy.BaseProxy):
|
class Proxy(proxy.BaseProxy):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.image import image_service
|
from openstack.image import image_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Image(resource.Resource):
|
class Image(resource.Resource):
|
||||||
|
@@ -13,11 +13,11 @@
|
|||||||
from openstack import exceptions
|
from openstack import exceptions
|
||||||
from openstack.image.v2 import image as _image
|
from openstack.image.v2 import image as _image
|
||||||
from openstack.image.v2 import member as _member
|
from openstack.image.v2 import member as _member
|
||||||
from openstack import proxy2
|
from openstack import proxy
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Proxy(proxy2.BaseProxy):
|
class Proxy(proxy.BaseProxy):
|
||||||
|
|
||||||
def upload_image(self, container_format=None, disk_format=None,
|
def upload_image(self, container_format=None, disk_format=None,
|
||||||
data=None, **attrs):
|
data=None, **attrs):
|
||||||
@@ -221,7 +221,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
:returns: The results of member creation
|
:returns: The results of member creation
|
||||||
:rtype: :class:`~openstack.image.v2.member.Member`
|
:rtype: :class:`~openstack.image.v2.member.Member`
|
||||||
"""
|
"""
|
||||||
image_id = resource2.Resource._get_id(image)
|
image_id = resource.Resource._get_id(image)
|
||||||
return self._create(_member.Member, image_id=image_id, **attrs)
|
return self._create(_member.Member, image_id=image_id, **attrs)
|
||||||
|
|
||||||
def remove_member(self, member, image, ignore_missing=True):
|
def remove_member(self, member, image, ignore_missing=True):
|
||||||
@@ -237,8 +237,8 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
|
|
||||||
:returns: ``None``
|
:returns: ``None``
|
||||||
"""
|
"""
|
||||||
image_id = resource2.Resource._get_id(image)
|
image_id = resource.Resource._get_id(image)
|
||||||
member_id = resource2.Resource._get_id(member)
|
member_id = resource.Resource._get_id(member)
|
||||||
self._delete(_member.Member, member_id=member_id, image_id=image_id,
|
self._delete(_member.Member, member_id=member_id, image_id=image_id,
|
||||||
ignore_missing=ignore_missing)
|
ignore_missing=ignore_missing)
|
||||||
|
|
||||||
@@ -256,7 +256,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
attempting to find a nonexistent resource.
|
attempting to find a nonexistent resource.
|
||||||
:returns: One :class:`~openstack.image.v2.member.Member` or None
|
:returns: One :class:`~openstack.image.v2.member.Member` or None
|
||||||
"""
|
"""
|
||||||
image_id = resource2.Resource._get_id(image)
|
image_id = resource.Resource._get_id(image)
|
||||||
return self._find(_member.Member, name_or_id, image_id=image_id,
|
return self._find(_member.Member, name_or_id, image_id=image_id,
|
||||||
ignore_missing=ignore_missing)
|
ignore_missing=ignore_missing)
|
||||||
|
|
||||||
@@ -272,8 +272,8 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
:raises: :class:`~openstack.exceptions.ResourceNotFound`
|
:raises: :class:`~openstack.exceptions.ResourceNotFound`
|
||||||
when no resource can be found.
|
when no resource can be found.
|
||||||
"""
|
"""
|
||||||
member_id = resource2.Resource._get_id(member)
|
member_id = resource.Resource._get_id(member)
|
||||||
image_id = resource2.Resource._get_id(image)
|
image_id = resource.Resource._get_id(image)
|
||||||
return self._get(_member.Member, member_id=member_id,
|
return self._get(_member.Member, member_id=member_id,
|
||||||
image_id=image_id)
|
image_id=image_id)
|
||||||
|
|
||||||
@@ -287,7 +287,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
:returns: A generator of member objects
|
:returns: A generator of member objects
|
||||||
:rtype: :class:`~openstack.image.v2.member.Member`
|
:rtype: :class:`~openstack.image.v2.member.Member`
|
||||||
"""
|
"""
|
||||||
image_id = resource2.Resource._get_id(image)
|
image_id = resource.Resource._get_id(image)
|
||||||
return self._list(_member.Member, paginated=False,
|
return self._list(_member.Member, paginated=False,
|
||||||
image_id=image_id)
|
image_id=image_id)
|
||||||
|
|
||||||
@@ -305,7 +305,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
:returns: The updated member
|
:returns: The updated member
|
||||||
:rtype: :class:`~openstack.image.v2.member.Member`
|
:rtype: :class:`~openstack.image.v2.member.Member`
|
||||||
"""
|
"""
|
||||||
member_id = resource2.Resource._get_id(member)
|
member_id = resource.Resource._get_id(member)
|
||||||
image_id = resource2.Resource._get_id(image)
|
image_id = resource.Resource._get_id(image)
|
||||||
return self._update(_member.Member, member_id=member_id,
|
return self._update(_member.Member, member_id=member_id,
|
||||||
image_id=image_id, **attrs)
|
image_id=image_id, **attrs)
|
||||||
|
@@ -17,13 +17,13 @@ import jsonpatch
|
|||||||
from openstack import _log
|
from openstack import _log
|
||||||
from openstack import exceptions
|
from openstack import exceptions
|
||||||
from openstack.image import image_service
|
from openstack.image import image_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
from openstack import utils
|
from openstack import utils
|
||||||
|
|
||||||
_logger = _log.setup_logging('openstack')
|
_logger = _log.setup_logging('openstack')
|
||||||
|
|
||||||
|
|
||||||
class Image(resource2.Resource):
|
class Image(resource.Resource):
|
||||||
resources_key = 'images'
|
resources_key = 'images'
|
||||||
base_path = '/images'
|
base_path = '/images'
|
||||||
service = image_service.ImageService()
|
service = image_service.ImageService()
|
||||||
@@ -36,12 +36,13 @@ class Image(resource2.Resource):
|
|||||||
allow_list = True
|
allow_list = True
|
||||||
update_method = 'PATCH'
|
update_method = 'PATCH'
|
||||||
|
|
||||||
_query_mapping = resource2.QueryParameters("name", "visibility",
|
_query_mapping = resource.QueryParameters(
|
||||||
"member_status", "owner",
|
"name", "visibility",
|
||||||
"status", "size_min",
|
"member_status", "owner",
|
||||||
"size_max", "sort_key",
|
"status", "size_min",
|
||||||
"sort_dir", "sort", "tag",
|
"size_max", "sort_key",
|
||||||
"created_at", "updated_at")
|
"sort_dir", "sort", "tag",
|
||||||
|
"created_at", "updated_at")
|
||||||
|
|
||||||
# NOTE: Do not add "self" support here. If you've used Python before,
|
# NOTE: Do not add "self" support here. If you've used Python before,
|
||||||
# you know that self, while not being a reserved word, has special
|
# you know that self, while not being a reserved word, has special
|
||||||
@@ -57,159 +58,159 @@ class Image(resource2.Resource):
|
|||||||
# Properties
|
# Properties
|
||||||
#: Hash of the image data used. The Image service uses this value
|
#: Hash of the image data used. The Image service uses this value
|
||||||
#: for verification.
|
#: for verification.
|
||||||
checksum = resource2.Body('checksum')
|
checksum = resource.Body('checksum')
|
||||||
#: The container format refers to whether the VM image is in a file
|
#: The container format refers to whether the VM image is in a file
|
||||||
#: format that also contains metadata about the actual VM.
|
#: format that also contains metadata about the actual VM.
|
||||||
#: Container formats include OVF and Amazon AMI. In addition,
|
#: Container formats include OVF and Amazon AMI. In addition,
|
||||||
#: a VM image might not have a container format - instead,
|
#: a VM image might not have a container format - instead,
|
||||||
#: the image is just a blob of unstructured data.
|
#: the image is just a blob of unstructured data.
|
||||||
container_format = resource2.Body('container_format')
|
container_format = resource.Body('container_format')
|
||||||
#: The date and time when the image was created.
|
#: The date and time when the image was created.
|
||||||
created_at = resource2.Body('created_at')
|
created_at = resource.Body('created_at')
|
||||||
#: Valid values are: aki, ari, ami, raw, iso, vhd, vdi, qcow2, or vmdk.
|
#: Valid values are: aki, ari, ami, raw, iso, vhd, vdi, qcow2, or vmdk.
|
||||||
#: The disk format of a VM image is the format of the underlying
|
#: The disk format of a VM image is the format of the underlying
|
||||||
#: disk image. Virtual appliance vendors have different formats
|
#: disk image. Virtual appliance vendors have different formats
|
||||||
#: for laying out the information contained in a VM disk image.
|
#: for laying out the information contained in a VM disk image.
|
||||||
disk_format = resource2.Body('disk_format')
|
disk_format = resource.Body('disk_format')
|
||||||
#: Defines whether the image can be deleted.
|
#: Defines whether the image can be deleted.
|
||||||
#: *Type: bool*
|
#: *Type: bool*
|
||||||
is_protected = resource2.Body('protected', type=bool)
|
is_protected = resource.Body('protected', type=bool)
|
||||||
#: The minimum disk size in GB that is required to boot the image.
|
#: The minimum disk size in GB that is required to boot the image.
|
||||||
min_disk = resource2.Body('min_disk')
|
min_disk = resource.Body('min_disk')
|
||||||
#: The minimum amount of RAM in MB that is required to boot the image.
|
#: The minimum amount of RAM in MB that is required to boot the image.
|
||||||
min_ram = resource2.Body('min_ram')
|
min_ram = resource.Body('min_ram')
|
||||||
#: The name of the image.
|
#: The name of the image.
|
||||||
name = resource2.Body('name')
|
name = resource.Body('name')
|
||||||
#: The ID of the owner, or project, of the image.
|
#: The ID of the owner, or project, of the image.
|
||||||
owner_id = resource2.Body('owner')
|
owner_id = resource.Body('owner')
|
||||||
#: Properties, if any, that are associated with the image.
|
#: Properties, if any, that are associated with the image.
|
||||||
properties = resource2.Body('properties', type=dict)
|
properties = resource.Body('properties', type=dict)
|
||||||
#: The size of the image data, in bytes.
|
#: The size of the image data, in bytes.
|
||||||
size = resource2.Body('size', type=int)
|
size = resource.Body('size', type=int)
|
||||||
#: When present, Glance will attempt to store the disk image data in the
|
#: When present, Glance will attempt to store the disk image data in the
|
||||||
#: backing store indicated by the value of the header. When not present,
|
#: backing store indicated by the value of the header. When not present,
|
||||||
#: Glance will store the disk image data in the backing store that is
|
#: Glance will store the disk image data in the backing store that is
|
||||||
#: marked default. Valid values are: file, s3, rbd, swift, cinder,
|
#: marked default. Valid values are: file, s3, rbd, swift, cinder,
|
||||||
#: gridfs, sheepdog, or vsphere.
|
#: gridfs, sheepdog, or vsphere.
|
||||||
store = resource2.Body('store')
|
store = resource.Body('store')
|
||||||
#: The image status.
|
#: The image status.
|
||||||
status = resource2.Body('status')
|
status = resource.Body('status')
|
||||||
#: Tags, if any, that are associated with the image.
|
#: Tags, if any, that are associated with the image.
|
||||||
tags = resource2.Body('tags')
|
tags = resource.Body('tags')
|
||||||
#: The date and time when the image was updated.
|
#: The date and time when the image was updated.
|
||||||
updated_at = resource2.Body('updated_at')
|
updated_at = resource.Body('updated_at')
|
||||||
#: The virtual size of the image.
|
#: The virtual size of the image.
|
||||||
virtual_size = resource2.Body('virtual_size')
|
virtual_size = resource.Body('virtual_size')
|
||||||
#: The image visibility.
|
#: The image visibility.
|
||||||
visibility = resource2.Body('visibility')
|
visibility = resource.Body('visibility')
|
||||||
#: The URL for the virtual machine image file.
|
#: The URL for the virtual machine image file.
|
||||||
file = resource2.Body('file')
|
file = resource.Body('file')
|
||||||
#: A list of URLs to access the image file in external store.
|
#: A list of URLs to access the image file in external store.
|
||||||
#: This list appears if the show_multiple_locations option is set
|
#: This list appears if the show_multiple_locations option is set
|
||||||
#: to true in the Image service's configuration file.
|
#: to true in the Image service's configuration file.
|
||||||
locations = resource2.Body('locations')
|
locations = resource.Body('locations')
|
||||||
#: The URL to access the image file kept in external store. It appears
|
#: The URL to access the image file kept in external store. It appears
|
||||||
#: when you set the show_image_direct_url option to true in the
|
#: when you set the show_image_direct_url option to true in the
|
||||||
#: Image service's configuration file.
|
#: Image service's configuration file.
|
||||||
direct_url = resource2.Body('direct_url')
|
direct_url = resource.Body('direct_url')
|
||||||
#: An image property.
|
#: An image property.
|
||||||
path = resource2.Body('path')
|
path = resource.Body('path')
|
||||||
#: Value of image property used in add or replace operations expressed
|
#: Value of image property used in add or replace operations expressed
|
||||||
#: in JSON notation. For example, you must enclose strings in quotation
|
#: in JSON notation. For example, you must enclose strings in quotation
|
||||||
#: marks, and you do not enclose numeric values in quotation marks.
|
#: marks, and you do not enclose numeric values in quotation marks.
|
||||||
value = resource2.Body('value')
|
value = resource.Body('value')
|
||||||
#: The URL to access the image file kept in external store.
|
#: The URL to access the image file kept in external store.
|
||||||
url = resource2.Body('url')
|
url = resource.Body('url')
|
||||||
#: The location metadata.
|
#: The location metadata.
|
||||||
metadata = resource2.Body('metadata', type=dict)
|
metadata = resource.Body('metadata', type=dict)
|
||||||
|
|
||||||
# Additional Image Properties
|
# Additional Image Properties
|
||||||
# https://docs.openstack.org/glance/latest/user/common-image-properties.html
|
# https://docs.openstack.org/glance/latest/user/common-image-properties.html
|
||||||
# http://docs.openstack.org/cli-reference/glance-property-keys.html
|
# http://docs.openstack.org/cli-reference/glance-property-keys.html
|
||||||
#: The CPU architecture that must be supported by the hypervisor.
|
#: The CPU architecture that must be supported by the hypervisor.
|
||||||
architecture = resource2.Body("architecture")
|
architecture = resource.Body("architecture")
|
||||||
#: The hypervisor type. Note that qemu is used for both QEMU and
|
#: The hypervisor type. Note that qemu is used for both QEMU and
|
||||||
#: KVM hypervisor types.
|
#: KVM hypervisor types.
|
||||||
hypervisor_type = resource2.Body("hypervisor-type")
|
hypervisor_type = resource.Body("hypervisor-type")
|
||||||
#: Optional property allows created servers to have a different bandwidth
|
#: Optional property allows created servers to have a different bandwidth
|
||||||
#: cap than that defined in the network they are attached to.
|
#: cap than that defined in the network they are attached to.
|
||||||
instance_type_rxtx_factor = resource2.Body("instance_type_rxtx_factor",
|
instance_type_rxtx_factor = resource.Body(
|
||||||
type=float)
|
"instance_type_rxtx_factor", type=float)
|
||||||
# For snapshot images, this is the UUID of the server used to
|
# For snapshot images, this is the UUID of the server used to
|
||||||
#: create this image.
|
#: create this image.
|
||||||
instance_uuid = resource2.Body('instance_uuid')
|
instance_uuid = resource.Body('instance_uuid')
|
||||||
#: Specifies whether the image needs a config drive.
|
#: Specifies whether the image needs a config drive.
|
||||||
#: `mandatory` or `optional` (default if property is not used).
|
#: `mandatory` or `optional` (default if property is not used).
|
||||||
needs_config_drive = resource2.Body('img_config_drive')
|
needs_config_drive = resource.Body('img_config_drive')
|
||||||
#: The ID of an image stored in the Image service that should be used
|
#: The ID of an image stored in the Image service that should be used
|
||||||
#: as the kernel when booting an AMI-style image.
|
#: as the kernel when booting an AMI-style image.
|
||||||
kernel_id = resource2.Body('kernel_id')
|
kernel_id = resource.Body('kernel_id')
|
||||||
#: The common name of the operating system distribution in lowercase
|
#: The common name of the operating system distribution in lowercase
|
||||||
os_distro = resource2.Body('os_distro')
|
os_distro = resource.Body('os_distro')
|
||||||
#: The operating system version as specified by the distributor.
|
#: The operating system version as specified by the distributor.
|
||||||
os_version = resource2.Body('os_version')
|
os_version = resource.Body('os_version')
|
||||||
#: Secure Boot is a security standard. When the instance starts,
|
#: Secure Boot is a security standard. When the instance starts,
|
||||||
#: Secure Boot first examines software such as firmware and OS by
|
#: Secure Boot first examines software such as firmware and OS by
|
||||||
#: their signature and only allows them to run if the signatures are valid.
|
#: their signature and only allows them to run if the signatures are valid.
|
||||||
needs_secure_boot = resource2.Body('os_secure_boot')
|
needs_secure_boot = resource.Body('os_secure_boot')
|
||||||
#: The ID of image stored in the Image service that should be used as
|
#: The ID of image stored in the Image service that should be used as
|
||||||
#: the ramdisk when booting an AMI-style image.
|
#: the ramdisk when booting an AMI-style image.
|
||||||
ramdisk_id = resource2.Body('ramdisk_id')
|
ramdisk_id = resource.Body('ramdisk_id')
|
||||||
#: The virtual machine mode. This represents the host/guest ABI
|
#: The virtual machine mode. This represents the host/guest ABI
|
||||||
#: (application binary interface) used for the virtual machine.
|
#: (application binary interface) used for the virtual machine.
|
||||||
vm_mode = resource2.Body('vm_mode')
|
vm_mode = resource.Body('vm_mode')
|
||||||
#: The preferred number of sockets to expose to the guest.
|
#: The preferred number of sockets to expose to the guest.
|
||||||
hw_cpu_sockets = resource2.Body('hw_cpu_sockets', type=int)
|
hw_cpu_sockets = resource.Body('hw_cpu_sockets', type=int)
|
||||||
#: The preferred number of cores to expose to the guest.
|
#: The preferred number of cores to expose to the guest.
|
||||||
hw_cpu_cores = resource2.Body('hw_cpu_cores', type=int)
|
hw_cpu_cores = resource.Body('hw_cpu_cores', type=int)
|
||||||
#: The preferred number of threads to expose to the guest.
|
#: The preferred number of threads to expose to the guest.
|
||||||
hw_cpu_threads = resource2.Body('hw_cpu_threads', type=int)
|
hw_cpu_threads = resource.Body('hw_cpu_threads', type=int)
|
||||||
#: Specifies the type of disk controller to attach disk devices to.
|
#: Specifies the type of disk controller to attach disk devices to.
|
||||||
#: One of scsi, virtio, uml, xen, ide, or usb.
|
#: One of scsi, virtio, uml, xen, ide, or usb.
|
||||||
hw_disk_bus = resource2.Body('hw_disk_bus')
|
hw_disk_bus = resource.Body('hw_disk_bus')
|
||||||
#: Adds a random-number generator device to the image's instances.
|
#: Adds a random-number generator device to the image's instances.
|
||||||
hw_rng_model = resource2.Body('hw_rng_model')
|
hw_rng_model = resource.Body('hw_rng_model')
|
||||||
#: For libvirt: Enables booting an ARM system using the specified
|
#: For libvirt: Enables booting an ARM system using the specified
|
||||||
#: machine type.
|
#: machine type.
|
||||||
#: For Hyper-V: Specifies whether the Hyper-V instance will be a
|
#: For Hyper-V: Specifies whether the Hyper-V instance will be a
|
||||||
#: generation 1 or generation 2 VM.
|
#: generation 1 or generation 2 VM.
|
||||||
hw_machine_type = resource2.Body('hw_machine_type')
|
hw_machine_type = resource.Body('hw_machine_type')
|
||||||
#: Enables the use of VirtIO SCSI (virtio-scsi) to provide block device
|
#: Enables the use of VirtIO SCSI (virtio-scsi) to provide block device
|
||||||
#: access for compute instances; by default, instances use VirtIO Block
|
#: access for compute instances; by default, instances use VirtIO Block
|
||||||
#: (virtio-blk).
|
#: (virtio-blk).
|
||||||
hw_scsi_model = resource2.Body('hw_scsi_model')
|
hw_scsi_model = resource.Body('hw_scsi_model')
|
||||||
#: Specifies the count of serial ports that should be provided.
|
#: Specifies the count of serial ports that should be provided.
|
||||||
hw_serial_port_count = resource2.Body('hw_serial_port_count', type=int)
|
hw_serial_port_count = resource.Body('hw_serial_port_count', type=int)
|
||||||
#: The video image driver used.
|
#: The video image driver used.
|
||||||
hw_video_model = resource2.Body('hw_video_model')
|
hw_video_model = resource.Body('hw_video_model')
|
||||||
#: Maximum RAM for the video image.
|
#: Maximum RAM for the video image.
|
||||||
hw_video_ram = resource2.Body('hw_video_ram', type=int)
|
hw_video_ram = resource.Body('hw_video_ram', type=int)
|
||||||
#: Enables a virtual hardware watchdog device that carries out the
|
#: Enables a virtual hardware watchdog device that carries out the
|
||||||
#: specified action if the server hangs.
|
#: specified action if the server hangs.
|
||||||
hw_watchdog_action = resource2.Body('hw_watchdog_action')
|
hw_watchdog_action = resource.Body('hw_watchdog_action')
|
||||||
#: The kernel command line to be used by the libvirt driver, instead
|
#: The kernel command line to be used by the libvirt driver, instead
|
||||||
#: of the default.
|
#: of the default.
|
||||||
os_command_line = resource2.Body('os_command_line')
|
os_command_line = resource.Body('os_command_line')
|
||||||
#: Specifies the model of virtual network interface device to use.
|
#: Specifies the model of virtual network interface device to use.
|
||||||
hw_vif_model = resource2.Body('hw_vif_model')
|
hw_vif_model = resource.Body('hw_vif_model')
|
||||||
#: If true, this enables the virtio-net multiqueue feature.
|
#: If true, this enables the virtio-net multiqueue feature.
|
||||||
#: In this case, the driver sets the number of queues equal to the
|
#: In this case, the driver sets the number of queues equal to the
|
||||||
#: number of guest vCPUs. This makes the network performance scale
|
#: number of guest vCPUs. This makes the network performance scale
|
||||||
#: across a number of vCPUs.
|
#: across a number of vCPUs.
|
||||||
is_hw_vif_multiqueue_enabled = resource2.Body('hw_vif_multiqueue_enabled',
|
is_hw_vif_multiqueue_enabled = resource.Body(
|
||||||
type=bool)
|
'hw_vif_multiqueue_enabled', type=bool)
|
||||||
#: If true, enables the BIOS bootmenu.
|
#: If true, enables the BIOS bootmenu.
|
||||||
is_hw_boot_menu_enabled = resource2.Body('hw_boot_menu', type=bool)
|
is_hw_boot_menu_enabled = resource.Body('hw_boot_menu', type=bool)
|
||||||
#: The virtual SCSI or IDE controller used by the hypervisor.
|
#: The virtual SCSI or IDE controller used by the hypervisor.
|
||||||
vmware_adaptertype = resource2.Body('vmware_adaptertype')
|
vmware_adaptertype = resource.Body('vmware_adaptertype')
|
||||||
#: A VMware GuestID which describes the operating system installed
|
#: A VMware GuestID which describes the operating system installed
|
||||||
#: in the image.
|
#: in the image.
|
||||||
vmware_ostype = resource2.Body('vmware_ostype')
|
vmware_ostype = resource.Body('vmware_ostype')
|
||||||
#: If true, the root partition on the disk is automatically resized
|
#: If true, the root partition on the disk is automatically resized
|
||||||
#: before the instance boots.
|
#: before the instance boots.
|
||||||
has_auto_disk_config = resource2.Body('auto_disk_config', type=bool)
|
has_auto_disk_config = resource.Body('auto_disk_config', type=bool)
|
||||||
#: The operating system installed on the image.
|
#: The operating system installed on the image.
|
||||||
os_type = resource2.Body('os_type')
|
os_type = resource.Body('os_type')
|
||||||
|
|
||||||
def _action(self, session, action):
|
def _action(self, session, action):
|
||||||
"""Call an action on an image ID."""
|
"""Call an action on an image ID."""
|
||||||
|
@@ -11,10 +11,10 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.image import image_service
|
from openstack.image import image_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Member(resource2.Resource):
|
class Member(resource.Resource):
|
||||||
resources_key = 'members'
|
resources_key = 'members'
|
||||||
base_path = '/images/%(image_id)s/members'
|
base_path = '/images/%(image_id)s/members'
|
||||||
service = image_service.ImageService()
|
service = image_service.ImageService()
|
||||||
@@ -32,14 +32,14 @@ class Member(resource2.Resource):
|
|||||||
|
|
||||||
#: The ID of the image member. An image member is a tenant
|
#: The ID of the image member. An image member is a tenant
|
||||||
#: with whom the image is shared.
|
#: with whom the image is shared.
|
||||||
member_id = resource2.Body('member', alternate_id=True)
|
member_id = resource.Body('member', alternate_id=True)
|
||||||
#: The date and time when the member was created.
|
#: The date and time when the member was created.
|
||||||
created_at = resource2.Body('created_at')
|
created_at = resource.Body('created_at')
|
||||||
#: Image ID stored through the image API. Typically a UUID.
|
#: Image ID stored through the image API. Typically a UUID.
|
||||||
image_id = resource2.URI('image_id')
|
image_id = resource.URI('image_id')
|
||||||
#: The status of the image.
|
#: The status of the image.
|
||||||
status = resource2.Body('status')
|
status = resource.Body('status')
|
||||||
#: The URL for schema of the member.
|
#: The URL for schema of the member.
|
||||||
schema = resource2.Body('schema')
|
schema = resource.Body('schema')
|
||||||
#: The date and time when the member was updated.
|
#: The date and time when the member was updated.
|
||||||
updated_at = resource2.Body('updated_at')
|
updated_at = resource.Body('updated_at')
|
||||||
|
@@ -13,10 +13,10 @@
|
|||||||
from openstack.key_manager.v1 import container as _container
|
from openstack.key_manager.v1 import container as _container
|
||||||
from openstack.key_manager.v1 import order as _order
|
from openstack.key_manager.v1 import order as _order
|
||||||
from openstack.key_manager.v1 import secret as _secret
|
from openstack.key_manager.v1 import secret as _secret
|
||||||
from openstack import proxy2
|
from openstack import proxy
|
||||||
|
|
||||||
|
|
||||||
class Proxy(proxy2.BaseProxy):
|
class Proxy(proxy.BaseProxy):
|
||||||
|
|
||||||
def create_container(self, **attrs):
|
def create_container(self, **attrs):
|
||||||
"""Create a new container from attributes
|
"""Create a new container from attributes
|
||||||
|
@@ -12,10 +12,10 @@
|
|||||||
|
|
||||||
from openstack.key_manager import key_manager_service
|
from openstack.key_manager import key_manager_service
|
||||||
from openstack.key_manager.v1 import _format
|
from openstack.key_manager.v1 import _format
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Container(resource2.Resource):
|
class Container(resource.Resource):
|
||||||
resources_key = 'containers'
|
resources_key = 'containers'
|
||||||
base_path = '/containers'
|
base_path = '/containers'
|
||||||
service = key_manager_service.KeyManagerService()
|
service = key_manager_service.KeyManagerService()
|
||||||
@@ -29,21 +29,22 @@ class Container(resource2.Resource):
|
|||||||
|
|
||||||
# Properties
|
# Properties
|
||||||
#: A URI for this container
|
#: A URI for this container
|
||||||
container_ref = resource2.Body('container_ref')
|
container_ref = resource.Body('container_ref')
|
||||||
#: The ID for this container
|
#: The ID for this container
|
||||||
container_id = resource2.Body('container_ref', alternate_id=True,
|
container_id = resource.Body(
|
||||||
type=_format.HREFToUUID)
|
'container_ref', alternate_id=True,
|
||||||
|
type=_format.HREFToUUID)
|
||||||
#: The timestamp when this container was created.
|
#: The timestamp when this container was created.
|
||||||
created_at = resource2.Body('created')
|
created_at = resource.Body('created')
|
||||||
#: The name of this container
|
#: The name of this container
|
||||||
name = resource2.Body('name')
|
name = resource.Body('name')
|
||||||
#: A list of references to secrets in this container
|
#: A list of references to secrets in this container
|
||||||
secret_refs = resource2.Body('secret_refs', type=list)
|
secret_refs = resource.Body('secret_refs', type=list)
|
||||||
#: The status of this container
|
#: The status of this container
|
||||||
status = resource2.Body('status')
|
status = resource.Body('status')
|
||||||
#: The type of this container
|
#: The type of this container
|
||||||
type = resource2.Body('type')
|
type = resource.Body('type')
|
||||||
#: The timestamp when this container was updated.
|
#: The timestamp when this container was updated.
|
||||||
updated_at = resource2.Body('updated')
|
updated_at = resource.Body('updated')
|
||||||
#: A party interested in this container.
|
#: A party interested in this container.
|
||||||
consumers = resource2.Body('consumers', type=list)
|
consumers = resource.Body('consumers', type=list)
|
||||||
|
@@ -12,10 +12,10 @@
|
|||||||
|
|
||||||
from openstack.key_manager import key_manager_service
|
from openstack.key_manager import key_manager_service
|
||||||
from openstack.key_manager.v1 import _format
|
from openstack.key_manager.v1 import _format
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Order(resource2.Resource):
|
class Order(resource.Resource):
|
||||||
resources_key = 'orders'
|
resources_key = 'orders'
|
||||||
base_path = '/orders'
|
base_path = '/orders'
|
||||||
service = key_manager_service.KeyManagerService()
|
service = key_manager_service.KeyManagerService()
|
||||||
@@ -28,28 +28,28 @@ class Order(resource2.Resource):
|
|||||||
allow_list = True
|
allow_list = True
|
||||||
|
|
||||||
#: Timestamp in ISO8601 format of when the order was created
|
#: Timestamp in ISO8601 format of when the order was created
|
||||||
created_at = resource2.Body('created')
|
created_at = resource.Body('created')
|
||||||
#: Keystone Id of the user who created the order
|
#: Keystone Id of the user who created the order
|
||||||
creator_id = resource2.Body('creator_id')
|
creator_id = resource.Body('creator_id')
|
||||||
#: A dictionary containing key-value parameters which specify the
|
#: A dictionary containing key-value parameters which specify the
|
||||||
#: details of an order request
|
#: details of an order request
|
||||||
meta = resource2.Body('meta', type=dict)
|
meta = resource.Body('meta', type=dict)
|
||||||
#: A URI for this order
|
#: A URI for this order
|
||||||
order_ref = resource2.Body('order_ref')
|
order_ref = resource.Body('order_ref')
|
||||||
#: The ID of this order
|
#: The ID of this order
|
||||||
order_id = resource2.Body('order_ref', alternate_id=True,
|
order_id = resource.Body(
|
||||||
type=_format.HREFToUUID)
|
'order_ref', alternate_id=True, type=_format.HREFToUUID)
|
||||||
#: Secret href associated with the order
|
#: Secret href associated with the order
|
||||||
secret_ref = resource2.Body('secret_ref')
|
secret_ref = resource.Body('secret_ref')
|
||||||
#: Secret ID associated with the order
|
#: Secret ID associated with the order
|
||||||
secret_id = resource2.Body('secret_ref', type=_format.HREFToUUID)
|
secret_id = resource.Body('secret_ref', type=_format.HREFToUUID)
|
||||||
# The status of this order
|
# The status of this order
|
||||||
status = resource2.Body('status')
|
status = resource.Body('status')
|
||||||
#: Metadata associated with the order
|
#: Metadata associated with the order
|
||||||
sub_status = resource2.Body('sub_status')
|
sub_status = resource.Body('sub_status')
|
||||||
#: Metadata associated with the order
|
#: Metadata associated with the order
|
||||||
sub_status_message = resource2.Body('sub_status_message')
|
sub_status_message = resource.Body('sub_status_message')
|
||||||
# The type of order
|
# The type of order
|
||||||
type = resource2.Body('type')
|
type = resource.Body('type')
|
||||||
#: Timestamp in ISO8601 format of the last time the order was updated.
|
#: Timestamp in ISO8601 format of the last time the order was updated.
|
||||||
updated_at = resource2.Body('updated')
|
updated_at = resource.Body('updated')
|
||||||
|
@@ -12,11 +12,11 @@
|
|||||||
|
|
||||||
from openstack.key_manager import key_manager_service
|
from openstack.key_manager import key_manager_service
|
||||||
from openstack.key_manager.v1 import _format
|
from openstack.key_manager.v1 import _format
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
from openstack import utils
|
from openstack import utils
|
||||||
|
|
||||||
|
|
||||||
class Secret(resource2.Resource):
|
class Secret(resource.Resource):
|
||||||
resources_key = 'secrets'
|
resources_key = 'secrets'
|
||||||
base_path = '/secrets'
|
base_path = '/secrets'
|
||||||
service = key_manager_service.KeyManagerService()
|
service = key_manager_service.KeyManagerService()
|
||||||
@@ -28,55 +28,56 @@ class Secret(resource2.Resource):
|
|||||||
allow_delete = True
|
allow_delete = True
|
||||||
allow_list = True
|
allow_list = True
|
||||||
|
|
||||||
_query_mapping = resource2.QueryParameters("name", "mode", "bits",
|
_query_mapping = resource.QueryParameters(
|
||||||
"secret_type", "acl_only",
|
"name", "mode", "bits",
|
||||||
"created", "updated",
|
"secret_type", "acl_only",
|
||||||
"expiration", "sort",
|
"created", "updated",
|
||||||
algorithm="alg")
|
"expiration", "sort",
|
||||||
|
algorithm="alg")
|
||||||
|
|
||||||
# Properties
|
# Properties
|
||||||
#: Metadata provided by a user or system for informational purposes
|
#: Metadata provided by a user or system for informational purposes
|
||||||
algorithm = resource2.Body('algorithm')
|
algorithm = resource.Body('algorithm')
|
||||||
#: Metadata provided by a user or system for informational purposes.
|
#: Metadata provided by a user or system for informational purposes.
|
||||||
#: Value must be greater than zero.
|
#: Value must be greater than zero.
|
||||||
bit_length = resource2.Body('bit_length')
|
bit_length = resource.Body('bit_length')
|
||||||
#: A list of content types
|
#: A list of content types
|
||||||
content_types = resource2.Body('content_types', type=dict)
|
content_types = resource.Body('content_types', type=dict)
|
||||||
#: Once this timestamp has past, the secret will no longer be available.
|
#: Once this timestamp has past, the secret will no longer be available.
|
||||||
expires_at = resource2.Body('expiration')
|
expires_at = resource.Body('expiration')
|
||||||
#: Timestamp of when the secret was created.
|
#: Timestamp of when the secret was created.
|
||||||
created_at = resource2.Body('created')
|
created_at = resource.Body('created')
|
||||||
#: Timestamp of when the secret was last updated.
|
#: Timestamp of when the secret was last updated.
|
||||||
updated_at = resource2.Body('updated')
|
updated_at = resource.Body('updated')
|
||||||
#: The type/mode of the algorithm associated with the secret information.
|
#: The type/mode of the algorithm associated with the secret information.
|
||||||
mode = resource2.Body('mode')
|
mode = resource.Body('mode')
|
||||||
#: The name of the secret set by the user
|
#: The name of the secret set by the user
|
||||||
name = resource2.Body('name')
|
name = resource.Body('name')
|
||||||
#: A URI to the sercret
|
#: A URI to the sercret
|
||||||
secret_ref = resource2.Body('secret_ref')
|
secret_ref = resource.Body('secret_ref')
|
||||||
#: The ID of the secret
|
#: The ID of the secret
|
||||||
# NOTE: This is not really how alternate IDs are supposed to work and
|
# NOTE: This is not really how alternate IDs are supposed to work and
|
||||||
# ultimately means this has to work differently than all other services
|
# ultimately means this has to work differently than all other services
|
||||||
# in all of OpenStack because of the departure from using actual IDs
|
# in all of OpenStack because of the departure from using actual IDs
|
||||||
# that even this service can't even use itself.
|
# that even this service can't even use itself.
|
||||||
secret_id = resource2.Body('secret_ref', alternate_id=True,
|
secret_id = resource.Body(
|
||||||
type=_format.HREFToUUID)
|
'secret_ref', alternate_id=True, type=_format.HREFToUUID)
|
||||||
#: Used to indicate the type of secret being stored.
|
#: Used to indicate the type of secret being stored.
|
||||||
secret_type = resource2.Body('secret_type')
|
secret_type = resource.Body('secret_type')
|
||||||
#: The status of this secret
|
#: The status of this secret
|
||||||
status = resource2.Body('status')
|
status = resource.Body('status')
|
||||||
#: A timestamp when this secret was updated.
|
#: A timestamp when this secret was updated.
|
||||||
updated_at = resource2.Body('updated')
|
updated_at = resource.Body('updated')
|
||||||
#: The secret's data to be stored. payload_content_type must also
|
#: The secret's data to be stored. payload_content_type must also
|
||||||
#: be supplied if payload is included. (optional)
|
#: be supplied if payload is included. (optional)
|
||||||
payload = resource2.Body('payload')
|
payload = resource.Body('payload')
|
||||||
#: The media type for the content of the payload.
|
#: The media type for the content of the payload.
|
||||||
#: (required if payload is included)
|
#: (required if payload is included)
|
||||||
payload_content_type = resource2.Body('payload_content_type')
|
payload_content_type = resource.Body('payload_content_type')
|
||||||
#: The encoding used for the payload to be able to include it in
|
#: The encoding used for the payload to be able to include it in
|
||||||
#: the JSON request. Currently only base64 is supported.
|
#: the JSON request. Currently only base64 is supported.
|
||||||
#: (required if payload is encoded)
|
#: (required if payload is encoded)
|
||||||
payload_content_encoding = resource2.Body('payload_content_encoding')
|
payload_content_encoding = resource.Body('payload_content_encoding')
|
||||||
|
|
||||||
def get(self, session, requires_id=True):
|
def get(self, session, requires_id=True):
|
||||||
request = self._prepare_request(requires_id=requires_id)
|
request = self._prepare_request(requires_id=requires_id)
|
||||||
|
@@ -17,10 +17,10 @@ from openstack.load_balancer.v2 import listener as _listener
|
|||||||
from openstack.load_balancer.v2 import load_balancer as _lb
|
from openstack.load_balancer.v2 import load_balancer as _lb
|
||||||
from openstack.load_balancer.v2 import member as _member
|
from openstack.load_balancer.v2 import member as _member
|
||||||
from openstack.load_balancer.v2 import pool as _pool
|
from openstack.load_balancer.v2 import pool as _pool
|
||||||
from openstack import proxy2
|
from openstack import proxy
|
||||||
|
|
||||||
|
|
||||||
class Proxy(proxy2.BaseProxy):
|
class Proxy(proxy.BaseProxy):
|
||||||
|
|
||||||
def create_load_balancer(self, **attrs):
|
def create_load_balancer(self, **attrs):
|
||||||
"""Create a new load balancer from attributes
|
"""Create a new load balancer from attributes
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.load_balancer import load_balancer_service as lb_service
|
from openstack.load_balancer import load_balancer_service as lb_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class HealthMonitor(resource.Resource):
|
class HealthMonitor(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.load_balancer import load_balancer_service as lb_service
|
from openstack.load_balancer import load_balancer_service as lb_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class L7Policy(resource.Resource):
|
class L7Policy(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.load_balancer import load_balancer_service as lb_service
|
from openstack.load_balancer import load_balancer_service as lb_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class L7Rule(resource.Resource):
|
class L7Rule(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.load_balancer import load_balancer_service as lb_service
|
from openstack.load_balancer import load_balancer_service as lb_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Listener(resource.Resource):
|
class Listener(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.load_balancer import load_balancer_service as lb_service
|
from openstack.load_balancer import load_balancer_service as lb_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class LoadBalancer(resource.Resource):
|
class LoadBalancer(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.load_balancer import load_balancer_service as lb_service
|
from openstack.load_balancer import load_balancer_service as lb_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Member(resource.Resource):
|
class Member(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.load_balancer import load_balancer_service as lb_service
|
from openstack.load_balancer import load_balancer_service as lb_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Pool(resource.Resource):
|
class Pool(resource.Resource):
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.load_balancer import load_balancer_service as lb_service
|
from openstack.load_balancer import load_balancer_service as lb_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Version(resource.Resource):
|
class Version(resource.Resource):
|
||||||
|
@@ -14,11 +14,11 @@ from openstack.message.v2 import claim as _claim
|
|||||||
from openstack.message.v2 import message as _message
|
from openstack.message.v2 import message as _message
|
||||||
from openstack.message.v2 import queue as _queue
|
from openstack.message.v2 import queue as _queue
|
||||||
from openstack.message.v2 import subscription as _subscription
|
from openstack.message.v2 import subscription as _subscription
|
||||||
from openstack import proxy2
|
from openstack import proxy
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Proxy(proxy2.BaseProxy):
|
class Proxy(proxy.BaseProxy):
|
||||||
|
|
||||||
def create_queue(self, **attrs):
|
def create_queue(self, **attrs):
|
||||||
"""Create a new queue from attributes
|
"""Create a new queue from attributes
|
||||||
@@ -148,7 +148,7 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
"""
|
"""
|
||||||
message = self._get_resource(_message.Message, value,
|
message = self._get_resource(_message.Message, value,
|
||||||
queue_name=queue_name)
|
queue_name=queue_name)
|
||||||
message.claim_id = resource2.Resource._get_id(claim)
|
message.claim_id = resource.Resource._get_id(claim)
|
||||||
return self._delete(_message.Message, message,
|
return self._delete(_message.Message, message,
|
||||||
ignore_missing=ignore_missing)
|
ignore_missing=ignore_missing)
|
||||||
|
|
||||||
|
@@ -13,14 +13,14 @@
|
|||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
from openstack.message import message_service
|
from openstack.message import message_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Claim(resource2.Resource):
|
class Claim(resource.Resource):
|
||||||
# FIXME(anyone): The name string of `location` field of Zaqar API response
|
# FIXME(anyone): The name string of `location` field of Zaqar API response
|
||||||
# is lower case. That is inconsistent with the guide from API-WG. This is
|
# is lower case. That is inconsistent with the guide from API-WG. This is
|
||||||
# a workaround for this issue.
|
# a workaround for this issue.
|
||||||
location = resource2.Header("location")
|
location = resource.Header("location")
|
||||||
|
|
||||||
resources_key = 'claims'
|
resources_key = 'claims'
|
||||||
base_path = '/queues/%(queue_name)s/claims'
|
base_path = '/queues/%(queue_name)s/claims'
|
||||||
@@ -35,27 +35,27 @@ class Claim(resource2.Resource):
|
|||||||
|
|
||||||
# Properties
|
# Properties
|
||||||
#: The value in seconds indicating how long the claim has existed.
|
#: The value in seconds indicating how long the claim has existed.
|
||||||
age = resource2.Body("age")
|
age = resource.Body("age")
|
||||||
#: In case worker stops responding for a long time, the server will
|
#: In case worker stops responding for a long time, the server will
|
||||||
#: extend the lifetime of claimed messages to be at least as long as
|
#: extend the lifetime of claimed messages to be at least as long as
|
||||||
#: the lifetime of the claim itself, plus the specified grace period.
|
#: the lifetime of the claim itself, plus the specified grace period.
|
||||||
#: Must between 60 and 43200 seconds(12 hours).
|
#: Must between 60 and 43200 seconds(12 hours).
|
||||||
grace = resource2.Body("grace")
|
grace = resource.Body("grace")
|
||||||
#: The number of messages to claim. Default 10, up to 20.
|
#: The number of messages to claim. Default 10, up to 20.
|
||||||
limit = resource2.Body("limit")
|
limit = resource.Body("limit")
|
||||||
#: Messages have been successfully claimed.
|
#: Messages have been successfully claimed.
|
||||||
messages = resource2.Body("messages")
|
messages = resource.Body("messages")
|
||||||
#: Number of seconds the server wait before releasing the claim. Must
|
#: Number of seconds the server wait before releasing the claim. Must
|
||||||
#: between 60 and 43200 seconds(12 hours).
|
#: between 60 and 43200 seconds(12 hours).
|
||||||
ttl = resource2.Body("ttl")
|
ttl = resource.Body("ttl")
|
||||||
#: The name of queue to claim message from.
|
#: The name of queue to claim message from.
|
||||||
queue_name = resource2.URI("queue_name")
|
queue_name = resource.URI("queue_name")
|
||||||
#: The ID to identify the client accessing Zaqar API. Must be specified
|
#: The ID to identify the client accessing Zaqar API. Must be specified
|
||||||
#: in header for each API request.
|
#: in header for each API request.
|
||||||
client_id = resource2.Header("Client-ID")
|
client_id = resource.Header("Client-ID")
|
||||||
#: The ID to identify the project. Must be provided when keystone
|
#: The ID to identify the project. Must be provided when keystone
|
||||||
#: authentication is not enabled in Zaqar service.
|
#: authentication is not enabled in Zaqar service.
|
||||||
project_id = resource2.Header("X-PROJECT-ID")
|
project_id = resource.Header("X-PROJECT-ID")
|
||||||
|
|
||||||
def _translate_response(self, response, has_body=True):
|
def _translate_response(self, response, has_body=True):
|
||||||
super(Claim, self)._translate_response(response, has_body=has_body)
|
super(Claim, self)._translate_response(response, has_body=has_body)
|
||||||
|
@@ -13,14 +13,14 @@
|
|||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
from openstack.message import message_service
|
from openstack.message import message_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Message(resource2.Resource):
|
class Message(resource.Resource):
|
||||||
# FIXME(anyone): The name string of `location` field of Zaqar API response
|
# FIXME(anyone): The name string of `location` field of Zaqar API response
|
||||||
# is lower case. That is inconsistent with the guide from API-WG. This is
|
# is lower case. That is inconsistent with the guide from API-WG. This is
|
||||||
# a workaround for this issue.
|
# a workaround for this issue.
|
||||||
location = resource2.Header("location")
|
location = resource.Header("location")
|
||||||
|
|
||||||
resources_key = 'messages'
|
resources_key = 'messages'
|
||||||
base_path = '/queues/%(queue_name)s/messages'
|
base_path = '/queues/%(queue_name)s/messages'
|
||||||
@@ -32,28 +32,28 @@ class Message(resource2.Resource):
|
|||||||
allow_get = True
|
allow_get = True
|
||||||
allow_delete = True
|
allow_delete = True
|
||||||
|
|
||||||
_query_mapping = resource2.QueryParameters("echo", "include_claimed")
|
_query_mapping = resource.QueryParameters("echo", "include_claimed")
|
||||||
|
|
||||||
# Properties
|
# Properties
|
||||||
#: The value in second to specify how long the message has been
|
#: The value in second to specify how long the message has been
|
||||||
#: posted to the queue.
|
#: posted to the queue.
|
||||||
age = resource2.Body("age")
|
age = resource.Body("age")
|
||||||
#: A dictionary specifies an arbitrary document that constitutes the
|
#: A dictionary specifies an arbitrary document that constitutes the
|
||||||
#: body of the message being sent.
|
#: body of the message being sent.
|
||||||
body = resource2.Body("body")
|
body = resource.Body("body")
|
||||||
#: An uri string describe the location of the message resource.
|
#: An uri string describe the location of the message resource.
|
||||||
href = resource2.Body("href")
|
href = resource.Body("href")
|
||||||
#: The value in seconds to specify how long the server waits before
|
#: The value in seconds to specify how long the server waits before
|
||||||
#: marking the message as expired and removing it from the queue.
|
#: marking the message as expired and removing it from the queue.
|
||||||
ttl = resource2.Body("ttl")
|
ttl = resource.Body("ttl")
|
||||||
#: The name of target queue message is post to or got from.
|
#: The name of target queue message is post to or got from.
|
||||||
queue_name = resource2.URI("queue_name")
|
queue_name = resource.URI("queue_name")
|
||||||
#: The ID to identify the client accessing Zaqar API. Must be specified
|
#: The ID to identify the client accessing Zaqar API. Must be specified
|
||||||
#: in header for each API request.
|
#: in header for each API request.
|
||||||
client_id = resource2.Header("Client-ID")
|
client_id = resource.Header("Client-ID")
|
||||||
#: The ID to identify the project accessing Zaqar API. Must be specified
|
#: The ID to identify the project accessing Zaqar API. Must be specified
|
||||||
#: in case keystone auth is not enabled in Zaqar service.
|
#: in case keystone auth is not enabled in Zaqar service.
|
||||||
project_id = resource2.Header("X-PROJECT-ID")
|
project_id = resource.Header("X-PROJECT-ID")
|
||||||
|
|
||||||
def post(self, session, messages):
|
def post(self, session, messages):
|
||||||
request = self._prepare_request(requires_id=False, prepend_key=True)
|
request = self._prepare_request(requires_id=False, prepend_key=True)
|
||||||
@@ -72,7 +72,7 @@ class Message(resource2.Resource):
|
|||||||
def list(cls, session, paginated=True, **params):
|
def list(cls, session, paginated=True, **params):
|
||||||
"""This method is a generator which yields message objects.
|
"""This method is a generator which yields message objects.
|
||||||
|
|
||||||
This is almost the copy of list method of resource2.Resource class.
|
This is almost the copy of list method of resource.Resource class.
|
||||||
The only difference is the request header now includes `Client-ID`
|
The only difference is the request header now includes `Client-ID`
|
||||||
and `X-PROJECT-ID` fields which are required by Zaqar v2 API.
|
and `X-PROJECT-ID` fields which are required by Zaqar v2 API.
|
||||||
"""
|
"""
|
||||||
|
@@ -13,14 +13,14 @@
|
|||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
from openstack.message import message_service
|
from openstack.message import message_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Queue(resource2.Resource):
|
class Queue(resource.Resource):
|
||||||
# FIXME(anyone): The name string of `location` field of Zaqar API response
|
# FIXME(anyone): The name string of `location` field of Zaqar API response
|
||||||
# is lower case. That is inconsistent with the guide from API-WG. This is
|
# is lower case. That is inconsistent with the guide from API-WG. This is
|
||||||
# a workaround for this issue.
|
# a workaround for this issue.
|
||||||
location = resource2.Header("location")
|
location = resource.Header("location")
|
||||||
|
|
||||||
resources_key = "queues"
|
resources_key = "queues"
|
||||||
base_path = "/queues"
|
base_path = "/queues"
|
||||||
@@ -35,22 +35,22 @@ class Queue(resource2.Resource):
|
|||||||
# Properties
|
# Properties
|
||||||
#: The default TTL of messages defined for a queue, which will effect for
|
#: The default TTL of messages defined for a queue, which will effect for
|
||||||
#: any messages posted to the queue.
|
#: any messages posted to the queue.
|
||||||
default_message_ttl = resource2.Body("_default_message_ttl")
|
default_message_ttl = resource.Body("_default_message_ttl")
|
||||||
#: Description of the queue.
|
#: Description of the queue.
|
||||||
description = resource2.Body("description")
|
description = resource.Body("description")
|
||||||
#: The max post size of messages defined for a queue, which will effect
|
#: The max post size of messages defined for a queue, which will effect
|
||||||
#: for any messages posted to the queue.
|
#: for any messages posted to the queue.
|
||||||
max_messages_post_size = resource2.Body("_max_messages_post_size")
|
max_messages_post_size = resource.Body("_max_messages_post_size")
|
||||||
#: Name of the queue. The name is the unique identity of a queue. It
|
#: Name of the queue. The name is the unique identity of a queue. It
|
||||||
#: must not exceed 64 bytes in length, and it is limited to US-ASCII
|
#: must not exceed 64 bytes in length, and it is limited to US-ASCII
|
||||||
#: letters, digits, underscores, and hyphens.
|
#: letters, digits, underscores, and hyphens.
|
||||||
name = resource2.Body("name", alternate_id=True)
|
name = resource.Body("name", alternate_id=True)
|
||||||
#: The ID to identify the client accessing Zaqar API. Must be specified
|
#: The ID to identify the client accessing Zaqar API. Must be specified
|
||||||
#: in header for each API request.
|
#: in header for each API request.
|
||||||
client_id = resource2.Header("Client-ID")
|
client_id = resource.Header("Client-ID")
|
||||||
#: The ID to identify the project accessing Zaqar API. Must be specified
|
#: The ID to identify the project accessing Zaqar API. Must be specified
|
||||||
#: in case keystone auth is not enabled in Zaqar service.
|
#: in case keystone auth is not enabled in Zaqar service.
|
||||||
project_id = resource2.Header("X-PROJECT-ID")
|
project_id = resource.Header("X-PROJECT-ID")
|
||||||
|
|
||||||
def create(self, session, prepend_key=True):
|
def create(self, session, prepend_key=True):
|
||||||
request = self._prepare_request(requires_id=True,
|
request = self._prepare_request(requires_id=True,
|
||||||
@@ -70,7 +70,7 @@ class Queue(resource2.Resource):
|
|||||||
def list(cls, session, paginated=False, **params):
|
def list(cls, session, paginated=False, **params):
|
||||||
"""This method is a generator which yields queue objects.
|
"""This method is a generator which yields queue objects.
|
||||||
|
|
||||||
This is almost the copy of list method of resource2.Resource class.
|
This is almost the copy of list method of resource.Resource class.
|
||||||
The only difference is the request header now includes `Client-ID`
|
The only difference is the request header now includes `Client-ID`
|
||||||
and `X-PROJECT-ID` fields which are required by Zaqar v2 API.
|
and `X-PROJECT-ID` fields which are required by Zaqar v2 API.
|
||||||
"""
|
"""
|
||||||
|
@@ -13,14 +13,14 @@
|
|||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
from openstack.message import message_service
|
from openstack.message import message_service
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Subscription(resource2.Resource):
|
class Subscription(resource.Resource):
|
||||||
# FIXME(anyone): The name string of `location` field of Zaqar API response
|
# FIXME(anyone): The name string of `location` field of Zaqar API response
|
||||||
# is lower case. That is inconsistent with the guide from API-WG. This is
|
# is lower case. That is inconsistent with the guide from API-WG. This is
|
||||||
# a workaround for this issue.
|
# a workaround for this issue.
|
||||||
location = resource2.Header("location")
|
location = resource.Header("location")
|
||||||
|
|
||||||
resources_key = 'subscriptions'
|
resources_key = 'subscriptions'
|
||||||
base_path = '/queues/%(queue_name)s/subscriptions'
|
base_path = '/queues/%(queue_name)s/subscriptions'
|
||||||
@@ -34,31 +34,31 @@ class Subscription(resource2.Resource):
|
|||||||
|
|
||||||
# Properties
|
# Properties
|
||||||
#: The value in seconds indicating how long the subscription has existed.
|
#: The value in seconds indicating how long the subscription has existed.
|
||||||
age = resource2.Body("age")
|
age = resource.Body("age")
|
||||||
#: Alternate id of the subscription. This key is used in response of
|
#: Alternate id of the subscription. This key is used in response of
|
||||||
#: subscription create API to return id of subscription created.
|
#: subscription create API to return id of subscription created.
|
||||||
subscription_id = resource2.Body("subscription_id", alternate_id=True)
|
subscription_id = resource.Body("subscription_id", alternate_id=True)
|
||||||
#: The extra metadata for the subscription. The value must be a dict.
|
#: The extra metadata for the subscription. The value must be a dict.
|
||||||
#: If the subscriber is `mailto`. The options can contain `from` and
|
#: If the subscriber is `mailto`. The options can contain `from` and
|
||||||
#: `subject` to indicate the email's author and title.
|
#: `subject` to indicate the email's author and title.
|
||||||
options = resource2.Body("options", type=dict)
|
options = resource.Body("options", type=dict)
|
||||||
#: The queue name which the subscription is registered on.
|
#: The queue name which the subscription is registered on.
|
||||||
source = resource2.Body("source")
|
source = resource.Body("source")
|
||||||
#: The destination of the message. Two kinds of subscribers are supported:
|
#: The destination of the message. Two kinds of subscribers are supported:
|
||||||
#: http/https and email. The http/https subscriber should start with
|
#: http/https and email. The http/https subscriber should start with
|
||||||
#: `http/https`. The email subscriber should start with `mailto`.
|
#: `http/https`. The email subscriber should start with `mailto`.
|
||||||
subscriber = resource2.Body("subscriber")
|
subscriber = resource.Body("subscriber")
|
||||||
#: Number of seconds the subscription remains alive? The ttl value must
|
#: Number of seconds the subscription remains alive? The ttl value must
|
||||||
#: be great than 60 seconds. The default value is 3600 seconds.
|
#: be great than 60 seconds. The default value is 3600 seconds.
|
||||||
ttl = resource2.Body("ttl")
|
ttl = resource.Body("ttl")
|
||||||
#: The queue name which the subscription is registered on.
|
#: The queue name which the subscription is registered on.
|
||||||
queue_name = resource2.URI("queue_name")
|
queue_name = resource.URI("queue_name")
|
||||||
#: The ID to identify the client accessing Zaqar API. Must be specified
|
#: The ID to identify the client accessing Zaqar API. Must be specified
|
||||||
#: in header for each API request.
|
#: in header for each API request.
|
||||||
client_id = resource2.Header("Client-ID")
|
client_id = resource.Header("Client-ID")
|
||||||
#: The ID to identify the project. Must be provided when keystone
|
#: The ID to identify the project. Must be provided when keystone
|
||||||
#: authentication is not enabled in Zaqar service.
|
#: authentication is not enabled in Zaqar service.
|
||||||
project_id = resource2.Header("X-PROJECT-ID")
|
project_id = resource.Header("X-PROJECT-ID")
|
||||||
|
|
||||||
def create(self, session, prepend_key=True):
|
def create(self, session, prepend_key=True):
|
||||||
request = self._prepare_request(requires_id=False,
|
request = self._prepare_request(requires_id=False,
|
||||||
@@ -78,7 +78,7 @@ class Subscription(resource2.Resource):
|
|||||||
def list(cls, session, paginated=True, **params):
|
def list(cls, session, paginated=True, **params):
|
||||||
"""This method is a generator which yields subscription objects.
|
"""This method is a generator which yields subscription objects.
|
||||||
|
|
||||||
This is almost the copy of list method of resource2.Resource class.
|
This is almost the copy of list method of resource.Resource class.
|
||||||
The only difference is the request header now includes `Client-ID`
|
The only difference is the request header now includes `Client-ID`
|
||||||
and `X-PROJECT-ID` fields which are required by Zaqar v2 API.
|
and `X-PROJECT-ID` fields which are required by Zaqar v2 API.
|
||||||
"""
|
"""
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack.message import message_service
|
from openstack.message import message_service
|
||||||
from openstack import resource2 as resource
|
from openstack import resource
|
||||||
|
|
||||||
|
|
||||||
class Version(resource.Resource):
|
class Version(resource.Resource):
|
||||||
|
@@ -48,11 +48,11 @@ from openstack.network.v2 import service_provider as _service_provider
|
|||||||
from openstack.network.v2 import subnet as _subnet
|
from openstack.network.v2 import subnet as _subnet
|
||||||
from openstack.network.v2 import subnet_pool as _subnet_pool
|
from openstack.network.v2 import subnet_pool as _subnet_pool
|
||||||
from openstack.network.v2 import vpn_service as _vpn_service
|
from openstack.network.v2 import vpn_service as _vpn_service
|
||||||
from openstack import proxy2
|
from openstack import proxy
|
||||||
from openstack import utils
|
from openstack import utils
|
||||||
|
|
||||||
|
|
||||||
class Proxy(proxy2.BaseProxy):
|
class Proxy(proxy.BaseProxy):
|
||||||
|
|
||||||
def create_address_scope(self, **attrs):
|
def create_address_scope(self, **attrs):
|
||||||
"""Create a new address scope from attributes
|
"""Create a new address scope from attributes
|
||||||
@@ -3036,12 +3036,12 @@ class Proxy(proxy2.BaseProxy):
|
|||||||
"""Replace tags of a specified resource with specified tags
|
"""Replace tags of a specified resource with specified tags
|
||||||
|
|
||||||
:param resource:
|
:param resource:
|
||||||
:class:`~openstack.resource2.Resource` instance.
|
:class:`~openstack.resource.Resource` instance.
|
||||||
:param tags: New tags to be set.
|
:param tags: New tags to be set.
|
||||||
:type tags: "list"
|
:type tags: "list"
|
||||||
|
|
||||||
:returns: The updated resource
|
:returns: The updated resource
|
||||||
:rtype: :class:`~openstack.resource2.Resource`
|
:rtype: :class:`~openstack.resource.Resource`
|
||||||
"""
|
"""
|
||||||
self._check_tag_support(resource)
|
self._check_tag_support(resource)
|
||||||
return resource.set_tags(self, tags)
|
return resource.set_tags(self, tags)
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user