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
+

Reply via email to