Commit Graph

132 Commits

Author SHA1 Message Date
PranaliM 189b0e4487 CLOUDSTACK-10060: ListUsage API always displays the Virtual size as '0' for Usage type=9 (snapshot) (#2257)
Bug Description:
In the listUsage API, the Virtual Size of Snapshot is always displayed as '0'.

Root Cause:
In case of snapshots, the usage is accounted for depending on the value of the global parameter, 'usage.snapshot.virtualsize.select'. If set to 'true', the usage calculation is done based on the Virtual Size, and if set to false, it is done based on the Physical size. In the Usage API, this value, (i.e. virtual or physical) is displayed as 'Size' field correctly, but the field 'VirtualSize' is always displayed as 0. This is misleading.

Expected Output:
Since this is a Usage API, ideally only that size should be displayed which is used for billing, depending on the value of 'usage.snapshot.virtualsize.select'.
There is another API - the ListSnapshot API that displays both, the physical as well as Virtual size and can be used to know both the sizes.

Fix Implemented:
Skipped showing the 'VirtualSize' Field for type=snapshot
2017-10-12 18:17:18 +05:30
SowjanyaPatha 721f4475f4 CLOUDSTACK-9907 Physical size of snapshot is considered for usage 2017-05-18 11:13:18 +05:30
Abhinandan Prateek 987fcbd441 CLOUDSTACK-8592: Implement Quota service
Quota service while allowing for scalability will make sure that the cloud is
not exploited by attacks, careless use and program errors. To address this
problem, we propose to employ a quota-enforcement service that allows resource
usage within certain bounds as defined by policies and available quotas for
various entities.  Quota service extends the functionality of usage server to
provide a measurement for the resources used by the accounts and domains using a
common unit referred to as cloud currency in this document. It can be configured
to ensure that your usage won’t exceed the budget allocated to accounts/domain
in cloud currency.  It will let user know how much of the cloud resources he is
using. It will help the cloud admins, if they want, to ensure that a user does
not go beyond his allocated quota. Per usage cycle if a account is found to be
exceeding its quota then it is locked. Locking an account means that it will not
be able to initiat e a new resource allocation request, whether it is more
storage or an additional ip. Needless to say quota service as well as any action
on the account is configurable.

Changes from Github code review:

- Added marvin test for quota plugin API
- removed unused commented code
- debug messages in debug enabled check
- checks for nulls, fixed access to member variables and feature
- changes based on PR comments
- unit tests for UsageTypes
- unit tests for all Cmd classes
- unit tests for all service and manager impls
- try-catch-finally or try-with-resource in dao impls for failsafe db switching
- remove dead code
- add missing quota calculation case (regression fixed)
- replace tabs with spaces in pom.xmls
- quota: though default value for quota_calculated is 0, the usage server
  makes it null while entering usage entries. Flipping the condition so
  as to acocunt for that.
- quotatypes: fix NPE in quota type
- quota framework test fixes
- made statement period configurable
- changed default email templates to reflect the fact that exhausted quota may not result in a locked account
- added quotaUpdateCmd that refreshes quota balances and sends alerts and statements
- report quotaSummary command returns quota balance, quota usage and state for all account
- made UI framework changes to allow for text area input in edit views
- process usage entries that have greater than 0 usage
- orocess quota entries only if tariff is non zero
- if there are credit entries but no balance entry create a dummy balance entry
- remove any credit entries that are before the last balance entry
  when displaying balance statement
- on a rerun the last balance is now getting added

FS: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Quota+Service+-+FS
PR: https://github.com/apache/cloudstack/pull/768

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-12-07 23:02:48 +05:30
cirstofolini 1a64c247ad Removed unnecessary @Local annotations and their respective imports from the ComponentLifecycleBase class and its subclasses. 2015-11-21 18:31:11 -02:00
Rajani Karuturi 8bc0294014 Revert "Merge pull request #714 from rafaelweingartner/master-lrg-cs-hackday-003"
This reverts commit cd7218e241, reversing
changes made to f5a7395cc2.

Reason for Revert:

noredist build failed with the below error:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile (default-compile) on project cloud-plugin-hypervisor-vmware: Compilation failure
[ERROR] /home/jenkins/acs/workspace/build-master-noredist/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java:[484,12] error: non-static variable logger cannot be referenced from a static context
[ERROR] -> [Help 1]

even the normal build is broken as reported by @koushik-das on dev list
http://markmail.org/message/nngimssuzkj5gpbz
2015-08-31 11:27:57 +05:30
Rafael Weingartner 3818257a68 Solved jira ticket: CLOUDSTACK-8750 2015-08-28 22:35:08 -03:00
Daan Hoogland afcdbc42ab CLOUDSTACK-8656: log initialisation logging 2015-08-04 11:29:27 +02:00
Abhinandan Prateek 60b6dc1368 CLOUDSTACK-8467: set version to unknown instead of null 2015-05-13 12:28:50 +05:30
Kishan Kavala 30ab4d3d66 For Vm snapshot delete event, check for null size and set it as zero 2015-01-07 14:15:59 +05:30
Kishan Kavala 84c25f7025 Skip older records which generate negative duration usage 2015-01-07 11:49:50 +05:30
Rohit Yadav 1e0880cbab CLOUDSTACK-7903: Fix build regression from previous fix
The previous fix tried to access StatsCollector from UsageManagerImpl
which is not possible due to dependency cycle.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-12-01 16:35:23 +05:30
Ilia Shakitko 9b907902d2 CLOUDSTACK-7903: Decreased minimal usage aggregation range value
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-12-01 15:52:00 +05:30
Hugo Trippaers fe0168f6d2 CID-1116546 Fix resource leak 2014-11-18 14:30:55 +01:00
Rohit Yadav 91fd8d7cd5 CLOUDSTACK-7528: More verbose logging when sending alert fails
When sendAlert is called on an AlertManager impl, if it fails it logs that
something was wrong but does not log the body of the issue/error. This means
we tell the user/admin that there was an issue but don't share the "issue"
with them at all as the email alert fail (or that they were not initialized).

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 885c02dbd8)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

