Commit 7fc16e78 authored by Christos Tranoris's avatar Christos Tranoris
Browse files

Initial commit

parent 86281031
Loading
Loading
Loading
Loading

.gitignore

0 → 100644
+4 −0
Original line number Diff line number Diff line
/target/
/.project
/.classpath
/.settings

pom.xml

0 → 100644
+239 −0
Original line number Diff line number Diff line
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	
	<groupId>org.etsi.osl.sol005nbi</groupId>
	<artifactId>org.etsi.osl.sol005nbi.osm</artifactId>
	<version>1.2.0-SNAPSHOT</version>
	<packaging>jar</packaging>
	
	<name>org.etsi.osl.sol005nbi.osm</name>
  
	<organization>
		<name>openslice.io</name>
		<url>http://openslice.io</url>
	</organization>
	
	<inceptionYear>2019</inceptionYear>
	
	<licenses>
        <license>
            <name>Apache 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
            <comments>A business-friendly OSS license</comments>
        </license>
    </licenses>

    <properties>
	    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <salGeneratorPath>${project.build.directory}/generated-sources/mdsal-binding</salGeneratorPath>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<maven-license-plugin.version>2.0.0</maven-license-plugin.version>
		<license.licenseName>apache_v2</license.licenseName>
		<spring.boot-version>3.1.2</spring.boot-version>
    </properties>
    
	<pluginRepositories>
		<pluginRepository>
			<id>opendaylight-release</id>
			<name>opendaylight-release</name>
			<url>https://nexus.opendaylight.org/content/repositories/opendaylight.release/</url>
		</pluginRepository>
		<pluginRepository>
			<id>opendaylight-snapshot</id>
			<name>opendaylight-snapshot</name>
			<url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>
		</pluginRepository>
	</pluginRepositories>

    
	<repositories>
		<repository>
			<id>opendaylight-release</id>
			<name>opendaylight-release</name>
			<url>https://nexus.opendaylight.org/content/repositories/opendaylight.release/</url>
		</repository>
		<repository>
			<id>opendaylight-snapshot</id>
			<name>opendaylight-snapshot</name>
			<url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>
		</repository>
	</repositories>
	   

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.opendaylight.yangtools</groupId>
				<artifactId>yangtools-artifacts</artifactId>
			    <version>6.0.5</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<!-- Spring Boot BOM -->
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-dependencies</artifactId>
				<version>${spring.boot-version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
	
	<dependencies>
		<!-- Spring Boot -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-tomcat</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
		    <groupId>com.google.code.findbugs</groupId>
		    <artifactId>jsr305</artifactId>
		    <version>3.0.2</version>
		</dependency>	
        <dependency>
            <groupId>org.opendaylight.yangtools</groupId>
            <artifactId>yang-common</artifactId>
            </dependency>
		<dependency>
			<groupId>org.opendaylight.mdsal</groupId>
			<artifactId>yang-binding</artifactId>
            <version>0.13.1</version>
		</dependency>
        		

		<!-- Dependencies for OSMClient START -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-yaml</artifactId>
            </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            </dependency>    
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20160212</version>
            <type>jar</type>
        </dependency>
		<dependency>
		    <groupId>org.apache.geronimo.specs</groupId>
		    <artifactId>geronimo-jpa_2.0_spec</artifactId>
		    <version>1.1</version>
		</dependency>        	
		
		<!-- Dependencies for OSMClient END -->
		
		<!-- Dependencies for OSMUtils START -->
		<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-compress -->
		<dependency>
		    <groupId>org.apache.commons</groupId>
		    <artifactId>commons-compress</artifactId>
		    <version>1.21</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-io -->
		<dependency>
		    <groupId>org.apache.commons</groupId>
		    <artifactId>commons-io</artifactId>
		    <version>1.3.2</version>
		</dependency>		
		<!-- Dependencies for OSMUtils END -->
		        		
	</dependencies>
	
    <build>
        <!-- https://bugs.opendaylight.org/show_bug.cgi?id=6252 -->
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
            <!--  
            <resource>
                <directory>${project.build.directory}/generated-sources/spi</directory>
            </resource>
            <resource>
                <directory>${project.build.directory}/generated-sources/yang</directory>
            </resource>
            -->
        </resources>
        
        <!-- 
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>            
        </plugins>
    	 -->
    	<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<configuration>
						<source>17</source>
						<target>17</target>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>license-maven-plugin</artifactId>
					<version>${maven-license-plugin.version}</version>
					<configuration>
						<addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>
						<processStartTag>========================LICENSE_START=================================</processStartTag>
						<processEndTag>=========================LICENSE_END==================================</processEndTag>
						<roots>src/main/java/io,src/main/java/OSM5NBIClient,src/main/java/OSM5Util</roots>
					</configuration>
					<executions>
						<execution>
							<id>generate-license-headers</id>
							<goals>
								<goal>update-file-header</goal>
							</goals>
							<phase>process-sources</phase>
							<configuration>
								<licenseName>${license.licenseName}</licenseName>
							
							</configuration>
						</execution>
						<execution>
							<id>download-licenses</id>
							<goals>
								<goal>download-licenses</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				
			</plugins>
		</pluginManagement>            
    </build>
    
</project>
 No newline at end of file
+36 −0
Original line number Diff line number Diff line
package org.etsi.osl.sol005nbi;
/*-
 * ========================LICENSE_START=================================
 * org.etsi.osl.sol007nbi.osm
 * %%
 * Copyright (C) 2019 openslice.io
 * %%
 * 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==================================
 */


/**
 * @author ctranoris
 *
 */
public class ANSCreateInstanceRequestPayload extends ANSInstantiateInstanceRequestPayload
{	
	private final String notificationType = "NsIdentifierCreationNotification";
	
	public ANSCreateInstanceRequestPayload()
	{
		super();
	}		
}
+207 −0
Original line number Diff line number Diff line
package org.etsi.osl.sol005nbi;
/*-
 * ========================LICENSE_START=================================
 * org.etsi.osl.sol005nbi
 * %%
 * Copyright (C) 2019 openslice.io
 * %%
 * 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==================================
 */

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class ANSInstantiateInstanceRequestPayload
{
	private String nsName;
	public String getNsName() {
		return nsName;
	}

	public void setNsName(String nsName) {
		this.nsName = nsName;
	}

	private String vimAccountId;
	public String getVimAccountId() {
		return vimAccountId;
	}

	public void setVimAccountId(String vimAccountId) {
		this.vimAccountId = vimAccountId;
	}

	private Boolean wimAccountId;
	public Boolean getWimAccountId() {
		return wimAccountId;
	}

	public void setWimAccountId(Boolean wimAccountId) {
		this.wimAccountId = wimAccountId;
	}

	
	private String nsdId;
	public String getNsdId() {
		return nsdId;
	}

	public void setNsdId(String nsdId) {
		this.nsdId = nsdId;
	}

	public class VnF
	{
		@JsonProperty("member-vnf-index")
		private String memberVnFIndex;
		public String getMemberVnFIndex() {
			return memberVnFIndex;
		}
		public void setMemberVnFIndex(String memberVnFIndex) {
			this.memberVnFIndex = memberVnFIndex;
		}
		@JsonProperty("vdu")
		private List<Vdu> vdu = null;
		
		public List<Vdu> getVdu() {
			return vdu;
		}
		public void setVdu(List<Vdu> vdu) {
			this.vdu = vdu;
		}
		
		@JsonProperty("vimAccountId")
		private String vimAccount;
		public String getVimAccount() {
			return vimAccount;
		}
		public void setVimAccount(String vimAccount) {
			this.vimAccount = vimAccount;
		}
		
		public VnF()
		{
			
		};
	}
	
	
	public class Vdu
	{
		@JsonProperty("id")
		private String id;
		@JsonProperty("interface")
		private ArrayList<NInterface> interfaceObj = null;

		public ArrayList<NInterface> getInterfaceObj() {
			return interfaceObj;
		}
		public void setInterfaceObj(ArrayList<NInterface> interfaceObj) {
			this.interfaceObj = interfaceObj;
		}
		public String getId() {
			return id;
		}
		public void setId(String id) {
			this.id = id;
		}
	}
	
	public class NInterface
	{
		@JsonProperty("name")
		private String name;
		@JsonProperty("floating-ip-required")
		private Boolean floating_ip_required;
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public Boolean getFloating_ip_required() {
			return floating_ip_required;
		}
		public void setFloating_ip_required(Boolean floating_ip_required) {
			this.floating_ip_required = floating_ip_required;
		}
	}

	class Vld
	{
		@JsonProperty("name")
		private String name;
		@JsonProperty("vim-network-name")
		private LinkedHashMap<String,String> vimNetworkName = new LinkedHashMap<>();

		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public LinkedHashMap<String, String> getVimNetworkName() {
			return vimNetworkName;
		}
		public void setVimNetworkName(LinkedHashMap<String, String> vimNetworkName) {
			this.vimNetworkName = vimNetworkName;
		}
//		private String vimNetworkName;
//		public String getVimNetworkName() {
//			return vimNetworkName;
//		}
//		public void setVimNetworkName(String vimNetworkName) {
//			this.vimNetworkName = vimNetworkName;
//		}
	}
	private List<VnF> vnf = new ArrayList<>();
	public List<VnF> getVnf() {
		return vnf;
	}

	public void setVnf(List<VnF> vnf) {
		this.vnf = vnf;
	}

	private List<Vld> vld = new ArrayList<>();
	
	public List<Vld> getVld() {
		return vld;
	}

	public void setVld(List<Vld> vld) {
		this.vld = vld;
	}
	
	public String toJSON()
	{
		String jsonInString=null;
		ObjectMapper mapper = new ObjectMapper();
		mapper.setSerializationInclusion(Include.NON_NULL);
		try {
			jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(this);
		} catch (JsonProcessingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
		return jsonInString;
	}
	
}
+163 −0
Original line number Diff line number Diff line
/*-
 * ========================LICENSE_START=================================
 * org.etsi.osl.sol007nbi.osm
 * %%
 * Copyright (C) 2019 openslice.io
 * %%
 * 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.etsi.osl.sol005nbi;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

/**
 * @author Ioannis Chatzis
 *
 */

enum ScaleVnfType {SCALE_OUT, SCALE_IN};

public class ANSScaleRequestPayload 
{		
	public class ScaleVnfData
	{
		public class ScaleByStepData
		{
			@JsonProperty("scaling-group-descriptor")
			private String scaling_group_descriptor;
			@JsonProperty("member-vnf-index")
			private String member_vnf_index;
			@JsonProperty("scaling-policy")
			private String scaling_policy;

			public String getScaling_group_descriptor() {
				return scaling_group_descriptor;
			}
			public void setScaling_group_descriptor(String scaling_group_descriptor) {
				this.scaling_group_descriptor = scaling_group_descriptor;
			}
			public String getMember_vnf_index() {
				return member_vnf_index;
			}
			public void setMember_vnf_index(String member_vnf_index) {
				this.member_vnf_index = member_vnf_index;
			}
			public String getScaling_policy() {
				return scaling_policy;
			}
			public void setScaling_policy(String scaling_policy) {
				this.scaling_policy = scaling_policy;
			}			
		}

		private String scaleVnfType;
		private String vnfInstanceId;		
		private ScaleByStepData scaleByStepData = new ScaleByStepData();

		public String getVnfInstanceId() {
			return vnfInstanceId;
		}
		public ScaleByStepData getScaleByStepData() {
			return scaleByStepData;
		}
		public void setScaleByStepData(ScaleByStepData scaleByStepData) {
			this.scaleByStepData = scaleByStepData;
		}
		public void setVnfInstanceId(String vnfInstanceId) {
			this.vnfInstanceId = vnfInstanceId;
		}
		public String getScaleVnfType() {
			return scaleVnfType;
		}
		public void setScaleVnfType(String scaleVnfType) {
			this.scaleVnfType = scaleVnfType;
		}
		
	}
	
    private String lcmOperationType; //"lcmOperationType": "scale"
    private String nsInstanceId;
	private String scaleType;
	@JsonProperty("timeout-ns-scale")	
	private String timeout_ns_scale;
	private ScaleVnfData scaleVnfData = new ScaleVnfData();
	private String scaleTime;
    
	public String getLcmOperationType() {
		return lcmOperationType;
	}

	public void setLcmOperationType(String lcmOperationType) {
		this.lcmOperationType = lcmOperationType;
	}

	public String getNsInstanceId() {
		return nsInstanceId;
	}

	public void setNsInstanceId(String nsInstanceId) {
		this.nsInstanceId = nsInstanceId;
	}

	public String toJSON()
	{
		String jsonInString=null;
		ObjectMapper mapper = new ObjectMapper();
		mapper.setSerializationInclusion(Include.NON_NULL);
		try {
			jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(this);
		} catch (JsonProcessingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
		return jsonInString;
	}

	public String getScaleType() {
		return scaleType;
	}

	public void setScaleType(String scaleType) {
		this.scaleType = scaleType;
	}

	public String getTimeout_ns_scale() {
		return timeout_ns_scale;
	}

	public void setTimeout_ns_scale(String timeout_ns_scale) {
		this.timeout_ns_scale = timeout_ns_scale;
	}

	public ScaleVnfData getScaleVnfData() {
		return scaleVnfData;
	}

	public void setScaleVnfData(ScaleVnfData scaleVnfData) {
		this.scaleVnfData = scaleVnfData;
	}

	public String getScaleTime() {
		return scaleTime;
	}

	public void setScaleTime(String scaleTime) {
		this.scaleTime = scaleTime;
	}    
}
Loading