Alex Huang
f27692aa7a
Removed a useless class?
2013-01-21 10:25:58 -08:00
Hugo Trippaers
04d93ef0aa
Use the user.home property instead of a bash thing. See
...
http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html
2013-01-21 11:56:53 +01:00
Kelven Yang
2c5859dbd4
Bring javelin back to the status of being able to start System VMs after another round of master branch merge
2013-01-18 19:15:32 -08:00
Rohit Yadav
64f13e1cd8
DatabaseCreator: Fast forward merge due to recent pull in merge of master
2013-01-18 18:16:04 -08:00
Rohit Yadav
03a3837d92
DatabaseCreator: Make it reinit db, add flags, opts, run scripts and upgrade checkers
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-18 18:09:04 -08:00
Alex Huang
fe6f0457d5
fixed unit tests from merge
2013-01-18 15:58:55 -08:00
Min Chen
2955d58976
Fix "Count" for listSnapshotPoliciesCmd.
2013-01-18 13:55:11 -08:00
Alex Huang
10d9c019a9
All merge conflicts resolved
2013-01-18 12:14:57 -08:00
Min Chen
5a865462e9
Merge branch 'api_limit'
2013-01-18 09:43:54 -08:00
Chiradeep Vittal
ce4b49d30b
network-refactor merge: fix nonoss build
...
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
2013-01-18 09:38:49 -08:00
Koushik Das
e45a9f3aed
CLOUDSTACK-803: HA gets triggered even when the host investigator is unable to determine the state of the host HA won't be triggered in case the host investigator is not able to determine the state
...
Signed-off-by: Koushik Das <koushik.das@citrix.com>
Signed-off-by: Abhinandan Prateek <aprateek@apache.org>
2013-01-18 17:20:51 +05:30
Koushik Das
070856affd
CLOUDSTACK-988: HV version must be updated in hypervisor_version column of host table HV version is stored in hypervisor_version column in host table wherever present Also correctly populating version column in host table with resource file version
...
Signed-off-by: Koushik Das <koushik.das@citrix.com>
Signed-off-by: Abhinandan Prateek <aprateek@apache.org>
2013-01-18 16:49:52 +05:30
Kishan Kavala
51c1ca7cbe
CLOUDSTACK-1010: Fix count issue for listHosts command
2013-01-18 16:13:25 +05:30
Min Chen
2fd1d476b4
Merge branch 'master' into api_limit
2013-01-17 21:23:50 -08:00
Kelven Yang
e5507c3892
Deprecate 2.1.x migration DAOs, it breaks EntityManager's singleton assumption
2013-01-17 18:55:14 -08:00
Rohit Yadav
b45cdef5d9
DatabaseCreator: Process db props, sql and upgrade classes separately
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-17 18:25:27 -08:00
Kelven Yang
17a94b20ec
Always use premium setting in ConsoleProxyManager
2013-01-17 18:23:06 -08:00
Rohit Yadav
b120e19280
ApiDispatcher: In case of incorrect long int value or uuid, throw error
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-17 17:59:53 -08:00
Koushik Das
cd37e22f9b
CLOUDSTACK-810: Make DirectAgent thread pool size configurable Removed hard-coding of directagent thread pool size and now reading it from configuration
...
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
2013-01-17 17:21:52 -08:00
Rohit Yadav
f264571e92
ApiServer: Fix default reponse type for apiserver on intergration port to xml
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-17 17:03:27 -08:00
Chiradeep Vittal
2d19f3b052
network-refactor: merge stomped on a logical not'
2013-01-17 16:59:48 -08:00
Rohit Yadav
ef07cde449
DBCreator: Fix ScriptRunner to strip comments, reformat code
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-17 16:10:07 -08:00
Kelven Yang
6d155416c2
System VM can start now with Spring bootstraped management server
2013-01-17 14:22:14 -08:00
Chiradeep Vittal
56cd809600
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-cloudstack
...
Re-merge with network-refactor
2013-01-17 11:32:49 -08:00
Min Chen
c1a540c6bb
Merge branch 'master' into api_limit
...
Conflicts:
api/src/org/apache/cloudstack/api/BaseCmd.java
server/src/com/cloud/api/ApiServer.java
server/src/com/cloud/api/ApiServlet.java
Signed-off-by: Min Chen <min.chen@citrix.com>
2013-01-16 22:48:22 -08:00
Min Chen
3dabd5fbf3
Clean up ApiServer, ApiServlet and ApiDispatcher flow to handle various CloudRuntimeException
...
and CloudException in one place, and Introduced ApiErrorCode to handle CloudStack API error
code to standard Http code mapping.
Signed-off-by: Min Chen <min.chen@citrix.com>
2013-01-16 22:36:34 -08:00
Min Chen
bdcfa1919b
Clean up ApiServer, ApiServlet and ApiDispatcher in handling various
...
exceptions, and Introduced ApiErrorCode to handle CloudStack API error
code to standard Http code mapping.
2013-01-16 21:52:48 -08:00
Chiradeep Vittal
d9e36ac37b
network-refactor: fix license issues
...
Fix build after merge of network-refactor
2013-01-16 19:25:23 -08:00
Prachi Damle
4d4fb9c959
https://issues.apache.org/jira/browse/CLOUDSTACK-993
...
Changes:
- Introduction of maven skipped the java code that inserts the admin user. This causes the NPE in management server while trying to find the user and also, admin user cannot login as expected.
- Fixing the insertion of the admin user as part of startup.
2013-01-16 19:18:59 -08:00
Chiradeep Vittal
cadca5fc0c
Merge branch 'master' into network-refactor-merge2
...
Conflicts:
api/src/com/cloud/network/NetworkService.java
api/src/com/cloud/network/element/RemoteAccessVPNServiceProvider.java
plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
server/src/com/cloud/acl/DomainChecker.java
server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java
server/src/com/cloud/network/NetworkManager.java
server/src/com/cloud/network/NetworkManagerImpl.java
server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
server/src/com/cloud/vm/UserVmManagerImpl.java
server/test/com/cloud/network/MockNetworkManagerImpl.java
server/test/com/cloud/vpc/MockNetworkManagerImpl.java
2013-01-16 19:17:14 -08:00
Kelven Yang
497dcd5044
Get rid of PlugService annotation, replace it with Spring standard injection in command classes
2013-01-16 18:44:44 -08:00
Prachi Damle
c08d151e05
https://issues.apache.org/jira/browse/CLOUDSTACK-993
...
Changes:
- Introduction of maven skipped the java code that inserts the admin user. This causes the NPE in management server while trying to find the user and also, admin user cannot login as expected.
- Fixing the insertion of the admin user as part of startup.
2013-01-16 17:18:11 -08:00
Marcus Sorensen
975021dda1
Summary: adding resizeVolume api call
...
Detail: This merges the resizevolume feature branch, which provides the
ability to migrate a disk between disk offerings, thereby changing its
size, or specifying a new size if current disk offering is custom.
BUG-ID: CLOUDSTACK-644
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1358358209 -0700
2013-01-16 17:43:35 -07:00
Kelven Yang
2be270de89
Separate loadable components like Gurus, Elements, Adapters to componentContext.xml
2013-01-16 16:33:59 -08:00
Kelven Yang
727fab71cb
Disable StorageProvider, storageType introduced in Javelin new code, temporarily, to make existing code run
2013-01-16 14:16:01 -08:00
Kelven Yang
4c1257bf18
Handle proxy object situation in dispatching API command
2013-01-16 11:28:09 -08:00
Min Chen
e83fe471c7
Merge branch 'master' into api_limit
2013-01-16 10:49:25 -08:00
Murali Reddy
4b67340d8c
Revert "Summary: partical check-in for L4-L7 network services in the
...
shared"
This reverts commits 0de5a145e4 ,
28bbf6c527
Reverting due to IP clearance issues for the commits done as part of CLOUDSTACK-312
2013-01-16 16:43:37 +05:30
Murali Reddy
316c5267cc
Revert " Summary: check-in for L4-L7 network services in the shared network in"
...
This reverts commit 7fcfcdf91e .
Reverting due to IP clearance issued for the commit done as part of CLOUDSTACK-312
2013-01-16 16:04:14 +05:30
Murali Reddy
156ed7a336
Revert "Summary: partical check-in for L4-L7 network services in the shared"
...
Reverting due to IP clearance issued for the commit done as part of
CLOUDSTACK-312
This reverts commit d4c604cfd8 .
2013-01-16 15:58:44 +05:30
Murali Reddy
c7840cf91f
reverting the earlier commit 432ea9c7d4
...
done for bug CLOUDSTACK-265 due to IP clearence issues.
2013-01-16 15:10:27 +05:30
Min Chen
97cb16944f
Merge branch 'master' into api_limit
2013-01-15 18:18:34 -08:00
Kelven Yang
df684261cf
Put command classes under Spring injection framework
2013-01-15 18:07:19 -08:00
Min Chen
8608925216
Consolidate RuntimeCloudException and CloudRuntimeException into one
...
class CloudRuntimeException, and removed RuntimeCloudException to avoid
confusion.
2013-01-15 18:07:08 -08:00
Min Chen
4355d06a86
Reuse APIChecker adapter interface for APi Rate limit checking and optimize ApiRateLimitService interface.
...
Signed-off-by: Min Chen <min.chen@citrix.com>
2013-01-15 15:53:19 -08:00
Sheng Yang
4f889bd426
CLOUDSTACK-985: Make sure RvR would always have same MAC address
...
Even with newly created RvR using "restartNetwork&cleanup=false" API.
2013-01-15 15:22:41 -08:00
Sheng Yang
c32dbec468
CLOUDSTACK-985: Revert "Using different MAC for a pair of redundant routers"
...
The different MAC address for a pair of redundant router have issues when short
time network outrage happened. When this happened:
1. BACKUP(r-2) cannot receive the broadcast from MASTER(r-1).
2. Then r-2 would announce it's MASTER after 3 seconds, and send gratuitous ARP
to the gateway of public ip(usually a rack router).
3. The gateway of public ip would update it's ARP cache to associate the public
ip of the network to the MAC of r-2.
4. In the meantime, r-1 still sending out VRRP broadcast(due to network issue,
the broadcast never arrived at r-2), and acting as MASTER.
5. After network outrage, r-2 would receive the higher priority VRRP broadcast
from MASTER again, then receded as BACKUP.
6. But the public gateway would still associate public ip with MAC of r-2, thus
caused the issue. r-1 would no longer able to receive any packets from public
network.
And there is no way for r-1 to send gratuitous ARP again, because it's always
consider itself as MASTER, no state changed, and no hook existed for receiving
lower priority broadcast.
So I would revert this change, and introduce another commit to ensure the newly
create redundant router would share the same MAC as the first one.
This reverts commit 9f257aa60b .
2013-01-15 15:02:21 -08:00
Marcus Sorensen
47251b51a7
Summary: Allow ssh keypairs to be created if developer flag set and user ! cloud
...
Detail: Previously in the code we allowed the configuration to create ssh
keypairs and put them in the configuration table so that systemvms could have
ssh key auth and work properly if the user was 'cloud' or if the developer
configuration item was set to true. It got changed to requiring both the cloud
user and the developer flag (using an || on a negative) somwhere along the way.
This changes it back to && on a negative to allow us to run as non-cloud users
with the dev flag set, and for cloud to deploy properly without the developer
flag.
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1358285190 -0700
2013-01-15 14:53:28 -07:00
Kelven Yang
af67d87662
Fix issues with @DB support in Spring environment
2013-01-15 12:35:03 -08:00
Min Chen
7f1486e2dc
We need to catch PermissionDeniedException in checking if command is
...
available to an user.
2013-01-15 11:43:59 -08:00
anthony
a6b9027630
default Security rule doesn't apply to system VMs since nic.getIsolationUri is not set
...
use to.setSecurityGroupEnabled to indicate if securitygroup is enabled on this NIC
CLOUDSTACK-983: default Security rule doesn't apply to system VMs
2013-01-15 11:15:42 -08:00
anthony
101f64410a
Do not allow add multiple VLANs or subnets into shared network
...
CS allows to add multiple VLANs and subnets to a shared network, but it doesn't really work, for example , vm on second VLAN or subnet cannot get IP through DHCP
This patch will not allow to add mulitple VLANS or subnets into shared network
CLOUDSTACK-982:Do not allow add multiple VLANs or subnets into shared network
2013-01-15 09:17:12 -08:00
Wido den Hollander
510450b11b
Remove duplicate systemUse clausule when fetching service offerings.
...
A couple of lines back there is:
if (isSystem != null) {
sc.addAnd("systemUse", SearchCriteria.Op.EQ, isSystem);
}
So it was set redundantly, this can be removed.
2013-01-15 12:14:57 +01:00
Rohit Yadav
bca2c928e8
PluggableService: Fix interface definition
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-14 19:01:26 -08:00
Rohit Yadav
8f27c711e5
ApiServer: Process through chain of api access checker, on failure it will throw exception
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-14 19:01:26 -08:00
anthony
3aba867e16
only basic network is pod based.
...
it has nothing to do with shared SG enabled netwokr
2013-01-14 18:29:09 -08:00
Kelven Yang
f304df44df
Add ActionEventIntercepter to implement origianl ActionEventCallback in Spring AOP
2013-01-14 17:44:31 -08:00
Min Chen
4d0c850dc8
Fix plugin component configuration.
2013-01-14 17:13:18 -08:00
Rohit Yadav
896e505da6
APIChecker: Make interface generic, pass user and not just role
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-14 15:08:45 -08:00
Kelven Yang
96bd1d4172
Forget to save changed file in last commit
2013-01-14 14:10:47 -08:00
Kelven Yang
6dfbcee63d
Fix singleton initialization in ApiServer/ApiDispatcher to make it work under Spring bootstraped environment
2013-01-14 13:57:30 -08:00
Kelven Yang
64c947a9f8
Re-fix startup of management server
2013-01-14 10:52:37 -08:00
Rohit Yadav
38eaa04b98
Pull changes from master into javelin
...
- Disables simulator plugin, breaks build, available via simulator profile
- Fixes spring injections
- Fix api,acl plugins, ApiServer, ApiDispatcher
- Fix other merge conflicts
Conflicts:
docs/en-US/external-firewalls-and-load-balancers.xml
plugins/acl/static-role-based/src/org/apache/cloudstack/acl/StaticRoleBasedAPIAccessChecker.java
server/src/com/cloud/api/ApiDispatcher.java
server/src/com/cloud/api/ApiServer.java
server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
utils/test/com/cloud/utils/log/CglibThrowableRendererTest.java
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-12 06:02:54 -08:00
Rohit Yadav
ad063ed610
StaticRoleBasedAPIAccessChecker: Throw exception on failed check
...
Plugin should not be responsible for existence of checking an API, this was wrong.
Throw exception boldly when checkAccess fails.
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-11 19:24:11 -08:00
Rohit Yadav
0dca44efe8
ApiServer: Debug messages, don't spam with info, remove identity helper in ResponseGenerator
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-11 18:44:20 -08:00
Rohit Yadav
83e7214b02
ConsoleProxyManagerImpl: Get rid of IdentityDao
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-11 18:44:20 -08:00
Rohit Yadav
8eba0ee0bb
ApiDispatcher: Remove helper method that proxies via ApiResponseHelper to get entity by IdentityDao
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-11 18:44:20 -08:00
Rohit Yadav
8cdb40a416
NetworkManagerImpl: Add method to getNetwork by uuid
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-11 18:44:19 -08:00
Rohit Yadav
24687973a8
ApiServer: Get rid of IdentityDao, reuse domain manager to get domain id
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-11 18:44:19 -08:00
Rohit Yadav
31dd412626
DomainService: Fix getDomain by uuid string
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-11 18:44:19 -08:00
Kelven Yang
6fb1a1e6f1
Fix issues after another round of merge
2013-01-11 16:54:32 -08:00
Min Chen
57e67c57d7
Merge branch 'master' into api_limit
...
Conflicts:
server/src/com/cloud/api/ApiServer.java
Signed-off-by: Min Chen <min.chen@citrix.com>
2013-01-11 15:50:21 -08:00
Kelven Yang
f57dcaa820
Loadable components to be in separted Spring component bundling
2013-01-11 15:33:15 -08:00
Kelven Yang
53da542001
Another round of fixes after merge
2013-01-11 15:21:04 -08:00
Rohit Yadav
74bb043c37
APIChecker: Rename refactor and add interface checkExistence
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-10 18:51:30 -08:00
Alex Huang
757e1a931b
cleanup warnings in utils
2013-01-10 17:19:30 -08:00
Rohit Yadav
e63e352508
ApiServer: Log a better message if api access fails and debug it
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-10 16:08:16 -08:00
Alex Huang
1294cdc701
pulled from master
2013-01-10 16:01:01 -08:00
Alex Huang
d6f44a4d6a
merged from master
2013-01-10 15:55:42 -08:00
Rohit Yadav
8f26e171e6
ManagementServerImpl: Fix missing import of PropertiesUtil
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-10 15:55:02 -08:00
Rohit Yadav
c4e890c55d
PluggableService: Refactor method to return map of key value pairs
...
- Makes plugins self contained so they decide their properties file format
- PluggableService creates the contract that implementing entity will return a
properties map which is apiname:rolemask (both are strings)
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-10 15:55:02 -08:00
Rohit Yadav
a56f355ceb
ApiServer: get role type from account manager using account
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-10 15:55:01 -08:00
Rohit Yadav
1425736c19
AccountManager: Add method to translate account type to role type
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-10 15:55:01 -08:00
Alex Huang
fac2270240
more files changed
2013-01-10 15:29:14 -08:00
Alex Huang
f922c6fc03
Keep removing
2013-01-10 14:46:52 -08:00
Rohit Yadav
62a42723f9
APIAccessChecker: Make it check based on role type and not user
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-10 11:49:15 -08:00
Alex Huang
56e5fbdee2
removed import of componentlocator and inject from all files
2013-01-10 11:44:47 -08:00
Alex Huang
395de6f2b3
merge from latest pull
2013-01-10 11:07:11 -08:00
Alex Huang
f40e7b7511
removed componentlocator and inject
2013-01-10 11:05:20 -08:00
Min Chen
0b69d9449a
Merge branch 'master' into api_limit
2013-01-10 09:51:41 -08:00
Kishan Kavala
cd7f771615
CLOUDSTACK-721: Fixed network usage. Send network usage command for isolated guest nic of non VPC VR. Send network usage command for public nic in VPC VR.
2013-01-10 14:56:11 +05:30
Chiradeep Vittal
1776659fe7
Network-refactor: move validateRule to LB manager since it now has access to LB elements.
...
NetworkServiceImpl does not need a cache of system network offerings
Ensure mocks build to new APIs.
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
2013-01-09 18:36:29 -08:00
Chiradeep Vittal
745fae93f6
Network-refactor: some clean up of the NetworkService interface
...
- remove unused public apis
- remove unused members
- change visibility of methods to protected if they do not implement a method in the interface
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
2013-01-09 18:36:23 -08:00
Min Chen
7f8262d45e
Remove IdentityProxy and IdentityTypeAdapter class.
...
Signed-off-by: Min Chen <min.chen@citrix.com>
2013-01-09 17:40:58 -08:00
Kelven Yang
0bcebd33b6
Fix problems after merge
2013-01-09 17:36:53 -08:00
Rohit Yadav
657fb6ac0b
ApiServer: Don't depend on plugin for apiname:cmd class mapping
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-09 17:20:46 -08:00
Rohit Yadav
72693ea382
server: Fix ApiServer init method, we won't use cfg files and it's not used there
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-09 17:20:46 -08:00
Min Chen
8d98daa1be
Add API throttling config items and APILimitChecker Adapter interface,
...
add api limit checking in APIServer flow.
2013-01-09 16:11:23 -08:00
Chiradeep Vittal
728db6c8ca
Network-refactor: fix bugs in components.xml discovered by unit tests
...
Provide injection tests for NetworkManager and FirewallManager
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
2013-01-09 15:49:02 -08:00
Chiradeep Vittal
1339650c2c
Network-refactor: remove unused members. Makes testing of injection a PIA.
...
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
2013-01-09 15:49:02 -08:00
Chiradeep Vittal
88df984ff3
Network-refactor: add a method for plugins to get the source nat ip
...
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
2013-01-09 15:49:02 -08:00
Chiradeep Vittal
a34ce77b77
Network-refactor: verify that s2s provider gets injected as expected
...
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
2013-01-09 15:49:01 -08:00
Chiradeep Vittal
0c3001530f
Network-refactor: move readonly interface NetworkModel into api project so that plugins can stop depending on the server project
...
Network-refactor: accidentally injected NetworkModel twice (revert one of them)
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
2013-01-09 15:49:01 -08:00
Chiradeep Vittal
504264236c
Network-refactor: In preparation for moving the read-only interface NetworkModel
...
to the api project, ensure that all methods use interfaces from the api project.
By moving it to the api project, it lessens the dependency of plugins on the server components.
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
2013-01-09 15:49:01 -08:00
Chiradeep Vittal
6b6d8c5710
Network-refactor: Move code from NetworkManager to NetworkModel.
...
NetworkModel is intended as a read-only view on the network model.
This includes Networks, Nics, Ip address, PhysicalNetwork, NetworkOfferings, etc
The code in configure() and start() is used to support queries on the network model which is now the responsibility of the NetworkModel service
Network-refactor: Fix tests so that they get injected with the required NetworkModel mock
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
2013-01-09 15:49:01 -08:00
Chiradeep Vittal
5a830c4db0
Network-refactor: Refactor NetworkManager into NetworkModel and NetworkManager.
...
NetworkManager's exclusive focus is now
- handling plugins during orchestration, and
- to deal with ip address allocation.
Those classes that used to refer to NetworkManager to get access to the datamodel now refer to NetworkModel
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
2013-01-09 15:49:01 -08:00
Kelven Yang
cf5d935d81
Seperate configurable components out and let them be loaded from Spring configuration file
2013-01-09 14:39:16 -08:00
Min Chen
9924b64830
commit 3a3cb60e85c0254ebceff55d0b210ca1ff5386a6
...
Author: Likitha Shetty <likitha.shetty@citrix.com>
Date: Wed Jan 9 11:54:25 2013 +0530
CLOUDSTACK-614: ListTemplates API is not returning "Enable SSH Key" attribute for any given template. Update the TemplateResponse by adding 'sshkeyenabled' attribute to it. This attribute is set to the value that the user passes as input for parameter 'sshkeyenabled' while registering the template.
Signed-off-by: Min Chen <min.chen@citrix.com>
2013-01-09 10:42:44 -08:00
Alex Huang
b6c56736e5
merge from master
2013-01-09 05:20:36 -08:00
Alex Huang
0bcb64605f
all built with the latest
2013-01-09 05:02:39 -08:00
Rohit Yadav
0b0752f047
CLOUDSTACK-932: Fix incorrect param that caused casting error while processing api
...
Reported-by: Kishan Kavala <kishan.kavala@citrix.com>
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-09 04:47:53 -08:00
Alex Huang
14bd345f1f
merge compiles
2013-01-09 04:41:27 -08:00
Rohit Yadav
fc92f04c6b
ApiDispatcher: Remove unused methods which were for acl processing
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-09 04:18:35 -08:00
Rohit Yadav
765504c070
ApiServer: Fix apidiscovery fail case, fix comment
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-09 04:18:35 -08:00
Rohit Yadav
2c04dad529
ApiDiscovery: New plugin to help discover apis on mgmt server
...
- Introduces api/discovery plugin that helps discover apis on the mgmt server
- It's a pluggable service, therefore has it's own api-discovery_commands.properties
where the discovery api, listApi can be blacklisted (by removing it), or it's
role mask can be changed
- By default its response has all the apis
- Changes in other parts of the code to make it work, viz. components.xml, pom.xml,
and in ApiServer where it is used as an adapter to get apiname, cmd mappings
The ApiDiscoveryService interface is a contract that the implementing class will
provide:
1. A means to get all the apis as a list of response, plugin is free to implement
the response class, as long as it extends on the BaseResponse:
ListResponse<? extends BaseResponse> listApis();
2. Provides a map of apiname as the key and cmd class as the value:
Map<String, Class<?>> getApiNameCmdClassMapping();
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-08 18:54:29 -08:00
Rohit Yadav
d760271945
ApiDispatcher: Get rid of reflections, reuse utils' ReflectUtil
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-08 18:54:29 -08:00
Rohit Yadav
539d94b4a6
ApiXmlDocWriter: Reuse methods from ReflectUtil
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-08 18:54:29 -08:00
Kelven Yang
cc23a23324
Fix startup sequence for classes that have due Manager/Adapter interfaces
2013-01-08 18:42:12 -08:00
Kelven Yang
b274c570f9
Cleanup places that use explicit wiring of the components
2013-01-08 17:45:33 -08:00
Min Chen
d22229eb9d
Remove updateUuids code in ConfigurationServerImpl (which is not the
...
right approach to populate uuid column since it will impact upgrade as
well), and populate UUID column in seed data sql script.
Signed-off-by: Min Chen <min.chen@citrix.com>
2013-01-08 17:12:14 -08:00
Alex Huang
7f3a748d6c
Merge branch 'javelin' of https://git-wip-us.apache.org/repos/asf/incubator-cloudstack into javelin
2013-01-08 14:46:38 -08:00
Kelven Yang
32e67f60d4
Work with Spring proxy-ed object
2013-01-08 14:24:19 -08:00
Alex Huang
30f2565d98
Merge branch 'api_refactoring' into javelin
2013-01-08 12:36:04 -08:00
Min Chen
74c15a22a0
Create DB view for ListStoragePools API performance optimization.
...
Signed-off-by: Min Chen <min.chen@citrix.com>
2013-01-08 12:33:18 -08:00
Prachi Damle
a4f4c98670
OrchestrationService: some changes for DeployVM
2013-01-08 11:53:54 -08:00
Kelven Yang
992fa473be
convert existing singleton objects into Spring loadable bean components
2013-01-08 11:07:22 -08:00
Kelven Yang
b96bb8feb9
Hook log4j to Spring bootstrapped Javelin server
2013-01-07 18:21:58 -08:00
Min Chen
0894822651
DB view dao cleanup, and introduce global configuration parameter for
...
entity detail batch query size to remove hard-coded
VM_DETAILS_BATCH_SIZE.
Signed-off-by: Min Chen <min.chen@citrix.com>
2013-01-07 16:40:31 -08:00
Kelven Yang
559933f062
First page of Javelin management server bootstraped by Spring is able to show now
2013-01-07 15:54:18 -08:00
Chiradeep Vittal
af1abe4056
Forgot some element adapters + dont add JuniperSRX by default
2013-01-07 15:21:57 -08:00
Chiradeep Vittal
c876f02c6f
Clean up some unused imports
2013-01-07 15:21:36 -08:00
Chiradeep Vittal
cf90685985
Remove old applyRules implementation
2013-01-07 14:26:09 -08:00
Chiradeep Vittal
f4da21998c
WIP : extract NetworkService
...
WIP : move stuff between network manager and network service.
at this point there is about 700 lines of duplicated code
WIP: Leave creation of default offerings to NetworkManager init
WIP: clean up imports
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
2013-01-07 14:25:03 -08:00
Rohit Yadav
a948a89378
Sync updates: Merge branch 'master' into api_refactoring
...
Conflicts:
server/src/com/cloud/api/commands/AddTrafficMonitorCmd.java
server/src/com/cloud/api/commands/ListTrafficMonitorsCmd.java
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-07 10:38:43 -08:00
Min Chen
13de3ca253
Enable default sorting for listVirtualMachines and listRouters to keep
...
back compatible.
2013-01-07 10:26:33 -08:00
Koushik Das
3ffbc4320a
CLOUDSTACK-595 : Recreate root volume scenarios doesn't work in vmware
...
Issue seen during system vm template upgrade and restoreVM command
scenarios for vmware. In these cases CS tries to recreate root disk with
same name as the existing one, in case of vmware this results in creation
of vmdk file with same name for both existing and new root volume.
This results in undesired behavior when storage cleanup thread tries to
cleanup old volume. Made the vmdk file name unique by adding the volume
id to it. This will ensure that during volume recreation in the scenarios
mentioned vmdk will get created with a new name and there will be
no undesired side effects of running the storage cleanup thread.
2013-01-07 16:18:05 +05:30
Kishan Kavala
5502f4b20c
Corrected response object in Traffic Monitor APIs Implementation annontation as TrafficMonitorResponse
2013-01-07 12:32:24 +05:30
Rohit Yadav
39b829bffe
api: ACL annotation and checkAccess removal refactor for StopVMCmd
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-06 17:19:49 -08:00
Rohit Yadav
96b9164e4b
Fix ACL processor and methods in ApiDispatcher and their usages
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-06 17:18:45 -08:00
Rohit Yadav
19cf665094
ApiServer: Fix debug output for role based user access checking
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-06 16:51:14 -08:00
Rohit Yadav
ed0637b8c2
api: Refactor move acl to org.apache.cloudstack
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-06 15:30:58 -08:00
Rohit Yadav
6f6ed85839
ApiXmlDocWriter: Fix apidocs generation based on new commands.properties syntax
...
Makes it backward compatible to old syntax as well
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-06 15:01:09 -08:00
Rohit Yadav
e17e68f0af
server: Fix base template*cmd class imports and names
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-06 14:47:00 -08:00
Rohit Yadav
b720675bfe
Merge branch 'master' into api_refactoring
...
Getting ready for merge request for master, sync changes
Conflicts:
client/tomcatconf/commands.properties.in
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-06 01:11:16 -08:00
Sheng Yang
aa9701a10c
CLOUDSTACK-799: Redundant router: Speed up RvR status update
...
The basic idea behind this is, deploy a fix sized threadpool for updating RvR
status, then using producer/consumer model. There is a global configuration
router.check.poolsize(10 by default) to control the pool size.
Using pool size 100 for 1000 RvR is tested with simulator and works well.
Also we can adjust the global configuration option router.check.interval to e.g.
60s from default 30s to mitigate the issue.
2013-01-05 21:02:37 -08:00
Rohit Yadav
21d6cd304b
server: Reformat DomainChecker
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-05 17:00:13 -08:00
Rohit Yadav
6a112bd64c
api: Rename Validator to Validate, cosmetic fixes
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-05 16:52:53 -08:00
Rohit Yadav
b00ed17f4b
server: Cosmetic fix for methodname in ApiDispatcher
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-05 16:40:59 -08:00
Rohit Yadav
63481ecb34
CLOUDSTACK-212: Move api response classes to cloud-api under org.apache.cloudstack
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-05 16:27:36 -08:00
Rohit Yadav
73a0c3e07f
api: Refactor move storagepool apis to storage pkg
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-05 15:32:58 -08:00
Rohit Yadav
f07a98a740
api: Refactor and move s3 to api.command.admin.storage
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-05 15:30:38 -08:00
Rohit Yadav
5119785cf7
Get latest changes, merge branch 'master' into api_refactoring
...
Conflicts:
api/src/com/cloud/network/element/RemoteAccessVPNServiceProvider.java
server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java
server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
setup/db/db/schema-40to410.sql
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-04 22:21:20 -08:00
Chiradeep Vittal
a64b386714
Move applyRules to the rightful place(s). Not sure why applyIps is required during applyRules, so we still have a reference back into a (simplified) applyRules in NetworkManager
2013-01-04 19:22:53 -08:00
Sheng Yang
42c8c73ab6
CLOUDSTACK-306: Introducing IpDeployingRequester and implement inline mode
...
For LB device in inline mode, the ip deployer(the owner of public ip) is the
firewall in front of it, not itself. So check if it's inline or not, if it's
inline, return the firewall as ip deployer
2013-01-04 19:18:03 -08:00
Sheng Yang
177e157cbf
CLOUDSTACK-306: Move inline mode parameter from device to network offering
...
One F5 device can be used as inline and side-by-side at the same time(for
different networks). So we can define inline or not on network base.
2013-01-04 19:17:58 -08:00
Sheng Yang
717f9dcd4d
CLOUDSTACK-306: Implement SRX firewall
...
Use SRX firewall filter as SRX firewall. The old security policy mechanism
cannot be used as IP based. This would enable SRX's ability to control traffic
for F5 behind it.
2013-01-04 19:17:50 -08:00
Rohit Yadav
0659c21f2d
Get latest changes, Merge branch 'master' into api_refactoring
2013-01-04 17:22:57 -08:00
Rohit Yadav
65a1284e83
srx: Annotate api classes, remove IdentityMapper
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-04 17:00:10 -08:00
Rohit Yadav
4dd5f14e76
f5: Annotate f5 cmd classes, remove IdentityMapper
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-04 16:49:27 -08:00
Chiradeep Vittal
e37f458a8d
Rationalize the interface by injecting all service providers by the service provider interface instead of assuming everybody implements NetworkElement. This is step 2 and includes all the plugins
...
import cleanups - remove unneeded and add explicit classes
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
2013-01-04 15:13:47 -08:00
Chiradeep Vittal
3529c47248
Rationalize the interface by injecting ipDeployers. This is step 1 and includes 2 service providers - Remote AccessVPN and S2S VPN
...
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
2013-01-04 15:08:55 -08:00
Rohit Yadav
0428b30a5a
Fix reflections cmd class loading in ApiServer
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-04 14:35:05 -08:00
Kelven Yang
2e9c55f8f6
More Spring issues to bootstrape javalin server
2013-01-04 14:25:12 -08:00
Chiradeep Vittal
b0a1a47d48
Not all network service providers need to be NetworkElements. NetworkElements are only those that are interested in L2 events. Since only NetworkElements were injected, and only in NetworkManagerImpl, this has led to all kinds of contortions. As a first step, enable individual service providers to be injected.
...
Signed-off-by: Chiradeep Vittal <chiradeep@apache.org>
2013-01-04 12:14:49 -08:00
Wido den Hollander
7240204a50
Pass on the destination host in StartCommand
...
I added this in commit bc94948e06 to be able to bind
the VNC on KVM on the Private IP Address of the Hypervisor.
This got (accidentally) reverted in commit 110903a91a breaking
this behaviour with KVM.
By passing the destination host again in StartCommand we are able to bind the VNC to the private
IP address of the hypervisor.
This makes sure the VNC is not open for the world and users don't have to firewall these ports, nor
do they have to change "vnc_listen" in their qemu.conf libvirt settings.
2013-01-04 14:37:23 +01:00
Rohit Yadav
6929bd9473
server: Don't silently ignore uuid param translation for required param in case they fail
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-03 22:32:47 -08:00
Rohit Yadav
98d5719b57
server: Make ApiDispatcher backward compatible to not throw error on incorrect params
...
Incorrect params are silently ignored in 4.0 and before. The fix would log the error
in debug log, but will continue processing. In case of an issue with uuid or param
an empty response is sent, for ex. in case of deleted entities as well.
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-03 22:32:46 -08:00
Min Chen
daeb4abcca
Create DB views for AsyncJobResponse to speed up listAsyncJobsCmd.
...
Signed-off-by: Min Chen <min.chen@citrix.com>
2013-01-03 15:35:26 -08:00
Min Chen
ff8fdbd194
Add missing @Id annotation to id fields for all the join VOs to support
...
findById call.
2013-01-03 14:12:15 -08:00
Kelven Yang
01701b1d9c
Missing two files in last check-in
2013-01-03 14:11:16 -08:00
Kelven Yang
25d14418b9
Replace Adapters<T> with standard List<T> to work with Spring injection
2013-01-03 13:33:52 -08:00
Rohit Yadav
edb00bb613
Merge branch 'master' into api_refactoring
2013-01-03 08:32:56 -08:00
Hugo Trippaers
cc3d692ab8
Summary: Remove useless and commented code
2013-01-03 11:57:37 +01:00
Rohit Yadav
580bf857ff
server: ApiServer inits with processing cmd classes to fill apiname:class mapping
...
- Add maven dependency reflections (wtfl license, apl compliant)
- Use reflections to recurse and get apiname:class mapping
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-02 18:43:59 -08:00
Rohit Yadav
65e4f00a10
Annotate api name on usage related apis
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-02 18:43:58 -08:00
Min Chen
ebfb90e217
Create DB view for Account to speed up ListAccountsCmd, and add missing async job information for some response objects.
...
Signed-off-by: Min Chen <min.chen@citrix.com>
2013-01-02 17:38:58 -08:00
Rohit Yadav
bc8e0af0a3
plugin: ACL Static Role Based api access checker
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-02 17:06:19 -08:00
Rohit Yadav
d235859168
Fix PluggableService to provide interface for ACL adapters etc. to get configs
...
- Fix interface to return array of strings, or filenames
- Fix StaticRoleBased ACL adapter to process config files by going through all pluggable services
- Refactor interface names
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-02 16:29:39 -08:00
Rohit Yadav
d8d87adc22
Merge branch 'master' into api_refactoring
...
Conflicts:
api/src/com/cloud/api/commands/ListS3sCmd.java
server/src/com/cloud/configuration/ConfigurationManagerImpl.java
setup/db/db/schema-40to410.sql
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-02 13:57:55 -08:00
Kelven Yang
e2078ec6e4
Solve Spring loading issues with a few Dao and Manager components
2013-01-02 13:55:26 -08:00
John Burwell
e4583ced2e
S3-backed Secondary Storage
2013-01-02 10:28:47 -08:00
Alex Huang
e936c32a04
Fixed problems with inject checkin
2012-12-28 16:24:54 -08:00
Kelven Yang
259e6d5f74
Fix a few Spring bootstrap issues
2012-12-27 17:46:52 -08:00
Rohit Yadav
623e7389ef
api: Make APIServer backward compatible to accept both uuid and id for pre 3.x apis
...
- Allow both uuid and id in param for pre 3.x apis
- Enforce uuid as param for all >= 3.x apis
- Use regex to better match uuid param
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-27 15:24:17 -08:00
Prasanna Santhanam
840da55520
api: Entities will extend InternalIdentity and Identity
...
Entities correlated to the Identity and carry a uuid and those
correlated to InternalIdentity carry an id. Those entities that carry
both will correlated to Identity and InternalIdentity.
This refactors entities wherever possible to ensure the VO only
implements the first class entity.
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
2012-12-26 19:11:15 -08:00
Rohit Yadav
7a7fe583e0
Rename Implementation annotation to APICommand
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-26 15:55:34 -08:00
Rohit Yadav
a18464dbe5
Rename @Entity to @EntityReference used in Response classes
...
- Renames to @EntityReference as @Entity is too general and used in javax's pkg
- Remove redundant imports
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-26 15:34:35 -08:00
Rohit Yadav
057ac12d23
Enforce InternalIdentity interface on all VO classes that impls long getId()
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-26 15:09:44 -08:00
Min Chen
21c1623a03
Create DB view for Volume to speed up ListVolumesCmd.
...
Signed-off-by: Min Chen <min.chen@citrix.com>
2012-12-25 17:08:50 -08:00
Rohit Yadav
78d70d349b
Merge branch 'master' into api_refactoring
...
- Applies Isaac Chian'gs fix (CLOUDSTACK-648) to allow user change their password
- TODO: Fix response, only partially applied
Conflicts:
api/src/org/apache/cloudstack/api/response/UserResponse.java
client/tomcatconf/commands.properties.in
server/src/com/cloud/api/ApiResponseHelper.java
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-25 09:51:17 -08:00
Isaac Chiang
5aefd77f77
Fix for CloudStack-648
...
Signed-off-by: Gavin Lee <gavin.lxh@gmail.com>
2012-12-26 00:00:58 +08:00
Rohit Yadav
beb2fccf1c
api: Finally get rid of IdentityMapper annotation processing in ApiDispatcher
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-23 18:06:36 -08:00
Rohit Yadav
9d3ab8ded7
server: Get rid of db helpers that work with IdentityMapper
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-23 18:04:32 -08:00
Rohit Yadav
e849d70af1
api: Annotate some juniper-src apis
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-23 17:41:10 -08:00
Rohit Yadav
a4fed07a7e
api: Annotate usage related apis
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-23 17:33:30 -08:00
Rohit Yadav
a5dddb4a83
api: Extend or Implement InternalIdentity's getId method on a lot of VOs and Interfaces
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-23 16:52:35 -08:00
Rohit Yadav
296b49c2f8
Merge branch 'master' into test-merge-api
...
Conflicts:
api/src/com/cloud/agent/api/BackupSnapshotCommand.java
api/src/com/cloud/agent/api/storage/PrimaryStorageDownloadCommand.java
api/src/com/cloud/agent/api/to/PortForwardingRuleTO.java
api/src/com/cloud/network/NetworkService.java
api/src/com/cloud/resource/ResourceService.java
api/src/org/apache/cloudstack/api/ApiConstants.java
api/src/org/apache/cloudstack/api/ResponseGenerator.java
api/src/org/apache/cloudstack/api/response/SSHKeyPairResponse.java
client/tomcatconf/commands.properties.in
core/src/com/cloud/storage/SnapshotVO.java
pom.xml
server/src/com/cloud/api/ApiDispatcher.java
server/src/com/cloud/api/ApiResponseHelper.java
server/src/com/cloud/api/ApiServer.java
server/src/com/cloud/configuration/ConfigurationManagerImpl.java
server/src/com/cloud/network/NetworkManagerImpl.java
server/src/com/cloud/network/rules/RulesManagerImpl.java
server/src/com/cloud/offerings/NetworkOfferingVO.java
server/src/com/cloud/resource/ResourceManagerImpl.java
server/src/com/cloud/upgrade/dao/Upgrade40to41.java
server/src/com/cloud/vm/UserVmManagerImpl.java
server/test/com/cloud/vpc/MockNetworkManagerImpl.java
setup/db/create-schema.sql
setup/db/db/schema-40to410.sql
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-23 13:54:46 -08:00
Min Chen
503db14127
Add back Identity interface to most VO class to avoid cast error in
...
ApiDispatcher.setupParameter call.
2012-12-22 22:35:09 -08:00
Min Chen
e7fa1a86fb
Create DB views to improve ListHostsCmd performance.
...
Signed-off-by: Min Chen <min.chen@citrix.com>
2012-12-22 21:47:05 -08:00
Rohit Yadav
5d8e106602
api: Add method in ApiDispatcher to be reused for both UUID and List<Uuid>
...
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-22 18:57:26 -08:00