Merge branch 'fix/import-old-dsl' into dev/plugin-deploy
This commit is contained in:
commit
f0098d17ed
@ -197,3 +197,9 @@ class PluginDependency(BaseModel):
|
|||||||
|
|
||||||
type: Type
|
type: Type
|
||||||
value: Github | Marketplace | Package
|
value: Github | Marketplace | Package
|
||||||
|
current_identifier: Optional[str] = None
|
||||||
|
|
||||||
|
|
||||||
|
class MissingPluginDependency(BaseModel):
|
||||||
|
plugin_unique_identifier: str
|
||||||
|
current_identifier: Optional[str] = None
|
||||||
|
@ -3,6 +3,7 @@ from collections.abc import Sequence
|
|||||||
from core.plugin.entities.bundle import PluginBundleDependency
|
from core.plugin.entities.bundle import PluginBundleDependency
|
||||||
from core.plugin.entities.plugin import (
|
from core.plugin.entities.plugin import (
|
||||||
GenericProviderID,
|
GenericProviderID,
|
||||||
|
MissingPluginDependency,
|
||||||
PluginDeclaration,
|
PluginDeclaration,
|
||||||
PluginEntity,
|
PluginEntity,
|
||||||
PluginInstallation,
|
PluginInstallation,
|
||||||
@ -175,14 +176,16 @@ class PluginInstallationManager(BasePluginManager):
|
|||||||
headers={"Content-Type": "application/json"},
|
headers={"Content-Type": "application/json"},
|
||||||
)
|
)
|
||||||
|
|
||||||
def fetch_missing_dependencies(self, tenant_id: str, plugin_unique_identifiers: list[str]) -> list[str]:
|
def fetch_missing_dependencies(
|
||||||
|
self, tenant_id: str, plugin_unique_identifiers: list[str]
|
||||||
|
) -> list[MissingPluginDependency]:
|
||||||
"""
|
"""
|
||||||
Fetch missing dependencies
|
Fetch missing dependencies
|
||||||
"""
|
"""
|
||||||
return self._request_with_plugin_daemon_response(
|
return self._request_with_plugin_daemon_response(
|
||||||
"POST",
|
"POST",
|
||||||
f"plugin/{tenant_id}/management/installation/missing",
|
f"plugin/{tenant_id}/management/installation/missing",
|
||||||
list[str],
|
list[MissingPluginDependency],
|
||||||
data={"plugin_unique_identifiers": plugin_unique_identifiers},
|
data={"plugin_unique_identifiers": plugin_unique_identifiers},
|
||||||
headers={"Content-Type": "application/json"},
|
headers={"Content-Type": "application/json"},
|
||||||
)
|
)
|
||||||
|
@ -198,7 +198,7 @@ app_site_fields = {
|
|||||||
"use_icon_as_answer_icon": fields.Boolean,
|
"use_icon_as_answer_icon": fields.Boolean,
|
||||||
}
|
}
|
||||||
|
|
||||||
leaked_dependency_fields = {"type": fields.String, "value": fields.Raw}
|
leaked_dependency_fields = {"type": fields.String, "value": fields.Raw, "current_identifier": fields.String}
|
||||||
|
|
||||||
app_import_fields = {
|
app_import_fields = {
|
||||||
"id": fields.String,
|
"id": fields.String,
|
||||||
|
@ -45,15 +45,22 @@ class DependenciesAnalysisService:
|
|||||||
required_plugin_unique_identifiers.append(dependency.value.plugin_unique_identifier)
|
required_plugin_unique_identifiers.append(dependency.value.plugin_unique_identifier)
|
||||||
|
|
||||||
manager = PluginInstallationManager()
|
manager = PluginInstallationManager()
|
||||||
missing_plugin_unique_identifiers = manager.fetch_missing_dependencies(
|
|
||||||
tenant_id, required_plugin_unique_identifiers
|
# get leaked dependencies
|
||||||
)
|
missing_plugins = manager.fetch_missing_dependencies(tenant_id, required_plugin_unique_identifiers)
|
||||||
|
missing_plugin_unique_identifiers = {plugin.plugin_unique_identifier: plugin for plugin in missing_plugins}
|
||||||
|
|
||||||
leaked_dependencies = []
|
leaked_dependencies = []
|
||||||
for dependency in dependencies:
|
for dependency in dependencies:
|
||||||
unique_identifier = dependency.value.plugin_unique_identifier
|
unique_identifier = dependency.value.plugin_unique_identifier
|
||||||
if unique_identifier in missing_plugin_unique_identifiers:
|
if unique_identifier in missing_plugin_unique_identifiers:
|
||||||
leaked_dependencies.append(dependency)
|
leaked_dependencies.append(
|
||||||
|
PluginDependency(
|
||||||
|
type=dependency.type,
|
||||||
|
value=dependency.value,
|
||||||
|
current_identifier=missing_plugin_unique_identifiers[unique_identifier].current_identifier,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
return leaked_dependencies
|
return leaked_dependencies
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user