Blame tools/extra/packager/metadata/metadata.py

Packit 534379
# Copyright(c) 2017, Intel Corporation
Packit 534379
#
Packit 534379
# Redistribution  and  use  in source  and  binary  forms,  with  or  without
Packit 534379
# modification, are permitted provided that the following conditions are met:
Packit 534379
#
Packit 534379
# * Redistributions of  source code  must retain the  above copyright notice,
Packit 534379
#  this list of conditions and the following disclaimer.
Packit 534379
# * Redistributions in binary form must reproduce the above copyright notice,
Packit 534379
#  this list of conditions and the following disclaimer in the documentation
Packit 534379
#   and/or other materials provided with the distribution.
Packit 534379
# * Neither the name  of Intel Corporation  nor the names of its contributors
Packit 534379
#   may be used to  endorse or promote  products derived  from this  software
Packit 534379
#   without specific prior written permission.
Packit 534379
#
Packit 534379
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Packit 534379
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,  BUT NOT LIMITED TO,  THE
Packit 534379
# IMPLIED WARRANTIES OF  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
Packit 534379
# ARE DISCLAIMED.  IN NO EVENT  SHALL THE COPYRIGHT OWNER  OR CONTRIBUTORS BE
Packit 534379
# LIABLE  FOR  ANY  DIRECT,  INDIRECT,  INCIDENTAL,  SPECIAL,  EXEMPLARY,  OR
Packit 534379
# CONSEQUENTIAL  DAMAGES  (INCLUDING,  BUT  NOT LIMITED  TO,  PROCUREMENT  OF
Packit 534379
# SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE,  DATA, OR PROFITS;  OR BUSINESS
Packit 534379
# INTERRUPTION)  HOWEVER CAUSED  AND ON ANY THEORY  OF LIABILITY,  WHETHER IN
Packit 534379
# CONTRACT,  STRICT LIABILITY,  OR TORT  (INCLUDING NEGLIGENCE  OR OTHERWISE)
Packit 534379
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,  EVEN IF ADVISED OF THE
Packit 534379
# POSSIBILITY OF SUCH DAMAGE.
Packit 534379
Packit 534379
import json
Packit 534379
from . import constants
Packit 534379
import struct
Packit 534379
from collections import OrderedDict
Packit 534379
Packit 534379
"""  This is the entrypoint for generating the metadata
Packit 534379
"""
Packit 534379
Packit 534379
Packit 534379
def get_metadata(afu_json):
Packit 534379
    ret_list = []
Packit 534379
Packit 534379
    ret_list.extend(list(constants.METADATA_GUID))
Packit 534379
Packit 534379
    if len(afu_json) != 0:
Packit 534379
        ret_list.extend(pack_int_to_buf(len(json.dumps(afu_json))))
Packit 534379
        ret_list.extend(list(json.dumps(afu_json)))
Packit 534379
Packit 534379
    else:
Packit 534379
        ret_list.extend(pack_int_to_buf(0))
Packit 534379
Packit 534379
    return ret_list
Packit 534379
Packit 534379
Packit 534379
def pack_int_to_buf(val):
Packit 534379
    pack_format = "
Packit 534379
    buf = struct.pack(pack_format, val)
Packit 534379
    return list(buf)