1. 14 Feb, 2018 6 commits
  2. 10 Feb, 2018 1 commit
  3. 08 Feb, 2018 7 commits
  4. 07 Feb, 2018 2 commits
    • add test case for agent resource tracker · 805f96d1
      Co-Authored-By: Dolpher Du <Dolpher.Du@intel.com>
      
      Change-Id: I17a69fca393367c4dc4d1fd27bcb4984d6ce6ad0
      Shaohe Feng committed
    • queens release doc fix part 1 · 2e78e10e
      More patches might follow
      
      Update 0(pacth 1):
      1.remove unnecessary files
      2.reorg doc directory
      
      Update 1(patch 2):
      add releasenotes and cleanup the internal-api spec
      
      Update 2(patch 3):
      1.added a new releasenote for generic-driver
      2.fixed errors in the other four earlier releasenotes
      3.add comment in cyborg/object/accelerator.py and deployable.py to
      let user better know the meanings of the table entries.
      
      Change-Id: I45a104f9f77a0a163008657c681cf109f941dd11
      Signed-off-by: zhipengh <huangzhipeng@huawei.com>
      zhipengh committed
  5. 05 Feb, 2018 3 commits
  6. 04 Feb, 2018 7 commits
    • Added Unit tests for object Accelerator and Deployable · 2ae19254
      Change-Id: I9cf93306e7770172a95825d320de15e2d60c4d45
      Li Liu committed
    • Merge "FPGA driver support" · 6ee7ed80
      Zuul committed
    • Add Cyborg SPDK Driver · 488cc340
      SPDKDRIVER is a virtual interface which provides common methods
      for specific drivers (such as: VHOSTDRIVER, NVMFDRIVER, etc.).
      For this reason, the Cyborg agent should invoke these drivers
      via py-spdk[0] to communicate with the backend SPDK-base app server.
      The py-spdk is management lib for SPDK applications which need to
      be imported into the cyborg, so we put the pyspdk lib into cyborg/
      cyborg/accelerator/drivers/spdk/util/. There are some unit tests
      we added in cyborg/cyborg/tests/unit/accelerator/drivers/spdk/.
      Now We are first implementing the unit tests of
      test_discover_accelerator() and test_accelerator_list(),
      and the rest will be added later.
      
      For example:
      When the Cyborg agent call the NVMFDRIVER.discover_accelerator(),
      the return value we get is:
      {
          'server': 'nvmf_tgt',
          'bdevs': [{
             "num_blocks": 131072,
             "name": "nvme1",
             "block_size": 512,
             ......
           }]
          'subsystems': [{
             "core": 0,
             "nqn": "nqn.2018-01.org.nvmexpress.discovery",
             "hosts": [],
             ......
           }]
      }
      
      [0] The implementation of py-spdk is subbmitted to
      https://review.gerrithub.io/#/c/379741/, please visit it.
      
      Change-Id: I2d0e4dc6b58e725584d22ee85961877a870c68a7
      heluwei committed
    • Implement FPGA data model and corresponding API · aee55527
      This patch implements the Deployables data model and provides corresponding
      CRUD REST/RPC API.
      
      Since the CREATE/UPDATE/DELETE method of Deployables should only be used
      by internal component, currently keep these in code is just for convenient
      test purpose, which will be removed later.
      
      blueprint cyborg-fpga-modelling
      
      Change-Id: I8a028954bd27d015c0b062f730673ea39701774d
      zhuli committed
    • FPGA driver support · 5b724229
      This patch is not a plugin implementation
      
      Cyborg agent can call driver as follow:
      from cyborg.accelerator.drivers.fpga import base
      fdriver = base.FPGADriver
       # There maybe more than one vendor fpga card on a host.
      venders = fdriver.discover_vendors()
      for v in venders:
          dr = fdriver.create(v)
          dr.discover()
      
      intel = base.FPGADriver.create("intel")
      intel.program("/fpga/device/path", "/local/path/image")
      
      When call IntelFPGADriver.discover(), we can get the result as follow:
          [{'assignable': False,
            'devices': '0000:5e:00.0',
            'function': 'pf',
            'parent_devices': '',
            'path': '/sys/class/fpga/intel-fpga-dev.0',
            'pr_num': '1',
            'product_id': '0xbcc0',
            'regions': [{'assignable': True,
              'devices': '0000:5e:00.1',
              'function': 'vf',
              'parent_devices': '0000:5e:00.0',
              'path': '/sys/class/fpga/intel-fpga-dev.2',
              'product_id': '0xbcc1',
              'vendor_id': '0x8086'}],
            'vendor_id': '0x8086'},
           {'assignable': True,
            'devices': '0000:be:00.0',
            'function': 'pf',
            'parent_devices': '',
            'path': '/sys/class/fpga/intel-fpga-dev.1',
            'pr_num': '0',
            'product_id': '0xbcc0',
            'vendor_id': '0x8086'}]
      
      Cyborg agent can use it to form it's DB.
      
      Co-Authored-By: Dolpher Du <Dolpher.Du@intel.com>
      
      Change-Id: I132be5ecdb90b385b68b0cdf306d1402ef4bfc04
      Shaohe Feng committed
    • aggent support resource tracker for FPGA · b96d0e25
      use PeriodicTasks to track resources.
      
      Info:
       https://docs.openstack.org/oslo.service/latest/reference/periodic_task.html
      
      Aggent is a bridge for FPGA driver and conductor.
      It gets the lastest informations and update them to conductor.
      
      This patch we call conductor API directly instead of object
      remotable method.  Will support it in the next version.
      
      This patch depends on the FPGA driver patch and conductor patch.
      
      How to test this patch:
      1. apply the fpga driver patch
         https://review.openstack.org/#/c/531129
      2. generate a sysfs fpga data
         $ ./cyborg/tests/unit/accelerator/drivers/fpga/intel/prepare_test_data.py
      3. Change the SYS_FPGA in cyborg/accelerator/drivers/fpga/intel/sysinfo.py to
         "/tmp/sys/class/fpga"
      4. change the SYS_FPGA_PATH in cyborg/accelerator/drivers/fpga/utils.py to
         "/tmp/sys/class/fpga"
      5. restart agent.
      
      The unittest for this patch will be in a separated patch, and comes out ASAP.
      
      Co-Authored-By: Dolpher Du <Dolpher.Du@intel.com>
      
      Change-Id: I5e487cf939aa65d0fc79399ddd5d1337a8c2fa98
      Shaohe Feng committed
  7. 03 Feb, 2018 1 commit
  8. 02 Feb, 2018 1 commit
  9. 31 Jan, 2018 1 commit
  10. 29 Jan, 2018 1 commit
    • Added NOVA Placement API Client and unit tests. · 34aa0b8b
      This feature is used for updating the placement DB on NOVA side
      Cyborg DB should be kept up to date with the placement DB all
      the time.
      
      Here is an example on how to use it:
      
          from cyborg.services import report as placement_report_client
          p_client = placement_report_client.SchedulerReportClient()
      
          resource_provider = {'name': 'rp_name', 'uuid': 'uuid'}
          p_client.create_resource_provider(resource_provider)
      
      Change-Id: I04f5e3fc283074212841e62dde54df496db535ec
      Li Liu committed
  11. 22 Jan, 2018 1 commit
  12. 18 Jan, 2018 1 commit
  13. 17 Jan, 2018 2 commits
  14. 16 Jan, 2018 3 commits
  15. 15 Jan, 2018 1 commit
  16. 13 Jan, 2018 1 commit
    • Supplementing accelerator CRUD api · b860aef1
      with this patch, we are able to do CRUD via accelerator api
      
      POST /accelerators
          Create a new accelerator
      GET /accelerators/{uuid}
          Retrieve information about the given accelerator
      GET /accelerators
          Retrieve a list of accelerators
      PATCH /accelerators/{uuid}
          Update information about the given accelerator
      DELETE /accelerators/{uuid}
          Delete the given accelerator
      
      Change-Id: Ibc97ec49f557cac69dfd38f99f28bc7b205732b9
      zhuli committed
  17. 12 Jan, 2018 1 commit