Conflicts:
	server/src/com/cloud/alert/AlertManagerImpl.java
	usage/src/com/cloud/usage/UsageAlertManagerImpl.java
2014-09-10 11:38:47 +02:00
Hugo Trippaers 676b2d1569 Fix overflow before widening issues reported by Coverity 2014-07-24 13:22:14 +02:00
Kishan Kavala 421d6029db Remove cloud-server dependency for cloud-usage project 2014-07-02 15:28:42 +05:30
Santhosh Edukulla 1c80185170 Fixed Resource Leaks, null dereferences, invalid value comparisons, invalid result set loop
Signed-off-by: Daan Hoogland <daan@onecht.net>
2014-06-21 12:38:46 +02:00
Olivier Lemasle a5902f1db4 CLOUDSTACK-6850: Return cpu cores, cpu speed and memory in listUsageRecords
Signed-off-by: Sebastien Goasguen <runseb@gmail.com>
2014-06-10 03:11:35 -04:00
Olivier Lemasle 303e6ffc1e CLOUDSTACK-6669: Fix support resize in usage server
Signed-off-by: Sebastien Goasguen <runseb@gmail.com>
2014-06-07 04:45:44 -04:00
Hugo Trippaers 703febc64b Fix CID-1147052 Use try-with-resources to fix the leak 2014-06-03 17:20:16 +02:00
Rajani Karuturi bdde5335f9 FIXED CLOUDSTACK-6669 Support volume resize in usage server 2014-05-30 15:03:02 +05:30
Harikrishna Patnala 14f1b96b51 CLOUDSTACK-6466: cpu and ram is not getting updated correctly in usage_vm_instance table for usage type 2 2014-05-05 11:50:48 +05:30
Harikrishna Patnala 95fa931ff2 CLOUDSTACK-5515: #cpu ,cpuspeed and ram is set to NULL in usage db(usage_vm_instance table) after vm stop and start Fixed populating usage event details in usage db on vm start/upgrade/dynamic_scale 2013-12-30 12:20:33 +05:30
Antonio Fornie 55a6df4501 Resources leaks, refactoring and testing
Removing resource leaks from UsageSanityChecker and
refactoring it (encapsulation, removal of copy and paste, constants...)

Modularize static method for closing Statments in TransactionLegacy
and reusing this new method from other classes (Upgrade2214to30)

Create Unit and Integration Tests for UsageSanityChecker

