You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2014/12/08 11:28:46 UTC

stratos git commit: Introducing logic to start mock members if present in the registry on server startup

Repository: stratos
Updated Branches:
  refs/heads/master 089477175 -> 48c364073


Introducing logic to start mock members if present in the registry on server startup


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

Branch: refs/heads/master
Commit: 48c36407339cc81a835c7cf3d79a9109f2055304
Parents: 0894771
Author: Imesh Gunaratne <im...@apache.org>
Authored: Mon Dec 8 15:58:36 2014 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Mon Dec 8 15:58:36 2014 +0530

----------------------------------------------------------------------
 .../cloud/controller/iaases/MockIaas.java       | 114 +++++++++++
 .../cloud/controller/iaases/mock/MockIaas.java  | 182 ------------------
 .../controller/iaases/mock/MockIaasService.java | 187 +++++++++++++++++++
 .../CloudControllerServiceComponent.java        |   4 +
 .../controller/registry/RegistryManager.java    |   4 +-
 .../main/resources/conf/cloud-controller.xml    |   2 +-
 6 files changed, 307 insertions(+), 186 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/48c36407/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/MockIaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/MockIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/MockIaas.java
new file mode 100644
index 0000000..9e9273e
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/MockIaas.java
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
+package org.apache.stratos.cloud.controller.iaases;
+
+import org.apache.stratos.cloud.controller.domain.ClusterContext;
+import org.apache.stratos.cloud.controller.domain.IaasProvider;
+import org.apache.stratos.cloud.controller.domain.MemberContext;
+import org.apache.stratos.cloud.controller.domain.Partition;
+import org.apache.stratos.cloud.controller.exception.*;
+import org.apache.stratos.cloud.controller.iaases.mock.MockIaasService;
+import org.apache.stratos.cloud.controller.iaases.validators.PartitionValidator;
+import org.jclouds.compute.domain.NodeMetadata;
+
+/**
+ * Mock IaaS client for invoking mock IaaS service.
+ */
+public class MockIaas extends Iaas {
+
+    public MockIaas(IaasProvider iaasProvider) {
+        super(iaasProvider);
+    }
+
+    @Override
+    public void initialize() {
+    }
+
+    @Override
+    public NodeMetadata createInstance(ClusterContext clusterContext, MemberContext memberContext) {
+        return MockIaasService.getInstance().createInstance(clusterContext, memberContext);
+    }
+
+    @Override
+    public void releaseAddress(String ip) {
+        MockIaasService.getInstance().releaseAddress(ip);
+    }
+
+    @Override
+    public boolean isValidRegion(String region) throws InvalidRegionException {
+        return MockIaasService.getInstance().isValidRegion(region);
+    }
+
+    @Override
+    public boolean isValidZone(String region, String zone) throws InvalidZoneException, InvalidRegionException {
+        return MockIaasService.getInstance().isValidZone(region, zone);
+    }
+
+    @Override
+    public boolean isValidHost(String zone, String host) throws InvalidHostException {
+        return MockIaasService.getInstance().isValidHost(zone, host);
+    }
+
+    @Override
+    public PartitionValidator getPartitionValidator() {
+        return MockIaasService.getInstance().getPartitionValidator();
+    }
+
+    @Override
+    public String createVolume(int sizeGB, String snapshotId) {
+        return MockIaasService.getInstance().createVolume(sizeGB, snapshotId);
+    }
+
+    @Override
+    public String attachVolume(String instanceId, String volumeId, String deviceName) {
+        return MockIaasService.getInstance().attachVolume(instanceId, volumeId, deviceName);
+    }
+
+    @Override
+    public void detachVolume(String instanceId, String volumeId) {
+        MockIaasService.getInstance().detachVolume(instanceId, volumeId);
+    }
+
+    @Override
+    public void deleteVolume(String volumeId) {
+        MockIaasService.getInstance().deleteVolume(volumeId);
+    }
+
+    @Override
+    public String getIaasDevice(String device) {
+        return MockIaasService.getInstance().getIaasDevice(device);
+    }
+
+    @Override
+    public void allocateIpAddress(String clusterId, MemberContext memberContext, Partition partition,
+                                  String cartridgeType, NodeMetadata node) {
+        MockIaasService.getInstance().allocateIpAddress(clusterId, memberContext, partition, cartridgeType, node);
+    }
+
+    @Override
+    public void setDynamicPayload(byte[] payload) {
+        MockIaasService.getInstance().setDynamicPayload(payload);
+    }
+
+    @Override
+    public void terminateInstance(MemberContext memberContext) throws InvalidCartridgeTypeException, InvalidMemberException {
+        MockIaasService.getInstance().terminateInstance(memberContext);
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/48c36407/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/MockIaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/MockIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/MockIaas.java
deleted file mode 100644
index bfe6306..0000000
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/MockIaas.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-
-package org.apache.stratos.cloud.controller.iaases.mock;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cloud.controller.domain.ClusterContext;
-import org.apache.stratos.cloud.controller.domain.IaasProvider;
-import org.apache.stratos.cloud.controller.domain.MemberContext;
-import org.apache.stratos.cloud.controller.domain.Partition;
-import org.apache.stratos.cloud.controller.exception.*;
-import org.apache.stratos.cloud.controller.iaases.Iaas;
-import org.apache.stratos.cloud.controller.iaases.validators.PartitionValidator;
-import org.apache.stratos.cloud.controller.registry.RegistryManager;
-import org.apache.stratos.common.threading.StratosThreadPool;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.wso2.carbon.registry.core.exceptions.RegistryException;
-
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ExecutorService;
-
-/**
- * Mock IaaS definition. This simulates an infrastructure as a service platform by creating mock members
- * and publishing member lifecycle events. Each member will publish mock statistics values after publishing
- * instance started, instance activated events.
- */
-public class MockIaas extends Iaas {
-
-    private static final Log log = LogFactory.getLog(MockIaas.class);
-    private static final String MOCK_IAAS_MEMBERS = "/mock/iaas/members";
-
-    private ExecutorService executorService;
-    private MockPartitionValidator partitionValidator;
-    private ConcurrentHashMap<String, MockMember> membersMap;
-
-    public MockIaas(IaasProvider iaasProvider) {
-        super(iaasProvider);
-        executorService = StratosThreadPool.getExecutorService("MOCK_IAAS_THREAD_EXECUTOR", 100);
-        partitionValidator = new MockPartitionValidator();
-        membersMap = readFromRegistry();
-        if(membersMap != null) {
-            // Start existing members
-            for(MockMember mockMember : membersMap.values()) {
-                executorService.submit(mockMember);
-            }
-        } else {
-            // No members found in registry, create new map
-            membersMap = new ConcurrentHashMap<String, MockMember>();
-        }
-    }
-
-    @Override
-    public void initialize() {
-    }
-
-    @Override
-    public NodeMetadata createInstance(ClusterContext clusterContext, MemberContext memberContext) {
-        synchronized (MockIaas.class) {
-            // Create mock member instance
-            MockMemberContext mockMemberContext = new MockMemberContext(clusterContext.getCartridgeType(),
-                    clusterContext.getClusterId(), memberContext.getMemberId(), memberContext.getNetworkPartitionId(),
-                    memberContext.getPartition().getId(), memberContext.getInstanceId());
-            MockMember mockMember = new MockMember(mockMemberContext);
-            membersMap.put(mockMember.getMockMemberContext().getMemberId(), mockMember);
-            executorService.submit(mockMember);
-
-            // Prepare node metadata
-            MockNodeMetadata nodeMetadata = new MockNodeMetadata();
-            nodeMetadata.setId(UUID.randomUUID().toString());
-
-            // Persist changes
-            persistInRegistry();
-
-            return nodeMetadata;
-        }
-    }
-
-    private void persistInRegistry() {
-        try {
-            RegistryManager.getInstance().persist(MOCK_IAAS_MEMBERS, membersMap);
-        } catch (RegistryException e) {
-            log.error("Could not persist mock iaas members in registry", e);
-        };
-    }
-
-    private ConcurrentHashMap<String, MockMember> readFromRegistry() {
-        return (ConcurrentHashMap<String, MockMember>) RegistryManager.getInstance().read(MOCK_IAAS_MEMBERS);
-    }
-
-    @Override
-    public void allocateIpAddress(String clusterId, MemberContext memberContext, Partition partition,
-                                  String cartridgeType, NodeMetadata node) {
-        // Allocate mock ip addresses
-        memberContext.setPrivateIpAddress(MockIPAddressPool.getInstance().getNextPrivateIpAddress());
-        memberContext.setPublicIpAddress(MockIPAddressPool.getInstance().getNextPublicIpAddress());
-    }
-
-    @Override
-    public void releaseAddress(String ip) {
-
-    }
-
-    @Override
-    public boolean isValidRegion(String region) throws InvalidRegionException {
-        return true;
-    }
-
-    @Override
-    public boolean isValidZone(String region, String zone) throws InvalidZoneException, InvalidRegionException {
-        return true;
-    }
-
-    @Override
-    public boolean isValidHost(String zone, String host) throws InvalidHostException {
-        return true;
-    }
-
-    @Override
-    public PartitionValidator getPartitionValidator() {
-        return partitionValidator;
-    }
-
-    @Override
-    public String createVolume(int sizeGB, String snapshotId) {
-        return null;
-    }
-
-    @Override
-    public String attachVolume(String instanceId, String volumeId, String deviceName) {
-        return null;
-    }
-
-    @Override
-    public void detachVolume(String instanceId, String volumeId) {
-
-    }
-
-    @Override
-    public void deleteVolume(String volumeId) {
-
-    }
-
-    @Override
-    public String getIaasDevice(String device) {
-        return null;
-    }
-
-    @Override
-    public void setDynamicPayload(byte[] payload) {
-
-    }
-
-    @Override
-    public void terminateInstance(MemberContext memberContext) throws InvalidCartridgeTypeException, InvalidMemberException {
-        synchronized (MockIaas.class) {
-            MockMember mockMember = membersMap.get(memberContext.getMemberId());
-            if (mockMember != null) {
-                mockMember.terminate();
-                membersMap.remove(memberContext.getMemberId());
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/48c36407/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/MockIaasService.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/MockIaasService.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/MockIaasService.java
new file mode 100644
index 0000000..4bf9dd4
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/MockIaasService.java
@@ -0,0 +1,187 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
+package org.apache.stratos.cloud.controller.iaases.mock;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.cloud.controller.domain.ClusterContext;
+import org.apache.stratos.cloud.controller.domain.MemberContext;
+import org.apache.stratos.cloud.controller.domain.Partition;
+import org.apache.stratos.cloud.controller.exception.*;
+import org.apache.stratos.cloud.controller.iaases.validators.PartitionValidator;
+import org.apache.stratos.cloud.controller.registry.RegistryManager;
+import org.apache.stratos.common.threading.StratosThreadPool;
+import org.jclouds.compute.domain.NodeMetadata;
+import org.wso2.carbon.registry.core.exceptions.RegistryException;
+
+import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ExecutorService;
+
+/**
+ * Mock IaaS service implementation. This is a singleton class that simulates a standard Infrastructure as a Service
+ * platform by creating mock members and managing their lifecycle states.
+ *
+ * How does this work:
+ * - Mock IaaS starts a Mock Member thread or each instance created
+ * - A sample private IP and a public IP will be assigned to the instance
+ * - Mock Member will publish Instance Started and Instance Activated events once the thread is started
+ * - Afterwards it will start publishing sample health statistics values to CEP
+ * - If the Mock IaaS was asked to terminate an instance it will stop the relevant thread
+ */
+public class MockIaasService {
+
+    private static final Log log = LogFactory.getLog(MockIaasService.class);
+    private static final String MOCK_IAAS_MEMBERS = "/mock/iaas/members";
+    private static volatile MockIaasService instance;
+
+    private ExecutorService executorService;
+    private MockPartitionValidator partitionValidator;
+    private ConcurrentHashMap<String, MockMember> membersMap;
+
+    private MockIaasService() {
+        super();
+        executorService = StratosThreadPool.getExecutorService("MOCK_IAAS_THREAD_EXECUTOR", 100);
+        partitionValidator = new MockPartitionValidator();
+        membersMap = readFromRegistry();
+        if(membersMap == null) {
+            // No members found in registry, create a new map
+            membersMap = new ConcurrentHashMap<String, MockMember>();
+        }
+    }
+
+    public static MockIaasService getInstance() {
+        if (instance == null) {
+            synchronized (MockIaasService.class) {
+                if (instance == null) {
+                    instance = new MockIaasService();
+                }
+            }
+        }
+        return instance;
+    }
+
+    /**
+     * Start mock members if present in registry
+     */
+    public static void startMockMembersIfPresentInRegistry() {
+        ConcurrentHashMap<String, MockMember> membersMap = readFromRegistry();
+        if(membersMap != null) {
+            ExecutorService executorService = StratosThreadPool.getExecutorService("MOCK_IAAS_THREAD_EXECUTOR", 100);
+            for (MockMember mockMember : membersMap.values()) {
+                executorService.submit(mockMember);
+            }
+        }
+    }
+
+    public NodeMetadata createInstance(ClusterContext clusterContext, MemberContext memberContext) {
+        synchronized (MockIaasService.class) {
+            // Create mock member instance
+            MockMemberContext mockMemberContext = new MockMemberContext(clusterContext.getCartridgeType(),
+                    clusterContext.getClusterId(), memberContext.getMemberId(), memberContext.getNetworkPartitionId(),
+                    memberContext.getPartition().getId(), memberContext.getInstanceId());
+            MockMember mockMember = new MockMember(mockMemberContext);
+            membersMap.put(mockMember.getMockMemberContext().getMemberId(), mockMember);
+            executorService.submit(mockMember);
+
+            // Prepare node metadata
+            MockNodeMetadata nodeMetadata = new MockNodeMetadata();
+            nodeMetadata.setId(UUID.randomUUID().toString());
+
+            // Persist changes
+            persistInRegistry();
+
+            return nodeMetadata;
+        }
+    }
+
+    private void persistInRegistry() {
+        try {
+            RegistryManager.getInstance().persist(MOCK_IAAS_MEMBERS, membersMap);
+        } catch (RegistryException e) {
+            log.error("Could not persist mock iaas members in registry", e);
+        };
+    }
+
+    private static ConcurrentHashMap<String, MockMember> readFromRegistry() {
+        return (ConcurrentHashMap<String, MockMember>) RegistryManager.getInstance().read(MOCK_IAAS_MEMBERS);
+    }
+
+    public void allocateIpAddress(String clusterId, MemberContext memberContext, Partition partition,
+                                  String cartridgeType, NodeMetadata node) {
+        // Allocate mock ip addresses
+        memberContext.setPrivateIpAddress(MockIPAddressPool.getInstance().getNextPrivateIpAddress());
+        memberContext.setPublicIpAddress(MockIPAddressPool.getInstance().getNextPublicIpAddress());
+    }
+
+    public void releaseAddress(String ip) {
+
+    }
+
+    public boolean isValidRegion(String region) throws InvalidRegionException {
+        return true;
+    }
+
+    public boolean isValidZone(String region, String zone) throws InvalidZoneException, InvalidRegionException {
+        return true;
+    }
+
+    public boolean isValidHost(String zone, String host) throws InvalidHostException {
+        return true;
+    }
+
+    public PartitionValidator getPartitionValidator() {
+        return partitionValidator;
+    }
+
+    public String createVolume(int sizeGB, String snapshotId) {
+        return null;
+    }
+
+    public String attachVolume(String instanceId, String volumeId, String deviceName) {
+        return null;
+    }
+
+    public void detachVolume(String instanceId, String volumeId) {
+
+    }
+
+    public void deleteVolume(String volumeId) {
+
+    }
+
+    public String getIaasDevice(String device) {
+        return null;
+    }
+
+    public void setDynamicPayload(byte[] payload) {
+
+    }
+
+    public void terminateInstance(MemberContext memberContext) throws InvalidCartridgeTypeException, InvalidMemberException {
+        synchronized (MockIaasService.class) {
+            MockMember mockMember = membersMap.get(memberContext.getMemberId());
+            if (mockMember != null) {
+                mockMember.terminate();
+                membersMap.remove(memberContext.getMemberId());
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/48c36407/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
index ed1b0f5..b60021b 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
@@ -25,6 +25,7 @@ import com.hazelcast.core.HazelcastInstance;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.cloud.controller.context.CloudControllerContext;
+import org.apache.stratos.cloud.controller.iaases.mock.MockIaasService;
 import org.apache.stratos.cloud.controller.messaging.receiver.application.ApplicationTopicReceiver;
 import org.apache.stratos.cloud.controller.messaging.receiver.cluster.status.ClusterStatusTopicReceiver;
 import org.apache.stratos.cloud.controller.exception.CloudControllerException;
@@ -105,6 +106,9 @@ public class CloudControllerServiceComponent {
             } else {
                 executeCoordinatorTasks();
             }
+
+            // Start mock members if present in registry
+            MockIaasService.startMockMembersIfPresentInRegistry();
 		} catch (Throwable e) {
 			log.error("******* Cloud Controller Service bundle is failed to activate ****", e);
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/48c36407/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/registry/RegistryManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/registry/RegistryManager.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/registry/RegistryManager.java
index bcb4e7a..20921e8 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/registry/RegistryManager.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/registry/RegistryManager.java
@@ -1,4 +1,3 @@
-package org.apache.stratos.cloud.controller.registry;
 /*
  *
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -20,14 +19,13 @@ package org.apache.stratos.cloud.controller.registry;
  *
 */
 
+package org.apache.stratos.cloud.controller.registry;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cloud.controller.context.CloudControllerContext;
 import org.apache.stratos.cloud.controller.exception.CloudControllerException;
 import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
 import org.apache.stratos.cloud.controller.internal.ServiceReferenceHolder;
-import org.apache.stratos.messaging.domain.topology.Topology;
 import org.wso2.carbon.context.PrivilegedCarbonContext;
 import org.wso2.carbon.registry.core.Registry;
 import org.wso2.carbon.registry.core.Resource;

http://git-wip-us.apache.org/repos/asf/stratos/blob/48c36407/features/cloud-controller/org.apache.stratos.cloud.controller.feature/src/main/resources/conf/cloud-controller.xml
----------------------------------------------------------------------
diff --git a/features/cloud-controller/org.apache.stratos.cloud.controller.feature/src/main/resources/conf/cloud-controller.xml b/features/cloud-controller/org.apache.stratos.cloud.controller.feature/src/main/resources/conf/cloud-controller.xml
index 8b6f405..c246e67 100644
--- a/features/cloud-controller/org.apache.stratos.cloud.controller.feature/src/main/resources/conf/cloud-controller.xml
+++ b/features/cloud-controller/org.apache.stratos.cloud.controller.feature/src/main/resources/conf/cloud-controller.xml
@@ -68,7 +68,7 @@
             <credential svns:secretAlias="cloud.controller.docker.credential">credential</credential>
         </iaasProvider>
         <iaasProvider type="mock" name="Mock">
-            <className>org.apache.stratos.cloud.controller.iaases.mock.MockIaas</className>
+            <className>org.apache.stratos.cloud.controller.iaases.MockIaas</className>
             <provider>mock</provider>
             <identity svns:secretAlias="cloud.controller.docker.identity">identity</identity>
             <credential svns:secretAlias="cloud.controller.docker.credential">credential</credential>