Skip to content

deployApps - version infos from MANIFEST are not taken into account #739

@VBlum

Description

@VBlum

Deploying libraries with deployApps.sh (Version 1.9.5) online works not correctly for libraries.

Extension-Name, Implementation-Version and Specification-Version from the MANIFEST.mf are not attached to the library name during the deployment as it is done for apps.

The MANIFEST.mf:

Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.3.0
Build-Jdk-Spec: 11
Extension-Name: xyz_lib_v1_jdk11_4.0
Implementation-Version: 4.0
Specification-Version: 1.0

The model:

appDeployments:
    Library:
        'xyz_lib_v1_jdk11':
            SourcePath: 'wlsdeploy/sharedLibraries/xyz_lib_v1_jdk11.war'
            Target: 'xxx_cluster'
            ModuleType: war
    Application:
        'xyz_v1_jdk11':
            SourcePath: 'wlsdeploy/applications/xyz_v1_jdk11.war'
            Target: 'xxx_cluster'
            ModuleType: war

The deploy command:

/home/oracle/weblogic-deploy/bin/deployApps.sh -oracle_home /u01/app/oracle/middleware -domain_type WLS -domain_home /u01/app/oracle/middleware/user_projects/domains/xyz_domain -archive_file xyz_v1.zip -model_file deploy_app.yaml -admin_url t3://n.nnn.nnn.nnn:nnnn -admin_user ABC`

The error message

 1. WLSDPLY-09015: deployApps deployment failed: deployApplication(xyz_lib_v1_jdk11, (), {'targets': 'xxx_cluster', 'path': '/u01/app/oracle/middleware14.1.1.0.0/user_projects/domains/xyz_domain/wlsdeploy/sharedLibraries/xyz_lib_v1_jdk11.war', 'libraryModule': 'true'}) failed: Error occurred while performing deploy : Target exception thrown while deploying application: Error occurred while performing deploy : Deployment Failed. : Error occurred while performing deploy : Deployment Failed.

The deployment with the following work around is successful

appDeployments:
    Library:
        'xyz_lib_v1_jdk11_4.0#1.0@4.0':
            SourcePath: 'wlsdeploy/sharedLibraries/xyz_lib_v1_jdk11.war'
            Target: 'xxx_cluster'
            ModuleType: war
    Application:
        'xyz_v1_jdk11':
            SourcePath: 'wlsdeploy/applications/xyz_v1_jdk11.war'
            Target: 'xxx_cluster'
            ModuleType: war

In this case Extension-Name, Implementation-Version and Specification-Version from the MANIFEST.mf are specified explicitly in the library name.

The problem is located in applications_deployer.py in function __deploy_app_online which is used for app and lib deployment in the following lines:

        # if options is not None and 'libraryModule' in options and string_utils.to_boolean(options['libraryModule']):
        computed_name = self.__get_deployable_application_versioned_name(source_path, application_name)
        application_name = computed_name

Here the function for getting the versioned library name is not called. I fixed this line locally but then came another problem: the program did not detect that the library was already deployed.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions