aboutsummaryrefslogtreecommitdiffstats
path: root/appc-event-listener/appc-event-listener-bundle/src/main/java/org/openecomp/appc/listener/CL/model/IncomingMessage.java
blob: 60d1d004b502099ffddece4757adb3e215b2996e (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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/*-
 * ============LICENSE_START=======================================================
 * openECOMP : APP-C
 * ================================================================================
 * Copyright (C) 2017 AT&T Intellectual Property. All rights
 * 						reserved.
 * ================================================================================
 * 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.
 * ============LICENSE_END=========================================================
 */

package org.openecomp.appc.listener.CL.model;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize.Inclusion;

/**
 * This class reperesnts a message coming in from DCAE.
 *
 */
@JsonSerialize(include = Inclusion.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class IncomingMessage extends CommonMessage {

    private static final long serialVersionUID = 1L;

    /*
     * The action being requested. Its presence signals that it is an incoming message and it is not present on outgoing
     * messages
     */
    @JsonProperty("request")
    private String request;

    /*
     * The url for the server used for auth. http://<compute>:<port>/<tenentId>/server/<serverID>
     */
    @JsonProperty("VServerSelfLink")
    private String Url;

    /*
     * The tenant Id in OpenStack that the server belongs to
     */
    @JsonProperty("TenantID")
    private String TenantId;

    /*
     * The VM's UUID in 
     */
    @JsonProperty("VMID")
    private String VmId;

    @JsonProperty("Identity")
    private String identityUrl;

    public String getRequest() {
        return request;
    }

    @JsonIgnore
    public Action getAction() {
        return Action.toAction(request);
    }

    public String getUrl() {
        return Url;
    }

    public String getTenantId() {
        return TenantId;
    }

    public String getVmId() {
        return VmId;
    }

    public String getIdentityUrl() {
        return identityUrl;
    }

    public void setUrl(String Url) {
        this.Url = Url;
    }

    public void setTenantId(String TenantId) {
        this.TenantId = TenantId;
    }

    public void setVmId(String VmId) {
        this.VmId = VmId;
    }

    public void setRequest(String request) {
        this.request = request;
    }

    public void setIdentityUrl(String identityUrl) {
        this.identityUrl = identityUrl;
    }

    @Override
    public String toString() {
        String time = getRequestTime() != null ? getRequestTime() : "N/A";
        // String req = request != null ? request : "N/A";
        return String.format("[%s - %s]", time, getId());
    }

    public String toOutgoing(Status status) {
        return toOutgoing(status, getMessage());
    }

    public String toOutgoing(Status status, String msg) {
        OutgoingMessage out = new OutgoingMessage(this);
        out.setResponse(status);
        out.setMessage(msg);
        return out.toResponse().toString();
    }

    /**
     * Determines if this message should be parsed parsed. Will eventually check that the message is well formed, has
     * all required fields, and had not exceeded any timing restrictions.
     *
     * @return True if the message should be parsed. False otherwise
     */
    public boolean isValid() {
        return true;
    }
}