Example #1
0
def main():
    if (len(sys.argv) > 1):
        if sys.argv[1] == "check":
            idl_path = parse(sys.argv[2:], 'i:', ["idl="])[0]
            #To do: call api
            dds = DDSConnector(idl_path)
            if dds.IsIDLValid():
                print("valid")
            else:
                print("invalid")
        elif sys.argv[1] == "run":
            config = configparser.ConfigParser()
            config.read_file(open(parse(sys.argv[2:], 'c:', ["config="])[0]))
            if config['common']['converter'] == 'dds':
                if config['dds']['mode'] == 'subscriber':
                    dtStore = DataStore(db_name=config['common']['package_id'])

                    dtStore.AddDataToCollection(
                        "file_idl",
                        json_obj={
                            "id":
                            dtStore.AddFileToDB(config['dds']['file_idl'])
                        })
                    dtStore.AddDataToCollection(
                        "network_config",
                        json_obj={
                            "id":
                            dtStore.AddFileToDB(
                                config['dds']['network_config'])
                        })

                    ckan = CKANConnector(config['common']['ckan_sever'],
                                         config['common']['api_token'],
                                         config['common']['resource_id'],
                                         config['common']['package_id'])
                    ckan.CreateResource(config['dds']['file_idl'],
                                        "The idl file")
                    ckan.CreateResource(config['dds']['network_config'],
                                        "The network config file")
                    x = threading.Thread(target=ReceiveStreamData,
                                         args=[dtStore, ckan],
                                         daemon=True)
                    x.start()
                dds = DDSConnector(config['dds']['file_idl'],
                                   config['dds']['topic_name'],
                                   config['dds']['network_config'],
                                   config['dds']['mode'])
                dds.Build()
                dds.Run()
        elif sys.argv[1] == "publish_example":
            DDSConnector().PublishExample()
        else:
            print(sys.argv)
            print(USAGE)
    else:
        print(sys.argv)
        print(USAGE)