Add DBUnit cases and integration profile for nitegration tests as
a base for future DB tests
2013-12-18 10:55:04 +01:00
Alex Huang be5e5cc641 All Checkstyle problems corrected 2013-12-12 12:26:07 -08:00
Alena Prokharchyk bd6f706b72 CLOUDSTACK-5261: added support for Alert publishing via ROOT Admin API
Conflicts:
	engine/orchestration/src/com/cloud/agent/manager/AgentManagerImpl.java
	engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
	engine/storage/image/src/org/apache/cloudstack/storage/image/TemplateServiceImpl.java
	engine/storage/volume/src/org/apache/cloudstack/storage/datastore/provider/DefaultHostListener.java
	engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java
	plugins/hypervisors/hyperv/src/com/cloud/hypervisor/hyperv/discoverer/HypervServerDiscoverer.java
	plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
	plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java
	server/src/com/cloud/alert/AlertManagerImpl.java
	server/src/com/cloud/alert/ConsoleProxyAlertAdapter.java
	server/src/com/cloud/alert/SecondaryStorageVmAlertAdapter.java
	server/src/com/cloud/configuration/ConfigurationManagerImpl.java
	server/src/com/cloud/ha/HighAvailabilityManagerExtImpl.java
	server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
	server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java
	server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
	server/src/com/cloud/vm/UserVmManagerImpl.java
	usage/src/com/cloud/usage/UsageAlertManagerImpl.java
	usage/src/com/cloud/usage/UsageManagerImpl.java

listAlerts: introduced new parameter "name" to the alertResponse

Conflicts:
	api/src/org/apache/cloudstack/api/command/admin/resource/ListAlertsCmd.java
	server/src/com/cloud/alert/AlertManagerImpl.java
	usage/src/com/cloud/usage/UsageAlertManagerImpl.java

Added new Admin API - generateAlert. Available to ROOT admin only

Conflicts:
	api/src/org/apache/cloudstack/alert/AlertService.java
	api/src/org/apache/cloudstack/api/BaseCmd.java
	usage/src/com/cloud/usage/UsageAlertManagerImpl.java

listAlerts: implemented search by alert name

Conflicts:
	api/src/org/apache/cloudstack/alert/AlertService.java
	api/src/org/apache/cloudstack/api/command/admin/resource/ListAlertsCmd.java
	engine/schema/src/com/cloud/alert/AlertVO.java
2013-12-04 10:05:46 -08:00
Bharat Kumar 68406ba29d CLOUDSTACK-5161 enable scaling of a vm using custom offering
Signed-off-by: Koushik Das <koushik@apache.org>
2013-11-29 17:53:33 +05:30
Harikrishna Patnala b2f0a0bce2 CLOUDSTACK-4737: handling usage events for dynamic compute offering
Signed-off-by: Koushik Das <koushik@apache.org>
2013-11-26 17:07:30 +05:30
Alex Huang d620df2bdd Reformatted all of the code. 2013-11-21 06:15:26 -08:00
Alex Huang 224f479974 Removed trailing spaces 2013-11-21 04:08:01 -08:00
Alex Huang 8d62744681 Reformat all source code. Added checkstyle to check the source code 2013-11-20 07:26:53 -08:00
Darren Shepherd f62e28c1ec New Transaction API
Introduction of a new Transaction API that is more consistent with the style
of Spring's transaction managment.  The existing Transaction class was renamed
to TransactionLegacy.  All of the non-DAO code in the management server has been
updated to use the new Transaction API.
2013-10-16 09:21:00 -07:00
Laszlo Hornyak 977a75f1be UsageManagerInternal fix
aed5e9dc2a seems to inroduce some typo to run

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2013-10-07 13:13:40 -07:00
Darren Shepherd aed5e9dc2a Add Manage Context framework
The managed context framework provides a simple way to add logic
to ACS at the various entry points of the system.  As threads are
launched and ran listeners can be registered for onEntry or onLeave
of the managed context.  This framework will be used specifically
to handle DB transaction checking and setting up the CallContext.
This framework is need to transition away from ACS custom AOP to
Spring AOP.
2013-10-02 13:09:52 -07:00
Kishan Kavala b4464d88d3 CLOUDSTACK-4281 : Usage - exception was hiding the db error. Make the usage job fail incase of any DB insert exceptions 2013-08-13 17:30:46 +05:30
Alex Huang 5495f10bce Revert "Reverting the range of commits that broke the build"
This reverts commit b59e3aaefc.
2013-08-08 15:02:40 -07:00
Prasanna Santhanam b59e3aaefc Reverting the range of commits that broke the build
This reverts commits 30c33415..f6a2c817bc

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
2013-08-08 14:46:56 +05:30
Alex Huang 942f282a6e Moved config into it's own package 2013-08-07 16:41:02 -07:00
Mice Xia 51e4f597e0 fix CLOUDSTACK-3591 add usage recording for VM snapshots
Conflicts:

	plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
	server/src/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java
	setup/db/db/schema-410to420.sql
