mirror of
https://github.com/valitydev/salt.git
synced 2024-11-08 09:23:56 +00:00
Remove nova state
This one shouldn't have every really been used. It is replaced by just using regular cloud states now.
This commit is contained in:
parent
b85ca8b3bc
commit
54f79427f3
@ -1,127 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
'''
|
||||
States to manage OpenStack Nova
|
||||
===============================
|
||||
|
||||
.. versionadded:: Helium
|
||||
|
||||
Use this minion to do things with nova:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
myblock:
|
||||
nova.volume_exists:
|
||||
- size: 100
|
||||
'''
|
||||
|
||||
# Import salt cloud utils for check
|
||||
import salt.utils.cloud as suc
|
||||
|
||||
|
||||
def __virtual__():
|
||||
'''
|
||||
Only load if the nova module is available in __salt__
|
||||
'''
|
||||
return 'nova' if 'nova.server_list' in __salt__ else False
|
||||
|
||||
|
||||
def _check_name(name):
|
||||
ret = {'name': name,
|
||||
'changes': {},
|
||||
'result': None,
|
||||
'comment': ''}
|
||||
if suc.check_name(name, 'a-zA-Z0-9._-'):
|
||||
ret['comment'] = 'Invalid characters in name.'
|
||||
ret['result'] = False
|
||||
return ret
|
||||
else:
|
||||
ret['result'] = True
|
||||
return ret
|
||||
|
||||
|
||||
def volume_exists(name, profile=None, **kwargs):
|
||||
'''
|
||||
Check that a block volume exists.
|
||||
'''
|
||||
ret = _check_name(name)
|
||||
if not ret['result']:
|
||||
return ret
|
||||
|
||||
volume = __salt__['nova.volume_show'](name=name, profile=profile)
|
||||
|
||||
if volume:
|
||||
ret['comment'] = 'Volume exists: {0}'.format(name)
|
||||
ret['result'] = True
|
||||
return ret
|
||||
elif __opts__['test']:
|
||||
ret['comment'] = 'Volume {0} will be created.'.format(name)
|
||||
ret['result'] = None
|
||||
return ret
|
||||
|
||||
response = __salt__['nova.volume_create'](
|
||||
name=name,
|
||||
profile=profile,
|
||||
**kwargs
|
||||
)
|
||||
if response:
|
||||
ret['result'] = True
|
||||
ret['comment'] = 'Volume {0} was created'.format(name)
|
||||
ret['changes'] = {'old': None, 'new': response}
|
||||
else:
|
||||
ret['result'] = False
|
||||
ret['comment'] = 'Volume {0} failed to create.'.format(name)
|
||||
return ret
|
||||
|
||||
|
||||
def volume_attached(name, server_name, profile=None, **kwargs):
|
||||
'''
|
||||
Check if a block volume is attached.
|
||||
'''
|
||||
ret = _check_name(name)
|
||||
if not ret['result']:
|
||||
return ret
|
||||
|
||||
ret = _check_name(server_name)
|
||||
if not ret['result']:
|
||||
return ret
|
||||
|
||||
volume = __salt__['nova.volume_show'](
|
||||
name=name,
|
||||
profile=profile
|
||||
)
|
||||
server = __salt__['nova.server_by_name'](server_name, profile=profile)
|
||||
|
||||
if volume and volume['attachments']:
|
||||
ret['comment'] = ('Volume {name} is already'
|
||||
'attached: {attachments}').format(**volume)
|
||||
ret['result'] = True
|
||||
return ret
|
||||
elif __opts__['test']:
|
||||
ret['comment'] = 'Volume {0} will be will be attached.'.format(
|
||||
name
|
||||
)
|
||||
ret['result'] = None
|
||||
return ret
|
||||
elif not volume:
|
||||
ret['comment'] = 'Volume {0} does not exist'.format(name)
|
||||
ret['result'] = False
|
||||
return ret
|
||||
elif not server:
|
||||
ret['comment'] = 'Server {0} does not exist'.format(server_name)
|
||||
ret['result'] = False
|
||||
return ret
|
||||
|
||||
response = __salt__['nova.volume_attach'](
|
||||
name,
|
||||
server_name,
|
||||
profile=profile,
|
||||
**kwargs
|
||||
)
|
||||
if response:
|
||||
ret['result'] = True
|
||||
ret['comment'] = 'Volume {0} was created'.format(name)
|
||||
ret['changes'] = {'old': volume, 'new': response}
|
||||
else:
|
||||
ret['result'] = False
|
||||
ret['comment'] = 'Volume {0} failed to attach.'.format(name)
|
||||
return ret
|
Loading…
Reference in New Issue
Block a user