add Deployable API in cyborgclient

Change-Id: I063ed2f18c30cefd0e98c857ef48bea8ba87c532
This commit is contained in:
Xinran WANG 2018-07-13 19:09:34 +08:00 committed by Xinran WANG
parent 45d9c9f201
commit a77957d789
2 changed files with 45 additions and 0 deletions

@ -19,6 +19,7 @@ from oslo_utils import importutils
from cyborgclient.common import httpclient
from cyborgclient.v1 import accelerators
from cyborgclient.v1 import deployables
profiler = importutils.try_import("osprofiler.profiler")
@ -181,6 +182,7 @@ class Client(object):
)
self.accelerators = accelerators.AcceleratorManager(self.http_client)
self.deployables = deployables.DeployableManager(self.http_client)
profile = kwargs.pop("profile", None)
if profiler and profile:

@ -0,0 +1,43 @@
# Copyright (c) 2018 Intel, Inc. All rights reserved.
#
# 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 cyborgclient.v1 import basemodels
CREATION_ATTRIBUTES = basemodels.CREATION_ATTRIBUTES
class Deployable(basemodels.BaseModel):
model_name = "Deployable"
class DeployableManager(basemodels.BaseModelManager):
api_name = "deployables"
resource_class = Deployable
def deallocation(self, deployable_uuid):
"""Delete specified accelerators from instance.
:param deployable_uuid: deployable_uuid which is attached to the
instance.
"""
body = {"op": "replace", "path": "/instance_uuid", "value": None}
resp = self._update("/deployables/%s" % deployable_uuid, body)
return resp
def allocation(self, deployable_uuid, instance_uuid):
body = {"op": "replace", "path": "/instance_uuid",
"value": instance_uuid}
resp = self._update("/deployables/%s" % deployable_uuid, body)
return resp