Merge "Fix the smoke test error"
This commit is contained in:
commit
6f4afbe46d
|
@ -413,6 +413,8 @@ elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
|
||||||
if [[ "$TRICIRCLE_DEPLOY_WITH_CELL" == "True" ]]; then
|
if [[ "$TRICIRCLE_DEPLOY_WITH_CELL" == "True" ]]; then
|
||||||
# update the local nova.conf
|
# update the local nova.conf
|
||||||
init_local_nova_conf
|
init_local_nova_conf
|
||||||
|
else
|
||||||
|
iniset $NOVA_CONF glance region_name $REGION_NAME
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# add default bridges br-vlan, br-ext if needed, ovs-vsctl
|
# add default bridges br-vlan, br-ext if needed, ovs-vsctl
|
||||||
|
|
|
@ -18,8 +18,10 @@ import task_runner
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
yaml_path, auth_url, project, user, password = sys.argv[1:]
|
(yaml_path, auth_url, project, user, password,
|
||||||
runner = task_runner.SDKRunner(auth_url, project, user, password)
|
project_domain_id, user_domain_id) = sys.argv[1:]
|
||||||
|
runner = task_runner.SDKRunner(auth_url, project, user,
|
||||||
|
password, project_domain_id, user_domain_id)
|
||||||
engine = task_runner.RunnerEngine(yaml_path, runner)
|
engine = task_runner.RunnerEngine(yaml_path, runner)
|
||||||
|
|
||||||
error_msg = engine.run_task_sets()
|
error_msg = engine.run_task_sets()
|
||||||
|
|
|
@ -6,17 +6,17 @@ source $DEVSTACK_DIR/openrc admin admin
|
||||||
unset OS_REGION_NAME
|
unset OS_REGION_NAME
|
||||||
|
|
||||||
echo "Start to run single gateway topology test"
|
echo "Start to run single gateway topology test"
|
||||||
python run_yaml_test.py single_gw_topology_test.yaml "$OS_AUTH_URL" "$OS_TENANT_NAME" "$OS_USERNAME" "$OS_PASSWORD"
|
python run_yaml_test.py single_gw_topology_test.yaml "$OS_AUTH_URL" "$OS_TENANT_NAME" "$OS_USERNAME" "$OS_PASSWORD" "$OS_PROJECT_DOMAIN_ID" "$OS_USER_DOMAIN_ID"
|
||||||
if [ $? != 0 ]; then
|
if [ $? != 0 ]; then
|
||||||
die $LINENO "Smoke test fails, error in single gateway topology test"
|
die $LINENO "Smoke test fails, error in single gateway topology test"
|
||||||
fi
|
fi
|
||||||
echo "Start to run multi gateway topology test"
|
echo "Start to run multi gateway topology test"
|
||||||
python run_yaml_test.py multi_gw_topology_test.yaml "$OS_AUTH_URL" "$OS_TENANT_NAME" "$OS_USERNAME" "$OS_PASSWORD"
|
python run_yaml_test.py multi_gw_topology_test.yaml "$OS_AUTH_URL" "$OS_TENANT_NAME" "$OS_USERNAME" "$OS_PASSWORD" "$OS_PROJECT_DOMAIN_ID" "$OS_USER_DOMAIN_ID"
|
||||||
if [ $? != 0 ]; then
|
if [ $? != 0 ]; then
|
||||||
die $LINENO "Smoke test fails, error in multi gateway topology test"
|
die $LINENO "Smoke test fails, error in multi gateway topology test"
|
||||||
fi
|
fi
|
||||||
echo "Start to run trunk test"
|
echo "Start to run trunk test"
|
||||||
python run_yaml_test.py trunk_test.yaml "$OS_AUTH_URL" "$OS_TENANT_NAME" "$OS_USERNAME" "$OS_PASSWORD"
|
python run_yaml_test.py trunk_test.yaml "$OS_AUTH_URL" "$OS_TENANT_NAME" "$OS_USERNAME" "$OS_PASSWORD" "$OS_PROJECT_DOMAIN_ID" "$OS_USER_DOMAIN_ID"
|
||||||
if [ $? != 0 ]; then
|
if [ $? != 0 ]; then
|
||||||
die $LINENO "Smoke test fails, error in trunk test"
|
die $LINENO "Smoke test fails, error in trunk test"
|
||||||
fi
|
fi
|
||||||
|
@ -26,7 +26,7 @@ fi
|
||||||
# die $LINENO "Smoke test fails, error in service function chain test"
|
# die $LINENO "Smoke test fails, error in service function chain test"
|
||||||
#fi
|
#fi
|
||||||
echo "Start to run qos policy function test"
|
echo "Start to run qos policy function test"
|
||||||
python run_yaml_test.py qos_policy_rule_test.yaml "$OS_AUTH_URL" "$OS_TENANT_NAME" "$OS_USERNAME" "$OS_PASSWORD"
|
python run_yaml_test.py qos_policy_rule_test.yaml "$OS_AUTH_URL" "$OS_TENANT_NAME" "$OS_USERNAME" "$OS_PASSWORD" "$OS_PROJECT_DOMAIN_ID" "$OS_USER_DOMAIN_ID"
|
||||||
if [ $? != 0 ]; then
|
if [ $? != 0 ]; then
|
||||||
die $LINENO "Smoke test fails, error in service function chain test"
|
die $LINENO "Smoke test fails, error in service function chain test"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -20,7 +20,6 @@ import traceback
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
from openstack import connection
|
from openstack import connection
|
||||||
from openstack import profile
|
|
||||||
|
|
||||||
from tricircle.tests.network_sdk import network_service
|
from tricircle.tests.network_sdk import network_service
|
||||||
from tricircle.tests.tricircle_sdk import multiregion_network_service
|
from tricircle.tests.tricircle_sdk import multiregion_network_service
|
||||||
|
@ -87,46 +86,63 @@ class SDKRunner(object):
|
||||||
type_plural_map = {
|
type_plural_map = {
|
||||||
'qos_policy': 'qos_policie'}
|
'qos_policy': 'qos_policie'}
|
||||||
|
|
||||||
def __init__(self, auth_url, project, username, password):
|
def __init__(self, auth_url, project, username, password,
|
||||||
|
project_domain_id, user_domain_id):
|
||||||
self.res_serv_map = {}
|
self.res_serv_map = {}
|
||||||
for serv in self.serv_reslist_map:
|
for serv in self.serv_reslist_map:
|
||||||
for res in self.serv_reslist_map[serv]:
|
for res in self.serv_reslist_map[serv]:
|
||||||
self.res_serv_map[res] = serv
|
self.res_serv_map[res] = serv
|
||||||
|
|
||||||
self.connection_map = {}
|
self.connection_map = {}
|
||||||
param = {
|
auth = {
|
||||||
'auth_url': auth_url,
|
'auth_url': auth_url,
|
||||||
'project_name': project,
|
'project_name': project,
|
||||||
'user_domain_name': 'default',
|
'user_domain_name': 'default',
|
||||||
'project_domain_name': 'default',
|
'project_domain_name': 'default',
|
||||||
'username': username,
|
'username': username,
|
||||||
'password': password}
|
'password': password,
|
||||||
|
'project_domain_id': project_domain_id,
|
||||||
|
'user_domain_id': user_domain_id}
|
||||||
|
|
||||||
for region in ('CentralRegion', 'RegionOne', 'RegionTwo'):
|
for region in ('CentralRegion', 'RegionOne', 'RegionTwo'):
|
||||||
prof = profile.Profile()
|
extra_services = []
|
||||||
if region == 'CentralRegion':
|
if region == 'CentralRegion':
|
||||||
serv = multiregion_network_service.MultiregionNetworkService(
|
serv = multiregion_network_service.MultiregionNetworkService(
|
||||||
version='v1')
|
version='v1')
|
||||||
prof._add_service(serv)
|
extra_services.append(serv)
|
||||||
net_serv = network_service.NetworkService(version='v2')
|
net_serv = network_service.NetworkService(version='v2')
|
||||||
prof._add_service(net_serv)
|
extra_services.append(net_serv)
|
||||||
prof.set_region(profile.Profile.ALL, region)
|
conn = connection.Connection(region_name=region,
|
||||||
param['profile'] = prof
|
auth=auth,
|
||||||
conn = connection.Connection(**param)
|
extra_services=extra_services)
|
||||||
|
conn.config.config['network_sdk_service_type'] = 'network'
|
||||||
|
conn.config.config['tricircle_sdk_service_type'] = 'tricircle'
|
||||||
|
conn.config.config['network_sdk_api_version'] = 'v2'
|
||||||
|
conn.config.config['tricircle_sdk_api_version'] = 'v1'
|
||||||
|
for service in extra_services:
|
||||||
|
conn.add_service(service)
|
||||||
self.connection_map[region] = conn
|
self.connection_map[region] = conn
|
||||||
|
|
||||||
def create(self, region, _type, params):
|
def create(self, region, _type, params):
|
||||||
conn = self.connection_map[self.region_map[region]]
|
conn = self.connection_map[self.region_map[region]]
|
||||||
serv = self.res_serv_map[_type]
|
serv = self.res_serv_map[_type]
|
||||||
_type = self.res_alias_map.get(_type, _type)
|
_type = self.res_alias_map.get(_type, _type)
|
||||||
proxy = getattr(conn, serv)
|
desc = getattr(conn, serv)
|
||||||
|
try:
|
||||||
|
proxy = desc.__get__(conn, '')
|
||||||
|
except Exception:
|
||||||
|
proxy = desc
|
||||||
return getattr(proxy, 'create_%s' % _type)(**params)
|
return getattr(proxy, 'create_%s' % _type)(**params)
|
||||||
|
|
||||||
def action(self, region, _type, target, method, params):
|
def action(self, region, _type, target, method, params):
|
||||||
conn = self.connection_map[self.region_map[region]]
|
conn = self.connection_map[self.region_map[region]]
|
||||||
serv = self.res_serv_map[_type]
|
serv = self.res_serv_map[_type]
|
||||||
_type = self.res_alias_map.get(_type, _type)
|
_type = self.res_alias_map.get(_type, _type)
|
||||||
proxy = getattr(conn, serv)
|
desc = getattr(conn, serv)
|
||||||
|
try:
|
||||||
|
proxy = desc.__get__(conn, '')
|
||||||
|
except Exception:
|
||||||
|
proxy = desc
|
||||||
if method in ('update', 'delete'):
|
if method in ('update', 'delete'):
|
||||||
method = '%s_%s' % (method, _type)
|
method = '%s_%s' % (method, _type)
|
||||||
getattr(proxy, method)(target, **params)
|
getattr(proxy, method)(target, **params)
|
||||||
|
@ -135,7 +151,11 @@ class SDKRunner(object):
|
||||||
conn = self.connection_map[self.region_map[region]]
|
conn = self.connection_map[self.region_map[region]]
|
||||||
serv = self.res_serv_map[_type]
|
serv = self.res_serv_map[_type]
|
||||||
_type = self.res_alias_map.get(_type, _type)
|
_type = self.res_alias_map.get(_type, _type)
|
||||||
proxy = getattr(conn, serv)
|
desc = getattr(conn, serv)
|
||||||
|
try:
|
||||||
|
proxy = desc.__get__(conn, '')
|
||||||
|
except Exception:
|
||||||
|
proxy = desc
|
||||||
_type = self.type_plural_map.get(_type, _type)
|
_type = self.type_plural_map.get(_type, _type)
|
||||||
_list = list(getattr(proxy, '%ss' % _type)(**params))
|
_list = list(getattr(proxy, '%ss' % _type)(**params))
|
||||||
if get_one:
|
if get_one:
|
||||||
|
|
|
@ -10,15 +10,18 @@
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
from openstack import service_description
|
||||||
from openstack import service_filter
|
from openstack import service_filter
|
||||||
|
|
||||||
|
from tricircle.tests.network_sdk.v2 import _proxy
|
||||||
|
|
||||||
class NetworkService(service_filter.ServiceFilter):
|
|
||||||
|
class NetworkService(service_description.ServiceDescription):
|
||||||
"""The network service."""
|
"""The network service."""
|
||||||
|
|
||||||
valid_versions = [service_filter.ValidVersion('v2', 'v2.0')]
|
valid_versions = [service_filter.ValidVersion('v2', 'v2.0')]
|
||||||
|
proxy_class = _proxy.Proxy
|
||||||
|
|
||||||
def __init__(self, version=None):
|
def __init__(self, version=None):
|
||||||
"""Create a network service."""
|
"""Create a network service."""
|
||||||
super(NetworkService, self).__init__(service_type='network',
|
super(NetworkService, self).__init__(service_type='network_sdk')
|
||||||
version=version)
|
|
||||||
|
|
|
@ -33,17 +33,17 @@ class Proxy(_proxy.Proxy):
|
||||||
return self._update(_trunk.Trunk, trunk, **attrs)
|
return self._update(_trunk.Trunk, trunk, **attrs)
|
||||||
|
|
||||||
def trunks(self, **query):
|
def trunks(self, **query):
|
||||||
return self._list(_trunk.Trunk, pagination=False, **query)
|
return self._list(_trunk.Trunk, **query)
|
||||||
|
|
||||||
def add_subports(self, trunk, subports=[]):
|
def add_subports(self, trunk, subports=[]):
|
||||||
trunk = self._get_resource(_trunk.Trunk, trunk)
|
trunk = self._get_resource(_trunk.Trunk, trunk)
|
||||||
body = {'sub_ports': subports}
|
body = {'sub_ports': subports}
|
||||||
return trunk.add_subports(self._session, **body)
|
return trunk.add_subports(self, **body)
|
||||||
|
|
||||||
def remove_subports(self, trunk, subports=[]):
|
def remove_subports(self, trunk, subports=[]):
|
||||||
trunk = self._get_resource(_trunk.Trunk, trunk)
|
trunk = self._get_resource(_trunk.Trunk, trunk)
|
||||||
body = {'sub_ports': subports}
|
body = {'sub_ports': subports}
|
||||||
return trunk.remove_subports(self._session, **body)
|
return trunk.remove_subports(self, **body)
|
||||||
|
|
||||||
# port pair
|
# port pair
|
||||||
def create_port_pair(self, **attrs):
|
def create_port_pair(self, **attrs):
|
||||||
|
@ -56,7 +56,7 @@ class Proxy(_proxy.Proxy):
|
||||||
return self._update(_pp.PortPair, pp, **attrs)
|
return self._update(_pp.PortPair, pp, **attrs)
|
||||||
|
|
||||||
def port_pairs(self, **query):
|
def port_pairs(self, **query):
|
||||||
return self._list(_pp.PortPair, pagination=False, **query)
|
return self._list(_pp.PortPair, **query)
|
||||||
|
|
||||||
# port pair group
|
# port pair group
|
||||||
def create_port_pair_group(self, **attrs):
|
def create_port_pair_group(self, **attrs):
|
||||||
|
@ -69,7 +69,7 @@ class Proxy(_proxy.Proxy):
|
||||||
return self._update(_ppg.PortPairGroup, ppg, **attrs)
|
return self._update(_ppg.PortPairGroup, ppg, **attrs)
|
||||||
|
|
||||||
def port_pair_groups(self, **query):
|
def port_pair_groups(self, **query):
|
||||||
return self._list(_ppg.PortPairGroup, pagination=False, **query)
|
return self._list(_ppg.PortPairGroup, **query)
|
||||||
|
|
||||||
# port chain
|
# port chain
|
||||||
def create_port_chain(self, **attrs):
|
def create_port_chain(self, **attrs):
|
||||||
|
@ -82,7 +82,7 @@ class Proxy(_proxy.Proxy):
|
||||||
return self._update(_pc.PortChain, pc, **attrs)
|
return self._update(_pc.PortChain, pc, **attrs)
|
||||||
|
|
||||||
def port_chains(self, **query):
|
def port_chains(self, **query):
|
||||||
return self._list(_pc.PortChain, pagination=False, **query)
|
return self._list(_pc.PortChain, **query)
|
||||||
|
|
||||||
# flow classifier
|
# flow classifier
|
||||||
def create_flow_classifier(self, **attrs):
|
def create_flow_classifier(self, **attrs):
|
||||||
|
@ -95,4 +95,4 @@ class Proxy(_proxy.Proxy):
|
||||||
return self._update(_fc.FlowClassifier, fc, **attrs)
|
return self._update(_fc.FlowClassifier, fc, **attrs)
|
||||||
|
|
||||||
def flow_classifiers(self, **query):
|
def flow_classifiers(self, **query):
|
||||||
return self._list(_fc.FlowClassifier, pagination=False, **query)
|
return self._list(_fc.FlowClassifier, **query)
|
||||||
|
|
|
@ -10,16 +10,13 @@
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
from tricircle.tests.network_sdk import network_service
|
|
||||||
|
|
||||||
|
|
||||||
class FlowClassifier(resource2.Resource):
|
class FlowClassifier(resource.Resource):
|
||||||
resource_key = 'flow_classifier'
|
resource_key = 'flow_classifier'
|
||||||
resources_key = 'flow_classifiers'
|
resources_key = 'flow_classifiers'
|
||||||
base_path = '/sfc/flow_classifiers'
|
base_path = '/sfc/flow_classifiers'
|
||||||
service = network_service.NetworkService()
|
|
||||||
|
|
||||||
allow_create = True
|
allow_create = True
|
||||||
allow_get = True
|
allow_get = True
|
||||||
|
@ -27,18 +24,18 @@ class FlowClassifier(resource2.Resource):
|
||||||
allow_delete = True
|
allow_delete = True
|
||||||
allow_list = True
|
allow_list = True
|
||||||
|
|
||||||
_query_mapping = resource2.QueryParameters('name')
|
_query_mapping = resource.QueryParameters('name')
|
||||||
|
|
||||||
name = resource2.Body('name')
|
name = resource.Body('name')
|
||||||
description = resource2.Body('description')
|
description = resource.Body('description')
|
||||||
ethertype = resource2.Body('ingress')
|
ethertype = resource.Body('ingress')
|
||||||
protocol = resource2.Body('protocol')
|
protocol = resource.Body('protocol')
|
||||||
source_port_range_min = resource2.Body('source_port_range_min')
|
source_port_range_min = resource.Body('source_port_range_min')
|
||||||
source_port_range_max = resource2.Body('source_port_range_max')
|
source_port_range_max = resource.Body('source_port_range_max')
|
||||||
destination_port_range_min = resource2.Body('destination_port_range_min')
|
destination_port_range_min = resource.Body('destination_port_range_min')
|
||||||
destination_port_range_max = resource2.Body('destination_port_range_max')
|
destination_port_range_max = resource.Body('destination_port_range_max')
|
||||||
source_ip_prefix = resource2.Body('source_ip_prefix')
|
source_ip_prefix = resource.Body('source_ip_prefix')
|
||||||
destination_ip_prefix = resource2.Body('destination_ip_prefix')
|
destination_ip_prefix = resource.Body('destination_ip_prefix')
|
||||||
logical_source_port = resource2.Body('logical_source_port')
|
logical_source_port = resource.Body('logical_source_port')
|
||||||
logical_destination_port = resource2.Body('logical_destination_port')
|
logical_destination_port = resource.Body('logical_destination_port')
|
||||||
l7_parameters = resource2.Body('l7_parameters', type=dict)
|
l7_parameters = resource.Body('l7_parameters', type=dict)
|
||||||
|
|
|
@ -10,16 +10,13 @@
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
from tricircle.tests.network_sdk import network_service
|
|
||||||
|
|
||||||
|
|
||||||
class PortChain(resource2.Resource):
|
class PortChain(resource.Resource):
|
||||||
resource_key = 'port_chain'
|
resource_key = 'port_chain'
|
||||||
resources_key = 'port_chains'
|
resources_key = 'port_chains'
|
||||||
base_path = '/sfc/port_chains'
|
base_path = '/sfc/port_chains'
|
||||||
service = network_service.NetworkService()
|
|
||||||
|
|
||||||
allow_create = True
|
allow_create = True
|
||||||
allow_get = True
|
allow_get = True
|
||||||
|
@ -27,11 +24,11 @@ class PortChain(resource2.Resource):
|
||||||
allow_delete = True
|
allow_delete = True
|
||||||
allow_list = True
|
allow_list = True
|
||||||
|
|
||||||
_query_mapping = resource2.QueryParameters('name')
|
_query_mapping = resource.QueryParameters('name')
|
||||||
|
|
||||||
name = resource2.Body('name')
|
name = resource.Body('name')
|
||||||
description = resource2.Body('description')
|
description = resource.Body('description')
|
||||||
port_pair_groups = resource2.Body('port_pair_groups', type=list)
|
port_pair_groups = resource.Body('port_pair_groups', type=list)
|
||||||
flow_classifiers = resource2.Body('flow_classifiers', type=list)
|
flow_classifiers = resource.Body('flow_classifiers', type=list)
|
||||||
chain_parameters = resource2.Body('chain_parameters', type=dict)
|
chain_parameters = resource.Body('chain_parameters', type=dict)
|
||||||
chain_id = resource2.Body('chain_id')
|
chain_id = resource.Body('chain_id')
|
||||||
|
|
|
@ -10,16 +10,13 @@
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
from tricircle.tests.network_sdk import network_service
|
|
||||||
|
|
||||||
|
|
||||||
class PortPair(resource2.Resource):
|
class PortPair(resource.Resource):
|
||||||
resource_key = 'port_pair'
|
resource_key = 'port_pair'
|
||||||
resources_key = 'port_pairs'
|
resources_key = 'port_pairs'
|
||||||
base_path = '/sfc/port_pairs'
|
base_path = '/sfc/port_pairs'
|
||||||
service = network_service.NetworkService()
|
|
||||||
|
|
||||||
allow_create = True
|
allow_create = True
|
||||||
allow_get = True
|
allow_get = True
|
||||||
|
@ -27,11 +24,11 @@ class PortPair(resource2.Resource):
|
||||||
allow_delete = True
|
allow_delete = True
|
||||||
allow_list = True
|
allow_list = True
|
||||||
|
|
||||||
_query_mapping = resource2.QueryParameters('name')
|
_query_mapping = resource.QueryParameters('name')
|
||||||
|
|
||||||
name = resource2.Body('name')
|
name = resource.Body('name')
|
||||||
description = resource2.Body('description')
|
description = resource.Body('description')
|
||||||
ingress = resource2.Body('ingress')
|
ingress = resource.Body('ingress')
|
||||||
egress = resource2.Body('egress')
|
egress = resource.Body('egress')
|
||||||
service_function_parameters = resource2.Body('service_function_parameters',
|
service_function_parameters = resource.Body('service_function_parameters',
|
||||||
type=dict)
|
type=dict)
|
||||||
|
|
|
@ -10,16 +10,13 @@
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
|
|
||||||
from tricircle.tests.network_sdk import network_service
|
|
||||||
|
|
||||||
|
|
||||||
class PortPairGroup(resource2.Resource):
|
class PortPairGroup(resource.Resource):
|
||||||
resource_key = 'port_pair_group'
|
resource_key = 'port_pair_group'
|
||||||
resources_key = 'port_pair_groups'
|
resources_key = 'port_pair_groups'
|
||||||
base_path = '/sfc/port_pair_groups'
|
base_path = '/sfc/port_pair_groups'
|
||||||
service = network_service.NetworkService()
|
|
||||||
|
|
||||||
allow_create = True
|
allow_create = True
|
||||||
allow_get = True
|
allow_get = True
|
||||||
|
@ -27,10 +24,10 @@ class PortPairGroup(resource2.Resource):
|
||||||
allow_delete = True
|
allow_delete = True
|
||||||
allow_list = True
|
allow_list = True
|
||||||
|
|
||||||
_query_mapping = resource2.QueryParameters('name')
|
_query_mapping = resource.QueryParameters('name')
|
||||||
|
|
||||||
name = resource2.Body('name')
|
name = resource.Body('name')
|
||||||
description = resource2.Body('description')
|
description = resource.Body('description')
|
||||||
port_pairs = resource2.Body('port_pairs', type=list)
|
port_pairs = resource.Body('port_pairs', type=list)
|
||||||
port_pair_group_parameters = resource2.Body('port_pair_group_parameters',
|
port_pair_group_parameters = resource.Body('port_pair_group_parameters',
|
||||||
type=dict)
|
type=dict)
|
||||||
|
|
|
@ -10,17 +10,14 @@
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack import resource2
|
from openstack import resource
|
||||||
from openstack import utils
|
from openstack import utils
|
||||||
|
|
||||||
from tricircle.tests.network_sdk import network_service
|
|
||||||
|
|
||||||
|
class Trunk(resource.Resource):
|
||||||
class Trunk(resource2.Resource):
|
|
||||||
resource_key = 'trunk'
|
resource_key = 'trunk'
|
||||||
resources_key = 'trunks'
|
resources_key = 'trunks'
|
||||||
base_path = '/trunks'
|
base_path = '/trunks'
|
||||||
service = network_service.NetworkService()
|
|
||||||
|
|
||||||
allow_create = True
|
allow_create = True
|
||||||
allow_get = True
|
allow_get = True
|
||||||
|
@ -28,17 +25,19 @@ class Trunk(resource2.Resource):
|
||||||
allow_delete = True
|
allow_delete = True
|
||||||
allow_list = True
|
allow_list = True
|
||||||
|
|
||||||
status = resource2.Body('status')
|
status = resource.Body('status')
|
||||||
name = resource2.Body('name')
|
name = resource.Body('name')
|
||||||
port_id = resource2.Body('port_id')
|
port_id = resource.Body('port_id')
|
||||||
sub_ports = resource2.Body('sub_ports', type=list)
|
sub_ports = resource.Body('sub_ports', type=list)
|
||||||
|
|
||||||
def add_subports(self, session, **body):
|
def add_subports(self, session, **body):
|
||||||
url = utils.urljoin(self.base_path, self.id, 'add_subports')
|
url = utils.urljoin(self.base_path, self.id, 'add_subports')
|
||||||
resp = session.put(url, endpoint_filter=self.service, json=body)
|
resp = session.put(url, endpoint_filter={'service_type': 'network'},
|
||||||
|
json=body)
|
||||||
return resp.json()
|
return resp.json()
|
||||||
|
|
||||||
def remove_subports(self, session, **body):
|
def remove_subports(self, session, **body):
|
||||||
url = utils.urljoin(self.base_path, self.id, 'remove_subports')
|
url = utils.urljoin(self.base_path, self.id, 'remove_subports')
|
||||||
resp = session.put(url, endpoint_filter=self.service, json=body)
|
resp = session.put(url, endpoint_filter={'service_type': 'network'},
|
||||||
|
json=body)
|
||||||
return resp.json()
|
return resp.json()
|
||||||
|
|
|
@ -12,13 +12,17 @@
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
from openstack import service_description
|
||||||
from openstack import service_filter
|
from openstack import service_filter
|
||||||
|
|
||||||
|
from tricircle.tests.tricircle_sdk.v1 import _proxy
|
||||||
|
|
||||||
class MultiregionNetworkService(service_filter.ServiceFilter):
|
|
||||||
|
class MultiregionNetworkService(service_description.ServiceDescription):
|
||||||
valid_versions = [service_filter.ValidVersion('v1')]
|
valid_versions = [service_filter.ValidVersion('v1')]
|
||||||
|
proxy_class = _proxy.Proxy
|
||||||
|
|
||||||
def __init__(self, version=None):
|
def __init__(self, version=None):
|
||||||
# TODO(zhiyuan) register a proper service type in keystone
|
# TODO(zhiyuan) register a proper service type in keystone
|
||||||
super(MultiregionNetworkService, self).__init__(
|
super(MultiregionNetworkService, self).__init__(
|
||||||
service_type='tricircle', version=version)
|
service_type='tricircle_sdk')
|
||||||
|
|
|
@ -12,11 +12,11 @@
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack import proxy2
|
from openstack import proxy
|
||||||
|
|
||||||
from tricircle.tests.tricircle_sdk.v1 import job
|
from tricircle.tests.tricircle_sdk.v1 import job
|
||||||
|
|
||||||
|
|
||||||
class Proxy(proxy2.BaseProxy):
|
class Proxy(proxy.BaseProxy):
|
||||||
def jobs(self, **query):
|
def jobs(self, **query):
|
||||||
return self._list(job.Job, pagination=False, **query)
|
return self._list(job.Job, **query)
|
||||||
|
|
|
@ -12,16 +12,13 @@
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from openstack import resource2
|
from openstack import resource as resource2
|
||||||
|
|
||||||
from tricircle.tests.tricircle_sdk import multiregion_network_service
|
|
||||||
|
|
||||||
|
|
||||||
class Job(resource2.Resource):
|
class Job(resource2.Resource):
|
||||||
resource_key = 'job'
|
resource_key = 'job'
|
||||||
resources_key = 'jobs'
|
resources_key = 'jobs'
|
||||||
base_path = '/jobs'
|
base_path = '/jobs'
|
||||||
service = multiregion_network_service.MultiregionNetworkService()
|
|
||||||
|
|
||||||
allow_list = True
|
allow_list = True
|
||||||
allow_get = True
|
allow_get = True
|
||||||
|
|
Loading…
Reference in New Issue