Add event_filter to salt cloud

This commit is contained in:
Joseph Hall 2017-03-13 15:36:13 -06:00
parent 0b8a9c44dd
commit dde48b3650
30 changed files with 315 additions and 345 deletions

View file

@ -118,6 +118,50 @@ The payload for this event contains little more than the initial ``creating``
event. This event is required in all cloud providers.
Filtering Events
================
When creating a VM, it is possible with certain tags to filter how much
information is sent to the event bus. The tags that can be filtered on any
provider are:
* ``salt/cloud/<minion_id>/creating``
* ``salt/cloud/<minion_id>/requesting``
* ``salt/cloud/<minion_id>/created``
Other providers may allow other tags to be filtered; when that is the case,
the documentation for that provider will contain more details.
To filter information, create a section in your ``/etc/salt/cloud`` file called
``filter_events``. Create a section for each tag that you want to filter, using
the last segment of the tag. For instance, use ``creating`` to represent
``salt/cloud/<minion_id>/creating``:
.. code-block:: yaml
filter_events:
creating:
keys:
- name
- profile
- provider
Any keys listed here will be added to the default keys that are already set to
be displayed for that provider. If you wish to start with a clean slate and
only show the keys specified, add another option called ``use_defaults`` and
set it to ``False``.
.. code-block:: yaml
filter_events:
creating:
keys:
- name
- profile
- provider
use_defaults: False
Configuring the Event Reactor
=============================

View file

