From 35c5ea512e174c047f477ab52cc60f4b9a700a27 Mon Sep 17 00:00:00 2001 From: Nachi Ueno Date: Mon, 18 Apr 2016 21:57:44 +0000 Subject: [PATCH] Support region_name in keystone configuraion Add config option for selecting openstack region. Closes bug: #1565165 Change-Id: I99c6429eceb5f826e3630a4cd047814879190592 --- src/config/api-server/utils.py | 1 + src/config/api-server/vnc_auth_keystone.py | 1 + src/config/api-server/vnc_cfg_api_server.py | 9 +++++---- src/discovery/disc_server.py | 22 +++++++++++---------- 4 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/config/api-server/utils.py b/src/config/api-server/utils.py index 52590a6ede6..360ea240f72 100644 --- a/src/config/api-server/utils.py +++ b/src/config/api-server/utils.py @@ -67,6 +67,7 @@ def parse_args(args_str): 'rabbit_max_pending_updates': '4096', 'cluster_id': '', 'max_requests': 1024, + 'region_name': 'RegionOne', 'sandesh_send_rate_limit': SandeshSystem.get_sandesh_send_rate_limit(), 'ifmap_health_check_interval': '60', # in seconds 'stale_lock_seconds': '5', # lock but no resource past this => stale diff --git a/src/config/api-server/vnc_auth_keystone.py b/src/config/api-server/vnc_auth_keystone.py index 773e66510bb..f9a6d21217d 100644 --- a/src/config/api-server/vnc_auth_keystone.py +++ b/src/config/api-server/vnc_auth_keystone.py @@ -143,6 +143,7 @@ def __init__(self, server_mgr, args): 'admin_tenant_name': args.admin_tenant_name, 'admin_port': args.admin_port, 'max_requests': args.max_requests, + 'region_name': args.region_name, 'insecure':args.insecure, } try: diff --git a/src/config/api-server/vnc_cfg_api_server.py b/src/config/api-server/vnc_cfg_api_server.py index 24ad0dfdef7..3c445cd9b64 100644 --- a/src/config/api-server/vnc_cfg_api_server.py +++ b/src/config/api-server/vnc_cfg_api_server.py @@ -218,7 +218,7 @@ def _validate_complex_type(cls, dict_cls, dict_body): simple_type = attr_type_vals['simple_type'] for item in values: cls._validate_simple_type(key, attr_type, - simple_type, item, + simple_type, item, restrictions) # end _validate_complex_type @@ -301,8 +301,8 @@ def _validate_props_in_request(self, resource_class, obj_dict): for elem in prop_value: try: if is_simple: - self._validate_simple_type(prop_name, prop_type, - simple_type, elem, + self._validate_simple_type(prop_name, prop_type, + simple_type, elem, restrictions) else: self._validate_complex_type(prop_cls, elem) @@ -2345,6 +2345,7 @@ def _parse_args(self, args_str): --listen_ip_addr 127.0.0.1 --listen_port 8082 --admin_port 8095 + --region_name RegionOne --log_local --log_level SYS_DEBUG --logging_level DEBUG @@ -2688,7 +2689,7 @@ def _list_collection(self, resource_type, parent_uuids=None, obj_dicts = [] if not is_detail: if not self.is_admin_request(): - obj_ids_list = [{'uuid': obj_uuid} + obj_ids_list = [{'uuid': obj_uuid} for _, obj_uuid in fq_names_uuids] obj_fields = [u'id_perms'] if req_fields: diff --git a/src/discovery/disc_server.py b/src/discovery/disc_server.py index edc83a85eb2..9659f0e147f 100644 --- a/src/discovery/disc_server.py +++ b/src/discovery/disc_server.py @@ -47,7 +47,7 @@ from sandesh.discovery_introspect import ttypes as sandesh from sandesh.cfgm_cpuinfo.ttypes import NodeStatusUVE, NodeStatus from sandesh_common.vns.constants import ModuleNames, Module2NodeType, NodeTypeNames,\ - INSTANCE_ID_DEFAULT + INSTANCE_ID_DEFAULT from gevent.coros import BoundedSemaphore from cfgm_common.rest import LinkObject @@ -180,7 +180,7 @@ def __init__(self, args): 'action', self._base_url , '/stats', 'show discovery service stats')) - # cleanup + # cleanup bottle.route('/cleanup', 'GET', self.cleanup_http_get) self._homepage_links.append(LinkObject('action', self._base_url , '/cleanup', 'Purge inactive publishers')) @@ -203,7 +203,7 @@ def __init__(self, args): ModuleNames[Module.DISCOVERY_SERVICE]) self._sandesh.init_generator( module_name, socket.gethostname(), node_type_name, instance_id, - self._args.collectors, 'discovery_context', + self._args.collectors, 'discovery_context', int(self._args.http_server_port), ['discovery.sandesh'], disc_client, logger_class=self._args.logger_class, logger_config_file=self._args.logging_conf) @@ -218,7 +218,7 @@ def __init__(self, args): size=1000) self._sandesh.trace_buffer_create(name="dsSubscribeTraceBuf", size=1000) - ConnectionState.init(self._sandesh, socket.gethostname(), module_name, + ConnectionState.init(self._sandesh, socket.gethostname(), module_name, instance_id, staticmethod(ConnectionState.get_process_state_cb), NodeStatusUVE, NodeStatus) @@ -251,6 +251,7 @@ def __init__(self, args): 'admin_user': self._args.admin_user, 'admin_password': self._args.admin_password, 'admin_tenant_name': self._args.admin_tenant_name, + 'region_name': self._args.region_name, } self._auth_svc = disc_auth_keystone.AuthServiceKeystone(ks_conf) # end __init__ @@ -455,7 +456,7 @@ def api_heartbeat(self): self.syslog('Unable to parse heartbeat') self.syslog(bottle.request.body.buf) bottle.abort(400, 'Unable to parse heartbeat') - + status = self.heartbeat(data['cookie']) return status @@ -565,7 +566,7 @@ def disco_shuffle(self, list): master_list = [] working_list = [] previous_use_count = list[0]['in_use'] - list.append({'in_use': -1}) + list.append({'in_use': -1}) for item in list: if item['in_use'] != previous_use_count: random.shuffle(working_list) @@ -1004,7 +1005,7 @@ def show_all_services(self, service_type=None): oper_state_str += '/' + pub['oper_state_msg'] rsp += ' ' + oper_state_str + '\n' rsp += ' ' + pub['admin_state'] + '\n' - link = do_html_url("/clients/%s/%s" % (service_type, service_id), + link = do_html_url("/clients/%s/%s" % (service_type, service_id), str(pub['in_use'])) rsp += ' ' + link + '\n' (expired, color, timedelta) = self.service_expired( @@ -1121,7 +1122,7 @@ def cleanup_http_get(self): if self.service_expired(entry): self._db_conn.delete_service(entry) return self.show_all_services() - #end + #end @db_error_handler def show_all_clients(self, service_type=None, service_id=None): @@ -1140,7 +1141,7 @@ def show_all_clients(self, service_type=None, service_id=None): rsp += ' \n' # lookup subscribers of the service - clients = self._db_conn.get_all_clients(service_type=service_type, + clients = self._db_conn.get_all_clients(service_type=service_type, service_id=service_id) if not clients: @@ -1323,6 +1324,7 @@ def parse_args(args_str): 'admin_user': '', 'admin_password': '', 'admin_tenant_name': '', + 'region_name': 'RegionOne', } service_config = {} @@ -1431,7 +1433,7 @@ def parse_args(args_str): parser.add_argument( "--auth", choices=['keystone'], help="Type of authentication for user-requests") - + args = parser.parse_args(remaining_argv) args.conf_file = args.conf_file args.service_config = service_config