Giter Club home page Giter Club logo

cfm's Introduction

Composable Fabric Manager ( CFM ) Software Suite


Overview

The CFM Software Suite provides a client interface for interacting with a Composable Memory Appliance (CMA). The software suite consists of a few components.

  • cfm-service is a Go language Linux service running in the background. It contains the main business logic for managing CMA memory. It provides a north-side (frontend) OpenAPI interface for client(s) and a south-side (backend) Redfish interface to manage available Composable Memory Appliances (CMAs) and CXL Hosts.
  • cfm-cli is a Go language interactive program providing cfm-service command line functionality to a single user. This will interact with the north-side (frontend) OpenAPI interface provided by cfm-service. It is intended to free the users of needing to use curl commands to directly interact with cfm-service's OpenAPI interface.
  • cfm-webui is a single-page application presenting a web UI using Vue.js 3. This will interact with the north-side (frontend) OpenAPI interface provided by cfm-service. This application is generally auto launched by cfm-service.
  • cxl-host is a linux service that runs directly on the cxl-host server. This will interact with the south-side (backend) Redfish interface of the cfm-service.

Quick Start

Setup

Docker

NOTE: If uncertain of which install option to use, the “install using the apt repository” option is a suggested option.

Installation\Operation

  • DOCKER - Information on running the CFM Software Suite from within a Docker container

Build locally

  • User must run 'make generate' to generate all supporting files from the api yaml before building local binaries.

Additional Project Documentation

  • README-SERVICE - README file for the cfm-service component
  • README-WEBUI - README file for the cfm-webui component
  • README-CLI - README file for the cfm-cli component
  • SETUP - Information on setting up a development environment
  • LOG - Information on logging level definations
  • TEMPLATES - Information on the template file used in openapi-generate for generating the go service

Known Issues

Here is a list of known issues that will be fixed in a future release:

  • CFM\Hardware Re-synchronization
    • Currently, if a registered CMA blade is power-cycled, the cfm-service has no way to automatically detect this action.
    • A resync webui button (and cli cmd) have been provided to give the user manual control to force the service to update itself against the hardware (since it is assumed that the user is aware of the power cycle action).
  • During startup, possible CFM response delay (via the WebUI\CLI tool)
    • During cfm-service initialization, it re-register(s) with previously registered CMA and CXL-Host hardware.
    • This can take some time, depending on how many devices are involved.
      • A single blade takes ~5-10 sec to register\connect.
    • There is currently no user feedback while this action is occurring (other than checking the docker service logs, docker logs <container_name>, in real time), so the user will need to wait before attempting any actions via the WebUI or CLI tools.
    • For the WebUI, use the browser's refresh button when attempting to see if this service inialization is complete.

cfm's People

Contributors

hj-fan avatar meng-20 avatar scott-howe-1 avatar

Stargazers

 avatar  avatar

Watchers

Muhammad Ahmad avatar Joe Skazinski avatar Shailesh Vaidya avatar  avatar  avatar

Forkers

hj-fan

cfm's Issues

Code Security Report: 9 total findings

Code Security Report

Scan Metadata

Latest Scan: 2024-08-07 08:01pm
Total Findings: 9 | New Findings: 0 | Resolved Findings: 0
Tested Project Files: 141
Detected Programming Languages: 2 (JavaScript / TypeScript*, Go)

  • Check this box to manually trigger a scan

Finding Details

SeverityVulnerability TypeCWEFileData FlowsDate
MediumHeap Inspection

CWE-244

flags.go:113

12024-06-25 09:18pm
Vulnerable Code

HOST_PASSWORD_DFLT string = "admin12345"

Secure Code Warrior Training Material
 
MediumHeap Inspection

CWE-244

flags.go:99

12024-06-25 09:18pm
Vulnerable Code

APPLIANCE_PASSWORD_DFLT string = "dummypswd"

Secure Code Warrior Training Material
 
MediumHeap Inspection

CWE-244

flags.go:22

12024-06-25 09:18pm
Vulnerable Code

PASSWORD string = "password"

Secure Code Warrior Training Material
 
MediumHeap Inspection

CWE-244

common.go:62

12024-06-25 09:18pm
Vulnerable Code

Secure Code Warrior Training Material
 
MediumHeap Inspection

CWE-244

flags.go:106

12024-06-25 09:18pm
Vulnerable Code

BLADE_PASSWORD_DFLT string = "0penBmc"

Secure Code Warrior Training Material
 
MediumHeap Inspection

CWE-244

flags.go:56

12024-06-25 09:18pm
Vulnerable Code

DEVICE_PASSWORD_SH string = "W"

Secure Code Warrior Training Material
 
MediumHeap Inspection

CWE-244

flags.go:55

12024-06-25 09:18pm
Vulnerable Code

DEVICE_PASSWORD string = DEVICE + "-" + PASSWORD

Secure Code Warrior Training Material
 
MediumHeap Inspection

CWE-244

accounts.go:33

12024-06-18 04:13pm
Vulnerable Code

Password string `json:"password"`

Secure Code Warrior Training Material
 
MediumHeap Inspection

CWE-244

accounts.go:23

12024-06-18 04:13pm
Vulnerable Code

DefaultPassword string = "admin12345"

Secure Code Warrior Training Material

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.