Commit Graph

15422 Commits

Author SHA1 Message Date
frank 997e9fb7b0 CloudStack CLOUDSTACK-723
Enhanced baremetal servers support on Cisco UCS
2013-01-28 16:29:54 -08:00
frank 301b0b9090 CloudStack CLOUDSTACK-723
Enhanced baremetal servers support on Cisco UCS

init
2013-01-25 15:00:09 -08:00
frank fb050894f5 CloudStack CLOUDSTACK-723
Enhanced baremetal servers support on Cisco UCS

able to dump xmlobject
2013-01-17 16:11:15 -08:00
frank 53473c07b9 CloudStack CLOUDSTACK-723
Enhanced baremetal servers support on Cisco UCS

introduce an python etree like xml helper.
Ok, this is not a new wheel. Frankly speaking, all Java XML API just suc**.
there are two popular types of XML API in java, one class is for data binding, JAXB,
XStream fall into this category. Another class is tree based, like JDOM, XOM ...

for XML api call, data binding library is painful as you have to specify the schema
that how xml stream converts to java object, which means you have to pre-define all
schemas(xsd file for JAXB, java object for XStream ...). This is not productive, because you
must add new schema when XML document grows.

Tree based library shines in this case, for it's able to dynamically create an object tree
from xml stream without any knowledge of its structure. However, all tree based
XML API library fall into below convention:

Element e = root.getChildElement("child1").getChildElement("child2").getChildElement("child3")...getChildElement("childN")

anything wrong with it???

the sadness is if there is no "child2", you will get a NPE with above code, which means you have to judge
before getting.

And, why so verbose?? why not:

Element e = root.child1.child2.child3...childN ???

Ok I am joking, it's impossible in Java the world knows Java is a static language.

but you can actually do:

Element e = root.get("child1.child2.child3");

or

List<Element> e = root.getAsList("child1.child2.child3")

this is known as XPath style(though XPATH use '/'), python etree has supported it.

so I did this toy for my UCS xml api call, it's quite like etree which is easy to use, for example:

<components.xml>
    <system-integrity-checker class="com.cloud.upgrade.DatabaseUpgradeChecker">
        <checker name="ManagementServerNode" class="com.cloud.cluster.ManagementServerNode"/>
        <checker name="EncryptionSecretKeyChecker" class="com.cloud.utils.crypt.EncryptionSecretKeyChecker"/>
        <checker name="DatabaseIntegrityChecker" class="com.cloud.upgrade.DatabaseIntegrityChecker"/>
        <checker name="DatabaseUpgradeChecker" class="com.cloud.upgrade.PremiumDatabaseUpgradeChecker"/>
    </system-integrity-checker>
</components.xml>

XmlObject xo = XmlObjectParser.parseFromFile("~/components.xml.in");
List<XmlObject> checkers = xo.getAsList("system-integrity-checker.checker");

then you get a list of XmlObject which represent each 'checker' element:

XmlObject firstChecker = checkers.get(0);
// firstChecker.get("name") == "ManagementServerNode"
// firstChecker.get("class") == "com.cloud.cluster.ManagementServerNode"
// firstChecker.getTag() == "checker"
// firstChecker.getText() == "" if it's <checker/>xxx</checker>, then getText() == "xxx"

example 2:
<checker name="ManagementServerNode" class="com.cloud.cluster.ManagementServerNode"/>
    <system-integrity-checker class="com.cloud.upgrade.DatabaseUpgradeChecker">
        <checker name="ManagementServerNode" class="com.cloud.cluster.ManagementServerNode"/>
    </system-integrity-checker>
</components.xml>

yout can do:

XmlObject xo = XmlObjectParser.parseFromFile("~/components.xml.in");
XmlObject checker = xo.get("system-integrity-checker.checker");

then it returns a single object as we only have one "checker" in xml stream,

or you still do

List<XmlObject> checkers = xo.getAsList("system-integrity-checker.checker");

it returns a list which only contains one element of "checker"

if you do:

XmlObject checker = xo.get("system-integrity-checker.checker.this_middle_element_doesnt_exist.some_element");

it returns a null without any exception, so you don't have to worry if a parent element is missing when getting a leaf element

