def setUp(self): # This test does not start a container so we have to hack creating a FileSystem singleton instance FileSystem(DotDict()) self.px_ctd = SimpleCtdPublisher() self.px_ctd.last_time = 0 self.tx_L0 = ctd_L0_all() self.tx_L0.streams = defaultdict(Mock) self.tx_L0.conductivity = Mock() self.tx_L0.temperature = Mock() self.tx_L0.pressure = Mock() self.tx_L1_C = CTDL1ConductivityTransform() self.tx_L1_C.streams = defaultdict(Mock) self.tx_L1_T = CTDL1TemperatureTransform() self.tx_L1_T.streams = defaultdict(Mock) self.tx_L1_P = CTDL1PressureTransform() self.tx_L1_P.streams = defaultdict(Mock) self.tx_L2_S = SalinityTransform() self.tx_L2_S.streams = defaultdict(Mock) self.tx_L2_D = DensityTransform() self.tx_L2_D.streams = defaultdict(Mock)
def __init__(self, *args, **kwargs): BaseContainerAgent.__init__(self, *args, **kwargs) self._is_started = False self._capabilities = [] # set container id and cc_agent name (as they are set in base class call) self.id = get_default_container_id() self.name = "cc_agent_%s" % self.id Container.instance = self from pyon.core import bootstrap bootstrap.container_instance = self log.debug("Container (sysname=%s) initializing ..." % bootstrap.get_sys_name()) # DatastoreManager - controls access to Datastores (both mock and couch backed) self.datastore_manager = DatastoreManager() self.datastore_manager.start() self._capabilities.append("DATASTORE_MANAGER") # Keep track of the overrides from the command-line, so they can trump app/rel file data self.spawn_args = kwargs # Instantiate Directory and self-register # Has the additional side effect of either # bootstrapping the configuration into the # directory or read the configuration based # in the value of the auto_bootstrap setting self.directory = Directory() # Create this Container's specific ExchangeManager instance self.ex_manager = ExchangeManager(self) # Create this Container's specific ProcManager instance self.proc_manager = ProcManager(self) # Create this Container's specific AppManager instance self.app_manager = AppManager(self) # File System - Interface to the OS File System, using correct path names and setups self.file_system = FileSystem(CFG) # Governance Controller - manages the governance related interceptors self.governance_controller = GovernanceController(self) # sFlow manager - controls sFlow stat emission self.sflow_manager = SFlowManager(self) # Coordinates the container start self._status = "INIT" # protection for when the container itself is used as a Process for clients self.container = self log.debug("Container initialized, OK.")
def __init__(self, *args, **kwargs): BaseContainerAgent.__init__(self, *args, **kwargs) self._is_started = False # set id and name (as they are set in base class call) self.id = string.replace('%s_%d' % (os.uname()[1], os.getpid()), ".", "_") self.name = "cc_agent_%s" % self.id Container.instance = self # TODO: Bug: Replacing CFG instance not work because references are already public. Update directly dict_merge(CFG, kwargs, inplace=True) from pyon.core import bootstrap bootstrap.container_instance = self bootstrap.assert_configuration(CFG) log.debug("Container (sysname=%s) initializing ..." % bootstrap.get_sys_name()) # Keep track of the overrides from the command-line, so they can trump app/rel file data self.spawn_args = kwargs # Load object and service registry etc. bootstrap_pyon() # Create this Container's specific ExchangeManager instance self.ex_manager = ExchangeManager(self) # Create this Container's specific ProcManager instance self.proc_manager = ProcManager(self) # Create this Container's specific AppManager instance self.app_manager = AppManager(self) # DatastoreManager - controls access to Datastores (both mock and couch backed) self.datastore_manager = DatastoreManager() # File System - Interface to the OS File System, using correct path names and setups self.file_system = FileSystem(CFG) # Governance Controller - manages the governance related interceptors self.governance_controller = GovernanceController(self) # sFlow manager - controls sFlow stat emission self.sflow_manager = SFlowManager(self) # Coordinates the container start self._is_started = False self._capabilities = [] self._status = "INIT" # protection for when the container itself is used as a Process for clients self.container = self log.debug("Container initialized, OK.")
def setUpClass(cls): # This test does not start a container so we have to hack creating a FileSystem singleton instance FileSystem(DotDict()) @unittest.skipIf(no_numpy_h5py, 'numpy and/or h5py not imported') def create_known(dataset_name, rootgrp_name, grp_name): """ A known array to compare against during tests """ known_array = numpy.random.rand(10, 20) filename = FileSystem.get_url(FS.TEMP, random_name(), ".hdf5") # Write an hdf file with known values to compare against h5pyfile = h5py.File(filename, mode='w', driver='core') grp = h5pyfile.create_group(rootgrp_name) subgrp = grp.create_group(grp_name) dataset = subgrp.create_dataset(dataset_name, known_array.shape, known_array.dtype.str, compression='gzip', compression_opts=4, maxshape=(None, None)) dataset.write_direct(known_array) h5pyfile.close() # convert the hdf file into a binary string f = open(filename, mode='rb') # read the binary string representation of the file known_hdf_as_string = f.read( ) # this is a known string to compare against during tests f.close() # cleaning up FileSystem.unlink(f.name) return known_array, known_hdf_as_string # Use the class method to patch these attributes onto the class. TestScienceObjectCodec.known_array, TestScienceObjectCodec.known_hdf_as_string = create_known( TestScienceObjectCodec.dataset_name, TestScienceObjectCodec.rootgrp_name, TestScienceObjectCodec.grp_name) TestScienceObjectCodec.known_hdf_as_sha1 = sha1( TestScienceObjectCodec.known_hdf_as_string)
def __init__(self, container): ContainerCapability.__init__(self, container) self.container.file_system = FileSystem(CFG)
def __init__(self, *args, **kwargs): BaseContainerAgent.__init__(self, *args, **kwargs) self._is_started = False # set container id and cc_agent name (as they are set in base class call) self.id = get_default_container_id() self.name = "cc_agent_%s" % self.id self._capabilities = [] bootstrap.container_instance = self Container.instance = self log.debug("Container (sysname=%s) initializing ..." % bootstrap.get_sys_name()) # Keep track of the overrides from the command-line, so they can trump app/rel file data self.spawn_args = kwargs # DatastoreManager - controls access to Datastores (both mock and couch backed) self.datastore_manager = DatastoreManager() # TODO: Do not start a capability here. Symmetric start/stop self.datastore_manager.start() self._capabilities.append("DATASTORE_MANAGER") # Instantiate Directory self.directory = Directory() # internal router self.local_router = None # Create this Container's specific ExchangeManager instance self.ex_manager = ExchangeManager(self) # Create this Container's specific ProcManager instance self.proc_manager = ProcManager(self) # Create this Container's specific AppManager instance self.app_manager = AppManager(self) # File System - Interface to the OS File System, using correct path names and setups self.file_system = FileSystem(CFG) # Governance Controller - manages the governance related interceptors self.governance_controller = GovernanceController(self) # sFlow manager - controls sFlow stat emission self.sflow_manager = SFlowManager(self) # Coordinates the container start self._status = "INIT" # protection for when the container itself is used as a Process for clients self.container = self # publisher, initialized in start() self.event_pub = None # context-local storage self.context = LocalContextMixin() log.debug("Container initialized, OK.")
def setUp(self): import numpy, h5py FileSystem(DotDict()) #-------------------------------------------------------------------- # Create an hdf file for testing #-------------------------------------------------------------------- self.salinity = [ 0, ] * 3 self.temperature = [ 0, ] * 3 self.pressure = [ 0, ] * 3 self.salinity[0] = numpy.arange(50) self.salinity[1] = numpy.arange(50) + 50 self.salinity[2] = numpy.arange(50) + 100 self.temperature[0] = numpy.random.normal(size=50) self.temperature[1] = numpy.random.normal(size=50) self.temperature[2] = numpy.random.normal(size=50) self.pressure[0] = numpy.random.uniform(low=0.0, high=1.0, size=50) self.pressure[1] = numpy.random.uniform(low=0.0, high=1.0, size=50) self.pressure[2] = numpy.random.uniform(low=0.0, high=1.0, size=50) # provide the check_pieces mathod the size of the dataset so that it can do its checking.. self.sl = slice(0, 150) self.fnames = [ 0, ] * 3 for i in range(0, 3): self.fnames[i] = FileSystem.get_url(FS.TEMP, 'data%d.hdf5' % (i + 1)) for fname, s, t, p in zip(self.fnames, self.salinity, self.temperature, self.pressure): file = h5py.File(fname, 'w') grp1 = file.create_group('fields') dset1 = grp1.create_dataset("salinity", data=s) dset2 = grp1.create_dataset("temperature", data=t) dset3 = grp1.create_dataset("pressure", data=p) file.close() # Concatenate the test values for comparison: self.t_result = numpy.concatenate( (self.temperature[0], self.temperature[1], self.temperature[2]), axis=0) self.s_result = numpy.concatenate( (self.salinity[0], self.salinity[1], self.salinity[2]), axis=0) self.p_result = numpy.concatenate( (self.pressure[0], self.pressure[1], self.pressure[2]), axis=0)