1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
# Copyright (c) 2017-2018 VMware, Inc.
#
# 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.
import logging
from openstack import resource2 as resource
from openstack.compute import compute_service
from vio.pub.vim.drivers import base
from vio.pub.vim.drivers.vimsdk import sdk
LOG = logging.getLogger(__name__)
class FlavorExtraSpecs(resource.Resource):
resources_key = 'os-extra_specs'
base_path = '/flavors/%(flavor_id)s/os-extra_specs'
service = compute_service.ComputeService()
#: The ID for the flavor.
flavor_id = resource.URI('flavor_id')
# capabilities
allow_create = True
allow_get = True
allow_delete = True
allow_list = True
extra_specs = resource.Body('extra_specs')
class ComputeClient(base.DriverBase):
"""Compute driver."""
def __init__(self, params):
super(ComputeClient, self).__init__(params)
self.conn = sdk.create_connection(params)
self.session = self.conn.session
@sdk.translate_exception
def create_server(self, **kwargs):
server = self.conn.compute.create_server(**kwargs)
return server
@sdk.translate_exception
def list_servers(self, **query):
servers = self.conn.compute.servers(**query)
return servers
@sdk.translate_exception
def get_server(self, server_id, **query):
server = self.conn.compute.get_server(server=server_id)
return server
@sdk.translate_exception
def find_server(self, server_id, ignore_missing=False):
server = self.conn.compute.find_server(
server_id, ignore_missing=ignore_missing)
return server
@sdk.translate_exception
def delete_server(self, server_id, **query):
self.conn.compute.delete_server(server=server_id)
@sdk.translate_exception
def list_server_interfaces(self, server_id):
ifaces = self.conn.compute.server_interfaces(server_id)
return list(ifaces)
@sdk.translate_exception
def start_server(self, server_id):
self.conn.compute.start_server(server=server_id)
@sdk.translate_exception
def stop_server(self, server_id):
self.conn.compute.stop_server(server=server_id)
@sdk.translate_exception
def reboot_server(self, server_id, reboot_type):
self.conn.compute.reboot_server(server=server_id,
reboot_type=reboot_type)
@sdk.translate_exception
def list_flavors(self, **query):
flavors = self.conn.compute.flavors(**query)
return flavors
@sdk.translate_exception
def create_flavor(self, **kwargs):
return self.conn.compute.create_flavor(**kwargs)
@sdk.translate_exception
def get_flavor(self, flavor_id, **query):
return self.conn.compute.get_flavor(flavor=flavor_id)
@sdk.translate_exception
def find_flavor(self, flavor_id, ignore_missing=False):
return self.conn.compute.find_flavor(
flavor_id, ignore_missing=ignore_missing)
@sdk.translate_exception
def delete_flavor(self, flavor_id, **query):
self.conn.compute.delete_flavor(flavor=flavor_id)
@sdk.translate_exception
def get_flavor_extra_specs(self, flavor_id, **query):
return self.conn.compute._get(FlavorExtraSpecs, flavor_id=flavor_id,
requires_id=False)
@sdk.translate_exception
def create_flavor_extra_specs(self, flavor_id, extra_specs, **query):
return self.conn.compute._create(FlavorExtraSpecs,
flavor_id=flavor_id,
extra_specs=extra_specs)
@sdk.translate_exception
def find_image(self, image_id, ignore_missing=False):
return self.conn.compute.find_image(
image_id, ignore_missing=ignore_missing)
@sdk.translate_exception
def get_limits(self, **kwargs):
return self.conn.compute.get_limits()
@sdk.translate_exception
def list_services(self, **kwargs):
return self.conn.compute.services()
@sdk.translate_exception
def get_hypervisor(self, hypervisor, **query):
return self.conn.compute.get_hypervisor(hypervisor=hypervisor, **query)
@sdk.translate_exception
def list_hypervisors(self, **query):
return self.conn.compute.hypervisors(**query)
|