Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ protected enum Service {
CLUSTERING(8778),
BARBICAN(9311),
DATABASE(8779),
TACKER(9890)
;

private final int port;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
package org.openstack4j.api.tacker.v1;

import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;

import java.io.IOException;
import java.util.List;
import java.util.logging.Logger;

import org.openstack4j.api.AbstractTest;
import org.openstack4j.api.Builders;
import org.openstack4j.model.common.ActionResponse;
import org.openstack4j.model.tacker.Vim;
import org.openstack4j.openstack.tacker.domain.AuthCredentials;
import org.openstack4j.openstack.tacker.domain.VimProject;
import org.testng.annotations.Test;

import com.google.common.base.Preconditions;

/**
*
* @author Vishvesh Deshmukh
* @date Sep 14, 2016
*/
@Test(suiteName = "tacker/vnim")
public class TackerVimTests extends AbstractTest {

private static final String TACKER_VIM = "/tacker/v1/vim.json";
private static final String TACKER_VIMS = "/tacker/v1/vims.json";

@Override
protected Service service() {
return Service.TACKER;
}

@Test
public void testListVims() throws Exception {
respondWith(TACKER_VIMS);
List<? extends Vim> vims = osv3().tacker().vim().list();
assertEquals(1, vims.size());
Preconditions.checkNotNull(vims.get(0));
Logger.getLogger(getClass().getName())
.info(getClass().getName() + " : Tacker VIM from List : " + vims.get(0));
assertEquals(vims.get(0).getName(), "test-vim");
}

public void testGetVim() throws IOException {
respondWith(TACKER_VIM);
String id = "bad2f397-7436-4fc7-8043-726e173c5d30";
Vim vim = osv3().tacker().vim().show(id);
Logger.getLogger(getClass().getName()).info(getClass().getName() + " : Tacker VIM by ID : "+vim);
assertNotNull(vim);
assertEquals(id, vim.getId());
assertEquals("test-vim", vim.getName());
}

public void testRegisterVim() throws IOException {
respondWith(TACKER_VIM);
VimProject vimProject = VimProject.create().name("admin").projectDomainName("default");

AuthCredentials authCredentials = AuthCredentials.create()
.username("admin")
.password("password")
.userDomainName("default");

Vim vim = Builders.tacker().vim()
.name("test-vim")
.description("test-vim-description")
.authUrl("http://openstack.os4j.com:35357/v3")
.isDefault(Boolean.TRUE)
.type("openstack")
.vimProject(vimProject)
.authCredentials(authCredentials)
.build();

vim = osv3().tacker().vim().register(vim);
Logger.getLogger(getClass().getName()).info(getClass().getName() + " : Created Tacker Vim : "+vim);

assertEquals("test-vim", vim.getName());
}

public void testDeleteVim() throws IOException {
respondWith(200);
ActionResponse result = osv3().tacker().vim().delete("bad2f397-7436-4fc7-8043-726e173c5d30");
assertTrue(result.isSuccess());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
package org.openstack4j.api.tacker.v1;

import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;

import java.io.IOException;
import java.util.List;
import java.util.logging.Logger;

import org.openstack4j.api.AbstractTest;
import org.openstack4j.api.Builders;
import org.openstack4j.model.common.ActionResponse;
import org.openstack4j.model.tacker.Vnf;
import org.openstack4j.model.tacker.VnfUpdate;
import org.openstack4j.openstack.tacker.domain.TackerVnfStatus;
import org.openstack4j.openstack.tacker.domain.VnfUpdateAttributes;
import org.testng.annotations.Test;

import com.google.common.base.Preconditions;

/**
*
* @author Vishvesh Deshmukh
* @date Sep 6, 2016
*/
@Test(suiteName = "tacker/vnf")
public class TackerVnfTests extends AbstractTest {

private static final String TACKER_VNFS = "/tacker/v1/vnfs.json";
private static final String TACKER_VNF_GET = "/tacker/v1/vnf-get.json";
private static final String TACKER_VNF_CREATE = "/tacker/v1/vnf-create.json";
private static final String TACKER_VNF_UPDATE = "/tacker/v1/vnf-update.json";

@Override
protected Service service() {
return Service.TACKER;
}

@Test
public void testListVnfs() throws Exception {
respondWith(TACKER_VNFS);
List<? extends Vnf> vnfs = osv3().tacker().vnf().list();
assertEquals(1, vnfs.size());
Preconditions.checkNotNull(vnfs.get(0));
Logger.getLogger(getClass().getName())
.info(getClass().getName() + " : Tacker VNF from List : " + vnfs.get(0));
assertEquals(vnfs.get(0).getName(), "test-vnf");
}

public void testGetVnf() throws IOException {
respondWith(TACKER_VNF_GET);
String id = "afbbf7f4-59c2-45ed-b158-8c4e2e1d9104";
Vnf vnf = osv3().tacker().vnf().get(id);
Logger.getLogger(getClass().getName()).info(getClass().getName() + " : Tacker VNF by ID : "+vnf);
assertNotNull(vnf);
assertEquals(id, vnf.getId());
assertEquals("test-vnf", vnf.getName());
}

public void testCreateVnf() throws IOException {
respondWith(TACKER_VNF_CREATE);
Vnf vnf = Builders.tacker().vnf()
.name("test-vnf")
.description("test-vnf-description")
.vnfdId("1363e776-6c79-4e53-8074-4e32e49f156a")
.build();

Vnf newVnf = osv3().tacker().vnf().create(vnf);
Logger.getLogger(getClass().getName()).info(getClass().getName() + " : Created Tacker Vnf : "+newVnf);

assertEquals("test-vnf", newVnf.getName());
}

public void testUpdateVnf() throws Exception {
respondWith(TACKER_VNF_UPDATE);
String vnfId = "4043f4bd-a728-4ee3-91d6-a11a6bb89030";
String vnfUpdateConfig = "vdus:\n vdu1:\n id: vdu1\n vm_image: cirros-0.3.4-x86_64-uec\n instance_type: m1.tiny\n\n network_interfaces:\n management:\n network: net_mgmt\n management: true\n pkt_in:\n network: net0\n pkt_out:\n network: net1\n\n placement_policy:\n availability_zone: nova\n\n auto-scaling: noop\n\n";
VnfUpdateAttributes vnfUpdateAttributes = VnfUpdateAttributes.create().config(vnfUpdateConfig);
VnfUpdate vnfUpdate = Builders.tacker().vnfUpdate().attributes(vnfUpdateAttributes).build();
Vnf updatedVnf = osv3().tacker().vnf().update(vnfId, vnfUpdate);

assertEquals("test-update-vnf-description", updatedVnf.getDescription());
assertEquals(TackerVnfStatus.PENDING_UPDATE, updatedVnf.getStatus());
}

public void testDeleteVnf() throws IOException {
respondWith(200);
ActionResponse result = osv3().tacker().vnf().delete("afbbf7f4-59c2-45ed-b158-8c4e2e1d9104");
assertTrue(result.isSuccess());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
package org.openstack4j.api.tacker.v1;

import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;

import java.io.IOException;
import java.util.List;
import java.util.logging.Logger;

import org.openstack4j.api.AbstractTest;
import org.openstack4j.api.Builders;
import org.openstack4j.model.common.ActionResponse;
import org.openstack4j.model.tacker.Vnfd;
import org.openstack4j.openstack.tacker.domain.VnfdAttributes;
import org.openstack4j.openstack.tacker.domain.VnfdServiceTypes;
import org.testng.annotations.Test;

import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;

/**
*
* @author Vishvesh Deshmukh
* @date Sep 6, 2016
*/
@Test(suiteName = "tacker/vnfd")
public class TackerVnfdTests extends AbstractTest {

private static final String TACKER_VNFD = "/tacker/v1/vnfd.json";
private static final String TACKER_VNFDS = "/tacker/v1/vnfds.json";

@Override
protected Service service() {
return Service.TACKER;
}

@Test
public void testListVnfds() throws Exception {
respondWith(TACKER_VNFDS);
List<? extends Vnfd> vnfds = osv3().tacker().vnfd().list();
assertEquals(1, vnfds.size());
Preconditions.checkNotNull(vnfds.get(0));
Logger.getLogger(getClass().getName())
.info(getClass().getName() + " : Tacker VNFD from List : " + vnfds.get(0));
assertEquals(vnfds.get(0).getName(), "test-vnfd");
}

public void testGetVnfd() throws IOException {
respondWith(TACKER_VNFD);
String id = "1363e776-6c79-4e53-8074-4e32e49f156a";
Vnfd vnfd = osv3().tacker().vnfd().get(id);
Logger.getLogger(getClass().getName()).info(getClass().getName() + " : Tacker VNFD by ID : "+vnfd);
assertNotNull(vnfd);
assertEquals(id, vnfd.getId());
assertEquals("test-vnfd", vnfd.getName());
}

public void testCreateVnfd() throws IOException {
respondWith(TACKER_VNFD);
String vnfdTemplate = "template_name: sample-vnfd\ndescription: admin-example\n\nservice_properties:\n Id: sample-vnfd\n vendor: tacker\n version: 1\n\nvdus:\n vdu1:\n id: vdu1\n vm_image: cirros-0.3.4-x86_64-uec\n instance_type: m1.tiny\n\n network_interfaces:\n management:\n network: net_mgmt\n management: true\n pkt_in:\n network: net0\n pkt_out:\n network: net1\n\n placement_policy:\n availability_zone: nova\n\n auto-scaling: noop\n\n config:\n param0: key0\n param1: key1\n";

VnfdAttributes attributes = VnfdAttributes.create().vnfd(vnfdTemplate);

VnfdServiceTypes serviceTypes = VnfdServiceTypes.create().serviceType("vnfd");

List<VnfdServiceTypes> serviceTypesList = Lists.newArrayList(serviceTypes);

Vnfd vnfd = Builders.tacker().vnfd()
.name("test-vnfd")
.description("test-vnfd-description")
.infrastructureDriver("heat")
.managementDriver("noop")
.attributes(attributes)
.serviceTypes(serviceTypesList)
.build();

Vnfd newVnfd = osv3().tacker().vnfd().create(vnfd);
Logger.getLogger(getClass().getName()).info(getClass().getName() + " : Created Tacker Vnfd : "+newVnfd);

assertEquals("test-vnfd", newVnfd.getName());
}

public void testDeleteVnfd() throws IOException {
respondWith(200);
ActionResponse result = osv3().tacker().vnfd().delete("1363e776-6c79-4e53-8074-4e32e49f156a");
assertTrue(result.isSuccess());
}
}
29 changes: 28 additions & 1 deletion core-test/src/main/resources/identity/v3/authv3_project.json
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,34 @@
"type": "key-manager",
"id": "002ac55c6cf344cc9023d2841b45ffa6",
"name": "barbican"
}
}, {
"endpoints": [
{
"region_id": "RegionOne",
"url": "http://127.0.0.1:9890",
"region": "RegionOne",
"interface": "admin",
"id": "0c2f6e9ed7bd499ba445103cb91e80da"
},
{
"region_id": "RegionOne",
"url": "http://127.0.0.1:9890",
"region": "RegionOne",
"interface": "public",
"id": "5328f25a0e584ba392fa5cac3e9b6ee6"
},
{
"region_id": "RegionOne",
"url": "http://127.0.0.1:9890",
"region": "RegionOne",
"interface": "internal",
"id": "c1f3e92aa5284fd999a113502ba4052d"
}
],
"type": "nfv-orchestration",
"id": "83dd97cc45b7417886ad4940189b2b86",
"name": "tacker"
}
],
"extras": {},
"user": {
Expand Down
30 changes: 30 additions & 0 deletions core-test/src/main/resources/tacker/v1/vim.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"vim":{
"status":"REACHABLE",
"description":"test-vim-description",
"tenant_id":"b631e143cf734202a71b2b79e2b15037",
"name":"test-vim",
"is_default":true,
"auth_url":"http://openstack.os4j.com:35357/v3",
"placement_attr":{
"regions":[
"RegionOne"
]
},
"auth_cred":{
"username":"admin",
"project_name":"admin",
"user_domain_name":"default",
"project_id":null,
"auth_url":"http://openstack.os4j.com:35357/v3",
"password":"***",
"project_domain_name":"default"
},
"type":"openstack",
"id":"bad2f397-7436-4fc7-8043-726e173c5d30",
"vim_project":{
"name":"admin",
"project_domain_name":"default"
}
}
}
32 changes: 32 additions & 0 deletions core-test/src/main/resources/tacker/v1/vims.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"vims":[
{
"status":"REACHABLE",
"description":"test-vim-description",
"tenant_id":"b631e143cf734202a71b2b79e2b15037",
"name":"test-vim",
"is_default":true,
"auth_url":"http://openstack.os4j.com:35357/v3",
"placement_attr":{
"regions":[
"RegionOne"
]
},
"auth_cred":{
"username":"admin",
"project_name":"admin",
"user_domain_name":"default",
"project_id":null,
"auth_url":"http://openstack.os4j.com:35357/v3",
"password":"***",
"project_domain_name":"default"
},
"type":"openstack",
"id":"bad2f397-7436-4fc7-8043-726e173c5d30",
"vim_project":{
"name":"admin",
"project_domain_name":"default"
}
}
]
}
Loading