Skip to content

Commit

Permalink
NSX-1: partially move validation for network* to codebase
Browse files Browse the repository at this point in the history
  • Loading branch information
0lvin authored and geokala committed Jan 19, 2017
1 parent 39b32b4 commit 0510971
Show file tree
Hide file tree
Showing 10 changed files with 328 additions and 229 deletions.
45 changes: 44 additions & 1 deletion cloudify_nsx/network/dhcp_bind.py
Expand Up @@ -21,8 +21,51 @@

@operation
def create(**kwargs):
validation_rules = {
"esg_id": {
"required": True
},
"vm_id": {
"set_none": True
},
"vnic_id": {
"set_none": True,
"type": "string"
},
"mac": {
"set_none": True
},
"hostname": {
"required": True
},
"ip": {
"required": True
},
"default_gateway": {
"set_none": True
},
"subnet_mask": {
"set_none": True
},
"domain_name": {
"set_none": True
},
"dns_server_1": {
"set_none": True
},
"dns_server_2": {
"set_none": True
},
"lease_time": {
"set_none": True
},
"auto_dns": {
"set_none": True
}
}

use_existing, bind_dict = common.get_properties_and_validate(
'bind', kwargs
'bind', kwargs, validation_rules
)

if use_existing:
Expand Down
32 changes: 31 additions & 1 deletion cloudify_nsx/network/dhcp_pool.py
Expand Up @@ -21,8 +21,38 @@

@operation
def create(**kwargs):
validations_rules = {
"esg_id": {
"required": True
},
"ip_range": {
"required": True
},
"default_gateway": {
"set_none": True
},
"subnet_mask": {
"set_none": True
},
"domain_name": {
"set_none": True
},
"dns_server_1": {
"set_none": True
},
"dns_server_2": {
"set_none": True
},
"lease_time": {
"set_none": True
},
"auto_dns": {
"set_none": True
}
}

use_existing, pool_dict = common.get_properties_and_validate(
'pool', kwargs
'pool', kwargs, validations_rules
)

if use_existing:
Expand Down
38 changes: 37 additions & 1 deletion cloudify_nsx/network/dlr.py
Expand Up @@ -22,8 +22,44 @@

@operation
def create(**kwargs):
validation_rules = {
"name": {
"required": True
},
"dlr_pwd": {
"required": True
},
"dlr_size": {
"required": True
},
"datacentermoid": {
"required": True
},
"datastoremoid": {
"required": True
},
"resourcepoolid": {
"required": True
},
"ha_ls_id": {
"required": True
},
"uplink_ls_id": {
"required": True
},
"uplink_ip": {
"required": True
},
"uplink_subnet": {
"required": True
},
"uplink_dgw": {
"required": True
}
}

use_existing, router_dict = common.get_properties_and_validate(
'router', kwargs
'router', kwargs, validation_rules
)

ctx.logger.info("checking %s" % router_dict["name"])
Expand Down
52 changes: 51 additions & 1 deletion cloudify_nsx/network/esg_firewall.py
Expand Up @@ -21,9 +21,59 @@

@operation
def create(**kwargs):
validation_rules = {
"esg_id": {
"required": True
},
"ruleTag": {
"set_none": True
},
"name": {
"set_none": True
},
"source": {
"set_none": True
},
"destination": {
"set_none": True
},
"application": {
"set_none": True
},
"matchTranslated": {
"default": False,
"type": "boolean"
},
"direction": {
"values": [
"in",
"out"
],
"set_none": True
},
"action": {
"required": True,
"values": [
"accept",
"deny",
"reject"
]
},
"enabled": {
"default": True,
"type": "boolean"
},
"loggingEnabled": {
"default": False,
"type": "boolean"
},
"description": {
"set_none": True
}
}

use_existing, firewall_dict = common.get_properties_and_validate(
'rule', kwargs
'rule', kwargs, validation_rules
)

if use_existing:
Expand Down
23 changes: 22 additions & 1 deletion cloudify_nsx/network/esg_gateway.py
Expand Up @@ -21,8 +21,29 @@

@operation
def create(**kwargs):
validation_rules = {
"esg_id": {
"required": True
},
"dgw_ip": {
"required": True
},
"vnic": {
"set_none": True,
"type": "string"
},
"mtu": {
"set_none": True,
"type": "string"
},
"admin_distance": {
"set_none": True,
"type": "string"
}
}

use_existing, gateway = common.get_properties_and_validate(
'gateway', kwargs
'gateway', kwargs, validation_rules
)

if use_existing:
Expand Down
49 changes: 48 additions & 1 deletion cloudify_nsx/network/esg_interface.py
Expand Up @@ -21,8 +21,55 @@

@operation
def create(**kwargs):
validation_rules = {
"esg_id": {
"required": True
},
"ifindex": {
"required": True,
"type": "string"
},
"ipaddr": {
"set_none": True
},
"netmask": {
"set_none": True
},
"prefixlen": {
"set_none": True
},
"name": {
"set_none": True
},
"mtu": {
"set_none": True
},
"is_connected": {
"set_none": True
},
"portgroup_id": {
"set_none": True
},
"vnic_type": {
"set_none": True,
"values": [
"uplink",
"internal"
]
},
"enable_send_redirects": {
"set_none": True
},
"enable_proxy_arp": {
"set_none": True
},
"secondary_ips": {
"set_none": True
}
}

use_existing, interface = common.get_properties_and_validate(
'interface', kwargs
'interface', kwargs, validation_rules
)

if use_existing:
Expand Down
43 changes: 42 additions & 1 deletion cloudify_nsx/network/esg_nat.py
Expand Up @@ -21,8 +21,49 @@

@operation
def create(**kwargs):
validation_rules = {
"esg_id": {
"required": True
},
"action": {
"required": True
},
"originalAddress": {
"required": True
},
"translatedAddress": {
"required": True
},
"vnic": {
"set_none": True
},
"ruleTag": {
"set_none": True
},
"loggingEnabled": {
"default": False,
"type": "boolean",
},
"enabled": {
"default": True,
"type": "boolean"
},
"description": {
"set_none": True
},
"protocol": {
"default": "any"
},
"translatedPort": {
"default": "any"
},
"originalPort": {
"default": "any"
}
}

use_existing, nat_dict = common.get_properties_and_validate(
'rule', kwargs
'rule', kwargs, validation_rules
)

if use_existing:
Expand Down
31 changes: 30 additions & 1 deletion cloudify_nsx/network/esg_route.py
Expand Up @@ -21,7 +21,36 @@

@operation
def create(**kwargs):
use_existing, route = common.get_properties_and_validate('route', kwargs)
validation_rules = {
"esg_id": {
"required": True
},
"network": {
"required": True
},
"next_hop": {
"set_none": True
},
"vnic": {
"set_none": True,
"type": "string"
},
"mtu": {
"set_none": True,
"type": "string"
},
"admin_distance": {
"set_none": True,
"type": "string"
},
"description": {
"set_none": True
}
}

use_existing, route = common.get_properties_and_validate(
'route', kwargs, validation_rules
)

if use_existing:
ctx.logger.info("Used existed")
Expand Down

0 comments on commit 0510971

Please sign in to comment.