Skip to content

Commit 30b17c9

Browse files
committed
updating design for sidecar
1 parent 4f8dc3f commit 30b17c9

File tree

10 files changed

+75
-80
lines changed

10 files changed

+75
-80
lines changed

lib/ActionInputValidator/ActionValidators/SpnWebAppSiteContainersValidator.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
1111
Object.defineProperty(exports, "__esModule", { value: true });
1212
exports.SpnWebAppSiteContainersValidator = void 0;
1313
const Validations_1 = require("../Validations");
14-
class SpnWebAppSiteContainersValidator {
14+
const SpnLinuxWebAppValidator_1 = require("./SpnLinuxWebAppValidator");
15+
class SpnWebAppSiteContainersValidator extends SpnLinuxWebAppValidator_1.SpnLinuxWebAppValidator {
1516
validate() {
17+
const _super = Object.create(null, {
18+
validate: { get: () => super.validate }
19+
});
1620
return __awaiter(this, void 0, void 0, function* () {
21+
yield _super.validate.call(this);
1722
(0, Validations_1.validateSiteContainersInputs)();
1823
});
1924
}

lib/ActionInputValidator/ValidatorFactory.js

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,11 @@ class ValidatorFactory {
6868
let actionParams = actionparameters_1.ActionParameters.getActionParams();
6969
if (type === BaseWebAppDeploymentProvider_1.DEPLOYMENT_PROVIDER_TYPES.PUBLISHPROFILE) {
7070
if (!!actionParams.blessedAppSitecontainers || !!actionParams.siteContainers) {
71-
return [new PublishProfileWebAppSiteContainersValidator_1.PublishProfileWebAppSiteContainersValidator()];
71+
return new PublishProfileWebAppSiteContainersValidator_1.PublishProfileWebAppSiteContainersValidator();
7272
}
7373
else if (!!actionParams.images) {
7474
yield this.setResourceDetails(actionParams);
75-
return [new PublishProfileContainerWebAppValidator_1.PublishProfileContainerWebAppValidator()];
75+
return new PublishProfileContainerWebAppValidator_1.PublishProfileContainerWebAppValidator();
7676
}
7777
else {
7878
try {
@@ -81,7 +81,7 @@ class ValidatorFactory {
8181
catch (error) {
8282
core.warning(`Failed to set resource details: ${error.message}`);
8383
}
84-
return [new PublishProfileWebAppValidator_1.PublishProfileWebAppValidator()];
84+
return new PublishProfileWebAppValidator_1.PublishProfileWebAppValidator();
8585
}
8686
}
8787
else if (type == BaseWebAppDeploymentProvider_1.DEPLOYMENT_PROVIDER_TYPES.SPN) {
@@ -91,23 +91,22 @@ class ValidatorFactory {
9191
if (!!actionParams.isLinux) {
9292
if (!!actionParams.siteContainers) {
9393
if (yield this.isBlessedSitecontainerApp(actionParams)) {
94-
return [new SpnLinuxWebAppValidator_1.SpnLinuxWebAppValidator(), new SpnWebAppSiteContainersValidator_1.SpnWebAppSiteContainersValidator()];
94+
return new SpnWebAppSiteContainersValidator_1.SpnWebAppSiteContainersValidator();
9595
}
96-
return [new SpnWebAppSiteContainersValidator_1.SpnWebAppSiteContainersValidator()];
9796
}
9897
else if (!!actionParams.images || !!actionParams.multiContainerConfigFile) {
99-
return [new SpnLinuxContainerWebAppValidator_1.SpnLinuxContainerWebAppValidator()];
98+
return new SpnLinuxContainerWebAppValidator_1.SpnLinuxContainerWebAppValidator();
10099
}
101100
else {
102-
return [new SpnLinuxWebAppValidator_1.SpnLinuxWebAppValidator()];
101+
return new SpnLinuxWebAppValidator_1.SpnLinuxWebAppValidator();
103102
}
104103
}
105104
else {
106105
if (!!actionParams.images) {
107-
return [new SpnWindowsContainerWebAppValidator_1.SpnWindowsContainerWebAppValidator()];
106+
return new SpnWindowsContainerWebAppValidator_1.SpnWindowsContainerWebAppValidator();
108107
}
109108
else {
110-
return [new SpnWindowsWebAppValidator_1.SpnWindowsWebAppValidator()];
109+
return new SpnWindowsWebAppValidator_1.SpnWindowsWebAppValidator();
111110
}
112111
}
113112
}

lib/DeploymentProvider/DeploymentProviderFactory.js

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -45,28 +45,21 @@ class DeploymentProviderFactory {
4545
static getDeploymentProvider(type) {
4646
if (type === BaseWebAppDeploymentProvider_1.DEPLOYMENT_PROVIDER_TYPES.PUBLISHPROFILE) {
4747
if (!!actionparameters_1.ActionParameters.getActionParams().images) {
48-
return [new PublishProfileWebAppContainerDeploymentProvider_1.PublishProfileWebAppContainerDeploymentProvider(type)];
48+
return new PublishProfileWebAppContainerDeploymentProvider_1.PublishProfileWebAppContainerDeploymentProvider(type);
4949
}
5050
else {
51-
return [new WebAppDeploymentProvider_1.WebAppDeploymentProvider(type)];
51+
return new WebAppDeploymentProvider_1.WebAppDeploymentProvider(type);
5252
}
5353
}
5454
else if (type == BaseWebAppDeploymentProvider_1.DEPLOYMENT_PROVIDER_TYPES.SPN) {
55-
if (!!actionparameters_1.ActionParameters.getActionParams().blessedAppSitecontainers) {
56-
core.info("Using blessed app site containers deployment provider");
57-
return [new WebAppDeploymentProvider_1.WebAppDeploymentProvider(type), new WebAppSiteContainersDeploymentProvider_1.WebAppSiteContainersDeploymentProvider(type)];
58-
}
59-
else if (!!actionparameters_1.ActionParameters.getActionParams().siteContainers) {
60-
core.info("Using site containers deployment provider");
61-
return [new WebAppSiteContainersDeploymentProvider_1.WebAppSiteContainersDeploymentProvider(type)];
55+
if (!!actionparameters_1.ActionParameters.getActionParams().blessedAppSitecontainers || !!actionparameters_1.ActionParameters.getActionParams().siteContainers) {
56+
return new WebAppSiteContainersDeploymentProvider_1.WebAppSiteContainersDeploymentProvider(type);
6257
}
6358
else if (!!actionparameters_1.ActionParameters.getActionParams().images || (!!actionparameters_1.ActionParameters.getActionParams().isLinux && !!actionparameters_1.ActionParameters.getActionParams().multiContainerConfigFile)) {
64-
core.info("Using web app container deployment provider");
65-
return [new WebAppContainerDeployment_1.WebAppContainerDeploymentProvider(type)];
59+
return new WebAppContainerDeployment_1.WebAppContainerDeploymentProvider(type);
6660
}
6761
else {
68-
core.info("Using web app deployment provider");
69-
return [new WebAppDeploymentProvider_1.WebAppDeploymentProvider(type)];
62+
return new WebAppDeploymentProvider_1.WebAppDeploymentProvider(type);
7063
}
7164
}
7265
else {

lib/DeploymentProvider/Providers/WebAppSiteContainersDeploymentProvider.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
4343
};
4444
Object.defineProperty(exports, "__esModule", { value: true });
4545
exports.WebAppSiteContainersDeploymentProvider = void 0;
46-
const BaseWebAppDeploymentProvider_1 = require("./BaseWebAppDeploymentProvider");
4746
const SiteContainerDeploymentUtility_1 = require("azure-actions-appservice-rest/Utilities/SiteContainerDeploymentUtility");
4847
const core = __importStar(require("@actions/core"));
49-
class WebAppSiteContainersDeploymentProvider extends BaseWebAppDeploymentProvider_1.BaseWebAppDeploymentProvider {
48+
const WebAppDeploymentProvider_1 = require("./WebAppDeploymentProvider");
49+
class WebAppSiteContainersDeploymentProvider extends WebAppDeploymentProvider_1.WebAppDeploymentProvider {
5050
DeployWebAppStep() {
51+
const _super = Object.create(null, {
52+
DeployWebAppStep: { get: () => super.DeployWebAppStep }
53+
});
5154
return __awaiter(this, void 0, void 0, function* () {
55+
if (!!this.actionParams.blessedAppSitecontainers) {
56+
core.info("Blessed site containers detected, using WebAppDeploymentProvider for deployment.");
57+
yield _super.DeployWebAppStep.call(this);
58+
}
5259
let siteContainerDeploymentUtility = new SiteContainerDeploymentUtility_1.SiteContainerDeploymentUtility(this.appService);
5360
let siteContainers = this.actionParams.siteContainers;
5461
core.info("Updating site containers");

lib/main.js

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -71,17 +71,13 @@ function main() {
7171
type = BaseWebAppDeploymentProvider_1.DEPLOYMENT_PROVIDER_TYPES.PUBLISHPROFILE;
7272
}
7373
// Validate action inputs
74-
let validators = yield ValidatorFactory_1.ValidatorFactory.getValidator(type);
75-
for (const validator of validators) {
76-
yield validator.validate();
77-
}
78-
var deploymentProviders = DeploymentProviderFactory_1.DeploymentProviderFactory.getDeploymentProvider(type);
79-
for (const provider of deploymentProviders) {
80-
core.info("Predeployment Step Started");
81-
yield provider.PreDeploymentStep();
82-
core.info("Deployment Step Started");
83-
yield provider.DeployWebAppStep();
84-
}
74+
let validator = yield ValidatorFactory_1.ValidatorFactory.getValidator(type);
75+
yield validator.validate();
76+
var deploymentProvider = DeploymentProviderFactory_1.DeploymentProviderFactory.getDeploymentProvider(type);
77+
core.info("Predeployment Step Started");
78+
yield deploymentProvider.PreDeploymentStep();
79+
core.info("Deployment Step Started");
80+
yield deploymentProvider.DeployWebAppStep();
8581
}
8682
catch (error) {
8783
isDeploymentSuccess = false;
@@ -95,8 +91,8 @@ function main() {
9591
}
9692
}
9793
finally {
98-
if (deploymentProviders != null) {
99-
yield deploymentProviders[0].UpdateDeploymentStatus(isDeploymentSuccess);
94+
if (deploymentProvider != null) {
95+
yield deploymentProvider.UpdateDeploymentStatus(isDeploymentSuccess);
10096
}
10197
// Reset AZURE_HTTP_USER_AGENT
10298
core.exportVariable('AZURE_HTTP_USER_AGENT', prefix);
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import { validateSiteContainersInputs } from "../Validations";
2+
23
import { IValidator } from "./IValidator";
4+
import { SpnLinuxWebAppValidator } from "./SpnLinuxWebAppValidator";
35

4-
export class SpnWebAppSiteContainersValidator implements IValidator {
6+
export class SpnWebAppSiteContainersValidator extends SpnLinuxWebAppValidator {
57
async validate(): Promise<void> {
6-
8+
await super.validate();
79
validateSiteContainersInputs();
8-
910
}
1011
}

src/ActionInputValidator/ValidatorFactory.ts

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@ import { PublishProfileWebAppSiteContainersValidator } from "./ActionValidators/
1818
import { AzureAppService } from "azure-actions-appservice-rest/Arm/azure-app-service";
1919

2020
export class ValidatorFactory {
21-
public static async getValidator(type: DEPLOYMENT_PROVIDER_TYPES) : Promise<IValidator[]> {
21+
public static async getValidator(type: DEPLOYMENT_PROVIDER_TYPES) : Promise<IValidator> {
2222
let actionParams: ActionParameters = ActionParameters.getActionParams();
2323
if(type === DEPLOYMENT_PROVIDER_TYPES.PUBLISHPROFILE) {
2424
if (!!actionParams.blessedAppSitecontainers || !!actionParams.siteContainers) {
25-
return [new PublishProfileWebAppSiteContainersValidator()];
25+
return new PublishProfileWebAppSiteContainersValidator();
2626
}
2727
else if (!!actionParams.images) {
2828
await this.setResourceDetails(actionParams);
29-
return [new PublishProfileContainerWebAppValidator()];
29+
return new PublishProfileContainerWebAppValidator();
3030
}
3131
else {
3232
try {
@@ -35,7 +35,7 @@ export class ValidatorFactory {
3535
catch (error) {
3636
core.warning(`Failed to set resource details: ${error.message}`);
3737
}
38-
return [new PublishProfileWebAppValidator()];
38+
return new PublishProfileWebAppValidator();
3939
}
4040
}
4141
else if(type == DEPLOYMENT_PROVIDER_TYPES.SPN) {
@@ -45,24 +45,22 @@ export class ValidatorFactory {
4545
if (!!actionParams.isLinux) {
4646
if (!!actionParams.siteContainers) {
4747
if (await this.isBlessedSitecontainerApp(actionParams)) {
48-
return [new SpnLinuxWebAppValidator(), new SpnWebAppSiteContainersValidator()];
48+
return new SpnWebAppSiteContainersValidator();
4949
}
50-
51-
return [new SpnWebAppSiteContainersValidator()];
5250
}
5351
else if (!!actionParams.images || !!actionParams.multiContainerConfigFile) {
54-
return [new SpnLinuxContainerWebAppValidator()];
52+
return new SpnLinuxContainerWebAppValidator();
5553
}
5654
else {
57-
return [new SpnLinuxWebAppValidator()];
55+
return new SpnLinuxWebAppValidator();
5856
}
5957
}
6058
else {
6159
if (!!actionParams.images) {
62-
return [new SpnWindowsContainerWebAppValidator()];
60+
return new SpnWindowsContainerWebAppValidator();
6361
}
6462
else {
65-
return [new SpnWindowsWebAppValidator()];
63+
return new SpnWindowsWebAppValidator();
6664
}
6765
}
6866
}

src/DeploymentProvider/DeploymentProviderFactory.ts

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,31 +11,24 @@ import { WebAppSiteContainersDeploymentProvider } from "./Providers/WebAppSiteCo
1111

1212
export class DeploymentProviderFactory {
1313

14-
public static getDeploymentProvider(type: DEPLOYMENT_PROVIDER_TYPES) : IWebAppDeploymentProvider[] {
14+
public static getDeploymentProvider(type: DEPLOYMENT_PROVIDER_TYPES) : IWebAppDeploymentProvider {
1515
if(type === DEPLOYMENT_PROVIDER_TYPES.PUBLISHPROFILE) {
1616
if (!!ActionParameters.getActionParams().images) {
17-
return [new PublishProfileWebAppContainerDeploymentProvider(type)];
17+
return new PublishProfileWebAppContainerDeploymentProvider(type);
1818
}
1919
else {
20-
return [new WebAppDeploymentProvider(type)];
20+
return new WebAppDeploymentProvider(type);
2121
}
2222
}
2323
else if(type == DEPLOYMENT_PROVIDER_TYPES.SPN) {
24-
if (!!ActionParameters.getActionParams().blessedAppSitecontainers) {
25-
core.info("Using blessed app site containers deployment provider");
26-
return [new WebAppDeploymentProvider(type), new WebAppSiteContainersDeploymentProvider(type)];
27-
}
28-
else if (!!ActionParameters.getActionParams().siteContainers) {
29-
core.info("Using site containers deployment provider");
30-
return [new WebAppSiteContainersDeploymentProvider(type)];
24+
if (!!ActionParameters.getActionParams().blessedAppSitecontainers || !!ActionParameters.getActionParams().siteContainers) {
25+
return new WebAppSiteContainersDeploymentProvider(type);
3126
}
3227
else if(!!ActionParameters.getActionParams().images || (!!ActionParameters.getActionParams().isLinux && !!ActionParameters.getActionParams().multiContainerConfigFile)) {
33-
core.info("Using web app container deployment provider");
34-
return [new WebAppContainerDeploymentProvider(type)];
28+
return new WebAppContainerDeploymentProvider(type);
3529
}
3630
else {
37-
core.info("Using web app deployment provider");
38-
return [new WebAppDeploymentProvider(type)];
31+
return new WebAppDeploymentProvider(type);
3932
}
4033
}
4134
else {

src/DeploymentProvider/Providers/WebAppSiteContainersDeploymentProvider.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
import { BaseWebAppDeploymentProvider } from './BaseWebAppDeploymentProvider';
22
import { SiteContainerDeploymentUtility } from 'azure-actions-appservice-rest/Utilities/SiteContainerDeploymentUtility';
33
import * as core from '@actions/core';
4+
import { WebAppDeploymentProvider } from './WebAppDeploymentProvider';
45

5-
export class WebAppSiteContainersDeploymentProvider extends BaseWebAppDeploymentProvider {
6+
export class WebAppSiteContainersDeploymentProvider extends WebAppDeploymentProvider {
67
public async DeployWebAppStep() {
8+
9+
if(!!this.actionParams.blessedAppSitecontainers){
10+
core.info("Blessed site containers detected, using WebAppDeploymentProvider for deployment.");
11+
await super.DeployWebAppStep();
12+
}
13+
714
let siteContainerDeploymentUtility = new SiteContainerDeploymentUtility(this.appService);
815
let siteContainers = this.actionParams.siteContainers;
916

src/main.ts

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,15 @@ export async function main() {
3434
}
3535

3636
// Validate action inputs
37-
let validators = await ValidatorFactory.getValidator(type);
38-
for (const validator of validators) {
39-
await validator.validate();
40-
}
37+
let validator = await ValidatorFactory.getValidator(type);
38+
await validator.validate();
4139

42-
var deploymentProviders = DeploymentProviderFactory.getDeploymentProvider(type);
40+
var deploymentProvider = DeploymentProviderFactory.getDeploymentProvider(type);
4341

44-
for (const provider of deploymentProviders) {
45-
core.info("Predeployment Step Started");
46-
await provider.PreDeploymentStep();
47-
core.info("Deployment Step Started");
48-
await provider.DeployWebAppStep();
49-
}
42+
core.info("Predeployment Step Started");
43+
await deploymentProvider.PreDeploymentStep();
44+
core.info("Deployment Step Started");
45+
await deploymentProvider.DeployWebAppStep();
5046
}
5147
catch(error) {
5248
isDeploymentSuccess = false;
@@ -60,8 +56,8 @@ export async function main() {
6056
}
6157
}
6258
finally {
63-
if(deploymentProviders != null) {
64-
await deploymentProviders[0].UpdateDeploymentStatus(isDeploymentSuccess);
59+
if(deploymentProvider != null) {
60+
await deploymentProvider.UpdateDeploymentStatus(isDeploymentSuccess);
6561
}
6662

6763
// Reset AZURE_HTTP_USER_AGENT

0 commit comments

Comments
 (0)