Skip to content

Commit

Permalink
#4 model/server modified, #1 ref data initiated but not functionnal, …
Browse files Browse the repository at this point in the history
…boavizta_db added to ref dictionary
  • Loading branch information
benjaminlebigot committed Dec 2, 2021
1 parent 3a6bb24 commit 5c10277
Show file tree
Hide file tree
Showing 4 changed files with 1,344 additions and 58 deletions.
108 changes: 52 additions & 56 deletions api/model/server.py
Original file line number Diff line number Diff line change
@@ -1,57 +1,53 @@
import json


class Server:
def __init__(self):
self.brand = None
self.name = None
self.price = None
self.weight = None
self.height = None
self.type = None

self.cpu_number = None
self.cpu_die = None
self.cpu_core_number = None

self.ram_capacity = None
self.ram_strip_quantity = None
self.ram_die = None

self.hdd_number = None

self.ssd_capacity = None
self.ssd_quantity = None
self.ssd_die = None

self.power_supply_number = None
self.power_supply_weight = None


def server_mapper(server_dto):
# TODO: check consistency of the server_json and throw error
server = Server()
if server_dto.get("model") is not None:
server.brand = server_dto.get("model").get("brand")
server.name = server_dto.get("model").get("name")
server.weight = server_dto.get("model").get("weight")
server.height = server_dto.get("model").get("height")
server.type = server_dto.get("model").get("type")

if server_dto.get("configuration") is not None:
if server_dto.get("configuration").get("cpu") is not None:
server.cpu_number = server_dto.get("configuration").get("cpu").get("number")
server.cpu_die = server_dto.get("configuration").get("cpu").get("die")
server.cpu_core_number = server_dto.get("configuration").get("cpu").get("core_number")
if server_dto.get("configuration").get("ram") is not None:
server.ram_capacity = server_dto.get("configuration").get("ram").get("capacity")
server.ram_strip_quantity = server_dto.get("configuration").get("ram").get("quantity")
server.ram_die = server_dto.get("configuration").get("ram").get("die")
if server_dto.get("configuration").get("hdd") is not None:
server.hdd_number = server_dto.get("configuration").get("hdd").get("number")
if server_dto.get("configuration").get("ssd") is not None:
server.ssd_capacity = server_dto.get("configuration").get("ssd").get("capacity")
server.ssd_quantity = server_dto.get("configuration").get("ssd").get("quantity")
server.ssd_die = server_dto.get("configuration").get("ssd").get("die")

return server
from pydantic import BaseModel
from typing import Optional, List

class Model_server(BaseModel):
manufacturer: Optional[str] = None
name: Optional[str] = None
type_: Optional[str] = None
year:Optional[str] = None

class Power_supply(BaseModel):
units :Optional[str] = None
unit_weight :Optional[str] = None

class Disk(BaseModel):
units :Optional[str] = None
type_ : Optional[str] = None
capacity :Optional[str] = None
density :Optional[str] = None
manufacturer: Optional[str] = None
manuf_date: Optional[str] = None
model : Optional[str] = None

class Ram(BaseModel):
units:Optional[str] = None
capacity:Optional[str] = None
density:Optional[str] = None
manufacturer : Optional[str] = None
manuf_date : Optional[str] = None
model: Optional[str] = None
integrator : Optional[str] = None

class Cpu(BaseModel):
units :Optional[str] = None
core_units:Optional[str] = None
die_size :Optional[str] = None
manufacturer : Optional[str] = None
manuf_date : Optional[str] = None
model : Optional[str] = None
cpu_family: Optional[str] = None

class Configuration_server(BaseModel):
cpu : Optional[Cpu] = None
ram : Optional[List[Ram]] = None
disk : Optional[List[Disk]] = None
power_supply : Optional[Power_supply] = None

class Server(BaseModel):
model : Model_server
configuration : Configuration_server

add_method : Optional[str] = None
add_date : Optional[str] = None
11 changes: 9 additions & 2 deletions api/route/server_route.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,21 @@

from api.model.server import server_mapper
from api.service.server_impact.bottom_up.bottom_up import bottom_up_server
from api.service.server_impact.ref import ref

server_api = Blueprint('server_api', __name__, url_prefix='/v1/server')


@server_api.route('/ref-data', methods=['POST'])
@server_api.route('/ref_data', methods=['POST'])
def server_impact_ref_data():
# TODO: returns the closest server impact in the referenced data of Boavizta
return {}
server = server_mapper(request.json)
#impacts = ref_data_server(server).to_json()
print("\n\n Method : ref data \n\n")
impacts = ref.ref_data_server(server).to_json()


return impacts


@server_api.route('/bottom-up', methods=['POST'])
Expand Down
Loading

0 comments on commit 5c10277

Please sign in to comment.