def runCommand(self):
        self.parseArgs(_('Return list of software profiles configured in'
                         ' the system'))

        api = SoftwareProfileWsApi(username=self.getUsername(),
                                   password=self.getPassword(),
                                   baseurl=self.getUrl(),
                                   verify=self._verify)

        for sp in api.getSoftwareProfileList(tags=self.getArgs().tags):
            print('%s' % (sp))
    def runCommand(self):
        self.parseArgs(
            _("""
Return list of idle software profiles configured on the system.
"""))
        api = SoftwareProfileWsApi(username=self.getUsername(),
                                   password=self.getPassword(),
                                   baseurl=self.getUrl(),
                                   verify=self._verify)

        for software_profile in api.getSoftwareProfileList():
            if software_profile.getIsIdle():
                print(software_profile.getName())
    def runCommand(self):
        self.parseArgs(
            _("""
Returns the list of nodes that have the given component enabled. The
result set can be filtered by state and count.
"""))

        state = self.getArgs().state

        if state:
            stateList = state.split(',')

        if self.getArgs().count is not None:
            numNodes = int(self.getArgs().count)
            if numNodes == 0:
                return
        else:
            numNodes = -1

        api = SoftwareProfileWsApi(username=self.getUsername(),
                                   password=self.getPassword(),
                                   baseurl=self.getUrl(),
                                   verify=self._verify)

        optionDict = {}
        optionDict['nodes'] = True

        for sp in api.getSoftwareProfileList():
            comps = api.getEnabledComponentList(sp.getName())
            for comp in comps:
                if comp.getName() == self.getArgs().componentName and \
                   comp.getKit().getName() == self.getArgs().kitName and \
                   comp.getKit().getVersion() == \
                   self.getArgs().kitVersion and \
                   comp.getKit().getIteration() == \
                   self.getArgs().kitIteration:
                    softwareProfile = api.getSoftwareProfile(
                        sp.getName(), optionDict)

                    for node in softwareProfile.getNodes():
                        if state is None or node.getState() in stateList:
                            print(node.getName())

                            numNodes = numNodes - 1

                            if numNodes == 0:
                                return
    def runCommand(self):
        self.parseArgs()

        comp_name = self.getArgs().component

        api = SoftwareProfileWsApi(username=self.getUsername(),
                                   password=self.getPassword(),
                                   baseurl=self.getUrl(),
                                   verify=self._verify)

        results = {}
        for sw_profile in api.getSoftwareProfileList():
            nodes = []

            for component in sw_profile.components:
                if not self.getArgs().kitName or \
                        component.kit.name == self.getArgs().kitName:
                    if comp_name and component.name == comp_name:
                        nodes = [node.name for node in sw_profile.nodes]
                        break

            results[sw_profile.name] = nodes

        print(yaml.safe_dump(results), end=' ')