Skip to content

Commit c301bd1

Browse files
author
Frank.Zhang
committed
CLOUDSTACK-6278
Baremetal Advanced Networking support
1 parent c2c511e commit c301bd1

3 files changed

Lines changed: 55 additions & 0 deletions

File tree

api/src/org/apache/cloudstack/api/command/admin/user/RegisterCmd.java

100644100755
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ public Long getId() {
5252
return id;
5353
}
5454

55+
public void setId(Long id) {
56+
this.id = id;
57+
}
58+
5559
/////////////////////////////////////////////////////
5660
/////////////// API Implementation///////////////////
5761
/////////////////////////////////////////////////////

plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalVlanManager.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,7 @@
2626
* Created by frank on 4/30/14.
2727
*/
2828
public interface BaremetalVlanManager extends Manager, PluggableService {
29+
public static final String BAREMETAL_SYSTEM_ACCOUNT_NAME = "baremetal-system-account";
30+
2931
BaremetalRctResponse addRct(AddBaremetalRctCmd cmd);
3032
}

plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalVlanManagerImpl.java

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,26 @@
2020
import com.cloud.baremetal.database.BaremetalRctDao;
2121
import com.cloud.baremetal.database.BaremetalRctVO;
2222
import com.cloud.baremetal.networkservice.BaremetalRctResponse;
23+
import com.cloud.user.Account;
24+
import com.cloud.user.AccountManager;
25+
import com.cloud.user.AccountVO;
26+
import com.cloud.user.UserVO;
27+
import com.cloud.user.dao.AccountDao;
28+
import com.cloud.user.dao.UserDao;
2329
import com.cloud.utils.component.ManagerBase;
2430
import com.cloud.utils.db.QueryBuilder;
2531
import com.cloud.utils.db.SearchCriteria;
2632
import com.google.gson.Gson;
2733
import org.apache.cloudstack.api.AddBaremetalRctCmd;
34+
import org.apache.cloudstack.api.command.admin.user.RegisterCmd;
2835
import org.springframework.web.client.RestTemplate;
2936

3037
import javax.inject.Inject;
3138
import java.net.MalformedURLException;
3239
import java.net.URL;
3340
import java.util.ArrayList;
3441
import java.util.List;
42+
import java.util.UUID;
3543

3644
/**
3745
* Created by frank on 5/8/14.
@@ -41,6 +49,12 @@ public class BaremetalVlanManagerImpl extends ManagerBase implements BaremetalVl
4149

4250
@Inject
4351
private BaremetalRctDao rctDao;
52+
@Inject
53+
private AccountDao acntDao;
54+
@Inject
55+
private UserDao userDao;
56+
@Inject
57+
private AccountManager acntMgr;
4458

4559
@Override
4660
public BaremetalRctResponse addRct(AddBaremetalRctCmd cmd) {
@@ -78,6 +92,41 @@ public String getName() {
7892
return "Baremetal Vlan Manager";
7993
}
8094

95+
@Override
96+
public boolean start() {
97+
QueryBuilder<AccountVO> acntq = QueryBuilder.create(AccountVO.class);
98+
acntq.and(acntq.entity().getAccountName(), SearchCriteria.Op.EQ, BaremetalVlanManager.BAREMETAL_SYSTEM_ACCOUNT_NAME);
99+
AccountVO acnt = acntq.find();
100+
if (acnt != null) {
101+
return true;
102+
}
103+
104+
acnt = new AccountVO();
105+
acnt.setAccountName(BAREMETAL_SYSTEM_ACCOUNT_NAME);
106+
acnt.setUuid(UUID.randomUUID().toString());
107+
acnt.setState(Account.State.enabled);
108+
acnt.setDomainId(1);
109+
acnt = acntDao.persist(acnt);
110+
111+
UserVO user = new UserVO();
112+
user.setState(Account.State.enabled);
113+
user.setUuid(UUID.randomUUID().toString());
114+
user.setAccountId(acnt.getAccountId());
115+
user.setUsername(BAREMETAL_SYSTEM_ACCOUNT_NAME);
116+
user.setFirstname(BAREMETAL_SYSTEM_ACCOUNT_NAME);
117+
user.setLastname(BAREMETAL_SYSTEM_ACCOUNT_NAME);
118+
user.setPassword(UUID.randomUUID().toString());
119+
user = userDao.persist(user);
120+
121+
RegisterCmd cmd = new RegisterCmd();
122+
cmd.setId(user.getId());
123+
String[] keys = acntMgr.createApiKeyAndSecretKey(cmd);
124+
user.setApiKey(keys[0]);
125+
user.setSecretKey(keys[1]);
126+
userDao.update(user.getId(), user);
127+
return true;
128+
}
129+
81130

82131
@Override
83132
public List<Class<?>> getCommands() {

0 commit comments

Comments
 (0)