aboutsummaryrefslogtreecommitdiffstats
path: root/msb-core/distributions/standalone/src/assembly/resource/servicesInstall.bat
blob: f7b3b24b4780e7ff1c7ae4627eca107dd1d9c90d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@REM
@REM Copyright (C) 2016 ZTE, Inc. and others. All rights reserved. (ZTE)
@REM
@REM Licensed under the Apache License, Version 2.0 (the "License");
@REM you may not use this file except in compliance with the License.
@REM You may obtain a copy of the License at
@REM
@REM         http://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing, software
@REM distributed under the License is distributed on an "AS IS" BASIS,
@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@REM See the License for the specific language governing permissions and
@REM limitations under the License.
@REM
@echo off
title msb install services

set RUNHOME=%~dp0

echo ### install redis
cd "%RUNHOME%\redis"
redisService.exe install

echo ### install apiroute
cd "%RUNHOME%\apiroute"
apirouteService.exe install

echo ### install openresty
cd "%RUNHOME%\openresty\nginx"
openrestyService.exe install

:finalend
cd "%RUNHOME%"
or: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
/**
 * Copyright 2017 ZTE Corporation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.onap.holmes.rulemgt.bolt.enginebolt;


import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;

import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
import org.onap.holmes.common.utils.HttpsUtils;
import org.onap.holmes.rulemgt.bean.request.CorrelationCheckRule4Engine;
import org.onap.holmes.rulemgt.bean.request.CorrelationDeployRule4Engine;
import org.onap.holmes.common.exception.CorrelationException;
import org.powermock.api.easymock.PowerMock;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;

@PrepareForTest({EngineWrapper.class, EngineService.class, HttpsUtils.class, HttpResponse.class,
        StatusLine.class})
@RunWith(PowerMockRunner.class)
public class EngineWrapperTest {

    @Rule
    public ExpectedException thrown = ExpectedException.none();
    private EngineWrapper engineWrapper = new EngineWrapper();
    private EngineService engineServiceMock;
    private HttpResponse httpResponse;
    private StatusLine statusLineMock;

    @Before
    public void setUp() throws Exception {
        engineServiceMock = PowerMock.createMock(EngineService.class);
        httpResponse = PowerMock.createMock(HttpResponse.class);
        statusLineMock = PowerMock.createMock(StatusLine.class);
        Whitebox.setInternalState(engineWrapper, "engineService", engineServiceMock);
    }

    @Test
    public void deployEngine_invoke_rule_deploy_exception() throws Exception {
        thrown.expect(CorrelationException.class);
        thrown.expectMessage("Failed to call the rule deployment RESTful API.");

        EasyMock.expect(
                engineServiceMock.deploy(EasyMock.anyObject(CorrelationDeployRule4Engine.class),
                        EasyMock.anyObject(String.class)))
                .andThrow(
                        new RuntimeException(""));
        PowerMock.replayAll();

        engineWrapper.deployEngine(new CorrelationDeployRule4Engine(),"10.96.33.34");

        PowerMock.verifyAll();
    }

    @Test
    public void deployEngine_http_status_not_ok() throws Exception {
        thrown.expect(CorrelationException.class);
        thrown.expectMessage("Failed to deploy the rule!");

        EasyMock.expect(
                engineServiceMock.deploy(EasyMock.anyObject(CorrelationDeployRule4Engine.class),
                        EasyMock.anyObject(String.class)))
                .andReturn(httpResponse);
        EasyMock.expect(httpResponse.getStatusLine()).andReturn(statusLineMock);
        EasyMock.expect(statusLineMock.getStatusCode()).andReturn(400);
        PowerMock.replayAll();

        engineWrapper.deployEngine(new CorrelationDeployRule4Engine(),"10.96.33.34");

        PowerMock.verifyAll();
    }

    @Test
    public void deployEngine_parse_content_exception() throws Exception {
        PowerMock.resetAll();
        String content = "";
        PowerMockito.mockStatic(HttpsUtils.class);
        thrown.expect(CorrelationException.class);
        thrown.expectMessage(
                "Failed to parse the value returned by the engine management service.");
        EasyMock.expect(
                engineServiceMock.deploy(EasyMock.anyObject(CorrelationDeployRule4Engine.class),
                        EasyMock.anyObject(String.class)))
                .andReturn(httpResponse);
        EasyMock.expect(httpResponse.getStatusLine()).andReturn(statusLineMock);
        EasyMock.expect(statusLineMock.getStatusCode()).andReturn(200);
        PowerMockito.when(HttpsUtils.extractResponseEntity(httpResponse)).thenReturn(content);
        PowerMock.replayAll();

        engineWrapper.deployEngine(new CorrelationDeployRule4Engine(),"10.96.33.34");

        PowerMock.verifyAll();
    }

    @Test
    public void deployEngine_success() throws Exception {
        PowerMock.resetAll();
        String content = "{\"packageName\":\"test\"}";
        PowerMockito.mockStatic(HttpsUtils.class);
        EasyMock.expect(
                engineServiceMock.deploy(EasyMock.anyObject(CorrelationDeployRule4Engine.class),
                        EasyMock.anyObject(String.class)))
                .andReturn(httpResponse);
        EasyMock.expect(httpResponse.getStatusLine()).andReturn(statusLineMock);
        EasyMock.expect(statusLineMock.getStatusCode()).andReturn(200);
        PowerMockito.when(HttpsUtils.extractResponseEntity(httpResponse)).thenReturn(content);
        PowerMock.replayAll();

        String result = engineWrapper.deployEngine(new CorrelationDeployRule4Engine(),"10.96.33.34");

        assertThat(result, equalTo("test"));

    }

    @Test
    public void deleteRuleFromEngine_invoke_rule_delete_exception() throws Exception {
        thrown.expect(CorrelationException.class);
        thrown.expectMessage("Failed to call the rule deleting RESTful API.");

        EasyMock.expect(engineServiceMock.delete(EasyMock.anyObject(String.class),
                EasyMock.anyObject(String.class))).andThrow(
                new RuntimeException(""));
        PowerMock.replayAll();

        engineWrapper.deleteRuleFromEngine("","10.96.33.34");

        PowerMock.verifyAll();
    }

    @Test
    public void deleteRuleFromEngine_http_status_not_ok() throws Exception {
        thrown.expect(CorrelationException.class);
        thrown.expectMessage("Failed to delete the rule!");

        EasyMock.expect(engineServiceMock.delete(EasyMock.anyObject(String.class),
                EasyMock.anyObject(String.class)))
                .andReturn(httpResponse);
        EasyMock.expect(httpResponse.getStatusLine()).andReturn(statusLineMock);
        EasyMock.expect(statusLineMock.getStatusCode()).andReturn(400);

        PowerMock.replayAll();

        engineWrapper.deleteRuleFromEngine("","10.96.33.34");

        PowerMock.verifyAll();
    }

    @Test
    public void deleteRuleFromEngine_success() throws Exception {
        EasyMock.expect(engineServiceMock.delete(EasyMock.anyObject(String.class),
                EasyMock.anyObject(String.class)))
                .andReturn(httpResponse);
        EasyMock.expect(httpResponse.getStatusLine()).andReturn(statusLineMock);
        EasyMock.expect(statusLineMock.getStatusCode()).andReturn(200);

        PowerMock.replayAll();

        boolean result = engineWrapper.deleteRuleFromEngine("","10.96.33.34");

        assertThat(result, equalTo(true));
    }

    @Test
    public void checkRuleFromEngine_rule_delete_exception() throws Exception {
        thrown.expect(CorrelationException.class);
        thrown.expectMessage("Failed to call the rule verification RESTful API.");

        EasyMock.expect(
                engineServiceMock.check(EasyMock.anyObject(CorrelationCheckRule4Engine.class),
                        EasyMock.anyObject(String.class)))
                .andThrow(
                        new RuntimeException(""));
        PowerMock.replayAll();

        engineWrapper.checkRuleFromEngine(new CorrelationCheckRule4Engine(),"10.96.33.34");

        PowerMock.verifyAll();
    }

    @Test
    public void checkRuleFromEngine_success() throws Exception {
        EasyMock.expect(
                engineServiceMock.check(EasyMock.anyObject(CorrelationCheckRule4Engine.class),
                        EasyMock.anyObject(String.class)))
                .andReturn(httpResponse);
        EasyMock.expect(httpResponse.getStatusLine()).andReturn(statusLineMock);
        EasyMock.expect(statusLineMock.getStatusCode()).andReturn(200);

        PowerMock.replayAll();

        boolean result = engineWrapper.checkRuleFromEngine(new CorrelationCheckRule4Engine(),"10.96.33.34");

        assertThat(result, equalTo(true));
    }
}