Commit Graph

16749 Commits

Author SHA1 Message Date
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
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
Jessica Wang a22bfd7e7b CLOUDSTACK-537: cloudstack UI - Advanced SG-enabled zone - VM Wizard - API has been chagned. Here is related UI change: not pass networkID to deployVirtualMachine API. 2013-01-16 15:10:24 -08:00
Jessica Wang eeb3f1725d CS-17074: cloudstack UI - Advanced SG-enabled zone - Infrastructure menu - create guest network - scope dropdown - add option "All". 2013-01-16 15:06:27 -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
Pranav Saxena a69e7f9bf6 CLOUDSTACK-972:The template will disappear after reordering in template section 2013-01-17 00:02:11 +05:30
Marcus Sorensen 4f479e2b23 Summary: Modifying integration tests to use 128MB service offerings
Detail: The default devcloud tiny template is set up via devcloud.sql to have
at least 100MB RAM, changing the tests as well. This will also allow the builtin
devcloud-kvm tiny template to work for tests as it requires a bit more.

Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1358357431 -0700
2013-01-16 10:30:31 -07:00
Marcus Sorensen 310d35f88e Summary: Change template details in devcloud-kvm sql file
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1358357054 -0700
2013-01-16 10:24:14 -07: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 88a0b5ac48 Revert "Summary: partical check-in for L4-L7 network services in the shared"
This reverts commit 6657246cd4.

Reverting due to IP clearance issued for the commit done as part of CLOUDSTACK-312
2013-01-16 16:05:17 +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
Kelven Yang 339c09bdef Remove unused fields in VMInstanceVO.java 2013-01-15 18:28:51 -08:00
Min Chen 97cb16944f Merge branch 'master' into api_limit 2013-01-15 18:18:34 -08:00
Min Chen 939acb0f4c Remove unused CloudExecutionException. 2013-01-15 18:17:35 -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
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
Rohit Yadav f6a8b45de5 ApiDiscovery: Use UserContext getCallerUser, do a lazy eval to get account service
Impl. and use UserContext to get User.
CloudStack's @Inject is horrible, it may sometimes fail to inject account service
during startup. Do a lazy injection using ComponentLocator when needed.

Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-15 16:11:51 -08:00
Min Chen 3698d64ba2 Use 429 Error code for API_LIMIT_EXCEED error due to latest Http status
code in
http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Client_Error
2013-01-15 16:08:47 -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
Edison Su c93918a896 rename dataobject to datastream 2013-01-15 15:46:21 -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
Chip Childers f7b8ad5e8b Updating the RAT exclude list to no longer exclude devcloud .cfg files
Signed-off-by: Chip Childers <chip.childers@gmail.com>
2013-01-15 16:28:16 -05:00
Marcus Sorensen 354c56a988 Summary: Adding apache license headers to various devcloud configs
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1358284904 -0700
2013-01-15 14:21:44 -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
Chiradeep Vittal 7fad27b846 network-refactor: unfortunately have to ignore tests during build since the tests involve verification of injection. This causes the database to get invoked during component initialization. The database is not available on the build server 2013-01-15 11:43:53 -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
Pranav Saxena 8d0091d7e2 CLOUDSTACK-978:TypeError: instance.displayname is undefined while adding VM's to the LB rule 2013-01-15 21:12:10 +05:30
Prasanna Santhanam bfd02c5db3 traffic_type not traffictype
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
2013-01-15 19:36:30 +05:30
Prasanna Santhanam 04b14ab03f Marvin: physical network label not carried through in the API
The label associated with the hypervisor nic to isolate traffic types by
Guest/Mgmt/Public/Storage was not passed in the marvin.traffictype
object and sent through to mgmt server resulting in traffic types not
being applied.

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
2013-01-15 19:29:27 +05:30
Wido den Hollander 95222cdb6d Templates: Add Ubuntu 12.04 to the templates
Although I still think the templates aren't well maintained, I just
added 12.04 since this is an LTS and people probably want it in the
list of templates.

This system should be more generic I think though.
2013-01-15 13:25:48 +01: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
Hugo Trippaers 2d69a1855d Summary: Begone pesky tabs 2013-01-15 10:00:58 +01:00
Hugo Trippaers f09d453efe Merge branch 'cloud-agent-with-openvswitch' of https://git-wip-us.apache.org/repos/asf/incubator-cloudstack into cloud-agent-with-openvswitch
Conflicts:
	plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/OvsVifDriver.java
2013-01-15 09:20:59 +01:00
Hugo Trippaers 9f00302ad3 Summary: Polish and shine
Document the used options in agent.properties

Default the bridge driver to something sensible based on the
configuration of the bridge type.
2013-01-15 09:18:24 +01:00
Hugo Trippaers 4267a3fc7c Summary: copy/paste error 2013-01-15 09:18:24 +01:00
Hugo Trippaers 87fe646953 Summary: small fix causing trouble when shutting down virtual machines 2013-01-15 09:18:24 +01:00
Hugo Trippaers 1ceecc92c8 Summary: Fix logic error
Should if "if the username is not cloud AND developer is not true, then
report an error"
2013-01-15 09:18:24 +01:00
Hugo Trippaers e0ecf7b834 Summary: Add vlan configuration to the network inteface definition
Add xml piece for defining vlans

Set vlan tag in the libvirt definition for the network inteface
2013-01-15 09:18:24 +01:00
Hugo Trippaers 68523e641f Summary: Add initial support for OpenVswitch to the KVM hypervisor
Create OvsVifDriver to deal with openvswitch specifics for plugging
intefaces

Create a parameter to set the bridge type to use in
LibvirtComputingResource. 
Create several functions to get bridge information from openvswitch

Add a check to detect the libvirt version and throw an exception when
the version is to low ( < 0.9.11 )

Fix classpath loading in Script.findScript to deal with missing path
separators at the end.

Add notification to the BridgeVifDriver that lswitch broadcast type is
not supported.
2013-01-15 09:18:24 +01:00