+
+ def BootStates(self, n = 3):
+ boot_states = []
+ AddBootState = self.debug(api.AddBootState)
+ GetBootStates = self.debug(api.GetBootStates)
+ for i in range(n):
+ # Add boot state
+ bootstate_fields = randstr(10)
+ result = AddBootState(auth, bootstate_fields)
+ if result is None: continue
+
+ # Check boot states
+ boot_states.append(bootstate_fields)
+ bootstates = GetBootStates(auth)
+ if not bootstates: continue
+ bootstates = filter(lambda x: x in [bootstate_fields], bootstates)
+ if not bootstates: continue
+ bootstate = bootstates[0]
+ self.isequal(bootstate, bootstate_fields, 'AddBootState - isequal')
+
+ # Check all
+ bs = GetBootStates(auth)
+ if bs is not None:
+ bs = filter(lambda x: x in [boot_states], bs)
+ self.islistequal(boot_states, bs, 'GetBootStates - isequal')
+
+ if self.config.verbose:
+ utils.header("Added boot_states: %s" % boot_states)
+
+ return boot_states
+
+ def DeleteBootStates(self):
+ DeleteBootState = self.debug(api.DeleteBootState)
+ GetBootStates = self.debug(api.GetBootStates)
+ for boot_state in self.boot_states:
+ result = DeleteBootState(auth, boot_state)
+
+ # Check if bootsates are deleted
+ boot_states = GetBootStates(auth, self.boot_states)
+ self.islistequa(boot_states, [], 'DeleteBootState check')
+
+ if self.config.verbose:
+ utils.header("Deleted boot_states: %s" % self.boot_states)
+
+ self.boot_states = []
+
+
+ def Peers(self, n = 2):
+ peer_ids = []
+ for i in range(n):
+ # Add Peer
+ peer_fields = random_peer()
+ AddPeer = self.debug(api.AddPeer)
+ peer_id = AddPeer(auth, peer_fields)
+
+ # Should return a unique id
+ self.isunique(peer_id, peer_ids, 'AddPeer - isunique')
+ peer_ids.append(peer_id)
+ GetPeers = self.debug(api.GetPeers)
+ peers = GetPeers(auth, [peer_id])
+ if peers is None: continue
+ peer = peers[0]
+ self.isequal(peer, peer_fields, 'AddPeer - isequal')
+
+ # Update Peer
+ peer_fields = random_peer()
+ UpdatePeer = self.debug(api.UpdatePeer)
+ result = UpdatePeer(auth, peer_id, peer_fields)
+
+ # Check again
+ peers = GetPeers(auth, [peer_id])
+ if peers is None: continue
+ peer = peers[0]
+ self.isequal(peer, peer_fields, 'UpdatePeer - isequal')
+
+ peers = GetPeers(auth, peer_ids)
+ if peers is not None:
+ self.islistequal(peer_ids, [peer['peer_id'] for peer in peers], 'GetPeers -isequal')
+
+ if self.config.verbose:
+ utils.header("Added peers: %s" % peer_ids)
+
+ return peer_ids
+
+
+ def DeletePeers(self):
+ # Delete all peers
+ DeletePeer = self.debug(api.DeletePeer)
+ for peer_id in self.peer_ids:
+ result = DeletePeer(auth, peer_id)
+
+ # Check if peers are deleted
+ GetPeers = self.debug(api.GetPeers)
+ peers = GetPeers(auth, self.peer_ids)
+ self.islistequal(peers, [], 'DeletePeer - check' % self.peer_ids)
+
+ if self.config.verbose:
+ utils.header("Deleted sites: %s" % self.peer_ids)
+ self.peer_ids =[]
+
+ def ConfFiles(self, n = 2):
+ conf_file_ids = []
+ for i in range(n):
+ # Add ConfFile
+ conf_file_fields = random_conf_file()
+ AddConfFile = self.debug(api.AddConfFile)
+ conf_file_id = AddConfFile(auth, conf_file_fields)
+ if conf_file_id is None: continue
+
+ # Should return a unique id
+ self.isunique(conf_file_id, conf_file_ids, 'AddConfFile - isunique')
+ conf_file_ids.append(conf_file_id)
+
+ # Get ConfFiles
+ GetConfFiles = self.debug(api.GetConfFiles)
+ conf_files = GetConfFiles(auth, [conf_file_id])
+ if conf_files is None: continue
+ conf_file = conf_files[0]
+ self.isequal(conf_file, conf_file_fields, 'AddConfFile - isunique')
+
+ # Update ConfFile
+ conf_file_fields = random_conf_file()
+ UpdateConfFile = self.debug(api.UpdateConfFile)
+ result = UpdateConfFile(auth, conf_file_id, conf_file_fields)
+
+ # Check again
+ conf_files = GetConfFiles(auth, [conf_file_id])
+ if conf_files is None: continue
+ conf_file = conf_files[0]
+ self.isequal(conf_file, conf_file_fields, 'UpdateConfFile - isunique')
+
+
+ # Add this conf file to a random node
+ node_id = random.sample(self.node_ids, 1)[0]
+ AddConfFileToNode = self.debug(api.AddConfFileToNode)
+ AddConfFileToNode(auth, conf_file_id, node_id)
+
+ # Add this conf file to a random node group
+ nodegroup_id = random.sample(self.nodegroup_ids, 1)[0]
+ AddConfFileToNodeGroup = self.debug(api.AddConfFileToNodeGroup)
+ AddConfFileToNodeGroup(auth, conf_file_id, nodegroup_id)
+
+ # Check node, nodegroup
+ conf_files = GetConfFiles(auth, [conf_file_id], ['node_ids', 'nodegroup_ids'])
+ if conf_files is None or not conf_files: continue
+ conf_file = conf_files[0]
+ self.islistequal([node_id], conf_file['node_ids'], 'AddConfFileToNode - check')
+ self.islistequal([nodegroup_id], conf_file['nodegroup_ids'], 'AddConfFileToNodeGroup - check')
+
+
+
+ conf_files = GetConfFiles(auth, conf_file_ids)
+ if conf_files is not None:
+ self.islistequal(conf_file_ids, [c['conf_file_id'] for c in conf_files], 'GetConfFiles - isequal')
+ if self.config.verbose:
+ utils.header("Added conf_files: %s" % conf_file_ids)
+
+ return conf_file_ids
+
+ def DeleteConfFiles(self):
+
+ GetConfFiles = self.debug(api.GetConfFiles)
+ conf_files = GetConfFiles(auth, self.conf_file_ids)
+ if conf_fiels is None or not conf_files: return 0
+ conf_file = conf_files[0]
+
+ if conf_file['node_ids']:
+ node_id = random.sample(conf_file['node_ids'], 1)[0]
+ DeleteConfFileFromNode = self.debug(api.DeleteConfFileFromNode)
+ DeleteConfFileFromNode(auth, conf_file['conf_file_id'], node_id)
+
+ if conf_file['nodegroup_ids']:
+ nodegroup_id = random.sample(conf_file['nodegroup_ids'], 1)[0]
+ DeleteConfFileFromNodeGroup = self.debug(api.DeleteConfFileFromNodeGroup)
+ DeleteConfFileFromNode(auth, conf_file['conf_file_id'], nodegroup_id)
+
+ # check
+ conf_files = GetConfFiles(auth, conf_file['conf_file_id'], ['node_ids', 'nodegroup_ids'])
+ if conf_files is None or not conf_files: return 0
+ conf_file = conf_files[0]
+ self.islistequal([], conf_file['node_ids'], 'AddConfFileToNode - check')
+ self.islistequal([], conf_file['nodegroup_ids'], 'AddConfFileToNodeGroup - check')
+
+ DeleteConfFile = self.debug(api.DeleteConfFile)
+ for conf_file_id in self.conf_file_ids:
+ DeleteConfFile(auth, conf_file_id)
+
+ # check
+ conf_files = GetConfFiles(auth, self.conf_file_ids)
+ self.islistequal(conf_files, [], 'DeleteConfFile - check')
+
+ if self.config.verbose:
+ utils.header("Deleted conf_files: %s" % self.conf_file_ids)
+
+ self.conf_file_ids = []
+