impuls/lib/python3.11/site-packages/openstack/compute/v2/usage.py

105 lines
3.6 KiB
Python
Raw Normal View History

# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from openstack import resource
class ServerUsage(resource.Resource):
resource_key = None
resources_key = None
# Capabilities
allow_create = False
allow_fetch = False
allow_delete = False
allow_list = False
allow_commit = False
# Properties
#: The duration that the server exists (in hours).
hours = resource.Body('hours')
#: The display name of a flavor.
flavor = resource.Body('flavor')
#: The UUID of the server.
instance_id = resource.Body('instance_id')
#: The server name.
name = resource.Body('name')
#: The UUID of the project in a multi-tenancy cloud.
project_id = resource.Body('tenant_id')
#: The memory size of the server (in MiB).
memory_mb = resource.Body('memory_mb')
#: The sum of the root disk size of the server and the ephemeral disk size
#: of it (in GiB).
local_gb = resource.Body('local_gb')
#: The number of virtual CPUs that the server uses.
vcpus = resource.Body('vcpus')
#: The date and time when the server was launched.
started_at = resource.Body('started_at')
#: The date and time when the server was deleted.
ended_at = resource.Body('ended_at')
#: The VM state.
state = resource.Body('state')
#: The uptime of the server.
uptime = resource.Body('uptime')
class Usage(resource.Resource):
resource_key = 'tenant_usage'
resources_key = 'tenant_usages'
base_path = '/os-simple-tenant-usage'
# Capabilities
allow_create = False
allow_fetch = True
allow_delete = False
allow_list = True
allow_commit = False
# TODO(stephenfin): Add 'start', 'end'. These conflict with the body
# responses though.
_query_mapping = resource.QueryParameters(
"detailed",
"limit",
"marker",
"start",
"end",
)
# Properties
#: The UUID of the project in a multi-tenancy cloud.
project_id = resource.Body('tenant_id')
#: A list of the server usage objects.
server_usages = resource.Body(
'server_usages',
type=list,
list_type=ServerUsage,
)
#: Multiplying the server disk size (in GiB) by hours the server exists,
#: and then adding that all together for each server.
total_local_gb_usage = resource.Body('total_local_gb_usage')
#: Multiplying the number of virtual CPUs of the server by hours the server
#: exists, and then adding that all together for each server.
total_vcpus_usage = resource.Body('total_vcpus_usage')
#: Multiplying the server memory size (in MiB) by hours the server exists,
#: and then adding that all together for each server.
total_memory_mb_usage = resource.Body('total_memory_mb_usage')
#: The total duration that servers exist (in hours).
total_hours = resource.Body('total_hours')
#: The beginning time to calculate usage statistics on compute and storage
#: resources.
start = resource.Body('start')
#: The ending time to calculate usage statistics on compute and storage
#: resources.
stop = resource.Body('stop')
_max_microversion = '2.75'