http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cbc5ffa1/tools/marvin/marvin/integration/lib/base/SnapshotPolicy.py ---------------------------------------------------------------------- diff --git a/tools/marvin/marvin/integration/lib/base/SnapshotPolicy.py b/tools/marvin/marvin/integration/lib/base/SnapshotPolicy.py index a2e3497..d18c4ba 100644 --- a/tools/marvin/marvin/integration/lib/base/SnapshotPolicy.py +++ b/tools/marvin/marvin/integration/lib/base/SnapshotPolicy.py @@ -16,6 +16,8 @@ # under the License. from marvin.integration.lib.base import CloudStackEntity from marvin.cloudstackAPI import createSnapshotPolicy +from marvin.cloudstackAPI import listSnapshotPolicies +from marvin.cloudstackAPI import deleteSnapshotPolicies class SnapshotPolicy(CloudStackEntity.CloudStackEntity): @@ -32,3 +34,19 @@ class SnapshotPolicy(CloudStackEntity.CloudStackEntity): snapshotpolicy = apiclient.createSnapshotPolicy(cmd) return SnapshotPolicy(snapshotpolicy.__dict__) + + @classmethod + def list(self, apiclient, volumeid, **kwargs): + cmd = listSnapshotPolicies.listSnapshotPoliciesCmd() + cmd.volumeid = volumeid + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] + snapshotpolicies = apiclient.listSnapshotPolicies(cmd) + return map(lambda e: SnapshotPolicy(e.__dict__), snapshotpolicies) + + + def delete(self, apiclient, **kwargs): + cmd = deleteSnapshotPolicies.deleteSnapshotPoliciesCmd() + cmd.id = self.id + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] + snapshotpolicies = apiclient.deleteSnapshotPolicies(cmd) + return snapshotpolicies
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cbc5ffa1/tools/marvin/marvin/integration/lib/base/StorageMaintenance.py ---------------------------------------------------------------------- diff --git a/tools/marvin/marvin/integration/lib/base/StorageMaintenance.py b/tools/marvin/marvin/integration/lib/base/StorageMaintenance.py deleted file mode 100644 index 09ed406..0000000 --- a/tools/marvin/marvin/integration/lib/base/StorageMaintenance.py +++ /dev/null @@ -1,44 +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. -from marvin.integration.lib.base import CloudStackEntity -from marvin.cloudstackAPI import cancelStorageMaintenance -from marvin.cloudstackAPI import enableStorageMaintenance - -class StorageMaintenance(CloudStackEntity.CloudStackEntity): - - - def __init__(self, items): - self.__dict__.update(items) - - - def cancel(self, apiclient, id, **kwargs): - cmd = cancelStorageMaintenance.cancelStorageMaintenanceCmd() - cmd.id = self.id - cmd.id = id - [setattr(cmd, key, value) for key,value in kwargs.iteritems()] - storagemaintenance = apiclient.cancelStorageMaintenance(cmd) - return storagemaintenance - - - def enable(self, apiclient, id, **kwargs): - cmd = enableStorageMaintenance.enableStorageMaintenanceCmd() - cmd.id = self.id - cmd.id = id - [setattr(cmd, key, value) for key,value in kwargs.iteritems()] - storagemaintenance = apiclient.enableStorageMaintenance(cmd) - return storagemaintenance - http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cbc5ffa1/tools/marvin/marvin/integration/lib/base/StoragePool.py ---------------------------------------------------------------------- diff --git a/tools/marvin/marvin/integration/lib/base/StoragePool.py b/tools/marvin/marvin/integration/lib/base/StoragePool.py index 91fd261..dfda35a 100644 --- a/tools/marvin/marvin/integration/lib/base/StoragePool.py +++ b/tools/marvin/marvin/integration/lib/base/StoragePool.py @@ -19,6 +19,8 @@ from marvin.cloudstackAPI import createStoragePool from marvin.cloudstackAPI import listStoragePools from marvin.cloudstackAPI import updateStoragePool from marvin.cloudstackAPI import deleteStoragePool +from marvin.cloudstackAPI import cancelStorageMaintenance +from marvin.cloudstackAPI import enableStorageMaintenance class StoragePool(CloudStackEntity.CloudStackEntity): @@ -61,3 +63,19 @@ class StoragePool(CloudStackEntity.CloudStackEntity): storagepool = apiclient.deleteStoragePool(cmd) return storagepool + + def cancel_maintenance(self, apiclient, **kwargs): + cmd = cancelStorageMaintenance.cancelStorageMaintenanceCmd() + cmd.id = self.id + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] + storagemaintenance = apiclient.cancelStorageMaintenance(cmd) + return storagemaintenance + + + def enable_maintenance(self, apiclient, **kwargs): + cmd = enableStorageMaintenance.enableStorageMaintenanceCmd() + cmd.id = self.id + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] + storagemaintenance = apiclient.enableStorageMaintenance(cmd) + return storagemaintenance + http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cbc5ffa1/tools/marvin/marvin/integration/lib/base/ToGlobalLoadBalancerRule.py ---------------------------------------------------------------------- diff --git a/tools/marvin/marvin/integration/lib/base/ToGlobalLoadBalancerRule.py b/tools/marvin/marvin/integration/lib/base/ToGlobalLoadBalancerRule.py deleted file mode 100644 index e5a2ede..0000000 --- a/tools/marvin/marvin/integration/lib/base/ToGlobalLoadBalancerRule.py +++ /dev/null @@ -1,34 +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. -from marvin.integration.lib.base import CloudStackEntity -from marvin.cloudstackAPI import assignToGlobalLoadBalancerRule - -class ToGlobalLoadBalancerRule(CloudStackEntity.CloudStackEntity): - - - def __init__(self, items): - self.__dict__.update(items) - - - def assign(self, apiclient, loadbalancerrulelist, id, **kwargs): - cmd = assignToGlobalLoadBalancerRule.assignToGlobalLoadBalancerRuleCmd() - cmd.id = self.id - cmd.id = id - cmd.loadbalancerrulelist = loadbalancerrulelist - [setattr(cmd, key, value) for key,value in kwargs.iteritems()] - togloballoadbalancerrule = apiclient.assignToGlobalLoadBalancerRule(cmd) - return togloballoadbalancerrule http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cbc5ffa1/tools/marvin/marvin/integration/lib/base/ToLoadBalancerRule.py ---------------------------------------------------------------------- diff --git a/tools/marvin/marvin/integration/lib/base/ToLoadBalancerRule.py b/tools/marvin/marvin/integration/lib/base/ToLoadBalancerRule.py deleted file mode 100644 index 552c9ac..0000000 --- a/tools/marvin/marvin/integration/lib/base/ToLoadBalancerRule.py +++ /dev/null @@ -1,35 +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. -from marvin.integration.lib.base import CloudStackEntity -from marvin.cloudstackAPI import assignToLoadBalancerRule - -class ToLoadBalancerRule(CloudStackEntity.CloudStackEntity): - - - def __init__(self, items): - self.__dict__.update(items) - - - def assign(self, apiclient, id, virtualmachineids, **kwargs): - cmd = assignToLoadBalancerRule.assignToLoadBalancerRuleCmd() - cmd.id = self.id - cmd.id = id - cmd.virtualmachineids = virtualmachineids - [setattr(cmd, key, value) for key,value in kwargs.iteritems()] - toloadbalancerrule = apiclient.assignToLoadBalancerRule(cmd) - return toloadbalancerrule - http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cbc5ffa1/tools/marvin/marvin/integration/lib/base/User.py ---------------------------------------------------------------------- diff --git a/tools/marvin/marvin/integration/lib/base/User.py b/tools/marvin/marvin/integration/lib/base/User.py index c0bad62..a7c2262 100644 --- a/tools/marvin/marvin/integration/lib/base/User.py +++ b/tools/marvin/marvin/integration/lib/base/User.py @@ -23,6 +23,7 @@ from marvin.cloudstackAPI import listUsers from marvin.cloudstackAPI import updateUser from marvin.cloudstackAPI import disableUser from marvin.cloudstackAPI import deleteUser +from marvin.cloudstackAPI import registerUserKeys class User(CloudStackEntity.CloudStackEntity): @@ -101,3 +102,11 @@ class User(CloudStackEntity.CloudStackEntity): user = apiclient.deleteUser(cmd) return user + + def register_userkeys(self, apiclient, **kwargs): + cmd = registerUserKeys.registerUserKeysCmd() + cmd.id = self.id + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] + userkeys = apiclient.registerUserKeys(cmd) + return userkeys + http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cbc5ffa1/tools/marvin/marvin/integration/lib/base/UserKeys.py ---------------------------------------------------------------------- diff --git a/tools/marvin/marvin/integration/lib/base/UserKeys.py b/tools/marvin/marvin/integration/lib/base/UserKeys.py deleted file mode 100644 index a42b65b..0000000 --- a/tools/marvin/marvin/integration/lib/base/UserKeys.py +++ /dev/null @@ -1,34 +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. -from marvin.integration.lib.base import CloudStackEntity -from marvin.cloudstackAPI import registerUserKeys - -class UserKeys(CloudStackEntity.CloudStackEntity): - - - def __init__(self, items): - self.__dict__.update(items) - - - def register(self, apiclient, id, **kwargs): - cmd = registerUserKeys.registerUserKeysCmd() - cmd.id = self.id - cmd.id = id - [setattr(cmd, key, value) for key,value in kwargs.iteritems()] - userkeys = apiclient.registerUserKeys(cmd) - return userkeys - http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cbc5ffa1/tools/marvin/marvin/integration/lib/base/VirtualMachine.py ---------------------------------------------------------------------- diff --git a/tools/marvin/marvin/integration/lib/base/VirtualMachine.py b/tools/marvin/marvin/integration/lib/base/VirtualMachine.py index 4a08454..0d2fd44 100644 --- a/tools/marvin/marvin/integration/lib/base/VirtualMachine.py +++ b/tools/marvin/marvin/integration/lib/base/VirtualMachine.py @@ -26,6 +26,11 @@ from marvin.cloudstackAPI import updateVirtualMachine from marvin.cloudstackAPI import startVirtualMachine from marvin.cloudstackAPI import destroyVirtualMachine from marvin.cloudstackAPI import assignVirtualMachine +from marvin.cloudstackAPI import addNicToVirtualMachine +from marvin.cloudstackAPI import removeNicFromVirtualMachine +from marvin.cloudstackAPI import resetPasswordForVirtualMachine +from marvin.cloudstackAPI import resetSSHKeyForVirtualMachine +from marvin.cloudstackAPI import updateDefaultNicForVirtualMachine class VirtualMachine(CloudStackEntity.CloudStackEntity): @@ -43,10 +48,9 @@ class VirtualMachine(CloudStackEntity.CloudStackEntity): return virtualmachine - def scale(self, apiclient, id, serviceofferingid, **kwargs): + def scale(self, apiclient, serviceofferingid, **kwargs): cmd = scaleVirtualMachine.scaleVirtualMachineCmd() cmd.id = self.id - cmd.id = id cmd.serviceofferingid = serviceofferingid [setattr(cmd, key, value) for key,value in kwargs.iteritems()] virtualmachine = apiclient.scaleVirtualMachine(cmd) @@ -79,46 +83,41 @@ class VirtualMachine(CloudStackEntity.CloudStackEntity): return map(lambda e: VirtualMachine(e.__dict__), virtualmachine) - def stop(self, apiclient, id, **kwargs): + def stop(self, apiclient, **kwargs): cmd = stopVirtualMachine.stopVirtualMachineCmd() cmd.id = self.id - cmd.id = id [setattr(cmd, key, value) for key,value in kwargs.iteritems()] virtualmachine = apiclient.stopVirtualMachine(cmd) return virtualmachine - def reboot(self, apiclient, id, **kwargs): + def reboot(self, apiclient, **kwargs): cmd = rebootVirtualMachine.rebootVirtualMachineCmd() cmd.id = self.id - cmd.id = id [setattr(cmd, key, value) for key,value in kwargs.iteritems()] virtualmachine = apiclient.rebootVirtualMachine(cmd) return virtualmachine - def update(self, apiclient, id, **kwargs): + def update(self, apiclient, **kwargs): cmd = updateVirtualMachine.updateVirtualMachineCmd() cmd.id = self.id - cmd.id = id [setattr(cmd, key, value) for key,value in kwargs.iteritems()] virtualmachine = apiclient.updateVirtualMachine(cmd) return virtualmachine - def start(self, apiclient, id, **kwargs): + def start(self, apiclient, **kwargs): cmd = startVirtualMachine.startVirtualMachineCmd() cmd.id = self.id - cmd.id = id [setattr(cmd, key, value) for key,value in kwargs.iteritems()] virtualmachine = apiclient.startVirtualMachine(cmd) return virtualmachine - def destroy(self, apiclient, id, **kwargs): + def destroy(self, apiclient, **kwargs): cmd = destroyVirtualMachine.destroyVirtualMachineCmd() cmd.id = self.id - cmd.id = id [setattr(cmd, key, value) for key,value in kwargs.iteritems()] virtualmachine = apiclient.destroyVirtualMachine(cmd) return virtualmachine @@ -134,3 +133,46 @@ class VirtualMachine(CloudStackEntity.CloudStackEntity): virtualmachine = apiclient.assignVirtualMachine(cmd) return virtualmachine + def remove_nic(self, apiclient, nicid, **kwargs): + cmd = removeNicFromVirtualMachine.removeNicFromVirtualMachineCmd() + cmd.virtualmachineid = self.id + cmd.nicid = nicid + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] + nicfromvirtualmachine = apiclient.removeNicFromVirtualMachine(cmd) + return nicfromvirtualmachine + + + def add_nic(self, apiclient, networkid, **kwargs): + cmd = addNicToVirtualMachine.addNicToVirtualMachineCmd() + cmd.virtualmachineid = self.id + cmd.networkid = networkid + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] + nictovirtualmachine = apiclient.addNicToVirtualMachine(cmd) + return nictovirtualmachine + + + def update_default_nic(self, apiclient, nicid, **kwargs): + cmd = updateDefaultNicForVirtualMachine.updateDefaultNicForVirtualMachineCmd() + cmd.virtualmachineid = self.id + cmd.nicid = nicid + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] + defaultnicforvirtualmachine = apiclient.updateDefaultNicForVirtualMachine(cmd) + return defaultnicforvirtualmachine + + + def reset_password(self, apiclient, **kwargs): + cmd = resetPasswordForVirtualMachine.resetPasswordForVirtualMachineCmd() + cmd.id = self.id + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] + passwordforvirtualmachine = apiclient.resetPasswordForVirtualMachine(cmd) + return passwordforvirtualmachine + + + def reset_sshkey(self, apiclient, keypair, **kwargs): + cmd = resetSSHKeyForVirtualMachine.resetSSHKeyForVirtualMachineCmd() + cmd.id = self.id + cmd.keypair = keypair + [setattr(cmd, key, value) for key,value in kwargs.iteritems()] + sshkeyforvirtualmachine = apiclient.resetSSHKeyForVirtualMachine(cmd) + return sshkeyforvirtualmachine +
