Add cinderclient

Partially implements blueprint attach-cinder-volume

Change-Id: Ia6238b5db07ffcba32332a5dd93deaa9287e0c93
This commit is contained in:
Sergey Reshetnyak 2013-06-18 19:02:02 +04:00
parent 8f98763c1d
commit e77da44ac0
2 changed files with 48 additions and 0 deletions

View File

@ -0,0 +1,47 @@
# Copyright (c) 2013 Mirantis 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.
# See the License for the specific language governing permissions and
# limitations under the License.
import logging
from cinderclient.v1 import client as cinder_client
from savanna import context
from savanna.utils.openstack import base
def client():
headers = context.current().headers
username = headers['X-User-Name']
token = headers['X-Auth-Token']
tenant = headers['X-Tenant-Id']
volume_url = base.url_for(headers, 'volume')
logging.debug('cinderclient connection created using token '
'"%s", tenant "%s" and url "%s"',
token, tenant, volume_url)
cinder = cinder_client.Client(username, token, tenant. volume_url)
cinder.client.auth_token = token
cinder.client.management_url = volume_url
return cinder
def get_volumes():
return [volume.id for volume in client().volumes.list()]
def get_volume(volume_id):
return client().volumes.get(volume_id)

View File

@ -7,6 +7,7 @@ netaddr
oslo.config>=1.1.0
paramiko>=1.8.0
pbr>=0.5.16,<0.6
python-cinderclient>=1.0.4,<2
python-keystoneclient>=0.2,<0.3
python-novaclient>=2.12.0,<3
six