2013-08-01 10:47:36 +08:00
Harikrishna Patnala 2c53ede1de CLOUDSTACK-3848: Usage events for dynamic scaling of cpu/ram operation on VM 2013-07-31 15:07:17 +05:30
Saksham Srivastava 135a2e66c5 CLOUDSTACK-2508: Template usage should report both physical and virtual sizes 2013-07-24 18:17:09 +05:30
Kishan Kavala f96442a45b CLOUDSTACK-3231: Update service offering Id of allocated Vm usage whem service offering changes for a Vm 2013-06-27 16:01:39 +05:30
Wei Zhou ab6bf0b209 fix disk I/O description mistake 2013-06-11 00:09:05 +02:00
Wei Zhou 6de271c754 fix disk I/O description mistake 2013-06-11 00:03:03 +02:00
Wei Zhou 76ce304411 CLOUDSTACK-2707: use executeBatch instead of persist in Usage Server 2013-06-10 15:00:08 +02:00
Wei Zhou b9b0168da4 CLOUDSTACK-1192: Add Disk I/O Statistics 2013-06-01 08:00:48 +02:00
Wei Zhou 2e8d1264a2 CLOUDSTACK-2707: use executeBatch instead of persist when Usage Server createNetworkHelperEntry 2013-05-28 09:43:23 +02:00
Mice Xia 5118e9e29f 1) fix CLOUDSTACK-2129 and CLOUDSTACK-2128
2) include nicId in network.offerings.assign/remove event
3) use publishUsageEvent instead of saveUsageEvent to track usageEvent
2013-04-22 19:38:32 +08:00
Hugo Trippaers 574e716352 CLOUDSTACK-2033 Fix usage server startup and logging
Properly implement the Daemon interface

Initialize logging when the usage server is started as a daemon

Fix a few minor startup and packaging items.
2013-04-16 10:52:49 +02:00
Kelven Yang f8471e545f CLOUDSTACK-1746: fix logging warning in usage server 2013-03-29 13:44:12 -07:00
Anshul Gangwar 61754cd987 CLOUDSTACK-680: Feature SNMP Alerts support in CloudStack
Signed-off-by: Anshul Gangwar <anshul.gangwar@citrix.com>
Signed-off-by: Sateesh Chodapuneedi <sateesh@apache.org>
2013-03-18 11:36:19 +05:30
Rohit Yadav 0a1a207a19 usage: Fix regression build fail from fc3905fb, missing closing parenthesis
We've to test our commits, build 'em before committing :)

Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
(cherry picked from commit c47f685b1f)

Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-02-26 16:41:16 +05:30
Wei Zhou fc3905fb57 CLOUDSTACK-962:setAggBytesSent/setAggBytesReceived in NetworkUsageTask when not in case of dailyor hourly
Removed duplicate userstatsdao injection
2013-02-26 16:27:59 +05:30
Kishan Kavala 7d61ee6e99 CLOUDSTACK-1295 : Added usage unit tests
Fixed Component annontation for usage parsers
Fixed mvn target to run usage
removed UsageServerComponentConfig which is not required
Added region_id to account table in cloud_usage db

Conflicts:
	setup/db/db/schema-40to410.sql
2013-02-15 18:41:28 +05:30
Kishan Kavala fc0bf21a13 CLOUDSTACK-786, CLOUDSTACK-1014: Moved usage APIs to cloud-api. Removed ManagementServerExt. Usage API related implementation is added to UsageServiceImpl 2013-02-05 16:49:34 +05:30
Hugo Trippaers 7ce03b4f8e Summary: Fixup usage server for packaging
Make the start method work again with jsvc

Move the usageApplicationContext to resources and add resources to the pom.xml

