def on_initial_bootstrap(self, process, config, **kwargs): org_ms_client = OrgManagementServiceProcessClient(process=process) ex_ms_client = ExchangeManagementServiceProcessClient(process=process) system_actor = get_system_actor() if not system_actor: raise AbortBootstrap("Cannot find system actor") system_actor_id = system_actor._id # Create root Org: ION root_orgname = config.system.root_org org = Org(name=root_orgname, description="ION Root Org") self.org_id = org_ms_client.create_org(org) # Instantiate initial set of User Roles for this Org superuser_role = UserRole( governance_name=SUPERUSER_ROLE, name='Superuser role', description='Has all permissions system wide') org_ms_client.add_org_role(self.org_id, superuser_role) org_ms_client.grant_role(self.org_id, system_actor_id, SUPERUSER_ROLE) # Make the ION system agent a manager for the ION Org org_ms_client.grant_role(self.org_id, system_actor_id, MODERATOR_ROLE) # Create root ExchangeSpace system_xs_name = process.container.ex_manager.system_xs_name xs = ExchangeSpace(name=system_xs_name, description="ION service XS") self.xs_id = ex_ms_client.create_exchange_space(xs, self.org_id)
def on_initial_bootstrap(self, process, config, **kwargs): org_ms_client = OrgManagementServiceProcessClient(process=process) ex_ms_client = ExchangeManagementServiceProcessClient(process=process) system_actor = get_system_actor() if not system_actor: raise AbortBootstrap("Cannot find system actor") system_actor_id = system_actor._id # Create root Org: ION root_orgname = config.system.root_org org = Org(name=root_orgname, description="ION Root Org") self.org_id = org_ms_client.create_org(org) # Instantiate initial set of User Roles for this Org superuser_role = UserRole(governance_name=SUPERUSER_ROLE, name='Superuser role', description='Has all permissions system wide') org_ms_client.add_org_role(self.org_id, superuser_role) org_ms_client.grant_role(self.org_id, system_actor_id, SUPERUSER_ROLE) # Make the ION system agent a manager for the ION Org org_ms_client.grant_role(self.org_id, system_actor_id, MODERATOR_ROLE) # Create root ExchangeSpace system_xs_name = process.container.ex_manager.system_xs_name xs = ExchangeSpace(name=system_xs_name, description="ION service XS") self.xs_id = ex_ms_client.create_exchange_space(xs, self.org_id)
def on_initial_bootstrap(self, process, config, **kwargs): """ Bootstraps initial objects in the system from configuration (pyon.yml) via EMS calls. """ rr = process.container.resource_registry ems_client = ExchangeManagementServiceProcessClient(process=process) # Get ION Org root_org_name = config.get_safe('system.root_org', "ION") org_ids, _ = rr.find_resources(restype=RT.Org, name=root_org_name, id_only=True) if not org_ids or len(org_ids) > 1: raise StandardError("Could not determine root Org") org_id = org_ids[0] # Create XSs and XPs resource objects xs_by_name = {} # Name to resource ID mapping for ExchangeSpace xs_defs = config.get_safe("exchange.exchange_spaces", {}) for xsname, xsdict in xs_defs.iteritems(): xso = ResExchangeSpace(name=xsname, description=xsdict.get("description", "")) xso_id = ems_client.create_exchange_space(xso, org_id) xs_by_name[xsname] = xso_id log.info("ExchangeSpace %s, id %s", xsname, xso_id) for xpname, xpopts in xsdict.get("exchange_points", {}).iteritems(): xpo = ResExchangePoint( name=xpname, description=xpopts.get("description", ""), topology_type=xpopts.get('type', 'ttree')) xpo_id = ems_client.create_exchange_point(xpo, xso_id) log.info("\tExchangePoint %s, id %s", xpname, xpo_id) # Create XSs and XPs resource objects for brokername, bdict in config.get_safe("exchange.exchange_brokers", {}).iteritems(): xbo = ResExchangeBroker(name=brokername, description=bdict.get("description", "")) xbo_id = ems_client.create_exchange_broker(xbo) log.info("\tExchangeBroker %s, id %s", brokername, xbo_id) for xs_name in bdict.get("join_xs", None) or []: if xs_name in xs_by_name: xs_id = xs_by_name[xs_name] ems_client.add_exchange_space_to_exchange_broker( xs_id, xbo_id) else: log.warn("ExchangeSpace %s unknown. Broker %s cannot join", xs_name, brokername) for xp_name in bdict.get("join_xp", None) or []: pass
def on_initial_bootstrap(self, process, config, **kwargs): """ Bootstraps initial objects in the system from configuration (pyon.yml) via EMS calls. """ rr = process.container.resource_registry ems_client = ExchangeManagementServiceProcessClient(process=process) # Get ION Org root_org_name = config.get_safe('system.root_org', "ION") org_ids, _ = rr.find_resources(restype=RT.Org, name=root_org_name, id_only=True) if not org_ids or len(org_ids) > 1: raise StandardError("Could not determine root Org") org_id = org_ids[0] # Create XSs and XPs resource objects xs_by_name = {} # Name to resource ID mapping for ExchangeSpace xs_defs = config.get_safe("exchange.exchange_spaces", {}) for xsname, xsdict in xs_defs.iteritems(): xso = ResExchangeSpace(name=xsname, description=xsdict.get("description", "")) xso_id = ems_client.create_exchange_space(xso, org_id) xs_by_name[xsname] = xso_id log.info("ExchangeSpace %s, id %s", xsname, xso_id) for xpname, xpopts in xsdict.get("exchange_points", {}).iteritems(): xpo = ResExchangePoint(name=xpname, description=xpopts.get("description", ""), topology_type=xpopts.get('type', 'ttree')) xpo_id = ems_client.create_exchange_point(xpo, xso_id) log.info("\tExchangePoint %s, id %s", xpname, xpo_id) # Create XSs and XPs resource objects for brokername, bdict in config.get_safe("exchange.exchange_brokers", {}).iteritems(): xbo = ResExchangeBroker(name=brokername, description=bdict.get("description", "")) xbo_id = ems_client.create_exchange_broker(xbo) log.info("\tExchangeBroker %s, id %s", brokername, xbo_id) for xs_name in bdict.get("join_xs", None) or []: if xs_name in xs_by_name: xs_id = xs_by_name[xs_name] ems_client.add_exchange_space_to_exchange_broker(xs_id, xbo_id) else: log.warn("ExchangeSpace %s unknown. Broker %s cannot join", xs_name, brokername) for xp_name in bdict.get("join_xp", None) or []: pass