def test_service_enabled_on_create_based_on_flag(self): self.flags(enable_new_services=True) host = 'foo' binary = 'rack-fake' app = service.Service.create(host=host, binary=binary) app.start() app.stop() ref = db.service_get(context.get_admin_context(), app.service_id) db.service_destroy(context.get_admin_context(), app.service_id) self.assertTrue(not ref['disabled'])
def setUp(self): super(NetworksTestCase, self).setUp() self.ctxt = context.get_admin_context() self.gid = unicode(uuid.uuid4()) self.network_id = unicode(uuid.uuid4()) self.neutron_network_id = unicode(uuid.uuid4()) self.ext_router_id = unicode(uuid.uuid4())
def setUp(self): super(ProcessTestCase, self).setUp() self.ctxt = context.get_admin_context() self.user_ctxt = context.RequestContext('user', 'user') self.gid = unicode(uuid.uuid4()) self.group = self._create_group(self.gid) self.network = self._create_network(self.gid) self.keypair = self._create_keypair(self.gid) self.securitygroup = self._create_securitygroup(self.gid)
def start(self): verstr = version.version_string_with_package() LOG.audit(_('Starting %(topic)s node (version %(version)s)'), {'topic': self.topic, 'version': verstr}) self.basic_config_check() self.manager.init_host() self.model_disconnected = False ctxt = context.get_admin_context() try: self.service_ref = db.service_get_by_args(ctxt, self.host, self.binary) self.service_id = self.service_ref['id'] except exception.NotFound: try: self.service_ref = self._create_service_ref(ctxt) except exception.ServiceTopicExists: self.service_ref = db.service_get_by_args(ctxt, self.host, self.binary) self.manager.pre_start_hook() LOG.debug(_("Join ServiceGroup membership for this service %s") % self.topic) self.servicegroup_api.join(self.host, self.topic, self) if self.backdoor_port is not None: self.manager.backdoor_port = self.backdoor_port LOG.debug(_("Creating RPC server for service %s") % self.topic) target = messaging.Target(topic=self.topic, server=self.host) endpoints = [ self.manager, baserpc.BaseRPCAPI(self.manager.service_name, self.backdoor_port) ] endpoints.extend(self.manager.additional_endpoints) serializer = rack_object.RackObjectSerializer() self.rpcserver = rpc.get_server(target, endpoints, serializer) self.rpcserver.start() self.manager.post_start_hook() if self.periodic_enable: if self.periodic_fuzzy_delay: initial_delay = random.randint(0, self.periodic_fuzzy_delay) else: initial_delay = None self.tg.add_dynamic_timer( self.periodic_tasks, initial_delay=initial_delay, periodic_interval_max=self.periodic_interval_max)
def get_all(self, group_id): """Returns ALL members of the given group """ LOG.debug(_('DB_Driver: get_all members of the %s group') % group_id) rs = [] ctxt = context.get_admin_context() services = db.service_get_all_by_topic(ctxt, group_id) for service in services: if self.is_up(service): rs.append(service['host']) return rs
def setUp(self): super(MemcachedServiceGroupTestCase, self).setUp() servicegroup.API._driver = None self.flags(servicegroup_driver='mc') self.down_time = 15 self.flags(enable_new_services=True) self.flags(service_down_time=self.down_time) self.servicegroup_api = servicegroup.API(test=True) self._host = 'foo' self._binary = 'rack-fake' self._topic = 'unittest' self._ctx = context.get_admin_context()
def _report_state(self, service): """Update the state of this service in the datastore.""" context.get_admin_context() try: key = "%(topic)s:%(host)s" % service.service_ref # memcached has data expiration time capability. # set(..., time=CONF.service_down_time) uses it and # reduces key-deleting code. self.mc.set(str(key), timeutils.utcnow(), time=CONF.service_down_time) # TODO(termie): make this pattern be more elegant. if getattr(service, 'model_disconnected', False): service.model_disconnected = False LOG.error(_('Recovered model server connection!')) # TODO(vish): this should probably only catch connection errors except Exception: # pylint: disable=W0702 if not getattr(service, 'model_disconnected', False): service.model_disconnected = True LOG.exception(_('model server went away'))
def _report_state(self, service): """Update the state of this service in the datastore.""" ctxt = context.get_admin_context() state_catalog = {} try: report_count = service.service_ref['report_count'] + 1 state_catalog['report_count'] = report_count service.service_ref = db.service_update(ctxt, service.service_ref['id'], state_catalog) if getattr(service, 'model_disconnected', False): service.model_disconnected = False LOG.error(_('Recovered model server connection!')) except Exception: if not getattr(service, 'model_disconnected', False): service.model_disconnected = True LOG.exception(_('model server went away'))
def setUp(self): super(SecuritygroupTestCase, self).setUp() self.ctxt = context.get_admin_context() self.user_ctxt = context.RequestContext('user', 'user')
def setUp(self): super(GroupTestCase, self).setUp() self.ctxt = context.get_admin_context() self.user_ctxt = context.RequestContext('user', 'user') self.gid = unicode(uuid.uuid4())
def setUp(self): super(KeypairTestCase, self).setUp() self.ctxt = context.get_admin_context() self.user_ctxt = context.RequestContext('user', 'user')
def setUp(self): super(ServiceTestCase, self).setUp() self.ctxt = context.get_admin_context()
def periodic_tasks(self, raise_on_error=False): """Tasks to be run at a periodic interval.""" ctxt = context.get_admin_context() return self.manager.periodic_tasks(ctxt, raise_on_error=raise_on_error)