@ -621,11 +621,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -659,7 +655,7 @@ def create(vm_):
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args={'kwargs': kwargs},
args=__utils__['cloud.filter_event']('requesting', kwargs, kwargs.keys()),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -735,11 +731,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -1104,6 +1104,15 @@ def request_instance(call=None, kwargs=None): # pylint: disable=unused-argument
),
)
__utils__['cloud.fire_event'](
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args=__utils__['cloud.filter_event']('requesting', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
poller = compconn.virtual_machines.create_or_update(
vm_['resource_group'], vm_['name'], params
)
@ -1137,11 +1146,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -1217,11 +1222,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -264,11 +264,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
{
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
transport=__opts__['transport']
)
@ -296,13 +292,21 @@ def create(vm_):
if get_project(conn, vm_) is not False:
kwargs['project'] = get_project(conn, vm_)
event_data = kwargs.copy()
event_data['image'] = kwargs['image'].name
event_data['size'] = kwargs['size'].name
__utils__['cloud.fire_event'](
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
{'kwargs': {'name': kwargs['name'],
'image': kwargs['image'].name,
'size': kwargs['size'].name}},
args={
'kwargs': __utils__['cloud.filter_event'](
'requesting',
event_data,
['name', 'profile', 'provider', 'driver', 'image', 'size'],
),
},
transport=__opts__['transport']
)
@ -398,11 +402,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
{
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
transport=__opts__['transport']
)

View file

@ -285,11 +285,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -427,7 +423,7 @@ def create(vm_):
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args={'kwargs': kwargs},
args=__utils__['cloud.filter_event']('requesting', kwargs, kwargs.keys()),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -516,11 +512,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -151,11 +151,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -164,42 +160,55 @@ def create(vm_):
conn = get_conn()
rootPw = NodeAuthPassword(vm_['auth'])
location = conn.ex_get_location_by_id(vm_['location'])
images = conn.list_images(location=location)
image = [x for x in images if x.id == vm_['image']][0]
network_domains = conn.ex_list_network_domains(location=location)
try:
location = conn.ex_get_location_by_id(vm_['location'])
images = conn.list_images(location=location)
image = [x for x in images if x.id == vm_['image']][0]
network_domains = conn.ex_list_network_domains(location=location)
try:
network_domain = [y for y in network_domains
if y.name == vm_['network_domain']][0]
except IndexError:
network_domain = conn.ex_create_network_domain(
location=location,
name=vm_['network_domain'],
plan='ADVANCED',
description=''
)
network_domain = [y for y in network_domains
if y.name == vm_['network_domain']][0]
except IndexError:
network_domain = conn.ex_create_network_domain(
location=location,
name=vm_['network_domain'],
plan='ADVANCED',
description=''
)
try:
vlan = [y for y in conn.ex_list_vlans(
location=location,
network_domain=network_domain)
if y.name == vm_['vlan']][0]
except (IndexError, KeyError):
# Use the first VLAN in the network domain
vlan = conn.ex_list_vlans(
location=location,
network_domain=network_domain)[0]
try:
vlan = [y for y in conn.ex_list_vlans(
location=location,
network_domain=network_domain)
if y.name == vm_['vlan']][0]
except (IndexError, KeyError):
# Use the first VLAN in the network domain
vlan = conn.ex_list_vlans(
location=location,
network_domain=network_domain)[0]
kwargs = {
'name': vm_['name'],
'image': image,
'auth': rootPw,
'ex_description': vm_['description'],
'ex_network_domain': network_domain,
'ex_vlan': vlan,
'ex_is_started': vm_['is_started']
}
kwargs = {
'name': vm_['name'],
'image': image,
'auth': rootPw,
'ex_description': vm_['description'],
'ex_network_domain': network_domain,
'ex_vlan': vlan,
'ex_is_started': vm_['is_started']
}
event_data = kwargs.copy()
del event_data['auth']
__utils__['cloud.fire_event'](
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args=__utils__['cloud.filter_event']('requesting', event_data, event_data.keys()),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
try:
data = conn.create_node(**kwargs)
except Exception as exc:
log.error(
@ -332,11 +341,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -2004,7 +2004,12 @@ def request_instance(vm_=None, call=None):
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args={'kwargs': params, 'location': location},
args={
'kwargs': __utils__['cloud.filter_event'](
'requesting', params, params.keys()
),
'location': location,
},
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -2552,11 +2557,7 @@ def create(vm_=None, call=None):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -2790,7 +2791,7 @@ def create(vm_=None, call=None):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args=event_data,
args=__utils__['cloud.filter_event']('created', event_data, event_data.keys()),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -2429,6 +2429,15 @@ def request_instance(vm_):
except AttributeError:
pass
__utils__['cloud.fire_event'](
'event',
'create instance',
'salt/cloud/{0}/creating'.format(vm_['name']),
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
conn = get_conn()
kwargs = {
@ -2484,13 +2493,9 @@ def request_instance(vm_):
__utils__['cloud.fire_event'](
'event',
'create instance',
'salt/cloud/{0}/creating'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args=__utils__['cloud.filter_event']('requesting', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -2574,11 +2579,7 @@ def create(vm_=None, call=None):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -96,11 +96,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -129,7 +125,9 @@ def create(vm_):
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args={'kwargs': create_kwargs},
args={
'kwargs': __utils__['cloud.filter_event']('requesting', event_kwargs, event_kwargs.keys()),
},
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -185,11 +183,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -260,11 +260,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -293,7 +289,9 @@ def create(vm_):
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args={'kwargs': kwargs},
args={
'kwargs': __utils__['cloud.filter_event']('requesting', kwargs, kwargs.keys()),
},
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -315,11 +313,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -296,11 +296,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(name),
{
'name': name,
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -342,7 +338,9 @@ def create(vm_):
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(name),
{'kwargs': kwargs},
args={
'kwargs': __utils__['cloud.filter_event']('requesting', kwargs, kwargs.keys()),
},
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -445,11 +443,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(name),
{
'name': name,
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -345,11 +345,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(name),
args={
'name': name,
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -447,10 +443,11 @@ def create(vm_):
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(name),
args={'kwargs': kwargs},
args=__utils__['cloud.filter_event']('requesting', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
node_id = _clean_data(result)['LinodeID']
data['id'] = node_id
@ -523,11 +520,11 @@ def create(vm_):
vm_['private_ips'] = ips['private_ips']
# Send event that the instance has booted.
salt.utils.cloud.fire_event(
__utils__['cloud.fire_event'](
'event',
'waiting for ssh',
'salt/cloud/{0}/waiting_for_ssh'.format(name),
{'ip_address': vm_['ssh_host']},
args={'ip_address': ip_address},
transport=__opts__['transport']
)
@ -547,11 +544,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(name),
args={
'name': name,
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -436,17 +436,18 @@ def create(vm_, call=None):
'lxc_profile',
vm_.get('container_profile', None))
event_data = vm_.copy()
event_data['profile'] = profile
__utils__['cloud.fire_event'](
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': profile,
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', event_data, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport'])
transport=__opts__['transport']
)
ret = {'name': vm_['name'], 'changes': {}, 'result': True, 'comment': ''}
if 'pub_key' not in vm_ and 'priv_key' not in vm_:
log.debug('Generating minion keys for {0}'.format(vm_['name']))
@ -457,6 +458,16 @@ def create(vm_, call=None):
kwarg = copy.deepcopy(vm_)
kwarg['host'] = prov['target']
kwarg['profile'] = profile
__utils__['cloud.fire_event'](
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(name),
args=__utils__['cloud.filter_event']('requesting', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
cret = _runner().cmd('lxc.cloud_init', [vm_['name']], kwarg=kwarg)
ret['runner_return'] = cret
ret['result'] = cret['result']
@ -480,11 +491,7 @@ def create(vm_, call=None):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -426,11 +426,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -542,7 +538,7 @@ def create(vm_):
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args=event_kwargs,
args=__utils__['cloud.filter_event']('requesting', event_kwargs, event_kwargs.keys()),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -658,7 +654,7 @@ def create(vm_):
'event',
'attaching volumes',
'salt/cloud/{0}/attaching_volumes'.format(vm_['name']),
args={'volumes': volumes},
args=__utils__['cloud.filter_event']('attaching_volumes', vm_, ['volumes',]),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -692,11 +688,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -660,16 +660,18 @@ def request_instance(vm_=None, call=None):
kwargs.update(get_block_mapping_opts(vm_))
event_kwargs = {
'name': kwargs['name'],
'image': kwargs.get('image_id', 'Boot From Volume'),
'size': kwargs['flavor_id'],
}
__utils__['cloud.fire_event'](
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args={
'kwargs': {
'name': kwargs['name'],
'image': kwargs.get('image_id', 'Boot From Volume'),
'size': kwargs['flavor_id'],
}
'kwargs': __utils__['cloud.filter_event']('requesting', event_kwargs, event_kwargs.keys()),
},
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
@ -790,11 +792,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -1054,7 +1052,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args=event_data,
args=__utils__['cloud.filter_event']('created', event_data, event_data.keys()),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -924,11 +924,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -951,7 +947,9 @@ def create(vm_):
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args={'kwargs': kwargs},
args={
'kwargs': __utils__['cloud.filter_event']('requesting', event_kwargs, event_kwargs.keys()),
},
sock_dir=__opts__['sock_dir'],
)
@ -1085,11 +1083,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
)

View file

@ -539,17 +539,19 @@ def request_instance(vm_=None, call=None):
if config_drive is not None:
kwargs['ex_config_drive'] = config_drive
event_kwargs = {
'name': kwargs['name'],
'image': kwargs['image'].name,
'size': kwargs['size'].name,
'profile': vm_['profile'],
}
__utils__['cloud.fire_event'](
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args={
'kwargs': {
'name': kwargs['name'],
'image': kwargs['image'].name,
'size': kwargs['size'].name,
'profile': vm_['profile'],
}
'kwargs': __utils__['cloud.filter_event']('requesting', event_kwargs, event_kwargs.keys()),
},
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
@ -613,11 +615,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -818,11 +816,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -338,11 +338,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(name),
args={
'name': name,
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -351,6 +347,15 @@ def create(vm_):
manager = packet.Manager(auth_token=vm_['token'])
__utils__['cloud.fire_event'](
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args=__utils__['cloud.filter_event']('requesting', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
device = manager.create_device(project_id=vm_['project_id'],
hostname=name,
plan=vm_['size'], facility=vm_['location'],
@ -426,11 +431,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(name),
args={
'name': name,
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -257,7 +257,9 @@ def create_node(vm_):
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args={'kwargs': data},
args={
'kwargs': __utils__['cloud.filter_event']('requesting', data, data.keys()),
},
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -284,11 +286,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -359,11 +357,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -682,6 +682,15 @@ def create(vm_):
except AttributeError:
pass
__utils__['cloud.fire_event'](
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
data = None
datacenter_id = get_datacenter_id()
conn = get_conn()
@ -701,7 +710,7 @@ def create(vm_):
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args={'name': vm_['name']},
args=__utils__['cloud.filter_event']('requesting', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -796,11 +805,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -515,11 +515,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -614,11 +610,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
)
@ -704,7 +696,9 @@ def create_node(vm_, newid):
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args={'kwargs': newnode},
args={
'kwargs': __utils__['cloud.filter_event']('requesting', newnode, newnode.keys()),
},
sock_dir=__opts__['sock_dir'],
)

View file

@ -670,11 +670,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -697,7 +693,9 @@ def create(vm_):
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args={'kwargs': params},
args={
'kwargs': __utils__['cloud.filter_event']('requesting', params, params.keys()),
},
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -746,11 +744,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -207,11 +207,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -224,16 +220,18 @@ def create(vm_):
'size': get_size(conn, vm_)
}
event_kwargs = {
'name': kwargs['name'],
'image': kwargs['image'].name,
'size': kwargs['size'].name,
}
__utils__['cloud.fire_event'](
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args={
'kwargs': {
'name': kwargs['name'],
'image': kwargs['image'].name,
'size': kwargs['size'].name,
}
'kwargs': __utils__['cloud.filter_event']('requesting', event_kwargs, event_kwargs.keys()),
},
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
@ -372,11 +370,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -219,11 +219,7 @@ def create(server_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(server_['name']),
args={
'name': server_['name'],
'profile': server_['profile'],
'provider': server_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -249,7 +245,9 @@ def create(server_):
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(server_['name']),
args={'kwargs': kwargs},
args={
'kwargs': __utils__['cloud.filter_event']('requesting', kwargs, kwargs.keys()),
},
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -314,11 +312,7 @@ def create(server_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(server_['name']),
args={
'name': server_['name'],
'profile': server_['profile'],
'provider': server_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -270,11 +270,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(name),
args={
'name': name,
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -376,7 +372,9 @@ def create(vm_):
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(name),
args={'kwargs': kwargs},
args={
'kwargs': __utils__['cloud.filter_event']('requesting', kwargs, kwargs.keys()),
},
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -489,11 +487,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(name),
args={
'name': name,
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -241,11 +241,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(name),
args={
'name': name,
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -329,7 +325,9 @@ def create(vm_):
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(name),
args={'kwargs': kwargs},
args={
'kwargs': __utils__['cloud.filter_event']('requesting', kwargs, kwargs.keys()),
},
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -421,11 +419,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(name),
args={
'name': name,
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -140,11 +140,7 @@ def create(vm_info):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_info['name']),
args={
'name': vm_info['name'],
'profile': vm_info['profile'],
'driver': vm_info['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -159,7 +155,7 @@ def create(vm_info):
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_info['name']),
args=request_kwargs,
args=__utils__['cloud.filter_event']('requesting', request_kwargs, request_kwargs.keys()),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -185,7 +181,7 @@ def create(vm_info):
'event',
'created machine',
'salt/cloud/{0}/created'.format(vm_info['name']),
args=vm_result,
args=__utils__['cloud.filter_event']('created', vm_result, vm_result.keys()),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -2283,11 +2283,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -2606,16 +2602,15 @@ def create(vm_):
pprint.pformat(config_spec))
)
event_kwargs = kwargs.copy()
del event_kwargs['password']
try:
__utils__['cloud.fire_event'](
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('requesting', event_kwargs, event_kwargs.keys()),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -2696,11 +2691,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -248,11 +248,7 @@ def create(vm_):
'event',
'starting create',
'salt/cloud/{0}/creating'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('creating', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)
@ -287,7 +283,9 @@ def create(vm_):
'event',
'requesting instance',
'salt/cloud/{0}/requesting'.format(vm_['name']),
args={'kwargs': kwargs},
args={
'kwargs': __utils__['cloud.filter_event']('requesting', kwargs, kwargs.keys()),
},
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport'],
)
@ -422,11 +420,7 @@ def create(vm_):
'event',
'created instance',
'salt/cloud/{0}/created'.format(vm_['name']),
args={
'name': vm_['name'],
'profile': vm_['profile'],
'provider': vm_['driver'],
},
args=__utils__['cloud.filter_event']('created', vm_, ['name', 'profile', 'provider', 'driver']),
sock_dir=__opts__['sock_dir'],
transport=__opts__['transport']
)

View file

@ -1736,8 +1736,37 @@ def run_inline_script(host,
return True
def filter_event(tag, data, defaults):
'''
Accept a tag, a dict and a list of default keys to return from the dict, and
check them against the cloud configuration for that tag
'''
ret = {}
keys = []
use_defaults = True
for ktag in __opts__.get('filter_events', {}):
if tag != ktag:
continue
keys = __opts__['filter_events'][ktag]['keys']
use_defaults = __opts__['filter_events'][ktag].get('use_defaults', True)
if use_defaults is False:
defaults = []
defaults = list(set(defaults + keys))
for key in defaults:
if key in data:
ret[key] = data[key]
return ret
def fire_event(key, msg, tag, args=None, sock_dir=None, transport='zeromq'):
# Fire deploy action
'''
Fire deploy action
'''
if sock_dir is None:
salt.utils.warn_until(
'Oxygen',