public ModelArchive registerModel()

in frontend/server/src/main/java/com/amazonaws/ml/mms/wlm/ModelManager.java [86:142]


    public ModelArchive registerModel(
            String url,
            String modelName,
            Manifest.RuntimeType runtime,
            String handler,
            int batchSize,
            int maxBatchDelay,
            int responseTimeout,
            String defaultModelName,
            String preloadModel)
            throws ModelException, IOException, InterruptedException, ExecutionException,
                    TimeoutException {

        ModelArchive archive = ModelArchive.downloadModel(configManager.getModelStore(), url);
        if (modelName == null || modelName.isEmpty()) {
            if (archive.getModelName() == null || archive.getModelName().isEmpty()) {
                archive.getManifest().getModel().setModelName(defaultModelName);
            }
            modelName = archive.getModelName();
        } else {
            archive.getManifest().getModel().setModelName(modelName);
        }
        if (runtime != null) {
            archive.getManifest().setRuntime(runtime);
        }
        if (handler != null) {
            archive.getManifest().getModel().setHandler(handler);
        } else if (archive.getHandler() == null || archive.getHandler().isEmpty()) {
            archive.getManifest()
                    .getModel()
                    .setHandler(configManager.getMmsDefaultServiceHandler());
        }

        archive.validate();

        Model model = new Model(archive, configManager.getJobQueueSize(), preloadModel);
        model.setBatchSize(batchSize);
        model.setMaxBatchDelay(maxBatchDelay);
        model.setResponseTimeout(responseTimeout);
        Model existingModel = models.putIfAbsent(modelName, model);
        if (existingModel != null) {
            // model already exists
            throw new ConflictStatusException("Model " + modelName + " is already registered.");
        }

        if (configManager.isDebug()) {
            model.setPort(9000);
        } else {
            startBackendServer(model);
        }

        models.put(modelName, model);

        logger.info("Model {} loaded.", model.getModelName());

        return archive;
    }