def create_logical_router(display_name, edge_cluster_uuid, tags, tier_0=False): # TODO(salv-orlando): If possible do not manage edge clusters in the main # plugin logic. router_type = (nsx_constants.ROUTER_TYPE_TIER0 if tier_0 else nsx_constants.ROUTER_TYPE_TIER1) resource = 'logical-routers' body = {'edge_cluster_id': edge_cluster_uuid, 'display_name': display_name, 'router_type': router_type, 'tags': tags} return client.create_resource(resource, body)
def create_qos_switching_profile(qos_marking, dscp, tags, name=None, description=None): resource = 'switching-profiles' body = {"resource_type": "QosSwitchingProfile", "tags": tags, "dscp": {"priority": dscp, "mode": qos_marking.upper()}} # TODO(abhide): Add TrafficShaper configuration. if name: body["display_name"] = name if description: body["description"] = description return client.create_resource(resource, body)
def create_logical_router_port(logical_router_id, logical_switch_port_id, resource_type, cidr_length, ip_address): resource = 'logical-router-ports' body = {'resource_type': resource_type, 'logical_router_id': logical_router_id, 'subnets': [{"prefix_length": cidr_length, "ip_addresses": [ip_address]}], 'linked_logical_switch_port_id': logical_switch_port_id} return client.create_resource(resource, body)
def create_logical_switch(display_name, transport_zone_id, tags, replication_mode=nsx_constants.MTEP, admin_state=nsx_constants.ADMIN_STATE_UP): # TODO(salv-orlando): Validate Replication mode and admin_state # NOTE: These checks might be moved to the API client library if one that # performs such checks in the client is available resource = 'logical-switches' body = {'transport_zone_id': transport_zone_id, 'replication_mode': replication_mode, 'admin_state': admin_state, 'display_name': display_name, 'tags': tags} return client.create_resource(resource, body)
def create_logical_port(lswitch_id, vif_uuid, tags, attachment_type=nsx_constants.ATTACHMENT_VIF, admin_state=True, name=None, address_bindings=None): resource = 'logical-ports' body = {'logical_switch_id': lswitch_id, 'attachment': {'attachment_type': attachment_type, 'id': vif_uuid}, 'tags': tags} if name: body['display_name'] = name if admin_state: body['admin_state'] = nsx_constants.ADMIN_STATE_UP else: body['admin_state'] = nsx_constants.ADMIN_STATE_DOWN if address_bindings: body['address_bindings'] = address_bindings return client.create_resource(resource, body)