Remove the old components file

Add mysql-connector as a runtime dependency

Rename the usage package and the files to cloudstack

Change paths to the new proposed locations
2013-02-03 17:49:18 +01:00
Kelven Yang 176523254e Improve component lifecycle management with system run-level concept 2013-01-30 15:21:02 -08:00
Kelven Yang 1450547987 Put usage server under Spring 2013-01-25 23:00:55 -08:00
Kelven Yang 6fb1a1e6f1 Fix issues after another round of merge 2013-01-11 16:54:32 -08:00
Alex Huang f922c6fc03 Keep removing 2013-01-10 14:46:52 -08:00
Alex Huang 56e5fbdee2 removed import of componentlocator and inject from all files 2013-01-10 11:44:47 -08:00
Kelven Yang b274c570f9 Cleanup places that use explicit wiring of the components 2013-01-08 17:45:33 -08:00
Wido den Hollander 5d41523a0b usage: Fix whitspace and indention according to code convention
Replaced all tabs by 4 spaces
2012-09-13 16:29:01 +02:00
Wido den Hollander eab3e4783e Remove cloud-daemonize and use JSVC
We now use JSVC for daemonizing our agent and usage server.
2012-07-24 19:32:39 +02:00
David Nalley 4cfbe5cf8b fixing license headers for usage 2012-06-04 10:22:57 -04:00
David Nalley 65d5d4d549 fixing line endings in usage 2012-04-09 20:07:33 -04:00
frank 2f634c0913 Switch to Apache license 2012-04-03 04:50:05 -07:00
Alena Prokharchyk 2e9511e2ae Changed isElastic to isSystem for the publicIpAddress assigned during the vm deployment in EIP enabled network
Reviewed-by: Chiradeep
2012-02-21 15:39:49 -08:00
kishan ced6fd46b8 Bug 12954: Added usage for security groups. Usage will be generated for each security group that is assigned to a Vm.
Status 12954: resolved fixed
Reviewed-By: Nitin
2012-02-17 13:50:18 +05:30
kishan 278833eb29 Bug 13420: Send alert of type 18 when sending alert for SSVM
Status 13420: resolved fixed
Reviewed-By: Nitin
2012-02-08 18:50:42 +05:30
kishan b15e5d6730 Bug 13326: Include isElastic flag in IPAddress usage response
Reviewed-By: Nitin
2012-02-03 18:03:04 +05:30
kishan a388ed792f Bug 13326: Added is_elastic flag to IP address usage. Added new column in usage_ip_address, defaults to false. size column will contain is_elastic info in cloud_usage table
Status 13326: resolved fixed
Reviewed-By: Nitin
2012-02-03 18:01:30 +05:30
kishan fd182b806e Bug 13143: Use defaults for timezone when config is null or empty
Status 13143: resolved fixed
Reviewed-By: Nitin
2012-01-30 14:26:15 +05:30
kishan 52f940c007 bug 11961: Before creating template usage_storage records, check if entry already exists. In multiple secondary storage case, duplicate usage events will be ignored.
status 11961: resolved fixed
reviewed-by: Nitin
2011-11-11 13:45:19 +05:30
kishan 18ef8ca3b4 bug 11173: Added usage for VPN users
status 11173: resolved fixed
2011-11-01 17:01:48 +05:30
kishan 284ee3909e bug 9842: Added task to update user stats agg bytes in sync with aggregation range
status 9842: resolved fixed
2011-10-31 17:15:36 +05:30
David Nalley 15302b03da restoring proper licensing notices originally committed in ad79436f2c304db27f5aee355527ffce18cf2590 but unintentionally reverted when trying to fix a few build issues 2011-09-14 16:35:29 -04:00
David Nalley 639f25c259 fixing usage build in amster 2011-09-14 15:29:48 -04:00
David Nalley 62157f2550 updating usage per convo with kishan and frank 2011-09-13 14:23:18 -04:00
kishan 1b44c0c8f5 bug 11199: Added indexes to tables in cloud_usage DB in create-schema-premium.sql
status 11199: resolved fixed
2011-09-13 17:57:21 +05:30
David Nalley 81c376dd5b updating copyright licenses, including build-usage.xml 2011-08-31 16:22:51 -04:00
David Nalley ee81905814 merging usage 2011-08-31 13:36:41 -04:00