again it's not a new wheel, I just hate JAVA xml api
2013-01-16 16:27:21 -08:00
Kelven Yang 339c09bdef Remove unused fields in VMInstanceVO.java 2013-01-15 18:28:51 -08:00
Kelven Yang df684261cf Put command classes under Spring injection framework 2013-01-15 18:07:19 -08:00
Kelven Yang a2dab60236 deprecate storage provider in StroragePoolVO 2013-01-15 18:07:19 -08:00
Edison Su c93918a896 rename dataobject to datastream 2013-01-15 15:46:21 -08:00
Kelven Yang af67d87662 Fix issues with @DB support in Spring environment 2013-01-15 12:35:03 -08:00
Edison Su 8af85b04d0 refactor api, based on suggestion from community 2013-01-14 18:52:39 -08:00
Kelven Yang 8ba00f7558 Merge branch 'javelin' of https://git-wip-us.apache.org/repos/asf/incubator-cloudstack into javelin 2013-01-14 18:08:23 -08:00
Edison Su 110465b504 Revert "Merge remote-tracking branch 'origin/javelin' into javelin"
This reverts commit f237759cd3, reversing
changes made to 96bd1d4172.
2013-01-14 17:58:48 -08:00
Edison Su 16376269c3 Revert "fix compile"
This reverts commit 008340353a.
2013-01-14 17:58:33 -08:00
Kelven Yang f304df44df Add ActionEventIntercepter to implement origianl ActionEventCallback in Spring AOP 2013-01-14 17:44:31 -08:00
Edison Su 008340353a fix compile 2013-01-14 16:20:39 -08:00
Edison Su f237759cd3 Merge remote-tracking branch 'origin/javelin' into javelin 2013-01-14 16:11:00 -08:00
Edison Su a2f86003f0 refactor api 2013-01-14 16:07:03 -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
Kelven Yang 61ff07e355 Fix POM that breaks the build 2013-01-14 10:16:07 -08:00
Rohit Yadav 9faf00bdc8 Fix license on xml.in, jsp and ucls files on javelin
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-12 06:34:34 -08:00
Rohit Yadav ea3f5ecb54 Fix license for xml files in javelin
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-12 06:31:47 -08:00
Rohit Yadav ba20e7f85a Fix license headers for java files in javelin
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-12 06:27:09 -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 fdc9103fbe create-schema: Fix deploydb, drop existing (new) tables
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-12 03:43:35 -08:00
Rohit Yadav 452e9c3efd maven: Remove duplicate cloud-core dependency in server
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-12 03:41:27 -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 40779975d3 ExtractVolumeCmd: Fix regression, use Zone Id for getting zone
Fixes regression introduced in b14b39a69f

Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-11 18:44:20 -08:00
Rohit Yadav 4c80684b1f StaticRoleBasedAPIAccessChecker: Fix acl cfg processing error messages
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 a35db97355 NetworkService: Add method to interface to get network by uuid
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-11 18:44:20 -08:00
Rohit Yadav 35544f26e5 DeployVmCmd: Remove usage of IdentityDao, use Network to get by id or uuid
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
Rohit Yadav 7960dd429b utils: Fix getByUuid to accept string arg, it's not gonna be anything else
Due to generic programming, most classes declare Daos with ID as Long, so they
get the getUuid(Long) definition, it has to be getUuid(String), uuid is not
gonna be anything else. Fix GenericDaoBase and GenericDao.

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
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
Noa Resare 1033200b0b CLOUDSTACK-933: CglibThrowableRendererTest writing stack traces...
Improve CglibThrowableRenderer test case

Log to a separate Logger instead of the default one to avoid spurious
stack traces in test run output.

Actually verify that registering CglibThrowableRenderer with the
alternative log hierarchy actually removes call trace lines that
contains the string <generated>
2013-01-11 17:09:44 -05:00
Marcus Sorensen d8ebd5e4f9 Summary: Change url of tiny linux in devcloud-kvm.sql
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1357930366 -0700
2013-01-11 11:52:46 -07:00
Rohit Yadav 66514c00ef apidoc: Remove api discovery from toc
Based on eb40d2337e

Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-11 09:46:18 -08:00
Chip Childers 2b3084bba0 Per my veto vote on the dev list, reverting "SRX and f5 inline mode documentation: Reviewed-By: Jessica Tomechak"
This reverts commit 106730ccdd.
2013-01-11 10:19:38 -05:00
Radhika PC 499c474ed0 Autoscale Documentation : Reviewed-By: Jessica Tomechak 2013-01-11 17:53:09 +05:30
Prasanna Santhanam eb40d2337e apidoc: fixing the api doc failure
remove api-discovery_commands.properties since the plugin returns the
listApis call as a map directly. not needed for api doc generation.

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
2013-01-11 17:04:30 +05:30
Radhika PC 106730ccdd SRX and f5 inline mode documentation: Reviewed-By: Jessica Tomechak 2013-01-11 15:54:00 +05:30
Pranav Saxena bb59c1e385 Revert "<message>"
This reverts commit 5dd14f322c.
2013-01-11 15:51:28 +05:30