You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by fr...@apache.org on 2014/09/06 01:24:23 UTC

[2/3] git commit: updated refs/heads/master to 10544e2

CLOUDSTACK-6278
Baremetal Advanced Networking support


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/c301bd1c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/c301bd1c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/c301bd1c

Branch: refs/heads/master
Commit: c301bd1c940f941f59dd280d7f22abe71b5279bc
Parents: c2c511e
Author: Frank.Zhang <fr...@citrix.com>
Authored: Thu Aug 21 15:37:57 2014 -0700
Committer: Frank.Zhang <fr...@citrix.com>
Committed: Fri Sep 5 16:28:33 2014 -0700

----------------------------------------------------------------------
 .../api/command/admin/user/RegisterCmd.java     |  4 ++
 .../baremetal/manager/BaremetalVlanManager.java |  2 +
 .../manager/BaremetalVlanManagerImpl.java       | 49 ++++++++++++++++++++
 3 files changed, 55 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c301bd1c/api/src/org/apache/cloudstack/api/command/admin/user/RegisterCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/user/RegisterCmd.java b/api/src/org/apache/cloudstack/api/command/admin/user/RegisterCmd.java
old mode 100644
new mode 100755
index bb80999..2732bb9
--- a/api/src/org/apache/cloudstack/api/command/admin/user/RegisterCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/user/RegisterCmd.java
@@ -52,6 +52,10 @@ public class RegisterCmd extends BaseCmd {
         return id;
     }
 
+    public void setId(Long id) {
+        this.id = id;
+    }
+
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////
     /////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c301bd1c/plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalVlanManager.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalVlanManager.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalVlanManager.java
index 7ffe461..13e61fa 100755
--- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalVlanManager.java
+++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalVlanManager.java
@@ -26,5 +26,7 @@ import org.apache.cloudstack.api.AddBaremetalRctCmd;
  * Created by frank on 4/30/14.
  */
 public interface BaremetalVlanManager extends Manager, PluggableService {
+    public static final String BAREMETAL_SYSTEM_ACCOUNT_NAME = "baremetal-system-account";
+
     BaremetalRctResponse addRct(AddBaremetalRctCmd cmd);
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c301bd1c/plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalVlanManagerImpl.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalVlanManagerImpl.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalVlanManagerImpl.java
index 16daa5b..f307af4 100755
--- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalVlanManagerImpl.java
+++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalVlanManagerImpl.java
@@ -20,11 +20,18 @@ package com.cloud.baremetal.manager;
 import com.cloud.baremetal.database.BaremetalRctDao;
 import com.cloud.baremetal.database.BaremetalRctVO;
 import com.cloud.baremetal.networkservice.BaremetalRctResponse;
+import com.cloud.user.Account;
+import com.cloud.user.AccountManager;
+import com.cloud.user.AccountVO;
+import com.cloud.user.UserVO;
+import com.cloud.user.dao.AccountDao;
+import com.cloud.user.dao.UserDao;
 import com.cloud.utils.component.ManagerBase;
 import com.cloud.utils.db.QueryBuilder;
 import com.cloud.utils.db.SearchCriteria;
 import com.google.gson.Gson;
 import org.apache.cloudstack.api.AddBaremetalRctCmd;
+import org.apache.cloudstack.api.command.admin.user.RegisterCmd;
 import org.springframework.web.client.RestTemplate;
 
 import javax.inject.Inject;
@@ -32,6 +39,7 @@ import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.UUID;
 
 /**
  * Created by frank on 5/8/14.
@@ -41,6 +49,12 @@ public class BaremetalVlanManagerImpl extends ManagerBase implements BaremetalVl
 
     @Inject
     private BaremetalRctDao rctDao;
+    @Inject
+    private AccountDao acntDao;
+    @Inject
+    private UserDao userDao;
+    @Inject
+    private AccountManager acntMgr;
 
     @Override
     public BaremetalRctResponse addRct(AddBaremetalRctCmd cmd) {
@@ -78,6 +92,41 @@ public class BaremetalVlanManagerImpl extends ManagerBase implements BaremetalVl
         return "Baremetal Vlan Manager";
     }
 
+    @Override
+    public boolean start() {
+        QueryBuilder<AccountVO> acntq = QueryBuilder.create(AccountVO.class);
+        acntq.and(acntq.entity().getAccountName(), SearchCriteria.Op.EQ, BaremetalVlanManager.BAREMETAL_SYSTEM_ACCOUNT_NAME);
+        AccountVO acnt = acntq.find();
+        if (acnt != null) {
+            return true;
+        }
+
+        acnt = new AccountVO();
+        acnt.setAccountName(BAREMETAL_SYSTEM_ACCOUNT_NAME);
+        acnt.setUuid(UUID.randomUUID().toString());
+        acnt.setState(Account.State.enabled);
+        acnt.setDomainId(1);
+        acnt = acntDao.persist(acnt);
+
+        UserVO user = new UserVO();
+        user.setState(Account.State.enabled);
+        user.setUuid(UUID.randomUUID().toString());
+        user.setAccountId(acnt.getAccountId());
+        user.setUsername(BAREMETAL_SYSTEM_ACCOUNT_NAME);
+        user.setFirstname(BAREMETAL_SYSTEM_ACCOUNT_NAME);
+        user.setLastname(BAREMETAL_SYSTEM_ACCOUNT_NAME);
+        user.setPassword(UUID.randomUUID().toString());
+        user = userDao.persist(user);
+
+        RegisterCmd cmd = new RegisterCmd();
+        cmd.setId(user.getId());
+        String[] keys = acntMgr.createApiKeyAndSecretKey(cmd);
+        user.setApiKey(keys[0]);
+        user.setSecretKey(keys[1]);
+        userDao.update(user.getId(), user);
+        return true;
+    }
+
 
     @Override
     public List<Class<?>> getCommands() {