You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2014/11/25 14:30:10 UTC
[1/3] stratos git commit: [STRATOS-923] - fixed
Repository: stratos
Updated Branches:
refs/heads/master ce1ca8de0 -> 857c294e7
http://git-wip-us.apache.org/repos/asf/stratos/blob/9255d0ee/service-stubs/org.apache.stratos.cloud.controller.service.stub/src/main/resources/CloudControllerService.wsdl
----------------------------------------------------------------------
diff --git a/service-stubs/org.apache.stratos.cloud.controller.service.stub/src/main/resources/CloudControllerService.wsdl b/service-stubs/org.apache.stratos.cloud.controller.service.stub/src/main/resources/CloudControllerService.wsdl
index 469e5bb..933dfc1 100644
--- a/service-stubs/org.apache.stratos.cloud.controller.service.stub/src/main/resources/CloudControllerService.wsdl
+++ b/service-stubs/org.apache.stratos.cloud.controller.service.stub/src/main/resources/CloudControllerService.wsdl
@@ -1,10 +1,10 @@
-<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ax29="http://pojo.controller.cloud.stratos.apache.org/xsd" xmlns:ns="http://impl.controller.cloud.stratos.apache.org" xmlns:ax25="http://partition.deployment.controller.cloud.stratos.apache.org/xsd" xmlns:ax26="http://common.stratos.apache.org/xsd" xmlns:ax23="http://exception.controller.cloud.stratos.apache.org/xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://impl.controller.cloud.stratos.apache.org">
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:ax230="http://partition.deployment.controller.cloud.stratos.apache.org/xsd" xmlns:ns="http://impl.controller.cloud.stratos.apache.org" xmlns:ax231="http://common.stratos.apache.org/xsd" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ax226="http://exception.controller.cloud.stratos.apache.org/xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ax228="http://pojo.controller.cloud.stratos.apache.org/xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://impl.controller.cloud.stratos.apache.org">
<wsdl:documentation>CloudControllerService</wsdl:documentation>
<wsdl:types>
<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://common.stratos.apache.org/xsd">
<xs:complexType name="Properties">
<xs:sequence>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="properties" nillable="true" type="ax26:Property"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="properties" nillable="true" type="ax231:Property"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Property">
@@ -15,421 +15,449 @@
</xs:complexType>
</xs:schema>
<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://exception.controller.cloud.stratos.apache.org/xsd">
- <xs:complexType name="InvalidPartitionException">
+ <xs:complexType name="UnregisteredClusterException">
<xs:sequence>
<xs:element minOccurs="0" name="message" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
- <xs:complexType name="InvalidCartridgeTypeException">
+ <xs:complexType name="InvalidServiceGroupException">
<xs:sequence>
<xs:element minOccurs="0" name="message" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
- <xs:complexType name="UnregisteredCartridgeException">
+ <xs:complexType name="InvalidClusterException">
<xs:sequence>
<xs:element minOccurs="0" name="message" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
- <xs:complexType name="UnregisteredClusterException">
+ <xs:complexType name="UnregisteredCartridgeException">
<xs:sequence>
<xs:element minOccurs="0" name="message" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
- <xs:complexType name="InvalidServiceGroupException">
+ <xs:complexType name="MemberTerminationFailedException">
<xs:sequence>
<xs:element minOccurs="0" name="message" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
- <xs:complexType name="InvalidMemberException">
+ <xs:complexType name="ApplicationClusterRegistrationException">
<xs:sequence>
<xs:element minOccurs="0" name="message" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
- <xs:complexType name="MemberTerminationFailedException">
+ <xs:complexType name="InvalidCartridgeDefinitionException">
<xs:sequence>
<xs:element minOccurs="0" name="message" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
- <xs:complexType name="InvalidClusterException">
+ <xs:complexType name="InvalidIaasProviderException">
<xs:sequence>
<xs:element minOccurs="0" name="message" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
- <xs:complexType name="InvalidIaasProviderException">
+ <xs:complexType name="InvalidPartitionException">
<xs:sequence>
<xs:element minOccurs="0" name="message" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
- <xs:complexType name="InvalidCartridgeDefinitionException">
+ <xs:complexType name="InvalidMemberException">
<xs:sequence>
<xs:element minOccurs="0" name="message" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
- <xs:complexType name="ApplicationClusterRegistrationException">
+ <xs:complexType name="InvalidCartridgeTypeException">
<xs:sequence>
<xs:element minOccurs="0" name="message" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
- <xs:schema xmlns:ax212="http://pojo.controller.cloud.stratos.apache.org/xsd" xmlns:ax28="http://partition.deployment.controller.cloud.stratos.apache.org/xsd" xmlns:ax24="http://exception.controller.cloud.stratos.apache.org/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://impl.controller.cloud.stratos.apache.org">
+ <xs:schema xmlns:ax229="http://pojo.controller.cloud.stratos.apache.org/xsd" xmlns:ax227="http://exception.controller.cloud.stratos.apache.org/xsd" xmlns:ax235="http://partition.deployment.controller.cloud.stratos.apache.org/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://impl.controller.cloud.stratos.apache.org">
<xs:import namespace="http://exception.controller.cloud.stratos.apache.org/xsd"></xs:import>
- <xs:import namespace="http://partition.deployment.controller.cloud.stratos.apache.org/xsd"></xs:import>
<xs:import namespace="http://pojo.controller.cloud.stratos.apache.org/xsd"></xs:import>
- <xs:element name="CloudControllerServiceInvalidPartitionException">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" name="InvalidPartitionException" nillable="true" type="ax23:InvalidPartitionException"></xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="validatePartition">
+ <xs:import namespace="http://partition.deployment.controller.cloud.stratos.apache.org/xsd"></xs:import>
+ <xs:element name="CloudControllerServiceUnregisteredClusterException">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="partition" nillable="true" type="ax28:Partition"></xs:element>
+ <xs:element minOccurs="0" name="UnregisteredClusterException" nillable="true" type="ax226:UnregisteredClusterException"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="validatePartitionResponse">
+ <xs:element name="unregisterService">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="return" type="xs:boolean"></xs:element>
+ <xs:element minOccurs="0" name="clusterId" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="CloudControllerServiceInvalidCartridgeTypeException">
+ <xs:element name="CloudControllerServiceInvalidServiceGroupException">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="InvalidCartridgeTypeException" nillable="true" type="ax23:InvalidCartridgeTypeException"></xs:element>
+ <xs:element minOccurs="0" name="InvalidServiceGroupException" nillable="true" type="ax226:InvalidServiceGroupException"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="validateDeploymentPolicy">
+ <xs:element name="getServiceGroup">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="cartridgeType" nillable="true" type="xs:string"></xs:element>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="partitions" nillable="true" type="ax28:Partition"></xs:element>
+ <xs:element minOccurs="0" name="name" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="validateDeploymentPolicyResponse">
+ <xs:element name="getServiceGroupResponse">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="return" type="xs:boolean"></xs:element>
+ <xs:element minOccurs="0" name="return" nillable="true" type="ax229:ServiceGroup"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="CloudControllerServiceUnregisteredCartridgeException">
+ <xs:element name="CloudControllerServiceInvalidClusterException">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="UnregisteredCartridgeException" nillable="true" type="ax23:UnregisteredCartridgeException"></xs:element>
+ <xs:element minOccurs="0" name="InvalidClusterException" nillable="true" type="ax226:InvalidClusterException"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="updateContainers">
+ <xs:element name="terminateAllContainers">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="clusterId" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="replicas" type="xs:int"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="updateContainersResponse">
+ <xs:element name="terminateAllContainersResponse">
<xs:complexType>
<xs:sequence>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="ax29:MemberContext"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="ax229:MemberContext"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="CloudControllerServiceUnregisteredClusterException">
+ <xs:element name="CloudControllerServiceUnregisteredCartridgeException">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="UnregisteredClusterException" nillable="true" type="ax23:UnregisteredClusterException"></xs:element>
+ <xs:element minOccurs="0" name="UnregisteredCartridgeException" nillable="true" type="ax226:UnregisteredCartridgeException"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="unregisterService">
+ <xs:element name="updateContainers">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="clusterId" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="replicas" type="xs:int"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="unregisterDockerService">
+ <xs:element name="updateContainersResponse">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="clusterId" nillable="true" type="xs:string"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="ax229:MemberContext"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="CloudControllerServiceInvalidServiceGroupException">
+ <xs:element name="CloudControllerServiceMemberTerminationFailedException">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="InvalidServiceGroupException" nillable="true" type="ax23:InvalidServiceGroupException"></xs:element>
+ <xs:element minOccurs="0" name="MemberTerminationFailedException" nillable="true" type="ax226:MemberTerminationFailedException"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="undeployServiceGroup">
+ <xs:element name="terminateContainer">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="name" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="memberId" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="undeployCartridgeDefinition">
+ <xs:element name="terminateContainerResponse">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="cartridgeType" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="return" nillable="true" type="ax229:MemberContext"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="CloudControllerServiceInvalidMemberException">
+ <xs:element name="CloudControllerServiceApplicationClusterRegistrationException">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="InvalidMemberException" nillable="true" type="ax23:InvalidMemberException"></xs:element>
+ <xs:element minOccurs="0" name="ApplicationClusterRegistrationException" nillable="true" type="ax226:ApplicationClusterRegistrationException"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="terminateInstance">
+ <xs:element name="createApplicationClusters">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="memberId" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="appId" nillable="true" type="xs:string"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="appClustersContexts" nillable="true" type="ax229:ApplicationClusterContextDTO"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="CloudControllerServiceMemberTerminationFailedException">
+ <xs:element name="getCartridgeInfo">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="MemberTerminationFailedException" nillable="true" type="ax23:MemberTerminationFailedException"></xs:element>
+ <xs:element minOccurs="0" name="cartridgeType" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="terminateContainer">
+ <xs:element name="getCartridgeInfoResponse">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="memberId" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="return" nillable="true" type="ax229:CartridgeInfo"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="terminateContainerResponse">
+ <xs:element name="CloudControllerServiceInvalidCartridgeDefinitionException">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="return" nillable="true" type="ax29:MemberContext"></xs:element>
+ <xs:element minOccurs="0" name="InvalidCartridgeDefinitionException" nillable="true" type="ax226:InvalidCartridgeDefinitionException"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="CloudControllerServiceInvalidClusterException">
+ <xs:element name="CloudControllerServiceInvalidIaasProviderException">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="InvalidClusterException" nillable="true" type="ax23:InvalidClusterException"></xs:element>
+ <xs:element minOccurs="0" name="InvalidIaasProviderException" nillable="true" type="ax226:InvalidIaasProviderException"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="terminateAllInstances">
+ <xs:element name="deployCartridgeDefinition">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="clusterId" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="cartridgeConfig" nillable="true" type="ax229:CartridgeConfig"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="terminateAllContainers">
+ <xs:element name="getClusterContext">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="clusterId" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="terminateAllContainersResponse">
+ <xs:element name="getClusterContextResponse">
<xs:complexType>
<xs:sequence>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="ax29:MemberContext"></xs:element>
+ <xs:element minOccurs="0" name="return" nillable="true" type="ax229:ClusterContext"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="CloudControllerServiceInvalidIaasProviderException">
+ <xs:element name="CloudControllerServiceInvalidPartitionException">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="InvalidIaasProviderException" nillable="true" type="ax23:InvalidIaasProviderException"></xs:element>
+ <xs:element minOccurs="0" name="InvalidPartitionException" nillable="true" type="ax226:InvalidPartitionException"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="startInstance">
+ <xs:element name="validatePartition">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="memberContext" nillable="true" type="ax29:MemberContext"></xs:element>
+ <xs:element minOccurs="0" name="partition" nillable="true" type="ax230:Partition"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="startInstanceResponse">
+ <xs:element name="validatePartitionResponse">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="return" nillable="true" type="ax29:MemberContext"></xs:element>
+ <xs:element minOccurs="0" name="return" type="xs:boolean"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="startContainers">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="containerClusterContext" nillable="true" type="ax29:ContainerClusterContext"></xs:element>
+ <xs:element minOccurs="0" name="containerClusterContext" nillable="true" type="ax229:ContainerClusterContext"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="startContainersResponse">
<xs:complexType>
<xs:sequence>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="ax29:MemberContext"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="ax229:MemberContext"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="registerService">
+ <xs:element name="CloudControllerServiceInvalidMemberException">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="registrant" nillable="true" type="ax29:Registrant"></xs:element>
+ <xs:element minOccurs="0" name="InvalidMemberException" nillable="true" type="ax226:InvalidMemberException"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="registerServiceResponse">
+ <xs:element name="CloudControllerServiceInvalidCartridgeTypeException">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="return" type="xs:boolean"></xs:element>
+ <xs:element minOccurs="0" name="InvalidCartridgeTypeException" nillable="true" type="ax226:InvalidCartridgeTypeException"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="getServiceGroupSubGroups">
+ <xs:element name="terminateInstance">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="name" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="memberId" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="getServiceGroupSubGroupsResponse">
+ <xs:element name="terminateAllInstances">
<xs:complexType>
<xs:sequence>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="clusterId" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="getServiceGroupDependencies">
+ <xs:element name="getRegisteredCartridges">
+ <xs:complexType>
+ <xs:sequence></xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="getRegisteredCartridgesResponse">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="name" nillable="true" type="xs:string"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="getServiceGroupDependenciesResponse">
+ <xs:element name="unregisterDockerService">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="return" nillable="true" type="ax29:Dependencies"></xs:element>
+ <xs:element minOccurs="0" name="clusterId" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="getServiceGroupCartridges">
+ <xs:element name="deployServiceGroup">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="name" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="servicegroup" nillable="true" type="ax229:ServiceGroup"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="getServiceGroupCartridgesResponse">
+ <xs:element name="undeployServiceGroup">
<xs:complexType>
<xs:sequence>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="name" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="getServiceGroup">
+ <xs:element name="validateDeploymentPolicy">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="name" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="cartridgeType" nillable="true" type="xs:string"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="partitions" nillable="true" type="ax230:Partition"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="getServiceGroupResponse">
+ <xs:element name="validateDeploymentPolicyResponse">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="return" nillable="true" type="ax29:ServiceGroup"></xs:element>
+ <xs:element minOccurs="0" name="return" type="xs:boolean"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="getRegisteredCartridges">
+ <xs:element name="undeployCartridgeDefinition">
<xs:complexType>
- <xs:sequence></xs:sequence>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="cartridgeType" nillable="true" type="xs:string"></xs:element>
+ </xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="getRegisteredCartridgesResponse">
+ <xs:element name="getServiceGroupSubGroups">
<xs:complexType>
<xs:sequence>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="name" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="getClusterContext">
+ <xs:element name="getServiceGroupSubGroupsResponse">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="clusterId" nillable="true" type="xs:string"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="getClusterContextResponse">
+ <xs:element name="getServiceGroupCartridges">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="return" nillable="true" type="ax29:ClusterContext"></xs:element>
+ <xs:element minOccurs="0" name="name" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="getCartridgeInfo">
+ <xs:element name="getServiceGroupCartridgesResponse">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="cartridgeType" nillable="true" type="xs:string"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="getCartridgeInfoResponse">
+ <xs:element name="getServiceGroupDependencies">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="return" nillable="true" type="ax29:CartridgeInfo"></xs:element>
+ <xs:element minOccurs="0" name="name" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="deployServiceGroup">
+ <xs:element name="getServiceGroupDependenciesResponse">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="servicegroup" nillable="true" type="ax29:ServiceGroup"></xs:element>
+ <xs:element minOccurs="0" name="return" nillable="true" type="ax229:Dependencies"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="CloudControllerServiceInvalidCartridgeDefinitionException">
+ <xs:element name="startInstance">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="InvalidCartridgeDefinitionException" nillable="true" type="ax23:InvalidCartridgeDefinitionException"></xs:element>
+ <xs:element minOccurs="0" name="memberContext" nillable="true" type="ax229:MemberContext"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="deployCartridgeDefinition">
+ <xs:element name="startInstanceResponse">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="cartridgeConfig" nillable="true" type="ax29:CartridgeConfig"></xs:element>
+ <xs:element minOccurs="0" name="return" nillable="true" type="ax229:MemberContext"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="CloudControllerServiceApplicationClusterRegistrationException">
+ <xs:element name="registerService">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="ApplicationClusterRegistrationException" nillable="true" type="ax23:ApplicationClusterRegistrationException"></xs:element>
+ <xs:element minOccurs="0" name="registrant" nillable="true" type="ax229:Registrant"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="createApplicationClusters">
+ <xs:element name="registerServiceResponse">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" name="appId" nillable="true" type="xs:string"></xs:element>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="appClustersContexts" nillable="true" type="ax29:ApplicationClusterContextDTO"></xs:element>
+ <xs:element minOccurs="0" name="return" type="xs:boolean"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
- <xs:schema xmlns:ax210="http://partition.deployment.controller.cloud.stratos.apache.org/xsd" xmlns:ax211="http://common.stratos.apache.org/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://pojo.controller.cloud.stratos.apache.org/xsd">
+ <xs:schema xmlns:ax232="http://common.stratos.apache.org/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://partition.deployment.controller.cloud.stratos.apache.org/xsd">
+ <xs:import namespace="http://common.stratos.apache.org/xsd"></xs:import>
+ <xs:complexType name="Partition">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="description" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="id" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="isPublic" type="xs:boolean"></xs:element>
+ <xs:element minOccurs="0" name="partitionMax" type="xs:int"></xs:element>
+ <xs:element minOccurs="0" name="partitionMin" type="xs:int"></xs:element>
+ <xs:element minOccurs="0" name="properties" nillable="true" type="ax232:Properties"></xs:element>
+ <xs:element minOccurs="0" name="provider" nillable="true" type="xs:string"></xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:schema>
+ <xs:schema xmlns:ax233="http://partition.deployment.controller.cloud.stratos.apache.org/xsd" xmlns:ax234="http://common.stratos.apache.org/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://pojo.controller.cloud.stratos.apache.org/xsd">
<xs:import namespace="http://partition.deployment.controller.cloud.stratos.apache.org/xsd"></xs:import>
<xs:import namespace="http://common.stratos.apache.org/xsd"></xs:import>
+ <xs:complexType name="ServiceGroup">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="cartridges" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="dependencies" nillable="true" type="ax228:Dependencies"></xs:element>
+ <xs:element minOccurs="0" name="name" nillable="true" type="xs:string"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="subGroups" nillable="true" type="xs:string"></xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Dependencies">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="killBehaviour" nillable="true" type="xs:string"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="startupOrders" nillable="true" type="xs:string"></xs:element>
+ </xs:sequence>
+ </xs:complexType>
<xs:complexType name="MemberContext">
<xs:sequence>
<xs:element minOccurs="0" name="allocatedIpAddress" nillable="true" type="xs:string"></xs:element>
@@ -441,79 +469,30 @@
<xs:element minOccurs="0" name="memberId" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="networkPartitionId" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="nodeId" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="partition" nillable="true" type="ax210:Partition"></xs:element>
+ <xs:element minOccurs="0" name="obsoleteExpiryTime" type="xs:long"></xs:element>
+ <xs:element minOccurs="0" name="obsoleteInitTime" type="xs:long"></xs:element>
+ <xs:element minOccurs="0" name="partition" nillable="true" type="ax233:Partition"></xs:element>
<xs:element minOccurs="0" name="privateIpAddress" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="properties" nillable="true" type="ax211:Properties"></xs:element>
+ <xs:element minOccurs="0" name="properties" nillable="true" type="ax231:Properties"></xs:element>
<xs:element minOccurs="0" name="publicIpAddress" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
- <xs:complexType name="ContainerClusterContext">
- <xs:sequence>
- <xs:element minOccurs="0" name="clusterId" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="properties" nillable="true" type="ax211:Properties"></xs:element>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="Registrant">
+ <xs:complexType name="ApplicationClusterContextDTO">
<xs:sequence>
- <xs:element minOccurs="0" name="autoScalerPolicyName" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="autoscalePolicyName" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="cartridgeType" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="clusterId" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="deploymentPolicyName" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="hostName" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="payload" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="persistence" nillable="true" type="ax29:Persistence"></xs:element>
- <xs:element minOccurs="0" name="properties" nillable="true" type="ax211:Properties"></xs:element>
- <xs:element minOccurs="0" name="tenantRange" nillable="true" type="xs:string"></xs:element>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="Persistence">
- <xs:sequence>
- <xs:element minOccurs="0" name="persistanceRequired" type="xs:boolean"></xs:element>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="volumes" nillable="true" type="ax29:Volume"></xs:element>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="Volume">
- <xs:sequence>
- <xs:element minOccurs="0" name="device" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="iaasType" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="id" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="mappingPath" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="removeOntermination" type="xs:boolean"></xs:element>
- <xs:element minOccurs="0" name="size" type="xs:int"></xs:element>
- <xs:element minOccurs="0" name="snapshotId" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="volumeId" nillable="true" type="xs:string"></xs:element>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="Dependencies">
- <xs:sequence>
- <xs:element minOccurs="0" name="killBehaviour" nillable="true" type="xs:string"></xs:element>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="startupOrders" nillable="true" type="xs:string"></xs:element>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ServiceGroup">
- <xs:sequence>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="cartridges" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="dependencies" nillable="true" type="ax29:Dependencies"></xs:element>
- <xs:element minOccurs="0" name="name" nillable="true" type="xs:string"></xs:element>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="subGroups" nillable="true" type="xs:string"></xs:element>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ClusterContext">
- <xs:sequence>
- <xs:element minOccurs="0" name="cartridgeType" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="clusterId" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="hostName" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="lbCluster" type="xs:boolean"></xs:element>
- <xs:element minOccurs="0" name="payload" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="properties" nillable="true" type="ax211:Properties"></xs:element>
- <xs:element minOccurs="0" name="timeoutInMillis" type="xs:long"></xs:element>
- <xs:element minOccurs="0" name="volumeRequired" type="xs:boolean"></xs:element>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="volumes" nillable="true" type="ax29:Volume"></xs:element>
+ <xs:element minOccurs="0" name="properties" nillable="true" type="ax231:Properties"></xs:element>
+ <xs:element minOccurs="0" name="tenantRange" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="textPayload" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CartridgeInfo">
<xs:sequence>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="appTypes" nillable="true" type="ax29:AppType"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="appTypes" nillable="true" type="ax228:AppType"></xs:element>
<xs:element minOccurs="0" name="baseDir" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="defaultAutoscalingPolicy" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="defaultDeploymentPolicy" nillable="true" type="xs:string"></xs:element>
@@ -522,11 +501,11 @@
<xs:element minOccurs="0" name="displayName" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="hostName" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="isPublic" type="xs:boolean"></xs:element>
- <xs:element minOccurs="0" name="lbConfig" nillable="true" type="ax29:LoadbalancerConfig"></xs:element>
+ <xs:element minOccurs="0" name="lbConfig" nillable="true" type="ax228:LoadbalancerConfig"></xs:element>
<xs:element minOccurs="0" name="multiTenant" type="xs:boolean"></xs:element>
- <xs:element minOccurs="0" name="persistence" nillable="true" type="ax29:Persistence"></xs:element>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="portMappings" nillable="true" type="ax29:PortMapping"></xs:element>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="properties" nillable="true" type="ax211:Property"></xs:element>
+ <xs:element minOccurs="0" name="persistence" nillable="true" type="ax228:Persistence"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="portMappings" nillable="true" type="ax228:PortMapping"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="properties" nillable="true" type="ax231:Property"></xs:element>
<xs:element minOccurs="0" name="provider" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="serviceGroup" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="type" nillable="true" type="xs:string"></xs:element>
@@ -541,10 +520,28 @@
</xs:complexType>
<xs:complexType name="LoadbalancerConfig">
<xs:sequence>
- <xs:element minOccurs="0" name="properties" nillable="true" type="ax211:Properties"></xs:element>
+ <xs:element minOccurs="0" name="properties" nillable="true" type="ax231:Properties"></xs:element>
<xs:element minOccurs="0" name="type" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
+ <xs:complexType name="Persistence">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="persistanceRequired" type="xs:boolean"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="volumes" nillable="true" type="ax228:Volume"></xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Volume">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="device" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="iaasType" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="id" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="mappingPath" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="removeOntermination" type="xs:boolean"></xs:element>
+ <xs:element minOccurs="0" name="size" type="xs:int"></xs:element>
+ <xs:element minOccurs="0" name="snapshotId" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="volumeId" nillable="true" type="xs:string"></xs:element>
+ </xs:sequence>
+ </xs:complexType>
<xs:complexType name="PortMapping">
<xs:sequence>
<xs:element minOccurs="0" name="port" nillable="true" type="xs:string"></xs:element>
@@ -555,7 +552,7 @@
<xs:complexType name="CartridgeConfig">
<xs:sequence>
<xs:element minOccurs="0" name="baseDir" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="container" nillable="true" type="ax29:Container"></xs:element>
+ <xs:element minOccurs="0" name="container" nillable="true" type="ax228:Container"></xs:element>
<xs:element minOccurs="0" name="defaultAutoscalingPolicy" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="defaultDeploymentPolicy" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="deployerType" nillable="true" type="xs:string"></xs:element>
@@ -564,13 +561,13 @@
<xs:element minOccurs="0" name="displayName" nillable="true" type="xs:string"></xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="exportingProperties" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="hostName" nillable="true" type="xs:string"></xs:element>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="iaasConfigs" nillable="true" type="ax29:IaasConfig"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="iaasConfigs" nillable="true" type="ax228:IaasConfig"></xs:element>
<xs:element minOccurs="0" name="isPublic" type="xs:boolean"></xs:element>
- <xs:element minOccurs="0" name="lbConfig" nillable="true" type="ax29:LoadbalancerConfig"></xs:element>
+ <xs:element minOccurs="0" name="lbConfig" nillable="true" type="ax228:LoadbalancerConfig"></xs:element>
<xs:element minOccurs="0" name="multiTenant" type="xs:boolean"></xs:element>
- <xs:element minOccurs="0" name="persistence" nillable="true" type="ax29:Persistence"></xs:element>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="portMappings" nillable="true" type="ax29:PortMapping"></xs:element>
- <xs:element minOccurs="0" name="properties" nillable="true" type="ax211:Properties"></xs:element>
+ <xs:element minOccurs="0" name="persistence" nillable="true" type="ax228:Persistence"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="portMappings" nillable="true" type="ax228:PortMapping"></xs:element>
+ <xs:element minOccurs="0" name="properties" nillable="true" type="ax231:Properties"></xs:element>
<xs:element minOccurs="0" name="provider" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="serviceGroup" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="type" nillable="true" type="xs:string"></xs:element>
@@ -592,16 +589,16 @@
<xs:element minOccurs="0" name="imageId" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="maxInstanceLimit" type="xs:int"></xs:element>
<xs:element minOccurs="0" name="name" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="networkInterfaces" nillable="true" type="ax29:NetworkInterfaces"></xs:element>
+ <xs:element minOccurs="0" name="networkInterfaces" nillable="true" type="ax228:NetworkInterfaces"></xs:element>
<xs:element minOccurs="0" name="payload" nillable="true" type="xs:base64Binary"></xs:element>
- <xs:element minOccurs="0" name="properties" nillable="true" type="ax211:Properties"></xs:element>
+ <xs:element minOccurs="0" name="properties" nillable="true" type="ax231:Properties"></xs:element>
<xs:element minOccurs="0" name="provider" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="type" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="NetworkInterfaces">
<xs:sequence>
- <xs:element maxOccurs="unbounded" minOccurs="0" name="networkInterfaces" nillable="true" type="ax29:NetworkInterface"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="networkInterfaces" nillable="true" type="ax228:NetworkInterface"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="NetworkInterface">
@@ -611,31 +608,36 @@
<xs:element minOccurs="0" name="portUuid" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
- <xs:complexType name="ApplicationClusterContextDTO">
+ <xs:complexType name="ClusterContext">
<xs:sequence>
- <xs:element minOccurs="0" name="autoscalePolicyName" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="cartridgeType" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="clusterId" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="deploymentPolicyName" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="hostName" nillable="true" type="xs:string"></xs:element>
<xs:element minOccurs="0" name="lbCluster" type="xs:boolean"></xs:element>
- <xs:element minOccurs="0" name="properties" nillable="true" type="ax211:Properties"></xs:element>
- <xs:element minOccurs="0" name="tenantRange" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="textPayload" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="payload" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="properties" nillable="true" type="ax231:Properties"></xs:element>
+ <xs:element minOccurs="0" name="timeoutInMillis" type="xs:long"></xs:element>
+ <xs:element minOccurs="0" name="volumeRequired" type="xs:boolean"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="volumes" nillable="true" type="ax228:Volume"></xs:element>
</xs:sequence>
</xs:complexType>
- </xs:schema>
- <xs:schema xmlns:ax27="http://common.stratos.apache.org/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://partition.deployment.controller.cloud.stratos.apache.org/xsd">
- <xs:import namespace="http://common.stratos.apache.org/xsd"></xs:import>
- <xs:complexType name="Partition">
+ <xs:complexType name="ContainerClusterContext">
<xs:sequence>
- <xs:element minOccurs="0" name="description" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="id" nillable="true" type="xs:string"></xs:element>
- <xs:element minOccurs="0" name="isPublic" type="xs:boolean"></xs:element>
- <xs:element minOccurs="0" name="partitionMax" type="xs:int"></xs:element>
- <xs:element minOccurs="0" name="partitionMin" type="xs:int"></xs:element>
- <xs:element minOccurs="0" name="properties" nillable="true" type="ax27:Properties"></xs:element>
- <xs:element minOccurs="0" name="provider" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="clusterId" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="properties" nillable="true" type="ax231:Properties"></xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Registrant">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="autoScalerPolicyName" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="cartridgeType" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="clusterId" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="deploymentPolicyName" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="hostName" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="payload" nillable="true" type="xs:string"></xs:element>
+ <xs:element minOccurs="0" name="persistence" nillable="true" type="ax228:Persistence"></xs:element>
+ <xs:element minOccurs="0" name="properties" nillable="true" type="ax231:Properties"></xs:element>
+ <xs:element minOccurs="0" name="tenantRange" nillable="true" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
@@ -913,15 +915,6 @@
</wsdl:portType>
<wsdl:binding name="CloudControllerServiceSoap11Binding" type="ns:CloudControllerServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"></soap:binding>
- <wsdl:operation name="createApplicationClusters">
- <soap:operation soapAction="urn:createApplicationClusters" style="document"></soap:operation>
- <wsdl:input>
- <soap:body use="literal"></soap:body>
- </wsdl:input>
- <wsdl:fault name="CloudControllerServiceApplicationClusterRegistrationException">
- <soap:fault use="literal" name="CloudControllerServiceApplicationClusterRegistrationException"></soap:fault>
- </wsdl:fault>
- </wsdl:operation>
<wsdl:operation name="validatePartition">
<soap:operation soapAction="urn:validatePartition" style="document"></soap:operation>
<wsdl:input>
@@ -934,6 +927,15 @@
<soap:fault use="literal" name="CloudControllerServiceInvalidPartitionException"></soap:fault>
</wsdl:fault>
</wsdl:operation>
+ <wsdl:operation name="createApplicationClusters">
+ <soap:operation soapAction="urn:createApplicationClusters" style="document"></soap:operation>
+ <wsdl:input>
+ <soap:body use="literal"></soap:body>
+ </wsdl:input>
+ <wsdl:fault name="CloudControllerServiceApplicationClusterRegistrationException">
+ <soap:fault use="literal" name="CloudControllerServiceApplicationClusterRegistrationException"></soap:fault>
+ </wsdl:fault>
+ </wsdl:operation>
<wsdl:operation name="terminateContainer">
<soap:operation soapAction="urn:terminateContainer" style="document"></soap:operation>
<wsdl:input>
@@ -973,18 +975,6 @@
<soap:fault use="literal" name="CloudControllerServiceInvalidServiceGroupException"></soap:fault>
</wsdl:fault>
</wsdl:operation>
- <wsdl:operation name="terminateInstance">
- <soap:operation soapAction="urn:terminateInstance" style="document"></soap:operation>
- <wsdl:input>
- <soap:body use="literal"></soap:body>
- </wsdl:input>
- <wsdl:fault name="CloudControllerServiceInvalidMemberException">
- <soap:fault use="literal" name="CloudControllerServiceInvalidMemberException"></soap:fault>
- </wsdl:fault>
- <wsdl:fault name="CloudControllerServiceInvalidCartridgeTypeException">
- <soap:fault use="literal" name="CloudControllerServiceInvalidCartridgeTypeException"></soap:fault>
- </wsdl:fault>
- </wsdl:operation>
<wsdl:operation name="startContainers">
<soap:operation soapAction="urn:startContainers" style="document"></soap:operation>
<wsdl:input>
@@ -1009,8 +999,20 @@
<soap:fault use="literal" name="CloudControllerServiceUnregisteredCartridgeException"></soap:fault>
</wsdl:fault>
</wsdl:operation>
- <wsdl:operation name="getServiceGroup">
- <soap:operation soapAction="urn:getServiceGroup" style="document"></soap:operation>
+ <wsdl:operation name="terminateInstance">
+ <soap:operation soapAction="urn:terminateInstance" style="document"></soap:operation>
+ <wsdl:input>
+ <soap:body use="literal"></soap:body>
+ </wsdl:input>
+ <wsdl:fault name="CloudControllerServiceInvalidMemberException">
+ <soap:fault use="literal" name="CloudControllerServiceInvalidMemberException"></soap:fault>
+ </wsdl:fault>
+ <wsdl:fault name="CloudControllerServiceInvalidCartridgeTypeException">
+ <soap:fault use="literal" name="CloudControllerServiceInvalidCartridgeTypeException"></soap:fault>
+ </wsdl:fault>
+ </wsdl:operation>
+ <wsdl:operation name="getServiceGroupDependencies">
+ <soap:operation soapAction="urn:getServiceGroupDependencies" style="document"></soap:operation>
<wsdl:input>
<soap:body use="literal"></soap:body>
</wsdl:input>
@@ -1021,8 +1023,8 @@
<soap:fault use="literal" name="CloudControllerServiceInvalidServiceGroupException"></soap:fault>
</wsdl:fault>
</wsdl:operation>
- <wsdl:operation name="getServiceGroupDependencies">
- <soap:operation soapAction="urn:getServiceGroupDependencies" style="document"></soap:operation>
+ <wsdl:operation name="getServiceGroupSubGroups">
+ <soap:operation soapAction="urn:getServiceGroupSubGroups" style="document"></soap:operation>
<wsdl:input>
<soap:body use="literal"></soap:body>
</wsdl:input>
@@ -1033,31 +1035,31 @@
<soap:fault use="literal" name="CloudControllerServiceInvalidServiceGroupException"></soap:fault>
</wsdl:fault>
</wsdl:operation>
- <wsdl:operation name="deployCartridgeDefinition">
- <soap:operation soapAction="urn:deployCartridgeDefinition" style="document"></soap:operation>
+ <wsdl:operation name="getServiceGroup">
+ <soap:operation soapAction="urn:getServiceGroup" style="document"></soap:operation>
<wsdl:input>
<soap:body use="literal"></soap:body>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"></soap:body>
</wsdl:output>
- <wsdl:fault name="CloudControllerServiceInvalidCartridgeDefinitionException">
- <soap:fault use="literal" name="CloudControllerServiceInvalidCartridgeDefinitionException"></soap:fault>
- </wsdl:fault>
- <wsdl:fault name="CloudControllerServiceInvalidIaasProviderException">
- <soap:fault use="literal" name="CloudControllerServiceInvalidIaasProviderException"></soap:fault>
+ <wsdl:fault name="CloudControllerServiceInvalidServiceGroupException">
+ <soap:fault use="literal" name="CloudControllerServiceInvalidServiceGroupException"></soap:fault>
</wsdl:fault>
</wsdl:operation>
- <wsdl:operation name="getServiceGroupSubGroups">
- <soap:operation soapAction="urn:getServiceGroupSubGroups" style="document"></soap:operation>
+ <wsdl:operation name="deployCartridgeDefinition">
+ <soap:operation soapAction="urn:deployCartridgeDefinition" style="document"></soap:operation>
<wsdl:input>
<soap:body use="literal"></soap:body>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"></soap:body>
</wsdl:output>
- <wsdl:fault name="CloudControllerServiceInvalidServiceGroupException">
- <soap:fault use="literal" name="CloudControllerServiceInvalidServiceGroupException"></soap:fault>
+ <wsdl:fault name="CloudControllerServiceInvalidCartridgeDefinitionException">
+ <soap:fault use="literal" name="CloudControllerServiceInvalidCartridgeDefinitionException"></soap:fault>
+ </wsdl:fault>
+ <wsdl:fault name="CloudControllerServiceInvalidIaasProviderException">
+ <soap:fault use="literal" name="CloudControllerServiceInvalidIaasProviderException"></soap:fault>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="getCartridgeInfo">
@@ -1159,26 +1161,26 @@
<soap:fault use="literal" name="CloudControllerServiceUnregisteredCartridgeException"></soap:fault>
</wsdl:fault>
</wsdl:operation>
- <wsdl:operation name="getClusterContext">
- <soap:operation soapAction="urn:getClusterContext" style="document"></soap:operation>
+ <wsdl:operation name="updateContainers">
+ <soap:operation soapAction="urn:updateContainers" style="document"></soap:operation>
<wsdl:input>
<soap:body use="literal"></soap:body>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"></soap:body>
</wsdl:output>
+ <wsdl:fault name="CloudControllerServiceUnregisteredCartridgeException">
+ <soap:fault use="literal" name="CloudControllerServiceUnregisteredCartridgeException"></soap:fault>
+ </wsdl:fault>
</wsdl:operation>
- <wsdl:operation name="updateContainers">
- <soap:operation soapAction="urn:updateContainers" style="document"></soap:operation>
+ <wsdl:operation name="getClusterContext">
+ <soap:operation soapAction="urn:getClusterContext" style="document"></soap:operation>
<wsdl:input>
<soap:body use="literal"></soap:body>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"></soap:body>
</wsdl:output>
- <wsdl:fault name="CloudControllerServiceUnregisteredCartridgeException">
- <soap:fault use="literal" name="CloudControllerServiceUnregisteredCartridgeException"></soap:fault>
- </wsdl:fault>
</wsdl:operation>
<wsdl:operation name="deployServiceGroup">
<soap:operation soapAction="urn:deployServiceGroup" style="document"></soap:operation>
@@ -1192,15 +1194,6 @@
</wsdl:binding>
<wsdl:binding name="CloudControllerServiceSoap12Binding" type="ns:CloudControllerServicePortType">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"></soap12:binding>
- <wsdl:operation name="createApplicationClusters">
- <soap12:operation soapAction="urn:createApplicationClusters" style="document"></soap12:operation>
- <wsdl:input>
- <soap12:body use="literal"></soap12:body>
- </wsdl:input>
- <wsdl:fault name="CloudControllerServiceApplicationClusterRegistrationException">
- <soap12:fault use="literal" name="CloudControllerServiceApplicationClusterRegistrationException"></soap12:fault>
- </wsdl:fault>
- </wsdl:operation>
<wsdl:operation name="validatePartition">
<soap12:operation soapAction="urn:validatePartition" style="document"></soap12:operation>
<wsdl:input>
@@ -1213,6 +1206,15 @@
<soap12:fault use="literal" name="CloudControllerServiceInvalidPartitionException"></soap12:fault>
</wsdl:fault>
</wsdl:operation>
+ <wsdl:operation name="createApplicationClusters">
+ <soap12:operation soapAction="urn:createApplicationClusters" style="document"></soap12:operation>
+ <wsdl:input>
+ <soap12:body use="literal"></soap12:body>
+ </wsdl:input>
+ <wsdl:fault name="CloudControllerServiceApplicationClusterRegistrationException">
+ <soap12:fault use="literal" name="CloudControllerServiceApplicationClusterRegistrationException"></soap12:fault>
+ </wsdl:fault>
+ </wsdl:operation>
<wsdl:operation name="terminateContainer">
<soap12:operation soapAction="urn:terminateContainer" style="document"></soap12:operation>
<wsdl:input>
@@ -1252,18 +1254,6 @@
<soap12:fault use="literal" name="CloudControllerServiceInvalidServiceGroupException"></soap12:fault>
</wsdl:fault>
</wsdl:operation>
- <wsdl:operation name="terminateInstance">
- <soap12:operation soapAction="urn:terminateInstance" style="document"></soap12:operation>
- <wsdl:input>
- <soap12:body use="literal"></soap12:body>
- </wsdl:input>
- <wsdl:fault name="CloudControllerServiceInvalidMemberException">
- <soap12:fault use="literal" name="CloudControllerServiceInvalidMemberException"></soap12:fault>
- </wsdl:fault>
- <wsdl:fault name="CloudControllerServiceInvalidCartridgeTypeException">
- <soap12:fault use="literal" name="CloudControllerServiceInvalidCartridgeTypeException"></soap12:fault>
- </wsdl:fault>
- </wsdl:operation>
<wsdl:operation name="startContainers">
<soap12:operation soapAction="urn:startContainers" style="document"></soap12:operation>
<wsdl:input>
@@ -1288,8 +1278,20 @@
<soap12:fault use="literal" name="CloudControllerServiceUnregisteredCartridgeException"></soap12:fault>
</wsdl:fault>
</wsdl:operation>
- <wsdl:operation name="getServiceGroup">
- <soap12:operation soapAction="urn:getServiceGroup" style="document"></soap12:operation>
+ <wsdl:operation name="terminateInstance">
+ <soap12:operation soapAction="urn:terminateInstance" style="document"></soap12:operation>
+ <wsdl:input>
+ <soap12:body use="literal"></soap12:body>
+ </wsdl:input>
+ <wsdl:fault name="CloudControllerServiceInvalidMemberException">
+ <soap12:fault use="literal" name="CloudControllerServiceInvalidMemberException"></soap12:fault>
+ </wsdl:fault>
+ <wsdl:fault name="CloudControllerServiceInvalidCartridgeTypeException">
+ <soap12:fault use="literal" name="CloudControllerServiceInvalidCartridgeTypeException"></soap12:fault>
+ </wsdl:fault>
+ </wsdl:operation>
+ <wsdl:operation name="getServiceGroupDependencies">
+ <soap12:operation soapAction="urn:getServiceGroupDependencies" style="document"></soap12:operation>
<wsdl:input>
<soap12:body use="literal"></soap12:body>
</wsdl:input>
@@ -1300,8 +1302,8 @@
<soap12:fault use="literal" name="CloudControllerServiceInvalidServiceGroupException"></soap12:fault>
</wsdl:fault>
</wsdl:operation>
- <wsdl:operation name="getServiceGroupDependencies">
- <soap12:operation soapAction="urn:getServiceGroupDependencies" style="document"></soap12:operation>
+ <wsdl:operation name="getServiceGroupSubGroups">
+ <soap12:operation soapAction="urn:getServiceGroupSubGroups" style="document"></soap12:operation>
<wsdl:input>
<soap12:body use="literal"></soap12:body>
</wsdl:input>
@@ -1312,31 +1314,31 @@
<soap12:fault use="literal" name="CloudControllerServiceInvalidServiceGroupException"></soap12:fault>
</wsdl:fault>
</wsdl:operation>
- <wsdl:operation name="deployCartridgeDefinition">
- <soap12:operation soapAction="urn:deployCartridgeDefinition" style="document"></soap12:operation>
+ <wsdl:operation name="getServiceGroup">
+ <soap12:operation soapAction="urn:getServiceGroup" style="document"></soap12:operation>
<wsdl:input>
<soap12:body use="literal"></soap12:body>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"></soap12:body>
</wsdl:output>
- <wsdl:fault name="CloudControllerServiceInvalidCartridgeDefinitionException">
- <soap12:fault use="literal" name="CloudControllerServiceInvalidCartridgeDefinitionException"></soap12:fault>
- </wsdl:fault>
- <wsdl:fault name="CloudControllerServiceInvalidIaasProviderException">
- <soap12:fault use="literal" name="CloudControllerServiceInvalidIaasProviderException"></soap12:fault>
+ <wsdl:fault name="CloudControllerServiceInvalidServiceGroupException">
+ <soap12:fault use="literal" name="CloudControllerServiceInvalidServiceGroupException"></soap12:fault>
</wsdl:fault>
</wsdl:operation>
- <wsdl:operation name="getServiceGroupSubGroups">
- <soap12:operation soapAction="urn:getServiceGroupSubGroups" style="document"></soap12:operation>
+ <wsdl:operation name="deployCartridgeDefinition">
+ <soap12:operation soapAction="urn:deployCartridgeDefinition" style="document"></soap12:operation>
<wsdl:input>
<soap12:body use="literal"></soap12:body>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"></soap12:body>
</wsdl:output>
- <wsdl:fault name="CloudControllerServiceInvalidServiceGroupException">
- <soap12:fault use="literal" name="CloudControllerServiceInvalidServiceGroupException"></soap12:fault>
+ <wsdl:fault name="CloudControllerServiceInvalidCartridgeDefinitionException">
+ <soap12:fault use="literal" name="CloudControllerServiceInvalidCartridgeDefinitionException"></soap12:fault>
+ </wsdl:fault>
+ <wsdl:fault name="CloudControllerServiceInvalidIaasProviderException">
+ <soap12:fault use="literal" name="CloudControllerServiceInvalidIaasProviderException"></soap12:fault>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="getCartridgeInfo">
@@ -1438,26 +1440,26 @@
<soap12:fault use="literal" name="CloudControllerServiceUnregisteredCartridgeException"></soap12:fault>
</wsdl:fault>
</wsdl:operation>
- <wsdl:operation name="getClusterContext">
- <soap12:operation soapAction="urn:getClusterContext" style="document"></soap12:operation>
+ <wsdl:operation name="updateContainers">
+ <soap12:operation soapAction="urn:updateContainers" style="document"></soap12:operation>
<wsdl:input>
<soap12:body use="literal"></soap12:body>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"></soap12:body>
</wsdl:output>
+ <wsdl:fault name="CloudControllerServiceUnregisteredCartridgeException">
+ <soap12:fault use="literal" name="CloudControllerServiceUnregisteredCartridgeException"></soap12:fault>
+ </wsdl:fault>
</wsdl:operation>
- <wsdl:operation name="updateContainers">
- <soap12:operation soapAction="urn:updateContainers" style="document"></soap12:operation>
+ <wsdl:operation name="getClusterContext">
+ <soap12:operation soapAction="urn:getClusterContext" style="document"></soap12:operation>
<wsdl:input>
<soap12:body use="literal"></soap12:body>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"></soap12:body>
</wsdl:output>
- <wsdl:fault name="CloudControllerServiceUnregisteredCartridgeException">
- <soap12:fault use="literal" name="CloudControllerServiceUnregisteredCartridgeException"></soap12:fault>
- </wsdl:fault>
</wsdl:operation>
<wsdl:operation name="deployServiceGroup">
<soap12:operation soapAction="urn:deployServiceGroup" style="document"></soap12:operation>
@@ -1471,12 +1473,6 @@
</wsdl:binding>
<wsdl:binding name="CloudControllerServiceHttpBinding" type="ns:CloudControllerServicePortType">
<http:binding verb="POST"></http:binding>
- <wsdl:operation name="createApplicationClusters">
- <http:operation location="createApplicationClusters"></http:operation>
- <wsdl:input>
- <mime:content type="text/xml" part="parameters"></mime:content>
- </wsdl:input>
- </wsdl:operation>
<wsdl:operation name="validatePartition">
<http:operation location="validatePartition"></http:operation>
<wsdl:input>
@@ -1486,6 +1482,12 @@
<mime:content type="text/xml" part="parameters"></mime:content>
</wsdl:output>
</wsdl:operation>
+ <wsdl:operation name="createApplicationClusters">
+ <http:operation location="createApplicationClusters"></http:operation>
+ <wsdl:input>
+ <mime:content type="text/xml" part="parameters"></mime:content>
+ </wsdl:input>
+ </wsdl:operation>
<wsdl:operation name="terminateContainer">
<http:operation location="terminateContainer"></http:operation>
<wsdl:input>
@@ -1513,12 +1515,6 @@
<mime:content type="text/xml" part="parameters"></mime:content>
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="terminateInstance">
- <http:operation location="terminateInstance"></http:operation>
- <wsdl:input>
- <mime:content type="text/xml" part="parameters"></mime:content>
- </wsdl:input>
- </wsdl:operation>
<wsdl:operation name="startContainers">
<http:operation location="startContainers"></http:operation>
<wsdl:input>
@@ -1537,8 +1533,14 @@
<mime:content type="text/xml" part="parameters"></mime:content>
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="getServiceGroup">
- <http:operation location="getServiceGroup"></http:operation>
+ <wsdl:operation name="terminateInstance">
+ <http:operation location="terminateInstance"></http:operation>
+ <wsdl:input>
+ <mime:content type="text/xml" part="parameters"></mime:content>
+ </wsdl:input>
+ </wsdl:operation>
+ <wsdl:operation name="getServiceGroupDependencies">
+ <http:operation location="getServiceGroupDependencies"></http:operation>
<wsdl:input>
<mime:content type="text/xml" part="parameters"></mime:content>
</wsdl:input>
@@ -1546,8 +1548,8 @@
<mime:content type="text/xml" part="parameters"></mime:content>
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="getServiceGroupDependencies">
- <http:operation location="getServiceGroupDependencies"></http:operation>
+ <wsdl:operation name="getServiceGroupSubGroups">
+ <http:operation location="getServiceGroupSubGroups"></http:operation>
<wsdl:input>
<mime:content type="text/xml" part="parameters"></mime:content>
</wsdl:input>
@@ -1555,8 +1557,8 @@
<mime:content type="text/xml" part="parameters"></mime:content>
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="deployCartridgeDefinition">
- <http:operation location="deployCartridgeDefinition"></http:operation>
+ <wsdl:operation name="getServiceGroup">
+ <http:operation location="getServiceGroup"></http:operation>
<wsdl:input>
<mime:content type="text/xml" part="parameters"></mime:content>
</wsdl:input>
@@ -1564,8 +1566,8 @@
<mime:content type="text/xml" part="parameters"></mime:content>
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="getServiceGroupSubGroups">
- <http:operation location="getServiceGroupSubGroups"></http:operation>
+ <wsdl:operation name="deployCartridgeDefinition">
+ <http:operation location="deployCartridgeDefinition"></http:operation>
<wsdl:input>
<mime:content type="text/xml" part="parameters"></mime:content>
</wsdl:input>
@@ -1645,8 +1647,8 @@
<mime:content type="text/xml" part="parameters"></mime:content>
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="getClusterContext">
- <http:operation location="getClusterContext"></http:operation>
+ <wsdl:operation name="updateContainers">
+ <http:operation location="updateContainers"></http:operation>
<wsdl:input>
<mime:content type="text/xml" part="parameters"></mime:content>
</wsdl:input>
@@ -1654,8 +1656,8 @@
<mime:content type="text/xml" part="parameters"></mime:content>
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="updateContainers">
- <http:operation location="updateContainers"></http:operation>
+ <wsdl:operation name="getClusterContext">
+ <http:operation location="getClusterContext"></http:operation>
<wsdl:input>
<mime:content type="text/xml" part="parameters"></mime:content>
</wsdl:input>
@@ -1672,22 +1674,22 @@
</wsdl:binding>
<wsdl:service name="CloudControllerService">
<wsdl:port name="CloudControllerServiceHttpSoap11Endpoint" binding="ns:CloudControllerServiceSoap11Binding">
- <soap:address location="http://10.100.0.168:9763/services/CloudControllerService.CloudControllerServiceHttpSoap11Endpoint/"></soap:address>
+ <soap:address location="http://10.100.5.140:9763/services/CloudControllerService.CloudControllerServiceHttpSoap11Endpoint/"></soap:address>
</wsdl:port>
<wsdl:port name="CloudControllerServiceHttpsSoap11Endpoint" binding="ns:CloudControllerServiceSoap11Binding">
- <soap:address location="https://10.100.0.168:9443/services/CloudControllerService.CloudControllerServiceHttpsSoap11Endpoint/"></soap:address>
+ <soap:address location="https://10.100.5.140:9443/services/CloudControllerService.CloudControllerServiceHttpsSoap11Endpoint/"></soap:address>
</wsdl:port>
<wsdl:port name="CloudControllerServiceHttpSoap12Endpoint" binding="ns:CloudControllerServiceSoap12Binding">
- <soap12:address location="http://10.100.0.168:9763/services/CloudControllerService.CloudControllerServiceHttpSoap12Endpoint/"></soap12:address>
+ <soap12:address location="http://10.100.5.140:9763/services/CloudControllerService.CloudControllerServiceHttpSoap12Endpoint/"></soap12:address>
</wsdl:port>
<wsdl:port name="CloudControllerServiceHttpsSoap12Endpoint" binding="ns:CloudControllerServiceSoap12Binding">
- <soap12:address location="https://10.100.0.168:9443/services/CloudControllerService.CloudControllerServiceHttpsSoap12Endpoint/"></soap12:address>
+ <soap12:address location="https://10.100.5.140:9443/services/CloudControllerService.CloudControllerServiceHttpsSoap12Endpoint/"></soap12:address>
</wsdl:port>
<wsdl:port name="CloudControllerServiceHttpEndpoint" binding="ns:CloudControllerServiceHttpBinding">
- <http:address location="http://10.100.0.168:9763/services/CloudControllerService.CloudControllerServiceHttpEndpoint/"></http:address>
+ <http:address location="http://10.100.5.140:9763/services/CloudControllerService.CloudControllerServiceHttpEndpoint/"></http:address>
</wsdl:port>
<wsdl:port name="CloudControllerServiceHttpsEndpoint" binding="ns:CloudControllerServiceHttpBinding">
- <http:address location="https://10.100.0.168:9443/services/CloudControllerService.CloudControllerServiceHttpsEndpoint/"></http:address>
+ <http:address location="https://10.100.5.140:9443/services/CloudControllerService.CloudControllerServiceHttpsEndpoint/"></http:address>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
\ No newline at end of file
[3/3] stratos git commit: Merge branch 'member-fault-obsolete' of
https://github.com/chamilad/stratos
Posted by la...@apache.org.
Merge branch 'member-fault-obsolete' of https://github.com/chamilad/stratos
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/857c294e
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/857c294e
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/857c294e
Branch: refs/heads/master
Commit: 857c294e7f471b5a8461623d52256710cd6dc00e
Parents: ce1ca8d 9255d0e
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Tue Nov 25 19:01:25 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Tue Nov 25 19:01:25 2014 +0530
----------------------------------------------------------------------
.../autoscaler/KubernetesClusterContext.java | 78 +++
.../stratos/autoscaler/PartitionContext.java | 78 +++
.../client/CloudControllerClient.java | 7 +
.../cluster/KubernetesClusterMonitor.java | 31 +-
.../monitor/cluster/VMClusterMonitor.java | 25 +-
.../impl/CloudControllerServiceImpl.java | 133 +++-
.../cloud/controller/pojo/MemberContext.java | 20 +
.../StratosManagerTopologyEventReceiver.java | 26 +
.../main/resources/CloudControllerService.wsdl | 652 ++++++++++---------
9 files changed, 687 insertions(+), 363 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/857c294e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
----------------------------------------------------------------------
[2/3] stratos git commit: [STRATOS-923] - fixed
Posted by la...@apache.org.
[STRATOS-923] - fixed
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/9255d0ee
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/9255d0ee
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/9255d0ee
Branch: refs/heads/master
Commit: 9255d0ee6c754ad83e1ee1d58f5a8eb39f6b9855
Parents: 5ef2fa8
Author: Chamila de Alwis <ch...@wso2.com>
Authored: Tue Nov 25 18:43:18 2014 +0530
Committer: Chamila de Alwis <ch...@wso2.com>
Committed: Tue Nov 25 18:43:18 2014 +0530
----------------------------------------------------------------------
.../autoscaler/KubernetesClusterContext.java | 78 +++
.../stratos/autoscaler/PartitionContext.java | 78 +++
.../client/CloudControllerClient.java | 7 +
.../cluster/KubernetesClusterMonitor.java | 31 +-
.../monitor/cluster/VMClusterMonitor.java | 25 +-
.../impl/CloudControllerServiceImpl.java | 133 +++-
.../cloud/controller/pojo/MemberContext.java | 20 +
.../StratosManagerTopologyEventReceiver.java | 26 +
.../main/resources/CloudControllerService.wsdl | 652 ++++++++++---------
9 files changed, 687 insertions(+), 363 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/9255d0ee/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/KubernetesClusterContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/KubernetesClusterContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/KubernetesClusterContext.java
index a843fba..04fdee8 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/KubernetesClusterContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/KubernetesClusterContext.java
@@ -317,6 +317,84 @@ public class KubernetesClusterContext extends AbstractClusterContext {
RequiredReplicas = requiredReplicas;
}
+ /**
+ * Check the member lists for the provided member ID and move the member to the obsolete list
+ *
+ * @param memberId The member ID of the member to search
+ */
+ public void moveMemberToObsoleteList(String memberId) {
+ if (memberId == null) {
+ return;
+ }
+
+ // check active member list
+ Iterator<MemberContext> activeMemberIterator = activeMembers.listIterator();
+ MemberContext removedMember = this.removeMemberFrom(activeMemberIterator, memberId);
+ if (removedMember != null) {
+ this.addObsoleteMember(removedMember);
+ removedMember.setObsoleteInitTime(System.currentTimeMillis());
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Active member is removed and added to the " +
+ "obsolete member list. [Member Id] %s", memberId));
+ }
+
+ return;
+ }
+
+ // check pending member list
+ Iterator<MemberContext> pendingMemberIterator = pendingMembers.listIterator();
+ removedMember = this.removeMemberFrom(pendingMemberIterator, memberId);
+ if (removedMember != null) {
+ this.addObsoleteMember(removedMember);
+ removedMember.setObsoleteInitTime(System.currentTimeMillis());
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Pending member is removed and added to the " +
+ "obsolete member list. [Member Id] %s", memberId));
+ }
+
+ return;
+ }
+
+ // check termination pending member list
+ Iterator<MemberContext> terminationPendingMembersIterator = terminationPendingMembers.listIterator();
+ removedMember = this.removeMemberFrom(terminationPendingMembersIterator, memberId);
+ if (removedMember != null) {
+ this.addObsoleteMember(removedMember);
+ removedMember.setObsoleteInitTime(System.currentTimeMillis());
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Termination Pending member is removed and added to the " +
+ "obsolete member list. [Member Id] %s", memberId));
+ }
+ }
+ }
+
+ /**
+ * Removes the {@link org.apache.stratos.cloud.controller.stub.pojo.MemberContext} object mapping
+ * to the specified member id from the specified MemberContext collection
+ *
+ * @param iterator The {@link java.util.Iterator} for the collection containing {@link org.apache.stratos.cloud.controller.stub.pojo.MemberContext}
+ * objects
+ * @param memberId Member Id {@link String} for the {@link org.apache.stratos.cloud.controller.stub.pojo.MemberContext}
+ * to be removed
+ * @return {@link org.apache.stratos.cloud.controller.stub.pojo.MemberContext} object if
+ * object found and removed, null if otherwise.
+ */
+ private MemberContext removeMemberFrom(Iterator<MemberContext> iterator, String memberId) {
+ while (iterator.hasNext()) {
+ MemberContext activeMember = iterator.next();
+ if (activeMember == null) {
+ iterator.remove();
+ continue;
+ }
+ if (memberId.equals(activeMember.getMemberId())) {
+ iterator.remove();
+ return activeMember;
+ }
+ }
+
+ return null;
+ }
+
private class PendingMemberWatcher implements Runnable {
private KubernetesClusterContext ctxt;
http://git-wip-us.apache.org/repos/asf/stratos/blob/9255d0ee/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java
index 8de0000..0e5605a 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java
@@ -239,6 +239,84 @@ public class PartitionContext implements Serializable{
}
}
}
+
+ /**
+ * Check the member lists for the provided member ID and move the member to the obsolete list
+ *
+ * @param memberId The member ID of the member to search
+ */
+ public void moveMemberToObsoleteList(String memberId) {
+ if (memberId == null) {
+ return;
+ }
+
+ // check active member list
+ Iterator<MemberContext> activeMemberIterator = activeMembers.listIterator();
+ MemberContext removedMember = this.removeMemberFrom(activeMemberIterator, memberId);
+ if (removedMember != null) {
+ this.addObsoleteMember(removedMember);
+ removedMember.setObsoleteInitTime(System.currentTimeMillis());
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Active member is removed and added to the " +
+ "obsolete member list. [Member Id] %s", memberId));
+ }
+
+ return;
+ }
+
+ // check pending member list
+ Iterator<MemberContext> pendingMemberIterator = pendingMembers.listIterator();
+ removedMember = this.removeMemberFrom(pendingMemberIterator, memberId);
+ if (removedMember != null) {
+ this.addObsoleteMember(removedMember);
+ removedMember.setObsoleteInitTime(System.currentTimeMillis());
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Pending member is removed and added to the " +
+ "obsolete member list. [Member Id] %s", memberId));
+ }
+
+ return;
+ }
+
+ // check termination pending member list
+ Iterator<MemberContext> terminationPendingMembersIterator = terminationPendingMembers.listIterator();
+ removedMember = this.removeMemberFrom(terminationPendingMembersIterator, memberId);
+ if (removedMember != null) {
+ this.addObsoleteMember(removedMember);
+ removedMember.setObsoleteInitTime(System.currentTimeMillis());
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Termination Pending member is removed and added to the " +
+ "obsolete member list. [Member Id] %s", memberId));
+ }
+ }
+ }
+
+ /**
+ * Removes the {@link org.apache.stratos.cloud.controller.stub.pojo.MemberContext} object mapping
+ * to the specified member id from the specified MemberContext collection
+ *
+ * @param iterator The {@link java.util.Iterator} for the collection containing {@link org.apache.stratos.cloud.controller.stub.pojo.MemberContext}
+ * objects
+ * @param memberId Member Id {@link String} for the {@link org.apache.stratos.cloud.controller.stub.pojo.MemberContext}
+ * to be removed
+ * @return {@link org.apache.stratos.cloud.controller.stub.pojo.MemberContext} object if
+ * object found and removed, null if otherwise.
+ */
+ private MemberContext removeMemberFrom(Iterator<MemberContext> iterator, String memberId) {
+ while (iterator.hasNext()) {
+ MemberContext activeMember = iterator.next();
+ if (activeMember == null) {
+ iterator.remove();
+ continue;
+ }
+ if (memberId.equals(activeMember.getMemberId())) {
+ iterator.remove();
+ return activeMember;
+ }
+ }
+
+ return null;
+ }
public void addActiveMember(MemberContext ctxt) {
this.activeMembers.add(ctxt);
http://git-wip-us.apache.org/repos/asf/stratos/blob/9255d0ee/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java
index 7a8b60b..87fb1b1 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java
@@ -141,10 +141,17 @@ public class CloudControllerClient {
clusterId, partition.getId(), lbClusterId, networkPartitionId));
}
+ XMLConfiguration conf = ConfUtil.getInstance(null).getConfiguration();
+ long expiryTime = conf.getLong(StratosConstants.OBSOLETED_VM_MEMBER_EXPIRY_TIMEOUT, 86400000);
+ if (log.isDebugEnabled()) {
+ log.debug("Member Obsolete Expiry Time is set to: " + expiryTime);
+ }
+
MemberContext member = new MemberContext();
member.setClusterId(clusterId);
member.setPartition(partition);
member.setLbClusterId(lbClusterId);
+ member.setObsoleteExpiryTime(expiryTime);
member.setInitTime(System.currentTimeMillis());
member.setNetworkPartitionId(networkPartitionId);
Properties memberContextProps = new Properties();
http://git-wip-us.apache.org/repos/asf/stratos/blob/9255d0ee/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java
index 5fb84c9..7a92fd2 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java
@@ -378,21 +378,14 @@ public abstract class KubernetesClusterMonitor extends AbstractClusterMonitor {
}
return;
}
- // terminate the faulty member
- CloudControllerClient ccClient = CloudControllerClient.getInstance();
- try {
- ccClient.terminateContainer(memberId);
- // remove from active member list
- getKubernetesClusterCtxt().removeActiveMemberById(memberId);
- if (log.isInfoEnabled()) {
- String clusterId = memberFaultEvent.getClusterId();
- String kubernetesClusterID = getKubernetesClusterCtxt().getKubernetesClusterID();
- log.info(String.format("Faulty member is terminated and removed from the active members list: "
- + "[member] %s [kub-cluster] %s [cluster] %s ", memberId, kubernetesClusterID, clusterId));
- }
- } catch (TerminationException e) {
- String msg = "Cannot delete a container " + e.getLocalizedMessage();
- log.error(msg, e);
+
+ // move member to obsolete list
+ getKubernetesClusterCtxt().moveMemberToObsoleteList(memberId);
+ if (log.isInfoEnabled()) {
+ String clusterId = memberFaultEvent.getClusterId();
+ String kubernetesClusterID = getKubernetesClusterCtxt().getKubernetesClusterID();
+ log.info(String.format("Faulty member is moved to obsolete list and removed from the active members list: "
+ + "[member] %s [kub-cluster] %s [cluster] %s ", memberId, kubernetesClusterID, clusterId));
}
}
@@ -452,13 +445,13 @@ public abstract class KubernetesClusterMonitor extends AbstractClusterMonitor {
}
} else if (getKubernetesClusterCtxt().removeActiveMemberById(memberId)) {
log.warn(String.format("Member is in the wrong list and it is removed from "
- + "active members list", memberId));
+ + "active members list: %s", memberId));
} else if (getKubernetesClusterCtxt().removeObsoleteMember(memberId)) {
- log.warn(String.format("Member's obsolated timeout has been expired and "
- + "it is removed from obsolated members list", memberId));
+ log.warn(String.format("Obsolete member has either been terminated or its obsolete time out has expired and"
+ + " it is removed from obsolete members list: %s", memberId));
} else {
log.warn(String.format("Member is not available in any of the list active, "
- + "pending and termination pending", memberId));
+ + "pending and termination pending: %s", memberId));
}
if (log.isInfoEnabled()) {
http://git-wip-us.apache.org/repos/asf/stratos/blob/9255d0ee/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
index 9cffc50..a1e0166 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
@@ -426,19 +426,14 @@ abstract public class VMClusterMonitor extends AbstractClusterMonitor {
}
return;
}
- // terminate the faulty member
- CloudControllerClient ccClient = CloudControllerClient.getInstance();
- try {
- ccClient.terminate(memberId);
- } catch (TerminationException e) {
- String msg = "TerminationException " + e.getLocalizedMessage();
- log.error(msg, e);
+
+ // move member to obsolete list
+ synchronized (this) {
+ partitionCtxt.moveMemberToObsoleteList(memberId);
}
- // remove from active member list
- partitionCtxt.moveActiveMemberToTerminationPendingMembers(memberId);
if (log.isInfoEnabled()) {
String clusterId = memberFaultEvent.getClusterId();
- log.info(String.format("Faulty member is terminated and removed from the active members list: "
+ log.info(String.format("Faulty member is added to obsolete list and removed from the active members list: "
+ "[member] %s [partition] %s [cluster] %s ", memberId, partitionId, clusterId));
}
@@ -541,13 +536,13 @@ abstract public class VMClusterMonitor extends AbstractClusterMonitor {
}
} else if (partitionContext.removeActiveMemberById(memberId)) {
log.warn(String.format("Member is in the wrong list and it is removed from "
- + "active members list", memberId));
+ + "active members list: %s", memberId));
} else if (partitionContext.removeObsoleteMember(memberId)) {
- log.warn(String.format("Member's obsolated timeout has been expired and "
- + "it is removed from obsolated members list", memberId));
+ log.warn(String.format("Obsolete member has either been terminated or its obsolete time out has expired and"
+ + " it is removed from obsolete members list: %s", memberId));
} else {
log.warn(String.format("Member is not available in any of the list active, "
- + "pending and termination pending", memberId));
+ + "pending and termination pending: %s", memberId));
}
if (log.isInfoEnabled()) {
@@ -677,4 +672,4 @@ abstract public class VMClusterMonitor extends AbstractClusterMonitor {
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/9255d0ee/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
index 5e34c88..f40ba28 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
@@ -36,10 +36,13 @@ import org.apache.stratos.cloud.controller.interfaces.CloudControllerService;
import org.apache.stratos.cloud.controller.interfaces.Iaas;
import org.apache.stratos.cloud.controller.persist.Deserializer;
import org.apache.stratos.cloud.controller.pojo.*;
+import org.apache.stratos.cloud.controller.pojo.Cartridge;
+import org.apache.stratos.cloud.controller.pojo.Dependencies;
import org.apache.stratos.cloud.controller.publisher.CartridgeInstanceDataPublisher;
import org.apache.stratos.cloud.controller.registry.RegistryManager;
import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder;
import org.apache.stratos.cloud.controller.topology.TopologyBuilder;
+import org.apache.stratos.cloud.controller.topology.TopologyEventPublisher;
import org.apache.stratos.cloud.controller.topology.TopologyManager;
import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
import org.apache.stratos.cloud.controller.util.CloudControllerUtil;
@@ -53,10 +56,8 @@ import org.apache.stratos.kubernetes.client.model.Label;
import org.apache.stratos.kubernetes.client.model.Pod;
import org.apache.stratos.kubernetes.client.model.ReplicationController;
import org.apache.stratos.kubernetes.client.model.Service;
-import org.apache.stratos.messaging.domain.topology.Cluster;
-import org.apache.stratos.messaging.domain.topology.ClusterStatus;
-import org.apache.stratos.messaging.domain.topology.Member;
-import org.apache.stratos.messaging.domain.topology.MemberStatus;
+import org.apache.stratos.messaging.domain.topology.*;
+import org.apache.stratos.messaging.event.topology.MemberReadyToShutdownEvent;
import org.apache.stratos.messaging.util.Constants;
import org.jclouds.compute.ComputeService;
import org.jclouds.compute.domain.NodeMetadata;
@@ -617,11 +618,135 @@ public class CloudControllerServiceImpl implements CloudControllerService {
throw new InvalidMemberException(msg);
}
+ if (ctxt.getNodeId() == null && ctxt.getInstanceId() == null) {
+ // sending member terminated since this instance isn't reachable.
+ if (LOG.isInfoEnabled()){
+ LOG.info(String.format(
+ "Member cannot be terminated because it is not reachable. [member] %s [nodeId] %s [instanceId] %s. Removing member from topology.",
+ ctxt.getMemberId(),
+ ctxt.getNodeId(),
+ ctxt.getInstanceId()));
+ }
+
+ logTermination(ctxt);
+ }
+
+ // check if status == active, if true, then this is a termination on member faulty
+ Topology topology;
+ try {
+ TopologyManager.acquireReadLock();
+ topology = TopologyManager.getTopology();
+ } finally {
+ TopologyManager.releaseReadLock();
+ }
+
+ org.apache.stratos.messaging.domain.topology.Service service = topology.getService(ctxt.getCartridgeType());
+
+ if (service != null) {
+ Cluster cluster = service.getCluster(ctxt.getClusterId());
+
+ if (cluster != null) {
+ Member member = cluster.getMember(memberId);
+
+ if (member != null) {
+ // change member status if termination on a faulty member
+ if(fixMemberStatus(member, topology)){
+ // set the time this member was added to ReadyToShutdown status
+ ctxt.setObsoleteInitTime(System.currentTimeMillis());
+ }
+
+ // check if ready to shutdown member is expired and send
+ // member terminated if it is.
+ if (isMemberExpired(member, ctxt.getObsoleteInitTime(), ctxt.getObsoleteExpiryTime())) {
+ if (LOG.isInfoEnabled()) {
+ LOG.info(String.format(
+ "Member pending termination in ReadyToShutdown state exceeded expiry time. This member has to be manually deleted: %s",
+ ctxt.getMemberId()));
+ }
+
+ logTermination(ctxt);
+ return;
+ }
+ }
+ }
+ }
+
ThreadExecutor exec = ThreadExecutor.getInstance();
exec.execute(new InstanceTerminator(ctxt));
}
+ /**
+ * Check if a member has been in the ReadyToShutdown status for a specified expiry time
+ *
+ * @param member
+ * @param initTime
+ * @param expiryTime
+ * @return
+ */
+ private boolean isMemberExpired(Member member, long initTime, long expiryTime) {
+ if (member.getStatus() == MemberStatus.ReadyToShutDown) {
+ if (initTime == 0){
+ // obsolete init time hasn't been set, i.e. not a member detected faulty.
+ // this is a graceful shutdown
+ return false;
+ }
+
+ // member detected faulty, calculate ready to shutdown waiting period
+ long timeInReadyToShutdownStatus = System.currentTimeMillis() - initTime;
+ return timeInReadyToShutdownStatus >= expiryTime;
+ }
+
+ return false;
+ }
+
+
+ /**
+ * Corrects the member status upon termination call if the member is in an Active state
+ *
+ * @param member The {@link org.apache.stratos.messaging.domain.topology.Member} object that is being
+ * checked for status
+ * @param topology The {@link org.apache.stratos.messaging.domain.topology.Topology} object to update
+ * the topology if needed.
+ *
+ */
+ private boolean fixMemberStatus(Member member, Topology topology) {
+ if (member.getStatus() == MemberStatus.Activated) {
+ MemberReadyToShutdownEvent memberReadyToShutdownEvent = new MemberReadyToShutdownEvent(
+ member.getServiceName(),
+ member.getClusterId(),
+ member.getNetworkPartitionId(),
+ member.getPartitionId(),
+ member.getMemberId(),
+ member.getInstanceId());
+
+ try {
+ TopologyManager.acquireWriteLock();
+ member.setStatus(MemberStatus.ReadyToShutDown);
+ LOG.info("Member Ready to shut down event adding status started");
+
+ TopologyManager.updateTopology(topology);
+ } finally {
+ TopologyManager.releaseWriteLock();
+ }
+
+ TopologyEventPublisher.sendMemberReadyToShutdownEvent(memberReadyToShutdownEvent);
+ //publishing data
+ CartridgeInstanceDataPublisher.publish(member.getMemberId(),
+ member.getPartitionId(),
+ member.getNetworkPartitionId(),
+ member.getClusterId(),
+ member.getServiceName(),
+ MemberStatus.ReadyToShutDown.toString(),
+ null);
+
+ return true;
+ }
+
+ return false;
+ }
+
+
private class InstanceTerminator implements Runnable {
private MemberContext ctxt;
http://git-wip-us.apache.org/repos/asf/stratos/blob/9255d0ee/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/MemberContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/MemberContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/MemberContext.java
index a2a7d4b..5ec3f04 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/MemberContext.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/MemberContext.java
@@ -55,6 +55,10 @@ public class MemberContext implements Serializable {
private String lbClusterId;
//network partition id
private String networkPartitionId;
+ //member expiry period on the topology
+ private long obsoleteExpiryTime;
+ //member obsolete init time
+ private long obsoleteInitTime;
private Properties properties;
@@ -202,6 +206,22 @@ public class MemberContext implements Serializable {
this.instanceId = instanceId;
}
+ public long getObsoleteExpiryTime() {
+ return obsoleteExpiryTime;
+ }
+
+ public void setObsoleteExpiryTime(long obsoleteExpiryTime) {
+ this.obsoleteExpiryTime = obsoleteExpiryTime;
+ }
+
+ public long getObsoleteInitTime() {
+ return obsoleteInitTime;
+ }
+
+ public void setObsoleteInitTime(long obsoleteInitTime) {
+ this.obsoleteInitTime = obsoleteInitTime;
+ }
+
public Properties getProperties() {
return properties;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/9255d0ee/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java
index d4446c4..ff87b0c 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java
@@ -216,6 +216,32 @@ public class StratosManagerTopologyEventReceiver implements Runnable {
}
});
+ // MemberReadyToShutdown
+ topologyEventReceiver.addEventListener(new MemberReadyToShutdownEventListener() {
+ @Override
+ protected void onEvent(Event event) {
+ log.info("[MemberReadyToShutdownEventListener] Received: " + event.getClass());
+
+ MemberReadyToShutdownEvent memberReadyToShutdowEvent = (MemberReadyToShutdownEvent) event;
+
+ String clusterDomain = memberReadyToShutdowEvent.getClusterId();
+
+ String serviceType = memberReadyToShutdowEvent.getServiceName();
+ //acquire read lock
+ TopologyManager.acquireReadLock();
+
+ try {
+ Cluster cluster = TopologyManager.getTopology().getService(serviceType).getCluster(clusterDomain);
+ TopologyClusterInformationModel.getInstance().addCluster(cluster);
+
+ } finally {
+ //release read lock
+ TopologyManager.releaseReadLock();
+ }
+ }
+ });
+
+
//Member Suspended event listner
topologyEventReceiver.addEventListener(new MemberSuspendedEventListener() {
@Override