mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-02 20:02:29 +01:00
Merge branch 'master' into ui-multiple-nics
This commit is contained in:
commit
4b26e9d89b
1
.gitignore
vendored
1
.gitignore
vendored
@ -59,6 +59,7 @@ tools/cli/build/
|
||||
*.iso
|
||||
*.tar.gz
|
||||
*.tgz
|
||||
target-eclipse
|
||||
awsapi/modules/*
|
||||
!.gitignore
|
||||
.classpath
|
||||
|
||||
@ -62,5 +62,4 @@ public interface Domain extends OwnedBy, Identity, InternalIdentity {
|
||||
|
||||
public String getUuid();
|
||||
|
||||
int getRegionId();
|
||||
}
|
||||
|
||||
@ -63,7 +63,5 @@ public interface Account extends ControlledEntity, InternalIdentity, Identity {
|
||||
|
||||
public Long getDefaultZoneId();
|
||||
|
||||
public int getRegionId();
|
||||
|
||||
public String getUuid();
|
||||
}
|
||||
|
||||
@ -62,7 +62,7 @@ public interface AccountService {
|
||||
* @return the user if created successfully, null otherwise
|
||||
*/
|
||||
UserAccount createUserAccount(String userName, String password, String firstName, String lastName, String email, String timezone, String accountName, short accountType, Long domainId, String networkDomain,
|
||||
Map<String, String> details);
|
||||
Map<String, String> details, String accountUUID, String userUUID);
|
||||
|
||||
/**
|
||||
* Locks a user by userId. A locked user cannot access the API, but will still have running VMs/IP addresses
|
||||
@ -77,7 +77,7 @@ public interface AccountService {
|
||||
|
||||
User getSystemUser();
|
||||
|
||||
User createUser(String userName, String password, String firstName, String lastName, String email, String timeZone, String accountName, Long domainId);
|
||||
User createUser(String userName, String password, String firstName, String lastName, String email, String timeZone, String accountName, Long domainId, String userUUID);
|
||||
|
||||
boolean isAdmin(short accountType);
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@ import com.cloud.utils.Pair;
|
||||
|
||||
public interface DomainService {
|
||||
|
||||
Domain createDomain(String name, Long parentId, String networkDomain);
|
||||
Domain createDomain(String name, Long parentId, String networkDomain, String domainUUID);
|
||||
|
||||
Domain getDomain(long id);
|
||||
|
||||
|
||||
@ -73,5 +73,4 @@ public interface User extends OwnedBy, InternalIdentity {
|
||||
|
||||
boolean isRegistered();
|
||||
|
||||
public int getRegionId();
|
||||
}
|
||||
|
||||
@ -1,468 +0,0 @@
|
||||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
package org.apache.cloudstack.api;
|
||||
|
||||
|
||||
public class ApiConstants {
|
||||
public static final String ACCOUNT = "account";
|
||||
public static final String ACCOUNTS = "accounts";
|
||||
public static final String ACCOUNT_TYPE = "accounttype";
|
||||
public static final String ACCOUNT_ID = "accountid";
|
||||
public static final String ALGORITHM = "algorithm";
|
||||
public static final String ALLOCATED_ONLY = "allocatedonly";
|
||||
public static final String API_KEY = "userapikey";
|
||||
public static final String APPLIED = "applied";
|
||||
public static final String AVAILABLE = "available";
|
||||
public static final String BITS = "bits";
|
||||
public static final String BOOTABLE = "bootable";
|
||||
public static final String BIND_DN = "binddn";
|
||||
public static final String BIND_PASSWORD = "bindpass";
|
||||
public static final String CATEGORY = "category";
|
||||
public static final String CERTIFICATE = "certificate";
|
||||
public static final String PRIVATE_KEY = "privatekey";
|
||||
public static final String DOMAIN_SUFFIX = "domainsuffix";
|
||||
public static final String DNS_SEARCH_ORDER = "dnssearchorder";
|
||||
public static final String CIDR = "cidr";
|
||||
public static final String IP6_CIDR = "ip6cidr";
|
||||
public static final String CIDR_LIST = "cidrlist";
|
||||
public static final String CLEANUP = "cleanup";
|
||||
public static final String CLUSTER_ID = "clusterid";
|
||||
public static final String CLUSTER_NAME = "clustername";
|
||||
public static final String CLUSTER_TYPE = "clustertype";
|
||||
public static final String COMPONENT = "component";
|
||||
public static final String CPU_NUMBER = "cpunumber";
|
||||
public static final String CPU_SPEED = "cpuspeed";
|
||||
public static final String CREATED = "created";
|
||||
public static final String CUSTOMIZED = "customized";
|
||||
public static final String DESCRIPTION = "description";
|
||||
public static final String DESTINATION_ZONE_ID = "destzoneid";
|
||||
public static final String DETAILS = "details";
|
||||
public static final String DEVICE_ID = "deviceid";
|
||||
public static final String DISK_OFFERING_ID = "diskofferingid";
|
||||
public static final String DISK_SIZE = "disksize";
|
||||
public static final String DISPLAY_NAME = "displayname";
|
||||
public static final String DISPLAY_TEXT = "displaytext";
|
||||
public static final String DNS1 = "dns1";
|
||||
public static final String DNS2 = "dns2";
|
||||
public static final String DOMAIN = "domain";
|
||||
public static final String DOMAIN_ID = "domainid";
|
||||
public static final String DURATION = "duration";
|
||||
public static final String EMAIL = "email";
|
||||
public static final String END_DATE = "enddate";
|
||||
public static final String END_IP = "endip";
|
||||
public static final String END_IPV6 = "endipv6";
|
||||
public static final String END_PORT = "endport";
|
||||
public static final String ENTRY_TIME = "entrytime";
|
||||
public static final String FETCH_LATEST = "fetchlatest";
|
||||
public static final String FIRSTNAME = "firstname";
|
||||
public static final String FORCED = "forced";
|
||||
public static final String FORCED_DESTROY_LOCAL_STORAGE = "forcedestroylocalstorage";
|
||||
public static final String FORMAT = "format";
|
||||
public static final String FOR_VIRTUAL_NETWORK = "forvirtualnetwork";
|
||||
public static final String GATEWAY = "gateway";
|
||||
public static final String IP6_GATEWAY = "ip6gateway";
|
||||
public static final String GROUP = "group";
|
||||
public static final String GROUP_ID = "groupid";
|
||||
public static final String GUEST_CIDR_ADDRESS = "guestcidraddress";
|
||||
public static final String HA_ENABLE = "haenable";
|
||||
public static final String HOST_ID = "hostid";
|
||||
public static final String HOST_NAME = "hostname";
|
||||
public static final String HYPERVISOR = "hypervisor";
|
||||
public static final String INLINE = "inline";
|
||||
public static final String INSTANCE = "instance";
|
||||
public static final String ICMP_CODE = "icmpcode";
|
||||
public static final String ICMP_TYPE = "icmptype";
|
||||
public static final String ID = "id";
|
||||
public static final String IDS = "ids";
|
||||
public static final String INTERNAL_DNS1 = "internaldns1";
|
||||
public static final String INTERNAL_DNS2 = "internaldns2";
|
||||
public static final String INTERVAL_TYPE = "intervaltype";
|
||||
public static final String IP_ADDRESS = "ipaddress";
|
||||
public static final String IP6_ADDRESS = "ip6address";
|
||||
public static final String IP_ADDRESS_ID = "ipaddressid";
|
||||
public static final String IS_ASYNC = "isasync";
|
||||
public static final String IP_AVAILABLE = "ipavailable";
|
||||
public static final String IP_LIMIT = "iplimit";
|
||||
public static final String IP_TOTAL = "iptotal";
|
||||
public static final String IS_CLEANUP_REQUIRED = "iscleanuprequired";
|
||||
public static final String IS_EXTRACTABLE = "isextractable";
|
||||
public static final String IS_FEATURED = "isfeatured";
|
||||
public static final String IS_PUBLIC = "ispublic";
|
||||
public static final String IS_PERSISTENT = "ispersistent";
|
||||
public static final String IS_READY = "isready";
|
||||
public static final String IS_RECURSIVE = "isrecursive";
|
||||
public static final String ISO_FILTER = "isofilter";
|
||||
public static final String ISO_GUEST_OS_NONE = "None";
|
||||
public static final String JOB_ID = "jobid";
|
||||
public static final String JOB_STATUS = "jobstatus";
|
||||
public static final String LASTNAME = "lastname";
|
||||
public static final String LEVEL = "level";
|
||||
public static final String LENGTH = "length";
|
||||
public static final String LIMIT_CPU_USE = "limitcpuuse";
|
||||
public static final String LOCK = "lock";
|
||||
public static final String LUN = "lun";
|
||||
public static final String LBID = "lbruleid";
|
||||
public static final String MAX = "max";
|
||||
public static final String MAX_SNAPS = "maxsnaps";
|
||||
public static final String MEMORY = "memory";
|
||||
public static final String MODE = "mode";
|
||||
public static final String NAME = "name";
|
||||
public static final String METHOD_NAME = "methodname";
|
||||
public static final String NETWORK_DOMAIN = "networkdomain";
|
||||
public static final String NETMASK = "netmask";
|
||||
public static final String NEW_NAME = "newname";
|
||||
public static final String NUM_RETRIES = "numretries";
|
||||
public static final String OFFER_HA = "offerha";
|
||||
public static final String IS_SYSTEM_OFFERING = "issystem";
|
||||
public static final String IS_DEFAULT_USE = "defaultuse";
|
||||
public static final String OP = "op";
|
||||
public static final String OS_CATEGORY_ID = "oscategoryid";
|
||||
public static final String OS_TYPE_ID = "ostypeid";
|
||||
public static final String PARAMS = "params";
|
||||
public static final String PARENT_DOMAIN_ID = "parentdomainid";
|
||||
public static final String PASSWORD = "password";
|
||||
public static final String NEW_PASSWORD = "new_password";
|
||||
public static final String PASSWORD_ENABLED = "passwordenabled";
|
||||
public static final String SSHKEY_ENABLED = "sshkeyenabled";
|
||||
public static final String PATH = "path";
|
||||
public static final String POD_ID = "podid";
|
||||
public static final String POD_IDS = "podids";
|
||||
public static final String POLICY_ID = "policyid";
|
||||
public static final String PORT = "port";
|
||||
public static final String PORTAL = "portal";
|
||||
public static final String PORT_FORWARDING_SERVICE_ID = "portforwardingserviceid";
|
||||
public static final String PRIVATE_INTERFACE = "privateinterface";
|
||||
public static final String PRIVATE_IP = "privateip";
|
||||
public static final String PRIVATE_PORT = "privateport";
|
||||
public static final String PRIVATE_START_PORT = "privateport";
|
||||
public static final String PRIVATE_END_PORT = "privateendport";
|
||||
public static final String PRIVATE_ZONE = "privatezone";
|
||||
public static final String PROTOCOL = "protocol";
|
||||
public static final String PUBLIC_INTERFACE = "publicinterface";
|
||||
public static final String PUBLIC_IP_ID = "publicipid";
|
||||
public static final String PUBLIC_IP = "publicip";
|
||||
public static final String PUBLIC_PORT = "publicport";
|
||||
public static final String PUBLIC_START_PORT = "publicport";
|
||||
public static final String PUBLIC_END_PORT = "publicendport";
|
||||
public static final String PUBLIC_ZONE = "publiczone";
|
||||
public static final String RECEIVED_BYTES = "receivedbytes";
|
||||
public static final String REQUIRES_HVM = "requireshvm";
|
||||
public static final String RESOURCE_TYPE = "resourcetype";
|
||||
public static final String RESPONSE = "response";
|
||||
public static final String QUERY_FILTER = "queryfilter";
|
||||
public static final String SCHEDULE = "schedule";
|
||||
public static final String SCOPE = "scope";
|
||||
public static final String SECRET_KEY = "usersecretkey";
|
||||
public static final String SINCE = "since";
|
||||
public static final String KEY = "key";
|
||||
public static final String SEARCH_BASE = "searchbase";
|
||||
public static final String SECURITY_GROUP_IDS = "securitygroupids";
|
||||
public static final String SECURITY_GROUP_NAMES = "securitygroupnames";
|
||||
public static final String SECURITY_GROUP_NAME = "securitygroupname";
|
||||
public static final String SECURITY_GROUP_ID = "securitygroupid";
|
||||
public static final String SENT = "sent";
|
||||
public static final String SENT_BYTES = "sentbytes";
|
||||
public static final String SERVICE_OFFERING_ID = "serviceofferingid";
|
||||
public static final String SHOW_CAPACITIES = "showcapacities";
|
||||
public static final String SIZE = "size";
|
||||
public static final String SNAPSHOT_ID = "snapshotid";
|
||||
public static final String SNAPSHOT_POLICY_ID = "snapshotpolicyid";
|
||||
public static final String SNAPSHOT_TYPE = "snapshottype";
|
||||
public static final String SOURCE_ZONE_ID = "sourcezoneid";
|
||||
public static final String START_DATE = "startdate";
|
||||
public static final String START_IP = "startip";
|
||||
public static final String START_IPV6 = "startipv6";
|
||||
public static final String START_PORT = "startport";
|
||||
public static final String STATE = "state";
|
||||
public static final String STATUS = "status";
|
||||
public static final String STORAGE_TYPE = "storagetype";
|
||||
public static final String SYSTEM_VM_TYPE = "systemvmtype";
|
||||
public static final String TAGS = "tags";
|
||||
public static final String TARGET_IQN = "targetiqn";
|
||||
public static final String TEMPLATE_FILTER = "templatefilter";
|
||||
public static final String TEMPLATE_ID = "templateid";
|
||||
public static final String ISO_ID = "isoid";
|
||||
public static final String TIMEOUT = "timeout";
|
||||
public static final String TIMEZONE = "timezone";
|
||||
public static final String TYPE = "type";
|
||||
public static final String TRUST_STORE = "truststore";
|
||||
public static final String TRUST_STORE_PASSWORD = "truststorepass";
|
||||
public static final String URL = "url";
|
||||
public static final String USAGE_INTERFACE = "usageinterface";
|
||||
public static final String USER_DATA = "userdata";
|
||||
public static final String USER_ID = "userid";
|
||||
public static final String USE_SSL = "ssl";
|
||||
public static final String USERNAME = "username";
|
||||
public static final String USER_SECURITY_GROUP_LIST = "usersecuritygrouplist";
|
||||
public static final String USE_VIRTUAL_NETWORK = "usevirtualnetwork";
|
||||
public static final String VALUE = "value";
|
||||
public static final String VIRTUAL_MACHINE_ID = "virtualmachineid";
|
||||
public static final String VIRTUAL_MACHINE_IDS = "virtualmachineids";
|
||||
public static final String VLAN = "vlan";
|
||||
public static final String VLAN_ID = "vlanid";
|
||||
public static final String VM_AVAILABLE = "vmavailable";
|
||||
public static final String VM_LIMIT = "vmlimit";
|
||||
public static final String VM_TOTAL = "vmtotal";
|
||||
public static final String VNET = "vnet";
|
||||
public static final String VOLUME_ID = "volumeid";
|
||||
public static final String ZONE_ID = "zoneid";
|
||||
public static final String ZONE_NAME = "zonename";
|
||||
public static final String NETWORK_TYPE = "networktype";
|
||||
public static final String PAGE = "page";
|
||||
public static final String PAGE_SIZE = "pagesize";
|
||||
public static final String COUNT = "count";
|
||||
public static final String TRAFFIC_TYPE = "traffictype";
|
||||
public static final String NETWORK_OFFERING_ID = "networkofferingid";
|
||||
public static final String NETWORK_IDS = "networkids";
|
||||
public static final String NETWORK_ID = "networkid";
|
||||
public static final String NIC_ID = "nicid";
|
||||
public static final String SPECIFY_VLAN = "specifyvlan";
|
||||
public static final String IS_DEFAULT = "isdefault";
|
||||
public static final String IS_SYSTEM = "issystem";
|
||||
public static final String AVAILABILITY = "availability";
|
||||
public static final String NETWORKRATE = "networkrate";
|
||||
public static final String HOST_TAGS = "hosttags";
|
||||
public static final String SSH_KEYPAIR = "keypair";
|
||||
public static final String HOST_CPU_CAPACITY = "hostcpucapacity";
|
||||
public static final String HOST_CPU_NUM = "hostcpunum";
|
||||
public static final String HOST_MEM_CAPACITY = "hostmemcapacity";
|
||||
public static final String HOST_MAC = "hostmac";
|
||||
public static final String HOST_TAG = "hosttag";
|
||||
public static final String PXE_SERVER_TYPE = "pxeservertype";
|
||||
public static final String LINMIN_USERNAME = "linminusername";
|
||||
public static final String LINMIN_PASSWORD = "linminpassword";
|
||||
public static final String LINMIN_APID = "linminapid";
|
||||
public static final String DHCP_SERVER_TYPE = "dhcpservertype";
|
||||
public static final String LINK_LOCAL_IP = "linklocalip";
|
||||
public static final String LINK_LOCAL_MAC_ADDRESS = "linklocalmacaddress";
|
||||
public static final String LINK_LOCAL_MAC_NETMASK = "linklocalnetmask";
|
||||
public static final String LINK_LOCAL_NETWORK_ID = "linklocalnetworkid";
|
||||
public static final String PRIVATE_MAC_ADDRESS = "privatemacaddress";
|
||||
public static final String PRIVATE_NETMASK = "privatenetmask";
|
||||
public static final String PRIVATE_NETWORK_ID = "privatenetworkid";
|
||||
public static final String ALLOCATION_STATE = "allocationstate";
|
||||
public static final String MANAGED_STATE = "managedstate";
|
||||
public static final String STORAGE_ID = "storageid";
|
||||
public static final String PING_STORAGE_SERVER_IP = "pingstorageserverip";
|
||||
public static final String PING_DIR = "pingdir";
|
||||
public static final String TFTP_DIR = "tftpdir";
|
||||
public static final String PING_CIFS_USERNAME = "pingcifsusername";
|
||||
public static final String PING_CIFS_PASSWORD = "pingcifspassword";
|
||||
public static final String CHECKSUM = "checksum";
|
||||
public static final String NETWORK_DEVICE_TYPE = "networkdevicetype";
|
||||
public static final String NETWORK_DEVICE_PARAMETER_LIST = "networkdeviceparameterlist";
|
||||
public static final String ZONE_TOKEN = "zonetoken";
|
||||
public static final String DHCP_PROVIDER = "dhcpprovider";
|
||||
public static final String RESULT = "success";
|
||||
public static final String LUN_ID = "lunId";
|
||||
public static final String IQN = "iqn";
|
||||
public static final String AGGREGATE_NAME = "aggregatename";
|
||||
public static final String POOL_NAME = "poolname";
|
||||
public static final String VOLUME_NAME = "volumename";
|
||||
public static final String SNAPSHOT_POLICY = "snapshotpolicy";
|
||||
public static final String SNAPSHOT_RESERVATION = "snapshotreservation";
|
||||
public static final String IP_NETWORK_LIST = "iptonetworklist";
|
||||
public static final String PARAM_LIST = "param";
|
||||
public static final String FOR_LOAD_BALANCING = "forloadbalancing";
|
||||
public static final String KEYBOARD = "keyboard";
|
||||
public static final String OPEN_FIREWALL = "openfirewall";
|
||||
public static final String TEMPLATE_TAG = "templatetag";
|
||||
public static final String HYPERVISOR_VERSION = "hypervisorversion";
|
||||
public static final String MAX_GUESTS_LIMIT = "maxguestslimit";
|
||||
public static final String PROJECT_ID = "projectid";
|
||||
public static final String PROJECT_IDS = "projectids";
|
||||
public static final String PROJECT = "project";
|
||||
public static final String ROLE = "role";
|
||||
public static final String USER = "user";
|
||||
public static final String ACTIVE_ONLY = "activeonly";
|
||||
public static final String TOKEN = "token";
|
||||
public static final String ACCEPT = "accept";
|
||||
public static final String SORT_KEY = "sortkey";
|
||||
public static final String ACCOUNT_DETAILS = "accountdetails";
|
||||
public static final String SERVICE_PROVIDER_LIST = "serviceproviderlist";
|
||||
public static final String SERVICE_CAPABILITY_LIST = "servicecapabilitylist";
|
||||
public static final String CAN_CHOOSE_SERVICE_CAPABILITY = "canchooseservicecapability";
|
||||
public static final String PROVIDER = "provider";
|
||||
public static final String NETWORK_SPEED = "networkspeed";
|
||||
public static final String BROADCAST_DOMAIN_RANGE = "broadcastdomainrange";
|
||||
public static final String ISOLATION_METHODS = "isolationmethods";
|
||||
public static final String PHYSICAL_NETWORK_ID = "physicalnetworkid";
|
||||
public static final String DEST_PHYSICAL_NETWORK_ID = "destinationphysicalnetworkid";
|
||||
public static final String ENABLED = "enabled";
|
||||
public static final String SERVICE_NAME = "servicename";
|
||||
public static final String DHCP_RANGE = "dhcprange";
|
||||
public static final String UUID = "uuid";
|
||||
public static final String SECURITY_GROUP_EANBLED = "securitygroupenabled";
|
||||
public static final String LOCAL_STORAGE_ENABLED = "localstorageenabled";
|
||||
public static final String GUEST_IP_TYPE = "guestiptype";
|
||||
public static final String XEN_NETWORK_LABEL = "xennetworklabel";
|
||||
public static final String KVM_NETWORK_LABEL = "kvmnetworklabel";
|
||||
public static final String VMWARE_NETWORK_LABEL = "vmwarenetworklabel";
|
||||
public static final String NETWORK_SERVICE_PROVIDER_ID = "nspid";
|
||||
public static final String SERVICE_LIST = "servicelist";
|
||||
public static final String CAN_ENABLE_INDIVIDUAL_SERVICE = "canenableindividualservice";
|
||||
public static final String SUPPORTED_SERVICES = "supportedservices";
|
||||
public static final String NSP_ID = "nspid";
|
||||
public static final String ACL_TYPE = "acltype";
|
||||
public static final String SUBDOMAIN_ACCESS = "subdomainaccess";
|
||||
public static final String LOAD_BALANCER_DEVICE_ID = "lbdeviceid";
|
||||
public static final String LOAD_BALANCER_DEVICE_NAME = "lbdevicename";
|
||||
public static final String LOAD_BALANCER_DEVICE_STATE = "lbdevicestate";
|
||||
public static final String LOAD_BALANCER_DEVICE_CAPACITY = "lbdevicecapacity";
|
||||
public static final String LOAD_BALANCER_DEVICE_DEDICATED = "lbdevicededicated";
|
||||
public static final String FIREWALL_DEVICE_ID = "fwdeviceid";
|
||||
public static final String FIREWALL_DEVICE_NAME = "fwdevicename";
|
||||
public static final String FIREWALL_DEVICE_STATE = "fwdevicestate";
|
||||
public static final String FIREWALL_DEVICE_CAPACITY = "fwdevicecapacity";
|
||||
public static final String FIREWALL_DEVICE_DEDICATED = "fwdevicededicated";
|
||||
public static final String SERVICE = "service";
|
||||
public static final String ASSOCIATED_NETWORK_ID = "associatednetworkid";
|
||||
public static final String ASSOCIATED_NETWORK_NAME = "associatednetworkname";
|
||||
public static final String SOURCE_NAT_SUPPORTED = "sourcenatsupported";
|
||||
public static final String RESOURCE_STATE = "resourcestate";
|
||||
public static final String PROJECT_INVITE_REQUIRED = "projectinviterequired";
|
||||
public static final String REQUIRED = "required";
|
||||
public static final String RESTART_REQUIRED = "restartrequired";
|
||||
public static final String ALLOW_USER_CREATE_PROJECTS = "allowusercreateprojects";
|
||||
public static final String CONSERVE_MODE = "conservemode";
|
||||
public static final String TRAFFIC_TYPE_IMPLEMENTOR = "traffictypeimplementor";
|
||||
public static final String KEYWORD = "keyword";
|
||||
public static final String LIST_ALL = "listall";
|
||||
public static final String SPECIFY_IP_RANGES = "specifyipranges";
|
||||
public static final String IS_SOURCE_NAT = "issourcenat";
|
||||
public static final String IS_STATIC_NAT = "isstaticnat";
|
||||
public static final String SORT_BY = "sortby";
|
||||
public static final String CHANGE_CIDR = "changecidr";
|
||||
public static final String PURPOSE = "purpose";
|
||||
public static final String IS_TAGGED = "istagged";
|
||||
public static final String INSTANCE_NAME = "instancename";
|
||||
public static final String START_VM = "startvm";
|
||||
public static final String HA_HOST = "hahost";
|
||||
public static final String CUSTOM_DISK_OFF_MAX_SIZE = "customdiskofferingmaxsize";
|
||||
public static final String DEFAULT_ZONE_ID = "defaultzoneid";
|
||||
public static final String GUID = "guid";
|
||||
|
||||
public static final String EXTERNAL_SWITCH_MGMT_DEVICE_ID = "vsmdeviceid";
|
||||
public static final String EXTERNAL_SWITCH_MGMT_DEVICE_NAME = "vsmdevicename";
|
||||
public static final String EXTERNAL_SWITCH_MGMT_DEVICE_STATE = "vsmdevicestate";
|
||||
// Would we need to have a capacity field for Cisco N1KV VSM? Max hosts managed by it perhaps? May remove this later.
|
||||
public static final String EXTERNAL_SWITCH_MGMT_DEVICE_CAPACITY = "vsmdevicecapacity";
|
||||
public static final String CISCO_NEXUS_VSM_NAME = "vsmname";
|
||||
public static final String VSM_USERNAME = "vsmusername";
|
||||
public static final String VSM_PASSWORD = "vsmpassword";
|
||||
public static final String VSM_IPADDRESS = "vsmipaddress";
|
||||
public static final String VSM_MGMT_VLAN_ID = "vsmmgmtvlanid";
|
||||
public static final String VSM_PKT_VLAN_ID = "vsmpktvlanid";
|
||||
public static final String VSM_CTRL_VLAN_ID = "vsmctrlvlanid";
|
||||
public static final String VSM_STORAGE_VLAN_ID = "vsmstoragevlanid";
|
||||
public static final String VSM_DOMAIN_ID = "vsmdomainid";
|
||||
public static final String VSM_CONFIG_MODE = "vsmconfigmode";
|
||||
public static final String VSM_CONFIG_STATE = "vsmconfigstate";
|
||||
public static final String VSM_DEVICE_STATE = "vsmdevicestate";
|
||||
public static final String ADD_VSM_FLAG = "addvsmflag";
|
||||
public static final String END_POINT = "endpoint";
|
||||
public static final String REGION_ID = "regionid";
|
||||
public static final String IS_PROPAGATE = "ispropagate";
|
||||
public static final String VPC_OFF_ID = "vpcofferingid";
|
||||
public static final String NETWORK = "network";
|
||||
public static final String VPC_ID = "vpcid";
|
||||
public static final String GATEWAY_ID = "gatewayid";
|
||||
public static final String CAN_USE_FOR_DEPLOY = "canusefordeploy";
|
||||
public static final String RESOURCE_IDS = "resourceids";
|
||||
public static final String RESOURCE_ID = "resourceid";
|
||||
public static final String CUSTOMER = "customer";
|
||||
public static final String S2S_VPN_GATEWAY_ID = "s2svpngatewayid";
|
||||
public static final String S2S_CUSTOMER_GATEWAY_ID = "s2scustomergatewayid";
|
||||
public static final String IPSEC_PSK = "ipsecpsk";
|
||||
public static final String GUEST_IP = "guestip";
|
||||
public static final String REMOVED = "removed";
|
||||
public static final String IKE_POLICY = "ikepolicy";
|
||||
public static final String ESP_POLICY = "esppolicy";
|
||||
public static final String IKE_LIFETIME = "ikelifetime";
|
||||
public static final String ESP_LIFETIME = "esplifetime";
|
||||
public static final String DPD = "dpd";
|
||||
public static final String FOR_VPC = "forvpc";
|
||||
public static final String SHRINK_OK = "shrinkok";
|
||||
public static final String NICIRA_NVP_DEVICE_ID = "nvpdeviceid";
|
||||
public static final String NICIRA_NVP_TRANSPORT_ZONE_UUID = "transportzoneuuid";
|
||||
public static final String NICIRA_NVP_DEVICE_NAME = "niciradevicename";
|
||||
public static final String NICIRA_NVP_GATEWAYSERVICE_UUID = "l3gatewayserviceuuid";
|
||||
public static final String S3_ACCESS_KEY = "accesskey";
|
||||
public static final String S3_SECRET_KEY = "secretkey";
|
||||
public static final String S3_END_POINT = "endpoint";
|
||||
public static final String S3_BUCKET_NAME = "bucket";
|
||||
public static final String S3_HTTPS_FLAG = "usehttps";
|
||||
public static final String S3_CONNECTION_TIMEOUT = "connectiontimeout";
|
||||
public static final String S3_MAX_ERROR_RETRY = "maxerrorretry";
|
||||
public static final String S3_SOCKET_TIMEOUT = "sockettimeout";
|
||||
public static final String INCL_ZONES = "includezones";
|
||||
public static final String EXCL_ZONES = "excludezones";
|
||||
public static final String SOURCE = "source";
|
||||
public static final String COUNTER_ID = "counterid";
|
||||
public static final String AGGR_OPERATOR = "aggroperator";
|
||||
public static final String AGGR_FUNCTION = "aggrfunction";
|
||||
public static final String AGGR_VALUE = "aggrvalue";
|
||||
public static final String THRESHOLD = "threshold";
|
||||
public static final String RELATIONAL_OPERATOR = "relationaloperator";
|
||||
public static final String OTHER_DEPLOY_PARAMS = "otherdeployparams";
|
||||
public static final String MIN_MEMBERS = "minmembers";
|
||||
public static final String MAX_MEMBERS = "maxmembers";
|
||||
public static final String AUTOSCALE_VM_DESTROY_TIME = "destroyvmgraceperiod";
|
||||
public static final String VMPROFILE_ID = "vmprofileid";
|
||||
public static final String VMGROUP_ID = "vmgroupid";
|
||||
public static final String CS_URL = "csurl";
|
||||
public static final String SCALEUP_POLICY_IDS = "scaleuppolicyids";
|
||||
public static final String SCALEDOWN_POLICY_IDS = "scaledownpolicyids";
|
||||
public static final String SCALEUP_POLICIES = "scaleuppolicies";
|
||||
public static final String SCALEDOWN_POLICIES = "scaledownpolicies";
|
||||
public static final String INTERVAL = "interval";
|
||||
public static final String QUIETTIME = "quiettime";
|
||||
public static final String ACTION = "action";
|
||||
public static final String CONDITION_ID = "conditionid";
|
||||
public static final String CONDITION_IDS = "conditionids";
|
||||
public static final String COUNTERPARAM_LIST = "counterparam";
|
||||
public static final String AUTOSCALE_USER_ID = "autoscaleuserid";
|
||||
public static final String BAREMETAL_DISCOVER_NAME = "baremetaldiscovername";
|
||||
<<<<<<< HEAD
|
||||
public static final String UCS_DN = "ucsdn";
|
||||
=======
|
||||
public static final String VM_SNAPSHOT_DESCRIPTION = "description";
|
||||
public static final String VM_SNAPSHOT_DISPLAYNAME = "name";
|
||||
public static final String VM_SNAPSHOT_ID = "vmsnapshotid";
|
||||
public static final String VM_SNAPSHOT_DISK_IDS = "vmsnapshotdiskids";
|
||||
public static final String VM_SNAPSHOT_MEMORY = "snapshotmemory";
|
||||
>>>>>>> CLOUDSTACK-684 Support VM Snapshot
|
||||
|
||||
public enum HostDetails {
|
||||
all, capacity, events, stats, min;
|
||||
}
|
||||
|
||||
public enum VMDetails {
|
||||
all, group, nics, stats, secgrp, tmpl, servoff, iso, volume, min;
|
||||
}
|
||||
|
||||
public enum LDAPParams {
|
||||
hostname, port, usessl, queryfilter, searchbase, dn, passwd, truststore, truststorepass;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ldap." + name();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -78,6 +78,11 @@ public class CreateAccountCmd extends BaseCmd {
|
||||
@Parameter(name = ApiConstants.ACCOUNT_DETAILS, type = CommandType.MAP, description = "details for account used to store specific parameters")
|
||||
private Map<String, String> details;
|
||||
|
||||
@Parameter(name=ApiConstants.ACCOUNT_ID, type=CommandType.STRING, description="Account UUID, required for adding account from external provisioning system")
|
||||
private String accountUUID;
|
||||
|
||||
@Parameter(name=ApiConstants.USER_ID, type=CommandType.STRING, description="User UUID, required for adding account from external provisioning system")
|
||||
private String userUUID;
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
/////////////////// Accessors ///////////////////////
|
||||
@ -133,6 +138,14 @@ public class CreateAccountCmd extends BaseCmd {
|
||||
return params;
|
||||
}
|
||||
|
||||
public String getAccountUUID() {
|
||||
return accountUUID;
|
||||
}
|
||||
|
||||
public String getUserUUID() {
|
||||
return userUUID;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
/////////////// API Implementation///////////////////
|
||||
/////////////////////////////////////////////////////
|
||||
@ -151,7 +164,7 @@ public class CreateAccountCmd extends BaseCmd {
|
||||
public void execute(){
|
||||
UserContext.current().setEventDetails("Account Name: "+getAccountName()+", Domain Id:"+getDomainId());
|
||||
UserAccount userAccount = _accountService.createUserAccount(getUsername(), getPassword(), getFirstName(), getLastName(), getEmail(), getTimeZone(), getAccountName(), getAccountType(),
|
||||
getDomainId(), getNetworkDomain(), getDetails());
|
||||
getDomainId(), getNetworkDomain(), getDetails(), getAccountUUID(), getUserUUID());
|
||||
if (userAccount != null) {
|
||||
AccountResponse response = _responseGenerator.createUserAccountResponse(userAccount);
|
||||
response.setResponseName(getCommandName());
|
||||
|
||||
@ -49,6 +49,9 @@ public class CreateDomainCmd extends BaseCmd {
|
||||
@Parameter(name=ApiConstants.NETWORK_DOMAIN, type=CommandType.STRING, description="Network domain for networks in the domain")
|
||||
private String networkDomain;
|
||||
|
||||
@Parameter(name=ApiConstants.DOMAIN_ID, type=CommandType.STRING, description="Domain UUID, required for adding domain from another Region")
|
||||
private String domainUUID;
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
/////////////////// Accessors ///////////////////////
|
||||
/////////////////////////////////////////////////////
|
||||
@ -65,6 +68,10 @@ public class CreateDomainCmd extends BaseCmd {
|
||||
return networkDomain;
|
||||
}
|
||||
|
||||
public String getDomainUUID() {
|
||||
return domainUUID;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
/////////////// API Implementation///////////////////
|
||||
/////////////////////////////////////////////////////
|
||||
@ -82,7 +89,7 @@ public class CreateDomainCmd extends BaseCmd {
|
||||
@Override
|
||||
public void execute(){
|
||||
UserContext.current().setEventDetails("Domain Name: "+getDomainName()+((getParentDomainId()!=null)?", Parent DomainId :"+getParentDomainId():""));
|
||||
Domain domain = _domainService.createDomain(getDomainName(), getParentDomainId(), getNetworkDomain());
|
||||
Domain domain = _domainService.createDomain(getDomainName(), getParentDomainId(), getNetworkDomain(), getDomainUUID());
|
||||
if (domain != null) {
|
||||
DomainResponse response = _responseGenerator.createDomainResponse(domain);
|
||||
response.setResponseName(getCommandName());
|
||||
|
||||
@ -49,12 +49,6 @@ public class AddRegionCmd extends BaseCmd {
|
||||
@Parameter(name=ApiConstants.END_POINT, type=CommandType.STRING, required=true, description="Region service endpoint")
|
||||
private String endPoint;
|
||||
|
||||
@Parameter(name=ApiConstants.API_KEY, type=CommandType.STRING, description="API key of Admin user")
|
||||
private String apiKey;
|
||||
|
||||
@Parameter(name=ApiConstants.SECRET_KEY, type=CommandType.STRING, description="Secret Key of Admin user")
|
||||
private String secretKey;
|
||||
|
||||
@Inject public RegionService _regionService;
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
@ -73,14 +67,6 @@ public class AddRegionCmd extends BaseCmd {
|
||||
return endPoint;
|
||||
}
|
||||
|
||||
public String getApiKey() {
|
||||
return apiKey;
|
||||
}
|
||||
|
||||
public String getSecretKey() {
|
||||
return secretKey;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
/////////////// API Implementation///////////////////
|
||||
/////////////////////////////////////////////////////
|
||||
@ -97,7 +83,7 @@ public class AddRegionCmd extends BaseCmd {
|
||||
|
||||
@Override
|
||||
public void execute(){
|
||||
Region region = _regionService.addRegion(getId(), getRegionName(), getEndPoint(), getApiKey(), getSecretKey());
|
||||
Region region = _regionService.addRegion(getId(), getRegionName(), getEndPoint());
|
||||
if (region != null) {
|
||||
RegionResponse response = _responseGenerator.createRegionResponse(region);
|
||||
response.setResponseName(getCommandName());
|
||||
|
||||
@ -49,12 +49,6 @@ public class UpdateRegionCmd extends BaseCmd {
|
||||
@Parameter(name=ApiConstants.END_POINT, type=CommandType.STRING, description="updates region with this end point")
|
||||
private String endPoint;
|
||||
|
||||
@Parameter(name=ApiConstants.API_KEY, type=CommandType.STRING, description="new API key for the Region")
|
||||
private String apiKey;
|
||||
|
||||
@Parameter(name=ApiConstants.SECRET_KEY, type=CommandType.STRING, description="new Secret Key for the Region")
|
||||
private String secretKey;
|
||||
|
||||
@Inject RegionService _regionService;
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
@ -73,13 +67,6 @@ public class UpdateRegionCmd extends BaseCmd {
|
||||
return endPoint;
|
||||
}
|
||||
|
||||
public String getApiKey() {
|
||||
return apiKey;
|
||||
}
|
||||
|
||||
public String getSecretKey() {
|
||||
return secretKey;
|
||||
}
|
||||
/////////////////////////////////////////////////////
|
||||
/////////////// API Implementation///////////////////
|
||||
/////////////////////////////////////////////////////
|
||||
@ -96,7 +83,7 @@ public class UpdateRegionCmd extends BaseCmd {
|
||||
|
||||
@Override
|
||||
public void execute(){
|
||||
Region region = _regionService.updateRegion(getId(), getRegionName(), getEndPoint(), getApiKey(), getSecretKey());
|
||||
Region region = _regionService.updateRegion(getId(), getRegionName(), getEndPoint());
|
||||
if (region != null) {
|
||||
RegionResponse response = _responseGenerator.createRegionResponse(region);
|
||||
response.setResponseName(getCommandName());
|
||||
|
||||
@ -65,6 +65,9 @@ public class CreateUserCmd extends BaseCmd {
|
||||
@Parameter(name=ApiConstants.USERNAME, type=CommandType.STRING, required=true, description="Unique username.")
|
||||
private String username;
|
||||
|
||||
@Parameter(name=ApiConstants.USER_ID, type=CommandType.STRING, description="User UUID, required for adding account from external provisioning system")
|
||||
private String userUUID;
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
/////////////////// Accessors ///////////////////////
|
||||
/////////////////////////////////////////////////////
|
||||
@ -101,6 +104,10 @@ public class CreateUserCmd extends BaseCmd {
|
||||
return username;
|
||||
}
|
||||
|
||||
public String getUserUUID() {
|
||||
return userUUID;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
/////////////// API Implementation///////////////////
|
||||
/////////////////////////////////////////////////////
|
||||
@ -132,7 +139,7 @@ public class CreateUserCmd extends BaseCmd {
|
||||
@Override
|
||||
public void execute(){
|
||||
UserContext.current().setEventDetails("UserName: "+getUserName()+", FirstName :"+getFirstName()+", LastName: "+getLastName());
|
||||
User user = _accountService.createUser(getUserName(), getPassword(), getFirstName(), getLastName(), getEmail(), getTimezone(), getAccountName(), getDomainId());
|
||||
User user = _accountService.createUser(getUserName(), getPassword(), getFirstName(), getLastName(), getEmail(), getTimezone(), getAccountName(), getDomainId(), getUserUUID());
|
||||
if (user != null) {
|
||||
UserResponse response = _responseGenerator.createUserResponse(user);
|
||||
response.setResponseName(getCommandName());
|
||||
|
||||
@ -18,6 +18,7 @@ package org.apache.cloudstack.api.response;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.cloudstack.api.ApiConstants;
|
||||
@ -157,7 +158,7 @@ public class DomainRouterResponse extends BaseResponse implements ControlledView
|
||||
private Set<NicResponse> nics;
|
||||
|
||||
public DomainRouterResponse(){
|
||||
nics = new HashSet<NicResponse>();
|
||||
nics = new LinkedHashSet<NicResponse>();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
package org.apache.cloudstack.api.response;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.cloudstack.api.ApiConstants;
|
||||
@ -65,9 +66,9 @@ public class SecurityGroupResponse extends BaseResponse implements ControlledVie
|
||||
private Set<ResourceTagResponse> tags;
|
||||
|
||||
public SecurityGroupResponse(){
|
||||
this.ingressRules = new HashSet<SecurityGroupRuleResponse>();
|
||||
this.egressRules = new HashSet<SecurityGroupRuleResponse>();
|
||||
this.tags = new HashSet<ResourceTagResponse>();
|
||||
this.ingressRules = new LinkedHashSet<SecurityGroupRuleResponse>();
|
||||
this.egressRules = new LinkedHashSet<SecurityGroupRuleResponse>();
|
||||
this.tags = new LinkedHashSet<ResourceTagResponse>();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -18,6 +18,7 @@ package org.apache.cloudstack.api.response;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.cloudstack.api.ApiConstants;
|
||||
@ -169,9 +170,9 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp
|
||||
private String keyPairName;
|
||||
|
||||
public UserVmResponse(){
|
||||
securityGroupList = new HashSet<SecurityGroupResponse>();
|
||||
nics = new HashSet<NicResponse>();
|
||||
tags = new HashSet<ResourceTagResponse>();
|
||||
securityGroupList = new LinkedHashSet<SecurityGroupResponse>();
|
||||
nics = new LinkedHashSet<NicResponse>();
|
||||
tags = new LinkedHashSet<ResourceTagResponse>();
|
||||
}
|
||||
|
||||
public void setHypervisor(String hypervisor) {
|
||||
|
||||
@ -18,6 +18,7 @@ package org.apache.cloudstack.api.response;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.cloudstack.api.ApiConstants;
|
||||
@ -161,7 +162,7 @@ public class VolumeResponse extends BaseResponse implements ControlledViewEntity
|
||||
private Set<ResourceTagResponse> tags;
|
||||
|
||||
public VolumeResponse(){
|
||||
tags = new HashSet<ResourceTagResponse>();
|
||||
tags = new LinkedHashSet<ResourceTagResponse>();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -29,7 +29,4 @@ public interface Region {
|
||||
|
||||
public String getEndPoint();
|
||||
|
||||
public String getApiKey();
|
||||
|
||||
public String getSecretKey();
|
||||
}
|
||||
|
||||
@ -43,22 +43,18 @@ public interface RegionService {
|
||||
* @param id
|
||||
* @param name
|
||||
* @param endPoint
|
||||
* @param apiKey
|
||||
* @param secretKey
|
||||
* @return Return added Region object
|
||||
*/
|
||||
public Region addRegion(int id, String name, String endPoint, String apiKey, String secretKey);
|
||||
public Region addRegion(int id, String name, String endPoint);
|
||||
|
||||
/**
|
||||
* Update details of the Region with specified Id
|
||||
* @param id
|
||||
* @param name
|
||||
* @param endPoint
|
||||
* @param apiKey
|
||||
* @param secretKey
|
||||
* @return Return updated Region object
|
||||
*/
|
||||
public Region updateRegion(int id, String name, String endPoint, String apiKey, String secretKey);
|
||||
public Region updateRegion(int id, String name, String endPoint);
|
||||
|
||||
/**
|
||||
* @param id
|
||||
|
||||
@ -64,7 +64,7 @@ public class RegionCmdTest extends TestCase {
|
||||
|
||||
Region region = Mockito.mock(Region.class);
|
||||
Mockito.when(
|
||||
regionService.addRegion(Mockito.anyInt(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString()))
|
||||
regionService.addRegion(Mockito.anyInt(), Mockito.anyString(), Mockito.anyString()))
|
||||
.thenReturn(region);
|
||||
|
||||
addRegionCmd._regionService = regionService;
|
||||
@ -87,7 +87,7 @@ public class RegionCmdTest extends TestCase {
|
||||
|
||||
Region region = Mockito.mock(Region.class);
|
||||
Mockito.when(
|
||||
regionService.addRegion(Mockito.anyInt(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString()))
|
||||
regionService.addRegion(Mockito.anyInt(), Mockito.anyString(), Mockito.anyString()))
|
||||
.thenReturn(null);
|
||||
|
||||
addRegionCmd._regionService = regionService;
|
||||
|
||||
@ -66,9 +66,6 @@ public class AccountVO implements Account {
|
||||
@Column(name="default_zone_id")
|
||||
private Long defaultZoneId = null;
|
||||
|
||||
@Column(name="region_id")
|
||||
private int regionId;
|
||||
|
||||
public AccountVO() {
|
||||
this.uuid = UUID.randomUUID().toString();
|
||||
}
|
||||
@ -78,14 +75,13 @@ public class AccountVO implements Account {
|
||||
this.uuid = UUID.randomUUID().toString();
|
||||
}
|
||||
|
||||
public AccountVO(String accountName, long domainId, String networkDomain, short type, String uuid, int regionId) {
|
||||
public AccountVO(String accountName, long domainId, String networkDomain, short type, String uuid) {
|
||||
this.accountName = accountName;
|
||||
this.domainId = domainId;
|
||||
this.networkDomain = networkDomain;
|
||||
this.type = type;
|
||||
this.state = State.enabled;
|
||||
this.uuid = uuid;
|
||||
this.regionId = regionId;
|
||||
}
|
||||
|
||||
public void setNeedsCleanup(boolean value) {
|
||||
@ -183,11 +179,4 @@ public class AccountVO implements Account {
|
||||
this.uuid = uuid;
|
||||
}
|
||||
|
||||
public int getRegionId() {
|
||||
return regionId;
|
||||
}
|
||||
|
||||
public void setRegionId(int regionId) {
|
||||
this.regionId = regionId;
|
||||
}
|
||||
}
|
||||
|
||||
@ -93,9 +93,6 @@ public class UserVO implements User, Identity, InternalIdentity {
|
||||
@Column(name="uuid")
|
||||
private String uuid;
|
||||
|
||||
@Column(name="region_id")
|
||||
private int regionId;
|
||||
|
||||
public UserVO() {
|
||||
this.uuid = UUID.randomUUID().toString();
|
||||
}
|
||||
@ -105,7 +102,7 @@ public class UserVO implements User, Identity, InternalIdentity {
|
||||
this.uuid = UUID.randomUUID().toString();
|
||||
}
|
||||
|
||||
public UserVO(long accountId, String username, String password, String firstName, String lastName, String email, String timezone, String uuid, int regionId) {
|
||||
public UserVO(long accountId, String username, String password, String firstName, String lastName, String email, String timezone, String uuid) {
|
||||
this.accountId = accountId;
|
||||
this.username = username;
|
||||
this.password = password;
|
||||
@ -115,7 +112,6 @@ public class UserVO implements User, Identity, InternalIdentity {
|
||||
this.timezone = timezone;
|
||||
this.state = State.enabled;
|
||||
this.uuid = uuid;
|
||||
this.regionId = regionId;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -266,11 +262,4 @@ public class UserVO implements User, Identity, InternalIdentity {
|
||||
this.uuid = uuid;
|
||||
}
|
||||
|
||||
public int getRegionId() {
|
||||
return regionId;
|
||||
}
|
||||
|
||||
public void setRegionId(int regionId) {
|
||||
this.regionId = regionId;
|
||||
}
|
||||
}
|
||||
|
||||
6
debian/changelog
vendored
6
debian/changelog
vendored
@ -1,3 +1,9 @@
|
||||
cloudstack (4.2.0-incubating-0.0.snapshot) unstable; urgency=low
|
||||
|
||||
* Update the version to 4.2.0 to be in sync with Maven
|
||||
|
||||
-- Wido den Hollander <wido@widodh.nl> Wed, 13 Mar 2013 19:15:00 +0100
|
||||
|
||||
cloudstack (4.1.0-incubating-0.0.snapshot) unstable; urgency=low
|
||||
|
||||
* Incorporate incubating into version, remove epoch
|
||||
|
||||
2
debian/cloudstack-management.install
vendored
2
debian/cloudstack-management.install
vendored
@ -18,6 +18,8 @@
|
||||
/etc/cloudstack/server/*
|
||||
/etc/cloudstack/management/*
|
||||
/etc/init.d/cloudstack-management
|
||||
/etc/security/limits.d/cloudstack-limits.conf
|
||||
/etc/sudoers.d/cloudstack
|
||||
/var/cache/cloudstack/management
|
||||
/var/cache/cloudstack/management/work
|
||||
/var/cache/cloudstack/management/temp
|
||||
|
||||
37
debian/cloudstack-usage.postinst
vendored
Normal file
37
debian/cloudstack-usage.postinst
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
# We copy the db.properties file from the management server to the usage server
|
||||
# This used to be a symlink, but we don't do that anymore
|
||||
if [ -f "/etc/cloud/management/db.properties" ]; then
|
||||
cp -a /etc/cloud/management/db.properties /etc/cloudstack/usage/db.properties
|
||||
fi
|
||||
|
||||
# We also retain the log4j configuration
|
||||
if [ -f "/etc/cloud/usage/log4j-cloud_usage.xml" ]; then
|
||||
cp -a /etc/cloud/usage/log4j-cloud_usage.xml /etc/cloudstack/usage/log4j-cloud_usage.xml
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
9
debian/rules
vendored
9
debian/rules
vendored
@ -75,6 +75,8 @@ install:
|
||||
# cloudstack-management
|
||||
mkdir $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/server
|
||||
mkdir $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/management
|
||||
mkdir -p $(DESTDIR)/$(SYSCONFDIR)/security/limits.d/
|
||||
mkdir -p $(DESTDIR)/$(SYSCONFDIR)/sudoers.d/
|
||||
mkdir -p $(DESTDIR)/usr/share/$(PACKAGE)-management
|
||||
mkdir -p $(DESTDIR)/usr/share/$(PACKAGE)-management/webapps/client
|
||||
mkdir $(DESTDIR)/usr/share/$(PACKAGE)-management/setup
|
||||
@ -89,6 +91,12 @@ install:
|
||||
cp -r client/target/cloud-client-ui-$(VERSION)-SNAPSHOT/* $(DESTDIR)/usr/share/$(PACKAGE)-management/webapps/client/
|
||||
cp server/target/conf/* $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/server/
|
||||
cp client/target/conf/* $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/management/
|
||||
|
||||
# nast hack for a couple of configuration files
|
||||
mv $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/server/cloudstack-limits.conf $(DESTDIR)/$(SYSCONFDIR)/security/limits.d/
|
||||
mv $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/server/cloudstack-sudoers $(DESTDIR)/$(SYSCONFDIR)/sudoers.d/cloudstack
|
||||
chmod 0440 $(DESTDIR)/$(SYSCONFDIR)/sudoers.d/cloudstack
|
||||
|
||||
ln -s tomcat6-nonssl.conf $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/management/tomcat6.conf
|
||||
mkdir -p $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/management/Catalina/localhost/client
|
||||
install -D packaging/debian/init/cloud-management $(DESTDIR)/$(SYSCONFDIR)/init.d/$(PACKAGE)-management
|
||||
@ -129,7 +137,6 @@ install:
|
||||
install -D usage/target/cloud-usage-$(VERSION)-SNAPSHOT.jar $(DESTDIR)/usr/share/$(PACKAGE)-usage/lib/$(PACKAGE)-usage.jar
|
||||
install -D usage/target/dependencies/* $(DESTDIR)/usr/share/$(PACKAGE)-usage/lib/
|
||||
cp usage/target/transformed/* $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/usage/
|
||||
ln -s ../management/db.properties $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/usage/db.properties
|
||||
install -D packaging/debian/init/cloud-usage $(DESTDIR)/$(SYSCONFDIR)/init.d/$(PACKAGE)-usage
|
||||
|
||||
# cloudstack-awsapi
|
||||
|
||||
@ -34,8 +34,10 @@
|
||||
AutoScaling to launch an additional VM whenever CPU usage exceeds 80 percent for 15 minutes, or
|
||||
to remove a VM whenever CPU usage is less than 20 percent for 30 minutes.</para>
|
||||
<para>&PRODUCT; uses the NetScaler load balancer to monitor all aspects of a system's health and
|
||||
work in unison with &PRODUCT; to initiate scale-up or scale-down actions. The supported
|
||||
NetScaler version is 10.0.</para>
|
||||
work in unison with &PRODUCT; to initiate scale-up or scale-down actions.</para>
|
||||
<note>
|
||||
<para>AutoScale is supported on NetScaler Release 10 Build 73.e and beyond.</para>
|
||||
</note>
|
||||
<formalpara>
|
||||
<title>Prerequisites</title>
|
||||
<para>Before you configure an AutoScale rule, consider the following:</para>
|
||||
|
||||
@ -597,10 +597,6 @@ setup_aesni() {
|
||||
if [ `grep aes /proc/cpuinfo | wc -l` -gt 0 ]
|
||||
then
|
||||
modprobe aesni_intel
|
||||
if [ `lsmod | grep aesni_intel | wc -l` -gt 0 ]
|
||||
then
|
||||
echo aesni_intel >> /etc/modules
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@ -3496,7 +3496,7 @@ ServerResource {
|
||||
sscmd.setDataCenter(_dcId);
|
||||
sscmd.setResourceType(Storage.StorageResourceType.STORAGE_POOL);
|
||||
} catch (CloudRuntimeException e) {
|
||||
|
||||
s_logger.debug("Unable to initialize local storage pool: " + e);
|
||||
}
|
||||
|
||||
if (sscmd != null) {
|
||||
@ -3937,26 +3937,43 @@ ServerResource {
|
||||
try {
|
||||
dm = conn.domainLookupByUUID(UUID.nameUUIDFromBytes(vmName
|
||||
.getBytes()));
|
||||
int persist = dm.isPersistent();
|
||||
if (force) {
|
||||
if (dm.getInfo().state != DomainInfo.DomainState.VIR_DOMAIN_SHUTOFF) {
|
||||
if (dm.isActive() == 1) {
|
||||
dm.destroy();
|
||||
if (persist == 1) {
|
||||
dm.undefine();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (dm.getInfo().state == DomainInfo.DomainState.VIR_DOMAIN_SHUTOFF) {
|
||||
if (dm.isActive() == 0) {
|
||||
return null;
|
||||
}
|
||||
dm.shutdown();
|
||||
int retry = _stopTimeout / 2000;
|
||||
/* Wait for the domain gets into shutoff state */
|
||||
while ((dm.getInfo().state != DomainInfo.DomainState.VIR_DOMAIN_SHUTOFF)
|
||||
&& (retry >= 0)) {
|
||||
Thread.sleep(2000);
|
||||
retry--;
|
||||
/* Wait for the domain gets into shutoff state. When it does
|
||||
the dm object will no longer work, so we need to catch it. */
|
||||
try {
|
||||
while ( dm.isActive() == 1 && (retry >= 0)) {
|
||||
Thread.sleep(2000);
|
||||
retry--;
|
||||
}
|
||||
} catch (LibvirtException e) {
|
||||
String error = e.toString();
|
||||
if (error.contains("Domain not found")) {
|
||||
s_logger.debug("successfully shut down vm " + vmName);
|
||||
} else {
|
||||
s_logger.debug("Error in waiting for vm shutdown:" + error);
|
||||
}
|
||||
}
|
||||
if (retry < 0) {
|
||||
s_logger.warn("Timed out waiting for domain " + vmName
|
||||
+ " to shutdown gracefully");
|
||||
return Script.ERR_TIMEOUT;
|
||||
} else {
|
||||
if (persist == 1) {
|
||||
dm.undefine();
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (LibvirtException e) {
|
||||
|
||||
@ -120,14 +120,18 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
|
||||
StoragePool sp = null;
|
||||
try {
|
||||
s_logger.debug(spd.toString());
|
||||
sp = conn.storagePoolDefineXML(spd.toString(), 0);
|
||||
sp.create(0);
|
||||
sp = conn.storagePoolCreateXML(spd.toString(), 0);
|
||||
return sp;
|
||||
} catch (LibvirtException e) {
|
||||
s_logger.error(e.toString());
|
||||
if (sp != null) {
|
||||
try {
|
||||
sp.undefine();
|
||||
if (sp.isPersistent() == 1) {
|
||||
sp.destroy();
|
||||
sp.undefine();
|
||||
} else {
|
||||
sp.destroy();
|
||||
}
|
||||
sp.free();
|
||||
} catch (LibvirtException l) {
|
||||
s_logger.debug("Failed to define nfs storage pool with: "
|
||||
@ -150,15 +154,18 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
|
||||
StoragePool sp = null;
|
||||
try {
|
||||
s_logger.debug(spd.toString());
|
||||
sp = conn.storagePoolDefineXML(spd.toString(), 0);
|
||||
sp.create(0);
|
||||
|
||||
sp = conn.storagePoolCreateXML(spd.toString(), 0);
|
||||
return sp;
|
||||
} catch (LibvirtException e) {
|
||||
s_logger.error(e.toString());
|
||||
if (sp != null) {
|
||||
try {
|
||||
sp.undefine();
|
||||
if (sp.isPersistent() == 1) {
|
||||
sp.destroy();
|
||||
sp.undefine();
|
||||
} else {
|
||||
sp.destroy();
|
||||
}
|
||||
sp.free();
|
||||
} catch (LibvirtException l) {
|
||||
s_logger.debug("Failed to define shared mount point storage pool with: "
|
||||
@ -181,14 +188,18 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
|
||||
StoragePool sp = null;
|
||||
try {
|
||||
s_logger.debug(spd.toString());
|
||||
sp = conn.storagePoolDefineXML(spd.toString(), 0);
|
||||
sp.create(0);
|
||||
sp = conn.storagePoolCreateXML(spd.toString(), 0);
|
||||
return sp;
|
||||
} catch (LibvirtException e) {
|
||||
s_logger.error(e.toString());
|
||||
if (sp != null) {
|
||||
try {
|
||||
sp.undefine();
|
||||
if (sp.isPersistent() == 1) {
|
||||
sp.destroy();
|
||||
sp.undefine();
|
||||
} else {
|
||||
sp.destroy();
|
||||
}
|
||||
sp.free();
|
||||
} catch (LibvirtException l) {
|
||||
s_logger.debug("Failed to define clvm storage pool with: "
|
||||
@ -236,14 +247,18 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
|
||||
|
||||
try {
|
||||
s_logger.debug(spd.toString());
|
||||
sp = conn.storagePoolDefineXML(spd.toString(), 0);
|
||||
sp.create(0);
|
||||
sp = conn.storagePoolCreateXML(spd.toString(), 0);
|
||||
return sp;
|
||||
} catch (LibvirtException e) {
|
||||
s_logger.debug(e.toString());
|
||||
if (sp != null) {
|
||||
try {
|
||||
sp.undefine();
|
||||
if (sp.isPersistent() == 1) {
|
||||
sp.destroy();
|
||||
sp.undefine();
|
||||
} else {
|
||||
sp.destroy();
|
||||
}
|
||||
sp.free();
|
||||
} catch (LibvirtException l) {
|
||||
s_logger.debug("Failed to define RBD storage pool with: " + l.toString());
|
||||
@ -385,15 +400,59 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
|
||||
|
||||
try {
|
||||
sp = conn.storagePoolLookupByUUIDString(name);
|
||||
if (sp.getInfo().state != StoragePoolState.VIR_STORAGE_POOL_RUNNING) {
|
||||
if (sp != null && sp.isActive() == 0) {
|
||||
sp.undefine();
|
||||
sp = null;
|
||||
s_logger.debug("Found existing defined storage pool " + name + ". It wasn't running, so we undefined it.");
|
||||
}
|
||||
if (sp != null) {
|
||||
s_logger.debug("Found existing defined storage pool " + name + ", using it.");
|
||||
}
|
||||
} catch (LibvirtException e) {
|
||||
sp = null;
|
||||
s_logger.debug("createStoragePool didn't find existing running pool: " + e + ", need to create it");
|
||||
}
|
||||
|
||||
// libvirt strips trailing slashes off of path, we will too in order to match
|
||||
// existing paths
|
||||
if (path.endsWith("/")) {
|
||||
path = path.substring(0, path.length() - 1);
|
||||
}
|
||||
|
||||
if (sp == null) {
|
||||
// see if any existing pool by another name is using our storage path.
|
||||
// if anyone is, undefine the pool so we can define it as requested.
|
||||
// This should be safe since a pool in use can't be removed, and no
|
||||
// volumes are affected by unregistering the pool with libvirt.
|
||||
s_logger.debug("Didn't find an existing storage pool " + name
|
||||
+ " by UUID, checking for pools with duplicate paths");
|
||||
|
||||
try {
|
||||
String[] poolnames = conn.listStoragePools();
|
||||
for (String poolname : poolnames) {
|
||||
s_logger.debug("Checking path of existing pool " + poolname
|
||||
+ " against pool we want to create");
|
||||
StoragePool p = conn.storagePoolLookupByName(poolname);
|
||||
LibvirtStoragePoolDef pdef = getStoragePoolDef(conn, p);
|
||||
|
||||
if (pdef.getTargetPath().equals(path)) {
|
||||
s_logger.debug("Storage pool utilizing path '" + path + "' already exists as pool "
|
||||
+ poolname + ", undefining so we can re-define with correct name " + name);
|
||||
if (p.isPersistent() == 1) {
|
||||
p.destroy();
|
||||
p.undefine();
|
||||
} else {
|
||||
p.destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (LibvirtException e) {
|
||||
s_logger.error("Failure in attempting to see if an existing storage pool might "
|
||||
+ "be using the path of the pool to be created:" + e);
|
||||
}
|
||||
|
||||
s_logger.debug("Attempting to create storage pool " + name);
|
||||
|
||||
if (type == StoragePoolType.NetworkFilesystem) {
|
||||
sp = createNfsStoragePool(conn, name, host, path);
|
||||
} else if (type == StoragePoolType.SharedMountPoint
|
||||
@ -407,8 +466,8 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
|
||||
}
|
||||
|
||||
try {
|
||||
StoragePoolInfo spi = sp.getInfo();
|
||||
if (spi.state != StoragePoolState.VIR_STORAGE_POOL_RUNNING) {
|
||||
if (sp.isActive() == 0) {
|
||||
s_logger.debug("attempting to activate pool " + name);
|
||||
sp.create(0);
|
||||
}
|
||||
|
||||
@ -427,7 +486,15 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
|
||||
|
||||
return pool;
|
||||
} catch (LibvirtException e) {
|
||||
throw new CloudRuntimeException(e.toString());
|
||||
String error = e.toString();
|
||||
if (error.contains("Storage source conflict")) {
|
||||
throw new CloudRuntimeException("A pool matching this location already exists in libvirt, "
|
||||
+ " but has a different UUID/Name. Cannot create new pool without first "
|
||||
+ " removing it. Check for inactive pools via 'virsh pool-list --all'. "
|
||||
+ error);
|
||||
} else {
|
||||
throw new CloudRuntimeException(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -459,8 +526,12 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
|
||||
}
|
||||
|
||||
try {
|
||||
sp.destroy();
|
||||
sp.undefine();
|
||||
if (sp.isPersistent() == 1) {
|
||||
sp.destroy();
|
||||
sp.undefine();
|
||||
} else {
|
||||
sp.destroy();
|
||||
}
|
||||
sp.free();
|
||||
if (s != null) {
|
||||
s.undefine();
|
||||
|
||||
458
pom.xml
458
pom.xml
@ -1,23 +1,15 @@
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
|
||||
license agreements. See the NOTICE file distributed with this work for additional
|
||||
information regarding copyright ownership. The ASF licenses this file to
|
||||
you under the Apache License, Version 2.0 (the "License"); you may not use
|
||||
this file except in compliance with the License. You may obtain a copy of
|
||||
the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
|
||||
by applicable law or agreed to in writing, software distributed under the
|
||||
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||
OF ANY KIND, either express or implied. See the License for the specific
|
||||
language governing permissions and limitations under the License. -->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
@ -43,7 +35,7 @@
|
||||
</issueManagement>
|
||||
|
||||
<properties>
|
||||
<!--skipTests>true</skipTests-->
|
||||
<!--skipTests>true</skipTests -->
|
||||
<cs.jdk.version>1.6</cs.jdk.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
|
||||
@ -92,6 +84,7 @@
|
||||
<cs.java-ipv6.version>0.10</cs.java-ipv6.version>
|
||||
<cs.replace.properties>build/replace.properties</cs.replace.properties>
|
||||
<cs.libvirt-java.version>0.4.9</cs.libvirt-java.version>
|
||||
<cs.target.dir>target</cs.target.dir>
|
||||
</properties>
|
||||
|
||||
<distributionManagement>
|
||||
@ -174,11 +167,11 @@
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>${cs.mysql.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>${cs.mysql.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
@ -188,13 +181,13 @@
|
||||
<artifactId>junit</artifactId>
|
||||
<version>${cs.junit.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-core</artifactId>
|
||||
<version>${org.springframework.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-core</artifactId>
|
||||
<version>${org.springframework.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-context</artifactId>
|
||||
@ -205,74 +198,37 @@
|
||||
<artifactId>spring-web</artifactId>
|
||||
<version>${org.springframework.version}</version>
|
||||
</dependency>
|
||||
<!--
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-expression</artifactId>
|
||||
<version>${org.springframework.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-beans</artifactId>
|
||||
<version>${org.springframework.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-aop</artifactId>
|
||||
<version>${org.springframework.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-context-support</artifactId>
|
||||
<version>${org.springframework.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-tx</artifactId>
|
||||
<version>${org.springframework.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-jdbc</artifactId>
|
||||
<version>${org.springframework.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-orm</artifactId>
|
||||
<version>${org.springframework.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-oxm</artifactId>
|
||||
<version>${org.springframework.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-webmvc</artifactId>
|
||||
<version>${org.springframework.version}</version>
|
||||
</dependency>
|
||||
-->
|
||||
<!-- <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId>
|
||||
<version>${org.springframework.version}</version> </dependency> <dependency>
|
||||
<groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId>
|
||||
<version>${org.springframework.version}</version> </dependency> <dependency>
|
||||
<groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId>
|
||||
<version>${org.springframework.version}</version> </dependency> <dependency>
|
||||
<groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId>
|
||||
<version>${org.springframework.version}</version> </dependency> <dependency>
|
||||
<groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId>
|
||||
<version>${org.springframework.version}</version> </dependency> <dependency>
|
||||
<groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId>
|
||||
<version>${org.springframework.version}</version> </dependency> <dependency>
|
||||
<groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId>
|
||||
<version>${org.springframework.version}</version> </dependency> <dependency>
|
||||
<groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId>
|
||||
<version>${org.springframework.version}</version> </dependency> <dependency>
|
||||
<groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId>
|
||||
<version>${org.springframework.version}</version> </dependency> -->
|
||||
<dependency>
|
||||
<groupId>org.mockito</groupId>
|
||||
<artifactId>mockito-all</artifactId>
|
||||
<version>1.9.5</version>
|
||||
<scope>test</scope>
|
||||
<groupId>org.mockito</groupId>
|
||||
<artifactId>mockito-all</artifactId>
|
||||
<version>1.9.5</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-test</artifactId>
|
||||
<version>${org.springframework.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-test</artifactId>
|
||||
<version>${org.springframework.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.aspectj</groupId>
|
||||
@ -285,14 +241,16 @@
|
||||
<version>1.7.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.inject</groupId>
|
||||
<artifactId>javax.inject</artifactId>
|
||||
<version>1</version>
|
||||
<groupId>javax.inject</groupId>
|
||||
<artifactId>javax.inject</artifactId>
|
||||
<version>1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<defaultGoal>install</defaultGoal>
|
||||
<outputDirectory>${basedir}/${cs.target.dir}/classes</outputDirectory>
|
||||
<testOutputDirectory>${basedir}/${cs.target.dir}/test-classes</testOutputDirectory>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<!--This plugin's configuration is used to store Eclipse m2e settings
|
||||
@ -453,41 +411,41 @@
|
||||
<configuration>
|
||||
<source>${cs.jdk.version}</source>
|
||||
<target>${cs.jdk.version}</target>
|
||||
<fork>true</fork>
|
||||
<meminitial>128m</meminitial>
|
||||
<maxmem>512m</maxmem>
|
||||
<compilerArgument>-XDignore.symbol.file=true</compilerArgument>
|
||||
<fork>true</fork>
|
||||
<meminitial>128m</meminitial>
|
||||
<maxmem>512m</maxmem>
|
||||
<compilerArgument>-XDignore.symbol.file=true</compilerArgument>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>2.4</version>
|
||||
<configuration>
|
||||
<archive>
|
||||
<manifest>
|
||||
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
|
||||
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
|
||||
</manifest>
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
<version>1.7</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>remove-old-installers</id>
|
||||
<goals>
|
||||
<goal>remove-project-artifact</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<removeAll>true</removeAll>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>2.4</version>
|
||||
<configuration>
|
||||
<archive>
|
||||
<manifest>
|
||||
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
|
||||
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
|
||||
</manifest>
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
<version>1.7</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>remove-old-installers</id>
|
||||
<goals>
|
||||
<goal>remove-project-artifact</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<removeAll>true</removeAll>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
@ -514,16 +472,32 @@
|
||||
<module>awsapi</module>
|
||||
</modules>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>eclipse</id>
|
||||
<properties>
|
||||
<cs.target.dir>target-eclipse</cs.target.dir>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>developer</id>
|
||||
<properties>
|
||||
<marvin.config>tools/devcloud/devcloud.cfg</marvin.config>
|
||||
</properties>
|
||||
<properties>
|
||||
<marvin.config>tools/devcloud/devcloud.cfg</marvin.config>
|
||||
</properties>
|
||||
<modules>
|
||||
<module>developer</module>
|
||||
<module>tools</module>
|
||||
</modules>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>impatient</id>
|
||||
<properties>
|
||||
<marvin.config>tools/devcloud/devcloud.cfg</marvin.config>
|
||||
</properties>
|
||||
<modules>
|
||||
<module>developer</module>
|
||||
<!--module>tools/devcloud</module-->
|
||||
</modules>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>vmware</id>
|
||||
<activation>
|
||||
@ -536,112 +510,112 @@
|
||||
</modules>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>simulator</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>deploydb-simulator</name>
|
||||
</property>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>properties-maven-plugin</artifactId>
|
||||
<version>1.0-alpha-2</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>initialize</phase>
|
||||
<goals>
|
||||
<goal>read-project-properties</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<files>
|
||||
<file>${project.basedir}/utils/conf/db.properties</file>
|
||||
<file>${project.basedir}/utils/conf/db.properties.override</file>
|
||||
</files>
|
||||
<quiet>true</quiet>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!-- DatabaseCreator driver here -->
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>exec-maven-plugin</artifactId>
|
||||
<version>1.2.1</version>
|
||||
<dependencies>
|
||||
<!-- specify the dependent jdbc driver here -->
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>${cs.mysql.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-dbcp</groupId>
|
||||
<artifactId>commons-dbcp</artifactId>
|
||||
<version>${cs.dbcp.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-pool</groupId>
|
||||
<artifactId>commons-pool</artifactId>
|
||||
<version>${cs.pool.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jasypt</groupId>
|
||||
<artifactId>jasypt</artifactId>
|
||||
<version>${cs.jasypt.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-utils</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-server</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>process-resources</phase>
|
||||
<id>create-schema</id>
|
||||
<goals>
|
||||
<goal>java</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<includeProjectDependencies>false</includeProjectDependencies>
|
||||
<includePluginDependencies>true</includePluginDependencies>
|
||||
<executableDependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-server</artifactId>
|
||||
</executableDependency>
|
||||
<mainClass>com.cloud.upgrade.DatabaseCreator</mainClass>
|
||||
<arguments>
|
||||
<!-- db properties file -->
|
||||
<argument>${project.basedir}/utils/conf/db.properties</argument>
|
||||
<argument>${project.basedir}/utils/conf/db.properties.override</argument>
|
||||
<!-- simulator sql files -->
|
||||
<argument>${basedir}/target/db/create-schema-simulator.sql</argument>
|
||||
<argument>${basedir}/target/db/templates.simulator.sql</argument>
|
||||
<!-- database upgrade-->
|
||||
<argument>com.cloud.upgrade.DatabaseUpgradeChecker</argument>
|
||||
<argument>--database=simulator</argument>
|
||||
<argument>--rootpassword=${db.root.password}</argument>
|
||||
<!-- enable verbosity by -v or dash-dash-verbose -->
|
||||
</arguments>
|
||||
<systemProperties>
|
||||
<systemProperty>
|
||||
<key>catalina.home</key>
|
||||
<value>${project.basedir}/utils</value>
|
||||
</systemProperty>
|
||||
</systemProperties>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<id>simulator</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>deploydb-simulator</name>
|
||||
</property>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>properties-maven-plugin</artifactId>
|
||||
<version>1.0-alpha-2</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>initialize</phase>
|
||||
<goals>
|
||||
<goal>read-project-properties</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<files>
|
||||
<file>${project.basedir}/utils/conf/db.properties</file>
|
||||
<file>${project.basedir}/utils/conf/db.properties.override</file>
|
||||
</files>
|
||||
<quiet>true</quiet>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!-- DatabaseCreator driver here -->
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>exec-maven-plugin</artifactId>
|
||||
<version>1.2.1</version>
|
||||
<dependencies>
|
||||
<!-- specify the dependent jdbc driver here -->
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>${cs.mysql.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-dbcp</groupId>
|
||||
<artifactId>commons-dbcp</artifactId>
|
||||
<version>${cs.dbcp.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-pool</groupId>
|
||||
<artifactId>commons-pool</artifactId>
|
||||
<version>${cs.pool.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jasypt</groupId>
|
||||
<artifactId>jasypt</artifactId>
|
||||
<version>${cs.jasypt.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-utils</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-server</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>process-resources</phase>
|
||||
<id>create-schema</id>
|
||||
<goals>
|
||||
<goal>java</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<includeProjectDependencies>false</includeProjectDependencies>
|
||||
<includePluginDependencies>true</includePluginDependencies>
|
||||
<executableDependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-server</artifactId>
|
||||
</executableDependency>
|
||||
<mainClass>com.cloud.upgrade.DatabaseCreator</mainClass>
|
||||
<arguments>
|
||||
<!-- db properties file -->
|
||||
<argument>${project.basedir}/utils/conf/db.properties</argument>
|
||||
<argument>${project.basedir}/utils/conf/db.properties.override</argument>
|
||||
<!-- simulator sql files -->
|
||||
<argument>${basedir}/target/db/create-schema-simulator.sql</argument>
|
||||
<argument>${basedir}/target/db/templates.simulator.sql</argument>
|
||||
<!-- database upgrade -->
|
||||
<argument>com.cloud.upgrade.DatabaseUpgradeChecker</argument>
|
||||
<argument>--database=simulator</argument>
|
||||
<argument>--rootpassword=${db.root.password}</argument>
|
||||
<!-- enable verbosity by -v or dash-dash-verbose -->
|
||||
</arguments>
|
||||
<systemProperties>
|
||||
<systemProperty>
|
||||
<key>catalina.home</key>
|
||||
<value>${project.basedir}/utils</value>
|
||||
</systemProperty>
|
||||
</systemProperties>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
||||
|
||||
@ -25,6 +25,8 @@ import os
|
||||
import xml.dom.minidom
|
||||
from optparse import OptionParser, OptionGroup, OptParseError, BadOptionError, OptionError, OptionConflictError, OptionValueError
|
||||
import re
|
||||
import traceback
|
||||
|
||||
iptables = Command("iptables")
|
||||
bash = Command("/bin/bash")
|
||||
virsh = Command("virsh")
|
||||
@ -342,7 +344,7 @@ def post_default_network_rules(vm_name, vm_id, vm_ip, vm_mac, vif, brname, dhcpS
|
||||
def delete_rules_for_vm_in_bridge_firewall_chain(vmName):
|
||||
vm_name = vmName
|
||||
if vm_name.startswith('i-') or vm_name.startswith('r-'):
|
||||
vm_name = '-'.join(vm_name.split('-')[:-1])
|
||||
vm_name = '-'.join(vm_name.split('-')[:-1]) + "-def"
|
||||
|
||||
vmchain = vm_name
|
||||
|
||||
@ -692,7 +694,8 @@ def add_network_rules(vm_name, vm_id, vm_ip, signature, seqno, vmMac, rules, vif
|
||||
|
||||
return 'true'
|
||||
except:
|
||||
logging.debug("Failed to network rule !: " + sys.exc_type)
|
||||
exceptionText = traceback.format_exc()
|
||||
logging.debug("Failed to network rule !: " + exceptionText)
|
||||
|
||||
def getVifs(vmName):
|
||||
vifs = []
|
||||
|
||||
21
server/conf/cloudstack-limits.conf.in
Normal file
21
server/conf/cloudstack-limits.conf.in
Normal file
@ -0,0 +1,21 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
# Specific limits for the CloudStack management server which
|
||||
# runs under the user 'cloud' by default
|
||||
@MSUSER hard nofile 4096
|
||||
@MSUSER soft nofile 4096
|
||||
22
server/conf/cloudstack-sudoers.in
Normal file
22
server/conf/cloudstack-sudoers.in
Normal file
@ -0,0 +1,22 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
# The CloudStack management server needs sudo permissions
|
||||
# without a password.
|
||||
|
||||
@MSUSER ALL =NOPASSWD : ALL
|
||||
|
||||
@ -75,12 +75,9 @@ public class DomainVO implements Domain {
|
||||
@Column(name="uuid")
|
||||
private String uuid;
|
||||
|
||||
@Column(name="region_id")
|
||||
private int regionId;
|
||||
|
||||
public DomainVO() {}
|
||||
|
||||
public DomainVO(String name, long owner, Long parentId, String networkDomain, int regionId) {
|
||||
public DomainVO(String name, long owner, Long parentId, String networkDomain) {
|
||||
this.parent = parentId;
|
||||
this.name = name;
|
||||
this.accountId = owner;
|
||||
@ -89,10 +86,9 @@ public class DomainVO implements Domain {
|
||||
this.state = Domain.State.Active;
|
||||
this.networkDomain = networkDomain;
|
||||
this.uuid = UUID.randomUUID().toString();
|
||||
this.regionId = regionId;
|
||||
}
|
||||
|
||||
public DomainVO(String name, long owner, Long parentId, String networkDomain, String uuid, int regionId) {
|
||||
public DomainVO(String name, long owner, Long parentId, String networkDomain, String uuid) {
|
||||
this.parent = parentId;
|
||||
this.name = name;
|
||||
this.accountId = owner;
|
||||
@ -101,7 +97,6 @@ public class DomainVO implements Domain {
|
||||
this.state = Domain.State.Active;
|
||||
this.networkDomain = networkDomain;
|
||||
this.uuid = uuid;
|
||||
this.regionId = regionId;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -216,12 +211,5 @@ public class DomainVO implements Domain {
|
||||
this.uuid = uuid;
|
||||
}
|
||||
|
||||
public int getRegionId() {
|
||||
return regionId;
|
||||
}
|
||||
|
||||
public void setRegionId(int regionId) {
|
||||
this.regionId = regionId;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -205,7 +205,7 @@ public class ProjectManagerImpl extends ManagerBase implements ProjectManager {
|
||||
StringBuilder acctNm = new StringBuilder("PrjAcct-");
|
||||
acctNm.append(name).append("-").append(owner.getDomainId());
|
||||
|
||||
Account projectAccount = _accountMgr.createAccount(acctNm.toString(), Account.ACCOUNT_TYPE_PROJECT, domainId, null, null, UUID.randomUUID().toString(), 0);
|
||||
Account projectAccount = _accountMgr.createAccount(acctNm.toString(), Account.ACCOUNT_TYPE_PROJECT, domainId, null, null, UUID.randomUUID().toString());
|
||||
|
||||
Project project = _projectDao.persist(new ProjectVO(name, displayText, owner.getDomainId(), projectAccount.getId()));
|
||||
|
||||
|
||||
@ -88,30 +88,6 @@ public class Upgrade40to41 implements DbUpgrade {
|
||||
pstmt.setInt(1, region_id);
|
||||
pstmt.executeUpdate();
|
||||
|
||||
//Update regionId in account table
|
||||
s_logger.debug("Updating account table with Id: "+region_id);
|
||||
pstmt = conn.prepareStatement("update `cloud`.`account` set region_id = ?");
|
||||
pstmt.setInt(1, region_id);
|
||||
pstmt.executeUpdate();
|
||||
|
||||
//Update regionId in user table
|
||||
s_logger.debug("Updating user table with Id: "+region_id);
|
||||
pstmt = conn.prepareStatement("update `cloud`.`user` set region_id = ?");
|
||||
pstmt.setInt(1, region_id);
|
||||
pstmt.executeUpdate();
|
||||
|
||||
//Update regionId in domain table
|
||||
s_logger.debug("Updating domain table with Id: "+region_id);
|
||||
pstmt = conn.prepareStatement("update `cloud`.`domain` set region_id = ?");
|
||||
pstmt.setInt(1, region_id);
|
||||
pstmt.executeUpdate();
|
||||
|
||||
//Update regionId in cloud_usage account table
|
||||
s_logger.debug("Updating cloud_usage account table with Id: "+region_id);
|
||||
pstmt = conn.prepareStatement("update `cloud_usage`.`account` set region_id = ?");
|
||||
pstmt.setInt(1, region_id);
|
||||
pstmt.executeUpdate();
|
||||
s_logger.debug("Successfully updated region entries with regionId: "+region_id);
|
||||
} catch (SQLException e) {
|
||||
throw new CloudRuntimeException("Error while updating region entries", e);
|
||||
} finally {
|
||||
|
||||
@ -51,9 +51,9 @@ public interface AccountManager extends AccountService {
|
||||
|
||||
Long checkAccessAndSpecifyAuthority(Account caller, Long zoneId);
|
||||
|
||||
Account createAccount(String accountName, short accountType, Long domainId, String networkDomain, Map details, String uuid, int regionId);
|
||||
Account createAccount(String accountName, short accountType, Long domainId, String networkDomain, Map details, String uuid);
|
||||
|
||||
UserVO createUser(long accountId, String userName, String password, String firstName, String lastName, String email, String timezone);
|
||||
UserVO createUser(long accountId, String userName, String password, String firstName, String lastName, String email, String timezone, String userUUID);
|
||||
|
||||
/**
|
||||
* Logs out a user
|
||||
|
||||
@ -54,9 +54,6 @@ import com.cloud.api.ApiDBUtils;
|
||||
import com.cloud.api.query.dao.UserAccountJoinDao;
|
||||
import com.cloud.api.query.vo.ControlledViewEntity;
|
||||
|
||||
|
||||
import org.apache.cloudstack.region.RegionManager;
|
||||
|
||||
import com.cloud.configuration.Config;
|
||||
import com.cloud.configuration.ConfigurationManager;
|
||||
import com.cloud.configuration.ResourceLimit;
|
||||
@ -217,8 +214,6 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
|
||||
@Inject
|
||||
private IPAddressDao _ipAddressDao;
|
||||
@Inject
|
||||
private RegionManager _regionMgr;
|
||||
@Inject
|
||||
private VpcManager _vpcMgr;
|
||||
@Inject
|
||||
private DomainRouterDao _routerDao;
|
||||
@ -764,7 +759,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
|
||||
@DB
|
||||
@ActionEvent(eventType = EventTypes.EVENT_ACCOUNT_CREATE, eventDescription = "creating Account")
|
||||
public UserAccount createUserAccount(String userName, String password, String firstName, String lastName, String email, String timezone, String accountName, short accountType,
|
||||
Long domainId, String networkDomain, Map<String, String> details) {
|
||||
Long domainId, String networkDomain, Map<String, String> details, String accountUUID, String userUUID) {
|
||||
|
||||
if (accountName == null) {
|
||||
accountName = userName;
|
||||
@ -810,11 +805,14 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
|
||||
txn.start();
|
||||
|
||||
// create account
|
||||
AccountVO account = createAccount(accountName, accountType, domainId, networkDomain, details, UUID.randomUUID().toString(), _regionMgr.getId());
|
||||
if(accountUUID == null){
|
||||
accountUUID = UUID.randomUUID().toString();
|
||||
}
|
||||
AccountVO account = createAccount(accountName, accountType, domainId, networkDomain, details, accountUUID);
|
||||
long accountId = account.getId();
|
||||
|
||||
// create the first user for the account
|
||||
UserVO user = createUser(accountId, userName, password, firstName, lastName, email, timezone);
|
||||
UserVO user = createUser(accountId, userName, password, firstName, lastName, email, timezone, userUUID);
|
||||
|
||||
if (accountType == Account.ACCOUNT_TYPE_RESOURCE_DOMAIN_ADMIN) {
|
||||
// set registration token
|
||||
@ -829,7 +827,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserVO createUser(String userName, String password, String firstName, String lastName, String email, String timeZone, String accountName, Long domainId) {
|
||||
public UserVO createUser(String userName, String password, String firstName, String lastName, String email, String timeZone, String accountName, Long domainId, String userUUID) {
|
||||
|
||||
// default domain to ROOT if not specified
|
||||
if (domainId == null) {
|
||||
@ -858,7 +856,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
|
||||
throw new CloudRuntimeException("The user " + userName + " already exists in domain " + domainId);
|
||||
}
|
||||
UserVO user = null;
|
||||
user = createUser(account.getId(), userName, password, firstName, lastName, email, timeZone);
|
||||
user = createUser(account.getId(), userName, password, firstName, lastName, email, timeZone, userUUID);
|
||||
return user;
|
||||
}
|
||||
|
||||
@ -1646,7 +1644,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
|
||||
|
||||
@Override
|
||||
@DB
|
||||
public AccountVO createAccount(String accountName, short accountType, Long domainId, String networkDomain, Map details, String uuid, int regionId) {
|
||||
public AccountVO createAccount(String accountName, short accountType, Long domainId, String networkDomain, Map details, String uuid) {
|
||||
// Validate domain
|
||||
Domain domain = _domainMgr.getDomain(domainId);
|
||||
if (domain == null) {
|
||||
@ -1690,7 +1688,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
|
||||
Transaction txn = Transaction.currentTxn();
|
||||
txn.start();
|
||||
|
||||
AccountVO account = _accountDao.persist(new AccountVO(accountName, domainId, networkDomain, accountType, uuid, regionId));
|
||||
AccountVO account = _accountDao.persist(new AccountVO(accountName, domainId, networkDomain, accountType, uuid));
|
||||
|
||||
if (account == null) {
|
||||
throw new CloudRuntimeException("Failed to create account name " + accountName + " in domain id=" + domainId);
|
||||
@ -1714,7 +1712,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
|
||||
|
||||
@Override
|
||||
@ActionEvent(eventType = EventTypes.EVENT_USER_CREATE, eventDescription = "creating User")
|
||||
public UserVO createUser(long accountId, String userName, String password, String firstName, String lastName, String email, String timezone) {
|
||||
public UserVO createUser(long accountId, String userName, String password, String firstName, String lastName, String email, String timezone, String userUUID) {
|
||||
if (s_logger.isDebugEnabled()) {
|
||||
s_logger.debug("Creating user: " + userName + ", accountId: " + accountId + " timezone:" + timezone);
|
||||
}
|
||||
@ -1730,30 +1728,10 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
|
||||
throw new CloudRuntimeException("Failed to encode password");
|
||||
}
|
||||
|
||||
UserVO user = _userDao.persist(new UserVO(accountId, userName, encodedPassword, firstName, lastName, email, timezone, UUID.randomUUID().toString(), _regionMgr.getId()));
|
||||
|
||||
return user;
|
||||
}
|
||||
|
||||
//ToDo Add events??
|
||||
public UserVO createUser(long accountId, String userName, String password, String firstName, String lastName, String email, String timezone, String uuid, int regionId) {
|
||||
if (s_logger.isDebugEnabled()) {
|
||||
s_logger.debug("Creating user: " + userName + ", accountId: " + accountId + " timezone:" + timezone);
|
||||
if(userUUID == null){
|
||||
userUUID = UUID.randomUUID().toString();
|
||||
}
|
||||
|
||||
String encodedPassword = null;
|
||||
for (Iterator<UserAuthenticator> en = _userAuthenticators.iterator(); en.hasNext();) {
|
||||
UserAuthenticator authenticator = en.next();
|
||||
encodedPassword = authenticator.encode(password);
|
||||
if (encodedPassword != null) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (encodedPassword == null) {
|
||||
throw new CloudRuntimeException("Failed to encode password");
|
||||
}
|
||||
|
||||
UserVO user = _userDao.persist(new UserVO(accountId, userName, encodedPassword, firstName, lastName, email, timezone, uuid, regionId));
|
||||
UserVO user = _userDao.persist(new UserVO(accountId, userName, encodedPassword, firstName, lastName, email, timezone, userUUID));
|
||||
|
||||
return user;
|
||||
}
|
||||
@ -1983,7 +1961,6 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
|
||||
|
||||
@Override @DB
|
||||
public String[] createApiKeyAndSecretKey(RegisterCmd cmd) {
|
||||
//Send keys to other Regions
|
||||
Long userId = cmd.getId();
|
||||
|
||||
User user = getUserIncludingRemoved(userId);
|
||||
|
||||
@ -27,7 +27,7 @@ import com.cloud.domain.DomainVO;
|
||||
public interface DomainManager extends DomainService {
|
||||
Set<Long> getDomainChildrenIds(String parentDomainPath);
|
||||
|
||||
Domain createDomain(String name, Long parentId, Long ownerId, String networkDomain);
|
||||
Domain createDomain(String name, Long parentId, Long ownerId, String networkDomain, String domainUUID);
|
||||
|
||||
Set<Long> getDomainParentIds(long domainId);
|
||||
|
||||
|
||||
@ -16,10 +16,7 @@
|
||||
// under the License.
|
||||
package com.cloud.user;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.inject.Inject;
|
||||
@ -118,7 +115,7 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
|
||||
|
||||
@Override
|
||||
@ActionEvent(eventType = EventTypes.EVENT_DOMAIN_CREATE, eventDescription = "creating Domain")
|
||||
public Domain createDomain(String name, Long parentId, String networkDomain) {
|
||||
public Domain createDomain(String name, Long parentId, String networkDomain, String domainUUID) {
|
||||
Account caller = UserContext.current().getCaller();
|
||||
|
||||
if (parentId == null) {
|
||||
@ -136,13 +133,13 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
|
||||
|
||||
_accountMgr.checkAccess(caller, parentDomain);
|
||||
|
||||
return createDomain(name, parentId, caller.getId(), networkDomain);
|
||||
return createDomain(name, parentId, caller.getId(), networkDomain, domainUUID);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@DB
|
||||
public Domain createDomain(String name, Long parentId, Long ownerId, String networkDomain) {
|
||||
public Domain createDomain(String name, Long parentId, Long ownerId, String networkDomain, String domainUUID) {
|
||||
// Verify network domain
|
||||
if (networkDomain != null) {
|
||||
if (!NetUtils.verifyDomainName(networkDomain)) {
|
||||
@ -161,10 +158,13 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
|
||||
throw new InvalidParameterValueException("Domain with name " + name + " already exists for the parent id=" + parentId);
|
||||
}
|
||||
|
||||
if(domainUUID == null){
|
||||
domainUUID = UUID.randomUUID().toString();
|
||||
}
|
||||
|
||||
Transaction txn = Transaction.currentTxn();
|
||||
txn.start();
|
||||
|
||||
DomainVO domain = _domainDao.create(new DomainVO(name, ownerId, parentId, networkDomain, _regionMgr.getId()));
|
||||
DomainVO domain = _domainDao.create(new DomainVO(name, ownerId, parentId, networkDomain, domainUUID));
|
||||
_resourceCountDao.createResourceCounts(domain.getId(), ResourceLimit.ResourceOwnerType.Domain);
|
||||
txn.commit();
|
||||
return domain;
|
||||
|
||||
@ -43,11 +43,9 @@ public interface RegionManager {
|
||||
* @param id
|
||||
* @param name
|
||||
* @param endPoint
|
||||
* @param apiKey
|
||||
* @param secretKey
|
||||
* @return Returns added Region object
|
||||
*/
|
||||
Region addRegion(int id, String name, String endPoint, String apiKey, String secretKey);
|
||||
Region addRegion(int id, String name, String endPoint);
|
||||
|
||||
/**
|
||||
* Update details of the Region with specified Id
|
||||
@ -59,7 +57,7 @@ public interface RegionManager {
|
||||
* @param secretKey
|
||||
* @return Returns update Region object
|
||||
*/
|
||||
Region updateRegion(int id, String name, String endPoint, String apiKey, String secretKey);
|
||||
Region updateRegion(int id, String name, String endPoint);
|
||||
|
||||
/**
|
||||
* @param id
|
||||
|
||||
@ -17,30 +17,22 @@
|
||||
package org.apache.cloudstack.region;
|
||||
|
||||
import com.cloud.domain.Domain;
|
||||
import com.cloud.domain.DomainVO;
|
||||
import com.cloud.domain.dao.DomainDao;
|
||||
import com.cloud.exception.ConcurrentOperationException;
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.AccountManager;
|
||||
import com.cloud.user.AccountVO;
|
||||
import com.cloud.user.DomainManager;
|
||||
import com.cloud.user.UserAccount;
|
||||
import com.cloud.user.UserVO;
|
||||
import com.cloud.user.dao.AccountDao;
|
||||
import com.cloud.user.dao.UserAccountDao;
|
||||
import com.cloud.user.dao.UserDao;
|
||||
import com.cloud.utils.component.Manager;
|
||||
import com.cloud.utils.component.ManagerBase;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import org.apache.cloudstack.api.ApiConstants;
|
||||
import org.apache.cloudstack.api.command.admin.account.UpdateAccountCmd;
|
||||
import org.apache.cloudstack.api.command.admin.domain.UpdateDomainCmd;
|
||||
import org.apache.cloudstack.api.command.admin.user.DeleteUserCmd;
|
||||
import org.apache.cloudstack.api.command.admin.user.UpdateUserCmd;
|
||||
import org.apache.cloudstack.region.dao.RegionDao;
|
||||
import org.apache.commons.httpclient.NameValuePair;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@ -63,13 +55,7 @@ public class RegionManagerImpl extends ManagerBase implements RegionManager, Man
|
||||
@Inject
|
||||
private AccountManager _accountMgr;
|
||||
@Inject
|
||||
private UserDao _userDao;
|
||||
@Inject
|
||||
private DomainDao _domainDao;
|
||||
@Inject
|
||||
private DomainManager _domainMgr;
|
||||
@Inject
|
||||
private UserAccountDao _userAccountDao;
|
||||
|
||||
private String _name;
|
||||
private int _id;
|
||||
@ -104,7 +90,7 @@ public class RegionManagerImpl extends ManagerBase implements RegionManager, Man
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public Region addRegion(int id, String name, String endPoint, String apiKey, String secretKey) {
|
||||
public Region addRegion(int id, String name, String endPoint) {
|
||||
//Region Id should be unique
|
||||
if( _regionDao.findById(id) != null ){
|
||||
throw new InvalidParameterValueException("Region with id: "+id+" already exists");
|
||||
@ -113,7 +99,7 @@ public class RegionManagerImpl extends ManagerBase implements RegionManager, Man
|
||||
if( _regionDao.findByName(name) != null ){
|
||||
throw new InvalidParameterValueException("Region with name: "+name+" already exists");
|
||||
}
|
||||
RegionVO region = new RegionVO(id, name, endPoint, apiKey, secretKey);
|
||||
RegionVO region = new RegionVO(id, name, endPoint);
|
||||
return _regionDao.persist(region);
|
||||
}
|
||||
|
||||
@ -121,7 +107,7 @@ public class RegionManagerImpl extends ManagerBase implements RegionManager, Man
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public Region updateRegion(int id, String name, String endPoint, String apiKey, String secretKey) {
|
||||
public Region updateRegion(int id, String name, String endPoint) {
|
||||
RegionVO region = _regionDao.findById(id);
|
||||
|
||||
if(region == null){
|
||||
@ -144,14 +130,6 @@ public class RegionManagerImpl extends ManagerBase implements RegionManager, Man
|
||||
region.setEndPoint(endPoint);
|
||||
}
|
||||
|
||||
if(apiKey != null){
|
||||
region.setApiKey(apiKey);
|
||||
}
|
||||
|
||||
if(secretKey != null){
|
||||
region.setSecretKey(secretKey);
|
||||
}
|
||||
|
||||
_regionDao.update(id, region);
|
||||
return _regionDao.findById(id);
|
||||
}
|
||||
@ -196,30 +174,7 @@ public class RegionManagerImpl extends ManagerBase implements RegionManager, Man
|
||||
*/
|
||||
@Override
|
||||
public boolean deleteUserAccount(long accountId) {
|
||||
AccountVO account = _accountDao.findById(accountId);
|
||||
if(account == null){
|
||||
throw new InvalidParameterValueException("The specified account does not exist in the system");
|
||||
}
|
||||
String accountUUID = account.getUuid();
|
||||
int regionId = account.getRegionId();
|
||||
|
||||
String command = "deleteAccount";
|
||||
List<NameValuePair> params = new ArrayList<NameValuePair>();
|
||||
params.add(new NameValuePair(ApiConstants.ID, accountUUID));
|
||||
|
||||
if(getId() == regionId){
|
||||
return _accountMgr.deleteUserAccount(accountId);
|
||||
} else {
|
||||
//First delete in the Region where account is created
|
||||
Region region = _regionDao.findById(regionId);
|
||||
if (RegionsApiUtil.makeAPICall(region, command, params)) {
|
||||
s_logger.debug("Successfully deleted account :"+accountUUID+" in Region: "+region.getId());
|
||||
return true;
|
||||
} else {
|
||||
s_logger.error("Error while deleting account :"+accountUUID+" in Region: "+region.getId());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return _accountMgr.deleteUserAccount(accountId);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -227,51 +182,7 @@ public class RegionManagerImpl extends ManagerBase implements RegionManager, Man
|
||||
*/
|
||||
@Override
|
||||
public Account updateAccount(UpdateAccountCmd cmd) {
|
||||
Long accountId = cmd.getId();
|
||||
Long domainId = cmd.getDomainId();
|
||||
DomainVO domain = _domainDao.findById(domainId);
|
||||
String accountName = cmd.getAccountName();
|
||||
String newAccountName = cmd.getNewName();
|
||||
String networkDomain = cmd.getNetworkDomain();
|
||||
//ToDo send details
|
||||
Map<String, String> details = cmd.getDetails();
|
||||
|
||||
Account account = null;
|
||||
if (accountId != null) {
|
||||
account = _accountDao.findById(accountId);
|
||||
} else {
|
||||
account = _accountDao.findEnabledAccount(accountName, domainId);
|
||||
}
|
||||
|
||||
// Check if account exists
|
||||
if (account == null || account.getType() == Account.ACCOUNT_TYPE_PROJECT) {
|
||||
s_logger.error("Unable to find account by accountId: " + accountId + " OR by name: " + accountName + " in domain " + domainId);
|
||||
throw new InvalidParameterValueException("Unable to find account by accountId: " + accountId + " OR by name: " + accountName + " in domain " + domainId);
|
||||
}
|
||||
|
||||
String command = "updateAccount";
|
||||
List<NameValuePair> params = new ArrayList<NameValuePair>();
|
||||
params.add(new NameValuePair(ApiConstants.ID, account.getUuid()));
|
||||
params.add(new NameValuePair(ApiConstants.ACCOUNT, accountName));
|
||||
params.add(new NameValuePair(ApiConstants.DOMAIN_ID, domain.getUuid()));
|
||||
params.add(new NameValuePair(ApiConstants.NETWORK_DOMAIN, networkDomain));
|
||||
params.add(new NameValuePair(ApiConstants.NEW_NAME, newAccountName));
|
||||
if(details != null){
|
||||
params.add(new NameValuePair(ApiConstants.ACCOUNT_DETAILS, details.toString()));
|
||||
}
|
||||
int regionId = account.getRegionId();
|
||||
if(getId() == regionId){
|
||||
return _accountMgr.updateAccount(cmd);
|
||||
} else {
|
||||
//First update in the Region where account is created
|
||||
Region region = _regionDao.findById(regionId);
|
||||
if (RegionsApiUtil.makeAPICall(region, command, params)) {
|
||||
s_logger.debug("Successfully updated account :"+account.getUuid()+" in source Region: "+region.getId());
|
||||
return account;
|
||||
} else {
|
||||
throw new CloudRuntimeException("Error while updating account :"+account.getUuid()+" in source Region: "+region.getId());
|
||||
}
|
||||
}
|
||||
return _accountMgr.updateAccount(cmd);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -280,46 +191,12 @@ public class RegionManagerImpl extends ManagerBase implements RegionManager, Man
|
||||
@Override
|
||||
public Account disableAccount(String accountName, Long domainId, Long accountId, Boolean lockRequested) throws ConcurrentOperationException, ResourceUnavailableException {
|
||||
Account account = null;
|
||||
if (accountId != null) {
|
||||
account = _accountDao.findById(accountId);
|
||||
if(lockRequested){
|
||||
account = _accountMgr.lockAccount(accountName, domainId, accountId);
|
||||
} else {
|
||||
account = _accountDao.findActiveAccount(accountName, domainId);
|
||||
}
|
||||
|
||||
if (account == null || account.getType() == Account.ACCOUNT_TYPE_PROJECT) {
|
||||
throw new InvalidParameterValueException("Unable to find active account by accountId: " + accountId + " OR by name: " + accountName + " in domain " + domainId);
|
||||
}
|
||||
|
||||
String accountUUID = account.getUuid();
|
||||
|
||||
String command = "disableAccount";
|
||||
List<NameValuePair> params = new ArrayList<NameValuePair>();
|
||||
params.add(new NameValuePair(ApiConstants.LOCK, lockRequested.toString()));
|
||||
params.add(new NameValuePair(ApiConstants.ID, accountUUID));
|
||||
DomainVO domain = _domainDao.findById(domainId);
|
||||
if(domain != null){
|
||||
params.add(new NameValuePair(ApiConstants.DOMAIN_ID, domain.getUuid()));
|
||||
}
|
||||
|
||||
int regionId = account.getRegionId();
|
||||
if(getId() == regionId){
|
||||
Account retAccount = null;
|
||||
if(lockRequested){
|
||||
retAccount = _accountMgr.lockAccount(accountName, domainId, accountId);
|
||||
} else {
|
||||
retAccount = _accountMgr.disableAccount(accountName, domainId, accountId);
|
||||
}
|
||||
return retAccount;
|
||||
} else {
|
||||
//First disable account in the Region where account is created
|
||||
Region region = _regionDao.findById(regionId);
|
||||
if (RegionsApiUtil.makeAPICall(region, command, params)) {
|
||||
s_logger.debug("Successfully disabled account :"+accountUUID+" in source Region: "+region.getId());
|
||||
return account;
|
||||
} else {
|
||||
throw new CloudRuntimeException("Error while disabling account :"+accountUUID+" in source Region: "+region.getId());
|
||||
}
|
||||
account = _accountMgr.disableAccount(accountName, domainId, accountId);
|
||||
}
|
||||
return account;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -327,42 +204,7 @@ public class RegionManagerImpl extends ManagerBase implements RegionManager, Man
|
||||
*/
|
||||
@Override
|
||||
public Account enableAccount(String accountName, Long domainId, Long accountId) {
|
||||
// Check if account exists
|
||||
Account account = null;
|
||||
if (accountId != null) {
|
||||
account = _accountDao.findById(accountId);
|
||||
} else {
|
||||
account = _accountDao.findActiveAccount(accountName, domainId);
|
||||
}
|
||||
|
||||
if (account == null || account.getType() == Account.ACCOUNT_TYPE_PROJECT) {
|
||||
throw new InvalidParameterValueException("Unable to find account by accountId: " + accountId + " OR by name: " + accountName + " in domain " + domainId);
|
||||
}
|
||||
|
||||
String accountUUID = account.getUuid();
|
||||
|
||||
String command = "enableAccount";
|
||||
List<NameValuePair> params = new ArrayList<NameValuePair>();
|
||||
params.add(new NameValuePair(ApiConstants.ID, accountUUID));
|
||||
params.add(new NameValuePair(ApiConstants.ACCOUNT, accountName));
|
||||
DomainVO domain = _domainDao.findById(domainId);
|
||||
if(domain != null){
|
||||
params.add(new NameValuePair(ApiConstants.DOMAIN_ID, domain.getUuid()));
|
||||
}
|
||||
|
||||
int regionId = account.getRegionId();
|
||||
if(getId() == regionId){
|
||||
return _accountMgr.enableAccount(accountName, domainId, accountId);
|
||||
} else {
|
||||
//First disable account in the Region where account is created
|
||||
Region region = _regionDao.findById(regionId);
|
||||
if (RegionsApiUtil.makeAPICall(region, command, params)) {
|
||||
s_logger.debug("Successfully enabled account :"+accountUUID+" in source Region: "+region.getId());
|
||||
return account;
|
||||
} else {
|
||||
throw new CloudRuntimeException("Error while enabling account :"+accountUUID+" in source Region: "+region.getId());
|
||||
}
|
||||
}
|
||||
return _accountMgr.enableAccount(accountName, domainId, accountId);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -370,34 +212,7 @@ public class RegionManagerImpl extends ManagerBase implements RegionManager, Man
|
||||
*/
|
||||
@Override
|
||||
public boolean deleteUser(DeleteUserCmd cmd) {
|
||||
long id = cmd.getId();
|
||||
|
||||
UserVO user = _userDao.findById(id);
|
||||
|
||||
if (user == null) {
|
||||
throw new InvalidParameterValueException("The specified user doesn't exist in the system");
|
||||
}
|
||||
|
||||
String userUUID = user.getUuid();
|
||||
int regionId = user.getRegionId();
|
||||
|
||||
String command = "deleteUser";
|
||||
List<NameValuePair> params = new ArrayList<NameValuePair>();
|
||||
params.add(new NameValuePair(ApiConstants.ID, userUUID));
|
||||
|
||||
if(getId() == regionId){
|
||||
return _accountMgr.deleteUser(cmd);
|
||||
} else {
|
||||
//First delete in the Region where user is created
|
||||
Region region = _regionDao.findById(regionId);
|
||||
if (RegionsApiUtil.makeAPICall(region, command, params)) {
|
||||
s_logger.debug("Successfully deleted user :"+userUUID+" in source Region: "+region.getId());
|
||||
return true;
|
||||
} else {
|
||||
s_logger.error("Error while deleting user :"+userUUID+" in source Region: "+region.getId());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return _accountMgr.deleteUser(cmd);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -405,33 +220,7 @@ public class RegionManagerImpl extends ManagerBase implements RegionManager, Man
|
||||
*/
|
||||
@Override
|
||||
public Domain updateDomain(UpdateDomainCmd cmd) {
|
||||
long id = cmd.getId();
|
||||
DomainVO domain = _domainDao.findById(id);
|
||||
if(domain == null){
|
||||
throw new InvalidParameterValueException("The specified domain doesn't exist in the system");
|
||||
}
|
||||
|
||||
String domainUUID = domain.getUuid();
|
||||
|
||||
String command = "updateDomain";
|
||||
List<NameValuePair> params = new ArrayList<NameValuePair>();
|
||||
params.add(new NameValuePair(ApiConstants.ID, domainUUID));
|
||||
params.add(new NameValuePair(ApiConstants.NAME, cmd.getDomainName()));
|
||||
params.add(new NameValuePair(ApiConstants.NETWORK_DOMAIN, cmd.getNetworkDomain()));
|
||||
|
||||
int regionId = domain.getRegionId();
|
||||
if(getId() == regionId){
|
||||
return _domainMgr.updateDomain(cmd);
|
||||
} else {
|
||||
//First update in the Region where domain was created
|
||||
Region region = _regionDao.findById(regionId);
|
||||
if (RegionsApiUtil.makeAPICall(region, command, params)) {
|
||||
s_logger.debug("Successfully updated user :"+domainUUID+" in source Region: "+region.getId());
|
||||
return domain;
|
||||
} else {
|
||||
throw new CloudRuntimeException("Error while updating user :"+domainUUID+" in source Region: "+region.getId());
|
||||
}
|
||||
}
|
||||
return _domainMgr.updateDomain(cmd);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -439,32 +228,7 @@ public class RegionManagerImpl extends ManagerBase implements RegionManager, Man
|
||||
*/
|
||||
@Override
|
||||
public boolean deleteDomain(Long id, Boolean cleanup) {
|
||||
DomainVO domain = _domainDao.findById(id);
|
||||
if(domain == null){
|
||||
throw new InvalidParameterValueException("The specified domain doesn't exist in the system");
|
||||
}
|
||||
|
||||
String domainUUID = domain.getUuid();
|
||||
|
||||
String command = "deleteDomain";
|
||||
List<NameValuePair> params = new ArrayList<NameValuePair>();
|
||||
params.add(new NameValuePair(ApiConstants.ID, domainUUID));
|
||||
params.add(new NameValuePair(ApiConstants.CLEANUP, cleanup.toString()));
|
||||
|
||||
int regionId = domain.getRegionId();
|
||||
if(getId() == regionId){
|
||||
return _domainMgr.deleteDomain(id, cleanup);
|
||||
} else {
|
||||
//First delete in the Region where domain is created
|
||||
Region region = _regionDao.findById(regionId);
|
||||
if (RegionsApiUtil.makeAPICall(region, command, params)) {
|
||||
s_logger.debug("Successfully deleted domain :"+domainUUID+" in Region: "+region.getId());
|
||||
return true;
|
||||
} else {
|
||||
s_logger.error("Error while deleting domain :"+domainUUID+" in Region: "+region.getId());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return _domainMgr.deleteDomain(id, cleanup);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -472,40 +236,7 @@ public class RegionManagerImpl extends ManagerBase implements RegionManager, Man
|
||||
*/
|
||||
@Override
|
||||
public UserAccount updateUser(UpdateUserCmd cmd) {
|
||||
long id = cmd.getId();
|
||||
|
||||
UserVO user = _userDao.findById(id);
|
||||
if (user == null) {
|
||||
throw new InvalidParameterValueException("The specified user doesn't exist in the system");
|
||||
}
|
||||
|
||||
String userUUID = user.getUuid();
|
||||
|
||||
String command = "updateUser";
|
||||
List<NameValuePair> params = new ArrayList<NameValuePair>();
|
||||
params.add(new NameValuePair(ApiConstants.ID, userUUID));
|
||||
params.add(new NameValuePair(ApiConstants.API_KEY, cmd.getApiKey()));
|
||||
params.add(new NameValuePair(ApiConstants.EMAIL, cmd.getEmail()));
|
||||
params.add(new NameValuePair(ApiConstants.FIRSTNAME, cmd.getFirstname()));
|
||||
params.add(new NameValuePair(ApiConstants.LASTNAME, cmd.getLastname()));
|
||||
params.add(new NameValuePair(ApiConstants.PASSWORD, cmd.getPassword()));
|
||||
params.add(new NameValuePair(ApiConstants.SECRET_KEY, cmd.getSecretKey()));
|
||||
params.add(new NameValuePair(ApiConstants.TIMEZONE, cmd.getTimezone()));
|
||||
params.add(new NameValuePair(ApiConstants.USERNAME, cmd.getUsername()));
|
||||
|
||||
int regionId = user.getRegionId();
|
||||
if(getId() == regionId){
|
||||
return _accountMgr.updateUser(cmd);
|
||||
} else {
|
||||
//First update in the Region where user was created
|
||||
Region region = _regionDao.findById(regionId);
|
||||
if (RegionsApiUtil.makeAPICall(region, command, params)) {
|
||||
s_logger.debug("Successfully updated user :"+userUUID+" in source Region: "+region.getId());
|
||||
return _userAccountDao.findById(id);
|
||||
} else {
|
||||
throw new CloudRuntimeException("Error while updating user :"+userUUID+" in source Region: "+region.getId());
|
||||
}
|
||||
}
|
||||
return _accountMgr.updateUser(cmd);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -513,29 +244,7 @@ public class RegionManagerImpl extends ManagerBase implements RegionManager, Man
|
||||
*/
|
||||
@Override
|
||||
public UserAccount disableUser(Long userId) {
|
||||
UserVO user = _userDao.findById(userId);
|
||||
if (user == null || user.getRemoved() != null) {
|
||||
throw new InvalidParameterValueException("Unable to find active user by id " + userId);
|
||||
}
|
||||
|
||||
int regionId = user.getRegionId();
|
||||
|
||||
String command = "disableUser";
|
||||
List<NameValuePair> params = new ArrayList<NameValuePair>();
|
||||
params.add(new NameValuePair(ApiConstants.ID, user.getUuid()));
|
||||
|
||||
if(getId() == regionId){
|
||||
return _accountMgr.disableUser(userId);
|
||||
} else {
|
||||
//First disable in the Region where user was created
|
||||
Region region = _regionDao.findById(regionId);
|
||||
if (RegionsApiUtil.makeAPICall(region, command, params)) {
|
||||
s_logger.debug("Successfully disabled user :"+user.getUuid()+" in source Region: "+region.getId());
|
||||
return _userAccountDao.findById(userId);
|
||||
} else {
|
||||
throw new CloudRuntimeException("Error while disabling user :"+user.getUuid()+" in source Region: "+region.getId());
|
||||
}
|
||||
}
|
||||
return _accountMgr.disableUser(userId);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -543,29 +252,7 @@ public class RegionManagerImpl extends ManagerBase implements RegionManager, Man
|
||||
*/
|
||||
@Override
|
||||
public UserAccount enableUser(long userId) {
|
||||
UserVO user = _userDao.findById(userId);
|
||||
if (user == null || user.getRemoved() != null) {
|
||||
throw new InvalidParameterValueException("Unable to find active user by id " + userId);
|
||||
}
|
||||
|
||||
int regionId = user.getRegionId();
|
||||
|
||||
String command = "enableUser";
|
||||
List<NameValuePair> params = new ArrayList<NameValuePair>();
|
||||
params.add(new NameValuePair(ApiConstants.ID, user.getUuid()));
|
||||
|
||||
if(getId() == regionId){
|
||||
return _accountMgr.enableUser(userId);
|
||||
} else {
|
||||
//First enable in the Region where user was created
|
||||
Region region = _regionDao.findById(regionId);
|
||||
if (RegionsApiUtil.makeAPICall(region, command, params)) {
|
||||
s_logger.debug("Successfully enabled user :"+user.getUuid()+" in source Region: "+region.getId());
|
||||
return _userAccountDao.findById(userId);
|
||||
} else {
|
||||
throw new CloudRuntimeException("Error while enabling user :"+user.getUuid()+" in source Region: "+region.getId());
|
||||
}
|
||||
}
|
||||
return _accountMgr.enableUser(userId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -78,20 +78,20 @@ public class RegionServiceImpl extends ManagerBase implements RegionService, Man
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public Region addRegion(int id, String name, String endPoint, String apiKey, String secretKey) {
|
||||
public Region addRegion(int id, String name, String endPoint) {
|
||||
//Check for valid Name
|
||||
//Check valid end_point url
|
||||
return _regionMgr.addRegion(id, name, endPoint, apiKey, secretKey);
|
||||
return _regionMgr.addRegion(id, name, endPoint);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public Region updateRegion(int id, String name, String endPoint, String apiKey, String secretKey) {
|
||||
public Region updateRegion(int id, String name, String endPoint) {
|
||||
//Check for valid Name
|
||||
//Check valid end_point url
|
||||
return _regionMgr.updateRegion(id, name, endPoint, apiKey, secretKey);
|
||||
return _regionMgr.updateRegion(id, name, endPoint);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -36,21 +36,13 @@ public class RegionVO implements Region{
|
||||
@Column(name="end_point")
|
||||
private String endPoint;
|
||||
|
||||
@Column(name="api_key")
|
||||
private String apiKey;
|
||||
|
||||
@Column(name="secret_key")
|
||||
private String secretKey;
|
||||
|
||||
public RegionVO() {
|
||||
}
|
||||
|
||||
public RegionVO(int id, String name, String endPoint, String apiKey, String secretKey) {
|
||||
public RegionVO(int id, String name, String endPoint) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.endPoint = endPoint;
|
||||
this.apiKey = apiKey;
|
||||
this.secretKey = secretKey;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
@ -73,21 +65,4 @@ public class RegionVO implements Region{
|
||||
this.endPoint = endPoint;
|
||||
}
|
||||
|
||||
public String getApiKey() {
|
||||
return apiKey;
|
||||
}
|
||||
|
||||
public void setApiKey(String apiKey) {
|
||||
this.apiKey = apiKey;
|
||||
}
|
||||
|
||||
public String getSecretKey() {
|
||||
return secretKey;
|
||||
}
|
||||
|
||||
public void setSecretKey(String secretKey) {
|
||||
this.secretKey = secretKey;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -227,8 +227,8 @@ public class RegionsApiUtil {
|
||||
*/
|
||||
private static String buildUrl(String apiParams, Region region) {
|
||||
|
||||
String apiKey = region.getApiKey();
|
||||
String secretKey = region.getSecretKey();
|
||||
String apiKey = "";
|
||||
String secretKey = "";
|
||||
|
||||
|
||||
if (apiKey == null || secretKey == null) {
|
||||
|
||||
@ -264,7 +264,7 @@ public class MockAccountManagerImpl extends ManagerBase implements Manager, Acco
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserVO createUser(long accountId, String userName, String password, String firstName, String lastName, String email, String timezone) {
|
||||
public UserVO createUser(long accountId, String userName, String password, String firstName, String lastName, String email, String timezone, String userUUID) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -328,7 +328,7 @@ public class MockAccountManagerImpl extends ManagerBase implements Manager, Acco
|
||||
public UserAccount createUserAccount(String userName, String password,
|
||||
String firstName, String lastName, String email, String timezone,
|
||||
String accountName, short accountType, Long domainId,
|
||||
String networkDomain, Map<String, String> details) {
|
||||
String networkDomain, Map<String, String> details, String accountUUID, String userUUID) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
@ -336,15 +336,14 @@ public class MockAccountManagerImpl extends ManagerBase implements Manager, Acco
|
||||
@Override
|
||||
public User createUser(String userName, String password, String firstName,
|
||||
String lastName, String email, String timeZone, String accountName,
|
||||
Long domainId) {
|
||||
Long domainId, String userUUID) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Account createAccount(String accountName, short accountType,
|
||||
Long domainId, String networkDomain, Map details, String uuid,
|
||||
int regionId) {
|
||||
Long domainId, String networkDomain, Map details, String uuid) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -139,7 +139,7 @@ public class MockDomainManagerImpl extends ManagerBase implements DomainManager,
|
||||
|
||||
@Override
|
||||
public Domain createDomain(String name, Long parentId,
|
||||
String networkDomain) {
|
||||
String networkDomain, String domainUUID) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
@ -152,7 +152,7 @@ public class MockDomainManagerImpl extends ManagerBase implements DomainManager,
|
||||
|
||||
@Override
|
||||
public Domain createDomain(String name, Long parentId, Long ownerId,
|
||||
String networkDomain) {
|
||||
String networkDomain, String domainUUID) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -48,27 +48,14 @@ public class RegionManagerTest extends TestCase {
|
||||
public void testUniqueName() {
|
||||
RegionManagerImpl regionMgr = new RegionManagerImpl();
|
||||
RegionDao regionDao = Mockito.mock(RegionDao.class);
|
||||
RegionVO region = new RegionVO(2, "APAC", "", null, null);
|
||||
RegionVO region = new RegionVO(2, "APAC", "");
|
||||
Mockito.when(regionDao.findByName(Mockito.anyString())).thenReturn(region);
|
||||
regionMgr._regionDao = regionDao;
|
||||
try {
|
||||
regionMgr.addRegion(2, "APAC", "", null, null);
|
||||
regionMgr.addRegion(2, "APAC", "");
|
||||
} catch (InvalidParameterValueException e){
|
||||
Assert.assertEquals("Region with name: APAC already exists", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUserDelete() {
|
||||
RegionManagerImpl regionMgr = new RegionManagerImpl();
|
||||
AccountDao accountDao = Mockito.mock(AccountDao.class);
|
||||
Mockito.when(accountDao.findById(Mockito.anyLong())).thenReturn(null);
|
||||
regionMgr._accountDao = accountDao;
|
||||
try {
|
||||
regionMgr.deleteUserAccount(5);
|
||||
} catch (InvalidParameterValueException e){
|
||||
Assert.assertEquals("The specified account does not exist in the system", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -257,7 +257,7 @@ for full help
|
||||
self.runMysql(text, p, True)
|
||||
self.info(None, True)
|
||||
|
||||
awsApiDbDir = '/usr/share/cloud/setup/bridge/db'
|
||||
awsApiDbDir = '/usr/share/cloudstack-bridge/setup'
|
||||
for f in ["cloudbridge_db.sql"]:
|
||||
p = os.path.join(awsApiDbDir,f)
|
||||
if not os.path.exists(p): continue
|
||||
|
||||
@ -258,17 +258,10 @@ CREATE TABLE `cloud`.`region` (
|
||||
`id` int unsigned NOT NULL UNIQUE,
|
||||
`name` varchar(255) NOT NULL UNIQUE,
|
||||
`end_point` varchar(255) NOT NULL,
|
||||
`api_key` varchar(255),
|
||||
`secret_key` varchar(255),
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
|
||||
INSERT INTO `cloud`.`region` values ('1','Local','http://localhost:8080/client/api','','');
|
||||
|
||||
ALTER TABLE `cloud`.`account` ADD COLUMN `region_id` int unsigned NOT NULL DEFAULT '1';
|
||||
ALTER TABLE `cloud`.`user` ADD COLUMN `region_id` int unsigned NOT NULL DEFAULT '1';
|
||||
ALTER TABLE `cloud`.`domain` ADD COLUMN `region_id` int unsigned NOT NULL DEFAULT '1';
|
||||
INSERT INTO `cloud`.`region` values ('1','Local','http://localhost:8080/client/api');
|
||||
|
||||
INSERT IGNORE INTO `cloud`.`configuration` VALUES ('Account Defaults', 'DEFAULT', 'management-server', 'max.account.cpus', '40', 'The default maximum number of cpu cores that can be used for an account');
|
||||
|
||||
|
||||
26
tools/eclipse/set-eclipse-profile.sh
Normal file
26
tools/eclipse/set-eclipse-profile.sh
Normal file
@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
for file in `find . -name org.eclipse.m2e.core.prefs | xargs`; do
|
||||
if grep -q activeProfiles=eclipse $file; then
|
||||
echo Skipping $file;
|
||||
else
|
||||
echo Replacing $file;
|
||||
sed -i s/activeProfiles=/activeProfiles=eclipse/g $file;
|
||||
fi;
|
||||
done
|
||||
@ -16,6 +16,59 @@
|
||||
// under the License.
|
||||
cloudStack.docs = {
|
||||
|
||||
//Delete/archive events
|
||||
helpEventsDeleteType:{
|
||||
|
||||
desc:'Delete all the events by specifying its TYPE eg . USER.LOGIN',
|
||||
externalLink:''
|
||||
|
||||
},
|
||||
|
||||
helpEventsDeleteDate:{
|
||||
|
||||
desc:'Delete all the events which have been created after this date ',
|
||||
externalLink:''
|
||||
},
|
||||
|
||||
helpEventsArchiveType:{
|
||||
|
||||
desc:'Archive all the events by specifying its TYPE (integer number)',
|
||||
externalLink:''
|
||||
},
|
||||
|
||||
helpEventsArchiveDate:{
|
||||
|
||||
desc:'Archive all the events which have been created after this date',
|
||||
externalLink:''
|
||||
},
|
||||
|
||||
//Delete/archive Alerts
|
||||
helpAlertsDeleteType:{
|
||||
|
||||
desc:'Delete all the alerts by specifying its TYPE eg . USER.LOGIN',
|
||||
externalLink:''
|
||||
|
||||
},
|
||||
|
||||
helpAlertsDeleteDate:{
|
||||
|
||||
desc:'Delete all the alerts which have been created after this date ',
|
||||
externalLink:''
|
||||
},
|
||||
|
||||
helpAlertsArchiveType:{
|
||||
|
||||
desc:'Archive all the alerts by specifying its TYPE (integer number)',
|
||||
externalLink:''
|
||||
},
|
||||
|
||||
helpAlertsArchiveDate:{
|
||||
|
||||
desc:'Archive all the alerts which have been created after this date',
|
||||
externalLink:''
|
||||
},
|
||||
|
||||
|
||||
//Ldap
|
||||
helpLdapQueryFilter: {
|
||||
|
||||
|
||||
@ -42,6 +42,103 @@
|
||||
created: { label: 'label.date', converter: cloudStack.converters.toLocalDate }
|
||||
},
|
||||
|
||||
actions: {
|
||||
// Remove multiple events
|
||||
remove: {
|
||||
label: 'Delete Events',
|
||||
isHeader: true,
|
||||
addRow: false,
|
||||
messages: {
|
||||
notification: function(args) {
|
||||
return 'Events Deleted';
|
||||
}
|
||||
},
|
||||
createForm: {
|
||||
title:'Delete Events',
|
||||
desc: '',
|
||||
fields: {
|
||||
type: { label: 'By event type' , docID:'helpEventsDeleteType'},
|
||||
date: { label: 'By date (older than)' ,docID:'helpEventsDeleteDate'}
|
||||
}
|
||||
},
|
||||
action: function(args) {
|
||||
|
||||
var data={};
|
||||
|
||||
if(args.data.type != "")
|
||||
$.extend(data, { type:args.data.type });
|
||||
|
||||
if(args.data.date != "")
|
||||
$.extend(data, {date:args.data.date });
|
||||
|
||||
$.ajax({
|
||||
|
||||
url:createURL("deleteEvents"),
|
||||
data:data,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
|
||||
success:function(data){
|
||||
|
||||
args.response.success();
|
||||
|
||||
}
|
||||
});
|
||||
// Reloads window with events removed
|
||||
$(window).trigger('cloudStack.fullRefresh');
|
||||
}
|
||||
},
|
||||
|
||||
// Archive multiple events
|
||||
archive: {
|
||||
label: 'Archive Events',
|
||||
isHeader: true,
|
||||
addRow: false,
|
||||
messages: {
|
||||
notification: function(args) {
|
||||
return 'Archive events';
|
||||
}
|
||||
},
|
||||
createForm: {
|
||||
title:'Archive Events',
|
||||
desc: '',
|
||||
fields: {
|
||||
type: { label: 'By event type' , docID:'helpEventsArchiveType'},
|
||||
date: { label: 'By date (older than)' , docID:'helpEventsArchiveDate'}
|
||||
}
|
||||
},
|
||||
action: function(args) {
|
||||
var data={};
|
||||
|
||||
if(args.data.type != "")
|
||||
$.extend(data, { type:args.data.type });
|
||||
|
||||
if(args.data.date != "")
|
||||
$.extend(data, {date:args.data.date });
|
||||
|
||||
$.ajax({
|
||||
|
||||
url:createURL("archiveEvents"),
|
||||
data:data,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
|
||||
success:function(data){
|
||||
|
||||
args.response.success();
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
// Reloads window with events removed
|
||||
$(window).trigger('cloudStack.fullRefresh');
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
|
||||
|
||||
advSearchFields: {
|
||||
level: {
|
||||
label: 'label.level',
|
||||
@ -132,6 +229,64 @@
|
||||
},
|
||||
detailView: {
|
||||
name: 'label.details',
|
||||
actions: {
|
||||
|
||||
// Remove single event
|
||||
remove: {
|
||||
label: 'Delete',
|
||||
messages: {
|
||||
notification: function(args) {
|
||||
return 'Event Deleted';
|
||||
},
|
||||
confirm: function() {
|
||||
return 'Are you sure you want to remove this event?';
|
||||
}
|
||||
},
|
||||
action: function(args) {
|
||||
|
||||
$.ajax({
|
||||
url:createURL("deleteEvents&ids=" +args.context.events[0].id),
|
||||
success:function(json){
|
||||
|
||||
args.response.success();
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
$(window).trigger('cloudStack.fullRefresh');
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
// Archive single event
|
||||
archive: {
|
||||
label: 'Archive',
|
||||
messages: {
|
||||
notification: function(args) {
|
||||
return 'Event Archived';
|
||||
},
|
||||
confirm: function() {
|
||||
return 'Please confirm that you want to archive this event.';
|
||||
}
|
||||
},
|
||||
action: function(args) {
|
||||
|
||||
$.ajax({
|
||||
url:createURL("archiveEvents&ids=" +args.context.events[0].id),
|
||||
success:function(json){
|
||||
|
||||
args.response.success();
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
// Reloads window with item archived
|
||||
$(window).trigger('cloudStack.fullRefresh');
|
||||
}
|
||||
}
|
||||
},
|
||||
tabs: {
|
||||
details: {
|
||||
title: 'label.details',
|
||||
@ -174,6 +329,102 @@
|
||||
description: { label: 'label.description' },
|
||||
sent: { label: 'label.date', converter: cloudStack.converters.toLocalDate }
|
||||
},
|
||||
|
||||
actions: {
|
||||
// Remove multiple Alerts
|
||||
remove: {
|
||||
label: 'Delete Alerts',
|
||||
isHeader: true,
|
||||
addRow: false,
|
||||
messages: {
|
||||
notification: function(args) {
|
||||
return 'Alerts Deleted';
|
||||
}
|
||||
},
|
||||
createForm: {
|
||||
title:'Delete Alerts',
|
||||
desc: '',
|
||||
fields: {
|
||||
type: { label: 'By event type' , docID:'helpAlertsDeleteType'},
|
||||
date: { label: 'By date (older than)' ,docID:'helpAlertsDeleteDate' }
|
||||
}
|
||||
},
|
||||
action: function(args) {
|
||||
|
||||
var data={};
|
||||
|
||||
if(args.data.type != "")
|
||||
$.extend(data, { type:args.data.type });
|
||||
|
||||
if(args.data.date != "")
|
||||
$.extend(data, {date:args.data.date });
|
||||
|
||||
$.ajax({
|
||||
|
||||
url:createURL("deleteAlerts"),
|
||||
data:data,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
|
||||
success:function(data){
|
||||
|
||||
args.response.success();
|
||||
|
||||
}
|
||||
});
|
||||
// Reloads window with events removed
|
||||
$(window).trigger('cloudStack.fullRefresh');
|
||||
}
|
||||
},
|
||||
|
||||
// Archive multiple Alerts
|
||||
archive: {
|
||||
label: 'Archive Alerts',
|
||||
isHeader: true,
|
||||
addRow: false,
|
||||
messages: {
|
||||
notification: function(args) {
|
||||
return 'Alerts Archived';
|
||||
}
|
||||
},
|
||||
createForm: {
|
||||
title:'Archive Alerts',
|
||||
desc: '',
|
||||
fields: {
|
||||
type: { label: 'By event type', docID:'helpAlertsArchiveType' },
|
||||
date: { label: 'By date (older than)' , docID:'helpAlertsArchiveDate'}
|
||||
}
|
||||
},
|
||||
action: function(args) {
|
||||
var data={};
|
||||
|
||||
if(args.data.type != "")
|
||||
$.extend(data, { type:args.data.type });
|
||||
|
||||
if(args.data.date != "")
|
||||
$.extend(data, {date:args.data.date });
|
||||
|
||||
$.ajax({
|
||||
|
||||
url:createURL("archiveAlerts"),
|
||||
data:data,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
|
||||
success:function(data){
|
||||
|
||||
args.response.success();
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
// Reloads window with events removed
|
||||
$(window).trigger('cloudStack.fullRefresh');
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
dataProvider: function(args) {
|
||||
var data = {};
|
||||
listViewDataProvider(args, data);
|
||||
@ -190,6 +441,65 @@
|
||||
},
|
||||
detailView: {
|
||||
name: 'Alert details',
|
||||
actions: {
|
||||
|
||||
// Remove single Alert
|
||||
remove: {
|
||||
label: 'Delete',
|
||||
messages: {
|
||||
notification: function(args) {
|
||||
return 'Alert Deleted';
|
||||
},
|
||||
confirm: function() {
|
||||
return 'Are you sure you want to delete this alert ?';
|
||||
}
|
||||
},
|
||||
action: function(args) {
|
||||
|
||||
$.ajax({
|
||||
url:createURL("deleteAlerts&ids=" +args.context.alerts[0].id),
|
||||
success:function(json){
|
||||
|
||||
args.response.success();
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
$(window).trigger('cloudStack.fullRefresh');
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
archive: {
|
||||
label: 'Archive',
|
||||
messages: {
|
||||
notification: function(args) {
|
||||
return 'Alert Archived';
|
||||
},
|
||||
confirm: function() {
|
||||
return 'Please confirm that you want to archive this alert.';
|
||||
}
|
||||
},
|
||||
action: function(args) {
|
||||
|
||||
$.ajax({
|
||||
url:createURL("archiveAlerts&ids=" +args.context.alerts[0].id),
|
||||
success:function(json){
|
||||
|
||||
args.response.success();
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
// Reloads window with item archived
|
||||
$(window).trigger('cloudStack.fullRefresh');
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
tabs: {
|
||||
details: {
|
||||
title: 'label.details',
|
||||
|
||||
29
usage/conf/db.properties.in
Normal file
29
usage/conf/db.properties.in
Normal file
@ -0,0 +1,29 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
# usage database settings
|
||||
db.usage.username=@DBUSER@
|
||||
db.usage.password=@DBPW@
|
||||
db.usage.host=@DBHOST@
|
||||
db.usage.port=3306
|
||||
db.usage.name=cloud_usage
|
||||
|
||||
# usage database tuning parameters
|
||||
db.usage.maxActive=100
|
||||
db.usage.maxIdle=30
|
||||
db.usage.maxWait=10000
|
||||
db.usage.autoReconnect=true
|
||||
@ -74,7 +74,7 @@
|
||||
<goal>copy-dependencies</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>target/dependencies</outputDirectory>
|
||||
<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
|
||||
<includeScope>runtime</includeScope>
|
||||
</configuration>
|
||||
</execution>
|
||||
@ -127,24 +127,6 @@
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>2.5.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-dependencies</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>copy-dependencies</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
|
||||
<includeScope>runtime</includeScope>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<profiles>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user