Commit d41f24f8 authored by Wei Shoulin's avatar Wei Shoulin
Browse files

brick

parent e76c47ac
...@@ -6,7 +6,7 @@ This package provides APIs to access csst's files and databases. ...@@ -6,7 +6,7 @@ This package provides APIs to access csst's files and databases.
## Installation ## Installation
`csst-dfs-api` can be installed with the following command: `csst-dfs-api` can be installed with the following command:
```bash ```bash
git clone https://github.com/astronomical-data-processing/csst-dfs-api.git git clone https://github.com/astronomical-data-processing/csst-dfs-api.git
...@@ -20,11 +20,11 @@ python setup.py install ...@@ -20,11 +20,11 @@ python setup.py install
```bash ```bash
sh -c "$(curl -fsSL https://raw.fastgit.org/astronomical-data-processing/csst-dfs-api/master/tools/csst-dfs-api-install.sh)" sh -c "$(curl -fsSL https://raw.fastgit.org/astronomical-data-processing/csst-dfs-api/master/tools/csst-dfs-api-install.sh)"
``` ```
## Configuration ## Configuration
enviroment variables enviroment variables
- CSST_DFS_API_MODE = local or cluster # default: local - CSST_DFS_API_MODE = local or cluster # default: local
- CSST_LOCAL_FILE_ROOT = [a local file directory] # required if DFS_API_MODE = local, default: /opt/temp/csst - CSST_LOCAL_FILE_ROOT = [a local file directory] # required if DFS_API_MODE = local, default: /opt/temp/csst
- CSST_DFS_GATEWAY = [gateway server's address] # required if DFS_API_MODE = cluster - CSST_DFS_GATEWAY = [gateway server's address] # required if DFS_API_MODE = cluster
from ..ifs.calmerge import CalMergeApi
from .detector import DetectorApi from .detector import DetectorApi
from .level0 import Level0DataApi from .brick import BrickApi
from .level0prc import Level0PrcApi from .level2producer import Level2ProducerApi
from .observation import ObservationApi from .observation import ObservationApi
\ No newline at end of file
from ..common.delegate import Delegate
class BrickApi(object):
"""
Brick Data Operation API
"""
def __init__(self):
self.pymodule = Delegate().load(sub_module = "facility")
self.stub = getattr(self.pymodule, "BrickApi")()
def find(self, **kwargs):
''' retrieve brick records from database
:param kwargs: Parameter dictionary, support:
limit: limits returns the number of records,default 0:no-limit
:returns: csst_dfs_common.models.Result
'''
return self.stub.find(**kwargs)
def get(self, **kwargs):
''' fetch a record from database
:param kwargs: Parameter dictionary, key items support:
id : [int]
:returns: csst_dfs_common.models.Result
'''
return self.stub.get(**kwargs)
def write(self, **kwargs):
''' insert a brick data record into database
:param kwargs: Parameter dictionary, key items support:
ra = [float]\n
dec = [float]\n
boundingbox = [str]
:returns: csst_dfs_common.models.Result
'''
return self.stub.write(**kwargs)
def find_obs_status(self, **kwargs):
''' find observation status of bricks
:param kwargs: Parameter dictionary, support:
brick_id = [int]\n
band = [string]
:returns: csst_dfs_common.models.Result
'''
return self.stub.find_obs_status(**kwargs)
def find_level1_data(self, **kwargs):
''' find level1 data
:param kwargs: Parameter dictionary, support:
brick_id = [int]\n
level1_id = [int]\n
module = [str]
:returns: csst_dfs_common.models.Result
'''
return self.stub.find_level1_data(**kwargs)
\ No newline at end of file
from ..common.delegate import Delegate
class Level2ProducerApi(object):
"""
Level 0 Data Operation API
"""
def __init__(self):
self.pymodule = Delegate().load(sub_module = "facility")
self.stub = getattr(self.pymodule, "Level2ProducerApi")()
def register(self, **kwargs):
''' register a Level2Producer data record into database
:param kwargs: Parameter dictionary, key items support:
name = [str]\n
gitlink = [str]\n
paramfiles = [str]\n
priority = [int]\n
pre_producers = list[int]
:returns: csst_dfs_common.models.Result
'''
return self.stub.register(**kwargs)
def find(self, **kwargs):
''' retrieve Level2Producer records from database
:param kwargs: Parameter dictionary, key items support:
key: [str]
limit: limits returns the number of records,default 0:no-limit
:returns: csst_dfs_common.models.Result
'''
return self.stub.find(**kwargs)
def get(self, **kwargs):
''' fetch a record from database
:param kwargs: Parameter dictionary, key items support:
id : [int]
:returns: csst_dfs_common.models.Result
'''
return self.stub.get(**kwargs)
def find_nexts(self, **kwargs):
''' retrieve Level2Producer records from database
:param kwargs: Parameter dictionary, key items support:
id : [int]
:returns: csst_dfs_common.models.Result
'''
return self.stub.find_nexts(**kwargs)
def find_start(self, **kwargs):
''' retrieve Level2Producer records from database
:param kwargs: Parameter dictionary, key items support:
key : [str]
:returns: csst_dfs_common.models.Result
'''
return self.stub.find_nexts(**kwargs)
def update(self, **kwargs):
''' update a Level2Producer
:param kwargs: Parameter dictionary, key items support:
id : [int]\n
name = [str]\n
gitlink = [str]\n
paramfiles = [str]\n
priority = [int]\n
pre_producers = list[int]
:returns: csst_dfs_common.models.Result
'''
return self.stub.update(**kwargs)
def delete(self, **kwargs):
''' delete a Level2Producer data
:param kwargs: Parameter dictionary, key items support:
id = [int]
:returns: csst_dfs_common.models.Result
'''
return self.stub.delete(**kwargs)
def new_job(self, **kwargs):
''' new a Level2Producer Job
:param kwargs: Parameter dictionary, key items support:
dag = [str]
:returns: csst_dfs_common.models.Result
'''
return self.stub.new_job(**kwargs)
def get_job(self, **kwargs):
''' fetch a record from database
:param kwargs: Parameter dictionary, key items support:
id : [int]
:returns: csst_dfs_common.models.Result
'''
return self.stub.get_job(**kwargs)
def update_job(self, **kwargs):
''' update a Level2Producer Job
:param kwargs: Parameter dictionary, key items support:
id = [int]
dag = [str]
status = [int]
:returns: csst_dfs_common.models.Result
'''
return self.stub.new_job(**kwargs)
def new_running(self, **kwargs):
''' insert a Level2ProducerRuningRecord data
:param kwargs: Parameter dictionary, key items support:
job_id = [int]\n
producer_id = [int]\n
brick_id = [int]\n
start_time = [str]\n
end_time = [str]\n
prc_status = [int]\n
prc_result = [str]
:returns: csst_dfs_common.models.Result
'''
return self.stub.new_running(**kwargs)
def get_running(self, **kwargs):
''' fetch a record from database
:param kwargs: Parameter dictionary, key items support:
id : [int]
:returns: csst_dfs_common.models.Result
'''
return self.stub.get_running(**kwargs)
def update_running(self, **kwargs):
''' udpate a Level2ProducerRuningRecord data
:param kwargs: Parameter dictionary, key items support:
id = [int]\n
job_id = [int]\n
producer_id = [int]\n
brick_id = [int]\n
start_time = [str]\n
end_time = [str]\n
prc_status = [int]\n
prc_result = [str]
:returns: csst_dfs_common.models.Result
'''
return self.stub.update_running(**kwargs)
def find_running(self, **kwargs):
''' find Level2ProducerRuningRecord data
:param kwargs: Parameter dictionary, key items support:
job_id = [int]\n
producer_id = [int]\n
brick_id = [int]\n
prc_status = [int]\n
create_time : (start, end)\n
limit = [int]
:returns: csst_dfs_common.models.Result
'''
return self.stub.find_running(**kwargs)
from .level1 import Level1DataApi from .calmerge import CalMergeApi
\ No newline at end of file from .level0 import Level0DataApi
from .level0prc import Level0PrcApi
from .level1 import Level1DataApi
from .level1prc import Level1PrcApi
\ No newline at end of file
...@@ -6,7 +6,7 @@ class CalMergeApi(object): ...@@ -6,7 +6,7 @@ class CalMergeApi(object):
Level 0 Data Operation API Level 0 Data Operation API
""" """
def __init__(self): def __init__(self):
self.pymodule = Delegate().load(sub_module = "facility") self.pymodule = Delegate().load(sub_module = "ifs")
self.stub = getattr(self.pymodule, "CalMergeApi")() self.stub = getattr(self.pymodule, "CalMergeApi")()
def find(self, **kwargs): def find(self, **kwargs):
......
from .calmerge import CalMergeApi
from .level0 import Level0DataApi
from .level0prc import Level0PrcApi
from .level1 import Level1DataApi
from .level1prc import Level1PrcApi
\ No newline at end of file
from .level1 import Level1DataApi from .calmerge import CalMergeApi
\ No newline at end of file from .level0 import Level0DataApi
from .level0prc import Level0PrcApi
from .level1 import Level1DataApi
from .level1prc import Level1PrcApi
from .level2catalog import Level2CatalogApi
\ No newline at end of file
from .calmerge import CalMergeApi
from .level0 import Level0DataApi
from .level0prc import Level0PrcApi
from .level1 import Level1DataApi from .level1 import Level1DataApi
from .level1prc import Level1PrcApi
from .level2spectra import Level2SpectraApi from .level2spectra import Level2SpectraApi
\ No newline at end of file
...@@ -2,4 +2,8 @@ ...@@ -2,4 +2,8 @@
Introduction Introduction
************ ************
This package provides APIs to access CSST's files and databases. This package provides APIs to access CSST's files and databases.
\ No newline at end of file
.. image:: _static/csst_arch-API.jpg
:align: center
:alt: Architecture
\ No newline at end of file
...@@ -4,10 +4,10 @@ csst\_dfs\_api.facility package ...@@ -4,10 +4,10 @@ csst\_dfs\_api.facility package
Submodules Submodules
---------- ----------
csst\_dfs\_api.facility.calmerge module csst\_dfs\_api.facility.brick module
--------------------------------------- ------------------------------------
.. automodule:: csst_dfs_api.facility.calmerge .. automodule:: csst_dfs_api.facility.brick
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
...@@ -20,18 +20,10 @@ csst\_dfs\_api.facility.detector module ...@@ -20,18 +20,10 @@ csst\_dfs\_api.facility.detector module
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
csst\_dfs\_api.facility.level0 module csst\_dfs\_api.facility.level2producer module
------------------------------------- ---------------------------------------------
.. automodule:: csst_dfs_api.facility.level0
:members:
:undoc-members:
:show-inheritance:
csst\_dfs\_api.facility.level0prc module
----------------------------------------
.. automodule:: csst_dfs_api.facility.level0prc .. automodule:: csst_dfs_api.facility.level2producer
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
......
...@@ -4,6 +4,30 @@ csst\_dfs\_api.ifs package ...@@ -4,6 +4,30 @@ csst\_dfs\_api.ifs package
Submodules Submodules
---------- ----------
csst\_dfs\_api.ifs.calmerge module
----------------------------------
.. automodule:: csst_dfs_api.ifs.calmerge
:members:
:undoc-members:
:show-inheritance:
csst\_dfs\_api.ifs.level0 module
--------------------------------
.. automodule:: csst_dfs_api.ifs.level0
:members:
:undoc-members:
:show-inheritance:
csst\_dfs\_api.ifs.level0prc module
-----------------------------------
.. automodule:: csst_dfs_api.ifs.level0prc
:members:
:undoc-members:
:show-inheritance:
csst\_dfs\_api.ifs.level1 module csst\_dfs\_api.ifs.level1 module
-------------------------------- --------------------------------
...@@ -12,6 +36,14 @@ csst\_dfs\_api.ifs.level1 module ...@@ -12,6 +36,14 @@ csst\_dfs\_api.ifs.level1 module
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
csst\_dfs\_api.ifs.level1prc module
-----------------------------------
.. automodule:: csst_dfs_api.ifs.level1prc
:members:
:undoc-members:
:show-inheritance:
Module contents Module contents
--------------- ---------------
......
csst\_dfs\_api.mci package csst\_dfs\_api.mci package
========================== ==========================
Submodules
----------
csst\_dfs\_api.mci.calmerge module
----------------------------------
.. automodule:: csst_dfs_api.mci.calmerge
:members:
:undoc-members:
:show-inheritance:
csst\_dfs\_api.mci.level0 module
--------------------------------
.. automodule:: csst_dfs_api.mci.level0
:members:
:undoc-members:
:show-inheritance:
csst\_dfs\_api.mci.level0prc module
-----------------------------------
.. automodule:: csst_dfs_api.mci.level0prc
:members:
:undoc-members:
:show-inheritance:
csst\_dfs\_api.mci.level1 module
--------------------------------
.. automodule:: csst_dfs_api.mci.level1
:members:
:undoc-members:
:show-inheritance:
csst\_dfs\_api.mci.level1prc module
-----------------------------------
.. automodule:: csst_dfs_api.mci.level1prc
:members:
:undoc-members:
:show-inheritance:
Module contents Module contents
--------------- ---------------
......
...@@ -4,6 +4,30 @@ csst\_dfs\_api.msc package ...@@ -4,6 +4,30 @@ csst\_dfs\_api.msc package
Submodules Submodules
---------- ----------
csst\_dfs\_api.msc.calmerge module
----------------------------------
.. automodule:: csst_dfs_api.msc.calmerge
:members:
:undoc-members:
:show-inheritance:
csst\_dfs\_api.msc.level0 module
--------------------------------
.. automodule:: csst_dfs_api.msc.level0
:members:
:undoc-members:
:show-inheritance:
csst\_dfs\_api.msc.level0prc module
-----------------------------------
.. automodule:: csst_dfs_api.msc.level0prc
:members:
:undoc-members:
:show-inheritance:
csst\_dfs\_api.msc.level1 module csst\_dfs\_api.msc.level1 module
-------------------------------- --------------------------------
...@@ -12,6 +36,22 @@ csst\_dfs\_api.msc.level1 module ...@@ -12,6 +36,22 @@ csst\_dfs\_api.msc.level1 module
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
csst\_dfs\_api.msc.level1prc module
-----------------------------------
.. automodule:: csst_dfs_api.msc.level1prc
:members:
:undoc-members:
:show-inheritance:
csst\_dfs\_api.msc.level2catalog module
---------------------------------------
.. automodule:: csst_dfs_api.msc.level2catalog
:members:
:undoc-members:
:show-inheritance:
Module contents Module contents
--------------- ---------------
......
...@@ -14,6 +14,7 @@ Subpackages ...@@ -14,6 +14,7 @@ Subpackages
csst_dfs_api.ifs csst_dfs_api.ifs
csst_dfs_api.mci csst_dfs_api.mci
csst_dfs_api.msc csst_dfs_api.msc
csst_dfs_api.sls
Module contents Module contents
--------------- ---------------
......
csst\_dfs\_api.sls package
==========================
Submodules
----------
csst\_dfs\_api.sls.calmerge module
----------------------------------
.. automodule:: csst_dfs_api.sls.calmerge
:members:
:undoc-members:
:show-inheritance:
csst\_dfs\_api.sls.level0 module
--------------------------------
.. automodule:: csst_dfs_api.sls.level0
:members:
:undoc-members:
:show-inheritance:
csst\_dfs\_api.sls.level0prc module
-----------------------------------
.. automodule:: csst_dfs_api.sls.level0prc
:members:
:undoc-members:
:show-inheritance:
csst\_dfs\_api.sls.level1 module
--------------------------------
.. automodule:: csst_dfs_api.sls.level1
:members:
:undoc-members:
:show-inheritance:
csst\_dfs\_api.sls.level1prc module
-----------------------------------
.. automodule:: csst_dfs_api.sls.level1prc
:members:
:undoc-members:
:show-inheritance:
csst\_dfs\_api.sls.level2spectra module
---------------------------------------
.. automodule:: csst_dfs_api.sls.level2spectra
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: csst_dfs_api.sls
:members:
:undoc-members:
:show-inheritance:
from csst_dfs_api.facility.level0 import Level0DataApi from csst_dfs_api.facility.brick import Level0DataApi
api = Level0DataApi() api = Level0DataApi()
......
import os
import unittest
from csst_dfs_api.facility.brick import BrickApi
class FacilityBrickTestCase(unittest.TestCase):
def setUp(self):
self.api = BrickApi()
def test_find(self):
recs = self.api.find(module_id="MSC",limit = 0)
print('find:', recs)
def test_get(self):
rec = self.api.get(id=17)
print('get:', rec)
rec = self.api.get(obs_id='0000017')
print('get:', rec)
def test_update_proc_status(self):
rec = self.api.update_proc_status(obs_id='0000017', status = 3, )
print('update_proc_status:', rec)
def test_update_qc0_status(self):
rec = self.api.update_qc0_status(obs_id='0000017', status = 3, )
print('update_qc0_status:', rec)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment