Fix return values of all modules and states
Change-Id: I64234eff97d23931b7e6237fcc64b1f18dac1623
diff --git a/_states/contrail.py b/_states/contrail.py
index 0f7fbd8..8e20d86 100644
--- a/_states/contrail.py
+++ b/_states/contrail.py
@@ -89,7 +89,7 @@
physical_interface_delete ge-0/1/10:
contrail.physical_interface_absent:
name: ge-0/1/10
-
+ physical_router: phr01
Enforce the logical interface present
----------------------------------
@@ -121,8 +121,8 @@
- parent_type: physical-interface
-Enforce the global vrouter existence
-------------------------------------
+Enforce the global vrouter config existence
+-------------------------------------------
.. code-block:: yaml
@@ -138,8 +138,8 @@
- default-global-vrouter-config
-Enforce the global vrouter absence
-----------------------------------
+Enforce the global vrouter config absence
+-----------------------------------------
.. code-block:: yaml
@@ -203,8 +203,19 @@
analytics_node01:
contrail.analytics_node_present:
- name: nal01
- ip_address: 10.0.0.13
+ - name: nal01
+ - ip_address: 10.0.0.13
+
+
+Enforce the analytics node absence
+------------------------------------
+
+.. code-block:: yaml
+
+ analytics_node01_delete:
+ contrail.analytics_node_absent:
+ - name: nal01
+
Enforce the config node existence
@@ -214,19 +225,41 @@
config_node01:
contrail.config_node_present:
- name: ntw01
- ip_address: 10.0.0.23
+ - name: ntw01
+ - ip_address: 10.0.0.23
-Enforce the database node existence
------------------------------------
+Enforce the config node absence
+-------------------------------
.. code-block:: yaml
- config_node01:
- contrail.database_node_present:
- name: ntw01
- ip_address: 10.0.0.33
+ config_node01_delete:
+ contrail.config_node_absent:
+ - name: ntw01
+
+
+Enforce the BGP router existence
+--------------------------------
+
+.. code-block:: yaml
+
+ BGP router mx01:
+ contrail.bgp_router_present:
+ - name: mx01
+ - ip_address: 10.0.0.133
+ - type: mx
+ - asn: 64512
+
+
+Enforce the BGP router absence
+------------------------------
+
+.. code-block:: yaml
+
+ BGP router mx01:
+ contrail.bgp_router_absence:
+ - name: mx01
Enforce the service appliance set existence
@@ -234,27 +267,50 @@
.. code-block:: yaml
- create service appliance:
- contrail.service_appliance_set_present:
- - name: testappliance
- - driver: 'neutron_lbaas.drivers.avi.avi_ocdriver.OpencontrailAviLoadbalancerDriver'
- - ha_mode: active-backup
- - properties:
- address: 10.1.11.3
- user: admin
- password: avi123
- cloud: Default-Cloud
+ create service appliance:
+ contrail.service_appliance_set_present:
+ - name: testappliance
+ - driver: 'neutron_lbaas.drivers.avi.avi_ocdriver.OpencontrailAviLoadbalancerDriver'
+ - ha_mode: active-backup
+ - properties:
+ address: 10.1.11.3
+ user: admin
+ password: avi123
+ cloud: Default-Cloud
Enforce the service appliance set entry absence
-----------------------------------------------
-.. code-block:: yaml
+ .. code-block:: yaml
delete service appliance:
contrail.service_appliance_set_absent:
- name: testappliance
+
+Enforce the database node existence
+-----------------------------------
+
+.. code-block:: yaml
+
+ database_node01:
+ contrail.database_node_present:
+ - name: dbs01
+ - ip_address: 10.0.0.33
+
+Enforce the database node absence
+-----------------------------------
+
+.. code-block:: yaml
+
+ database_node01:
+ contrail.database_node_absent:
+ - name: dbs01
+
+
+
+
'''
@@ -273,17 +329,9 @@
:param ip_address: Virtual router IP address
:param router_type: Any of ['tor-agent', 'tor-service-node', 'embedded']
'''
- ret = {'name': name,
- 'changes': {},
- 'result': True,
- 'comment': 'Virtual router "{0}" already exists'.format(name)}
- result = __salt__['contrail.virtual_router_create'](name, ip_address, router_type, dpdk_enabled, **kwargs)
- if 'OK' in result:
- ret['comment'] = result
+ ret = __salt__['contrail.virtual_router_create'](name, ip_address, router_type, dpdk_enabled, **kwargs)
+ if len(ret['changes']) == 0:
pass
- else:
- ret['comment'] = 'Virtual router {0} has been created'.format(name)
- ret['changes']['VirtualRouter'] = result
return ret
@@ -299,9 +347,7 @@
'comment': 'Virtual router "{0}" is already absent'.format(name)}
virtual_router = __salt__['contrail.virtual_router_get'](name, **kwargs)
if 'Error' not in virtual_router:
- result = __salt__['contrail.virtual_router_delete'](name, **kwargs)
- ret['comment'] = 'Virtual router {0} has been deleted'.format(name)
- ret['changes']['VirtualRouter'] = result
+ ret = __salt__['contrail.virtual_router_delete'](name, **kwargs)
return ret
@@ -327,19 +373,12 @@
:param junos_service_ports: Juniper JUNOS specific service interfaces name to perform services like NAT.
:param agents: List of virtual-router references
'''
- ret = {'name': name,
- 'changes': {},
- 'result': True,
- 'comment': 'Physical router "{0}" already exists'.format(name)}
- result = __salt__['contrail.physical_router_create'](name, parent_type, management_ip, dataplane_ip, vendor_name,
- product_name, vnc_managed, junos_service_ports, agents,
- **kwargs)
- if 'OK' in result:
- ret['comment'] = result
+
+ ret = __salt__['contrail.physical_router_create'](name, parent_type, management_ip, dataplane_ip, vendor_name,
+ product_name, vnc_managed, junos_service_ports, agents,
+ **kwargs)
+ if len(ret['changes']) == 0:
pass
- else:
- ret['comment'] = 'Physical router {0} has been created'.format(name)
- ret['changes']['PhysicalRouter'] = result
return ret
@@ -355,9 +394,7 @@
'comment': 'Physical router "{0}" is already absent'.format(name)}
physical_router = __salt__['contrail.physical_router_get'](name, **kwargs)
if 'Error' not in physical_router:
- result = __salt__['contrail.physical_router_delete'](name, **kwargs)
- ret['comment'] = 'Physical router {0} has been deleted'.format(name)
- ret['changes']['PhysicalRouter'] = result
+ ret = __salt__['contrail.physical_router_delete'](name, **kwargs)
return ret
@@ -368,18 +405,9 @@
:param name: Physical interface name
:param physical_router: Name of existing physical router
'''
- ret = {'name': name,
- 'changes': {},
- 'result': True,
- 'comment': 'Physical interface "{0}" already exists'.format(name)}
-
- result = __salt__['contrail.physical_interface_create'](name, physical_router, **kwargs)
- if 'OK' in result:
- ret['comment'] = result
+ ret = __salt__['contrail.physical_interface_create'](name, physical_router, **kwargs)
+ if len(ret['changes']) == 0:
pass
- else:
- ret['comment'] = 'Physical interface {0} has been created'.format(name)
- ret['changes']['PhysicalInterface'] = result
return ret
@@ -396,9 +424,7 @@
'comment': 'Physical interface "{0}" is already absent'.format(name)}
physical_interface = __salt__['contrail.physical_interface_get'](name, physical_router, **kwargs)
if 'Error' not in physical_interface:
- result = __salt__['contrail.physical_interface_delete'](name, physical_router, **kwargs)
- ret['comment'] = 'Physical interface {0} has been deleted'.format(name)
- ret['changes']['PhysicalInterface'] = result
+ ret = __salt__['contrail.physical_interface_delete'](name, physical_router, **kwargs)
return ret
@@ -414,21 +440,10 @@
:param interface_type: Logical interface type can be L2 or L3.
:param vmis: Virtual machine interface name associate with
'''
- ret = {'name': name,
- 'changes': {},
- 'result': True,
- 'comment': 'Logical interface "{0}" already exists'.format(name)}
- logical_interface = __salt__['contrail.logical_interface_get'](name, parent_names, parent_type, **kwargs)
- if 'Error' not in logical_interface:
+ ret = __salt__['contrail.logical_interface_create'](name, parent_names, parent_type, vlan_tag,
+ interface_type, vmis=vmis, **kwargs)
+ if len(ret['changes']) == 0:
pass
- else:
- result = __salt__['contrail.logical_interface_create'](name, parent_names, parent_type, vlan_tag,
- interface_type, vmis=vmis, **kwargs)
- if 'Error' in result:
- return False
-
- ret['comment'] = 'Logical interface {0} has been created'.format(name)
- ret['changes']['LogicalInterface'] = result
return ret
@@ -446,9 +461,7 @@
'comment': 'logical interface "{0}" is already absent'.format(name)}
logical_interface = __salt__['contrail.logical_interface_get'](name, parent_names, parent_type, **kwargs)
if 'Error' not in logical_interface:
- result = __salt__['contrail.logical_interface_delete'](name, parent_names, parent_type, **kwargs)
- ret['comment'] = 'Logical interface {0} has been deleted'.format(name)
- ret['changes']['LogicalInterface'] = result
+ ret = __salt__['contrail.logical_interface_delete'](name, parent_names, parent_type, **kwargs)
return ret
@@ -463,19 +476,10 @@
:param vxlan_vn_id_mode: Method of allocation of VxLAN VNI(s).
:param fq_names: Fully Qualified Name of resource devided <string>array
'''
- ret = {'name': name,
- 'changes': {},
- 'result': True,
- 'comment': 'Global vrouter config "{0}" already exists'.format(name)}
-
- result = __salt__['contrail.global_vrouter_config_create'](name, parent_type, encap_priority, vxlan_vn_id_mode,
- *fq_names, **kwargs)
- if 'OK' in result:
- ret['comment'] = result
+ ret = __salt__['contrail.global_vrouter_config_create'](name, parent_type, encap_priority, vxlan_vn_id_mode,
+ *fq_names, **kwargs)
+ if len(ret['changes']) == 0:
pass
- else:
- ret['comment'] = 'Global vrouter config {0} has been created'.format(name)
- ret['changes']['GlobalVRouterConfig'] = result
return ret
@@ -491,9 +495,7 @@
'comment': 'Global vrouter config "{0}" is already absent'.format(name)}
vrouter_conf = __salt__['contrail.global_vrouter_config_get'](name, **kwargs)
if 'Error' not in vrouter_conf:
- result = __salt__['contrail.global_vrouter_config_delete'](name, **kwargs)
- ret['comment'] = 'Global vrouter config {0} has been deleted'.format(name)
- ret['changes']['GlobalVRouterConfig'] = result
+ ret = __salt__['contrail.global_vrouter_config_delete'](name, **kwargs)
return ret
@@ -512,13 +514,9 @@
'result': True,
'comment': 'Link local service "{0}" already exists'.format(name)}
- result = __salt__['contrail.linklocal_service_create'](name, lls_ip, lls_port, ipf_addresses, ipf_port, **kwargs)
- if 'OK' in result:
- ret['comment'] = result
+ ret = __salt__['contrail.linklocal_service_create'](name, lls_ip, lls_port, ipf_addresses, ipf_port, **kwargs)
+ if len(ret['changes']) == 0:
pass
- else:
- ret['comment'] = 'Link local service "{0}" has been created'.format(name)
- ret['changes']['LinkLocalService'] = result
return ret
@@ -531,12 +529,10 @@
ret = {'name': name,
'changes': {},
'result': True,
- 'comment': ' "{0}" is already absent'.format(name)}
+ 'comment': 'Linklocal service "{0}" is already absent'.format(name)}
lls = __salt__['contrail.linklocal_service_get'](name, **kwargs)
if 'Error' not in lls:
- result = __salt__['contrail.linklocal_service_delete'](name, **kwargs)
- ret['comment'] = 'Link local service "{0}" has been deleted'.format(name)
- ret['changes']['LinkLocalService'] = result
+ ret = __salt__['contrail.linklocal_service_delete'](name, **kwargs)
return ret
@@ -551,13 +547,25 @@
'result': True,
'comment': 'Analytics node {0} already exists'.format(name)}
- result = __salt__['contrail.analytics_node_create'](name, ip_address, **kwargs)
- if 'OK' in result:
- ret['comment'] = result
+ ret = __salt__['contrail.analytics_node_create'](name, ip_address, **kwargs)
+ if len(ret['changes']) == 0:
pass
- else:
- ret['comment'] = 'Analytics node {0} has been created'.format(name)
- ret['changes']['AnalyticsNode'] = result
+ return ret
+
+
+def analytics_node_absent(name, **kwargs):
+ '''
+ Ensure that the Contrail analytics node doesn't exist
+
+ :param name: The name of the analytics node that should not exist
+ '''
+ ret = {'name': name,
+ 'changes': {},
+ 'result': True,
+ 'comment': 'Analytics node "{0}" is already absent'.format(name)}
+ node = __salt__['contrail.analytics_node_get'](name, **kwargs)
+ if 'Error' not in node:
+ ret = __salt__['contrail.analytics_node_delete'](name, **kwargs)
return ret
@@ -567,18 +575,25 @@
:param name: Config node name
'''
+ ret = __salt__['contrail.config_node_create'](name, ip_address, **kwargs)
+ if len(ret['changes']) == 0:
+ pass
+ return ret
+
+
+def config_node_absent(name, **kwargs):
+ '''
+ Ensure that the Contrail config node doesn't exist
+
+ :param name: The name of the config node that should not exist
+ '''
ret = {'name': name,
'changes': {},
'result': True,
- 'comment': 'Config node {0} already exists'.format(name)}
- result = __salt__['contrail.config_node_create'](name, ip_address, **kwargs)
-
- if 'OK' in result:
- ret['comment'] = result
- pass
- else:
- ret['comment'] = 'Config node {0} has been created'.format(name)
- ret['changes']['ConfigNode'] = result
+ 'comment': 'Config node "{0}" is already absent'.format(name)}
+ node = __salt__['contrail.config_node_get'](name, **kwargs)
+ if 'Error' not in node:
+ ret = __salt__['contrail.config_node_delete'](name, **kwargs)
return ret
@@ -593,13 +608,25 @@
'result': True,
'comment': 'BGP router {0} already exists'.format(name)}
- result = __salt__['contrail.bgp_router_create'](name, type, ip_address, asn, **kwargs)
- if 'OK' in result:
- ret['comment'] = result
+ ret = __salt__['contrail.bgp_router_create'](name, type, ip_address, asn, **kwargs)
+ if len(ret['changes']) == 0:
pass
- else:
- ret['comment'] = 'BGP router {0} has been created'.format(name)
- ret['changes']['BgpRouter'] = result
+ return ret
+
+
+def bgp_router_absent(name, **kwargs):
+ '''
+ Ensure that the Contrail BGP router doesn't exist
+
+ :param name: The name of the BGP router that should not exist
+ '''
+ ret = {'name': name,
+ 'changes': {},
+ 'result': True,
+ 'comment': 'BGP router "{0}" is already absent'.format(name)}
+ node = __salt__['contrail.bgp_router_get'](name, **kwargs)
+ if 'Error' not in node:
+ ret = __salt__['contrail.bgp_router_delete'](name, **kwargs)
return ret
@@ -613,14 +640,25 @@
'changes': {},
'result': True,
'comment': 'Database node {0} already exists'.format(name)}
-
- result = __salt__['contrail.database_node_create'](name, ip_address, **kwargs)
- if 'OK' in result:
- ret['coment'] = result
+ ret = __salt__['contrail.database_node_create'](name, ip_address, **kwargs)
+ if len(ret['changes']) == 0:
pass
- else:
- ret['comment'] = 'Database node {0} has been created'.format(name)
- ret['changes']['DatabaseNode'] = result
+ return ret
+
+
+def database_node_absent(name, **kwargs):
+ '''
+ Ensure that the Contrail database node doesn't exist
+
+ :param name: The name of the database node that should not exist
+ '''
+ ret = {'name': name,
+ 'changes': {},
+ 'result': True,
+ 'comment': 'Database node "{0}" is already absent'.format(name)}
+ node = __salt__['contrail.database_node_get'](name, **kwargs)
+ if 'Error' not in node:
+ ret = __salt__['contrail.database_node_delete'](name, **kwargs)
return ret
@@ -629,7 +667,7 @@
mac_address=None,
ip_address=None,
security_group=None,
- **kwargs):
+ **kwargs):
'''
Ensures that the Contrail virtual machine interface exists.