|
|
|
|
@ -7,42 +7,34 @@ const core = getCore();
|
|
|
|
|
class PluginChecker {
|
|
|
|
|
public static async check(plugin: SupportedPlugins): Promise<boolean> {
|
|
|
|
|
const serverHost = core.config.backendAPI.slice(0, -7);
|
|
|
|
|
const isReachable = async (url: string): Promise<boolean> => {
|
|
|
|
|
try {
|
|
|
|
|
await core.server.request(url);
|
|
|
|
|
return true;
|
|
|
|
|
} catch (error) {
|
|
|
|
|
if (error.code === 404) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
switch (plugin) {
|
|
|
|
|
case SupportedPlugins.GIT_INTEGRATION: {
|
|
|
|
|
const response = await fetch(`${serverHost}/git/repository/meta/get`);
|
|
|
|
|
if (response.ok) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
return isReachable(`${serverHost}/git/repository/meta/get`);
|
|
|
|
|
}
|
|
|
|
|
case SupportedPlugins.AUTO_ANNOTATION: {
|
|
|
|
|
const response = await fetch(`${serverHost}/auto_annotation/meta/get`);
|
|
|
|
|
if (response.ok) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
return isReachable(`${serverHost}/auto_annotation/meta/get`);
|
|
|
|
|
}
|
|
|
|
|
case SupportedPlugins.TF_ANNOTATION: {
|
|
|
|
|
const response = await fetch(`${serverHost}/tensorflow/annotation/meta/get`);
|
|
|
|
|
if (response.ok) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
return isReachable(`${serverHost}/tensorflow/annotation/meta/get`);
|
|
|
|
|
}
|
|
|
|
|
case SupportedPlugins.TF_SEGMENTATION: {
|
|
|
|
|
const response = await fetch(`${serverHost}/tensorflow/segmentation/meta/get`);
|
|
|
|
|
if (response.ok) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
return isReachable(`${serverHost}/tensorflow/segmentation/meta/get`);
|
|
|
|
|
}
|
|
|
|
|
case SupportedPlugins.ANALYTICS: {
|
|
|
|
|
const response = await fetch(`${serverHost}/analytics/app/kibana`);
|
|
|
|
|
if (response.ok) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
return isReachable(`${serverHost}/analytics/app/kibana`);
|
|
|
|
|
}
|
|
|
|
|
default:
|
|
|
|
|
return false;
|
|
|
|
|
|