summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore8
-rw-r--r--INFO1
-rw-r--r--INFO.yaml59
-rw-r--r--apex/build.py18
-rw-r--r--apex/build_utils.py50
-rw-r--r--apex/builders/common_builder.py260
-rw-r--r--apex/builders/exceptions.py12
-rw-r--r--apex/builders/overcloud_builder.py141
-rw-r--r--apex/builders/undercloud_builder.py71
-rw-r--r--apex/clean.py8
-rw-r--r--apex/common/constants.py43
-rw-r--r--apex/common/exceptions.py16
-rw-r--r--apex/common/utils.py180
-rw-r--r--apex/deploy.py527
-rw-r--r--apex/deployment/__init__.py0
-rw-r--r--apex/deployment/snapshot.py241
-rw-r--r--apex/deployment/tripleo.py60
-rw-r--r--apex/inventory/inventory.py7
-rw-r--r--apex/network/jumphost.py8
-rw-r--r--apex/network/network_data.py2
-rw-r--r--apex/network/network_environment.py11
-rw-r--r--apex/overcloud/config.py6
-rw-r--r--apex/overcloud/deploy.py493
-rw-r--r--apex/overcloud/node.py147
-rw-r--r--apex/settings/deploy_settings.py20
-rw-r--r--apex/settings/network_settings.py7
-rw-r--r--apex/tests/config/98faaca.diff331
-rw-r--r--apex/tests/config/admin.xml7
-rw-r--r--apex/tests/config/baremetal0.xml73
-rw-r--r--apex/tests/config/common-patches.yaml6
-rw-r--r--apex/tests/config/dummy-deploy-settings.yaml19
-rw-r--r--apex/tests/config/inventory-virt-1-compute-node.yaml14
-rw-r--r--apex/tests/config/node.yaml12
-rw-r--r--apex/tests/config/snapshot.properties2
-rw-r--r--apex/tests/test_apex_build_utils.py27
-rw-r--r--apex/tests/test_apex_common_builder.py227
-rw-r--r--apex/tests/test_apex_common_utils.py62
-rw-r--r--apex/tests/test_apex_deploy.py183
-rw-r--r--apex/tests/test_apex_deployment_snapshot.py374
-rw-r--r--apex/tests/test_apex_deployment_tripleo.py49
-rw-r--r--apex/tests/test_apex_inventory.py7
-rw-r--r--apex/tests/test_apex_network_environment.py7
-rw-r--r--apex/tests/test_apex_network_settings.py3
-rw-r--r--apex/tests/test_apex_overcloud_builder.py67
-rw-r--r--apex/tests/test_apex_overcloud_deploy.py672
-rw-r--r--apex/tests/test_apex_overcloud_node.py191
-rw-r--r--apex/tests/test_apex_undercloud.py178
-rw-r--r--apex/tests/test_apex_virtual_utils.py20
-rw-r--r--apex/undercloud/undercloud.py131
-rw-r--r--apex/utils.py107
-rwxr-xr-xapex/virtual/configure_vm.py9
-rw-r--r--apex/virtual/exceptions.py12
-rw-r--r--apex/virtual/utils.py36
-rw-r--r--build/CentOS-Updates.repo5
-rw-r--r--build/Makefile308
-rw-r--r--build/ansible.cfg11
-rwxr-xr-xbuild/barometer-install.sh152
-rw-r--r--build/build_ovs_nsh.sh20
-rwxr-xr-xbuild/build_quagga.sh251
-rw-r--r--build/c7-opnfv-x86_64-comps.xml7995
-rw-r--r--build/cache.sh77
-rw-r--r--build/containers-prepare-parameter.yaml26
-rw-r--r--build/csit-environment.yaml78
-rw-r--r--build/csit-queens-environment.yaml115
-rw-r--r--build/csit-rocky-environment.yaml116
-rw-r--r--build/isolinux.cfg119
-rw-r--r--build/kubernetes-environment.yaml26
-rw-r--r--build/kvm4nfv-1st-boot.yaml61
-rw-r--r--build/network-environment.yaml22
-rw-r--r--build/nics-template.yaml.jinja2484
-rw-r--r--build/opnfv-environment.yaml5
-rwxr-xr-xbuild/overcloud-full.sh155
-rwxr-xr-xbuild/overcloud-onos.sh46
-rwxr-xr-xbuild/overcloud-opendaylight.sh100
-rw-r--r--build/patches/neutron-patch-NSDriver.patch38
-rw-r--r--build/patches/puppet-ceph.patch76
-rw-r--r--build/patches/puppet-neutron-vpp-ml2-type_drivers-setting.patch80
-rw-r--r--build/patches/tacker-client-fix-symmetrical.patch31
-rw-r--r--build/rpm_specs/c_capnproto.spec45
-rw-r--r--build/rpm_specs/networking-vpp.spec14
-rw-r--r--build/rpm_specs/opnfv-apex-common.spec195
-rw-r--r--build/rpm_specs/opnfv-apex-onos.spec44
-rw-r--r--build/rpm_specs/opnfv-apex-release.spec36
-rw-r--r--build/rpm_specs/opnfv-apex-undercloud.spec53
-rw-r--r--build/rpm_specs/opnfv-apex.spec254
-rw-r--r--build/rpm_specs/quagga.spec744
-rw-r--r--build/rpm_specs/zrpc.spec46
-rwxr-xr-xbuild/undercloud.sh69
-rw-r--r--build/upstream-environment.yaml9
-rw-r--r--build/variables.sh59
-rw-r--r--ci/PR_revision.log6
-rwxr-xr-xci/util.sh2
-rw-r--r--config/deploy/common-patches.yaml45
-rw-r--r--config/deploy/deploy_settings.yaml19
-rw-r--r--config/deploy/k8s-nosdn-nofeature-noha.yaml (renamed from config/deploy/os-nosdn-pike-noha.yaml)6
-rw-r--r--config/deploy/os-nosdn-calipso-noha.yaml1
-rw-r--r--config/deploy/os-nosdn-calipso_rocky-noha.yaml11
-rw-r--r--config/deploy/os-nosdn-nofeature-ha.yaml6
-rw-r--r--config/deploy/os-nosdn-nofeature-noha.yaml6
-rw-r--r--config/deploy/os-nosdn-rocky-ha.yaml11
-rw-r--r--config/deploy/os-nosdn-rocky-noha.yaml (renamed from config/deploy/os-ovn-nofeature-noha.yaml)7
-rw-r--r--config/deploy/os-odl-bgpvpn-ha.yaml6
-rw-r--r--config/deploy/os-odl-bgpvpn-noha.yaml6
-rw-r--r--config/deploy/os-odl-bgpvpn_rocky-ha.yaml13
-rw-r--r--config/deploy/os-odl-bgpvpn_rocky-noha.yaml13
-rw-r--r--config/deploy/os-odl-l2gw-ha.yaml12
-rw-r--r--config/deploy/os-odl-l2gw-noha.yaml (renamed from config/deploy/os-odl-csit-noha.yaml)4
-rw-r--r--config/deploy/os-odl-nofeature-ha.yaml8
-rw-r--r--config/deploy/os-odl-nofeature-noha.yaml8
-rw-r--r--config/deploy/os-odl-pike-noha.yaml15
-rw-r--r--config/deploy/os-odl-queens-ha.yaml13
-rw-r--r--config/deploy/os-odl-queens-noha.yaml13
-rw-r--r--config/deploy/os-odl-rocky-ha.yaml13
-rw-r--r--config/deploy/os-odl-rocky-noha.yaml13
-rw-r--r--config/deploy/os-odl-sfc-ha.yaml8
-rw-r--r--config/deploy/os-odl-sfc-noha.yaml8
-rw-r--r--config/deploy/os-odl-sfc_rocky-ha.yaml13
-rw-r--r--config/deploy/os-odl-sfc_rocky-noha.yaml13
-rw-r--r--config/deploy/os-odl-sriov-ha.yaml21
-rw-r--r--config/deploy/os-odl-sriov-noha.yaml21
-rw-r--r--config/deploy/os-ovn-nofeature-ha.yaml15
-rw-r--r--config/deploy/os-ovn-rocky-ha.yaml17
-rw-r--r--config/network/network_settings.yaml22
-rw-r--r--config/network/network_settings_csit.yaml (renamed from config/network/network_settings_vpp.yaml)19
-rw-r--r--config/network/network_settings_tenant_vlan.yaml333
-rw-r--r--config/network/network_settings_v6.yaml14
-rw-r--r--config/network/network_settings_vlans.yaml4
-rw-r--r--contrib/aarch64/overcloud-full-rootfs.yaml54
-rw-r--r--contrib/aarch64/undercloud-full.yaml87
-rw-r--r--docs/conf.py1
-rw-r--r--docs/conf.yaml3
-rw-r--r--docs/contributor/APEX-on-aarch64.rst146
-rw-r--r--docs/contributor/upstream-overcloud-container-design.rst126
-rw-r--r--docs/index.rst23
-rw-r--r--docs/release/installation/abstract.rst8
-rw-r--r--docs/release/installation/architecture.rst35
-rw-r--r--docs/release/installation/baremetal.rst54
-rw-r--r--docs/release/installation/index.rst3
-rw-r--r--docs/release/installation/introduction.rst29
-rw-r--r--docs/release/installation/references.rst4
-rw-r--r--docs/release/installation/requirements.rst4
-rw-r--r--docs/release/installation/troubleshooting.rst10
-rw-r--r--docs/release/installation/upstream.rst101
-rw-r--r--docs/release/installation/virtual.rst97
-rw-r--r--docs/release/release-notes/release-notes.rst191
-rw-r--r--docs/release/scenarios/k8s-nosdn-nofeature-noha/index.rst (renamed from docs/release/scenarios/os-odl-csit-noha/index.rst)10
-rw-r--r--docs/release/scenarios/k8s-nosdn-nofeature-noha/k8s-nosdn-nofeature-noha.rst46
-rw-r--r--docs/release/scenarios/os-nosdn-nofeature-ha/os-nosdn-nofeature-ha.rst8
-rw-r--r--docs/release/scenarios/os-nosdn-nofeature-noha/os-nosdn-nofeature-noha.rst8
-rw-r--r--docs/release/scenarios/os-nosdn-ovs_dpdk-ha/index.rst16
-rw-r--r--docs/release/scenarios/os-nosdn-ovs_dpdk-ha/os-nosdn-ovs_dpdk-ha.rst87
-rw-r--r--docs/release/scenarios/os-nosdn-ovs_dpdk-noha/index.rst16
-rw-r--r--docs/release/scenarios/os-nosdn-ovs_dpdk-noha/os-nosdn-ovs_dpdk-noha.rst87
-rw-r--r--docs/release/scenarios/os-nosdn-performance-ha/index.rst15
-rw-r--r--docs/release/scenarios/os-nosdn-performance-ha/os-nosdn-performance-ha.rst54
-rw-r--r--docs/release/scenarios/os-odl-csit-noha/os-odl-csit-noha.rst54
-rw-r--r--docs/release/scenarios/os-odl-nofeature-ha/os-odl-nofeature-ha.rst16
-rw-r--r--docs/release/scenarios/os-odl-nofeature-noha/os-odl-nofeature-noha.rst16
-rw-r--r--docs/release/scenarios/os-ovn-nofeature-ha/index.rst (renamed from docs/release/scenarios/os-ovn-nofeature-noha/index.rst)4
-rw-r--r--docs/release/scenarios/os-ovn-nofeature-ha/os-ovn-nofeature-ha.rst (renamed from docs/release/scenarios/os-ovn-nofeature-noha/os-ovn-nofeature-noha.rst)13
-rw-r--r--docs/requirements.txt2
-rw-r--r--lib/ansible/playbooks/configure_undercloud.yml136
-rw-r--r--lib/ansible/playbooks/deploy_dependencies.yml40
-rw-r--r--lib/ansible/playbooks/deploy_overcloud.yml93
-rw-r--r--lib/ansible/playbooks/fetch_overcloud_logs.yml25
-rw-r--r--lib/ansible/playbooks/fetch_overcloud_nodes.yml13
-rw-r--r--lib/ansible/playbooks/k8s_remove_pkgs.yml5
-rw-r--r--lib/ansible/playbooks/patch_containers.yml13
-rw-r--r--lib/ansible/playbooks/post_deploy_overcloud.yml60
-rw-r--r--lib/ansible/playbooks/post_deploy_undercloud.yml94
-rw-r--r--lib/ansible/playbooks/prepare_overcloud_containers.yml50
-rw-r--r--lib/ansible/playbooks/undercloud_aarch64.yml36
-rw-r--r--requirements.txt3
-rw-r--r--setup.cfg6
-rw-r--r--tox.ini14
175 files changed, 7810 insertions, 12158 deletions
diff --git a/.gitignore b/.gitignore
index f42d4c6e..6bc2461f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,11 +1,13 @@
*~
*.pyc
-/docs_build/
/docs_output/
/releng/
+venv/
apex.egg-info/
-/apex/tests/playbooks/*.retry
coverage.xml
nosetests.xml
-ci/*.log
.*
+*.log
+*.retry
+.tox
+docs/_build/*
diff --git a/INFO b/INFO
index 57aa6321..c2d56aee 100644
--- a/INFO
+++ b/INFO
@@ -24,5 +24,6 @@ Dan Radez (dradez@redhat.com)
Tim Rozet (trozet@redhat.com)
Michael Chapman (michapma@redhat.com)
Feng Pan (fpan@redhat.com)
+Ricardo Noriega (rnoriega@redhat.com)
Link to TSC approval of the project: http://ircbot.wl.linuxfoundation.org/meetings/opnfv-meeting/2015/opnfv-meeting.2015-07-14-14.00.html
diff --git a/INFO.yaml b/INFO.yaml
new file mode 100644
index 00000000..eaa700cf
--- /dev/null
+++ b/INFO.yaml
@@ -0,0 +1,59 @@
+---
+project: 'Apex'
+project_creation_date: 'July 14, 2015'
+project_category: 'Integration & Testing'
+lifecycle_state: 'Incubation'
+project_lead: &opnfv_apex_ptl
+ name: 'Tim Rozet'
+ email: 'trozet@redhat.com'
+ id: 'trozet'
+ company: 'redhat.com'
+ timezone: 'USA/East Coast'
+primary_contact: *opnfv_apex_ptl
+issue_tracking:
+ type: 'jira'
+ url: 'https://jira.opnfv.org/projects/APEX'
+ key: 'APEX'
+mailing_list:
+ type: 'mailman2'
+ url: 'opnfv-tech-discuss@lists.opnfv.org'
+ tag: '[apex]'
+realtime_discussion:
+ type: irc
+ server: 'freenode.net'
+ channel: '#opnfv-apex'
+meetings:
+ - type: 'gotomeeting+irc'
+ agenda: 'https://wiki.opnfv.org/display/apex'
+ url: 'http://bluejeans.com/trozet'
+ server: 'freenode.net'
+ channel: '#opnfv-apex'
+ repeats: 'weekly'
+ time: '15:00 UTC'
+repositories:
+ - 'apex'
+ - 'apex-os-net-config'
+ - 'apex-puppet-tripleo'
+ - 'apex-tripleo-heat-templates'
+committers:
+ - <<: *opnfv_apex_ptl
+ - name: 'Dan Radez'
+ email: 'dradez@redhat.com'
+ company: 'redhat.com'
+ id: 'radez'
+ - name: 'Michael Chapman'
+ email: 'michapma@redhat.com'
+ company: 'redhat.com'
+ id: 'michapma'
+ - name: 'Feng Pan'
+ email: 'fpan@redhat.com'
+ company: 'redhat.com'
+ id: 'fpan'
+ - name: 'Ricardo Noriega'
+ email: 'rnoriega@redhat.com'
+ company: 'redhat.com'
+ id: 'rnoriega'
+tsc:
+ # yamllint disable rule:line-length
+ approval: 'http//ircbot.wl.linuxfoundation.org/meetings/opnfv-meeting/2015/opnfv-meeting.2015-07-14-14.00.html'
+ # yamllint enable rule:line-length
diff --git a/apex/build.py b/apex/build.py
index 08f91abe..6e903814 100644
--- a/apex/build.py
+++ b/apex/build.py
@@ -109,11 +109,15 @@ def unpack_cache(cache_dest, cache_dir=None):
def build(build_root, version, iso=False, rpms=False):
if iso:
- make_targets = ['iso']
+ logging.warning("iso is deprecated. Will not build iso and build rpm "
+ "instead.")
+ make_targets = ['rpm']
elif rpms:
- make_targets = ['rpms']
+ make_targets = ['rpm']
else:
- make_targets = ['images', 'rpms-check']
+ logging.warning("Nothing specified to build, and images are no "
+ "longer supported in Apex. Will only run rpm check")
+ make_targets = ['rpm-check']
if version is not None:
make_args = ['RELEASE={}'.format(version)]
else:
@@ -225,6 +229,7 @@ def main():
console.setLevel(log_level)
console.setFormatter(logging.Formatter(formatter))
logging.getLogger('').addHandler(console)
+ utils.install_ansible()
# Since we only support building inside of git repo this should be fine
try:
apex_root = subprocess.check_output(
@@ -233,9 +238,7 @@ def main():
logging.error("Must be in an Apex git repo to execute build")
raise
apex_build_root = os.path.join(apex_root, BUILD_ROOT)
- if os.path.isdir(apex_build_root):
- cache_tmp_dir = os.path.join(apex_root, TMP_CACHE)
- else:
+ if not os.path.isdir(apex_build_root):
logging.error("You must execute this script inside of the Apex "
"local code repository")
raise ApexBuildException("Invalid path for apex root: {}. Must be "
@@ -244,10 +247,7 @@ def main():
dep_playbook = os.path.join(apex_root,
'lib/ansible/playbooks/build_dependencies.yml')
utils.run_ansible(None, dep_playbook)
- unpack_cache(cache_tmp_dir, args.cache_dir)
build(apex_build_root, args.build_version, args.iso, args.rpms)
- build_cache(cache_tmp_dir, args.cache_dir)
- prune_cache(args.cache_dir)
if __name__ == '__main__':
diff --git a/apex/build_utils.py b/apex/build_utils.py
index c9d8472e..7457e561 100644
--- a/apex/build_utils.py
+++ b/apex/build_utils.py
@@ -27,7 +27,7 @@ def get_change(url, repo, branch, change_id):
:param repo: name of repo
:param branch: branch of repo
:param change_id: SHA change id
- :return: change if found and not abandoned, closed, or merged
+ :return: change if found and not abandoned, closed
"""
rest = GerritRestAPI(url=url)
change_path = "{}~{}~{}".format(quote_plus(repo), quote_plus(branch),
@@ -37,12 +37,8 @@ def get_change(url, repo, branch, change_id):
try:
assert change['status'] not in 'ABANDONED' 'CLOSED', \
'Change {} is in {} state'.format(change_id, change['status'])
- if change['status'] == 'MERGED':
- logging.info('Change {} is merged, ignoring...'
- .format(change_id))
- return None
- else:
- return change
+ logging.debug('Change found: {}'.format(change))
+ return change
except KeyError:
logging.error('Failed to get valid change data structure from url '
@@ -90,6 +86,44 @@ def clone_fork(args):
logging.info('Checked out commit:\n{}'.format(ws.head.commit.message))
+def strip_patch_sections(patch, sections=['releasenotes', 'tests']):
+ """
+ Removes patch sections from a diff which contain a file path
+ :param patch: patch to strip
+ :param sections: list of keywords to use to strip out of the patch file
+ :return: stripped patch
+ """
+
+ append_line = True
+ tmp_patch = []
+ for line in patch.split("\n"):
+ if re.match('diff\s', line):
+ for section in sections:
+ if re.search(section, line):
+ logging.debug("Stripping {} from patch: {}".format(
+ section, line))
+ append_line = False
+ break
+ else:
+ append_line = True
+ if append_line:
+ tmp_patch.append(line)
+ return '\n'.join(tmp_patch)
+
+
+def is_path_in_patch(patch, path):
+ """
+ Checks if a particular path is modified in a patch diff
+ :param patch: patch diff
+ :param path: path to check for in diff
+ :return: Boolean
+ """
+ for line in patch.split("\n"):
+ if re.match('^diff.*{}'.format(path), line):
+ return True
+ return False
+
+
def get_patch(change_id, repo, branch, url=con.OPENSTACK_GERRIT):
logging.info("Fetching patch for change id {}".format(change_id))
change = get_change(url, repo, branch, change_id)
@@ -100,7 +134,7 @@ def get_patch(change_id, repo, branch, url=con.OPENSTACK_GERRIT):
change_id)
patch_url = "changes/{}/revisions/{}/patch".format(change_path,
current_revision)
- return rest.get(patch_url)
+ return strip_patch_sections(rest.get(patch_url))
def get_parser():
diff --git a/apex/builders/common_builder.py b/apex/builders/common_builder.py
index fd3bcc3d..59af94cd 100644
--- a/apex/builders/common_builder.py
+++ b/apex/builders/common_builder.py
@@ -9,19 +9,30 @@
# Common building utilities for undercloud and overcloud
+import datetime
import git
+import json
import logging
import os
+import platform
+import pprint
+import re
+import urllib.parse
+import yaml
+import apex.builders.overcloud_builder as oc_builder
from apex import build_utils
+from apex.builders import exceptions as exc
from apex.common import constants as con
+from apex.common import utils
from apex.virtual import utils as virt_utils
-def project_to_path(project):
+def project_to_path(project, patch=None):
"""
- Translates project to absolute file path
+ Translates project to absolute file path to use in patching
:param project: name of project
+ :param patch: the patch to applied to the project
:return: File path
"""
if project.startswith('openstack/'):
@@ -30,14 +41,116 @@ def project_to_path(project):
return "/etc/puppet/modules/{}".format(project.replace('puppet-', ''))
elif 'tripleo-heat-templates' in project:
return "/usr/share/openstack-tripleo-heat-templates"
+ elif ('tripleo-common' in project and
+ build_utils.is_path_in_patch(patch, 'container-images/')):
+ # tripleo-common has python and another component to it
+ # here we detect if there is a change to the yaml component and if so
+ # treat it like it is not python. This has the caveat of if there
+ # is a patch to both python and yaml this will not work
+ # FIXME(trozet): add ability to split tripleo-common patches that
+ # modify both python and yaml
+ return "/usr/share/openstack-tripleo-common-containers/"
else:
- # assume python
- return "/usr/lib/python2.7/site-packages/{}".format(project)
+ # assume python. python patches will apply to a project name subdir.
+ # For example, python-tripleoclient patch will apply to the
+ # tripleoclient directory, which is the directory extracted during
+ # python install into the PYTHONPATH. Therefore we need to just be
+ # in the PYTHONPATH directory to apply a patch
+ return "/usr/lib/python2.7/site-packages/"
+
+
+def project_to_docker_image(project, docker_url):
+ """
+ Translates OpenStack project to OOO services that are containerized
+ :param project: short name of OpenStack project
+ :return: List of OOO docker service names
+ """
+ # Fetch all docker containers in docker hub with tripleo and filter
+ # based on project
+ logging.info("Checking for docker images matching project: {}".format(
+ project))
+ hub_output = utils.open_webpage(
+ urllib.parse.urljoin(docker_url,
+ '?page_size=1024'), timeout=10)
+ try:
+ results = json.loads(hub_output.decode())['results']
+ except Exception as e:
+ logging.error("Unable to parse docker hub output for"
+ "tripleoupstream repository")
+ logging.debug("HTTP response from dockerhub:\n{}".format(hub_output))
+ raise exc.ApexCommonBuilderException(
+ "Failed to parse docker image info from Docker Hub: {}".format(e))
+ logging.debug("Docker Hub tripleoupstream entities found: {}".format(
+ results))
+ docker_images = list()
+ for result in results:
+ if result['name'].startswith("centos-binary-{}".format(project)):
+ # add as docker image shortname (just service name)
+ logging.debug("Adding docker image {} for project {} for "
+ "patching".format(result['name'], project))
+ docker_images.append(result['name'].replace('centos-binary-', ''))
+
+ return docker_images
+
+
+def is_patch_promoted(change, branch, docker_url, docker_image=None):
+ """
+ Checks to see if a patch that is in merged exists in either the docker
+ container or the promoted tripleo images
+ :param change: gerrit change json output
+ :param branch: branch to use when polling artifacts (does not include
+ stable prefix)
+ :param docker_image: container this applies to if (defaults to None)
+ :return: True if the patch exists in a promoted artifact upstream
+ """
+ assert isinstance(change, dict)
+ assert 'status' in change
+
+ # if not merged we already know this is not closed/abandoned, so we know
+ # this is not promoted
+ if change['status'] != 'MERGED':
+ return False
+ assert 'submitted' in change
+ # drop microseconds cause who cares
+ stime = re.sub('\..*$', '', change['submitted'])
+ submitted_date = datetime.datetime.strptime(stime, "%Y-%m-%d %H:%M:%S")
+ # Patch applies to overcloud/undercloud
+ if docker_image is None:
+ oc_url = urllib.parse.urljoin(
+ con.UPSTREAM_RDO.replace('master', branch), 'overcloud-full.tar')
+ oc_mtime = utils.get_url_modified_date(oc_url)
+ if oc_mtime > submitted_date:
+ logging.debug("oc image was last modified at {}, which is"
+ "newer than merge date: {}".format(oc_mtime,
+ submitted_date))
+ return True
+ else:
+ # must be a docker patch, check docker tag modified time
+ docker_url = docker_url.replace('tripleomaster',
+ "tripleo{}".format(branch))
+ url_path = "{}/tags/{}".format(docker_image, con.DOCKER_TAG)
+ docker_url = urllib.parse.urljoin(docker_url, url_path)
+ logging.debug("docker url is: {}".format(docker_url))
+ docker_output = utils.open_webpage(docker_url, 10)
+ logging.debug('Docker web output: {}'.format(docker_output))
+ hub_mtime = json.loads(docker_output.decode())['last_updated']
+ hub_mtime = re.sub('\..*$', '', hub_mtime)
+ # docker modified time is in this format '2018-06-11T15:23:55.135744Z'
+ # and we drop microseconds
+ hub_dtime = datetime.datetime.strptime(hub_mtime, "%Y-%m-%dT%H:%M:%S")
+ if hub_dtime > submitted_date:
+ logging.debug("docker image: {} was last modified at {}, which is"
+ "newer than merge date: {}".format(docker_image,
+ hub_dtime,
+ submitted_date))
+ return True
+ return False
def add_upstream_patches(patches, image, tmp_dir,
default_branch=os.path.join('stable',
- con.DEFAULT_OS_VERSION)):
+ con.DEFAULT_OS_VERSION),
+ uc_ip=None, docker_tag=None):
"""
Adds patches from upstream OpenStack gerrit to Undercloud for deployment
:param patches: list of patches
@@ -45,10 +158,13 @@ def add_upstream_patches(patches, image, tmp_dir,
:param tmp_dir: to store temporary patch files
:param default_branch: default branch to fetch commit (if not specified
in patch)
- :return: None
+ :param uc_ip: undercloud IP (required only for docker patches)
+ :param docker_tag: Docker Tag (required only for docker patches)
+ :return: Set of docker services patched (if applicable)
"""
virt_ops = [{con.VIRT_INSTALL: 'patch'}]
logging.debug("Evaluating upstream patches:\n{}".format(patches))
+ docker_services = set()
for patch in patches:
assert isinstance(patch, dict)
assert all(i in patch.keys() for i in ['project', 'change-id'])
@@ -58,23 +174,93 @@ def add_upstream_patches(patches, image, tmp_dir,
branch = default_branch
patch_diff = build_utils.get_patch(patch['change-id'],
patch['project'], branch)
- if patch_diff:
+ project_path = project_to_path(patch['project'], patch_diff)
+ # If docker tag and python we know this patch belongs on docker
+ # container for a docker service. Therefore we build the dockerfile
+ # and move the patch into the containers directory. We also assume
+ # this builder call is for overcloud, because we do not support
+ # undercloud containers
+ if platform.machine() == 'aarch64':
+ docker_url = con.DOCKERHUB_AARCH64
+ else:
+ docker_url = con.DOCKERHUB_OOO
+ if docker_tag and 'python' in project_path:
+ # Projects map to multiple THT services, need to check which
+ # are supported
+ project_short_name = os.path.basename(patch['project'])
+ ooo_docker_services = project_to_docker_image(project_short_name,
+ docker_url)
+ if not ooo_docker_services:
+ logging.error("Did not find any matching docker containers "
+ "for project: {}".format(project_short_name))
+ raise exc.ApexCommonBuilderException(
+ 'Unable to find docker services for python project in '
+ 'patch')
+ # Just use the first image to see if patch was promoted into it
+ docker_img = ooo_docker_services[0]
+ else:
+ ooo_docker_services = []
+ docker_img = None
+ change = build_utils.get_change(con.OPENSTACK_GERRIT,
+ patch['project'], branch,
+ patch['change-id'])
+ patch_promoted = is_patch_promoted(change,
+ branch.replace('stable/', ''),
+ docker_url,
+ docker_img)
+
+ if patch_diff and not patch_promoted:
patch_file = "{}.patch".format(patch['change-id'])
- patch_file_path = os.path.join(tmp_dir, patch_file)
- with open(patch_file_path, 'w') as fh:
- fh.write(patch_diff)
- project_path = project_to_path(patch['project'])
- virt_ops.extend([
- {con.VIRT_UPLOAD: "{}:{}".format(patch_file_path,
- project_path)},
- {con.VIRT_RUN_CMD: "cd {} && patch -p1 < {}".format(
- project_path, patch_file)}])
- logging.info("Adding patch {} to {}".format(patch_file,
- image))
+ patch_file_paths = []
+ # If we found services, then we treat the patch like it applies to
+ # docker only
+ if ooo_docker_services:
+ os_version = default_branch.replace('stable/', '')
+ for service in ooo_docker_services:
+ docker_services = docker_services.union({service})
+ # We need to go root to be able to install patch and then
+ # switch back to previous user. Some containers that
+ # have the same name as the project do not necessarily
+ # contain the project code. For example
+ # novajoin-notifier does not contain nova package code.
+ # Therefore we must try to patch and unfortunately
+ # ignore failures until we have a better way of checking
+ # this
+ docker_cmds = [
+ "WORKDIR {}".format(project_path),
+ "USER root",
+ "ARG REAL_USER",
+ "RUN yum -y install patch",
+ "ADD {} {}".format(patch_file, project_path),
+ "RUN patch -p1 < {} || echo "
+ "'Patching failed'".format(patch_file),
+ "USER $REAL_USER"
+ ]
+ src_img_uri = "{}:8787/tripleo{}/centos-binary-{}:" \
+ "{}".format(uc_ip, os_version, service,
+ docker_tag)
+ oc_builder.build_dockerfile(service, tmp_dir, docker_cmds,
+ src_img_uri)
+ patch_file_paths.append(os.path.join(
+ tmp_dir, "containers/{}".format(service), patch_file))
+ else:
+ patch_file_path = os.path.join(tmp_dir, patch_file)
+ virt_ops.extend([
+ {con.VIRT_UPLOAD: "{}:{}".format(patch_file_path,
+ project_path)},
+ {con.VIRT_RUN_CMD: "cd {} && patch -p1 < {}".format(
+ project_path, patch_file)}])
+ logging.info("Adding patch {} to {}".format(patch_file,
+ image))
+ patch_file_paths.append(patch_file_path)
+ for patch_fp in patch_file_paths:
+ with open(patch_fp, 'w') as fh:
+ fh.write(patch_diff)
else:
logging.info("Ignoring patch:\n{}".format(patch))
if len(virt_ops) > 1:
virt_utils.virt_customize(virt_ops, image)
+ return docker_services
def add_repo(repo_url, repo_name, image, tmp_dir):
@@ -109,3 +295,41 @@ def create_git_archive(repo_url, repo_name, tmp_dir,
repo.archive(fh, prefix=prefix)
logging.debug("Wrote archive file: {}".format(archive_path))
return archive_path
+
+
+def get_neutron_driver(ds_opts):
+ sdn = ds_opts.get('sdn_controller', None)
+
+ if sdn == 'opendaylight':
+ return 'odl'
+ elif sdn == 'ovn':
+ return sdn
+ elif ds_opts.get('vpp', False):
+ return 'vpp'
+ else:
+ return None
+
+
+def prepare_container_images(prep_file, branch='master', neutron_driver=None):
+ if not os.path.isfile(prep_file):
+ raise exc.ApexCommonBuilderException("Prep file does not exist: "
+ "{}".format(prep_file))
+ with open(prep_file) as fh:
+ data = yaml.safe_load(fh)
+ try:
+ p_set = data['parameter_defaults']['ContainerImagePrepare'][0]['set']
+ if neutron_driver:
+ p_set['neutron_driver'] = neutron_driver
+ p_set['namespace'] = "docker.io/tripleo{}".format(branch)
+ if platform.machine() == 'aarch64':
+ p_set['namespace'] = "docker.io/armbandapex"
+ p_set['ceph_tag'] = 'v3.1.0-stable-3.1-luminous-centos-7-aarch64'
+
+ except KeyError:
+ logging.error("Invalid prep file format: {}".format(prep_file))
+ raise exc.ApexCommonBuilderException("Invalid format for prep file")
+
+ logging.debug("Writing new container prep file:\n{}".format(
+ pprint.pformat(data)))
+ with open(prep_file, 'w') as fh:
+ yaml.safe_dump(data, fh, default_flow_style=False)
diff --git a/apex/builders/exceptions.py b/apex/builders/exceptions.py
new file mode 100644
index 00000000..b88f02bf
--- /dev/null
+++ b/apex/builders/exceptions.py
@@ -0,0 +1,12 @@
+##############################################################################
+# Copyright (c) 2018 Tim Rozet (trozet@redhat.com) and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+
+class ApexCommonBuilderException(Exception):
+ pass
diff --git a/apex/builders/overcloud_builder.py b/apex/builders/overcloud_builder.py
index e7b07963..eab8fb66 100644
--- a/apex/builders/overcloud_builder.py
+++ b/apex/builders/overcloud_builder.py
@@ -10,17 +10,27 @@
# Used to modify overcloud qcow2 image
import logging
+import os
+import tarfile
-from apex.builders import common_builder as c_builder
+import apex.builders.common_builder
from apex.common import constants as con
+from apex.common import utils as utils
+from apex.common.exceptions import ApexBuildException
from apex.virtual import utils as virt_utils
-def inject_opendaylight(odl_version, image, tmp_dir):
+def inject_opendaylight(odl_version, image, tmp_dir, uc_ip,
+ os_version, docker_tag=None):
assert odl_version in con.VALID_ODL_VERSIONS
# add repo
if odl_version == 'master':
+ # last version in the constants is "master" so select 2nd to last
+ # odl package version has no "master" version
odl_pkg_version = con.VALID_ODL_VERSIONS[-2]
+ # branch will be used to pull puppet-opendaylight. Since puppet-odl
+ # does not pull branch until later, we need to use master version of
+ # that if master ODL version is specified
branch = odl_version
else:
odl_pkg_version = odl_version
@@ -28,18 +38,137 @@ def inject_opendaylight(odl_version, image, tmp_dir):
odl_url = "https://nexus.opendaylight.org/content/repositories" \
"/opendaylight-{}-epel-7-x86_64-devel/".format(odl_pkg_version)
repo_name = "opendaylight-{}".format(odl_pkg_version)
- c_builder.add_repo(odl_url, repo_name, image, tmp_dir)
+ apex.builders.common_builder.add_repo(odl_url, repo_name, image, tmp_dir)
# download puppet-opendaylight
- archive = c_builder.create_git_archive(
+ archive = apex.builders.common_builder.create_git_archive(
repo_url=con.PUPPET_ODL_URL, repo_name='puppet-opendaylight',
tmp_dir=tmp_dir, branch=branch, prefix='opendaylight/')
# install ODL, puppet-odl
virt_ops = [
- {con.VIRT_INSTALL: 'opendaylight'},
{con.VIRT_UPLOAD: "{}:/etc/puppet/modules/".format(archive)},
{con.VIRT_RUN_CMD: 'rm -rf /etc/puppet/modules/opendaylight'},
{con.VIRT_RUN_CMD: "cd /etc/puppet/modules/ && tar xvf "
- "puppet-opendaylight.tar"}
+ "puppet-opendaylight.tar"},
+ {con.VIRT_INSTALL: "java-1.8.0-openjdk"}
]
+ if docker_tag:
+ docker_cmds = [
+ "RUN yum remove opendaylight -y",
+ "RUN echo $'[opendaylight]\\n\\",
+ "baseurl={}\\n\\".format(odl_url),
+ "gpgcheck=0\\n\\",
+ "enabled=1' > /etc/yum.repos.d/opendaylight.repo",
+ "RUN yum -y install opendaylight"
+ ]
+ src_img_uri = "{}:8787/tripleo{}/centos-binary-{}:" \
+ "{}".format(uc_ip, os_version, 'opendaylight',
+ docker_tag)
+ build_dockerfile('opendaylight', tmp_dir, docker_cmds, src_img_uri)
+ else:
+ virt_ops.append({con.VIRT_INSTALL: 'opendaylight'})
virt_utils.virt_customize(virt_ops, image)
logging.info("OpenDaylight injected into {}".format(image))
+
+
+def inject_quagga(image, tmp_dir):
+ """
+ Downloads quagga tarball from artifacts.opnfv.org
+ and install it on the overcloud image on the fly.
+ :param image:
+ :param tmp_dir:
+ :return:
+ """
+ utils.fetch_upstream_and_unpack(tmp_dir,
+ os.path.split(con.QUAGGA_URL)[0] + "/",
+ [os.path.basename(con.QUAGGA_URL)])
+
+ virt_ops = [
+ {con.VIRT_UPLOAD: "{}/quagga-4.tar.gz:/root/".format(tmp_dir)},
+ {con.VIRT_RUN_CMD: "cd /root/ && tar xzf quagga-4.tar.gz"},
+ {con.VIRT_RUN_CMD: "cd /root/quagga;packages=$(ls |grep -vE 'debug"
+ "info|devel|contrib');yum -y install $packages"}
+ ]
+ virt_utils.virt_customize(virt_ops, image)
+ logging.info("Quagga injected into {}".format(image))
+
+
+def inject_ovs_nsh(image, tmp_dir):
+ """
+ Downloads OpenVswitch, compiles it and installs it on the
+ overcloud image on the fly.
+ :param image:
+ :param tmp_dir:
+ :return:
+ """
+ ovs_filename = os.path.basename(con.OVS_URL)
+ ovs_folder = ovs_filename.replace(".tar.gz", "")
+ utils.fetch_upstream_and_unpack(tmp_dir,
+ os.path.split(con.OVS_URL)[0] + "/",
+ [ovs_filename])
+ (ovs_dist_name, ovs_version) = ovs_folder.split("-")
+
+ virt_ops = [
+ {con.VIRT_UPLOAD: "{}:/root/".format(tmp_dir + "/" + ovs_filename)},
+ {con.VIRT_INSTALL: "rpm-build,autoconf,automake,libtool,openssl,"
+ "openssl-devel,python,python-twisted-core,python-six,groff,graphviz,"
+ "python-zope-interface,desktop-file-utils,procps-ng,PyQt4,"
+ "libcap-ng,libcap-ng-devel,selinux-policy-devel,kernel-devel,"
+ "kernel-headers,kernel-tools,rpmdevtools,systemd-units,python-devel,"
+ "python-sphinx"},
+ {con.VIRT_RUN_CMD: "cd /root/ && tar xzf {}".format(ovs_filename)},
+ {con.VIRT_UPLOAD:
+ "{}/build_ovs_nsh.sh:/root/{}".format(tmp_dir, ovs_folder)},
+ {con.VIRT_RUN_CMD:
+ "cd /root/{0} && chmod -R 777 * && chown -R root:root * && "
+ "./build_ovs_nsh.sh && rpm -Uhv --force rpm/rpmbuild/RPMS/x86_64/{0}"
+ "-1.el7.x86_64.rpm && rpm -Uhv --force rpm/rpmbuild/RPMS/x86_64"
+ "/openvswitch-kmod-{1}-1.el7.x86_64.rpm".format(ovs_folder,
+ ovs_version)}
+ ]
+ virt_utils.virt_customize(virt_ops, image)
+ logging.info("OVS injected into {}".format(image))
+
+
+def build_dockerfile(service, tmp_dir, docker_cmds, src_image_uri):
+ """
+ Builds docker file per service and stores it in a
+ tmp_dir/containers/<service> directory. If the Dockerfile already exists,
+ simply append the docker cmds to it.
+ :param service: name of sub-directory to store Dockerfile in
+ :param tmp_dir: Temporary directory to store the container's dockerfile in
+ :param docker_cmds: List of commands to insert into the dockerfile
+ :param src_image_uri: Docker URI format for where the source image exists
+ :return: None
+ """
+ logging.debug("Building Dockerfile for {} with docker_cmds: {}".format(
+ service, docker_cmds))
+ c_dir = os.path.join(tmp_dir, 'containers')
+ service_dir = os.path.join(c_dir, service)
+ if not os.path.isdir(service_dir):
+ os.makedirs(service_dir, exist_ok=True)
+ from_cmd = "FROM {}\n".format(src_image_uri)
+ service_file = os.path.join(service_dir, 'Dockerfile')
+ assert isinstance(docker_cmds, list)
+ if os.path.isfile(service_file):
+ append_cmds = True
+ else:
+ append_cmds = False
+ with open(service_file, "a+") as fh:
+ if not append_cmds:
+ fh.write(from_cmd)
+ fh.write('\n'.join(docker_cmds))
+
+
+def archive_docker_patches(tmp_dir):
+ """
+ Archives Overcloud docker patches into a tar file for upload to Undercloud
+ :param tmp_dir: temporary directory where containers folder is stored
+ :return: None
+ """
+ container_path = os.path.join(tmp_dir, 'containers')
+ if not os.path.isdir(container_path):
+ raise ApexBuildException("Docker directory for patches not found: "
+ "{}".format(container_path))
+ archive_file = os.path.join(tmp_dir, 'docker_patches.tar.gz')
+ with tarfile.open(archive_file, "w:gz") as tar:
+ tar.add(container_path, arcname=os.path.basename(container_path))
diff --git a/apex/builders/undercloud_builder.py b/apex/builders/undercloud_builder.py
index baba8a55..47d2568d 100644
--- a/apex/builders/undercloud_builder.py
+++ b/apex/builders/undercloud_builder.py
@@ -8,8 +8,13 @@
##############################################################################
# Used to modify undercloud qcow2 image
+import logging
+import json
+import os
+import subprocess
from apex.common import constants as con
+from apex.common import utils
from apex.virtual import utils as virt_utils
@@ -21,18 +26,82 @@ def add_upstream_packages(image):
"""
virt_ops = list()
pkgs = [
+ 'epel-release',
'openstack-utils',
- 'ceph-common',
'python2-networking-sfc',
'openstack-ironic-inspector',
'subunit-filters',
'docker-distribution',
'openstack-tripleo-validations',
'libguestfs-tools',
+ 'python-tripleoclient',
+ 'openstack-tripleo-heat-templates'
]
+ # Remove incompatible python-docker version
+ virt_ops.append({con.VIRT_RUN_CMD: "yum remove -y python-docker-py"})
for pkg in pkgs:
virt_ops.append({con.VIRT_INSTALL: pkg})
virt_utils.virt_customize(virt_ops, image)
+
+def inject_calipso_installer(tmp_dir, image):
+ """
+ Downloads calipso installer script from artifacts.opnfv.org
+ and puts it under /root/ for further installation process.
+ :return:
+ """
+ calipso_file = os.path.basename(con.CALIPSO_INSTALLER_URL)
+ calipso_url = con.CALIPSO_INSTALLER_URL.replace(calipso_file, '')
+ utils.fetch_upstream_and_unpack(tmp_dir, calipso_url, [calipso_file])
+
+ virt_ops = [
+ {con.VIRT_UPLOAD: "{}/{}:/root/".format(tmp_dir, calipso_file)}]
+ virt_utils.virt_customize(virt_ops, image)
+ logging.info("Calipso injected into {}".format(image))
+
+# TODO(trozet): add unit testing for calipso injector
# TODO(trozet): add rest of build for undercloud here as well
+
+
+def update_repos(image, branch):
+ virt_ops = [
+ {con.VIRT_RUN_CMD: "rm -f /etc/yum.repos.d/delorean*"},
+ {con.VIRT_RUN_CMD: "yum-config-manager --add-repo "
+ "https://trunk.rdoproject.org/centos7/{}"
+ "/delorean.repo".format(con.RDO_TAG)},
+ {con.VIRT_RUN_CMD: "yum clean all"},
+ {con.VIRT_INSTALL: "python2-tripleo-repos"},
+ {con.VIRT_RUN_CMD: "tripleo-repos -b {} {} ceph".format(branch,
+ con.RDO_TAG)}
+ ]
+ virt_utils.virt_customize(virt_ops, image)
+
+
+def expand_disk(image, desired_size=50):
+ """
+ Expands a disk image to desired_size in GigaBytes
+ :param image: image to resize
+ :param desired_size: desired size in GB
+ :return: None
+ """
+ # there is a lib called vminspect which has some dependencies and is
+ # not yet available in pip. Consider switching to this lib later.
+ try:
+ img_out = json.loads(subprocess.check_output(
+ ['qemu-img', 'info', '--output=json', image],
+ stderr=subprocess.STDOUT).decode())
+ disk_gb_size = int(img_out['virtual-size'] / 1000000000)
+ if disk_gb_size < desired_size:
+ logging.info("Expanding disk image: {}. Current size: {} is less"
+ "than require size: {}".format(image, disk_gb_size,
+ desired_size))
+ diff_size = desired_size - disk_gb_size
+ subprocess.check_call(['qemu-img', 'resize', image,
+ "+{}G".format(diff_size)],
+ stderr=subprocess.STDOUT)
+
+ except (subprocess.CalledProcessError, json.JSONDecodeError, KeyError) \
+ as e:
+ logging.warning("Unable to resize disk, disk may not be large "
+ "enough: {}".format(e))
diff --git a/apex/clean.py b/apex/clean.py
index f56287e1..3e33c8e4 100644
--- a/apex/clean.py
+++ b/apex/clean.py
@@ -114,7 +114,13 @@ def clean_networks():
logging.debug("Destroying virsh network: {}".format(network))
if virsh_net.isActive():
virsh_net.destroy()
- virsh_net.undefine()
+ try:
+ virsh_net.undefine()
+ except libvirt.libvirtError as e:
+ if 'Network not found' in e.get_error_message():
+ logging.debug('Network already undefined')
+ else:
+ raise
def main():
diff --git a/apex/common/constants.py b/apex/common/constants.py
index a2b9a634..59988f74 100644
--- a/apex/common/constants.py
+++ b/apex/common/constants.py
@@ -16,7 +16,7 @@ STORAGE_NETWORK = 'storage'
API_NETWORK = 'api'
CONTROLLER = 'controller'
COMPUTE = 'compute'
-
+ANSIBLE_PATH = 'ansible/playbooks'
OPNFV_NETWORK_TYPES = [ADMIN_NETWORK, TENANT_NETWORK, EXTERNAL_NETWORK,
STORAGE_NETWORK, API_NETWORK]
DNS_SERVERS = ["8.8.8.8", "8.8.4.4"]
@@ -39,14 +39,43 @@ VIRT_PW = '--root-password'
THT_DIR = '/usr/share/openstack-tripleo-heat-templates'
THT_ENV_DIR = os.path.join(THT_DIR, 'environments')
+THT_DOCKER_ENV_DIR = os.path.join(THT_ENV_DIR, 'services')
-DEFAULT_OS_VERSION = 'pike'
-DEFAULT_ODL_VERSION = 'nitrogen'
-VALID_ODL_VERSIONS = ['carbon', 'nitrogen', 'oxygen', 'master']
+DEFAULT_OS_VERSION = 'master'
+DEFAULT_ODL_VERSION = 'oxygen'
+VALID_ODL_VERSIONS = ['carbon', 'nitrogen', 'oxygen', 'fluorine',
+ 'neon', 'master']
PUPPET_ODL_URL = 'https://git.opendaylight.org/gerrit/integration/packaging' \
'/puppet-opendaylight'
DEBUG_OVERCLOUD_PW = 'opnfvapex'
NET_ENV_FILE = 'network-environment.yaml'
-DEPLOY_TIMEOUT = 90
-UPSTREAM_RDO = 'https://images.rdoproject.org/pike/delorean/current-tripleo/'
-OPENSTACK_GERRIT = 'https://review.openstack.org'
+DEPLOY_TIMEOUT = 120
+RDO_TAG = 'current-tripleo'
+UPSTREAM_RDO = "https://images.rdoproject.org/master/rdo_trunk/{}/".format(
+ RDO_TAG)
+OPENSTACK_GERRIT = 'https://review.opendev.org'
+
+DOCKER_TAG = RDO_TAG
+# Maps regular service files to docker versions
+# None value means mapping is same as key
+VALID_DOCKER_SERVICES = {
+ 'neutron-opendaylight.yaml': None,
+ 'neutron-opendaylight-dpdk.yaml': None,
+ 'neutron-opendaylight-sriov.yaml': None,
+ 'neutron-bgpvpn-opendaylight.yaml': None,
+ 'neutron-sfc-opendaylight.yaml': None,
+ 'neutron-ml2-ovn.yaml': 'neutron-ovn-ha.yaml'
+}
+DOCKERHUB_OOO = 'https://registry.hub.docker.com/v2/repositories' \
+ '/tripleomaster/'
+DOCKERHUB_AARCH64 = 'https://registry.hub.docker.com/v2/repositories' \
+ '/armbandapex/'
+KUBESPRAY_URL = 'https://github.com/kubernetes-incubator/kubespray.git'
+OPNFV_ARTIFACTS = 'http://storage.googleapis.com/artifacts.opnfv.org'
+CUSTOM_OVS = '{}/apex/random/openvswitch-2.9.0-9.el7fdn.x86_64.' \
+ 'rpm'.format(OPNFV_ARTIFACTS)
+
+OVS_URL = "http://openvswitch.org/releases/openvswitch-2.9.2.tar.gz"
+QUAGGA_URL = "{}/sdnvpn/quagga/quagga-4.tar.gz".format(OPNFV_ARTIFACTS)
+CALIPSO_INSTALLER_URL = "https://raw.githubusercontent.com/opnfv/calipso" \
+ "/master/app/install/calipso-installer.py"
diff --git a/apex/common/exceptions.py b/apex/common/exceptions.py
index 54d99834..6d8383b8 100644
--- a/apex/common/exceptions.py
+++ b/apex/common/exceptions.py
@@ -18,3 +18,19 @@ class JumpHostNetworkException(Exception):
class ApexCleanException(Exception):
pass
+
+
+class ApexBuildException(Exception):
+ pass
+
+
+class SnapshotDeployException(Exception):
+ pass
+
+
+class OvercloudNodeException(Exception):
+ pass
+
+
+class FetchException(Exception):
+ pass
diff --git a/apex/common/utils.py b/apex/common/utils.py
index 13250a45..72a66d10 100644
--- a/apex/common/utils.py
+++ b/apex/common/utils.py
@@ -8,10 +8,12 @@
##############################################################################
import datetime
+import distro
import json
import logging
import os
import pprint
+import socket
import subprocess
import tarfile
import time
@@ -20,6 +22,8 @@ import urllib.request
import urllib.parse
import yaml
+from apex.common import exceptions as exc
+
def str2bool(var):
if isinstance(var, bool):
@@ -71,12 +75,17 @@ def run_ansible(ansible_vars, playbook, host='localhost', user='root',
Executes ansible playbook and checks for errors
:param ansible_vars: dictionary of variables to inject into ansible run
:param playbook: playbook to execute
+ :param host: inventory file or string of target hosts
+ :param user: remote user to run ansible tasks
:param tmp_dir: temp directory to store ansible command
:param dry_run: Do not actually apply changes
:return: None
"""
logging.info("Executing ansible playbook: {}".format(playbook))
- inv_host = "{},".format(host)
+ if not os.path.isfile(host):
+ inv_host = "{},".format(host)
+ else:
+ inv_host = host
if host == 'localhost':
conn_type = 'local'
else:
@@ -137,45 +146,66 @@ def run_ansible(ansible_vars, playbook, host='localhost', user='root',
raise Exception(e)
-def fetch_upstream_and_unpack(dest, url, targets):
+def get_url_modified_date(url):
+ """
+ Returns the last modified date for an Tripleo image artifact
+ :param url: URL to examine
+ :return: datetime object of when artifact was last modified
+ """
+ try:
+ u = urllib.request.urlopen(url)
+ except urllib.error.URLError as e:
+ logging.error("Failed to fetch target url. Error: {}".format(
+ e.reason))
+ raise
+
+ metadata = u.info()
+ headers = metadata.items()
+ for header in headers:
+ if isinstance(header, tuple) and len(header) == 2:
+ if header[0] == 'Last-Modified':
+ return datetime.datetime.strptime(header[1],
+ "%a, %d %b %Y %X GMT")
+
+
+def fetch_upstream_and_unpack(dest, url, targets, fetch=True):
"""
Fetches targets from a url destination and downloads them if they are
newer. Also unpacks tar files in dest dir.
:param dest: Directory to download and unpack files to
:param url: URL where target files are located
:param targets: List of target files to download
+ :param fetch: Whether or not to fetch latest from internet (boolean)
:return: None
"""
os.makedirs(dest, exist_ok=True)
assert isinstance(targets, list)
for target in targets:
- download_target = True
target_url = urllib.parse.urljoin(url, target)
target_dest = os.path.join(dest, target)
- logging.debug("Fetching and comparing upstream target: \n{}".format(
- target_url))
- try:
- u = urllib.request.urlopen(target_url)
- except urllib.error.URLError as e:
- logging.error("Failed to fetch target url. Error: {}".format(
- e.reason))
- raise
- if os.path.isfile(target_dest):
+ target_exists = os.path.isfile(target_dest)
+ if fetch:
+ download_target = True
+ elif not target_exists:
+ logging.warning("no-fetch requested but target: {} is not "
+ "cached, will download".format(target_dest))
+ download_target = True
+ else:
+ logging.info("no-fetch requested and previous cache exists for "
+ "target: {}. Will skip download".format(target_dest))
+ download_target = False
+
+ if download_target:
+ logging.debug("Fetching and comparing upstream"
+ " target: \n{}".format(target_url))
+ # Check if previous file and fetch we need to compare files to
+ # determine if download is necessary
+ if target_exists and download_target:
logging.debug("Previous file found: {}".format(target_dest))
- metadata = u.info()
- headers = metadata.items()
- target_url_date = None
- for header in headers:
- if isinstance(header, tuple) and len(header) == 2:
- if header[0] == 'Last-Modified':
- target_url_date = header[1]
- break
+ target_url_date = get_url_modified_date(target_url)
if target_url_date is not None:
target_dest_mtime = os.path.getmtime(target_dest)
- target_url_mtime = time.mktime(
- datetime.datetime.strptime(target_url_date,
- "%a, %d %b %Y %X "
- "GMT").timetuple())
+ target_url_mtime = time.mktime(target_url_date.timetuple())
if target_url_mtime > target_dest_mtime:
logging.debug('URL target is newer than disk...will '
'download')
@@ -184,11 +214,111 @@ def fetch_upstream_and_unpack(dest, url, targets):
download_target = False
else:
logging.debug('Unable to find last modified url date')
+
if download_target:
urllib.request.urlretrieve(target_url, filename=target_dest)
logging.info("Target downloaded: {}".format(target))
- if target.endswith('.tar'):
+ if target.endswith(('.tar', 'tar.gz', 'tgz')):
logging.info('Unpacking tar file')
tar = tarfile.open(target_dest)
tar.extractall(path=dest)
tar.close()
+
+
+def install_ansible():
+ # we only install for CentOS/Fedora for now
+ dist = distro.id()
+ if 'centos' in dist:
+ pkg_mgr = 'yum'
+ elif 'fedora' in dist:
+ pkg_mgr = 'dnf'
+ else:
+ return
+
+ # yum python module only exists for 2.x, so use subprocess
+ try:
+ subprocess.check_call([pkg_mgr, '-y', 'install', 'ansible'])
+ except subprocess.CalledProcessError:
+ logging.warning('Unable to install Ansible')
+
+
+def internet_connectivity():
+ try:
+ urllib.request.urlopen('http://opnfv.org', timeout=3)
+ return True
+ except (urllib.request.URLError, socket.timeout):
+ logging.debug('No internet connectivity detected')
+ return False
+
+
+def open_webpage(url, timeout=5):
+ try:
+ response = urllib.request.urlopen(url, timeout=timeout)
+ return response.read()
+ except (urllib.request.URLError, socket.timeout) as e:
+ logging.error("Unable to open URL: {}".format(url))
+ raise exc.FetchException('Unable to open URL') from e
+
+
+def edit_tht_env(env_file, section, settings):
+ assert isinstance(settings, dict)
+ with open(env_file) as fh:
+ data = yaml.safe_load(fh)
+
+ if section not in data.keys():
+ data[section] = {}
+ for setting, value in settings.items():
+ data[section][setting] = value
+ with open(env_file, 'w') as fh:
+ yaml.safe_dump(data, fh, default_flow_style=False)
+ logging.debug("Data written to env file {}:\n{}".format(env_file, data))
+
+
+def unique(tmp_list):
+ assert isinstance(tmp_list, list)
+ uniq_list = []
+ for x in tmp_list:
+ if x not in uniq_list:
+ uniq_list.append(x)
+ return uniq_list
+
+
+def bash_settings_to_dict(data):
+ """
+ Parses bash settings x=y and returns dict of key, values
+ :param data: bash settings data in x=y format
+ :return: dict of keys and values
+ """
+ return dict(item.split('=') for item in data.splitlines())
+
+
+def fetch_properties(url):
+ """
+ Downloads OPNFV properties and returns a dictionary of the key, values
+ :param url: URL of properties file
+ :return: dict of k,v for each properties
+ """
+ if bool(urllib.parse.urlparse(url).scheme):
+ logging.debug('Fetching properties from internet: {}'.format(url))
+ return bash_settings_to_dict(open_webpage(url).decode('utf-8'))
+ elif os.path.isfile(url):
+ logging.debug('Fetching properties from file: {}'.format(url))
+ with open(url, 'r') as fh:
+ data = fh.read()
+ return bash_settings_to_dict(data)
+ else:
+ logging.warning('Unable to fetch properties for: {}'.format(url))
+ raise exc.FetchException('Unable determine properties location: '
+ '{}'.format(url))
+
+
+def find_container_client(os_version):
+ """
+ Determines whether to use docker or podman client
+ :param os_version: openstack version
+ :return: client name as string
+ """
+ if os_version == 'rocky' or os_version == 'queens':
+ return 'docker'
+ else:
+ return 'podman'
diff --git a/apex/deploy.py b/apex/deploy.py
index 5485d150..d0c2b208 100644
--- a/apex/deploy.py
+++ b/apex/deploy.py
@@ -10,6 +10,7 @@
##############################################################################
import argparse
+import git
import json
import logging
import os
@@ -18,20 +19,23 @@ import pprint
import shutil
import sys
import tempfile
+import yaml
import apex.virtual.configure_vm as vm_lib
import apex.virtual.utils as virt_utils
+import apex.builders.common_builder as c_builder
+import apex.builders.overcloud_builder as oc_builder
+import apex.builders.undercloud_builder as uc_builder
from apex import DeploySettings
from apex import Inventory
from apex import NetworkEnvironment
from apex import NetworkSettings
-from apex.builders import common_builder as c_builder
-from apex.builders import overcloud_builder as oc_builder
-from apex.builders import undercloud_builder as uc_builder
+from apex.deployment.snapshot import SnapshotDeployment
from apex.common import utils
from apex.common import constants
from apex.common import parsers
from apex.common.exceptions import ApexDeployException
+from apex.deployment.tripleo import ApexDeployment
from apex.network import jumphost
from apex.network import network_data
from apex.undercloud import undercloud as uc_lib
@@ -39,13 +43,13 @@ from apex.overcloud import config as oc_cfg
from apex.overcloud import deploy as oc_deploy
APEX_TEMP_DIR = tempfile.mkdtemp(prefix='apex_tmp')
-ANSIBLE_PATH = 'ansible/playbooks'
SDN_IMAGE = 'overcloud-full-opendaylight.qcow2'
-
-
-def deploy_quickstart(args, deploy_settings_file, network_settings_file,
- inventory_file=None):
- pass
+UC_DISK_FILES = [
+ 'overcloud-full.vmlinuz',
+ 'overcloud-full.initrd',
+ 'ironic-python-agent.initramfs',
+ 'ironic-python-agent.kernel'
+]
def validate_cross_settings(deploy_settings, net_settings, inventory):
@@ -113,7 +117,7 @@ def create_deploy_parser():
help='File which contains Apex deploy settings')
deploy_parser.add_argument('-n', '--network-settings',
dest='network_settings_file',
- required=True,
+ required=False,
help='File which contains Apex network '
'settings')
deploy_parser.add_argument('-i', '--inventory-file',
@@ -174,13 +178,29 @@ def create_deploy_parser():
default='/usr/share/opnfv-apex',
help='Directory path for apex ansible '
'and third party libs')
- deploy_parser.add_argument('--quickstart', action='store_true',
+ deploy_parser.add_argument('-s', '--snapshot', action='store_true',
default=False,
- help='Use tripleo-quickstart to deploy')
+ help='Use snapshots for deployment')
+ deploy_parser.add_argument('--snap-cache', dest='snap_cache',
+ default="{}/snap_cache".format(
+ os.path.expanduser('~')),
+ help='Local directory to cache snapshot '
+ 'artifacts. Defaults to $HOME/snap_cache')
deploy_parser.add_argument('--upstream', action='store_true',
- default=False,
+ default=True,
help='Force deployment to use upstream '
- 'artifacts')
+ 'artifacts. This option is now '
+ 'deprecated and only upstream '
+ 'deployments are supported.')
+ deploy_parser.add_argument('--no-fetch', action='store_true',
+ default=False,
+ help='Ignore fetching latest upstream and '
+ 'use what is in cache')
+ deploy_parser.add_argument('-p', '--patches',
+ default='/etc/opnfv-apex/common-patches.yaml',
+ dest='patches_file',
+ help='File to include for common patches '
+ 'which apply to all deployment scenarios')
return deploy_parser
@@ -192,20 +212,25 @@ def validate_deploy_args(args):
"""
logging.debug('Validating arguments for deployment')
- if args.virtual and args.inventory_file is not None:
+ if args.snapshot:
+ logging.debug('Skipping inventory validation as it is not applicable'
+ 'to snapshot deployments')
+ elif args.virtual and args.inventory_file is not None:
logging.error("Virtual enabled but inventory file also given")
raise ApexDeployException('You should not specify an inventory file '
'with virtual deployments')
elif args.virtual:
args.inventory_file = os.path.join(APEX_TEMP_DIR,
'inventory-virt.yaml')
- elif os.path.isfile(args.inventory_file) is False:
+ elif not os.path.isfile(args.inventory_file):
logging.error("Specified inventory file does not exist: {}".format(
args.inventory_file))
raise ApexDeployException('Specified inventory file does not exist')
for settings_file in (args.deploy_settings_file,
args.network_settings_file):
+ if settings_file == args.network_settings_file and args.snapshot:
+ continue
if os.path.isfile(settings_file) is False:
logging.error("Specified settings file does not "
"exist: {}".format(settings_file))
@@ -234,74 +259,99 @@ def main():
console.setLevel(log_level)
console.setFormatter(logging.Formatter(formatter))
logging.getLogger('').addHandler(console)
+ utils.install_ansible()
validate_deploy_args(args)
# Parse all settings
deploy_settings = DeploySettings(args.deploy_settings_file)
logging.info("Deploy settings are:\n {}".format(pprint.pformat(
- deploy_settings)))
- net_settings = NetworkSettings(args.network_settings_file)
- logging.info("Network settings are:\n {}".format(pprint.pformat(
- net_settings)))
- os_version = deploy_settings['deploy_options']['os_version']
- net_env_file = os.path.join(args.deploy_dir, constants.NET_ENV_FILE)
- net_env = NetworkEnvironment(net_settings, net_env_file,
- os_version=os_version)
- net_env_target = os.path.join(APEX_TEMP_DIR, constants.NET_ENV_FILE)
- utils.dump_yaml(dict(net_env), net_env_target)
- ha_enabled = deploy_settings['global_params']['ha_enabled']
- if args.virtual:
- if args.virt_compute_ram is None:
- compute_ram = args.virt_default_ram
- else:
- compute_ram = args.virt_compute_ram
- if deploy_settings['deploy_options']['sdn_controller'] == \
- 'opendaylight' and args.virt_default_ram < 12:
- control_ram = 12
- logging.warning('RAM per controller is too low. OpenDaylight '
- 'requires at least 12GB per controller.')
- logging.info('Increasing RAM per controller to 12GB')
- elif args.virt_default_ram < 10:
- control_ram = 10
- logging.warning('RAM per controller is too low. nosdn '
- 'requires at least 10GB per controller.')
- logging.info('Increasing RAM per controller to 10GB')
- else:
- control_ram = args.virt_default_ram
- if ha_enabled and args.virt_compute_nodes < 2:
- logging.debug('HA enabled, bumping number of compute nodes to 2')
- args.virt_compute_nodes = 2
- virt_utils.generate_inventory(args.inventory_file, ha_enabled,
- num_computes=args.virt_compute_nodes,
- controller_ram=control_ram * 1024,
- compute_ram=compute_ram * 1024,
- vcpus=args.virt_cpus
- )
- inventory = Inventory(args.inventory_file, ha_enabled, args.virtual)
-
- validate_cross_settings(deploy_settings, net_settings, inventory)
+ deploy_settings)))
+
+ if not args.snapshot:
+ net_settings = NetworkSettings(args.network_settings_file)
+ logging.info("Network settings are:\n {}".format(pprint.pformat(
+ net_settings)))
+ os_version = deploy_settings['deploy_options']['os_version']
+ net_env_file = os.path.join(args.deploy_dir, constants.NET_ENV_FILE)
+ net_env = NetworkEnvironment(net_settings, net_env_file,
+ os_version=os_version)
+ net_env_target = os.path.join(APEX_TEMP_DIR, constants.NET_ENV_FILE)
+ utils.dump_yaml(dict(net_env), net_env_target)
+
+ # get global deploy params
+ ha_enabled = deploy_settings['global_params']['ha_enabled']
+ introspect = deploy_settings['global_params'].get('introspect', True)
+ net_list = net_settings.enabled_network_list
+ if args.virtual:
+ if args.virt_compute_ram is None:
+ compute_ram = args.virt_default_ram
+ else:
+ compute_ram = args.virt_compute_ram
+ if (deploy_settings['deploy_options']['sdn_controller'] ==
+ 'opendaylight' and args.virt_default_ram < 12):
+ control_ram = 12
+ logging.warning('RAM per controller is too low. OpenDaylight '
+ 'requires at least 12GB per controller.')
+ logging.info('Increasing RAM per controller to 12GB')
+ elif args.virt_default_ram < 10:
+ if platform.machine() == 'aarch64':
+ control_ram = 16
+ logging.warning('RAM per controller is too low for '
+ 'aarch64 ')
+ logging.info('Increasing RAM per controller to 16GB')
+ else:
+ control_ram = 10
+ logging.warning('RAM per controller is too low. nosdn '
+ 'requires at least 10GB per controller.')
+ logging.info('Increasing RAM per controller to 10GB')
+ else:
+ control_ram = args.virt_default_ram
+ if platform.machine() == 'aarch64' and args.virt_cpus < 16:
+ vcpus = 16
+ logging.warning('aarch64 requires at least 16 vCPUS per '
+ 'target VM. Increasing to 16.')
+ else:
+ vcpus = args.virt_cpus
+ if ha_enabled and args.virt_compute_nodes < 2:
+ logging.debug(
+ 'HA enabled, bumping number of compute nodes to 2')
+ args.virt_compute_nodes = 2
+ virt_utils.generate_inventory(args.inventory_file, ha_enabled,
+ num_computes=args.virt_compute_nodes,
+ controller_ram=control_ram * 1024,
+ compute_ram=compute_ram * 1024,
+ vcpus=vcpus
+ )
+ inventory = Inventory(args.inventory_file, ha_enabled, args.virtual)
+ logging.info("Inventory is:\n {}".format(pprint.pformat(
+ inventory)))
+
+ validate_cross_settings(deploy_settings, net_settings, inventory)
+ else:
+ # only one network with snapshots
+ net_list = [constants.ADMIN_NETWORK]
+
ds_opts = deploy_settings['deploy_options']
- if args.quickstart:
- deploy_settings_file = os.path.join(APEX_TEMP_DIR,
- 'apex_deploy_settings.yaml')
- utils.dump_yaml(utils.dict_objects_to_str(deploy_settings),
- deploy_settings_file)
- logging.info("File created: {}".format(deploy_settings_file))
- network_settings_file = os.path.join(APEX_TEMP_DIR,
- 'apex_network_settings.yaml')
- utils.dump_yaml(utils.dict_objects_to_str(net_settings),
- network_settings_file)
- logging.info("File created: {}".format(network_settings_file))
- deploy_quickstart(args, deploy_settings_file, network_settings_file,
- args.inventory_file)
+ ansible_args = {
+ 'virsh_enabled_networks': net_list,
+ 'snapshot': args.snapshot
+ }
+ utils.run_ansible(ansible_args,
+ os.path.join(args.lib_dir, constants.ANSIBLE_PATH,
+ 'deploy_dependencies.yml'))
+ all_in_one = not bool(args.virt_compute_nodes)
+ if args.snapshot:
+ # Start snapshot Deployment
+ logging.info('Executing Snapshot Deployment...')
+ SnapshotDeployment(deploy_settings=deploy_settings,
+ snap_cache_dir=args.snap_cache,
+ fetch=not args.no_fetch,
+ all_in_one=all_in_one)
else:
+ # Start Standard TripleO Deployment
+ deployment = ApexDeployment(deploy_settings, args.patches_file,
+ args.deploy_settings_file)
# TODO (trozet): add logic back from:
# Iedb75994d35b5dc1dd5d5ce1a57277c8f3729dfd (FDIO DVR)
- ansible_args = {
- 'virsh_enabled_networks': net_settings.enabled_network_list
- }
- utils.run_ansible(ansible_args,
- os.path.join(args.lib_dir, ANSIBLE_PATH,
- 'deploy_dependencies.yml'))
uc_external = False
if 'external' in net_settings.enabled_network_list:
uc_external = True
@@ -333,62 +383,93 @@ def main():
else:
root_pw = None
- upstream = (os_version != constants.DEFAULT_OS_VERSION or
- args.upstream)
+ if not args.upstream:
+ logging.warning("Using upstream is now required for Apex. "
+ "Forcing upstream to true")
if os_version == 'master':
branch = 'master'
else:
branch = "stable/{}".format(os_version)
- if upstream:
- logging.info("Deploying with upstream artifacts for OpenStack "
- "{}".format(os_version))
- args.image_dir = os.path.join(args.image_dir, os_version)
- upstream_url = constants.UPSTREAM_RDO.replace(
- constants.DEFAULT_OS_VERSION, os_version)
- upstream_targets = ['overcloud-full.tar', 'undercloud.qcow2']
- utils.fetch_upstream_and_unpack(args.image_dir, upstream_url,
- upstream_targets)
- sdn_image = os.path.join(args.image_dir, 'overcloud-full.qcow2')
- if ds_opts['sdn_controller'] == 'opendaylight':
- logging.info("Preparing upstream image with OpenDaylight")
- oc_builder.inject_opendaylight(
- odl_version=ds_opts['odl_version'],
- image=sdn_image,
- tmp_dir=APEX_TEMP_DIR
- )
- # copy undercloud so we don't taint upstream fetch
- uc_image = os.path.join(args.image_dir, 'undercloud_mod.qcow2')
- uc_fetch_img = os.path.join(args.image_dir, 'undercloud.qcow2')
- shutil.copyfile(uc_fetch_img, uc_image)
- # prep undercloud with required packages
- uc_builder.add_upstream_packages(uc_image)
- # add patches from upstream to undercloud and overcloud
- logging.info('Adding patches to undercloud')
- patches = deploy_settings['global_params']['patches']
- c_builder.add_upstream_patches(patches['undercloud'], uc_image,
- APEX_TEMP_DIR, branch)
- logging.info('Adding patches to overcloud')
- c_builder.add_upstream_patches(patches['overcloud'], sdn_image,
- APEX_TEMP_DIR, branch)
+
+ logging.info("Deploying with upstream artifacts for OpenStack "
+ "{}".format(os_version))
+ args.image_dir = os.path.join(args.image_dir, os_version)
+ upstream_url = constants.UPSTREAM_RDO.replace(
+ constants.DEFAULT_OS_VERSION, os_version)
+
+ upstream_targets = ['overcloud-full.tar', 'ironic-python-agent.tar']
+ if platform.machine() == 'aarch64':
+ upstream_targets.append('undercloud.qcow2')
+ utils.fetch_upstream_and_unpack(args.image_dir, upstream_url,
+ upstream_targets,
+ fetch=not args.no_fetch)
+ # Copy ironic files and overcloud ramdisk and kernel into temp dir
+ # to be copied by ansible into undercloud /home/stack
+ # Note the overcloud disk does not need to be copied here as it will
+ # be modified and copied later
+ for tmp_file in UC_DISK_FILES:
+ shutil.copyfile(os.path.join(args.image_dir, tmp_file),
+ os.path.join(APEX_TEMP_DIR, tmp_file))
+ if platform.machine() == 'aarch64':
+ sdn_image = os.path.join(args.image_dir, 'undercloud.qcow2')
else:
- sdn_image = os.path.join(args.image_dir, SDN_IMAGE)
- uc_image = 'undercloud.qcow2'
+ sdn_image = os.path.join(args.image_dir, 'overcloud-full.qcow2')
+ # copy undercloud so we don't taint upstream fetch
+ uc_image = os.path.join(args.image_dir, 'undercloud_mod.qcow2')
+ uc_fetch_img = sdn_image
+ shutil.copyfile(uc_fetch_img, uc_image)
+ # prep undercloud with required packages
+ if platform.machine() != 'aarch64':
+ uc_builder.update_repos(image=uc_image,
+ branch=branch.replace('stable/', ''))
+ uc_builder.add_upstream_packages(uc_image)
+ uc_builder.inject_calipso_installer(APEX_TEMP_DIR, uc_image)
+ # add patches from upstream to undercloud and overcloud
+ logging.info('Adding patches to undercloud')
+ patches = deployment.determine_patches()
+ c_builder.add_upstream_patches(patches['undercloud'], uc_image,
+ APEX_TEMP_DIR, branch)
+
+ # Create/Start Undercloud VM
undercloud = uc_lib.Undercloud(args.image_dir,
args.deploy_dir,
root_pw=root_pw,
external_network=uc_external,
- image_name=os.path.basename(uc_image))
+ image_name=os.path.basename(uc_image),
+ os_version=os_version)
undercloud.start()
+ undercloud_admin_ip = net_settings['networks'][
+ constants.ADMIN_NETWORK]['installer_vm']['ip']
+
+ if ds_opts['containers']:
+ tag = constants.DOCKER_TAG
+ else:
+ tag = None
# Generate nic templates
for role in 'compute', 'controller':
oc_cfg.create_nic_template(net_settings, deploy_settings, role,
args.deploy_dir, APEX_TEMP_DIR)
+ # Prepare/Upload docker images
+ docker_env = 'containers-prepare-parameter.yaml'
+ shutil.copyfile(os.path.join(args.deploy_dir, docker_env),
+ os.path.join(APEX_TEMP_DIR, docker_env))
+ # Upload extra ansible.cfg
+ if platform.machine() == 'aarch64':
+ ansible_env = 'ansible.cfg'
+ shutil.copyfile(os.path.join(args.deploy_dir, ansible_env),
+ os.path.join(APEX_TEMP_DIR, ansible_env))
+
+ c_builder.prepare_container_images(
+ os.path.join(APEX_TEMP_DIR, docker_env),
+ branch=branch.replace('stable/', ''),
+ neutron_driver=c_builder.get_neutron_driver(ds_opts)
+ )
# Install Undercloud
- undercloud.configure(net_settings,
- os.path.join(args.lib_dir, ANSIBLE_PATH,
+ undercloud.configure(net_settings, deploy_settings,
+ os.path.join(args.lib_dir, constants.ANSIBLE_PATH,
'configure_undercloud.yml'),
- APEX_TEMP_DIR)
+ APEX_TEMP_DIR, virtual_oc=args.virtual)
# Prepare overcloud-full.qcow2
logging.info("Preparing Overcloud for deployment...")
@@ -398,33 +479,75 @@ def main():
net_data_file)
else:
net_data = False
- if upstream and args.env_file == 'opnfv-environment.yaml':
+
+ shutil.copyfile(os.path.join(args.deploy_dir, 'build_ovs_nsh.sh'),
+ os.path.join(APEX_TEMP_DIR, 'build_ovs_nsh.sh'))
+
+ # TODO(trozet): Either fix opnfv env or default to use upstream env
+ if args.env_file == 'opnfv-environment.yaml':
# Override the env_file if it is defaulted to opnfv
# opnfv env file will not work with upstream
args.env_file = 'upstream-environment.yaml'
opnfv_env = os.path.join(args.deploy_dir, args.env_file)
- if not upstream:
- oc_deploy.prep_env(deploy_settings, net_settings, inventory,
- opnfv_env, net_env_target, APEX_TEMP_DIR)
- oc_deploy.prep_image(deploy_settings, sdn_image, APEX_TEMP_DIR,
- root_pw=root_pw)
+ oc_deploy.prep_env(deploy_settings, net_settings, inventory,
+ opnfv_env, net_env_target, APEX_TEMP_DIR)
+ if not args.virtual:
+ oc_deploy.LOOP_DEVICE_SIZE = "50G"
+ if platform.machine() == 'aarch64':
+ oc_image = os.path.join(args.image_dir, 'overcloud-full.qcow2')
else:
- shutil.copyfile(sdn_image, os.path.join(APEX_TEMP_DIR,
- 'overcloud-full.qcow2'))
- shutil.copyfile(
- opnfv_env,
- os.path.join(APEX_TEMP_DIR, os.path.basename(opnfv_env))
- )
+ oc_image = sdn_image
+ patched_containers = oc_deploy.prep_image(
+ deploy_settings, net_settings, oc_image, APEX_TEMP_DIR,
+ root_pw=root_pw, docker_tag=tag, patches=patches['overcloud'])
oc_deploy.create_deploy_cmd(deploy_settings, net_settings, inventory,
APEX_TEMP_DIR, args.virtual,
os.path.basename(opnfv_env),
net_data=net_data)
- deploy_playbook = os.path.join(args.lib_dir, ANSIBLE_PATH,
+ # Prepare undercloud with containers
+ docker_playbook = os.path.join(args.lib_dir, constants.ANSIBLE_PATH,
+ 'prepare_overcloud_containers.yml')
+ if ds_opts['containers']:
+ logging.info("Preparing Undercloud with Docker containers")
+ sdn_env = oc_deploy.get_docker_sdn_files(ds_opts)
+ sdn_env_files = str()
+ for sdn_file in sdn_env:
+ sdn_env_files += " -e {}".format(sdn_file)
+ if patched_containers:
+ oc_builder.archive_docker_patches(APEX_TEMP_DIR)
+ container_vars = dict()
+ container_vars['apex_temp_dir'] = APEX_TEMP_DIR
+ container_vars['patched_docker_services'] = list(
+ patched_containers)
+ container_vars['container_tag'] = constants.DOCKER_TAG
+ container_vars['stackrc'] = 'source /home/stack/stackrc'
+ container_vars['sdn'] = ds_opts['sdn_controller']
+ container_vars['undercloud_ip'] = undercloud_admin_ip
+ container_vars['os_version'] = os_version
+ container_vars['aarch64'] = platform.machine() == 'aarch64'
+ container_vars['sdn_env_file'] = sdn_env_files
+ container_vars['container_client'] = utils.find_container_client(
+ os_version)
+ try:
+ utils.run_ansible(container_vars, docker_playbook,
+ host=undercloud.ip, user='stack',
+ tmp_dir=APEX_TEMP_DIR)
+ logging.info("Container preparation complete")
+ except Exception:
+ logging.error("Unable to complete container prep on "
+ "Undercloud")
+ for tmp_file in UC_DISK_FILES:
+ os.remove(os.path.join(APEX_TEMP_DIR, tmp_file))
+ os.remove(os.path.join(APEX_TEMP_DIR, 'overcloud-full.qcow2'))
+ raise
+
+ deploy_playbook = os.path.join(args.lib_dir, constants.ANSIBLE_PATH,
'deploy_overcloud.yml')
virt_env = 'virtual-environment.yaml'
bm_env = 'baremetal-environment.yaml'
- for p_env in virt_env, bm_env:
+ k8s_env = 'kubernetes-environment.yaml'
+ for p_env in virt_env, bm_env, k8s_env:
shutil.copyfile(os.path.join(args.deploy_dir, p_env),
os.path.join(APEX_TEMP_DIR, p_env))
@@ -434,13 +557,22 @@ def main():
deploy_vars['virtual'] = args.virtual
deploy_vars['debug'] = args.debug
deploy_vars['aarch64'] = platform.machine() == 'aarch64'
+ deploy_vars['introspect'] = not (args.virtual or
+ deploy_vars['aarch64'] or
+ not introspect)
deploy_vars['dns_server_args'] = ''
deploy_vars['apex_temp_dir'] = APEX_TEMP_DIR
deploy_vars['apex_env_file'] = os.path.basename(opnfv_env)
deploy_vars['stackrc'] = 'source /home/stack/stackrc'
deploy_vars['overcloudrc'] = 'source /home/stack/overcloudrc'
- deploy_vars['upstream'] = upstream
+ deploy_vars['undercloud_ip'] = undercloud_admin_ip
+ deploy_vars['ha_enabled'] = ha_enabled
deploy_vars['os_version'] = os_version
+ deploy_vars['http_proxy'] = net_settings.get('http_proxy', '')
+ deploy_vars['https_proxy'] = net_settings.get('https_proxy', '')
+ deploy_vars['vim'] = ds_opts['vim']
+ deploy_vars['container_client'] = utils.find_container_client(
+ os_version)
for dns_server in net_settings['dns_servers']:
deploy_vars['dns_server_args'] += " --dns-nameserver {}".format(
dns_server)
@@ -449,10 +581,15 @@ def main():
user='stack', tmp_dir=APEX_TEMP_DIR)
logging.info("Overcloud deployment complete")
except Exception:
- logging.error("Deployment Failed. Please check log")
+ logging.error("Deployment Failed. Please check deploy log as "
+ "well as mistral logs in "
+ "{}".format(os.path.join(APEX_TEMP_DIR,
+ 'mistral_logs.tar.gz')))
raise
finally:
os.remove(os.path.join(APEX_TEMP_DIR, 'overcloud-full.qcow2'))
+ for tmp_file in UC_DISK_FILES:
+ os.remove(os.path.join(APEX_TEMP_DIR, tmp_file))
# Post install
logging.info("Executing post deploy configuration")
@@ -465,7 +602,7 @@ def main():
'UserKnownHostsFile=/dev/null -o ' \
'LogLevel=error'
deploy_vars['external_network_cmds'] = \
- oc_deploy.external_network_cmds(net_settings)
+ oc_deploy.external_network_cmds(net_settings, deploy_settings)
# TODO(trozet): just parse all ds_opts as deploy vars one time
deploy_vars['gluon'] = ds_opts['gluon']
deploy_vars['sdn'] = ds_opts['sdn_controller']
@@ -483,37 +620,129 @@ def main():
else:
deploy_vars['congress'] = False
deploy_vars['calipso'] = ds_opts.get('calipso', False)
- deploy_vars['calipso_ip'] = net_settings['networks']['admin'][
- 'installer_vm']['ip']
- # TODO(trozet): this is probably redundant with getting external
- # network info from undercloud.py
- if 'external' in net_settings.enabled_network_list:
- ext_cidr = net_settings['networks']['external'][0]['cidr']
- else:
- ext_cidr = net_settings['networks']['admin']['cidr']
- deploy_vars['external_cidr'] = str(ext_cidr)
- if ext_cidr.version == 6:
- deploy_vars['external_network_ipv6'] = True
+ deploy_vars['calipso_ip'] = undercloud_admin_ip
+ # overcloudrc.v3 removed and set as default in queens and later
+ if os_version == 'pike':
+ deploy_vars['overcloudrc_files'] = ['overcloudrc',
+ 'overcloudrc.v3']
else:
- deploy_vars['external_network_ipv6'] = False
- post_undercloud = os.path.join(args.lib_dir, ANSIBLE_PATH,
+ deploy_vars['overcloudrc_files'] = ['overcloudrc']
+
+ post_undercloud = os.path.join(args.lib_dir,
+ constants.ANSIBLE_PATH,
'post_deploy_undercloud.yml')
- logging.info("Executing post deploy configuration undercloud playbook")
+ logging.info("Executing post deploy configuration undercloud "
+ "playbook")
try:
- utils.run_ansible(deploy_vars, post_undercloud, host=undercloud.ip,
- user='stack', tmp_dir=APEX_TEMP_DIR)
+ utils.run_ansible(deploy_vars, post_undercloud,
+ host=undercloud.ip, user='stack',
+ tmp_dir=APEX_TEMP_DIR)
logging.info("Post Deploy Undercloud Configuration Complete")
except Exception:
logging.error("Post Deploy Undercloud Configuration failed. "
"Please check log")
raise
+
+ # Deploy kubernetes if enabled
+ # (TODO)zshi move handling of kubernetes deployment
+ # to its own deployment class
+ if deploy_vars['vim'] == 'k8s':
+ # clone kubespray repo
+ git.Repo.clone_from(constants.KUBESPRAY_URL,
+ os.path.join(APEX_TEMP_DIR, 'kubespray'))
+ shutil.copytree(
+ os.path.join(APEX_TEMP_DIR, 'kubespray', 'inventory',
+ 'sample'),
+ os.path.join(APEX_TEMP_DIR, 'kubespray', 'inventory',
+ 'apex'))
+ k8s_node_inventory = {
+ 'all':
+ {'hosts': {},
+ 'children': {
+ 'k8s-cluster': {
+ 'children': {
+ 'kube-master': {
+ 'hosts': {}
+ },
+ 'kube-node': {
+ 'hosts': {}
+ }
+ }
+ },
+ 'etcd': {
+ 'hosts': {}
+ }
+ }
+ }
+ }
+ for node, ip in deploy_vars['overcloud_nodes'].items():
+ k8s_node_inventory['all']['hosts'][node] = {
+ 'ansible_become': True,
+ 'ansible_ssh_host': ip,
+ 'ansible_become_user': 'root',
+ 'ip': ip
+ }
+ if 'controller' in node:
+ k8s_node_inventory['all']['children']['k8s-cluster'][
+ 'children']['kube-master']['hosts'][node] = None
+ k8s_node_inventory['all']['children']['etcd'][
+ 'hosts'][node] = None
+ elif 'compute' in node:
+ k8s_node_inventory['all']['children']['k8s-cluster'][
+ 'children']['kube-node']['hosts'][node] = None
+
+ kubespray_dir = os.path.join(APEX_TEMP_DIR, 'kubespray')
+ with open(os.path.join(kubespray_dir, 'inventory', 'apex',
+ 'apex.yaml'), 'w') as invfile:
+ yaml.dump(k8s_node_inventory, invfile,
+ default_flow_style=False)
+ k8s_deploy_vars = {}
+ # Add kubespray ansible control variables in k8s_deploy_vars,
+ # example: 'kube_network_plugin': 'flannel'
+ k8s_deploy = os.path.join(kubespray_dir, 'cluster.yml')
+ k8s_deploy_inv_file = os.path.join(kubespray_dir, 'inventory',
+ 'apex', 'apex.yaml')
+
+ k8s_remove_pkgs = os.path.join(args.lib_dir,
+ constants.ANSIBLE_PATH,
+ 'k8s_remove_pkgs.yml')
+ try:
+ logging.debug("Removing any existing overcloud docker "
+ "packages")
+ utils.run_ansible(k8s_deploy_vars, k8s_remove_pkgs,
+ host=k8s_deploy_inv_file,
+ user='heat-admin', tmp_dir=APEX_TEMP_DIR)
+ logging.info("k8s Deploy Remove Existing Docker Related "
+ "Packages Complete")
+ except Exception:
+ logging.error("k8s Deploy Remove Existing Docker Related "
+ "Packages failed. Please check log")
+ raise
+
+ try:
+ utils.run_ansible(k8s_deploy_vars, k8s_deploy,
+ host=k8s_deploy_inv_file,
+ user='heat-admin', tmp_dir=APEX_TEMP_DIR)
+ logging.info("k8s Deploy Overcloud Configuration Complete")
+ except Exception:
+ logging.error("k8s Deploy Overcloud Configuration failed."
+ "Please check log")
+ raise
+
# Post deploy overcloud node configuration
# TODO(trozet): just parse all ds_opts as deploy vars one time
deploy_vars['sfc'] = ds_opts['sfc']
deploy_vars['vpn'] = ds_opts['vpn']
+ deploy_vars['l2gw'] = ds_opts.get('l2gw')
+ deploy_vars['sriov'] = ds_opts.get('sriov')
+ deploy_vars['tacker'] = ds_opts.get('tacker')
+ deploy_vars['all_in_one'] = all_in_one
+ # TODO(trozet): need to set container client to docker until OOO
+ # migrates OC to podman. Remove this later.
+ deploy_vars['container_client'] = 'docker'
# TODO(trozet): pull all logs and store in tmp dir in overcloud
# playbook
- post_overcloud = os.path.join(args.lib_dir, ANSIBLE_PATH,
+ post_overcloud = os.path.join(args.lib_dir, constants.ANSIBLE_PATH,
'post_deploy_overcloud.yml')
# Run per overcloud node
for node, ip in deploy_vars['overcloud_nodes'].items():
diff --git a/apex/deployment/__init__.py b/apex/deployment/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/apex/deployment/__init__.py
diff --git a/apex/deployment/snapshot.py b/apex/deployment/snapshot.py
new file mode 100644
index 00000000..b33907fb
--- /dev/null
+++ b/apex/deployment/snapshot.py
@@ -0,0 +1,241 @@
+##############################################################################
+# Copyright (c) 2018 Tim Rozet (trozet@redhat.com) and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+import fnmatch
+import logging
+import os
+import pprint
+import socket
+import time
+
+import libvirt
+
+import apex.common.constants as con
+from apex.common import exceptions as exc
+from apex.common import utils
+from apex.overcloud.node import OvercloudNode
+import apex.settings.deploy_settings as ds
+
+
+SNAP_FILE = 'snapshot.properties'
+CHECKSUM = 'OPNFV_SNAP_SHA512SUM'
+OVERCLOUD_RC = 'overcloudrc'
+SSH_KEY = 'id_rsa'
+OPENSTACK = 'openstack'
+OPENDAYLIGHT = 'opendaylight'
+SERVICES = (OPENSTACK, OPENDAYLIGHT)
+
+
+class SnapshotDeployment:
+ def __init__(self, deploy_settings, snap_cache_dir, fetch=True,
+ all_in_one=False):
+ self.id_rsa = None
+ self.fetch = fetch
+ ds_opts = deploy_settings['deploy_options']
+ self.os_version = ds_opts['os_version']
+ self.ha_enabled = deploy_settings['global_params']['ha_enabled']
+ if self.ha_enabled:
+ self.ha_ext = 'ha'
+ elif all_in_one:
+ self.ha_ext = 'noha-allinone'
+ else:
+ self.ha_ext = 'noha'
+ self.snap_cache_dir = os.path.join(snap_cache_dir,
+ "{}/{}".format(self.os_version,
+ self.ha_ext))
+ self.networks = []
+ self.oc_nodes = []
+ self.properties_url = "{}/apex/{}/{}".format(con.OPNFV_ARTIFACTS,
+ self.os_version,
+ self.ha_ext)
+ self.conn = libvirt.open('qemu:///system')
+ if not self.conn:
+ raise exc.SnapshotDeployException(
+ 'Unable to open libvirt connection')
+ if self.fetch:
+ self.pull_snapshot(self.properties_url, self.snap_cache_dir)
+ else:
+ logging.info('No fetch enabled. Will not attempt to pull latest '
+ 'snapshot')
+ self.deploy_snapshot()
+
+ @staticmethod
+ def pull_snapshot(url_path, snap_cache_dir):
+ """
+ Compare opnfv properties file and download and unpack snapshot if
+ necessary
+ :param url_path: path of latest snap info
+ :param snap_cache_dir: local directory for snap cache
+ :return: None
+ """
+ full_url = os.path.join(url_path, SNAP_FILE)
+ upstream_props = utils.fetch_properties(full_url)
+ logging.debug("Upstream properties are: {}".format(upstream_props))
+ try:
+ upstream_sha = upstream_props[CHECKSUM]
+ except KeyError:
+ logging.error('Unable to find {} for upstream properties: '
+ '{}'.format(CHECKSUM, upstream_props))
+ raise exc.SnapshotDeployException('Unable to find upstream '
+ 'properties checksum value')
+ local_prop_file = os.path.join(snap_cache_dir, SNAP_FILE)
+ try:
+ local_props = utils.fetch_properties(local_prop_file)
+ local_sha = local_props[CHECKSUM]
+ pull_snap = local_sha != upstream_sha
+ except (exc.FetchException, KeyError):
+ logging.info("No locally cached properties found, will pull "
+ "latest")
+ local_sha = None
+ pull_snap = True
+ logging.debug('Local sha: {}, Upstream sha: {}'.format(local_sha,
+ upstream_sha))
+ if pull_snap:
+ logging.info('SHA mismatch, will download latest snapshot')
+ full_snap_url = upstream_props['OPNFV_SNAP_URL']
+ snap_file = os.path.basename(full_snap_url)
+ snap_url = full_snap_url.replace(snap_file, '')
+ if not snap_url.startswith('http://'):
+ snap_url = 'http://' + snap_url
+ utils.fetch_upstream_and_unpack(dest=snap_cache_dir,
+ url=snap_url,
+ targets=[SNAP_FILE, snap_file]
+ )
+ else:
+ logging.info('SHA match, artifacts in cache are already latest. '
+ 'Will not download.')
+
+ def create_networks(self):
+ logging.info("Detecting snapshot networks")
+ try:
+ xmls = fnmatch.filter(os.listdir(self.snap_cache_dir), '*.xml')
+ except FileNotFoundError:
+ raise exc.SnapshotDeployException(
+ 'No XML files found in snap cache directory: {}'.format(
+ self.snap_cache_dir))
+ net_xmls = list()
+ for xml in xmls:
+ if xml.startswith('baremetal'):
+ continue
+ net_xmls.append(os.path.join(self.snap_cache_dir, xml))
+ if not net_xmls:
+ raise exc.SnapshotDeployException(
+ 'No network XML files detected in snap cache, '
+ 'please check local snap cache contents')
+ logging.info('Snapshot networks found: {}'.format(net_xmls))
+ for xml in net_xmls:
+ logging.debug('Creating network from {}'.format(xml))
+ with open(xml, 'r') as fh:
+ net_xml = fh.read()
+ net = self.conn.networkCreateXML(net_xml)
+ self.networks.append(net)
+ logging.info('Network started: {}'.format(net.name()))
+
+ def parse_and_create_nodes(self):
+ """
+ Parse snapshot node.yaml config file and create overcloud nodes
+ :return: None
+ """
+ node_file = os.path.join(self.snap_cache_dir, 'node.yaml')
+ if not os.path.isfile(node_file):
+ raise exc.SnapshotDeployException('Missing node definitions from '
+ ''.format(node_file))
+ node_data = utils.parse_yaml(node_file)
+ if 'servers' not in node_data:
+ raise exc.SnapshotDeployException('Invalid node.yaml format')
+ for node, data in node_data['servers'].items():
+ logging.info('Creating node: {}'.format(node))
+ logging.debug('Node data is:\n{}'.format(pprint.pformat(data)))
+ node_xml = os.path.join(self.snap_cache_dir,
+ '{}.xml'.format(data['vNode-name']))
+ node_qcow = os.path.join(self.snap_cache_dir,
+ '{}.qcow2'.format(data['vNode-name']))
+ self.oc_nodes.append(
+ OvercloudNode(ip=data['address'],
+ ovs_ctrlrs=data['ovs-controller'],
+ ovs_mgrs=data['ovs-managers'],
+ role=data['type'],
+ name=node,
+ node_xml=node_xml,
+ disk_img=node_qcow)
+ )
+ logging.info('Node Created')
+ logging.info('Starting nodes')
+ for node in self.oc_nodes:
+ node.start()
+
+ def get_controllers(self):
+ controllers = []
+ for node in self.oc_nodes:
+ if node.role == 'controller':
+ controllers.append(node)
+ return controllers
+
+ def is_service_up(self, service):
+ assert service in SERVICES
+ if service == OPENSTACK:
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ sock.settimeout(5)
+ controllers = self.get_controllers()
+ if not controllers:
+ raise exc.SnapshotDeployException('No OpenStack controllers found')
+
+ for node in controllers:
+ logging.info('Waiting until {} is up on controller: '
+ '{}'.format(service, node.name))
+ for x in range(10):
+ logging.debug('Checking {} is up attempt {}'.format(service,
+ str(x + 1)))
+ if service == OPENSTACK:
+ # Check if Neutron is up
+ if sock.connect_ex((node.ip, 9696)) == 0:
+ logging.info('{} is up on controller {}'.format(
+ service, node.name))
+ break
+ elif service == OPENDAYLIGHT:
+ url = 'http://{}:8081/diagstatus'.format(node.ip)
+ try:
+ utils.open_webpage(url)
+ logging.info('{} is up on controller {}'.format(
+ service, node.name))
+ break
+ except Exception as e:
+ logging.debug('Cannot contact ODL. Reason: '
+ '{}'.format(e))
+ time.sleep(60)
+ else:
+ logging.error('{} is not running after 10 attempts'.format(
+ service))
+ return False
+ return True
+
+ def deploy_snapshot(self):
+ # bring up networks
+ self.create_networks()
+ # check overcloudrc exists, id_rsa
+ for snap_file in (OVERCLOUD_RC, SSH_KEY):
+ if not os.path.isfile(os.path.join(self.snap_cache_dir,
+ snap_file)):
+ logging.warning('File is missing form snap cache: '
+ '{}'.format(snap_file))
+ # create nodes
+ self.parse_and_create_nodes()
+ # validate deployment
+ if self.is_service_up(OPENSTACK):
+ logging.info('OpenStack is up')
+ else:
+ raise exc.SnapshotDeployException('OpenStack is not alive')
+ if self.is_service_up(OPENDAYLIGHT):
+ logging.info('OpenDaylight is up')
+ else:
+ raise exc.SnapshotDeployException(
+ 'OpenDaylight {} is not reporting diag status')
+ # TODO(trozet): recreate external network/subnet if missing
+ logging.info('Snapshot deployment complete. Please use the {} file '
+ 'in {} to interact with '
+ 'OpenStack'.format(OVERCLOUD_RC, self.snap_cache_dir))
diff --git a/apex/deployment/tripleo.py b/apex/deployment/tripleo.py
new file mode 100644
index 00000000..c131e161
--- /dev/null
+++ b/apex/deployment/tripleo.py
@@ -0,0 +1,60 @@
+##############################################################################
+# Copyright (c) 2018 Tim Rozet (trozet@redhat.com) and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+# TODO(trozet): this will serve as the deployment class as we migrate logic out
+# of deploy.py
+import logging
+import os
+import pprint
+
+from apex.common.exceptions import ApexDeployException
+from apex.common import utils
+
+
+class ApexDeployment:
+ def __init__(self, deploy_settings, patch_file, ds_file):
+ self.ds = deploy_settings
+ # TODO(trozet): remove ds_file from args and have this class inherit
+ # super deployment class init which does all the settings
+ self.ds_file = ds_file
+ self.ds_globals = self.ds['global_params']
+ self.p_file = patch_file
+
+ def determine_patches(self):
+ patches = self.ds_globals['patches']
+ if not os.path.isfile(self.p_file):
+ new_file = os.path.join(os.path.dirname(self.ds_file),
+ 'common-patches.yaml')
+ if os.path.isfile(new_file):
+ logging.warning('Patch file {} not found, falling back to '
+ '{}'.format(self.p_file, new_file))
+ self.p_file = new_file
+ else:
+ logging.error('Unable to find common patch file: '
+ '{}'.format(self.p_file))
+ raise ApexDeployException(
+ 'Specified common patch file not found: {}'.format(
+ self.p_file))
+ logging.info('Loading patches from common patch file {}'.format(
+ self.p_file))
+ common_patches = utils.parse_yaml(self.p_file)
+ logging.debug('Content from common patch file is: {}'.format(
+ pprint.pformat(common_patches)))
+ os_version = self.ds['deploy_options']['os_version']
+ try:
+ common_patches = common_patches['patches'][os_version]
+ except KeyError:
+ logging.error('Error parsing common patches file, wrong format.')
+ raise ApexDeployException('Invalid format of common patch file')
+
+ for ptype in ('undercloud', 'overcloud'):
+ if ptype in common_patches:
+ patches[ptype] = utils.unique(patches[ptype] +
+ common_patches[ptype])
+ return patches
diff --git a/apex/inventory/inventory.py b/apex/inventory/inventory.py
index b5ffd2f8..0546fe9f 100644
--- a/apex/inventory/inventory.py
+++ b/apex/inventory/inventory.py
@@ -67,9 +67,12 @@ class Inventory(dict):
if ha and len(self['nodes']) < 5:
raise ApexInventoryException('You must provide at least 5 '
'nodes for HA deployment')
- elif len(self['nodes']) < 2:
- raise ApexInventoryException('You must provide at least 2 nodes '
+ elif len(self['nodes']) < 1:
+ raise ApexInventoryException('You must provide at least 1 node '
'for non-HA deployment')
+ elif list(self.get_node_counts())[0] < 1:
+ raise ApexInventoryException('You must provide at least 1 '
+ 'control node for deployment')
if virtual:
self['host-ip'] = '192.168.122.1'
diff --git a/apex/network/jumphost.py b/apex/network/jumphost.py
index c28c105e..86556659 100644
--- a/apex/network/jumphost.py
+++ b/apex/network/jumphost.py
@@ -53,12 +53,8 @@ def configure_bridges(ns):
if cidr.version == 6:
ipv6_br_path = "/proc/sys/net/ipv6/conf/{}/disable_" \
"ipv6".format(NET_MAP[network])
- try:
- subprocess.check_call('echo', 0, '>', ipv6_br_path)
- except subprocess.CalledProcessError:
- logging.error("Unable to enable ipv6 on "
- "bridge {}".format(NET_MAP[network]))
- raise
+ with open(ipv6_br_path, 'w') as f:
+ print(0, file=f)
try:
ip_prefix = "{}/{}".format(ovs_ip, cidr.prefixlen)
subprocess.check_call(['ip', 'addr', 'add', ip_prefix, 'dev',
diff --git a/apex/network/network_data.py b/apex/network/network_data.py
index 1177af09..6f330c50 100644
--- a/apex/network/network_data.py
+++ b/apex/network/network_data.py
@@ -83,7 +83,7 @@ def create_network_data(ns, target=None):
"{}".format(net))
raise NetworkDataException("cidr is null for network {}".format(
net))
-
+ tmp_net['mtu'] = network.get('mtu', 1500)
network_data.append(copy.deepcopy(tmp_net))
# have to do this due to the aforementioned bug
diff --git a/apex/network/network_environment.py b/apex/network/network_environment.py
index ea71e0f3..52b4452a 100644
--- a/apex/network/network_environment.py
+++ b/apex/network/network_environment.py
@@ -82,7 +82,7 @@ class NetworkEnvironment(dict):
admin_prefix = str(admin_cidr.prefixlen)
self[param_def]['ControlPlaneSubnetCidr'] = admin_prefix
self[param_def]['ControlPlaneDefaultRoute'] = \
- nets[ADMIN_NETWORK]['installer_vm']['ip']
+ nets[ADMIN_NETWORK]['gateway']
self[param_def]['EC2MetadataIp'] = \
nets[ADMIN_NETWORK]['installer_vm']['ip']
self[param_def]['DnsServers'] = net_settings['dns_servers']
@@ -186,6 +186,8 @@ class NetworkEnvironment(dict):
for flag in IPV6_FLAGS:
self[param_def][flag] = True
+ self._update_service_netmap(net_settings.enabled_network_list)
+
def _get_vlan(self, network):
if isinstance(network['nic_mapping'][CONTROLLER]['vlan'], int):
return network['nic_mapping'][CONTROLLER]['vlan']
@@ -218,6 +220,13 @@ class NetworkEnvironment(dict):
prefix = ''
self[reg][key] = self.tht_dir + prefix + postfix
+ def _update_service_netmap(self, network_list):
+ if 'ServiceNetMap' not in self[param_def]:
+ return
+ for service, network in self[param_def]['ServiceNetMap'].items():
+ if network not in network_list:
+ self[param_def]['ServiceNetMap'][service] = 'ctlplane'
+
class NetworkEnvException(Exception):
def __init__(self, value):
diff --git a/apex/overcloud/config.py b/apex/overcloud/config.py
index a7f7d848..e8d8fbb0 100644
--- a/apex/overcloud/config.py
+++ b/apex/overcloud/config.py
@@ -52,6 +52,9 @@ def create_nic_template(network_settings, deploy_settings, role, template_dir,
if ds.get('dvr') is True:
nets['admin']['nic_mapping'][role]['phys_type'] = \
'linux_bridge'
+ else:
+ nets['external'][0]['nic_mapping'][role]['phys_type'] = \
+ 'linux_bridge'
elif ds['dataplane'] == 'ovs_dpdk':
ovs_dpdk_br = 'br-phy'
if (ds.get('performance', {}).get(role.title(), {}).get('vpp', {})
@@ -66,9 +69,6 @@ def create_nic_template(network_settings, deploy_settings, role, template_dir,
nets['tenant']['nic_mapping'][role]['interface-options'] =\
ds['performance'][role.title()]['vpp']['interface-options']
- if role == 'controller' and ds.get('sfc', None):
- ext_net = 'interface'
-
template_output = template.render(
nets=nets,
role=role,
diff --git a/apex/overcloud/deploy.py b/apex/overcloud/deploy.py
index 809afc13..538f50a4 100644
--- a/apex/overcloud/deploy.py
+++ b/apex/overcloud/deploy.py
@@ -11,14 +11,20 @@ import base64
import fileinput
import logging
import os
+import platform
+import pprint
import shutil
import uuid
import struct
import time
+import yaml
+import apex.builders.overcloud_builder as oc_builder
+import apex.builders.common_builder as c_builder
from apex.common import constants as con
from apex.common.exceptions import ApexDeployException
from apex.common import parsers
+from apex.common import utils
from apex.virtual import utils as virt_utils
from cryptography.hazmat.primitives import serialization as \
crypto_serialization
@@ -37,6 +43,8 @@ SDN_FILE_MAP = {
'dvr': 'neutron-opendaylight-fdio-dvr.yaml',
'default': 'neutron-opendaylight-honeycomb.yaml'
},
+ 'l2gw': 'neutron-l2gw-opendaylight.yaml',
+ 'sriov': 'neutron-opendaylight-sriov.yaml',
'default': 'neutron-opendaylight.yaml',
},
'onos': {
@@ -64,24 +72,75 @@ OVS_PERF_MAP = {
'NeutronDpdkMemoryChannels': 'memory_channels'
}
-OVS_NSH_KMOD_RPM = "openvswitch-kmod-2.6.1-1.el7.centos.x86_64.rpm"
-OVS_NSH_RPM = "openvswitch-2.6.1-1.el7.centos.x86_64.rpm"
ODL_NETVIRT_VPP_RPM = "/root/opendaylight-7.0.0-0.1.20170531snap665.el7" \
".noarch.rpm"
+LOOP_DEVICE_SIZE = "10G"
+
+LOSETUP_SERVICE = """[Unit]
+Description=Setup loop devices
+Before=network.target
+
+[Service]
+Type=oneshot
+ExecStart=/sbin/losetup /dev/loop3 /srv/data.img
+ExecStop=/sbin/losetup -d /dev/loop3
+TimeoutSec=60
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
+"""
+
+DUPLICATE_COMPUTE_SERVICES = [
+ 'OS::TripleO::Services::ComputeNeutronCorePlugin',
+ 'OS::TripleO::Services::ComputeNeutronMetadataAgent',
+ 'OS::TripleO::Services::ComputeNeutronOvsAgent',
+ 'OS::TripleO::Services::ComputeNeutronL3Agent'
+]
+
+NFS_VARS = [
+ 'NovaNfsEnabled',
+ 'GlanceNfsEnabled',
+ 'CinderNfsEnabledBackend'
+]
+
def build_sdn_env_list(ds, sdn_map, env_list=None):
+ """
+ Builds a list of SDN environment files to be used in the deploy cmd.
+
+ This function recursively searches an sdn_map. First the sdn controller is
+ matched and then the function looks for enabled features for that
+ controller to determine which environment files should be used. By
+ default the feature will be checked if set to true in deploy settings to be
+ added to the list. If a feature does not have a boolean value, then the
+ key and value pair to compare with are checked as a tuple (k,v).
+
+ :param ds: deploy settings
+ :param sdn_map: SDN map to recursively search
+ :param env_list: recursive var to hold previously found env_list
+ :return: A list of env files
+ """
if env_list is None:
env_list = list()
for k, v in sdn_map.items():
- if ds['sdn_controller'] == k or (k in ds and ds[k] is True):
+ if ds['sdn_controller'] == k or (k in ds and ds[k]):
if isinstance(v, dict):
+ # Append default SDN env file first
+ # The assumption is that feature-enabled SDN env files
+ # override and do not conflict with previously set default
+ # settings
+ if ds['sdn_controller'] == k and 'default' in v:
+ env_list.append(os.path.join(con.THT_ENV_DIR,
+ v['default']))
env_list.extend(build_sdn_env_list(ds, v))
+ # check if the value is not a boolean
+ elif isinstance(v, tuple):
+ if ds[k] == v[0]:
+ env_list.append(os.path.join(con.THT_ENV_DIR, v[1]))
else:
env_list.append(os.path.join(con.THT_ENV_DIR, v))
- elif isinstance(v, tuple):
- if ds[k] == v[0]:
- env_list.append(os.path.join(con.THT_ENV_DIR, v[1]))
if len(env_list) == 0:
try:
env_list.append(os.path.join(
@@ -92,6 +151,26 @@ def build_sdn_env_list(ds, sdn_map, env_list=None):
return env_list
+def get_docker_sdn_files(ds_opts):
+ """
+ Returns docker env file for detected SDN
+ :param ds_opts: deploy options
+ :return: list of docker THT env files for an SDN
+ """
+ docker_services = con.VALID_DOCKER_SERVICES
+ tht_dir = con.THT_DOCKER_ENV_DIR
+ sdn_env_list = build_sdn_env_list(ds_opts, SDN_FILE_MAP)
+ for i, sdn_file in enumerate(sdn_env_list):
+ sdn_base = os.path.basename(sdn_file)
+ if sdn_base in docker_services:
+ if docker_services[sdn_base] is not None:
+ sdn_env_list[i] = \
+ os.path.join(tht_dir, docker_services[sdn_base])
+ else:
+ sdn_env_list[i] = os.path.join(tht_dir, sdn_base)
+ return sdn_env_list
+
+
def create_deploy_cmd(ds, ns, inv, tmp_dir,
virtual, env_file='opnfv-environment.yaml',
net_data=False):
@@ -99,22 +178,52 @@ def create_deploy_cmd(ds, ns, inv, tmp_dir,
logging.info("Creating deployment command")
deploy_options = ['network-environment.yaml']
+ ds_opts = ds['deploy_options']
+
+ if ds_opts['containers']:
+ deploy_options.append(os.path.join(con.THT_ENV_DIR,
+ 'docker.yaml'))
+
+ if ds['global_params']['ha_enabled']:
+ if ds_opts['containers']:
+ deploy_options.append(os.path.join(con.THT_ENV_DIR,
+ 'docker-ha.yaml'))
+ else:
+ deploy_options.append(os.path.join(con.THT_ENV_DIR,
+ 'puppet-pacemaker.yaml'))
+
if env_file:
deploy_options.append(env_file)
- ds_opts = ds['deploy_options']
- deploy_options += build_sdn_env_list(ds_opts, SDN_FILE_MAP)
+
+ if ds_opts['containers']:
+ deploy_options.append('docker-images.yaml')
+ sdn_docker_files = get_docker_sdn_files(ds_opts)
+ for sdn_docker_file in sdn_docker_files:
+ deploy_options.append(sdn_docker_file)
+ else:
+ deploy_options += build_sdn_env_list(ds_opts, SDN_FILE_MAP)
for k, v in OTHER_FILE_MAP.items():
if k in ds_opts and ds_opts[k]:
- deploy_options.append(os.path.join(con.THT_ENV_DIR, v))
+ if ds_opts['containers']:
+ deploy_options.append(os.path.join(con.THT_DOCKER_ENV_DIR,
+ "{}.yaml".format(k)))
+ else:
+ deploy_options.append(os.path.join(con.THT_ENV_DIR, v))
- if ds_opts['ceph']:
- prep_storage_env(ds, tmp_dir)
+ # TODO(trozet) Fix this check to look for if ceph is in controller services
+ # and not use name of the file
+ if ds_opts['ceph'] and 'csit' not in env_file:
+ prep_storage_env(ds, ns, virtual, tmp_dir)
deploy_options.append(os.path.join(con.THT_ENV_DIR,
'storage-environment.yaml'))
- if ds['global_params']['ha_enabled']:
- deploy_options.append(os.path.join(con.THT_ENV_DIR,
- 'puppet-pacemaker.yaml'))
+ if ds_opts['sriov']:
+ prep_sriov_env(ds, tmp_dir)
+
+ # Check for 'k8s' here intentionally, as we may support other values
+ # such as openstack/openshift for 'vim' option.
+ if ds_opts['vim'] == 'k8s':
+ deploy_options.append('kubernetes-environment.yaml')
if virtual:
deploy_options.append('virtual-environment.yaml')
@@ -122,12 +231,16 @@ def create_deploy_cmd(ds, ns, inv, tmp_dir,
deploy_options.append('baremetal-environment.yaml')
num_control, num_compute = inv.get_node_counts()
- if num_control == 0 or num_compute == 0:
- logging.error("Detected 0 control or compute nodes. Control nodes: "
- "{}, compute nodes{}".format(num_control, num_compute))
- raise ApexDeployException("Invalid number of control or computes")
- elif num_control > 1 and not ds['global_params']['ha_enabled']:
+ if num_control > 1 and not ds['global_params']['ha_enabled']:
num_control = 1
+ if platform.machine() == 'aarch64':
+ # aarch64 deploys were not completing in the default 90 mins.
+ # Not sure if this is related to the hardware the OOO support
+ # was developed on or the virtualization support in CentOS
+ # Either way it will probably get better over time as the aarch
+ # support matures in CentOS and deploy time should be tested in
+ # the future so this multiplier can be removed.
+ con.DEPLOY_TIMEOUT *= 2
cmd = "openstack overcloud deploy --templates --timeout {} " \
.format(con.DEPLOY_TIMEOUT)
# build cmd env args
@@ -140,12 +253,16 @@ def create_deploy_cmd(ds, ns, inv, tmp_dir,
if net_data:
cmd += ' --networks-file network_data.yaml'
libvirt_type = 'kvm'
- if virtual:
+ if virtual and (platform.machine() != 'aarch64'):
with open('/sys/module/kvm_intel/parameters/nested') as f:
nested_kvm = f.read().strip()
if nested_kvm != 'Y':
libvirt_type = 'qemu'
+ elif virtual and (platform.machine() == 'aarch64'):
+ libvirt_type = 'qemu'
cmd += ' --libvirt-type {}'.format(libvirt_type)
+ if platform.machine() == 'aarch64':
+ cmd += ' --override-ansible-cfg /home/stack/ansible.cfg '
logging.info("Deploy command set: {}".format(cmd))
with open(os.path.join(tmp_dir, 'deploy_command'), 'w') as fh:
@@ -153,13 +270,17 @@ def create_deploy_cmd(ds, ns, inv, tmp_dir,
return cmd
-def prep_image(ds, img, tmp_dir, root_pw=None):
+def prep_image(ds, ns, img, tmp_dir, root_pw=None, docker_tag=None,
+ patches=None):
"""
Locates sdn image and preps for deployment.
:param ds: deploy settings
+ :param ns: network settings
:param img: sdn image
:param tmp_dir: dir to store modified sdn image
:param root_pw: password to configure for overcloud image
+ :param docker_tag: Docker image tag for RDO version (default None)
+ :param patches: List of patches to apply to overcloud image
:return: None
"""
# TODO(trozet): Come up with a better way to organize this logic in this
@@ -172,6 +293,7 @@ def prep_image(ds, img, tmp_dir, root_pw=None):
ds_opts = ds['deploy_options']
virt_cmds = list()
sdn = ds_opts['sdn_controller']
+ patched_containers = set()
# we need this due to rhbz #1436021
# fixed in systemd-219-37.el7
if sdn is not False:
@@ -186,7 +308,25 @@ def prep_image(ds, img, tmp_dir, root_pw=None):
".service"
}])
+ if ns.get('http_proxy', ''):
+ virt_cmds.append({
+ con.VIRT_RUN_CMD:
+ "echo 'http_proxy={}' >> /etc/environment".format(
+ ns['http_proxy'])})
+
+ if ns.get('https_proxy', ''):
+ virt_cmds.append({
+ con.VIRT_RUN_CMD:
+ "echo 'https_proxy={}' >> /etc/environment".format(
+ ns['https_proxy'])})
+
+ tmp_oc_image = os.path.join(tmp_dir, 'overcloud-full.qcow2')
+ shutil.copyfile(img, tmp_oc_image)
+ logging.debug("Temporary overcloud image stored as: {}".format(
+ tmp_oc_image))
+
if ds_opts['vpn']:
+ oc_builder.inject_quagga(tmp_oc_image, tmp_dir)
virt_cmds.append({con.VIRT_RUN_CMD: "chmod +x /etc/rc.d/rc.local"})
virt_cmds.append({
con.VIRT_RUN_CMD:
@@ -226,15 +366,14 @@ def prep_image(ds, img, tmp_dir, root_pw=None):
if root_pw:
pw_op = "password:{}".format(root_pw)
virt_cmds.append({con.VIRT_PW: pw_op})
- if ds_opts['sfc'] and dataplane == 'ovs':
- virt_cmds.extend([
- {con.VIRT_RUN_CMD: "yum -y install "
- "/root/ovs/rpm/rpmbuild/RPMS/x86_64/"
- "{}".format(OVS_NSH_KMOD_RPM)},
- {con.VIRT_RUN_CMD: "yum downgrade -y "
- "/root/ovs/rpm/rpmbuild/RPMS/x86_64/"
- "{}".format(OVS_NSH_RPM)}
- ])
+
+ # FIXME(trozet) ovs build is failing in CentOS 7.6
+ # if dataplane == 'ovs':
+ # FIXME(trozet) remove this after RDO is updated with fix for
+ # https://bugzilla.redhat.com/show_bug.cgi?id=1544892
+ # https://review.rdoproject.org/r/#/c/13839/
+ # oc_builder.inject_ovs_nsh(tmp_oc_image, tmp_dir)
+
if dataplane == 'fdio':
# Patch neutron with using OVS external interface for router
# and add generic linux NS interface driver
@@ -248,48 +387,77 @@ def prep_image(ds, img, tmp_dir, root_pw=None):
"/root/nosdn_vpp_rpms/*.rpm"}
])
+ undercloud_admin_ip = ns['networks'][con.ADMIN_NETWORK][
+ 'installer_vm']['ip']
if sdn == 'opendaylight':
- if ds_opts['odl_version'] != con.DEFAULT_ODL_VERSION:
- virt_cmds.extend([
- {con.VIRT_RUN_CMD: "yum -y remove opendaylight"},
- {con.VIRT_RUN_CMD: "rm -rf /etc/puppet/modules/opendaylight"},
- {con.VIRT_RUN_CMD: "cd /etc/puppet/modules && tar xzf "
- "/root/puppet-opendaylight-"
- "{}.tar.gz".format(ds_opts['odl_version'])}
- ])
- if ds_opts['odl_version'] == 'master':
- virt_cmds.extend([
- {con.VIRT_RUN_CMD: "rpm -ivh --nodeps /root/{}/*".format(
- ds_opts['odl_version'])}
- ])
- else:
- virt_cmds.extend([
- {con.VIRT_RUN_CMD: "yum -y install /root/{}/*".format(
- ds_opts['odl_version'])}
- ])
-
- elif sdn == 'opendaylight' and 'odl_vpp_netvirt' in ds_opts \
- and ds_opts['odl_vpp_netvirt']:
- virt_cmds.extend([
- {con.VIRT_RUN_CMD: "yum -y remove opendaylight"},
- {con.VIRT_RUN_CMD: "yum -y install /root/{}/*".format(
- ODL_NETVIRT_VPP_RPM)}
- ])
-
- if sdn == 'ovn':
+ oc_builder.inject_opendaylight(
+ odl_version=ds_opts['odl_version'],
+ image=tmp_oc_image,
+ tmp_dir=tmp_dir,
+ uc_ip=undercloud_admin_ip,
+ os_version=ds_opts['os_version'],
+ docker_tag=docker_tag,
+ )
+ if docker_tag:
+ patched_containers = patched_containers.union({'opendaylight'})
+
+ if patches:
+ if ds_opts['os_version'] == 'master':
+ branch = ds_opts['os_version']
+ else:
+ branch = "stable/{}".format(ds_opts['os_version'])
+ logging.info('Adding patches to overcloud')
+ patched_containers = patched_containers.union(
+ c_builder.add_upstream_patches(patches,
+ tmp_oc_image, tmp_dir,
+ branch,
+ uc_ip=undercloud_admin_ip,
+ docker_tag=docker_tag))
+ # if containers with ceph, and no ceph device we need to use a
+ # persistent loop device for Ceph OSDs
+ if docker_tag and ds_opts['ceph_device'] == '/dev/loop3':
+ tmp_losetup = os.path.join(tmp_dir, 'losetup.service')
+ with open(tmp_losetup, 'w') as fh:
+ fh.write(LOSETUP_SERVICE)
virt_cmds.extend([
- {con.VIRT_RUN_CMD: "cd /root/ovs28 && yum update -y "
- "*openvswitch*"},
- {con.VIRT_RUN_CMD: "cd /root/ovs28 && yum downgrade -y "
- "*openvswitch*"}
+ {con.VIRT_UPLOAD: "{}:/usr/lib/systemd/system/".format(tmp_losetup)
+ },
+ {con.VIRT_RUN_CMD: 'truncate /srv/data.img --size {}'
+ .format(LOOP_DEVICE_SIZE)},
+ {con.VIRT_RUN_CMD: 'systemctl daemon-reload'},
+ {con.VIRT_RUN_CMD: 'systemctl enable losetup.service'},
])
-
- tmp_oc_image = os.path.join(tmp_dir, 'overcloud-full.qcow2')
- shutil.copyfile(img, tmp_oc_image)
- logging.debug("Temporary overcloud image stored as: {}".format(
- tmp_oc_image))
+ # TODO(trozet) remove this after LP#173474 is fixed
+ dhcp_unit = '/usr/lib/systemd/system/dhcp-interface@.service'
+ virt_cmds.append(
+ {con.VIRT_RUN_CMD: "crudini --del {} Unit "
+ "ConditionPathExists".format(dhcp_unit)})
+ # Prep for NFS
+ virt_cmds.extend([
+ {con.VIRT_INSTALL: "nfs-utils"},
+ {con.VIRT_RUN_CMD: "ln -s /usr/lib/systemd/system/nfs-server.service "
+ "/etc/systemd/system/multi-user.target.wants/"
+ "nfs-server.service"},
+ {con.VIRT_RUN_CMD: "mkdir -p /glance"},
+ {con.VIRT_RUN_CMD: "mkdir -p /cinder"},
+ {con.VIRT_RUN_CMD: "mkdir -p /nova"},
+ {con.VIRT_RUN_CMD: "chmod 777 /glance"},
+ {con.VIRT_RUN_CMD: "chmod 777 /cinder"},
+ {con.VIRT_RUN_CMD: "chmod 777 /nova"},
+ {con.VIRT_RUN_CMD: "chown nfsnobody:nfsnobody /glance"},
+ {con.VIRT_RUN_CMD: "chown nfsnobody:nfsnobody /cinder"},
+ {con.VIRT_RUN_CMD: "chown nfsnobody:nfsnobody /nova"},
+ {con.VIRT_RUN_CMD: "echo '/glance *(rw,sync,"
+ "no_root_squash,no_acl)' > /etc/exports"},
+ {con.VIRT_RUN_CMD: "echo '/cinder *(rw,sync,"
+ "no_root_squash,no_acl)' >> /etc/exports"},
+ {con.VIRT_RUN_CMD: "echo '/nova *(rw,sync,"
+ "no_root_squash,no_acl)' >> /etc/exports"},
+ {con.VIRT_RUN_CMD: "exportfs -avr"},
+ ])
virt_utils.virt_customize(virt_cmds, tmp_oc_image)
logging.info("Overcloud image customization complete")
+ return patched_containers
def make_ssh_key():
@@ -341,6 +509,10 @@ def prep_env(ds, ns, inv, opnfv_env, net_env, tmp_dir):
# SSH keys
private_key, public_key = make_ssh_key()
+ num_control, num_compute = inv.get_node_counts()
+ if num_control > 1 and not ds['global_params']['ha_enabled']:
+ num_control = 1
+
# Make easier/faster variables to index in the file editor
if 'performance' in ds_opts:
perf = True
@@ -368,6 +540,10 @@ def prep_env(ds, ns, inv, opnfv_env, net_env, tmp_dir):
else:
perf = False
+ tenant_settings = ns['networks']['tenant']
+ tenant_vlan_enabled = 'tenant' in ns.enabled_network_list and \
+ ns['networks']['tenant'].get('segmentation_type') == 'vlan'
+
# Modify OPNFV environment
# TODO: Change to build a dict and outputting yaml rather than parsing
for line in fileinput.input(tmp_opnfv_env, inplace=True):
@@ -391,6 +567,46 @@ def prep_env(ds, ns, inv, opnfv_env, net_env, tmp_dir):
ds_opts['dataplane'] == 'ovs_dpdk':
output_line = ' OS::TripleO::ComputeExtraConfigPre: ' \
'./ovs-dpdk-preconfig.yaml'
+ elif 'NeutronNetworkVLANRanges' in line:
+ vlan_setting = ''
+ if tenant_vlan_enabled:
+ if ns['networks']['tenant']['overlay_id_range']:
+ vlan_setting = ns['networks']['tenant']['overlay_id_range']
+ if 'datacentre' not in vlan_setting:
+ vlan_setting += ',datacentre:1:1000'
+ # SRIOV networks are VLAN based provider networks. In order to
+ # simplify the deployment, nfv_sriov will be the default physnet.
+ # VLANs are not needed in advance, and the user will have to create
+ # the network specifying the segmentation-id.
+ if ds_opts['sriov']:
+ if vlan_setting:
+ vlan_setting += ",nfv_sriov"
+ else:
+ vlan_setting = "datacentre:1:1000,nfv_sriov"
+ if vlan_setting:
+ output_line = " NeutronNetworkVLANRanges: " + vlan_setting
+ elif 'NeutronBridgeMappings' in line and tenant_vlan_enabled:
+ if tenant_settings['overlay_id_range']:
+ physnets = tenant_settings['overlay_id_range'].split(',')
+ output_line = " NeutronBridgeMappings: "
+ for physnet in physnets:
+ physnet_name = physnet.split(':')[0]
+ if physnet_name != 'datacentre':
+ output_line += "{}:br-vlan,".format(physnet_name)
+ output_line += "datacentre:br-ex"
+ elif 'OpenDaylightProviderMappings' in line and tenant_vlan_enabled \
+ and ds_opts['sdn_controller'] == 'opendaylight':
+ if tenant_settings['overlay_id_range']:
+ physnets = tenant_settings['overlay_id_range'].split(',')
+ output_line = " OpenDaylightProviderMappings: "
+ for physnet in physnets:
+ physnet_name = physnet.split(':')[0]
+ if physnet_name != 'datacentre':
+ output_line += "{}:br-vlan,".format(physnet_name)
+ output_line += "datacentre:br-ex"
+ elif 'NeutronNetworkType' in line and tenant_vlan_enabled:
+ output_line = " NeutronNetworkType: vlan\n" \
+ " NeutronTunnelTypes: ''"
if ds_opts['sdn_controller'] == 'opendaylight' and \
'odl_vpp_routing_node' in ds_opts:
@@ -400,16 +616,22 @@ def prep_env(ds, ns, inv, opnfv_env, net_env, tmp_dir):
ns['domain_name']))
elif not ds_opts['sdn_controller'] and ds_opts['dataplane'] == 'fdio':
if 'NeutronVPPAgentPhysnets' in line:
- output_line = (" NeutronVPPAgentPhysnets: 'datacentre:{}'".
- format(tenant_nic['Controller']))
+ # VPP interface tap0 will be used for external network
+ # connectivity.
+ output_line = (" NeutronVPPAgentPhysnets: "
+ "'datacentre:{},external:tap0'"
+ .format(tenant_nic['Controller']))
elif ds_opts['sdn_controller'] == 'opendaylight' and ds_opts.get(
'dvr') is True:
if 'OS::TripleO::Services::NeutronDhcpAgent' in line:
output_line = ''
elif 'NeutronDhcpAgentsPerNetwork' in line:
- num_control, num_compute = inv.get_node_counts()
+ if num_compute == 0:
+ num_dhcp_agents = num_control
+ else:
+ num_dhcp_agents = num_compute
output_line = (" NeutronDhcpAgentsPerNetwork: {}"
- .format(num_compute))
+ .format(num_dhcp_agents))
elif 'ComputeServices' in line:
output_line = (" ComputeServices:\n"
" - OS::TripleO::Services::NeutronDhcpAgent")
@@ -475,7 +697,50 @@ def prep_env(ds, ns, inv, opnfv_env, net_env, tmp_dir):
print(output_line)
+ # Merge compute services into control services if only a single
+ # node deployment
+ if num_compute == 0:
+ with open(tmp_opnfv_env, 'r') as fh:
+ data = yaml.safe_load(fh)
+ param_data = data['parameter_defaults']
+ logging.info("All in one deployment detected")
+ logging.info("Disabling NFS in env file")
+ # Check to see if any parameters are set for Compute
+ for param in param_data.keys():
+ if param != 'ComputeServices' and param.startswith('Compute'):
+ logging.warning("Compute parameter set, but will not be used "
+ "in deployment: {}. Please use Controller "
+ "based parameters when using All-in-one "
+ "deployments".format(param))
+ if param in NFS_VARS:
+ param_data[param] = False
+ logging.info("Checking if service merging required into "
+ "control services")
+ if ('ControllerServices' in param_data and 'ComputeServices' in
+ param_data):
+ logging.info("Services detected in environment file. Merging...")
+ ctrl_services = param_data['ControllerServices']
+ cmp_services = param_data['ComputeServices']
+ param_data['ControllerServices'] = list(set().union(
+ ctrl_services, cmp_services))
+ for dup_service in DUPLICATE_COMPUTE_SERVICES:
+ if dup_service in param_data['ControllerServices']:
+ param_data['ControllerServices'].remove(dup_service)
+ param_data.pop('ComputeServices')
+ logging.debug("Merged controller services: {}".format(
+ pprint.pformat(param_data['ControllerServices'])
+ ))
+ else:
+ logging.info("No services detected in env file, not merging "
+ "services")
+ with open(tmp_opnfv_env, 'w') as fh:
+ yaml.safe_dump(data, fh, default_flow_style=False)
+
logging.info("opnfv-environment file written to {}".format(tmp_opnfv_env))
+ with open(tmp_opnfv_env, 'r') as fh:
+ logging.debug("opnfv-environment content is : {}".format(
+ pprint.pformat(yaml.safe_load(fh.read()))
+ ))
def generate_ceph_key():
@@ -484,11 +749,13 @@ def generate_ceph_key():
return base64.b64encode(header + key)
-def prep_storage_env(ds, tmp_dir):
+def prep_storage_env(ds, ns, virtual, tmp_dir):
"""
Creates storage environment file for deployment. Source file is copied by
undercloud playbook to host.
:param ds:
+ :param ns:
+ :param virtual:
:param tmp_dir:
:return:
"""
@@ -510,9 +777,35 @@ def prep_storage_env(ds, tmp_dir):
elif 'CephAdminKey' in line:
print(" CephAdminKey: {}".format(generate_ceph_key().decode(
'utf-8')))
+ elif 'CephClientKey' in line:
+ print(" CephClientKey: {}".format(generate_ceph_key().decode(
+ 'utf-8')))
else:
print(line)
- if 'ceph_device' in ds_opts and ds_opts['ceph_device']:
+
+ if ds_opts['containers']:
+ ceph_params = {}
+
+ # max pgs allowed are calculated as num_mons * 200. Therefore we
+ # set number of pgs and pools so that the total will be less:
+ # num_pgs * num_pools * num_osds
+ ceph_params['CephPoolDefaultSize'] = 2
+ ceph_params['CephPoolDefaultPgNum'] = 32
+ if virtual:
+ ceph_params['CephAnsibleExtraConfig'] = {
+ 'centos_package_dependencies': [],
+ 'ceph_osd_docker_memory_limit': '1g',
+ 'ceph_mds_docker_memory_limit': '1g',
+ }
+ ceph_device = ds_opts['ceph_device']
+ ceph_params['CephAnsibleDisksConfig'] = {
+ 'devices': [ceph_device],
+ 'journal_size': 512,
+ 'osd_scenario': 'collocated'
+ }
+ utils.edit_tht_env(storage_file, 'parameter_defaults', ceph_params)
+ # TODO(trozet): remove following block as we only support containers now
+ elif 'ceph_device' in ds_opts and ds_opts['ceph_device']:
with open(storage_file, 'a') as fh:
fh.write(' ExtraConfig:\n')
fh.write(" ceph::profile::params::osds:{{{}:{{}}}}\n".format(
@@ -520,12 +813,58 @@ def prep_storage_env(ds, tmp_dir):
))
-def external_network_cmds(ns):
+def prep_sriov_env(ds, tmp_dir):
+ """
+ Creates SRIOV environment file for deployment. Source file is copied by
+ undercloud playbook to host.
+ :param ds:
+ :param tmp_dir:
+ :return:
+ """
+ ds_opts = ds['deploy_options']
+ sriov_iface = ds_opts['sriov']
+ sriov_file = os.path.join(tmp_dir, 'neutron-opendaylight-sriov.yaml')
+ if not os.path.isfile(sriov_file):
+ logging.error("sriov-environment file is not in tmp directory: {}. "
+ "Check if file was copied from "
+ "undercloud".format(tmp_dir))
+ raise ApexDeployException("sriov-environment file not copied from "
+ "undercloud")
+ # TODO(rnoriega): Instead of line editing, refactor this code to load
+ # yaml file into a dict, edit it and write the file back.
+ for line in fileinput.input(sriov_file, inplace=True):
+ line = line.strip('\n')
+ if 'NovaSchedulerDefaultFilters' in line:
+ print(" {}".format(line[3:]))
+ elif 'NovaSchedulerAvailableFilters' in line:
+ print(" {}".format(line[3:]))
+ elif 'NeutronPhysicalDevMappings' in line:
+ print(" NeutronPhysicalDevMappings: \"nfv_sriov:{}\""
+ .format(sriov_iface))
+ elif 'NeutronSriovNumVFs' in line:
+ print(" NeutronSriovNumVFs: \"{}:8\"".format(sriov_iface))
+ elif 'NovaPCIPassthrough' in line:
+ print(" NovaPCIPassthrough:")
+ elif 'devname' in line:
+ print(" - devname: \"{}\"".format(sriov_iface))
+ elif 'physical_network' in line:
+ print(" physical_network: \"nfv_sriov\"")
+ else:
+ print(line)
+
+
+def external_network_cmds(ns, ds):
"""
Generates external network openstack commands
:param ns: network settings
+ :param ds: deploy settings
:return: list of commands to configure external network
"""
+ ds_opts = ds['deploy_options']
+ external_physnet = 'datacentre'
+ if ds_opts['dataplane'] == 'fdio' and \
+ ds_opts['sdn_controller'] != 'opendaylight':
+ external_physnet = 'external'
if 'external' in ns.enabled_network_list:
net_config = ns['networks']['external'][0]
external = True
@@ -546,7 +885,8 @@ def external_network_cmds(ns):
'compute']['vlan'])
cmds.append("openstack network create external --project service "
"--external --provider-network-type {} "
- "--provider-physical-network datacentre".format(ext_type))
+ "--provider-physical-network {}"
+ .format(ext_type, external_physnet))
# create subnet command
cidr = net_config['cidr']
subnet_cmd = "openstack subnet create external-subnet --project " \
@@ -554,8 +894,7 @@ def external_network_cmds(ns):
"--allocation-pool start={},end={} --subnet-range " \
"{}".format(gateway, pool_start, pool_end, str(cidr))
if external and cidr.version == 6:
- subnet_cmd += ' --ip-version 6 --ipv6-ra-mode slaac ' \
- '--ipv6-address-mode slaac'
+ subnet_cmd += ' --ip-version 6'
cmds.append(subnet_cmd)
logging.debug("Neutron external network commands determined "
"as: {}".format(cmds))
diff --git a/apex/overcloud/node.py b/apex/overcloud/node.py
new file mode 100644
index 00000000..622d1fd1
--- /dev/null
+++ b/apex/overcloud/node.py
@@ -0,0 +1,147 @@
+##############################################################################
+# Copyright (c) 2018 Tim Rozet (trozet@redhat.com) and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+import logging
+import os
+import shutil
+import xml.etree.ElementTree as ET
+
+import distro
+import libvirt
+
+from apex.common.exceptions import OvercloudNodeException
+
+
+class OvercloudNode:
+ """
+ Overcloud server
+ """
+ def __init__(self, role, ip, ovs_ctrlrs, ovs_mgrs, name, node_xml,
+ disk_img):
+ self.role = role
+ self.ip = ip
+ self.ovs_ctrlrs = ovs_ctrlrs
+ self.ovs_mgrs = ovs_mgrs
+ self.name = name
+ self.node_xml_file = node_xml
+ self.node_xml = None
+ self.vm = None
+ self.disk_img = None
+ if not os.path.isfile(self.node_xml_file):
+ raise OvercloudNodeException('XML definition file not found: '
+ '{}'.format(self.node_xml_file))
+ if not os.path.isfile(disk_img):
+ raise OvercloudNodeException('Disk image file not found: '
+ '{}'.format(disk_img))
+ self.conn = libvirt.open('qemu:///system')
+ if not self.conn:
+ raise OvercloudNodeException('Unable to open libvirt connection')
+
+ self.create(src_disk=disk_img)
+
+ def _configure_disk(self, disk):
+ # find default storage pool path
+ pool = self.conn.storagePoolLookupByName('default')
+ if pool is None:
+ raise OvercloudNodeException('Cannot find default storage pool')
+ pool_xml = pool.XMLDesc()
+ logging.debug('Default storage pool xml: {}'.format(pool_xml))
+ etree = ET.fromstring(pool_xml)
+ try:
+ path = etree.find('target').find('path').text
+ logging.info('System libvirt default pool path: {}'.format(path))
+ except AttributeError as e:
+ logging.error('Failure to find libvirt storage path: {}'.format(
+ e))
+ raise OvercloudNodeException('Cannot find default storage path')
+ # copy disk to system path
+ self.disk_img = os.path.join(path, os.path.basename(disk))
+ logging.info('Copying disk image to: {}. This may take some '
+ 'time...'.format(self.disk_img))
+ shutil.copyfile(disk, self.disk_img)
+
+ @staticmethod
+ def _update_xml(xml, disk_path=None):
+ """
+ Updates a libvirt XML file for the current architecture and OS of this
+ machine
+ :param xml: XML string of Libvirt domain definition
+ :param disk_path: Optional file path to update for the backing disk
+ image
+ :return: Updated XML
+ """
+ logging.debug('Parsing xml')
+ try:
+ etree = ET.fromstring(xml)
+ except ET.ParseError:
+ logging.error('Unable to parse node XML: {}'.format(xml))
+ raise OvercloudNodeException('Unable to parse node XML')
+
+ try:
+ type_element = etree.find('os').find('type')
+ if 'machine' in type_element.keys():
+ type_element.set('machine', 'pc')
+ logging.debug('XML updated with machine "pc"')
+ except AttributeError:
+ logging.warning('Failure to set XML machine type')
+
+ # qemu-kvm path may differ per system, need to detect it and update xml
+ linux_ver = distro.linux_distribution()[0]
+ if linux_ver == 'Fedora':
+ qemu_path = '/usr/bin/qemu-kvm'
+ else:
+ qemu_path = '/usr/libexec/qemu-kvm'
+
+ try:
+ etree.find('devices').find('emulator').text = qemu_path
+ logging.debug('XML updated with emulator location: '
+ '{}'.format(qemu_path))
+ xml = ET.tostring(etree).decode('utf-8')
+ except AttributeError:
+ logging.warning('Failure to update XML qemu path')
+
+ if disk_path:
+ try:
+ disk_element = etree.find('devices').find('disk').find(
+ 'source')
+ disk_element.set('file', disk_path)
+ logging.debug('XML updated with file path: {}'.format(
+ disk_path))
+ except AttributeError:
+ logging.error('Failure to parse XML and set disk type')
+ raise OvercloudNodeException(
+ 'Unable to set new disk path in xml {}'.format(xml))
+
+ return ET.tostring(etree).decode('utf-8')
+
+ def create(self, src_disk):
+ # copy disk to pool and get new disk location
+ logging.debug('Preparing disk image')
+ self._configure_disk(src_disk)
+ logging.debug('Parsing node XML from {}'.format(self.node_xml_file))
+ with open(self.node_xml_file, 'r') as fh:
+ self.node_xml = fh.read()
+ # if machine is not pc we need to set, also need to update qemu-kvm and
+ # storage location
+ self.node_xml = self._update_xml(self.node_xml, self.disk_img)
+ logging.info('Creating node {} in libvirt'.format(self.name))
+ self.vm = self.conn.defineXML(self.node_xml)
+
+ def start(self):
+ """
+ Boot node in libvirt
+ :return:
+ """
+ try:
+ self.vm.create()
+ logging.info('Node {} started'.format(self.name))
+ except libvirt.libvirtError as e:
+ logging.error('Failed to start domain: {}'.format(self.name))
+ raise OvercloudNodeException('Failed to start VM. Reason: '
+ '{}'.format(e))
diff --git a/apex/settings/deploy_settings.py b/apex/settings/deploy_settings.py
index f2012b24..9f8a6f18 100644
--- a/apex/settings/deploy_settings.py
+++ b/apex/settings/deploy_settings.py
@@ -23,11 +23,15 @@ REQ_DEPLOY_SETTINGS = ['sdn_controller',
'ceph',
'gluon',
'rt_kvm',
- 'os_version']
+ 'os_version',
+ 'l2gw',
+ 'sriov',
+ 'containers',
+ 'ceph_device',
+ 'vim']
OPT_DEPLOY_SETTINGS = ['performance',
'vsperf',
- 'ceph_device',
'yardstick',
'dovetail',
'odl_vpp_routing_node',
@@ -102,12 +106,16 @@ class DeploySettings(dict):
self['deploy_options'][req_set] = 'ovs'
elif req_set == 'ceph':
self['deploy_options'][req_set] = True
+ elif req_set == 'ceph_device':
+ self['deploy_options'][req_set] = '/dev/loop3'
elif req_set == 'odl_version':
self['deploy_options'][req_set] = \
constants.DEFAULT_ODL_VERSION
elif req_set == 'os_version':
self['deploy_options'][req_set] = \
constants.DEFAULT_OS_VERSION
+ elif req_set == 'vim':
+ self['deploy_options'][req_set] = 'openstack'
else:
self['deploy_options'][req_set] = False
elif req_set == 'odl_version' and self['deploy_options'][
@@ -115,9 +123,11 @@ class DeploySettings(dict):
raise DeploySettingsException(
"Invalid ODL version: {}".format(self[deploy_options][
'odl_version']))
-
- if self['deploy_options']['odl_version'] == 'oxygen':
- self['deploy_options']['odl_version'] = 'master'
+ elif req_set == 'sriov':
+ if self['deploy_options'][req_set] is True:
+ raise DeploySettingsException(
+ "Invalid SRIOV interface name: {}".format(
+ self['deploy_options']['sriov']))
if 'performance' in deploy_options:
if not isinstance(deploy_options['performance'], dict):
diff --git a/apex/settings/network_settings.py b/apex/settings/network_settings.py
index f6566834..36d143cb 100644
--- a/apex/settings/network_settings.py
+++ b/apex/settings/network_settings.py
@@ -167,10 +167,13 @@ class NetworkSettings(dict):
"""
_network = self.get_network(network)
# if vlan not defined then default it to native
- if network is not ADMIN_NETWORK:
- for role in ROLES:
+ for role in ROLES:
+ if network is not ADMIN_NETWORK:
if 'vlan' not in _network['nic_mapping'][role]:
_network['nic_mapping'][role]['vlan'] = 'native'
+ else:
+ # ctlplane network must be native
+ _network['nic_mapping'][role]['vlan'] = 'native'
cidr = _network.get('cidr')
diff --git a/apex/tests/config/98faaca.diff b/apex/tests/config/98faaca.diff
new file mode 100644
index 00000000..96462d5f
--- /dev/null
+++ b/apex/tests/config/98faaca.diff
@@ -0,0 +1,331 @@
+From 98faacad44e39a456d9fe1a1d21f5a65e8de4fc1 Mon Sep 17 00:00:00 2001
+From: Janki Chhatbar <jchhatba@redhat.com>
+Date: Tue, 23 Jan 2018 22:43:49 +0530
+Subject: [PATCH] Minor update steps for ODL
+
+Updating OpenStack (within release) means updating ODL from v1 to v1.1.
+This is done by "openstack overcloud update" which collects
+update_tasks. ODL needs 2 different steps to achieve this
+minor update. These are called Level1 and Level2. L1 is
+simple - stop ODL, update, start. This is taken care by paunch
+and no separate implementation is needed. L2 has extra steps
+which are implemented in update_tasks and post_update_tasks.
+
+Updating ODL within the same major release (1->1.1) consists of either
+L1 or L2 steps. These steps are decided from ODLUpdateLevel parameter
+specified in environments/services-docker/update-odl.yaml.
+
+Upgrading ODL to the next major release (1.1->2) requires
+only the L2 steps. These are implemented as upgrade_tasks and
+post_upgrade_tasks in https://review.opendev.org/489201.
+
+Steps involved in level 2 update are
+ 1. Block OVS instances to connect to ODL
+ 2. Set ODL upgrade flag to True
+ 3. Start ODL
+ 4. Start Neutron re-sync and wait for it to finish
+ 5. Delete OVS groups and ports
+ 6. Stop OVS
+ 7. Unblock OVS ports
+ 8. Start OVS
+ 9. Unset ODL upgrade flag
+
+These steps are exactly same as upgrade_tasks.
+The logic implemented is:
+follow upgrade_tasks; when update_level == 2
+
+Change-Id: Ie532800663dd24313a7350b5583a5080ddb796e7
+---
+
+diff --git a/common/deploy-steps.j2 b/common/deploy-steps.j2
+index 595e16c..c4fb05f 100644
+--- a/common/deploy-steps.j2
++++ b/common/deploy-steps.j2
+@@ -23,6 +23,7 @@
+ {% set post_upgrade_steps_max = 4 -%}
+ {% set fast_forward_upgrade_steps_max = 9 -%}
+ {% set fast_forward_upgrade_prep_steps_max = 3 -%}
++{% set post_update_steps_max = 4 -%}
+
+ heat_template_version: queens
+
+@@ -590,3 +591,15 @@
+ - include_tasks: {{role.name}}/fast_forward_upgrade_tasks.yaml
+ when: role_name == '{{role.name}}' and ansible_hostname == {{role.name}}[0]
+ {%- endfor %}
++ post_update_steps_tasks: |
++{%- for role in roles %}
++ - include: {{role.name}}/post_update_tasks.yaml
++ when: role_name == '{{role.name}}'
++{%- endfor %}
++ post_update_steps_playbook: |
++ - hosts: overcloud
++ tasks:
++ - include: post_update_steps_tasks.yaml
++ with_sequence: start=0 end={{post_update_steps_max-1}}
++ loop_control:
++ loop_var: step
+diff --git a/common/services.yaml b/common/services.yaml
+index 2a62c1b..c197b05 100644
+--- a/common/services.yaml
++++ b/common/services.yaml
+@@ -283,6 +283,16 @@
+ expression: coalesce($.data, []).where($ != null).select($.get('update_tasks')).where($ != null).flatten().distinct()
+ data: {get_attr: [ServiceChain, role_data]}
+
++ PostUpdateTasks:
++ type: OS::Heat::Value
++ properties:
++ type: comma_delimited_list
++ value:
++ yaql:
++ # Note we use distinct() here to filter any identical tasks, e.g yum update for all services
++ expression: coalesce($.data, []).where($ != null).select($.get('post_update_tasks')).where($ != null).flatten().distinct()
++ data: {get_attr: [ServiceChain, role_data]}
++
+ UpgradeBatchTasks:
+ type: OS::Heat::Value
+ properties:
+@@ -349,6 +359,7 @@
+ upgrade_tasks: {get_attr: [UpgradeTasks, value]}
+ post_upgrade_tasks: {get_attr: [PostUpgradeTasks, value]}
+ update_tasks: {get_attr: [UpdateTasks, value]}
++ post_update_tasks: {get_attr: [PostUpdateTasks, value]}
+ upgrade_batch_tasks: {get_attr: [UpgradeBatchTasks, value]}
+ service_metadata_settings: {get_attr: [ServiceServerMetadataHook, metadata]}
+
+diff --git a/docker/services/opendaylight-api.yaml b/docker/services/opendaylight-api.yaml
+index 6175db9..3cafe53 100644
+--- a/docker/services/opendaylight-api.yaml
++++ b/docker/services/opendaylight-api.yaml
+@@ -44,6 +44,14 @@
+ type: string
+ description: Specifies the default CA cert to use if TLS is used for
+ services in the internal network.
++ ODLUpdateLevel:
++ default: 1
++ description: Specify the level of update
++ type: number
++ constraints:
++ - allowed_values:
++ - 1
++ - 2
+
+ conditions:
+
+@@ -167,23 +175,25 @@
+ - opendaylight_enabled.rc == 0
+ service: name=opendaylight state=stopped enabled=no
+ # Containarised deployment upgrade steps
+- - name: remove journal and snapshots
+- when: step|int == 0
+- file:
+- path: /var/lib/opendaylight/{{item}}
+- state: absent
+- with_items:
+- - snapshots
+- - journal
+- - name: Set ODL upgrade flag to True
+- copy:
+- dest: /var/lib/opendaylight/etc/opendaylight/datastore/initial/config/genius-mdsalutil-config.xml
+- content: |
+- <config xmlns="urn:opendaylight:params:xml:ns:yang:mdsalutil">
+- <upgradeInProgress>true</upgradeInProgress>
+- </config>
+- when: step|int == 1
+- post_upgrade_tasks:
++ - name: ODL container L2 update and upgrade tasks
++ block: &odl_container_upgrade_tasks
++ - name: remove journal and snapshots
++ when: step|int == 0
++ file:
++ path: /var/lib/opendaylight/{{item}}
++ state: absent
++ with_items:
++ - snapshots
++ - journal
++ - name: Set ODL upgrade flag to True
++ copy:
++ dest: /var/lib/opendaylight/etc/opendaylight/datastore/initial/config/genius-mdsalutil-config.xml
++ content: |
++ <config xmlns="urn:opendaylight:params:xml:ns:yang:mdsalutil">
++ <upgradeInProgress>true</upgradeInProgress>
++ </config>
++ when: step|int == 1
++ post_upgrade_tasks: &odl_container_post_upgrade_tasks
+ - name: Unset upgrade flag in ODL
+ shell:
+ str_replace:
+@@ -192,7 +202,20 @@
+ -H "Content-Type: application/json" \
+ $ODL_URI/restconf/config/genius-mdsalutil:config'
+ params:
+- $ODL_USERNAME: {get_param: [OpenDaylightBase, OpenDaylightUsername]}
+- $ODL_PASSWORD: {get_param: [OpenDaylightBase, OpenDaylightPassword]}
++ $ODL_USERNAME: {get_attr: [OpenDaylightBase, role_data, config_settings, 'opendaylight::username']}
++ $ODL_PASSWORD: {get_attr: [OpenDaylightBase, role_data, config_settings, 'opendaylight::password']}
+ $ODL_URI: {get_param: [EndpointMap, OpenDaylightInternal, uri]}
+ when: step|int == 0
++ update_tasks:
++ - name: Get ODL update level
++ block: &get_odl_update_level
++ - name: store update level to update_level variable
++ set_fact:
++ odl_update_level: {get_param: ODLUpdateLevel}
++ - name: Run L2 update tasks that are similar to upgrade_tasks when update level is 2
++ block: *odl_container_upgrade_tasks
++ when: odl_update_level == 2
++ post_update_tasks:
++ - block: *get_odl_update_level
++ - block: *odl_container_post_upgrade_tasks
++ when: odl_update_level == 2
+\ No newline at end of file
+diff --git a/environments/services-docker/update-odl.yaml b/environments/services-docker/update-odl.yaml
+new file mode 100644
+index 0000000..87d74ef
+--- /dev/null
++++ b/environments/services-docker/update-odl.yaml
+@@ -0,0 +1,11 @@
++# This file describes parameters needed for ODL update.
++# This file is to be used along with other env files during
++# level 2 minor update.
++# Level 2 update involves yang changes in ODL within same ODL release and
++# hence needs DB wipe and resync.
++# Level 1 is simple update - stop ODL, pull new image, start ODL
++# This file is not be used during level1 update or major upgrade.
++# In case doubt, please reach out to ODL developers on #tripleo IRC channel
++
++parameter_defaults:
++ ODLUpdateLevel: 2
+\ No newline at end of file
+diff --git a/puppet/services/opendaylight-ovs.yaml b/puppet/services/opendaylight-ovs.yaml
+index 3390645..958e1bb 100644
+--- a/puppet/services/opendaylight-ovs.yaml
++++ b/puppet/services/opendaylight-ovs.yaml
+@@ -104,6 +104,14 @@
+ type: string
+ description: Specifies the default CA cert to use if TLS is used for
+ services in the internal network.
++ ODLUpdateLevel:
++ default: 1
++ description: Specify the level of update
++ type: number
++ constraints:
++ - allowed_values:
++ - 1
++ - 2
+
+ parameter_groups:
+ - label: deprecated
+@@ -230,14 +238,16 @@
+ - openvswitch_enabled.rc == 0
+ service: name=openvswitch state=stopped
+ # Container upgrade steps.
+- - name: Block connections to ODL. #This rule will be inserted at the top.
+- iptables: chain=OUTPUT action=insert protocol=tcp destination_port={{ item }} jump=DROP
+- when: step|int == 0
+- with_items:
+- - 6640
+- - 6653
+- - 6633
+- post_upgrade_tasks:
++ - name: ODL container L2 update and upgrade tasks
++ block: &odl_container_upgrade_tasks
++ - name: Block connections to ODL. #This rule will be inserted at the top.
++ iptables: chain=OUTPUT action=insert protocol=tcp destination_port={{ item }} jump=DROP
++ when: step|int == 0
++ with_items:
++ - 6640
++ - 6653
++ - 6633
++ post_upgrade_tasks: &odl_container_post_upgrade_tasks
+ - name: Check service openvswitch is running
+ command: systemctl is-active --quiet openvswitch
+ tags: common
+@@ -260,6 +270,20 @@
+ - name: start openvswitch service
+ when: step|int == 3
+ service : name=openvswitch state=started
++ update_tasks:
++ - name: Get ODL update level
++ block: &get_odl_update_level
++ - name: store update level to update_level variable
++ set_fact:
++ odl_update_level: {get_param: ODLUpdateLevel}
++ - name: Run L2 update tasks that are similar to upgrade_tasks when update level is 2
++ block: *odl_container_upgrade_tasks
++ when: odl_update_level == 2
++ post_update_tasks:
++ - block: *get_odl_update_level
++ - block: *odl_container_post_upgrade_tasks
++ when: odl_update_level == 2
++
+ metadata_settings:
+ if:
+ - internal_tls_enabled
+@@ -267,4 +291,4 @@
+ - service: ovs
+ network: {get_param: [ServiceNetMap, OpendaylightApiNetwork]}
+ type: node
+- - null
++ - null
+\ No newline at end of file
+diff --git a/releasenotes/notes/odl_upgrade-f5540d242b9a6b52.yaml b/releasenotes/notes/odl_upgrade-f5540d242b9a6b52.yaml
+index 45703d0..e2943de 100644
+--- a/releasenotes/notes/odl_upgrade-f5540d242b9a6b52.yaml
++++ b/releasenotes/notes/odl_upgrade-f5540d242b9a6b52.yaml
+@@ -1,6 +1,6 @@
+ ---
+
+-features:
++upgrade:
+ - Add ODL upgradability
+ Steps of upgrade are as follows
+ 1. Block OVS instances to connect to ODL done in upgrade_tasks
+diff --git a/releasenotes/notes/update_odl-cb997ce5c136ebb7.yaml b/releasenotes/notes/update_odl-cb997ce5c136ebb7.yaml
+new file mode 100644
+index 0000000..1bcf8ed
+--- /dev/null
++++ b/releasenotes/notes/update_odl-cb997ce5c136ebb7.yaml
+@@ -0,0 +1,19 @@
++---
++features:
++ - Minor update ODL steps are added. ODL minor update (within same ODL
++ release) can have 2 different workflow. These are called level 1 and
++ level2. Level 1 is simple - stop, update and start ODL. Level 2 is
++ complex and involved yang model changes. This requires wiping of
++ DB and resync to repopulate the data.
++ Steps involved in level 2 update are
++ 1. Block OVS instances to connect to ODL
++ 2. Set ODL upgrade flag to True
++ 3. Start ODL
++ 4. Start Neutron re-sync and wait for it to finish
++ 5. Delete OVS groups and ports
++ 6. Stop OVS
++ 7. Unblock OVS ports
++ 8. Start OVS
++ 9. Unset ODL upgrade flag
++ To achieve L2 update, use "-e environments/services-docker/
++ update-odl.yaml" along with other env files to the update command.
+\ No newline at end of file
+diff --git a/tools/yaml-validate.py b/tools/yaml-validate.py
+index 59473f5..9ab6a87 100755
+--- a/tools/yaml-validate.py
++++ b/tools/yaml-validate.py
+@@ -46,11 +46,11 @@
+ OPTIONAL_DOCKER_SECTIONS = ['docker_puppet_tasks', 'upgrade_tasks',
+ 'fast_forward_upgrade_tasks',
+ 'post_upgrade_tasks', 'update_tasks',
+- 'service_config_settings', 'host_prep_tasks',
+- 'metadata_settings', 'kolla_config',
+- 'global_config_settings', 'logging_source',
+- 'logging_groups', 'external_deploy_tasks',
+- 'external_post_deploy_tasks',
++ 'post_update_tasks', 'service_config_settings',
++ 'host_prep_tasks', 'metadata_settings',
++ 'kolla_config', 'global_config_settings',
++ 'logging_source', 'logging_groups',
++ 'external_deploy_tasks', 'external_post_deploy_tasks',
+ 'docker_config_scripts', 'step_config']
+ REQUIRED_DOCKER_PUPPET_CONFIG_SECTIONS = ['config_volume', 'step_config',
+ 'config_image']
diff --git a/apex/tests/config/admin.xml b/apex/tests/config/admin.xml
new file mode 100644
index 00000000..69b15b1f
--- /dev/null
+++ b/apex/tests/config/admin.xml
@@ -0,0 +1,7 @@
+<network connections='1' ipv6='yes'>
+ <name>admin</name>
+ <uuid>761c34f8-2a72-4205-8e69-5ed6626c6efa</uuid>
+ <forward mode='bridge'/>
+ <bridge name='br-admin'/>
+ <virtualport type='openvswitch'/>
+</network>
diff --git a/apex/tests/config/baremetal0.xml b/apex/tests/config/baremetal0.xml
new file mode 100644
index 00000000..4ff8f65a
--- /dev/null
+++ b/apex/tests/config/baremetal0.xml
@@ -0,0 +1,73 @@
+<domain type='kvm'>
+ <name>baremetal0</name>
+ <uuid>25bf15b6-130c-4bca-87af-e5cbc14bb454</uuid>
+ <memory unit='KiB'>12582912</memory>
+ <currentMemory unit='KiB'>12582912</currentMemory>
+ <vcpu placement='static'>4</vcpu>
+ <resource>
+ <partition>/machine</partition>
+ </resource>
+ <os>
+ <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
+ <boot dev='hd'/>
+ <bootmenu enable='no'/>
+ </os>
+ <features>
+ <acpi/>
+ <apic/>
+ <pae/>
+ </features>
+ <cpu mode='host-passthrough'/>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
+ <devices>
+ <emulator>/usr/libexec/qemu-kvm</emulator>
+ <disk type='file' device='disk'>
+ <driver name='qemu' type='qcow2' cache='unsafe'/>
+ <source file='/home/images/baremetal0.qcow2'/>
+ <target dev='sda' bus='sata'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <controller type='scsi' index='0' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
+ </controller>
+ <controller type='usb' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
+ </controller>
+ <controller type='pci' index='0' model='pci-root'/>
+ <controller type='sata' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
+ </controller>
+ <interface type='bridge'>
+ <mac address='00:5b:06:25:0c:dc'/>
+ <source bridge='br-admin'/>
+ <virtualport type='openvswitch'>
+ <parameters interfaceid='04b63cb9-21a9-4385-bbd6-df677a5eeecf'/>
+ </virtualport>
+ <model type='virtio'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
+ </interface>
+ <serial type='pty'>
+ <target port='0'/>
+ </serial>
+ <console type='pty'>
+ <target type='serial' port='0'/>
+ </console>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'>
+ <listen type='address' address='127.0.0.1'/>
+ </graphics>
+ <video>
+ <model type='cirrus' vram='16384' heads='1' primary='yes'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
+ </video>
+ <memballoon model='virtio'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
+ </memballoon>
+ </devices>
+ <seclabel type='dynamic' model='selinux' relabel='yes'/>
+ <seclabel type='dynamic' model='dac' relabel='yes'/>
+</domain>
diff --git a/apex/tests/config/common-patches.yaml b/apex/tests/config/common-patches.yaml
new file mode 100644
index 00000000..fef8fcd0
--- /dev/null
+++ b/apex/tests/config/common-patches.yaml
@@ -0,0 +1,6 @@
+---
+patches:
+ queens:
+ undercloud:
+ - change-id: I2e0a40d7902f592e4b7bd727f57048111e0bea36
+ project: openstack/tripleo-common
diff --git a/apex/tests/config/dummy-deploy-settings.yaml b/apex/tests/config/dummy-deploy-settings.yaml
new file mode 100644
index 00000000..54890f38
--- /dev/null
+++ b/apex/tests/config/dummy-deploy-settings.yaml
@@ -0,0 +1,19 @@
+---
+global_params:
+ ha_enabled: false
+ patches:
+ undercloud:
+ - change-id: I2e0a40d7902f592e4b7bd727f57048111e0bea36
+ project: openstack/tripleo-common
+ overcloud:
+ - change-id: Ie988ba6a2d444a614e97c0edf5fce24b23970310
+ project: openstack/puppet-tripleo
+deploy_options:
+ containers: true
+ os_version: queens
+ sdn_controller: opendaylight
+ odl_version: oxygen
+ tacker: false
+ congress: false
+ sfc: false
+ vpn: false
diff --git a/apex/tests/config/inventory-virt-1-compute-node.yaml b/apex/tests/config/inventory-virt-1-compute-node.yaml
new file mode 100644
index 00000000..4c2dc5d4
--- /dev/null
+++ b/apex/tests/config/inventory-virt-1-compute-node.yaml
@@ -0,0 +1,14 @@
+---
+nodes:
+ node0:
+ arch: x86_64
+ capabilities: profile:compute
+ cpu: 4
+ disk: 41
+ ipmi_ip: 192.168.122.1
+ ipmi_pass: password
+ ipmi_user: admin
+ mac_address: 00:a8:58:29:f9:99
+ memory: 10240
+ pm_port: 6230
+ pm_type: pxe_ipmitool
diff --git a/apex/tests/config/node.yaml b/apex/tests/config/node.yaml
new file mode 100644
index 00000000..e05644c9
--- /dev/null
+++ b/apex/tests/config/node.yaml
@@ -0,0 +1,12 @@
+---
+servers:
+ overcloud-controller-0.opnfvlf.org:
+ address: 192.0.2.28
+ orig-ctl-mac: 00:5b:06:25:0c:dc
+ ovs-controller: tcp:192.0.2.28:6653
+ ovs-managers:
+ - ptcp:6639:127.0.0.1
+ - tcp:192.0.2.28:6640
+ type: controller
+ user: heat-admin
+ vNode-name: baremetal0
diff --git a/apex/tests/config/snapshot.properties b/apex/tests/config/snapshot.properties
new file mode 100644
index 00000000..64c149e2
--- /dev/null
+++ b/apex/tests/config/snapshot.properties
@@ -0,0 +1,2 @@
+OPNFV_SNAP_URL=artifacts.opnfv.org/apex/master/noha/apex-csit-snap-2018-08-05.tar.gz
+OPNFV_SNAP_SHA512SUM=bb0c6fa0e675dcb39cfad11d81bb99f309d5cfc236e36a74d05ee813584f3e5bb92aa23dec775846317b75d574f8c86186c666f78a299c24fb68849897bdd4bc
diff --git a/apex/tests/test_apex_build_utils.py b/apex/tests/test_apex_build_utils.py
index d9d542d6..36caaf1f 100644
--- a/apex/tests/test_apex_build_utils.py
+++ b/apex/tests/test_apex_build_utils.py
@@ -9,17 +9,20 @@
import argparse
import git
+import os
+import unittest
from mock import patch
from apex import build_utils
+from apex.tests import constants as con
from nose.tools import (
assert_is_instance,
assert_raises)
-class TestBuildUtils(object):
+class TestBuildUtils(unittest.TestCase):
@classmethod
def setup_class(cls):
"""This method is run once for each class before any tests are run"""
@@ -165,3 +168,25 @@ class TestBuildUtils(object):
def test_main_debug(self, mock_get_parser):
with patch.object(build_utils.sys, 'argv', self.sys_argv_debug):
build_utils.main()
+
+ def test_strip_patch_sections(self):
+ with open(os.path.join(con.TEST_DUMMY_CONFIG, '98faaca.diff')) as fh:
+ dummy_patch = fh.read()
+ tmp_patch = build_utils.strip_patch_sections(dummy_patch)
+ self.assertNotRegex(tmp_patch, 'releasenotes')
+ self.assertNotRegex(tmp_patch, 'Minor update ODL steps')
+ self.assertNotRegex(tmp_patch, 'Steps of upgrade are as follows')
+ self.assertNotRegex(tmp_patch, 'Steps invlolved in level 2 update')
+
+ def test_is_path_in_patch(self):
+ with open(os.path.join(con.TEST_DUMMY_CONFIG, '98faaca.diff')) as fh:
+ dummy_patch = fh.read()
+ self.assertTrue(build_utils.is_path_in_patch(dummy_patch,
+ 'releasenotes/'))
+
+ def test_strip_no_patch_sections(self):
+ with open(os.path.join(con.TEST_DUMMY_CONFIG, '98faaca.diff')) as fh:
+ dummy_patch = fh.read()
+ tmp_patch = build_utils.strip_patch_sections(dummy_patch,
+ sections=[])
+ self.assertEqual(dummy_patch, tmp_patch)
diff --git a/apex/tests/test_apex_common_builder.py b/apex/tests/test_apex_common_builder.py
index c32f72c9..3ff95bb5 100644
--- a/apex/tests/test_apex_common_builder.py
+++ b/apex/tests/test_apex_common_builder.py
@@ -10,11 +10,22 @@
import unittest
from apex.builders import common_builder as c_builder
+from apex.builders import exceptions
from apex.common import constants as con
from mock import patch
from mock import mock_open
from mock import MagicMock
+DOCKER_YAML = {
+ 'resource_registry': {
+ 'OS::TripleO::Services::NovaApi': '../docker/services/nova-api.yaml',
+ 'OS::TripleO::Services::NovaConductor':
+ '../docker/services/nova-conductor.yaml'
+ }
+}
+
+a_mock_open = mock_open(read_data=None)
+
class TestCommonBuilder(unittest.TestCase):
@classmethod
@@ -39,13 +50,55 @@ class TestCommonBuilder(unittest.TestCase):
path = '/etc/puppet/modules/tripleo'
self.assertEquals(c_builder.project_to_path(project), path)
project = 'openstack/nova'
- path = '/usr/lib/python2.7/site-packages/nova'
+ path = '/usr/lib/python2.7/site-packages/'
self.assertEquals(c_builder.project_to_path(project), path)
+ def test_is_patch_promoted(self):
+ dummy_change = {'submitted': '2017-06-05 20:23:09.000000000',
+ 'status': 'MERGED'}
+ self.assertTrue(c_builder.is_patch_promoted(dummy_change,
+ 'master',
+ con.DOCKERHUB_OOO))
+
+ def test_is_patch_promoted_docker(self):
+ dummy_change = {'submitted': '2017-06-05 20:23:09.000000000',
+ 'status': 'MERGED'}
+ dummy_image = 'centos-binary-opendaylight'
+ self.assertTrue(c_builder.is_patch_promoted(dummy_change,
+ 'master',
+ con.DOCKERHUB_OOO,
+ docker_image=dummy_image))
+
+ def test_patch_not_promoted(self):
+ dummy_change = {'submitted': '2900-06-05 20:23:09.000000000',
+ 'status': 'MERGED'}
+ self.assertFalse(c_builder.is_patch_promoted(dummy_change,
+ 'master',
+ con.DOCKERHUB_OOO))
+
+ def test_patch_not_promoted_docker(self):
+ dummy_change = {'submitted': '2900-06-05 20:23:09.000000000',
+ 'status': 'MERGED'}
+ dummy_image = 'centos-binary-opendaylight'
+ self.assertFalse(c_builder.is_patch_promoted(dummy_change,
+ 'master',
+ con.DOCKERHUB_OOO,
+ docker_image=dummy_image))
+
+ def test_patch_not_promoted_and_not_merged(self):
+ dummy_change = {'submitted': '2900-06-05 20:23:09.000000000',
+ 'status': 'BLAH'}
+ self.assertFalse(c_builder.is_patch_promoted(dummy_change,
+ 'master',
+ con.DOCKERHUB_OOO))
+
@patch('builtins.open', mock_open())
+ @patch('apex.builders.common_builder.is_patch_promoted')
+ @patch('apex.build_utils.get_change')
@patch('apex.build_utils.get_patch')
@patch('apex.virtual.utils.virt_customize')
- def test_add_upstream_patches(self, mock_customize, mock_get_patch):
+ def test_add_upstream_patches(self, mock_customize, mock_get_patch,
+ mock_get_change, mock_is_patch_promoted):
mock_get_patch.return_value = None
change_id = 'I301370fbf47a71291614dd60e4c64adc7b5ebb42'
patches = [{
@@ -64,10 +117,116 @@ class TestCommonBuilder(unittest.TestCase):
{con.VIRT_RUN_CMD: "cd {} && patch -p1 < {}".format(
project_path, patch_file)}]
mock_get_patch.return_value = 'some random diff'
+ mock_is_patch_promoted.return_value = False
c_builder.add_upstream_patches(patches, 'dummy.qcow2', '/dummytmp/')
mock_customize.assert_called_once_with(test_virt_ops, 'dummy.qcow2')
@patch('builtins.open', mock_open())
+ @patch('apex.builders.common_builder.is_patch_promoted')
+ @patch('apex.build_utils.get_change')
+ @patch('apex.build_utils.get_patch')
+ @patch('apex.virtual.utils.virt_customize')
+ def test_add_upstream_patches_docker_puppet(
+ self, mock_customize, mock_get_patch, mock_get_change,
+ mock_is_patch_promoted):
+ change_id = 'I301370fbf47a71291614dd60e4c64adc7b5ebb42'
+ patches = [{
+ 'change-id': change_id,
+ 'project': 'openstack/puppet-tripleo'
+ }]
+ project_path = '/etc/puppet/modules/tripleo'
+ patch_file = "{}.patch".format(change_id)
+ patch_file_path = "/dummytmp/{}".format(patch_file)
+ test_virt_ops = [
+ {con.VIRT_INSTALL: 'patch'},
+ {con.VIRT_UPLOAD: "{}:{}".format(patch_file_path,
+ project_path)},
+ {con.VIRT_RUN_CMD: "cd {} && patch -p1 < {}".format(
+ project_path, patch_file)}]
+ mock_get_patch.return_value = 'some random diff'
+ mock_is_patch_promoted.return_value = False
+ c_builder.add_upstream_patches(patches, 'dummy.qcow2', '/dummytmp/',
+ uc_ip='192.0.2.1',
+ docker_tag='latest')
+ mock_customize.assert_called_once_with(test_virt_ops, 'dummy.qcow2')
+
+ @patch('builtins.open', mock_open())
+ @patch('apex.builders.common_builder.is_patch_promoted')
+ @patch('apex.build_utils.get_change')
+ @patch('apex.builders.common_builder.project_to_docker_image')
+ @patch('apex.builders.overcloud_builder.build_dockerfile')
+ @patch('apex.build_utils.get_patch')
+ @patch('apex.virtual.utils.virt_customize')
+ def test_add_upstream_patches_docker_python(
+ self, mock_customize, mock_get_patch, mock_build_docker_file,
+ mock_project2docker, ock_get_change, mock_is_patch_promoted):
+ mock_project2docker.return_value = ['NovaApi']
+ change_id = 'I301370fbf47a71291614dd60e4c64adc7b5ebb42'
+ patches = [{
+ 'change-id': change_id,
+ 'project': 'openstack/nova'
+ }]
+ mock_get_patch.return_value = 'some random diff'
+ mock_is_patch_promoted.return_value = False
+ services = c_builder.add_upstream_patches(patches, 'dummy.qcow2',
+ '/dummytmp/',
+ uc_ip='192.0.2.1',
+ docker_tag='latest')
+ assert mock_customize.not_called
+ assert mock_build_docker_file.called
+ self.assertSetEqual(services, {'NovaApi'})
+
+ @patch('builtins.open', mock_open())
+ @patch('apex.builders.common_builder.is_patch_promoted')
+ @patch('apex.build_utils.get_change')
+ @patch('apex.builders.common_builder.project_to_docker_image')
+ @patch('apex.builders.overcloud_builder.build_dockerfile')
+ @patch('apex.build_utils.get_patch')
+ @patch('apex.virtual.utils.virt_customize')
+ def test_not_add_upstream_patches_docker_python(
+ self, mock_customize, mock_get_patch, mock_build_docker_file,
+ mock_project2docker, ock_get_change, mock_is_patch_promoted):
+ # Test that the calls are not made when the patch is already merged and
+ # promoted
+ mock_project2docker.return_value = ['NovaApi']
+ change_id = 'I301370fbf47a71291614dd60e4c64adc7b5ebb42'
+ patches = [{
+ 'change-id': change_id,
+ 'project': 'openstack/nova'
+ }]
+ mock_get_patch.return_value = 'some random diff'
+ mock_is_patch_promoted.return_value = True
+ services = c_builder.add_upstream_patches(patches, 'dummy.qcow2',
+ '/dummytmp/',
+ uc_ip='192.0.2.1',
+ docker_tag='latest')
+ assert mock_customize.not_called
+ assert mock_build_docker_file.not_called
+ assert len(services) == 0
+
+ @patch('builtins.open', mock_open())
+ @patch('apex.builders.common_builder.is_patch_promoted')
+ @patch('apex.build_utils.get_change')
+ @patch('apex.build_utils.get_patch')
+ @patch('apex.virtual.utils.virt_customize')
+ def test_not_upstream_patches_docker_puppet(
+ self, mock_customize, mock_get_patch, mock_get_change,
+ mock_is_patch_promoted):
+ # Test that the calls are not made when the patch is already merged and
+ # promoted
+ change_id = 'I301370fbf47a71291614dd60e4c64adc7b5ebb42'
+ patches = [{
+ 'change-id': change_id,
+ 'project': 'openstack/puppet-tripleo'
+ }]
+ mock_get_patch.return_value = 'some random diff'
+ mock_is_patch_promoted.return_value = True
+ c_builder.add_upstream_patches(patches, 'dummy.qcow2', '/dummytmp/',
+ uc_ip='192.0.2.1',
+ docker_tag='latest')
+ assert mock_customize.not_called
+
+ @patch('builtins.open', mock_open())
@patch('apex.virtual.utils.virt_customize')
def test_add_repo(self, mock_customize):
c_builder.add_repo('fake/url', 'dummyrepo', 'dummy.qcow2',
@@ -85,3 +244,67 @@ class TestCommonBuilder(unittest.TestCase):
self.assertEqual(c_builder.create_git_archive('fake/url', 'dummyrepo',
'/dummytmp/'),
'/dummytmp/dummyrepo.tar')
+
+ def test_project_to_docker_image(self):
+ found_services = c_builder.project_to_docker_image('nova',
+ con.DOCKERHUB_OOO)
+ assert 'nova-api' in found_services
+
+ @patch('apex.common.utils.open_webpage')
+ def test_project_to_docker_image_bad_web_content(
+ self, mock_open_web):
+ mock_open_web.return_value = b'{"blah": "blah"}'
+ self.assertRaises(exceptions.ApexCommonBuilderException,
+ c_builder.project_to_docker_image,
+ 'nova',
+ con.DOCKERHUB_OOO)
+
+ def test_get_neutron_driver(self):
+ ds_opts = {'dataplane': 'fdio',
+ 'sdn_controller': 'opendaylight',
+ 'odl_version': 'master',
+ 'vpn': False,
+ 'sriov': False}
+ self.assertEquals(c_builder.get_neutron_driver(ds_opts),
+ 'odl')
+ ds_opts['sdn_controller'] = None
+ ds_opts['vpp'] = True
+ self.assertEquals(c_builder.get_neutron_driver(ds_opts),
+ 'vpp')
+ ds_opts['sdn_controller'] = 'ovn'
+ self.assertEquals(c_builder.get_neutron_driver(ds_opts),
+ 'ovn')
+
+ @patch('apex.builders.common_builder.yaml')
+ @patch('apex.overcloud.deploy.os.path.isfile')
+ @patch('builtins.open', a_mock_open, create=True)
+ def test_prepare_container_images(self, mock_is_file, mock_yaml):
+ mock_yaml.safe_load.return_value = {
+ 'parameter_defaults': {
+ 'ContainerImagePrepare': [
+ {'set':
+ {'namespace': 'blah',
+ 'neutron_driver': 'null',
+ }
+ }
+ ]
+ }
+ }
+ expected_output = {
+ 'parameter_defaults': {
+ 'ContainerImagePrepare': [
+ {'set':
+ {'namespace': 'docker.io/tripleoqueens',
+ 'neutron_driver': 'odl',
+ }
+ }
+ ]
+ }
+ }
+
+ c_builder.prepare_container_images('dummy.yaml', 'queens',
+ 'odl')
+ mock_yaml.safe_dump.assert_called_with(
+ expected_output,
+ a_mock_open.return_value,
+ default_flow_style=False)
diff --git a/apex/tests/test_apex_common_utils.py b/apex/tests/test_apex_common_utils.py
index 6f2a9476..1ecb7df6 100644
--- a/apex/tests/test_apex_common_utils.py
+++ b/apex/tests/test_apex_common_utils.py
@@ -12,12 +12,14 @@ import os
import shutil
import urllib.error
+from apex.common import exceptions
from apex.common import utils
from apex.settings.network_settings import NetworkSettings
from apex.tests.constants import (
TEST_CONFIG_DIR,
TEST_PLAYBOOK_DIR)
+from mock import patch, mock_open
from nose.tools import (
assert_equal,
assert_is_instance,
@@ -25,6 +27,7 @@ from nose.tools import (
assert_raises)
NET_SETS = os.path.join(TEST_CONFIG_DIR, 'network', 'network_settings.yaml')
+a_mock_open = mock_open(read_data=None)
class TestCommonUtils:
@@ -61,8 +64,11 @@ class TestCommonUtils:
def test_run_ansible(self):
playbook = 'apex/tests/playbooks/test_playbook.yaml'
+ extra_vars = [{'testvar1': 'value1', 'testvar2': 'value2'}]
assert_equal(utils.run_ansible(None, os.path.join(playbook),
dry_run=True), None)
+ assert_equal(utils.run_ansible(extra_vars, os.path.join(playbook),
+ dry_run=True, host='1.1.1.1'), None)
def test_failed_run_ansible(self):
playbook = 'apex/tests/playbooks/test_failed_playbook.yaml'
@@ -78,7 +84,7 @@ class TestCommonUtils:
def test_fetch_upstream_previous_file(self):
test_file = 'overcloud-full.tar.md5'
- url = 'https://images.rdoproject.org/master/delorean/' \
+ url = 'https://images.rdoproject.org/master/rdo_trunk/' \
'current-tripleo/stable/'
os.makedirs('/tmp/fetch_test', exist_ok=True)
open("/tmp/fetch_test/{}".format(test_file), 'w').close()
@@ -100,3 +106,57 @@ class TestCommonUtils:
url, ['dummy_test.tar'])
assert os.path.isfile('/tmp/fetch_test/test.txt')
shutil.rmtree('/tmp/fetch_test')
+
+ def test_nofetch_upstream_and_unpack(self):
+ test_file = 'overcloud-full.tar.md5'
+ url = 'https://images.rdoproject.org/master/delorean/' \
+ 'current-tripleo/stable/'
+ os.makedirs('/tmp/fetch_test', exist_ok=True)
+ target = "/tmp/fetch_test/{}".format(test_file)
+ open(target, 'w').close()
+ target_mtime = os.path.getmtime(target)
+ utils.fetch_upstream_and_unpack('/tmp/fetch_test',
+ url, [test_file], fetch=False)
+ post_target_mtime = os.path.getmtime(target)
+ shutil.rmtree('/tmp/fetch_test')
+ assert_equal(target_mtime, post_target_mtime)
+
+ def test_nofetch_upstream_and_unpack_no_target(self):
+ test_file = 'overcloud-full.tar.md5'
+ url = 'https://images.rdoproject.org/master/delorean/' \
+ 'current-tripleo/stable/'
+ utils.fetch_upstream_and_unpack('/tmp/fetch_test',
+ url, [test_file])
+ assert os.path.isfile("/tmp/fetch_test/{}".format(test_file))
+ shutil.rmtree('/tmp/fetch_test')
+
+ def test_open_webpage(self):
+ output = utils.open_webpage('http://opnfv.org')
+ assert output is not None
+
+ def test_open_invalid_webpage(self):
+ assert_raises(exceptions.FetchException, utils.open_webpage,
+ 'http://inv4lIdweb-page.com')
+
+ @patch('builtins.open', a_mock_open)
+ @patch('yaml.safe_dump')
+ @patch('yaml.safe_load')
+ def test_edit_tht_env(self, mock_yaml_load, mock_yaml_dump):
+ settings = {'SomeParameter': 'some_value'}
+ mock_yaml_load.return_value = {
+ 'parameter_defaults': {'SomeParameter': 'dummy'}
+ }
+ utils.edit_tht_env('/dummy-environment.yaml', 'parameter_defaults',
+ settings)
+ new_data = {'parameter_defaults': settings}
+ mock_yaml_dump.assert_called_once_with(new_data, a_mock_open(),
+ default_flow_style=False)
+
+ def test_unique(self):
+ dummy_list = [1, 2, 1, 3, 4, 5, 5]
+ assert_equal(utils.unique(dummy_list), [1, 2, 3, 4, 5])
+
+ def test_find_container_client(self):
+ for version in 'rocky', 'queens':
+ assert_equal(utils.find_container_client(version), 'docker')
+ assert_equal(utils.find_container_client('master'), 'podman')
diff --git a/apex/tests/test_apex_deploy.py b/apex/tests/test_apex_deploy.py
index 403b7099..004c21c1 100644
--- a/apex/tests/test_apex_deploy.py
+++ b/apex/tests/test_apex_deploy.py
@@ -8,6 +8,7 @@
##############################################################################
import argparse
+import os
import unittest
from mock import patch
@@ -17,12 +18,12 @@ from mock import mock_open
from apex.common.exceptions import ApexDeployException
from apex.common.constants import DEFAULT_OS_VERSION
-from apex.deploy import deploy_quickstart
from apex.deploy import validate_cross_settings
from apex.deploy import build_vms
from apex.deploy import create_deploy_parser
from apex.deploy import validate_deploy_args
from apex.deploy import main
+from apex.tests.constants import TEST_DUMMY_CONFIG
from nose.tools import (
assert_is_instance,
@@ -48,9 +49,6 @@ class TestDeploy(unittest.TestCase):
def teardown(self):
"""This method is run once after _each_ test method is executed"""
- def test_deloy_quickstart(self):
- deploy_quickstart(None, None, None)
-
def test_validate_cross_settings(self):
deploy_settings = {'deploy_options': {'dataplane': 'ovs'}}
net_settings = Mock()
@@ -85,12 +83,23 @@ class TestDeploy(unittest.TestCase):
args = Mock()
args.inventory_file = None
args.virtual = True
+ args.snapshot = False
+ validate_deploy_args(args)
+
+ def test_validate_snapshot_deploy_args(self):
+ args = Mock()
+ args.deploy_settings_file = os.path.join(TEST_DUMMY_CONFIG,
+ 'dummy-deploy-settings.yaml')
+ args.inventory_file = None
+ args.virtual = True
+ args.snapshot = True
validate_deploy_args(args)
def test_validate_deploy_args_no_virt_no_inv(self):
args = Mock()
args.inventory_file = 'file_name'
args.virtual = False
+ args.snapshot = False
assert_raises(ApexDeployException, validate_deploy_args, args)
@patch('apex.deploy.os.path')
@@ -99,14 +108,19 @@ class TestDeploy(unittest.TestCase):
args = Mock()
args.inventory_file = None
args.virtual = True
+ args.snapshot = False
assert_raises(ApexDeployException, validate_deploy_args, args)
def test_validate_deploy_args_virt_and_inv_file(self):
args = Mock()
args.inventory_file = 'file_name'
args.virtual = True
+ args.snapshot = False
assert_raises(ApexDeployException, validate_deploy_args, args)
+ @patch('apex.deploy.c_builder')
+ @patch('apex.deploy.ApexDeployment')
+ @patch('apex.deploy.uc_builder')
@patch('apex.deploy.network_data.create_network_data')
@patch('apex.deploy.shutil')
@patch('apex.deploy.oc_deploy')
@@ -132,7 +146,8 @@ class TestDeploy(unittest.TestCase):
mock_deploy_sets, mock_net_sets, mock_net_env,
mock_utils, mock_parsers, mock_oc_cfg,
mock_virt_utils, mock_inv, mock_build_vms, mock_uc_lib,
- mock_oc_deploy, mock_shutil, mock_network_data):
+ mock_oc_deploy, mock_shutil, mock_network_data,
+ mock_uc_builder, mock_deployment, mock_c_builder):
net_sets_dict = {'networks': MagicMock(),
'dns_servers': 'test'}
ds_opts_dict = {'global_params': MagicMock(),
@@ -142,13 +157,16 @@ class TestDeploy(unittest.TestCase):
'dataplane': 'ovs',
'sfc': False,
'vpn': False,
+ 'vim': 'openstack',
'yardstick': 'test',
- 'os_version': DEFAULT_OS_VERSION}}
+ 'os_version': DEFAULT_OS_VERSION,
+ 'containers': False}}
args = mock_parser.return_value.parse_args.return_value
args.virtual = False
args.quickstart = False
args.debug = False
- args.upstream = False
+ args.snapshot = False
+ args.upstream = True
net_sets = mock_net_sets.return_value
net_sets.enabled_network_list = ['external']
net_sets.__getitem__.side_effect = net_sets_dict.__getitem__
@@ -159,6 +177,7 @@ class TestDeploy(unittest.TestCase):
mock_parsers.parse_nova_output.return_value = {'testnode1': 'test'}
main()
+ @patch('apex.deploy.SnapshotDeployment')
@patch('apex.deploy.validate_cross_settings')
@patch('apex.deploy.virt_utils')
@patch('apex.deploy.utils')
@@ -169,15 +188,19 @@ class TestDeploy(unittest.TestCase):
@patch('apex.deploy.os')
@patch('apex.deploy.create_deploy_parser')
@patch('builtins.open', a_mock_open, create=True)
- def test_main_qs(self, mock_parser, mock_os, mock_deploy,
- mock_net_sets, mock_net_env, mock_inv, mock_utils,
- mock_virt_utils, mock_cross):
+ def test_main_snapshot(self, mock_parser, mock_os, mock_deploy,
+ mock_net_sets, mock_net_env, mock_inv, mock_utils,
+ mock_virt_utils, mock_cross, mock_snap_deployment):
args = mock_parser.return_value.parse_args.return_value
args.virtual = False
- args.quickstart = True
+ args.snapshot = True
args.debug = True
main()
+ mock_snap_deployment.assert_called()
+ @patch('apex.deploy.c_builder')
+ @patch('apex.deploy.ApexDeployment')
+ @patch('apex.deploy.uc_builder')
@patch('apex.deploy.network_data.create_network_data')
@patch('apex.deploy.shutil')
@patch('apex.deploy.oc_deploy')
@@ -203,7 +226,8 @@ class TestDeploy(unittest.TestCase):
mock_deploy_sets, mock_net_sets, mock_net_env,
mock_utils, mock_parsers, mock_oc_cfg,
mock_virt_utils, mock_inv, mock_build_vms, mock_uc_lib,
- mock_oc_deploy, mock_shutil, mock_network_data):
+ mock_oc_deploy, mock_shutil, mock_network_data,
+ mock_uc_builder, mock_deployment, mock_c_builder):
# didn't work yet line 412
# net_sets_dict = {'networks': {'admin': {'cidr': MagicMock()}},
# 'dns_servers': 'test'}
@@ -215,8 +239,10 @@ class TestDeploy(unittest.TestCase):
'dataplane': 'ovs',
'sfc': False,
'vpn': False,
+ 'vim': 'openstack',
'yardstick': 'test',
- 'os_version': DEFAULT_OS_VERSION}}
+ 'os_version': DEFAULT_OS_VERSION,
+ 'containers': False}}
args = mock_parser.return_value.parse_args.return_value
args.virtual = True
args.quickstart = False
@@ -226,7 +252,72 @@ class TestDeploy(unittest.TestCase):
args.virt_compute_nodes = 1
args.virt_compute_ram = None
args.virt_default_ram = 12
- args.upstream = False
+ args.upstream = True
+ args.snapshot = False
+ net_sets = mock_net_sets.return_value
+ net_sets.enabled_network_list = ['admin']
+ deploy_sets = mock_deploy_sets.return_value
+ deploy_sets.__getitem__.side_effect = ds_opts_dict.__getitem__
+ deploy_sets.__contains__.side_effect = ds_opts_dict.__contains__
+ main()
+ args.virt_compute_ram = 16
+ args.virt_default_ram = 10
+ main()
+
+ @patch('apex.deploy.ApexDeployment')
+ @patch('apex.deploy.c_builder')
+ @patch('apex.deploy.uc_builder')
+ @patch('apex.deploy.oc_builder')
+ @patch('apex.deploy.network_data.create_network_data')
+ @patch('apex.deploy.shutil')
+ @patch('apex.deploy.oc_deploy')
+ @patch('apex.deploy.uc_lib')
+ @patch('apex.deploy.build_vms')
+ @patch('apex.deploy.Inventory')
+ @patch('apex.deploy.virt_utils')
+ @patch('apex.deploy.oc_cfg')
+ @patch('apex.deploy.parsers')
+ @patch('apex.deploy.utils')
+ @patch('apex.deploy.NetworkEnvironment')
+ @patch('apex.deploy.NetworkSettings')
+ @patch('apex.deploy.DeploySettings')
+ @patch('apex.deploy.os')
+ @patch('apex.deploy.json')
+ @patch('apex.deploy.jumphost')
+ @patch('apex.deploy.validate_cross_settings')
+ @patch('apex.deploy.validate_deploy_args')
+ @patch('apex.deploy.create_deploy_parser')
+ @patch('builtins.open', a_mock_open, create=True)
+ def test_main_virt_containers_upstream(
+ self, mock_parser, mock_val_args, mock_cross_sets, mock_jumphost,
+ mock_json, mock_os, mock_deploy_sets, mock_net_sets, mock_net_env,
+ mock_utils, mock_parsers, mock_oc_cfg, mock_virt_utils,
+ mock_inv, mock_build_vms, mock_uc_lib, mock_oc_deploy,
+ mock_shutil, mock_network_data, mock_oc_builder,
+ mock_uc_builder, mock_c_builder, mock_deployment):
+
+ ds_opts_dict = {'global_params': MagicMock(),
+ 'deploy_options': {'gluon': False,
+ 'congress': False,
+ 'sdn_controller': 'opendaylight',
+ 'dataplane': 'ovs',
+ 'sfc': False,
+ 'vpn': False,
+ 'vim': 'openstack',
+ 'yardstick': 'test',
+ 'os_version': DEFAULT_OS_VERSION,
+ 'containers': True}}
+ args = mock_parser.return_value.parse_args.return_value
+ args.virtual = True
+ args.quickstart = False
+ args.debug = True
+ args.virt_default_ram = 10
+ args.ha_enabled = True
+ args.virt_compute_nodes = 1
+ args.virt_compute_ram = None
+ args.virt_default_ram = 12
+ args.upstream = True
+ args.snapshot = False
net_sets = mock_net_sets.return_value
net_sets.enabled_network_list = ['admin']
deploy_sets = mock_deploy_sets.return_value
@@ -236,3 +327,67 @@ class TestDeploy(unittest.TestCase):
args.virt_compute_ram = 16
args.virt_default_ram = 10
main()
+ mock_oc_deploy.prep_image.assert_called()
+ # TODO(trozet) add assertions here with arguments for functions in
+ # deploy main
+
+ @patch('apex.deploy.c_builder')
+ @patch('apex.deploy.ApexDeployment')
+ @patch('apex.deploy.uc_builder')
+ @patch('apex.deploy.network_data.create_network_data')
+ @patch('apex.deploy.shutil')
+ @patch('apex.deploy.git')
+ @patch('apex.deploy.oc_deploy')
+ @patch('apex.deploy.uc_lib')
+ @patch('apex.deploy.build_vms')
+ @patch('apex.deploy.Inventory')
+ @patch('apex.deploy.virt_utils')
+ @patch('apex.deploy.oc_cfg')
+ @patch('apex.deploy.parsers')
+ @patch('apex.deploy.utils')
+ @patch('apex.deploy.NetworkEnvironment')
+ @patch('apex.deploy.NetworkSettings')
+ @patch('apex.deploy.DeploySettings')
+ @patch('apex.deploy.os')
+ @patch('apex.deploy.json')
+ @patch('apex.deploy.jumphost')
+ @patch('apex.deploy.validate_cross_settings')
+ @patch('apex.deploy.validate_deploy_args')
+ @patch('apex.deploy.create_deploy_parser')
+ @patch('builtins.open', a_mock_open, create=True)
+ def test_main_k8s(self, mock_parser, mock_val_args, mock_cross_sets,
+ mock_jumphost, mock_json, mock_os,
+ mock_deploy_sets, mock_net_sets, mock_net_env,
+ mock_utils, mock_parsers, mock_oc_cfg,
+ mock_virt_utils, mock_inv, mock_build_vms, mock_uc_lib,
+ mock_oc_deploy, mock_git, mock_shutil,
+ mock_network_data, mock_uc_builder, mock_deployment,
+ mock_c_builder):
+ net_sets_dict = {'networks': MagicMock(),
+ 'dns_servers': 'test'}
+ ds_opts_dict = {'global_params': MagicMock(),
+ 'deploy_options': {'gluon': False,
+ 'congress': True,
+ 'sdn_controller': False,
+ 'dataplane': 'ovs',
+ 'sfc': False,
+ 'vpn': False,
+ 'vim': 'k8s',
+ 'yardstick': 'test',
+ 'os_version': DEFAULT_OS_VERSION,
+ 'containers': False}}
+ args = mock_parser.return_value.parse_args.return_value
+ args.virtual = False
+ args.quickstart = False
+ args.debug = False
+ args.upstream = False
+ args.snapshot = False
+ net_sets = mock_net_sets.return_value
+ net_sets.enabled_network_list = ['external']
+ net_sets.__getitem__.side_effect = net_sets_dict.__getitem__
+ net_sets.__contains__.side_effect = net_sets_dict.__contains__
+ deploy_sets = mock_deploy_sets.return_value
+ deploy_sets.__getitem__.side_effect = ds_opts_dict.__getitem__
+ deploy_sets.__contains__.side_effect = ds_opts_dict.__contains__
+ mock_parsers.parse_nova_output.return_value = {'testnode1': 'test'}
+ main()
diff --git a/apex/tests/test_apex_deployment_snapshot.py b/apex/tests/test_apex_deployment_snapshot.py
new file mode 100644
index 00000000..d7542585
--- /dev/null
+++ b/apex/tests/test_apex_deployment_snapshot.py
@@ -0,0 +1,374 @@
+##############################################################################
+# Copyright (c) 2018 Tim Rozet (trozet@redhat.com) (Red Hat)
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+from mock import patch
+import os
+import unittest
+import urllib.request
+
+from apex.common import exceptions as exc
+from apex.deployment.snapshot import SnapshotDeployment
+from apex.settings.deploy_settings import DeploySettings
+from apex.tests.constants import TEST_DUMMY_CONFIG
+
+DUMMY_SNAP_DIR = '/tmp/dummy_cache'
+
+
+class TestSnapshotDeployment(unittest.TestCase):
+ @classmethod
+ def setup_class(cls):
+ """This method is run once for each class before any tests are run"""
+
+ @classmethod
+ def teardown_class(cls):
+ """This method is run once for each class _after_ all tests are run"""
+
+ def setup(self):
+ """This method is run once before _each_ test method is executed"""
+
+ def teardown(self):
+ """This method is run once after _each_ test method is executed"""
+
+ @patch('apex.deployment.snapshot.SnapshotDeployment.pull_snapshot')
+ @patch('apex.deployment.snapshot.libvirt.open')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.deploy_snapshot')
+ def test_init(self, mock_deploy_snap, mock_libvirt_open, mock_pull_snap):
+
+ ds_file = os.path.join(TEST_DUMMY_CONFIG, 'dummy-deploy-settings.yaml')
+ ds = DeploySettings(ds_file)
+ d = SnapshotDeployment(deploy_settings=ds,
+ snap_cache_dir=DUMMY_SNAP_DIR,
+ fetch=True, all_in_one=False)
+ snap_dir = os.path.join(DUMMY_SNAP_DIR, 'queens', 'noha')
+ self.assertEqual(d.snap_cache_dir, snap_dir)
+ mock_pull_snap.assert_called()
+ mock_deploy_snap.assert_called()
+ self.assertEqual(d.ha_ext, 'noha')
+
+ @patch('apex.deployment.snapshot.SnapshotDeployment.pull_snapshot')
+ @patch('apex.deployment.snapshot.libvirt.open')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.deploy_snapshot')
+ def test_init_allinone_no_fetch(self, mock_deploy_snap, mock_libvirt_open,
+ mock_pull_snap):
+
+ ds_file = os.path.join(TEST_DUMMY_CONFIG, 'dummy-deploy-settings.yaml')
+ ds = DeploySettings(ds_file)
+ d = SnapshotDeployment(deploy_settings=ds,
+ snap_cache_dir=DUMMY_SNAP_DIR,
+ fetch=False, all_in_one=True)
+ snap_dir = os.path.join(DUMMY_SNAP_DIR, 'queens', 'noha-allinone')
+ self.assertEqual(d.snap_cache_dir, snap_dir)
+ mock_pull_snap.assert_not_called()
+ mock_deploy_snap.assert_called()
+ self.assertEqual(d.ha_ext, 'noha-allinone')
+
+ @patch('apex.deployment.snapshot.utils.fetch_upstream_and_unpack')
+ @patch('apex.deployment.snapshot.utils.fetch_properties')
+ def test_pull_snapshot_is_latest(self, mock_fetch_props,
+ mock_fetch_artifact):
+ mock_fetch_props.return_value = {
+ 'OPNFV_SNAP_URL': 'artifacts.opnfv.org/apex/master/noha/'
+ 'apex-csit-snap-2018-08-05.tar.gz',
+ 'OPNFV_SNAP_SHA512SUM': 'bb0c6fa0e675dcb39cfad11d81bb99f309d5cfc23'
+ '6e36a74d05ee813584f3e5bb92aa23dec77584631'
+ '7b75d574f8c86186c666f78a299c24fb68849897b'
+ 'dd4bc'
+ }
+ SnapshotDeployment.pull_snapshot('http://dummy_url',
+ TEST_DUMMY_CONFIG)
+ mock_fetch_artifact.assert_not_called()
+
+ @patch('apex.deployment.snapshot.utils.fetch_upstream_and_unpack')
+ @patch('apex.deployment.snapshot.utils.fetch_properties')
+ def test_pull_snapshot_fetch_props_failure(self, mock_fetch_props,
+ mock_fetch_artifact):
+ mock_fetch_props.side_effect = exc.FetchException
+ self.assertRaises(exc.FetchException,
+ SnapshotDeployment.pull_snapshot,
+ 'http://dummy_url', TEST_DUMMY_CONFIG)
+
+ @patch('apex.deployment.snapshot.utils.fetch_upstream_and_unpack')
+ @patch('apex.deployment.snapshot.utils.fetch_properties')
+ def test_pull_snapshot_is_not_latest(self, mock_fetch_props,
+ mock_fetch_artifact):
+ mock_fetch_props.side_effect = [{
+ 'OPNFV_SNAP_URL': 'artifacts.opnfv.org/apex/master/noha/'
+ 'apex-csit-snap-2018-08-05.tar.gz',
+ 'OPNFV_SNAP_SHA512SUM': '123c6fa0e675dcb39cfad11d81bb99f309d5cfc23'
+ '6e36a74d05ee813584f3e5bb92aa23dec77584631'
+ '7b75d574f8c86186c666f78a299c24fb68849897b'
+ 'dd4bc'},
+ {
+ 'OPNFV_SNAP_URL': 'artifacts.opnfv.org/apex/master/noha/'
+ 'apex-csit-snap-2018-08-05.tar.gz',
+ 'OPNFV_SNAP_SHA512SUM': 'bb0c6fa0e675dcb39cfad11d81bb99f309d5cfc23'
+ '6e36a74d05ee813584f3e5bb92aa23dec77584631'
+ '7b75d574f8c86186c666f78a299c24fb68849897b'
+ 'dd4bc'}]
+ SnapshotDeployment.pull_snapshot('http://dummy_url',
+ TEST_DUMMY_CONFIG)
+ mock_fetch_artifact.assert_called()
+
+ @patch('apex.deployment.snapshot.OvercloudNode')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.pull_snapshot')
+ @patch('apex.deployment.snapshot.libvirt.open')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.deploy_snapshot')
+ def test_create_networks(self, mock_deploy_snap, mock_libvirt_open,
+ mock_pull_snap, mock_oc_node):
+ ds_file = os.path.join(TEST_DUMMY_CONFIG, 'dummy-deploy-settings.yaml')
+ ds = DeploySettings(ds_file)
+ d = SnapshotDeployment(deploy_settings=ds,
+ snap_cache_dir=DUMMY_SNAP_DIR,
+ fetch=False, all_in_one=False)
+ d.snap_cache_dir = TEST_DUMMY_CONFIG
+ conn = mock_libvirt_open('qemu:///system')
+ d.create_networks()
+ conn.networkCreateXML.assert_called()
+
+ @patch('apex.deployment.snapshot.OvercloudNode')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.pull_snapshot')
+ @patch('apex.deployment.snapshot.libvirt.open')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.deploy_snapshot')
+ def test_create_networks_invalid_cache(self, mock_deploy_snap,
+ mock_libvirt_open, mock_pull_snap,
+ mock_oc_node):
+ ds_file = os.path.join(TEST_DUMMY_CONFIG, 'dummy-deploy-settings.yaml')
+ ds = DeploySettings(ds_file)
+ d = SnapshotDeployment(deploy_settings=ds,
+ snap_cache_dir=DUMMY_SNAP_DIR,
+ fetch=False, all_in_one=False)
+ d.snap_cache_dir = '/doesnotexist/'
+ self.assertRaises(exc.SnapshotDeployException, d.create_networks)
+
+ @patch('apex.deployment.snapshot.fnmatch')
+ @patch('apex.deployment.snapshot.OvercloudNode')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.pull_snapshot')
+ @patch('apex.deployment.snapshot.libvirt.open')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.deploy_snapshot')
+ def test_create_networks_no_net_xmls(self, mock_deploy_snap,
+ mock_libvirt_open, mock_pull_snap,
+ mock_oc_node, mock_fnmatch):
+ ds_file = os.path.join(TEST_DUMMY_CONFIG, 'dummy-deploy-settings.yaml')
+ ds = DeploySettings(ds_file)
+ d = SnapshotDeployment(deploy_settings=ds,
+ snap_cache_dir=DUMMY_SNAP_DIR,
+ fetch=False, all_in_one=False)
+ d.snap_cache_dir = '/doesnotexist/'
+ mock_fnmatch.filter.return_value = []
+ self.assertRaises(exc.SnapshotDeployException, d.create_networks)
+
+ @patch('apex.deployment.snapshot.OvercloudNode')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.pull_snapshot')
+ @patch('apex.deployment.snapshot.libvirt.open')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.deploy_snapshot')
+ def test_parse_and_create_nodes(self, mock_deploy_snap, mock_libvirt_open,
+ mock_pull_snap, mock_oc_node):
+ ds_file = os.path.join(TEST_DUMMY_CONFIG, 'dummy-deploy-settings.yaml')
+ ds = DeploySettings(ds_file)
+ d = SnapshotDeployment(deploy_settings=ds,
+ snap_cache_dir=DUMMY_SNAP_DIR,
+ fetch=False, all_in_one=False)
+ d.snap_cache_dir = TEST_DUMMY_CONFIG
+ node = mock_oc_node()
+ d.parse_and_create_nodes()
+ node.start.assert_called()
+ self.assertListEqual([node], d.oc_nodes)
+
+ @patch('apex.deployment.snapshot.utils.parse_yaml')
+ @patch('apex.deployment.snapshot.OvercloudNode')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.pull_snapshot')
+ @patch('apex.deployment.snapshot.libvirt.open')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.deploy_snapshot')
+ def test_parse_and_create_nodes_invalid_node_yaml(
+ self, mock_deploy_snap, mock_libvirt_open, mock_pull_snap,
+ mock_oc_node, mock_parse_yaml):
+ ds_file = os.path.join(TEST_DUMMY_CONFIG, 'dummy-deploy-settings.yaml')
+ ds = DeploySettings(ds_file)
+ d = SnapshotDeployment(deploy_settings=ds,
+ snap_cache_dir=DUMMY_SNAP_DIR,
+ fetch=False, all_in_one=False)
+ d.snap_cache_dir = TEST_DUMMY_CONFIG
+ node = mock_oc_node()
+ mock_parse_yaml.return_value = {'blah': 'dummy'}
+ self.assertRaises(exc.SnapshotDeployException,
+ d.parse_and_create_nodes)
+ node.start.assert_not_called()
+
+ @patch('apex.deployment.snapshot.OvercloudNode')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.pull_snapshot')
+ @patch('apex.deployment.snapshot.libvirt.open')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.deploy_snapshot')
+ def test_get_controllers(self, mock_deploy_snap, mock_libvirt_open,
+ mock_pull_snap, mock_oc_node):
+ ds_file = os.path.join(TEST_DUMMY_CONFIG, 'dummy-deploy-settings.yaml')
+ ds = DeploySettings(ds_file)
+ d = SnapshotDeployment(deploy_settings=ds,
+ snap_cache_dir=DUMMY_SNAP_DIR,
+ fetch=False, all_in_one=False)
+ d.snap_cache_dir = TEST_DUMMY_CONFIG
+ node = mock_oc_node()
+ node.role = 'controller'
+ d.oc_nodes = [node]
+ self.assertListEqual(d.get_controllers(), [node])
+
+ @patch('apex.deployment.snapshot.OvercloudNode')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.pull_snapshot')
+ @patch('apex.deployment.snapshot.libvirt.open')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.deploy_snapshot')
+ def test_get_controllers_none(self, mock_deploy_snap, mock_libvirt_open,
+ mock_pull_snap, mock_oc_node):
+ ds_file = os.path.join(TEST_DUMMY_CONFIG, 'dummy-deploy-settings.yaml')
+ ds = DeploySettings(ds_file)
+ d = SnapshotDeployment(deploy_settings=ds,
+ snap_cache_dir=DUMMY_SNAP_DIR,
+ fetch=False, all_in_one=False)
+ d.snap_cache_dir = TEST_DUMMY_CONFIG
+ node = mock_oc_node()
+ node.role = 'compute'
+ d.oc_nodes = [node]
+ self.assertListEqual(d.get_controllers(), [])
+
+ @patch('apex.deployment.snapshot.SnapshotDeployment.get_controllers')
+ @patch('apex.deployment.snapshot.time')
+ @patch('apex.deployment.snapshot.socket')
+ @patch('apex.deployment.snapshot.OvercloudNode')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.pull_snapshot')
+ @patch('apex.deployment.snapshot.libvirt.open')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.deploy_snapshot')
+ def test_is_openstack_up(self, mock_deploy_snap, mock_libvirt_open,
+ mock_pull_snap, mock_oc_node, mock_socket,
+ mock_time, mock_get_ctrls):
+ ds_file = os.path.join(TEST_DUMMY_CONFIG, 'dummy-deploy-settings.yaml')
+ ds = DeploySettings(ds_file)
+ d = SnapshotDeployment(deploy_settings=ds,
+ snap_cache_dir=DUMMY_SNAP_DIR,
+ fetch=False, all_in_one=False)
+ d.snap_cache_dir = TEST_DUMMY_CONFIG
+ node = mock_oc_node()
+ node.ip = '123.123.123.123'
+ node.name = 'dummy-controller-0'
+ mock_get_ctrls.return_value = [node]
+ sock = mock_socket.socket(mock_socket.AF_INET, mock_socket.SOCK_STREAM)
+ sock.connect_ex.return_value = 0
+ self.assertTrue(d.is_service_up('openstack'))
+
+ @patch('apex.deployment.snapshot.SnapshotDeployment.get_controllers')
+ @patch('apex.deployment.snapshot.time')
+ @patch('apex.deployment.snapshot.socket')
+ @patch('apex.deployment.snapshot.OvercloudNode')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.pull_snapshot')
+ @patch('apex.deployment.snapshot.libvirt.open')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.deploy_snapshot')
+ def test_is_openstack_up_false(self, mock_deploy_snap, mock_libvirt_open,
+ mock_pull_snap, mock_oc_node, mock_socket,
+ mock_time, mock_get_ctrls):
+ ds_file = os.path.join(TEST_DUMMY_CONFIG, 'dummy-deploy-settings.yaml')
+ ds = DeploySettings(ds_file)
+ d = SnapshotDeployment(deploy_settings=ds,
+ snap_cache_dir=DUMMY_SNAP_DIR,
+ fetch=False, all_in_one=False)
+ d.snap_cache_dir = TEST_DUMMY_CONFIG
+ node = mock_oc_node()
+ node.ip = '123.123.123.123'
+ node.name = 'dummy-controller-0'
+ mock_get_ctrls.return_value = [node]
+ sock = mock_socket.socket(mock_socket.AF_INET, mock_socket.SOCK_STREAM)
+ sock.connect_ex.return_value = 1
+ self.assertFalse(d.is_service_up('openstack'))
+
+ @patch('apex.deployment.snapshot.SnapshotDeployment.get_controllers')
+ @patch('apex.deployment.snapshot.time')
+ @patch('apex.deployment.snapshot.utils')
+ @patch('apex.deployment.snapshot.OvercloudNode')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.pull_snapshot')
+ @patch('apex.deployment.snapshot.libvirt.open')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.deploy_snapshot')
+ def test_is_opendaylight_up(self, mock_deploy_snap, mock_libvirt_open,
+ mock_pull_snap, mock_oc_node, mock_utils,
+ mock_time, mock_get_ctrls):
+ ds_file = os.path.join(TEST_DUMMY_CONFIG, 'dummy-deploy-settings.yaml')
+ ds = DeploySettings(ds_file)
+ d = SnapshotDeployment(deploy_settings=ds,
+ snap_cache_dir=DUMMY_SNAP_DIR,
+ fetch=False, all_in_one=False)
+ d.snap_cache_dir = TEST_DUMMY_CONFIG
+ node = mock_oc_node()
+ node.ip = '123.123.123.123'
+ node.name = 'dummy-controller-0'
+ mock_get_ctrls.return_value = [node]
+ mock_utils.open_webpage.return_value = 0
+ self.assertTrue(d.is_service_up('opendaylight'))
+
+ @patch('apex.deployment.snapshot.SnapshotDeployment.get_controllers')
+ @patch('apex.deployment.snapshot.time')
+ @patch('apex.deployment.snapshot.utils')
+ @patch('apex.deployment.snapshot.OvercloudNode')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.pull_snapshot')
+ @patch('apex.deployment.snapshot.libvirt.open')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.deploy_snapshot')
+ def test_is_opendaylight_up_false(self, mock_deploy_snap,
+ mock_libvirt_open, mock_pull_snap,
+ mock_oc_node, mock_utils,
+ mock_time, mock_get_ctrls):
+ ds_file = os.path.join(TEST_DUMMY_CONFIG, 'dummy-deploy-settings.yaml')
+ ds = DeploySettings(ds_file)
+ d = SnapshotDeployment(deploy_settings=ds,
+ snap_cache_dir=DUMMY_SNAP_DIR,
+ fetch=False, all_in_one=False)
+ d.snap_cache_dir = TEST_DUMMY_CONFIG
+ node = mock_oc_node()
+ node.ip = '123.123.123.123'
+ node.name = 'dummy-controller-0'
+ mock_get_ctrls.return_value = [node]
+ mock_utils.open_webpage.side_effect = urllib.request.URLError(
+ reason='blah')
+ self.assertFalse(d.is_service_up('opendaylight'))
+
+ @patch('apex.deployment.snapshot.os.path.isfile')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.is_service_up')
+ @patch('apex.deployment.snapshot.SnapshotDeployment'
+ '.parse_and_create_nodes')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.pull_snapshot')
+ @patch('apex.deployment.snapshot.libvirt.open')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.create_networks')
+ def test_deploy_snapshot(self, mock_create_networks, mock_libvirt_open,
+ mock_pull_snap, mock_parse_create,
+ mock_service_up, mock_is_file):
+ mock_is_file.return_value = True
+ ds_file = os.path.join(TEST_DUMMY_CONFIG, 'dummy-deploy-settings.yaml')
+ ds = DeploySettings(ds_file)
+ SnapshotDeployment(deploy_settings=ds, snap_cache_dir=DUMMY_SNAP_DIR,
+ fetch=False, all_in_one=False)
+ mock_parse_create.assert_called()
+ mock_create_networks.assert_called()
+ mock_service_up.assert_called()
+
+ @patch('apex.deployment.snapshot.os.path.isfile')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.is_service_up')
+ @patch('apex.deployment.snapshot.SnapshotDeployment'
+ '.parse_and_create_nodes')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.pull_snapshot')
+ @patch('apex.deployment.snapshot.libvirt.open')
+ @patch('apex.deployment.snapshot.SnapshotDeployment.create_networks')
+ def test_deploy_snapshot_services_down(self, mock_create_networks,
+ mock_libvirt_open,
+ mock_pull_snap, mock_parse_create,
+ mock_service_up, mock_is_file):
+ mock_is_file.return_value = True
+ ds_file = os.path.join(TEST_DUMMY_CONFIG, 'dummy-deploy-settings.yaml')
+ ds = DeploySettings(ds_file)
+ mock_service_up.return_value = False
+ self.assertRaises(exc.SnapshotDeployException,
+ SnapshotDeployment,
+ ds, DUMMY_SNAP_DIR, False, False)
+
+ mock_service_up.side_effect = [True, False]
+ self.assertRaises(exc.SnapshotDeployException,
+ SnapshotDeployment,
+ ds, DUMMY_SNAP_DIR, False, False)
diff --git a/apex/tests/test_apex_deployment_tripleo.py b/apex/tests/test_apex_deployment_tripleo.py
new file mode 100644
index 00000000..912fe104
--- /dev/null
+++ b/apex/tests/test_apex_deployment_tripleo.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2018 Tim Rozet (trozet@redhat.com) (Red Hat)
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+import os
+import unittest
+
+from apex.deployment.tripleo import ApexDeployment
+from apex.settings.deploy_settings import DeploySettings
+from apex.tests.constants import TEST_DUMMY_CONFIG
+
+
+class TestApexDeployment(unittest.TestCase):
+ @classmethod
+ def setup_class(cls):
+ """This method is run once for each class before any tests are run"""
+
+ @classmethod
+ def teardown_class(cls):
+ """This method is run once for each class _after_ all tests are run"""
+
+ def setup(self):
+ """This method is run once before _each_ test method is executed"""
+
+ def teardown(self):
+ """This method is run once after _each_ test method is executed"""
+
+ def test_determine_patches(self):
+ self.maxDiff = None
+ ds_file = os.path.join(TEST_DUMMY_CONFIG, 'dummy-deploy-settings.yaml')
+ ds = DeploySettings(ds_file)
+ patches_file = os.path.join(TEST_DUMMY_CONFIG, 'common-patches.yaml')
+ d = ApexDeployment(deploy_settings=ds, patch_file=patches_file,
+ ds_file=ds_file)
+ patches = d.determine_patches()
+ test_patches = {
+ 'undercloud':
+ [{'change-id': 'I2e0a40d7902f592e4b7bd727f57048111e0bea36',
+ 'project': 'openstack/tripleo-common'}],
+ 'overcloud':
+ [{'change-id': 'Ie988ba6a2d444a614e97c0edf5fce24b23970310',
+ 'project': 'openstack/puppet-tripleo'}]
+ }
+ self.assertDictEqual(patches, test_patches)
diff --git a/apex/tests/test_apex_inventory.py b/apex/tests/test_apex_inventory.py
index 71979465..38a4271a 100644
--- a/apex/tests/test_apex_inventory.py
+++ b/apex/tests/test_apex_inventory.py
@@ -56,10 +56,15 @@ class TestInventory:
os.path.join(TEST_DUMMY_CONFIG, 'inventory-virt.yaml'),
virtual=True, ha=True)
+ def test_inventory_valid_allinone_count(self):
+ i = Inventory(os.path.join(TEST_DUMMY_CONFIG,
+ 'inventory-virt-1-node.yaml'), ha=False)
+ assert_equal(list(i.get_node_counts()), [1, 0])
+
def test_inventory_invalid_noha_count(self):
assert_raises(ApexInventoryException, Inventory,
os.path.join(TEST_DUMMY_CONFIG,
- 'inventory-virt-1-node.yaml'),
+ 'inventory-virt-1-compute-node.yaml'),
virtual=True, ha=False)
def test_inventory_virtual(self):
diff --git a/apex/tests/test_apex_network_environment.py b/apex/tests/test_apex_network_environment.py
index 79a72a55..7aa6ef15 100644
--- a/apex/tests/test_apex_network_environment.py
+++ b/apex/tests/test_apex_network_environment.py
@@ -165,3 +165,10 @@ class TestNetworkEnvironment:
e = NetworkEnvException("test")
print(e)
assert_is_instance(e, NetworkEnvException)
+
+ def test_service_netmap(self):
+ ns = copy(self.ns)
+ ns.enabled_network_list = ['admin']
+ ne = NetworkEnvironment(ns, os.path.join(TEST_BUILD_DIR, NET_ENV_FILE))
+ for network in ne['parameter_defaults']['ServiceNetMap'].values():
+ assert_equal(network, 'ctlplane')
diff --git a/apex/tests/test_apex_network_settings.py b/apex/tests/test_apex_network_settings.py
index 5e2fa072..764c9ef4 100644
--- a/apex/tests/test_apex_network_settings.py
+++ b/apex/tests/test_apex_network_settings.py
@@ -112,6 +112,9 @@ class TestNetworkSettings:
# remove vlan from storage net
storage_net_nicmap['compute'].pop('vlan', None)
assert_is_instance(NetworkSettings(ns), NetworkSettings)
+ for role in ('compute', 'controller'):
+ assert_equal(ns['networks'][ADMIN_NETWORK]['nic_mapping'][
+ role]['vlan'], 'native')
# TODO
# need to manipulate interfaces some how
diff --git a/apex/tests/test_apex_overcloud_builder.py b/apex/tests/test_apex_overcloud_builder.py
index e9a6e6cf..8bed3d70 100644
--- a/apex/tests/test_apex_overcloud_builder.py
+++ b/apex/tests/test_apex_overcloud_builder.py
@@ -11,7 +11,9 @@ import unittest
from apex.builders import overcloud_builder as oc_builder
from apex.common import constants as con
-from mock import patch
+from mock import patch, mock_open
+
+a_mock_open = mock_open(read_data=None)
class TestOvercloudBuilder(unittest.TestCase):
@@ -37,14 +39,71 @@ class TestOvercloudBuilder(unittest.TestCase):
mock_git_archive.return_value = '/dummytmp/puppet-opendaylight.tar'
archive = '/dummytmp/puppet-opendaylight.tar'
test_virt_ops = [
- {con.VIRT_INSTALL: 'opendaylight'},
{con.VIRT_UPLOAD: "{}:/etc/puppet/modules/".format(archive)},
{con.VIRT_RUN_CMD: 'rm -rf /etc/puppet/modules/opendaylight'},
{con.VIRT_RUN_CMD: "cd /etc/puppet/modules/ && tar xvf "
- "puppet-opendaylight.tar"}
+ "puppet-opendaylight.tar"},
+ {con.VIRT_INSTALL: "java-1.8.0-openjdk"},
+ {con.VIRT_INSTALL: 'opendaylight'}
]
oc_builder.inject_opendaylight(con.DEFAULT_ODL_VERSION, 'dummy.qcow2',
- '/dummytmp/')
+ '/dummytmp/', uc_ip='192.0.2.2',
+ os_version=con.DEFAULT_OS_VERSION)
+ assert mock_git_archive.called
+ assert mock_add_repo.called
+ mock_customize.assert_called_once_with(test_virt_ops, 'dummy.qcow2')
+
+ @patch('apex.builders.overcloud_builder.build_dockerfile')
+ @patch('apex.builders.common_builder.create_git_archive')
+ @patch('apex.builders.common_builder.add_repo')
+ @patch('apex.virtual.utils.virt_customize')
+ def test_inject_opendaylight_docker(self, mock_customize, mock_add_repo,
+ mock_git_archive, mock_build_docker):
+ mock_git_archive.return_value = '/dummytmp/puppet-opendaylight.tar'
+ archive = '/dummytmp/puppet-opendaylight.tar'
+ test_virt_ops = [
+ {con.VIRT_UPLOAD: "{}:/etc/puppet/modules/".format(archive)},
+ {con.VIRT_RUN_CMD: 'rm -rf /etc/puppet/modules/opendaylight'},
+ {con.VIRT_RUN_CMD: "cd /etc/puppet/modules/ && tar xvf "
+ "puppet-opendaylight.tar"},
+ {con.VIRT_INSTALL: "java-1.8.0-openjdk"},
+ ]
+ oc_builder.inject_opendaylight('oxygen', 'dummy.qcow2',
+ '/dummytmp/', uc_ip='192.0.2.2',
+ os_version=con.DEFAULT_OS_VERSION,
+ docker_tag='latest')
+ odl_url = "https://nexus.opendaylight.org/content/repositories" \
+ "/opendaylight-oxygen-epel-7-x86_64-devel/"
+ docker_cmds = [
+ "RUN yum remove opendaylight -y",
+ "RUN echo $'[opendaylight]\\n\\",
+ "baseurl={}\\n\\".format(odl_url),
+ "gpgcheck=0\\n\\",
+ "enabled=1' > /etc/yum.repos.d/opendaylight.repo",
+ "RUN yum -y install opendaylight"
+ ]
+ src_img_uri = "192.0.2.1:8787/nova-api/centos-binary-master:latest"
assert mock_git_archive.called
assert mock_add_repo.called
+ assert mock_build_docker.called_once_with(
+ 'opendaylight', '/dummytmp', docker_cmds, src_img_uri
+ )
mock_customize.assert_called_once_with(test_virt_ops, 'dummy.qcow2')
+
+ @patch('builtins.open', a_mock_open)
+ @patch('os.makedirs')
+ @patch('os.path.isfile')
+ @patch('os.path.isdir')
+ def test_build_dockerfile(self, mock_isdir, mock_isfile, mock_makedirs):
+ src_img_uri = "192.0.2.1:8787/nova-api/centos-binary-master:latest"
+ oc_builder.build_dockerfile('nova-api', '/tmpdummy/', ['RUN dummy'],
+ src_img_uri)
+ a_mock_open.assert_called_with(
+ '/tmpdummy/containers/nova-api/Dockerfile', 'a+')
+ a_mock_open().write.assert_called_once_with('RUN dummy')
+
+ @patch('tarfile.open')
+ @patch('os.path.isdir')
+ def test_archive_docker_patches(self, mock_isdir, mock_tarfile):
+ oc_builder.archive_docker_patches('/tmpdummy/')
+ assert mock_tarfile.assert_called
diff --git a/apex/tests/test_apex_overcloud_deploy.py b/apex/tests/test_apex_overcloud_deploy.py
index 59e9048f..79dbf54b 100644
--- a/apex/tests/test_apex_overcloud_deploy.py
+++ b/apex/tests/test_apex_overcloud_deploy.py
@@ -7,6 +7,8 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+import mock
+import os
import sys
import unittest
@@ -24,8 +26,11 @@ from apex.overcloud.deploy import make_ssh_key
from apex.overcloud.deploy import prep_env
from apex.overcloud.deploy import generate_ceph_key
from apex.overcloud.deploy import prep_storage_env
+from apex.overcloud.deploy import prep_sriov_env
from apex.overcloud.deploy import external_network_cmds
from apex.overcloud.deploy import create_congress_cmds
+from apex.overcloud.deploy import SDN_FILE_MAP
+from apex.overcloud.deploy import get_docker_sdn_files
from nose.tools import (
assert_regexp_matches,
@@ -70,19 +75,41 @@ class TestOvercloudDeploy(unittest.TestCase):
res = '/usr/share/openstack-tripleo-heat-templates/environments/test'
assert_equal(build_sdn_env_list(ds, sdn_map), [res])
+ def test_build_sdn_env_list_with_string(self):
+ ds = {'sdn_controller': 'opendaylight',
+ 'sriov': 'xxx'}
+ prefix = '/usr/share/openstack-tripleo-heat-templates/environments'
+ res = [os.path.join(prefix, 'neutron-opendaylight.yaml'),
+ os.path.join(prefix, 'neutron-opendaylight-sriov.yaml')]
+ assert_equal(build_sdn_env_list(ds, SDN_FILE_MAP), res)
+
+ def test_build_sdn_env_list_with_default(self):
+ ds = {'sdn_controller': 'opendaylight',
+ 'vpn': True}
+ prefix = '/usr/share/openstack-tripleo-heat-templates/environments'
+ res = [os.path.join(prefix, 'neutron-opendaylight.yaml'),
+ os.path.join(prefix, 'neutron-bgpvpn-opendaylight.yaml')]
+ assert_equal(build_sdn_env_list(ds, SDN_FILE_MAP), res)
+
+ @patch('apex.overcloud.deploy.prep_sriov_env')
@patch('apex.overcloud.deploy.prep_storage_env')
@patch('apex.overcloud.deploy.build_sdn_env_list')
@patch('builtins.open', mock_open())
- def test_create_deploy_cmd(self, mock_sdn_list, mock_prep_storage):
+ def test_create_deploy_cmd(self, mock_sdn_list, mock_prep_storage,
+ mock_prep_sriov):
mock_sdn_list.return_value = []
- ds = {'deploy_options': MagicMock(),
+ ds = {'deploy_options':
+ {'ha_enabled': True,
+ 'congress': True,
+ 'tacker': True,
+ 'containers': False,
+ 'barometer': True,
+ 'ceph': False,
+ 'sriov': False,
+ 'vim': 'openstack'
+ },
'global_params': MagicMock()}
- ds['global_params'].__getitem__.side_effect = \
- lambda i: True if i == 'ha_enabled' else MagicMock()
- ds['deploy_options'].__getitem__.side_effect = \
- lambda i: True if i == 'congress' else MagicMock()
- ds['deploy_options'].__contains__.side_effect = \
- lambda i: True if i == 'congress' else MagicMock()
+
ns = {'ntp': ['ntp']}
inv = MagicMock()
inv.get_node_counts.return_value = (3, 2)
@@ -96,16 +123,63 @@ class TestOvercloudDeploy(unittest.TestCase):
assert_in('--control-scale 3', result_cmd)
assert_in('--compute-scale 2', result_cmd)
+ @patch('apex.overcloud.deploy.prep_sriov_env')
+ @patch('apex.overcloud.deploy.prep_storage_env')
+ @patch('builtins.open', mock_open())
+ def test_create_deploy_cmd_containers_sdn(self, mock_prep_storage,
+ mock_prep_sriov):
+ ds = {'deploy_options':
+ {'ha_enabled': True,
+ 'congress': False,
+ 'tacker': False,
+ 'containers': True,
+ 'barometer': False,
+ 'vpn': False,
+ 'ceph': True,
+ 'sdn_controller': 'opendaylight',
+ 'sriov': False,
+ 'os_version': 'queens',
+ 'vim': 'openstack'
+ },
+ 'global_params': MagicMock()}
+
+ ns = {'ntp': ['ntp']}
+ inv = MagicMock()
+ inv.get_node_counts.return_value = (3, 2)
+ virt = True
+ result_cmd = create_deploy_cmd(ds, ns, inv, '/tmp', virt)
+ assert_in('--ntp-server ntp', result_cmd)
+ assert_not_in('enable_tacker.yaml', result_cmd)
+ assert_not_in('enable_congress.yaml', result_cmd)
+ assert_not_in('enable_barometer.yaml', result_cmd)
+ assert_in('virtual-environment.yaml', result_cmd)
+ assert_in('--control-scale 3', result_cmd)
+ assert_in('--compute-scale 2', result_cmd)
+ assert_in('docker-images.yaml', result_cmd)
+ assert_in('/usr/share/openstack-tripleo-heat-templates/environments'
+ '/docker.yaml', result_cmd)
+ assert_in('/usr/share/openstack-tripleo-heat-templates/environments/'
+ 'storage-environment.yaml', result_cmd)
+ assert_in('/usr/share/openstack-tripleo-heat-templates/environments'
+ '/services/neutron-opendaylight.yaml', result_cmd)
+ ds['deploy_options']['os_version'] = 'master'
+ result_cmd = create_deploy_cmd(ds, ns, inv, '/tmp', virt)
+ assert_in('/usr/share/openstack-tripleo-heat-templates/environments'
+ '/services/neutron-opendaylight.yaml', result_cmd)
+
+ @patch('apex.overcloud.deploy.prep_sriov_env')
@patch('apex.overcloud.deploy.prep_storage_env')
@patch('apex.overcloud.deploy.build_sdn_env_list')
@patch('builtins.open', mock_open())
def test_create_deploy_cmd_no_ha_bm(self, mock_sdn_list,
- mock_prep_storage):
+ mock_prep_storage, mock_prep_sriov):
mock_sdn_list.return_value = []
ds = {'deploy_options': MagicMock(),
'global_params': MagicMock()}
ds['global_params'].__getitem__.side_effect = \
lambda i: False if i == 'ha_enabled' else MagicMock()
+ ds['deploy_options'].__getitem__.side_effect = \
+ lambda i: 'master' if i == 'os_version' else MagicMock()
ns = {'ntp': ['ntp']}
inv = MagicMock()
inv.get_node_counts.return_value = (3, 2)
@@ -119,57 +193,61 @@ class TestOvercloudDeploy(unittest.TestCase):
assert_not_in('enable_congress.yaml', result_cmd)
assert_not_in('enable_barometer.yaml', result_cmd)
- @patch('apex.overcloud.deploy.prep_storage_env')
- @patch('apex.overcloud.deploy.build_sdn_env_list')
- def test_create_deploy_cmd_raises(self, mock_sdn_list, mock_prep_storage):
- mock_sdn_list.return_value = []
- ds = {'deploy_options': MagicMock(),
- 'global_params': MagicMock()}
- ns = {}
- inv = MagicMock()
- inv.get_node_counts.return_value = (0, 0)
- virt = False
- assert_raises(ApexDeployException, create_deploy_cmd,
- ds, ns, inv, '/tmp', virt)
-
+ @patch('apex.builders.overcloud_builder.inject_opendaylight')
@patch('apex.overcloud.deploy.virt_utils')
@patch('apex.overcloud.deploy.shutil')
- @patch('apex.overcloud.deploy.os.path')
+ @patch('apex.overcloud.deploy.os.path.isfile')
@patch('builtins.open', mock_open())
- def test_prep_image(self, mock_os_path, mock_shutil, mock_virt_utils):
+ def test_prep_image(self, mock_is_file, mock_shutil, mock_virt_utils,
+ mock_inject_odl):
+ mock_is_file.return_value = True
ds_opts = {'dataplane': 'fdio',
'sdn_controller': 'opendaylight',
- 'odl_version': 'master'}
+ 'odl_version': 'master',
+ 'vpn': False,
+ 'sriov': False}
ds = {'deploy_options': MagicMock(),
'global_params': MagicMock()}
ds['deploy_options'].__getitem__.side_effect = \
lambda i: ds_opts.get(i, MagicMock())
- prep_image(ds, 'undercloud.qcow2', '/tmp', root_pw='test')
+ ns = MagicMock()
+ prep_image(ds, ns, 'undercloud.qcow2', '/tmp', root_pw='test')
mock_virt_utils.virt_customize.assert_called()
+ mock_inject_odl.assert_called()
@patch('apex.overcloud.deploy.virt_utils')
@patch('apex.overcloud.deploy.shutil')
- @patch('apex.overcloud.deploy.os.path')
+ @patch('apex.overcloud.deploy.os.path.isfile')
@patch('builtins.open', mock_open())
- def test_prep_image_sdn_false(self, mock_os_path, mock_shutil,
+ def test_prep_image_sdn_false(self, mock_is_file, mock_shutil,
mock_virt_utils):
+ mock_is_file.return_value = True
ds_opts = {'dataplane': 'fdio',
+ 'vpn': False,
'sdn_controller': False}
ds = {'deploy_options': MagicMock(),
'global_params': MagicMock()}
ds['deploy_options'].__getitem__.side_effect = \
lambda i: ds_opts.get(i, MagicMock())
- prep_image(ds, 'undercloud.qcow2', '/tmp', root_pw='test')
+ ns = MagicMock()
+ prep_image(ds, ns, 'undercloud.qcow2', '/tmp', root_pw='test')
mock_virt_utils.virt_customize.assert_called()
+ @patch('apex.builders.overcloud_builder.inject_ovs_nsh')
+ @patch('apex.overcloud.deploy.utils.fetch_upstream_and_unpack')
+ @patch('apex.builders.overcloud_builder.inject_opendaylight')
@patch('apex.overcloud.deploy.virt_utils')
@patch('apex.overcloud.deploy.shutil')
- @patch('apex.overcloud.deploy.os.path')
+ @patch('apex.overcloud.deploy.os.path.isfile')
@patch('builtins.open', mock_open())
- def test_prep_image_sdn_odl(self, mock_os_path, mock_shutil,
- mock_virt_utils):
+ def test_prep_image_sdn_odl(self, mock_is_file, mock_shutil,
+ mock_virt_utils, mock_inject_odl,
+ mock_fetch, mock_ovs_nsh):
+ mock_is_file.return_value = True
ds_opts = {'dataplane': 'ovs',
'sdn_controller': 'opendaylight',
+ 'vpn': False,
+ 'sfc': False,
'odl_version': con.DEFAULT_ODL_VERSION,
'odl_vpp_netvirt': True}
ds = {'deploy_options': MagicMock(),
@@ -178,15 +256,80 @@ class TestOvercloudDeploy(unittest.TestCase):
lambda i: ds_opts.get(i, MagicMock())
ds['deploy_options'].__contains__.side_effect = \
lambda i: True if i in ds_opts else MagicMock()
- prep_image(ds, 'undercloud.qcow2', '/tmp', root_pw='test')
+ ns = MagicMock()
+ prep_image(ds, ns, 'undercloud.qcow2', '/tmp', root_pw='test')
mock_virt_utils.virt_customize.assert_called()
+ mock_inject_odl.assert_called()
+ # mock_ovs_nsh.assert_called()
+ @patch('apex.overcloud.deploy.c_builder')
+ @patch('apex.overcloud.deploy.oc_builder')
@patch('apex.overcloud.deploy.virt_utils')
@patch('apex.overcloud.deploy.shutil')
- @patch('apex.overcloud.deploy.os.path')
+ @patch('apex.overcloud.deploy.os.path.isfile')
@patch('builtins.open', mock_open())
- def test_prep_image_sdn_odl_not_def(self, mock_os_path,
- mock_shutil, mock_virt_utils):
+ def test_prep_image_sdn_odl_upstream_containers_patches(
+ self, mock_is_file, mock_shutil, mock_virt_utils,
+ mock_oc_builder, mock_c_builder):
+ mock_is_file.return_value = True
+ ds_opts = {'dataplane': 'ovs',
+ 'sdn_controller': 'opendaylight',
+ 'odl_version': con.DEFAULT_ODL_VERSION,
+ 'odl_vpp_netvirt': True}
+ ds = {'deploy_options': MagicMock(),
+ 'global_params': MagicMock()}
+ ds['deploy_options'].__getitem__.side_effect = \
+ lambda i: ds_opts.get(i, MagicMock())
+ ds['deploy_options'].__contains__.side_effect = \
+ lambda i: True if i in ds_opts else MagicMock()
+ ns = MagicMock()
+ mock_c_builder.add_upstream_patches.return_value = ['nova-api']
+ patches = ['dummy_nova_patch']
+ rv = prep_image(ds, ns, 'undercloud.qcow2', '/tmp', root_pw='test',
+ docker_tag='latest', patches=patches)
+ mock_oc_builder.inject_opendaylight.assert_called()
+ mock_virt_utils.virt_customize.assert_called()
+ mock_c_builder.add_upstream_patches.assert_called()
+ self.assertListEqual(sorted(rv), ['nova-api', 'opendaylight'])
+
+ @patch('apex.overcloud.deploy.c_builder')
+ @patch('apex.overcloud.deploy.oc_builder')
+ @patch('apex.overcloud.deploy.virt_utils')
+ @patch('apex.overcloud.deploy.shutil')
+ @patch('apex.overcloud.deploy.os.path.isfile')
+ @patch('builtins.open', mock_open())
+ def test_prep_image_nosdn_upstream_containers_patches(
+ self, mock_is_file, mock_shutil, mock_virt_utils,
+ mock_oc_builder, mock_c_builder):
+ mock_is_file.return_value = True
+ ds_opts = {'dataplane': 'ovs',
+ 'sdn_controller': False,
+ 'odl_version': con.DEFAULT_ODL_VERSION,
+ 'odl_vpp_netvirt': False}
+ ds = {'deploy_options': MagicMock(),
+ 'global_params': MagicMock()}
+ ds['deploy_options'].__getitem__.side_effect = \
+ lambda i: ds_opts.get(i, MagicMock())
+ ds['deploy_options'].__contains__.side_effect = \
+ lambda i: True if i in ds_opts else MagicMock()
+ ns = MagicMock()
+ mock_c_builder.add_upstream_patches.return_value = ['nova-api']
+ patches = ['dummy_nova_patch']
+ rv = prep_image(ds, ns, 'undercloud.qcow2', '/tmp', root_pw='test',
+ docker_tag='latest', patches=patches)
+ mock_virt_utils.virt_customize.assert_called()
+ mock_c_builder.add_upstream_patches.assert_called()
+ self.assertListEqual(sorted(rv), ['nova-api'])
+
+ @patch('apex.overcloud.deploy.oc_builder')
+ @patch('apex.overcloud.deploy.virt_utils')
+ @patch('apex.overcloud.deploy.shutil')
+ @patch('apex.overcloud.deploy.os.path.isfile')
+ @patch('builtins.open', mock_open())
+ def test_prep_image_sdn_odl_not_def(self, mock_is_file,
+ mock_shutil, mock_virt_utils,
+ mock_oc_builder):
+ mock_is_file.return_value = True
ds_opts = {'dataplane': 'ovs',
'sdn_controller': 'opendaylight',
'odl_version': 'uncommon'}
@@ -194,71 +337,152 @@ class TestOvercloudDeploy(unittest.TestCase):
'global_params': MagicMock()}
ds['deploy_options'].__getitem__.side_effect = \
lambda i: ds_opts.get(i, MagicMock())
- prep_image(ds, 'undercloud.qcow2', '/tmp', root_pw='test')
+ ns = MagicMock()
+ prep_image(ds, ns, 'undercloud.qcow2', '/tmp', root_pw='test')
mock_virt_utils.virt_customize.assert_called()
+ mock_oc_builder.inject_opendaylight.assert_called()
+ @patch('apex.builders.overcloud_builder.inject_ovs_nsh')
@patch('apex.overcloud.deploy.virt_utils')
@patch('apex.overcloud.deploy.shutil')
- @patch('apex.overcloud.deploy.os.path')
+ @patch('apex.overcloud.deploy.os.path.isfile')
@patch('builtins.open', mock_open())
- def test_prep_image_sdn_ovn(self, mock_os_path, mock_shutil,
- mock_virt_utils):
+ def test_prep_image_sdn_ovn(self, mock_is_file, mock_shutil,
+ mock_virt_utils, mock_ovs_nsh):
+ mock_is_file.return_value = True
ds_opts = {'dataplane': 'ovs',
+ 'vpn': False,
+ 'sfc': False,
'sdn_controller': 'ovn'}
ds = {'deploy_options': MagicMock(),
'global_params': MagicMock()}
ds['deploy_options'].__getitem__.side_effect = \
lambda i: ds_opts.get(i, MagicMock())
- prep_image(ds, 'undercloud.qcow2', '/tmp', root_pw='test')
+ ns = MagicMock()
+ prep_image(ds, ns, 'undercloud.qcow2', '/tmp', root_pw='test')
mock_virt_utils.virt_customize.assert_called()
+ # mock_ovs_nsh.assert_called()
+
+ @patch('apex.builders.overcloud_builder.inject_ovs_nsh')
+ @patch('apex.overcloud.deploy.utils.fetch_upstream_and_unpack')
+ @patch('apex.builders.overcloud_builder.inject_quagga')
+ @patch('apex.builders.overcloud_builder.inject_opendaylight')
+ @patch('apex.overcloud.deploy.virt_utils')
+ @patch('apex.overcloud.deploy.shutil')
+ @patch('apex.overcloud.deploy.os.path.isfile')
+ @patch('builtins.open', mock_open())
+ def test_prep_image_sdn_odl_vpn(self, mock_is_file, mock_shutil,
+ mock_virt_utils, mock_inject_odl,
+ mock_inject_quagga, mock_fetch,
+ mock_ovs_nsh):
+ mock_is_file.return_value = True
+ ds_opts = {'dataplane': 'ovs',
+ 'sdn_controller': 'opendaylight',
+ 'vpn': True,
+ 'sfc': False,
+ 'odl_version': con.DEFAULT_ODL_VERSION,
+ 'odl_vpp_netvirt': True}
+ ds = {'deploy_options': MagicMock(),
+ 'global_params': MagicMock()}
+ ds['deploy_options'].__getitem__.side_effect = \
+ lambda i: ds_opts.get(i, MagicMock())
+ ds['deploy_options'].__contains__.side_effect = \
+ lambda i: True if i in ds_opts else MagicMock()
+ ns = MagicMock()
+ prep_image(ds, ns, 'undercloud.qcow2', '/tmp', root_pw='test')
+ mock_virt_utils.virt_customize.assert_called()
+ mock_inject_odl.assert_called()
+ mock_inject_quagga.assert_called()
+ # mock_ovs_nsh.assert_called()
+
+ @patch('apex.builders.overcloud_builder.inject_ovs_nsh')
+ @patch('apex.builders.overcloud_builder.inject_opendaylight')
+ @patch('apex.overcloud.deploy.virt_utils')
+ @patch('apex.overcloud.deploy.shutil')
+ @patch('apex.overcloud.deploy.os.path.isfile')
+ @patch('builtins.open', mock_open())
+ def test_prep_image_sdn_odl_sfc(self, mock_is_file, mock_shutil,
+ mock_virt_utils, mock_inject_odl,
+ mock_inject_ovs_nsh):
+ mock_is_file.return_value = True
+ ds_opts = {'dataplane': 'ovs',
+ 'sdn_controller': 'opendaylight',
+ 'vpn': False,
+ 'sfc': True,
+ 'odl_version': con.DEFAULT_ODL_VERSION,
+ 'odl_vpp_netvirt': True}
+ ds = {'deploy_options': MagicMock(),
+ 'global_params': MagicMock()}
+ ds['deploy_options'].__getitem__.side_effect = \
+ lambda i: ds_opts.get(i, MagicMock())
+ ds['deploy_options'].__contains__.side_effect = \
+ lambda i: True if i in ds_opts else MagicMock()
+ ns = MagicMock()
+ prep_image(ds, ns, 'undercloud.qcow2', '/tmp', root_pw='test')
+ mock_virt_utils.virt_customize.assert_called()
+ mock_inject_odl.assert_called()
+ # mock_inject_ovs_nsh.assert_called()
@patch('apex.overcloud.deploy.os.path.isfile')
def test_prep_image_no_image(self, mock_isfile):
mock_isfile.return_value = False
assert_raises(ApexDeployException, prep_image,
- {}, 'undercloud.qcow2', '/tmp')
+ {}, {}, 'undercloud.qcow2', '/tmp')
def test_make_ssh_key(self):
priv, pub = make_ssh_key()
assert_in('-----BEGIN PRIVATE KEY-----', priv)
assert_in('ssh-rsa', pub)
+ @patch('apex.overcloud.deploy.yaml')
@patch('apex.overcloud.deploy.fileinput')
@patch('apex.overcloud.deploy.shutil')
- def test_prep_env(self, mock_shutil, mock_fileinput):
+ @patch('builtins.open', mock_open())
+ def test_prep_env(self, mock_shutil, mock_fileinput, mock_yaml):
mock_fileinput.input.return_value = \
['CloudDomain', 'replace_private_key', 'replace_public_key',
'opendaylight::vpp_routing_node', 'ControllerExtraConfig',
'NovaComputeExtraConfig', 'ComputeKernelArgs', 'HostCpusList',
'ComputeExtraConfigPre', 'resource_registry',
'NovaSchedulerDefaultFilters']
- ds = {'deploy_options':
+ mock_yaml.safe_load.return_value = {
+ 'parameter_defaults': {
+ 'ControllerServices': [1, 2, 3],
+ 'ComputeServices': [3, 4, 5]
+ }}
+ ds = {'global_params': {'ha_enabled': False},
+ 'deploy_options':
{'sdn_controller': 'opendaylight',
'odl_vpp_routing_node': 'test',
'dataplane': 'ovs_dpdk',
+ 'sriov': 'xxx',
'performance': {'Compute': {'vpp': {'main-core': 'test',
'corelist-workers': 'test'},
'ovs': {'dpdk_cores': 'test'},
'kernel': {'test': 'test'}},
'Controller': {'vpp': 'test'}}}}
- ns = {'domain_name': 'test.domain',
- 'networks':
- {'tenant':
- {'nic_mapping': {'controller':
- {'members': ['tenant_nic']},
- 'compute':
- {'members': ['tenant_nic']}}},
- 'external':
- [{'nic_mapping': {'controller':
- {'members': ['ext_nic']},
- 'compute':
- {'members': ['ext_nic']}}}]}}
- inv = None
+ ns_dict = {'domain_name': 'test.domain',
+ 'networks':
+ {'tenant':
+ {'nic_mapping': {'controller':
+ {'members': ['tenant_nic']},
+ 'compute':
+ {'members': ['tenant_nic']}}},
+ 'external':
+ [{'nic_mapping': {'controller':
+ {'members': ['ext_nic']},
+ 'compute':
+ {'members': ['ext_nic']}}}]}}
+ inv = MagicMock()
+ inv.get_node_counts.return_value = (1, 0)
try:
# Swap stdout
saved_stdout = sys.stdout
out = StringIO()
sys.stdout = out
+ ns = MagicMock()
+ ns.enabled_network_list = ['external', 'tenant']
+ ns.__getitem__.side_effect = lambda i: ns_dict.get(i, MagicMock())
# run test
prep_env(ds, ns, inv, 'opnfv-env.yml', '/net-env.yml', '/tmp')
output = out.getvalue().strip()
@@ -266,42 +490,56 @@ class TestOvercloudDeploy(unittest.TestCase):
assert_in('ssh-rsa', output)
assert_in('ComputeKernelArgs: \'test=test \'', output)
assert_in('fdio::vpp_cpu_main_core: \'test\'', output)
+ mock_yaml.safe_dump.assert_called_with(
+ {'parameter_defaults': {
+ 'ControllerServices': [1, 2, 3, 4, 5],
+ }},
+ mock.ANY, default_flow_style=False
+ )
finally:
# put stdout back
sys.stdout = saved_stdout
@patch('apex.overcloud.deploy.fileinput')
@patch('apex.overcloud.deploy.shutil')
+ @patch('builtins.open', mock_open())
def test_prep_env_round_two(self, mock_shutil, mock_fileinput):
mock_fileinput.input.return_value = \
['NeutronVPPAgentPhysnets']
- ds = {'deploy_options':
+ ds = {'global_params': {'ha_enabled': False},
+ 'deploy_options':
{'sdn_controller': False,
'dataplane': 'fdio',
+ 'sriov': 'xxx',
'performance': {'Compute': {},
'Controller': {}}}}
- ns = {'domain_name': 'test.domain',
- 'networks':
- {'tenant':
- {'nic_mapping': {'controller':
- {'members': ['tenant_nic']},
- 'compute':
- {'members': ['tenant_nic']}}},
- 'external':
- [{'nic_mapping': {'controller':
- {'members': ['ext_nic']},
- 'compute':
- {'members': ['ext_nic']}}}]}}
- inv = None
+ ns_dict = {'domain_name': 'test.domain',
+ 'networks':
+ {'tenant':
+ {'nic_mapping': {'controller':
+ {'members': ['tenant_nic']},
+ 'compute':
+ {'members': ['tenant_nic']}}},
+ 'external':
+ [{'nic_mapping': {'controller':
+ {'members': ['ext_nic']},
+ 'compute':
+ {'members': ['ext_nic']}}}]}}
+ inv = MagicMock()
+ inv.get_node_counts.return_value = (3, 2)
try:
# Swap stdout
saved_stdout = sys.stdout
out = StringIO()
sys.stdout = out
+ ns = MagicMock()
+ ns.enabled_network_list = ['external', 'tenant']
+ ns.__getitem__.side_effect = lambda i: ns_dict.get(i, MagicMock())
# run test
prep_env(ds, ns, inv, 'opnfv-env.yml', '/net-env.yml', '/tmp')
output = out.getvalue().strip()
- assert_in('NeutronVPPAgentPhysnets: \'datacentre:tenant_nic\'',
+ assert_in('NeutronVPPAgentPhysnets: '
+ '\'datacentre:tenant_nic,external:tap0\'',
output)
assert_in('NeutronVPPAgentPhysnets', output)
finally:
@@ -310,26 +548,29 @@ class TestOvercloudDeploy(unittest.TestCase):
@patch('apex.overcloud.deploy.fileinput')
@patch('apex.overcloud.deploy.shutil')
+ @patch('builtins.open', mock_open())
def test_prep_env_round_three(self, mock_shutil, mock_fileinput):
mock_fileinput.input.return_value = \
['OS::TripleO::Services::NeutronDhcpAgent',
'NeutronDhcpAgentsPerNetwork', 'ComputeServices']
- ds = {'deploy_options':
+ ds = {'global_params': {'ha_enabled': False},
+ 'deploy_options':
{'sdn_controller': 'opendaylight',
'dataplane': 'fdio',
+ 'sriov': 'xxx',
'dvr': True}}
- ns = {'domain_name': 'test.domain',
- 'networks':
- {'tenant':
- {'nic_mapping': {'controller':
- {'members': ['tenant_nic']},
- 'compute':
- {'members': ['tenant_nic']}}},
- 'external':
- [{'nic_mapping': {'controller':
- {'members': ['ext_nic']},
- 'compute':
- {'members': ['ext_nic']}}}]}}
+ ns_dict = {'domain_name': 'test.domain',
+ 'networks':
+ {'tenant':
+ {'nic_mapping': {'controller':
+ {'members': ['tenant_nic']},
+ 'compute':
+ {'members': ['tenant_nic']}}},
+ 'external':
+ [{'nic_mapping': {'controller':
+ {'members': ['ext_nic']},
+ 'compute':
+ {'members': ['ext_nic']}}}]}}
inv = MagicMock()
inv.get_node_counts.return_value = (3, 2)
try:
@@ -337,6 +578,9 @@ class TestOvercloudDeploy(unittest.TestCase):
saved_stdout = sys.stdout
out = StringIO()
sys.stdout = out
+ ns = MagicMock()
+ ns.enabled_network_list = ['external', 'tenant']
+ ns.__getitem__.side_effect = lambda i: ns_dict.get(i, MagicMock())
# run test
prep_env(ds, ns, inv, 'opnfv-env.yml', '/net-env.yml', '/tmp')
output = out.getvalue().strip()
@@ -345,6 +589,111 @@ class TestOvercloudDeploy(unittest.TestCase):
# put stdout back
sys.stdout = saved_stdout
+ @patch('apex.overcloud.deploy.fileinput')
+ @patch('apex.overcloud.deploy.shutil')
+ @patch('builtins.open', mock_open())
+ def test_prep_env_tenant_vlan(self, mock_shutil, mock_fileinput):
+ mock_fileinput.input.return_value = \
+ ['NeutronNetworkVLANRanges',
+ 'NeutronNetworkType', 'NeutronBridgeMappings']
+ ds = {'global_params': {'ha_enabled': False},
+ 'deploy_options':
+ {'sdn_controller': False,
+ 'dataplane': 'ovs',
+ 'sriov': 'xxx',
+ 'dvr': True}}
+ ns_dict = {'domain_name': 'test.domain',
+ 'networks':
+ {'tenant':
+ {'nic_mapping': {'controller':
+ {'members': ['tenant_nic']},
+ 'compute':
+ {'members': ['tenant_nic']}},
+ 'segmentation_type': 'vlan',
+ 'overlay_id_range': 'vlan:500:600'
+ },
+ 'external':
+ [{'nic_mapping': {'controller':
+ {'members': ['ext_nic']},
+ 'compute':
+ {'members': ['ext_nic']}}}]}}
+ inv = MagicMock()
+ inv.get_node_counts.return_value = (3, 2)
+ try:
+ # Swap stdout
+ saved_stdout = sys.stdout
+ out = StringIO()
+ sys.stdout = out
+ ns = MagicMock()
+ ns.enabled_network_list = ['external', 'tenant']
+ ns.__getitem__.side_effect = lambda i: ns_dict.get(i, MagicMock())
+ # run test
+ prep_env(ds, ns, inv, 'opnfv-env.yml', '/net-env.yml', '/tmp')
+ output = out.getvalue().strip()
+ assert_in('NeutronNetworkVLANRanges: '
+ 'vlan:500:600,datacentre:1:1000', output)
+ assert_in('NeutronNetworkType: vlan', output)
+ assert_in('NeutronBridgeMappings: '
+ 'vlan:br-vlan,datacentre:br-ex', output)
+ assert_not_in('OpenDaylightProviderMappings', output)
+ finally:
+ # put stdout back
+ sys.stdout = saved_stdout
+
+ @patch('apex.overcloud.deploy.fileinput')
+ @patch('apex.overcloud.deploy.shutil')
+ @patch('builtins.open', mock_open())
+ def test_prep_env_tenant_vlan_odl(self, mock_shutil, mock_fileinput):
+ mock_fileinput.input.return_value = \
+ ['NeutronNetworkVLANRanges',
+ 'NeutronNetworkType',
+ 'NeutronBridgeMappings',
+ 'OpenDaylightProviderMappings']
+ ds = {'global_params': {'ha_enabled': False},
+ 'deploy_options':
+ {'sdn_controller': 'opendaylight',
+ 'dataplane': 'ovs',
+ 'sriov': 'xxx',
+ 'dvr': True}}
+ ns_dict = {'domain_name': 'test.domain',
+ 'networks':
+ {'tenant':
+ {'nic_mapping': {'controller':
+ {'members': ['tenant_nic']},
+ 'compute':
+ {'members': ['tenant_nic']}},
+ 'segmentation_type': 'vlan',
+ 'overlay_id_range': 'vlan:500:600'
+ },
+ 'external':
+ [{'nic_mapping': {'controller':
+ {'members': ['ext_nic']},
+ 'compute':
+ {'members': ['ext_nic']}}}]}}
+ inv = MagicMock()
+ inv.get_node_counts.return_value = (3, 2)
+ try:
+ # Swap stdout
+ saved_stdout = sys.stdout
+ out = StringIO()
+ sys.stdout = out
+ ns = MagicMock()
+ ns.enabled_network_list = ['external', 'tenant']
+ ns.__getitem__.side_effect = lambda i: ns_dict.get(i, MagicMock())
+ # run test
+ prep_env(ds, ns, inv, 'opnfv-env.yml', '/net-env.yml', '/tmp')
+ output = out.getvalue().strip()
+ assert_in('NeutronNetworkVLANRanges: '
+ 'vlan:500:600,datacentre:1:1000', output)
+ assert_in('NeutronNetworkType: vlan', output)
+ assert_in('NeutronBridgeMappings: '
+ 'vlan:br-vlan,datacentre:br-ex', output)
+ assert_in('OpenDaylightProviderMappings: '
+ 'vlan:br-vlan,datacentre:br-ex', output)
+ finally:
+ # put stdout back
+ sys.stdout = saved_stdout
+
def test_generate_ceph_key(self):
assert_equal(len(generate_ceph_key()), 40)
@@ -356,21 +705,109 @@ class TestOvercloudDeploy(unittest.TestCase):
mock_ceph_key):
mock_fileinput.input.return_value = \
['CephClusterFSID', 'CephMonKey', 'CephAdminKey', 'random_key']
- ds = {'deploy_options': MagicMock()}
- ds['deploy_options'].__getitem__.side_effect = \
- lambda i: '/dev/sdx' if i == 'ceph_device' else MagicMock()
- ds['deploy_options'].__contains__.side_effect = \
- lambda i: True if i == 'ceph_device' else MagicMock()
- prep_storage_env(ds, '/tmp')
+ ds = {'deploy_options': {
+ 'ceph_device': '/dev/sdx',
+ 'containers': False
+ }}
+ ns = {}
+ prep_storage_env(ds, ns, virtual=False, tmp_dir='/tmp')
+
+ @patch('apex.overcloud.deploy.utils.edit_tht_env')
+ @patch('apex.overcloud.deploy.generate_ceph_key')
+ @patch('apex.overcloud.deploy.fileinput')
+ @patch('apex.overcloud.deploy.os.path.isfile')
+ @patch('builtins.open', mock_open())
+ def test_prep_storage_env_containers(self, mock_isfile, mock_fileinput,
+ mock_ceph_key, mock_edit_tht):
+ mock_fileinput.input.return_value = \
+ ['CephClusterFSID', 'CephMonKey', 'CephAdminKey', 'random_key']
+ ds = {'deploy_options': {
+ 'ceph_device': '/dev/sdx',
+ 'containers': True,
+ 'os_version': 'master'
+ }, 'global_params': {'ha_enabled': False}}
+ ns = {'networks': {con.ADMIN_NETWORK: {'installer_vm':
+ {'ip': '192.0.2.1'}}}
+ }
+ prep_storage_env(ds, ns, virtual=True, tmp_dir='/tmp')
+ ceph_params = {
+ 'CephPoolDefaultSize': 2,
+ 'CephAnsibleExtraConfig': {
+ 'centos_package_dependencies': [],
+ 'ceph_osd_docker_memory_limit': '1g',
+ 'ceph_mds_docker_memory_limit': '1g'
+ },
+ 'CephPoolDefaultPgNum': 32,
+ 'CephAnsibleDisksConfig': {
+ 'devices': ['/dev/sdx'],
+ 'journal_size': 512,
+ 'osd_scenario': 'collocated'
+ }
+ }
+ mock_edit_tht.assert_called_with('/tmp/storage-environment.yaml',
+ 'parameter_defaults',
+ ceph_params)
@patch('apex.overcloud.deploy.os.path.isfile')
@patch('builtins.open', mock_open())
def test_prep_storage_env_raises(self, mock_isfile):
mock_isfile.return_value = False
ds = {'deploy_options': MagicMock()}
- assert_raises(ApexDeployException, prep_storage_env, ds, '/tmp')
+ ns = {}
+ assert_raises(ApexDeployException, prep_storage_env, ds,
+ ns, virtual=False, tmp_dir='/tmp')
+
+ @patch('apex.overcloud.deploy.generate_ceph_key')
+ @patch('apex.overcloud.deploy.fileinput')
+ @patch('apex.overcloud.deploy.os.path.isfile')
+ @patch('builtins.open', mock_open())
+ def test_prep_sriov_env(self, mock_isfile, mock_fileinput, mock_ceph_key):
+ ds = {'deploy_options':
+ {'sdn_controller': 'opendaylight',
+ 'sriov': 'xxx'}}
+ try:
+ # Swap stdout
+ saved_stdout = sys.stdout
+ out = StringIO()
+ sys.stdout = out
+ # Run tests
+ mock_fileinput.input.return_value = \
+ ['# NovaSchedulerDefaultFilters',
+ '# NovaSchedulerAvailableFilters',
+ '#NeutronPhysicalDevMappings: "datacentre:ens20f2"',
+ '#NeutronSriovNumVFs: \"ens20f2:5\"',
+ '#NovaPCIPassthrough:',
+ '# - devname: \"ens20f2\"',
+ '# physical_network: \"datacentre\"']
+ prep_sriov_env(ds, '/tmp')
+ output = out.getvalue().strip()
+ assert_in('NovaSchedulerDefaultFilters', output)
+ assert_in('NovaSchedulerAvailableFilters', output)
+ assert_in('NeutronPhysicalDevMappings: \"nfv_sriov:xxx\"', output)
+ assert_in('NeutronSriovNumVFs: \"xxx:8\"', output)
+ assert_in('NovaPCIPassthrough:', output)
+ assert_in('- devname: \"xxx\"', output)
+ assert_in('physical_network: \"nfv_sriov\"', output)
+ finally:
+ # put stdout back
+ sys.stdout = saved_stdout
+
+ @patch('apex.overcloud.deploy.os.path.isfile')
+ @patch('builtins.open', mock_open())
+ def test_prep_sriov_env_raises(self, mock_isfile):
+ ds_opts = {'sriov': True}
+ ds = {'deploy_options': MagicMock()}
+ ds['deploy_options'].__getitem__.side_effect = \
+ lambda i: ds_opts.get(i, MagicMock())
+ mock_isfile.return_value = False
+ ds = {'deploy_options': MagicMock()}
+ assert_raises(ApexDeployException, prep_sriov_env, ds, '/tmp')
def test_external_network_cmds(self):
+ ds = {'deploy_options':
+ {'sdn_controller': 'opendaylight',
+ 'dataplane': 'ovs'}}
+
cidr = MagicMock()
cidr.version = 6
ns_dict = {'networks':
@@ -382,13 +819,41 @@ class TestOvercloudDeploy(unittest.TestCase):
ns = MagicMock()
ns.enabled_network_list = ['external']
ns.__getitem__.side_effect = lambda i: ns_dict.get(i, MagicMock())
- cmds = ' '.join(external_network_cmds(ns))
+ cmds = ' '.join(external_network_cmds(ns, ds))
assert_in('--external', cmds)
assert_in('--allocation-pool start=0,end=1', cmds)
assert_in('--gateway gw', cmds)
assert_in('--network external', cmds)
+ assert_in('--provider-physical-network datacentre', cmds)
+
+ def test_external_network_cmds_nosdn_fdio(self):
+ ds = {'deploy_options':
+ {'sdn_controller': False,
+ 'dataplane': 'fdio'}}
+
+ cidr = MagicMock()
+ cidr.version = 6
+ ns_dict = {'networks':
+ {'external': [{'floating_ip_range': (0, 1),
+ 'nic_mapping':
+ {'compute': {'vlan': 'native'}},
+ 'gateway': 'gw',
+ 'cidr': cidr}]}}
+ ns = MagicMock()
+ ns.enabled_network_list = ['external']
+ ns.__getitem__.side_effect = lambda i: ns_dict.get(i, MagicMock())
+ cmds = ' '.join(external_network_cmds(ns, ds))
+ assert_in('--external', cmds)
+ assert_in('--allocation-pool start=0,end=1', cmds)
+ assert_in('--gateway gw', cmds)
+ assert_in('--network external', cmds)
+ assert_in('--provider-physical-network external', cmds)
def test_external_network_cmds_no_ext(self):
+ ds = {'deploy_options':
+ {'sdn_controller': 'opendaylight',
+ 'dataplane': 'ovs'}}
+
cidr = MagicMock()
cidr.version = 6
ns_dict = {'apex':
@@ -402,8 +867,7 @@ class TestOvercloudDeploy(unittest.TestCase):
ns = MagicMock()
ns.enabled_network_list = ['admin']
ns.__getitem__.side_effect = lambda i: ns_dict.get(i, MagicMock())
- external_network_cmds(ns)
- cmds = ' '.join(external_network_cmds(ns))
+ cmds = ' '.join(external_network_cmds(ns, ds))
assert_in('--external', cmds)
assert_in('--allocation-pool start=0,end=1', cmds)
assert_in('--network external', cmds)
@@ -417,3 +881,21 @@ class TestOvercloudDeploy(unittest.TestCase):
def test_create_congress_cmds_raises(self, mock_parsers):
mock_parsers.return_value.__getitem__.side_effect = KeyError()
assert_raises(KeyError, create_congress_cmds, 'overcloud_file')
+
+ def test_get_docker_sdn_files(self):
+ ds_opts = {'ha_enabled': True,
+ 'congress': True,
+ 'tacker': True,
+ 'containers': False,
+ 'barometer': True,
+ 'ceph': False,
+ 'vpn': True,
+ 'sdn_controller': 'opendaylight',
+ 'os_version': 'queens'
+ }
+ output = get_docker_sdn_files(ds_opts)
+ compare = ['/usr/share/openstack-tripleo-heat-templates/'
+ 'environments/services/neutron-opendaylight.yaml',
+ '/usr/share/openstack-tripleo-heat-templates/environments'
+ '/services/neutron-bgpvpn-opendaylight.yaml']
+ self.assertEqual(output, compare)
diff --git a/apex/tests/test_apex_overcloud_node.py b/apex/tests/test_apex_overcloud_node.py
new file mode 100644
index 00000000..4c67b1d8
--- /dev/null
+++ b/apex/tests/test_apex_overcloud_node.py
@@ -0,0 +1,191 @@
+##############################################################################
+# Copyright (c) 2018 Tim Rozet (trozet@redhat.com) (Red Hat)
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+from libvirt import libvirtError
+from mock import patch
+from mock import MagicMock
+import os
+import unittest
+import urllib.request
+
+from apex.common import exceptions as exc
+from apex.overcloud.node import OvercloudNode
+from apex.settings.deploy_settings import DeploySettings
+from apex.tests.constants import TEST_DUMMY_CONFIG
+
+DUMMY_SNAP_DIR = '/tmp/dummy_cache'
+
+
+class TestSnapshotDeployment(unittest.TestCase):
+ @classmethod
+ def setup_class(cls):
+ """This method is run once for each class before any tests are run"""
+
+ @classmethod
+ def teardown_class(cls):
+ """This method is run once for each class _after_ all tests are run"""
+
+ def setup(self):
+ """This method is run once before _each_ test method is executed"""
+
+ def teardown(self):
+ """This method is run once after _each_ test method is executed"""
+
+ @patch('apex.overcloud.node.OvercloudNode.create')
+ @patch('apex.overcloud.node.os.path.isfile')
+ @patch('apex.overcloud.node.libvirt.open')
+ def test_init(self, mock_libvirt_open, mock_is_file, mock_node_create):
+ mock_is_file.return_value = True
+ OvercloudNode(role='controller', ip='123.123.123.123',
+ ovs_ctrlrs=None, ovs_mgrs=None,
+ name='dummy-controller-0', node_xml='dummynode.xml',
+ disk_img='dummy.qcow2')
+ mock_node_create.assert_called()
+
+ @patch('apex.overcloud.node.OvercloudNode.create')
+ @patch('apex.overcloud.node.libvirt.open')
+ def test_init_invalid_files(self, mock_libvirt_open, mock_node_create):
+ self.assertRaises(exc.OvercloudNodeException,
+ OvercloudNode, 'controller', '123.123.123',
+ None, None, 'dummy-controller-0', 'dummynode.xml',
+ 'dummy.qcow2')
+
+ @patch('apex.overcloud.node.shutil.copyfile')
+ @patch('apex.overcloud.node.OvercloudNode.create')
+ @patch('apex.overcloud.node.os.path.isfile')
+ @patch('apex.overcloud.node.libvirt.open')
+ def test_configure_disk(self, mock_libvirt_open, mock_is_file,
+ mock_node_create, mock_copy):
+ mock_is_file.return_value = True
+ node = OvercloudNode(role='controller', ip='123.123.123.123',
+ ovs_ctrlrs=None, ovs_mgrs=None,
+ name='dummy-controller-0',
+ node_xml='dummynode.xml',
+ disk_img='dummy.qcow2')
+ conn = mock_libvirt_open.return_value
+ conn.storagePoolLookupByName.return_value.XMLDesc.return_value = """
+ <pool type='dir'>
+ <target>
+ <path>/var/lib/libvirt/images</path>
+ </target>
+ </pool>
+ """
+ node._configure_disk('dummy.qcow2')
+ mock_copy.assert_called()
+ self.assertEqual(node.disk_img, '/var/lib/libvirt/images/dummy.qcow2')
+
+ @patch('apex.overcloud.node.shutil.copyfile')
+ @patch('apex.overcloud.node.OvercloudNode.create')
+ @patch('apex.overcloud.node.os.path.isfile')
+ @patch('apex.overcloud.node.libvirt.open')
+ def test_configure_disk_bad_path(self, mock_libvirt_open, mock_is_file,
+ mock_node_create, mock_copy):
+ mock_is_file.return_value = True
+ node = OvercloudNode(role='controller', ip='123.123.123.123',
+ ovs_ctrlrs=None, ovs_mgrs=None,
+ name='dummy-controller-0',
+ node_xml='dummynode.xml',
+ disk_img='dummy.qcow2')
+ conn = mock_libvirt_open.return_value
+ conn.storagePoolLookupByName.return_value.XMLDesc.return_value = """
+ <pool type='dir'>
+ <target>
+ </target>
+ </pool>
+ """
+ self.assertRaises(exc.OvercloudNodeException,
+ node._configure_disk, 'dummy.qcow2')
+
+ @patch('apex.overcloud.node.shutil.copyfile')
+ @patch('apex.overcloud.node.OvercloudNode.create')
+ @patch('apex.overcloud.node.os.path.isfile')
+ @patch('apex.overcloud.node.libvirt.open')
+ def test_configure_disk_no_pool(self, mock_libvirt_open, mock_is_file,
+ mock_node_create, mock_copy):
+ mock_is_file.return_value = True
+ node = OvercloudNode(role='controller', ip='123.123.123.123',
+ ovs_ctrlrs=None, ovs_mgrs=None,
+ name='dummy-controller-0',
+ node_xml='dummynode.xml',
+ disk_img='dummy.qcow2')
+ conn = mock_libvirt_open.return_value
+ conn.storagePoolLookupByName.return_value = None
+ self.assertRaises(exc.OvercloudNodeException,
+ node._configure_disk, 'dummy.qcow2')
+
+ @patch('apex.overcloud.node.distro.linux_distribution')
+ def test_update_xml(self, mock_linux_distro):
+ mock_linux_distro.return_value = ['Fedora']
+ xml_file = os.path.join(TEST_DUMMY_CONFIG, 'baremetal0.xml')
+ with open(xml_file, 'r') as fh:
+ xml = fh.read()
+ new_xml = OvercloudNode._update_xml(
+ xml=xml, disk_path='/dummy/disk/path/blah.qcow2')
+ self.assertIn('/dummy/disk/path/blah.qcow2', new_xml)
+ self.assertIn('/usr/bin/qemu-kvm', new_xml)
+
+ @patch('apex.overcloud.node.distro.linux_distribution')
+ def test_update_xml_no_disk(self, mock_linux_distro):
+ mock_linux_distro.return_value = ['Fedora']
+ xml_file = os.path.join(TEST_DUMMY_CONFIG, 'baremetal0.xml')
+ with open(xml_file, 'r') as fh:
+ xml = fh.read()
+ new_xml = OvercloudNode._update_xml(xml=xml)
+ self.assertIn('/home/images/baremetal0.qcow2', new_xml)
+ self.assertIn('/usr/bin/qemu-kvm', new_xml)
+
+ @patch('apex.overcloud.node.OvercloudNode._update_xml')
+ @patch('apex.overcloud.node.OvercloudNode._configure_disk')
+ @patch('apex.overcloud.node.libvirt.open')
+ @patch('apex.overcloud.node.os.path.isfile')
+ def test_create(self, mock_isfile, mock_libvirt_conn, mock_configure_disk,
+ mock_update_xml):
+ mock_isfile.return_value = True
+ domain = mock_libvirt_conn.return_value.defineXML.return_value
+ node = OvercloudNode(role='controller', ip='123.123.123.123',
+ ovs_ctrlrs=None, ovs_mgrs=None,
+ name='dummy-controller-0',
+ node_xml=os.path.join(TEST_DUMMY_CONFIG,
+ 'baremetal0.xml'),
+ disk_img='dummy.qcow2')
+ self.assertIs(node.vm, domain)
+
+ @patch('apex.overcloud.node.OvercloudNode._update_xml')
+ @patch('apex.overcloud.node.OvercloudNode._configure_disk')
+ @patch('apex.overcloud.node.libvirt.open')
+ @patch('apex.overcloud.node.os.path.isfile')
+ def test_start(self, mock_isfile, mock_libvirt_conn, mock_configure_disk,
+ mock_update_xml):
+ mock_isfile.return_value = True
+ domain = mock_libvirt_conn.return_value.defineXML.return_value
+ node = OvercloudNode(role='controller', ip='123.123.123.123',
+ ovs_ctrlrs=None, ovs_mgrs=None,
+ name='dummy-controller-0',
+ node_xml=os.path.join(TEST_DUMMY_CONFIG,
+ 'baremetal0.xml'),
+ disk_img='dummy.qcow2')
+ node.start()
+ domain.create.assert_called()
+
+ @patch('apex.overcloud.node.OvercloudNode._update_xml')
+ @patch('apex.overcloud.node.OvercloudNode._configure_disk')
+ @patch('apex.overcloud.node.libvirt.open')
+ @patch('apex.overcloud.node.os.path.isfile')
+ def test_start_fail(self, mock_isfile, mock_libvirt_conn,
+ mock_configure_disk, mock_update_xml):
+ mock_isfile.return_value = True
+ domain = mock_libvirt_conn.return_value.defineXML.return_value
+ domain.create.side_effect = libvirtError('blah')
+ node = OvercloudNode(role='controller', ip='123.123.123.123',
+ ovs_ctrlrs=None, ovs_mgrs=None,
+ name='dummy-controller-0',
+ node_xml=os.path.join(TEST_DUMMY_CONFIG,
+ 'baremetal0.xml'),
+ disk_img='dummy.qcow2')
+ self.assertRaises(exc.OvercloudNodeException, node.start)
diff --git a/apex/tests/test_apex_undercloud.py b/apex/tests/test_apex_undercloud.py
index 9458bf9f..14586528 100644
--- a/apex/tests/test_apex_undercloud.py
+++ b/apex/tests/test_apex_undercloud.py
@@ -7,8 +7,10 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+import ipaddress
import libvirt
import os
+import platform
import subprocess
import unittest
@@ -23,6 +25,7 @@ from nose.tools import (
assert_regexp_matches,
assert_raises,
assert_true,
+ assert_false,
assert_equal)
@@ -117,11 +120,111 @@ class TestUndercloud(unittest.TestCase):
@patch.object(Undercloud, 'generate_config', return_value={})
@patch.object(Undercloud, '_get_vm', return_value=None)
@patch.object(Undercloud, 'create')
+ def test_detect_nat_with_external(self, mock_create, mock_get_vm,
+ mock_generate_config, mock_utils):
+ ns = MagicMock()
+ ns.enabled_network_list = ['admin', 'external']
+ ns_dict = {
+ 'apex': MagicMock(),
+ 'dns-domain': 'dns',
+ 'networks': {'admin':
+ {'cidr': ipaddress.ip_network('192.0.2.0/24'),
+ 'installer_vm': {'ip': '192.0.2.1',
+ 'vlan': 'native'},
+ 'dhcp_range': ['192.0.2.15', '192.0.2.30'],
+ 'gateway': '192.1.1.1',
+ },
+ 'external':
+ [{'enabled': True,
+ 'cidr': ipaddress.ip_network('192.168.0.0/24'),
+ 'installer_vm': {'ip': '192.168.0.1',
+ 'vlan': 'native'},
+ 'gateway': '192.168.0.1'
+ }]
+ }
+ }
+ ns.__getitem__.side_effect = ns_dict.__getitem__
+ ns.__contains__.side_effect = ns_dict.__contains__
+
+ uc = Undercloud('img_path', 'tplt_path', external_network=True)
+ assert_true(uc.detect_nat(ns))
+
+ @patch('apex.undercloud.undercloud.utils')
+ @patch.object(Undercloud, 'generate_config', return_value={})
+ @patch.object(Undercloud, '_get_vm', return_value=None)
+ @patch.object(Undercloud, 'create')
+ def test_detect_nat_no_external(self, mock_create, mock_get_vm,
+ mock_generate_config, mock_utils):
+ ns = MagicMock()
+ ns.enabled_network_list = ['admin', 'external']
+ ns_dict = {
+ 'apex': MagicMock(),
+ 'dns-domain': 'dns',
+ 'networks': {'admin':
+ {'cidr': ipaddress.ip_network('192.0.2.0/24'),
+ 'installer_vm': {'ip': '192.0.2.1',
+ 'vlan': 'native'},
+ 'dhcp_range': ['192.0.2.15', '192.0.2.30'],
+ 'gateway': '192.0.2.1',
+ },
+ 'external':
+ [{'enabled': False,
+ 'cidr': ipaddress.ip_network('192.168.0.0/24'),
+ 'installer_vm': {'ip': '192.168.0.1',
+ 'vlan': 'native'},
+ 'gateway': '192.168.1.1'
+ }]
+ }
+ }
+ ns.__getitem__.side_effect = ns_dict.__getitem__
+ ns.__contains__.side_effect = ns_dict.__contains__
+
+ uc = Undercloud('img_path', 'tplt_path', external_network=False)
+ assert_true(uc.detect_nat(ns))
+
+ @patch('apex.undercloud.undercloud.utils')
+ @patch.object(Undercloud, 'generate_config', return_value={})
+ @patch.object(Undercloud, '_get_vm', return_value=None)
+ @patch.object(Undercloud, 'create')
+ def test_detect_no_nat_no_external(self, mock_create, mock_get_vm,
+ mock_generate_config, mock_utils):
+ ns = MagicMock()
+ ns.enabled_network_list = ['admin', 'external']
+ ns_dict = {
+ 'apex': MagicMock(),
+ 'dns-domain': 'dns',
+ 'networks': {'admin':
+ {'cidr': ipaddress.ip_network('192.0.2.0/24'),
+ 'installer_vm': {'ip': '192.0.2.1',
+ 'vlan': 'native'},
+ 'dhcp_range': ['192.0.2.15', '192.0.2.30'],
+ 'gateway': '192.0.2.3',
+ },
+ 'external':
+ [{'enabled': False,
+ 'cidr': ipaddress.ip_network('192.168.0.0/24'),
+ 'installer_vm': {'ip': '192.168.0.1',
+ 'vlan': 'native'},
+ 'gateway': '192.168.1.1'
+ }]
+ }
+ }
+ ns.__getitem__.side_effect = ns_dict.__getitem__
+ ns.__contains__.side_effect = ns_dict.__contains__
+
+ uc = Undercloud('img_path', 'tplt_path', external_network=False)
+ assert_false(uc.detect_nat(ns))
+
+ @patch('apex.undercloud.undercloud.utils')
+ @patch.object(Undercloud, 'generate_config', return_value={})
+ @patch.object(Undercloud, '_get_vm', return_value=None)
+ @patch.object(Undercloud, 'create')
def test_configure(self, mock_create, mock_get_vm,
mock_generate_config, mock_utils):
uc = Undercloud('img_path', 'tplt_path', external_network=True)
ns = MagicMock()
- uc.configure(ns, 'playbook', '/tmp/dir')
+ ds = MagicMock()
+ uc.configure(ns, ds, 'playbook', '/tmp/dir')
@patch('apex.undercloud.undercloud.utils')
@patch.object(Undercloud, 'generate_config', return_value={})
@@ -131,18 +234,22 @@ class TestUndercloud(unittest.TestCase):
mock_generate_config, mock_utils):
uc = Undercloud('img_path', 'tplt_path', external_network=True)
ns = MagicMock()
+ ds = MagicMock()
subps_err = subprocess.CalledProcessError(1, 'cmd')
mock_utils.run_ansible.side_effect = subps_err
assert_raises(ApexUndercloudException,
- uc.configure, ns, 'playbook', '/tmp/dir')
+ uc.configure, ns, ds, 'playbook', '/tmp/dir')
+ @patch('apex.undercloud.undercloud.virt_utils')
+ @patch('apex.undercloud.undercloud.uc_builder')
@patch('apex.undercloud.undercloud.os.remove')
@patch('apex.undercloud.undercloud.os.path')
@patch('apex.undercloud.undercloud.shutil')
@patch.object(Undercloud, '_get_vm', return_value=None)
@patch.object(Undercloud, 'create')
def test_setup_vols(self, mock_get_vm, mock_create,
- mock_shutil, mock_os_path, mock_os_remove):
+ mock_shutil, mock_os_path, mock_os_remove,
+ mock_uc_builder, mock_virt_utils):
uc = Undercloud('img_path', 'tplt_path', external_network=True)
mock_os_path.isfile.return_value = True
mock_os_path.exists.return_value = True
@@ -152,6 +259,9 @@ class TestUndercloud(unittest.TestCase):
src_img = os.path.join(uc.image_path, img_file)
dest_img = os.path.join(constants.LIBVIRT_VOLUME_PATH, img_file)
mock_shutil.copyfile.assert_called_with(src_img, dest_img)
+ if platform.machine() != 'aarch64':
+ mock_uc_builder.expand_disk.assert_called()
+ mock_virt_utils.virt_customize.assert_called()
@patch('apex.undercloud.undercloud.os.path')
@patch.object(Undercloud, '_get_vm', return_value=None)
@@ -173,24 +283,64 @@ class TestUndercloud(unittest.TestCase):
{'--upload':
'/root/.ssh/id_rsa.pub:/root/.ssh/authorized_keys'},
{'--run-command': 'chmod 600 /root/.ssh/authorized_keys'},
- {'--run-command': 'restorecon /root/.ssh/authorized_keys'},
+ {'--run-command': 'restorecon '
+ '-R -v /root/.ssh'},
+ {'--run-command': 'id -u stack || useradd -m stack'},
+ {'--run-command': 'mkdir -p /home/stack/.ssh'},
+ {'--run-command': 'chown stack:stack /home/stack/.ssh'},
{'--run-command':
'cp /root/.ssh/authorized_keys /home/stack/.ssh/'},
{'--run-command':
'chown stack:stack /home/stack/.ssh/authorized_keys'},
{'--run-command':
- 'chmod 600 /home/stack/.ssh/authorized_keys'}]
+ 'chmod 600 /home/stack/.ssh/authorized_keys'},
+ {'--run-command':
+ 'echo "stack ALL = (ALL) NOPASSWD: ALL" >> '
+ '/etc/sudoers'},
+ {'--run-command': 'touch /etc/cloud/cloud-init.disabled'}]
mock_vutils.virt_customize.assert_called_with(test_ops, uc.volume)
@patch.object(Undercloud, '_get_vm', return_value=None)
@patch.object(Undercloud, 'create')
def test_generate_config(self, mock_get_vm, mock_create):
- ns_net = MagicMock()
- ns_net.__getitem__.side_effect = \
- lambda i: '1234/24' if i is 'cidr' else MagicMock()
- ns = {'apex': MagicMock(),
- 'dns-domain': 'dns',
- 'networks': {'admin': ns_net,
- 'external': [ns_net]}}
-
- Undercloud('img_path', 'tplt_path').generate_config(ns)
+ ns = MagicMock()
+ ns.enabled_network_list = ['admin', 'external']
+ ns_dict = {
+ 'apex': MagicMock(),
+ 'dns-domain': 'dns',
+ 'ntp': 'pool.ntp.org',
+ 'networks': {'admin':
+ {'cidr': ipaddress.ip_network('192.0.2.0/24'),
+ 'installer_vm': {'ip': '192.0.2.1',
+ 'vlan': 'native'},
+ 'dhcp_range': ['192.0.2.15', '192.0.2.30']
+ },
+ 'external':
+ [{'enabled': True,
+ 'cidr': ipaddress.ip_network('192.168.0.0/24'),
+ 'installer_vm': {'ip': '192.168.0.1',
+ 'vlan': 'native'}
+ }]
+ }
+ }
+ ns.__getitem__.side_effect = ns_dict.__getitem__
+ ns.__contains__.side_effect = ns_dict.__contains__
+ ds = {'global_params': {},
+ 'deploy_options': {}}
+
+ Undercloud('img_path', 'tplt_path').generate_config(ns, ds)
+
+ @patch.object(Undercloud, '_get_vm', return_value=None)
+ @patch.object(Undercloud, 'create')
+ @patch('apex.undercloud.undercloud.virt_utils')
+ def test_update_delorean(self, mock_vutils, mock_uc_create, mock_get_vm):
+ uc = Undercloud('img_path', 'tmplt_path', external_network=True)
+ uc._update_delorean_repo()
+ download_cmd = (
+ "curl -L -f -o "
+ "/etc/yum.repos.d/deloran.repo "
+ "https://trunk.rdoproject.org/centos7-{}"
+ "/current-tripleo/delorean.repo".format(
+ constants.DEFAULT_OS_VERSION))
+ test_ops = [{'--run-command': download_cmd}]
+ mock_vutils.virt_customize.assert_called_with(test_ops, uc.volume)
diff --git a/apex/tests/test_apex_virtual_utils.py b/apex/tests/test_apex_virtual_utils.py
index 643069f3..a9eb78dd 100644
--- a/apex/tests/test_apex_virtual_utils.py
+++ b/apex/tests/test_apex_virtual_utils.py
@@ -12,6 +12,7 @@ import unittest
from mock import patch
+from apex.virtual.exceptions import ApexVirtualException
from apex.virtual.utils import DEFAULT_VIRT_IP
from apex.virtual.utils import get_virt_ip
from apex.virtual.utils import generate_inventory
@@ -66,13 +67,30 @@ class TestVirtualUtils(unittest.TestCase):
assert_is_instance(generate_inventory('target_file', ha_enabled=True),
dict)
+ @patch('apex.virtual.utils.get_virt_ip')
+ @patch('apex.virtual.utils.subprocess.check_output')
@patch('apex.virtual.utils.iptc')
@patch('apex.virtual.utils.subprocess.check_call')
@patch('apex.virtual.utils.vbmc_lib')
- def test_host_setup(self, mock_vbmc_lib, mock_subprocess, mock_iptc):
+ def test_host_setup(self, mock_vbmc_lib, mock_subprocess, mock_iptc,
+ mock_check_output, mock_get_virt_ip):
+ mock_get_virt_ip.return_value = '192.168.122.1'
+ mock_check_output.return_value = b'blah |dummy \nstatus | running'
host_setup({'test': 2468})
mock_subprocess.assert_called_with(['vbmc', 'start', 'test'])
+ @patch('apex.virtual.utils.get_virt_ip')
+ @patch('apex.virtual.utils.subprocess.check_output')
+ @patch('apex.virtual.utils.iptc')
+ @patch('apex.virtual.utils.subprocess.check_call')
+ @patch('apex.virtual.utils.vbmc_lib')
+ def test_host_setup_vbmc_fails(self, mock_vbmc_lib, mock_subprocess,
+ mock_iptc, mock_check_output,
+ mock_get_virt_ip):
+ mock_get_virt_ip.return_value = '192.168.122.1'
+ mock_check_output.return_value = b'blah |dummy \nstatus | stopped'
+ assert_raises(ApexVirtualException, host_setup, {'test': 2468})
+
@patch('apex.virtual.utils.iptc')
@patch('apex.virtual.utils.subprocess.check_call')
@patch('apex.virtual.utils.vbmc_lib')
diff --git a/apex/undercloud/undercloud.py b/apex/undercloud/undercloud.py
index 013570d3..5ee487c2 100644
--- a/apex/undercloud/undercloud.py
+++ b/apex/undercloud/undercloud.py
@@ -15,6 +15,7 @@ import shutil
import subprocess
import time
+from apex.builders import undercloud_builder as uc_builder
from apex.virtual import utils as virt_utils
from apex.virtual import configure_vm as vm_lib
from apex.common import constants
@@ -31,8 +32,10 @@ class Undercloud:
"""
def __init__(self, image_path, template_path,
root_pw=None, external_network=False,
- image_name='undercloud.qcow2'):
+ image_name='undercloud.qcow2',
+ os_version=constants.DEFAULT_OS_VERSION):
self.ip = None
+ self.os_version = os_version
self.root_pw = root_pw
self.external_net = external_network
self.volume = os.path.join(constants.LIBVIRT_VOLUME_PATH,
@@ -61,27 +64,40 @@ class Undercloud:
if self.external_net:
networks.append('external')
console = 'ttyAMA0' if platform.machine() == 'aarch64' else 'ttyS0'
+ root = 'vda2' if platform.machine() == 'aarch64' else 'sda'
self.vm = vm_lib.create_vm(name='undercloud',
image=self.volume,
baremetal_interfaces=networks,
direct_boot='overcloud-full',
kernel_args=['console={}'.format(console),
- 'root=/dev/sda'],
+ 'root=/dev/{}'.format(root)],
default_network=True,
- template_dir=self.template_path)
+ template_dir=self.template_path,
+ memory=10240)
self.setup_volumes()
self.inject_auth()
- def _set_ip(self):
- ip_out = self.vm.interfaceAddresses(
+ @staticmethod
+ def _get_ip(vm):
+ ip_out = vm.interfaceAddresses(
libvirt.VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LEASE, 0)
if ip_out:
for (name, val) in ip_out.items():
for ipaddr in val['addrs']:
if ipaddr['type'] == libvirt.VIR_IP_ADDR_TYPE_IPV4:
- self.ip = ipaddr['addr']
- return True
+ return ipaddr['addr']
+
+ def _set_ip(self):
+ ip = self._get_ip(self.vm)
+ if ip:
+ self.ip = ip
+ return True
+
+ @staticmethod
+ def get_ip():
+ vm = Undercloud._get_vm()
+ return Undercloud._get_ip(vm)
def start(self):
"""
@@ -96,7 +112,7 @@ class Undercloud:
# give 10 seconds to come up
time.sleep(10)
# set IP
- for x in range(5):
+ for x in range(10):
if self._set_ip():
logging.info("Undercloud started. IP Address: {}".format(
self.ip))
@@ -110,19 +126,37 @@ class Undercloud:
"Unable to find IP for undercloud. Check if VM booted "
"correctly")
- def configure(self, net_settings, playbook, apex_temp_dir):
+ def detect_nat(self, net_settings):
+ if self.external_net:
+ net = net_settings['networks'][constants.EXTERNAL_NETWORK][0]
+ else:
+ net = net_settings['networks'][constants.ADMIN_NETWORK]
+ if net['gateway'] == net['installer_vm']['ip']:
+ return True
+ else:
+ return False
+
+ def configure(self, net_settings, deploy_settings,
+ playbook, apex_temp_dir, virtual_oc=False):
"""
Configures undercloud VM
- :param net_setings: Network settings for deployment
+ :param net_settings: Network settings for deployment
+ :param deploy_settings: Deployment settings for deployment
:param playbook: playbook to use to configure undercloud
:param apex_temp_dir: temporary apex directory to hold configs/logs
+ :param virtual_oc: Boolean to determine if overcloud is virt
:return: None
"""
logging.info("Configuring Undercloud...")
# run ansible
- ansible_vars = Undercloud.generate_config(net_settings)
+ ansible_vars = Undercloud.generate_config(net_settings,
+ deploy_settings)
ansible_vars['apex_temp_dir'] = apex_temp_dir
+
+ ansible_vars['nat'] = self.detect_nat(net_settings)
+ ansible_vars['container_client'] = utils.find_container_client(
+ self.os_version)
try:
utils.run_ansible(ansible_vars, playbook, host=self.ip,
user='stack')
@@ -150,11 +184,19 @@ class Undercloud:
if os.path.exists(dest_img):
os.remove(dest_img)
shutil.copyfile(src_img, dest_img)
+ if img_file == self.image_name and platform.machine() != 'aarch64':
+ uc_builder.expand_disk(dest_img)
+ self.expand_root_fs()
+
shutil.chown(dest_img, user='qemu', group='qemu')
os.chmod(dest_img, 0o0744)
- # TODO(trozet):check if resize needed right now size is 50gb
+
+ def expand_root_fs(self):
# there is a lib called vminspect which has some dependencies and is
# not yet available in pip. Consider switching to this lib later.
+ logging.debug("Expanding root filesystem on /dev/sda partition")
+ virt_ops = [{constants.VIRT_RUN_CMD: 'xfs_growfs /dev/sda'}]
+ virt_utils.virt_customize(virt_ops, self.volume)
def inject_auth(self):
virt_ops = list()
@@ -169,39 +211,59 @@ class Undercloud:
'/root/.ssh/id_rsa.pub:/root/.ssh/authorized_keys'})
run_cmds = [
'chmod 600 /root/.ssh/authorized_keys',
- 'restorecon /root/.ssh/authorized_keys',
+ 'restorecon -R -v /root/.ssh',
+ 'id -u stack || useradd -m stack',
+ 'mkdir -p /home/stack/.ssh',
+ 'chown stack:stack /home/stack/.ssh',
'cp /root/.ssh/authorized_keys /home/stack/.ssh/',
'chown stack:stack /home/stack/.ssh/authorized_keys',
- 'chmod 600 /home/stack/.ssh/authorized_keys'
+ 'chmod 600 /home/stack/.ssh/authorized_keys',
+ 'echo "stack ALL = (ALL) NOPASSWD: ALL" >> /etc/sudoers',
+ 'touch /etc/cloud/cloud-init.disabled'
]
for cmd in run_cmds:
virt_ops.append({constants.VIRT_RUN_CMD: cmd})
virt_utils.virt_customize(virt_ops, self.volume)
@staticmethod
- def generate_config(ns):
+ def generate_config(ns, ds):
"""
Generates a dictionary of settings for configuring undercloud
:param ns: network settings to derive undercloud settings
+ :param ds: deploy settings to derive undercloud settings
:return: dictionary of settings
"""
ns_admin = ns['networks']['admin']
intro_range = ns['apex']['networks']['admin']['introspection_range']
config = dict()
+ # Check if this is an ARM deployment
+ config['aarch64'] = platform.machine() == 'aarch64'
+ # Configuration for undercloud.conf
config['undercloud_config'] = [
"enable_ui false",
"undercloud_update_packages false",
"undercloud_debug false",
"inspection_extras false",
+ "ipxe_enabled {}".format(
+ str(ds['global_params'].get('ipxe', True) and
+ not config['aarch64'])),
"undercloud_hostname undercloud.{}".format(ns['dns-domain']),
"local_ip {}/{}".format(str(ns_admin['installer_vm']['ip']),
str(ns_admin['cidr']).split('/')[1]),
- "network_gateway {}".format(str(ns_admin['installer_vm']['ip'])),
- "network_cidr {}".format(str(ns_admin['cidr'])),
+ "generate_service_certificate false",
+ "undercloud_ntp_servers {}".format(str(ns['ntp'][0])),
+ "container_images_file "
+ "/home/stack/containers-prepare-parameter.yaml",
+ "undercloud_enable_selinux false"
+ ]
+
+ config['undercloud_network_config'] = [
+ "gateway {}".format(str(ns_admin['installer_vm']['ip'])),
+ "cidr {}".format(str(ns_admin['cidr'])),
"dhcp_start {}".format(str(ns_admin['dhcp_range'][0])),
"dhcp_end {}".format(str(ns_admin['dhcp_range'][1])),
- "inspection_iprange {}".format(','.join(intro_range))
+ "inspection_iprange {}".format(','.join(intro_range)),
]
config['ironic_config'] = [
@@ -225,8 +287,35 @@ class Undercloud:
"prefix": str(ns_external['cidr']).split('/')[1],
"enabled": ns_external['enabled']
}
-
- # Check if this is an ARM deployment
- config['aarch64'] = platform.machine() == 'aarch64'
+ # We will NAT external network if it is enabled. If external network
+ # is IPv6, we will NAT admin network in case we need IPv4 connectivity
+ # for things like DNS server.
+ if 'external' in ns.enabled_network_list and \
+ ns_external['cidr'].version == 4:
+ nat_cidr = ns_external['cidr']
+ else:
+ nat_cidr = ns['networks']['admin']['cidr']
+ config['nat_cidr'] = str(nat_cidr)
+ if nat_cidr.version == 6:
+ config['nat_network_ipv6'] = True
+ else:
+ config['nat_network_ipv6'] = False
+ config['http_proxy'] = ns.get('http_proxy', '')
+ config['https_proxy'] = ns.get('https_proxy', '')
return config
+
+ def _update_delorean_repo(self):
+ if utils.internet_connectivity():
+ logging.info('Updating delorean repo on Undercloud')
+ delorean_repo = (
+ "https://trunk.rdoproject.org/centos7-{}"
+ "/current-tripleo/delorean.repo".format(self.os_version))
+ cmd = ("curl -L -f -o "
+ "/etc/yum.repos.d/deloran.repo {}".format(delorean_repo))
+ try:
+ virt_utils.virt_customize([{constants.VIRT_RUN_CMD: cmd}],
+ self.volume)
+ except Exception:
+ logging.warning("Failed to download and update delorean repo "
+ "for Undercloud")
diff --git a/apex/utils.py b/apex/utils.py
new file mode 100644
index 00000000..f7914613
--- /dev/null
+++ b/apex/utils.py
@@ -0,0 +1,107 @@
+##############################################################################
+# Copyright (c) 2017 Tim Rozet (trozet@redhat.com) and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+# TODO(trozet) migrate rest of utils.sh here
+
+import argparse
+import datetime
+import logging
+import os
+import sys
+import tempfile
+
+from apex.common import constants
+from apex.common import parsers
+from apex.undercloud import undercloud as uc_lib
+from apex.common import utils
+
+VALID_UTILS = ['fetch_logs']
+START_TIME = datetime.datetime.now().strftime("%Y-%m-%d-%H:%M")
+APEX_TEMP_DIR = tempfile.mkdtemp(prefix="apex-logs-{}-".format(START_TIME))
+
+
+def fetch_logs(args):
+ uc_ip = uc_lib.Undercloud.get_ip()
+ if not uc_ip:
+ raise Exception('No Undercloud IP found')
+ logging.info("Undercloud IP is: {}".format(uc_ip))
+ fetch_vars = dict()
+ fetch_vars['stackrc'] = 'source /home/stack/stackrc'
+ fetch_vars['apex_temp_dir'] = APEX_TEMP_DIR
+ fetch_playbook = os.path.join(args.lib_dir, constants.ANSIBLE_PATH,
+ 'fetch_overcloud_nodes.yml')
+ try:
+ utils.run_ansible(fetch_vars, fetch_playbook, host=uc_ip,
+ user='stack', tmp_dir=APEX_TEMP_DIR)
+ logging.info("Retrieved overcloud nodes info")
+ except Exception:
+ logging.error("Failed to retrieve overcloud nodes. Please check log")
+ raise
+ nova_output = os.path.join(APEX_TEMP_DIR, 'nova_output')
+ fetch_vars['overcloud_nodes'] = parsers.parse_nova_output(nova_output)
+ fetch_vars['SSH_OPTIONS'] = '-o StrictHostKeyChecking=no -o ' \
+ 'GlobalKnownHostsFile=/dev/null -o ' \
+ 'UserKnownHostsFile=/dev/null -o ' \
+ 'LogLevel=error'
+ fetch_playbook = os.path.join(args.lib_dir, constants.ANSIBLE_PATH,
+ 'fetch_overcloud_logs.yml')
+ # Run per overcloud node
+ for node, ip in fetch_vars['overcloud_nodes'].items():
+ logging.info("Executing fetch logs overcloud playbook on "
+ "node {}".format(node))
+ try:
+ utils.run_ansible(fetch_vars, fetch_playbook, host=ip,
+ user='heat-admin', tmp_dir=APEX_TEMP_DIR)
+ logging.info("Logs retrieved for node {}".format(node))
+ except Exception:
+ logging.error("Log retrieval failed "
+ "for node {}. Please check log".format(node))
+ raise
+ logging.info("Log retrieval complete and stored in {}".format(
+ APEX_TEMP_DIR))
+
+
+def execute_actions(args):
+ for action in VALID_UTILS:
+ if hasattr(args, action) and getattr(args, action):
+ util_module = __import__('apex').utils
+ func = getattr(util_module, action)
+ logging.info("Executing action: {}".format(action))
+ func(args)
+
+
+def main():
+ util_parser = argparse.ArgumentParser()
+ util_parser.add_argument('-f', '--fetch-logs',
+ dest='fetch_logs',
+ required=False,
+ default=False,
+ action='store_true',
+ help='Fetch all overcloud logs')
+ util_parser.add_argument('--lib-dir',
+ default='/usr/share/opnfv-apex',
+ help='Directory path for apex ansible '
+ 'and third party libs')
+ args = util_parser.parse_args(sys.argv[1:])
+ os.makedirs(os.path.dirname('./apex_util.log'), exist_ok=True)
+ formatter = '%(asctime)s %(levelname)s: %(message)s'
+ logging.basicConfig(filename='./apex_util.log',
+ format=formatter,
+ datefmt='%m/%d/%Y %I:%M:%S %p',
+ level=logging.DEBUG)
+ console = logging.StreamHandler()
+ console.setLevel(logging.DEBUG)
+ console.setFormatter(logging.Formatter(formatter))
+ logging.getLogger('').addHandler(console)
+
+ execute_actions(args)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/apex/virtual/configure_vm.py b/apex/virtual/configure_vm.py
index 3b2c4462..9d47bf03 100755
--- a/apex/virtual/configure_vm.py
+++ b/apex/virtual/configure_vm.py
@@ -102,6 +102,10 @@ def create_vm(name, image, diskbus='sata', baremetal_interfaces=['admin'],
with open(os.path.join(template_dir, 'domain.xml'), 'r') as f:
source_template = f.read()
imagefile = os.path.realpath(image)
+
+ if arch == 'aarch64' and diskbus == 'sata':
+ diskbus = 'virtio'
+
memory = int(memory) * 1024
params = {
'name': name,
@@ -118,9 +122,6 @@ def create_vm(name, image, diskbus='sata', baremetal_interfaces=['admin'],
'user_interface': '',
}
- # assign scsi as default for aarch64
- if arch == 'aarch64' and diskbus == 'sata':
- diskbus = 'scsi'
# Configure the bus type for the target disk device
params['diskbus'] = diskbus
nicparams = {
@@ -171,7 +172,7 @@ def create_vm(name, image, diskbus='sata', baremetal_interfaces=['admin'],
"""
params['user_interface'] = """
<controller type='virtio-serial' index='0'>
- <address type='virtio-mmio'/>
+ <address type='pci'/>
</controller>
<serial type='pty'>
<target port='0'/>
diff --git a/apex/virtual/exceptions.py b/apex/virtual/exceptions.py
new file mode 100644
index 00000000..e3dff51a
--- /dev/null
+++ b/apex/virtual/exceptions.py
@@ -0,0 +1,12 @@
+##############################################################################
+# Copyright (c) 2018 Tim Rozet (trozet@redhat.com) and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+
+class ApexVirtualException(Exception):
+ pass
diff --git a/apex/virtual/utils.py b/apex/virtual/utils.py
index 226af1b5..8b24bc40 100644
--- a/apex/virtual/utils.py
+++ b/apex/virtual/utils.py
@@ -18,6 +18,8 @@ import xml.etree.ElementTree as ET
from apex.common import utils as common_utils
from apex.virtual import configure_vm as vm_lib
+from apex.virtual import exceptions as exc
+from time import sleep
from virtualbmc import manager as vbmc_lib
DEFAULT_RAM = 8192
@@ -131,11 +133,39 @@ def host_setup(node):
chain.insert_rule(rule)
try:
subprocess.check_call(['vbmc', 'start', name])
- logging.debug("Started vbmc for domain {}".format(name))
+ logging.debug("Started VBMC for domain {}".format(name))
except subprocess.CalledProcessError:
- logging.error("Failed to start vbmc for {}".format(name))
+ logging.error("Failed to start VBMC for {}".format(name))
raise
- logging.debug('vmbcs setup: {}'.format(vbmc_manager.list()))
+
+ logging.info("Checking VBMC {} is up".format(name))
+ is_running = False
+ for x in range(0, 4):
+ logging.debug("Polling to see if VBMC is up, attempt {}".format(x))
+ try:
+ output = subprocess.check_output(['vbmc', 'show', name],
+ stderr=subprocess.STDOUT)
+ except subprocess.CalledProcessError:
+ logging.warning('Unable to issue "vbmc show" cmd')
+ continue
+ for line in output.decode('utf-8').split('\n'):
+ if 'status' in line:
+ if 'running' in line:
+ is_running = True
+ break
+ else:
+ logging.debug('VBMC status is not "running"')
+ break
+ if is_running:
+ break
+ sleep(1)
+ if is_running:
+ logging.info("VBMC {} is up and running".format(name))
+ else:
+ logging.error("Failed to verify VBMC is running")
+ raise exc.ApexVirtualException("Failed to bring up vbmc "
+ "{}".format(name))
+ logging.debug('VBMCs setup: {}'.format(vbmc_manager.list()))
def virt_customize(ops, target):
diff --git a/build/CentOS-Updates.repo b/build/CentOS-Updates.repo
deleted file mode 100644
index 8fc45d89..00000000
--- a/build/CentOS-Updates.repo
+++ /dev/null
@@ -1,5 +0,0 @@
-#released updates
-[updates-old]
-name=CentOS-$releasever - Old Updates
-baseurl=http://mirror.centos.org/centos/7.3.1611/updates/x86_64/
-gpgcheck=0
diff --git a/build/Makefile b/build/Makefile
index 805cf22a..a446cc52 100644
--- a/build/Makefile
+++ b/build/Makefile
@@ -8,37 +8,24 @@
##############################################################################
export USE_MASTER = ""
-export CENTDNLD = http://mirrors.cat.pdx.edu/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso
export RELEASE = "0"
export RPM_DIST = $(shell rpm -E %dist)
-
-export NETVPP_VERS := $(shell grep Version $(shell pwd)/rpm_specs/networking-vpp.spec | head -n 1 | awk '{ print $$2 }')
-export NETVPP_REPO := $(shell awk -F\= '/^netvpp_repo/ {print $$2}' variables.sh )
-export NETVPP_BRANCH := $(shell awk -F\= '/^netvpp_branch/ {print $$2}' variables.sh )
-export NETVPP_COMMIT := $(shell git ls-remote $(NETVPP_REPO) $(NETVPP_BRANCH) | awk '{print substr($$1,1,7)}')
-
-export RELRPMVERS = $(shell grep Version $(shell pwd)/rpm_specs/opnfv-apex-release.spec | head -n 1 | awk '{ print $$2 }')
export RPMVERS = $(shell grep Version $(shell pwd)/rpm_specs/opnfv-apex.spec | head -n 1 | awk '{ print $$2 }')
export BUILD_ROOT = $(shell pwd)
export BUILD_DIR = $(shell dirname $$(pwd))/.build
export CACHE_DIR = $(shell dirname $$(pwd))/.cache
-export PATCHES_DIR = $(BUILD_ROOT)/patches
-export QUAGGA_BUILD_DIR = $(BUILD_DIR)/quagga_build_dir
-export QUAGGA_RPMS_DIR = $(QUAGGA_BUILD_DIR)/rpmbuild
export RPM_DIR_ARGS = -D '_topdir $(BUILD_DIR)' -D '_builddir $(BUILD_DIR)' -D '_sourcedir $(BUILD_DIR)' -D '_rpmdir $(BUILD_DIR)' -D '_specdir $(BUILD_DIR)' -D '_srcrpmdir $(BUILD_DIR)'
-
-export RPMREL = $(BUILD_DIR)/noarch/opnfv-apex-release-$(RPMVERS)-$(shell echo ${RELEASE} | tr -d '_-').noarch.rpm
export RPMCOM = $(BUILD_DIR)/noarch/python34-opnfv-apex-$(RPMVERS)-$(shell echo ${RELEASE} | tr -d '_-').noarch.rpm
-export RPMUDR = $(BUILD_DIR)/noarch/opnfv-apex-undercloud-$(RPMVERS)-$(shell echo ${RELEASE} | tr -d '_-').noarch.rpm
-export RPMODL = $(BUILD_DIR)/noarch/opnfv-apex-$(RPMVERS)-$(shell echo ${RELEASE} | tr -d '_-').noarch.rpm
-export RPMONO = $(BUILD_DIR)/noarch/opnfv-apex-onos-$(RPMVERS)-$(shell echo ${RELEASE} | tr -d '_-').noarch.rpm
-export ISO = $(BUILD_DIR)/release/OPNFV-CentOS-7-x86_64-${RELEASE}.iso
-export CENTISO = $(BUILD_DIR)/$(shell basename $(CENTDNLD))
+
+export NETVPP_VERS := $(shell grep Version $(shell pwd)/rpm_specs/networking-vpp.spec | head -n 1 | awk '{ print $$2 }')
+export NETVPP_REPO := "https://github.com/fepan/networking-vpp"
+export NETVPP_BRANCH := "test-fdio-fix"
+export NETVPP_COMMIT := $(shell git ls-remote $(NETVPP_REPO) $(NETVPP_BRANCH) | awk '{print substr($$1,1,7)}')
.PHONY: all
-all: iso
+all: rpm
.PHONY: clean
clean:
@@ -48,50 +35,46 @@ clean:
clean-cache:
rm -rf $(CACHE_DIR)
-.PHONY: images
-images: undercloud overcloud-full overcloud-opendaylight
-
-.PHONY: rpms
-rpms: images common-rpm undercloud-rpm opendaylight-rpm
+.PHONY: rpm-check
+rpm-check: apex-rpm-check
-.PHONY: rpms-check
-rpms-check: release-rpm-check common-rpm-check undercloud-rpm-check opendaylight-rpm-check
-
-.PHONY: rpms-clean
-rpms-clean:
+.PHONY: rpm-clean
+rpm-clean:
rm -rf $(BUILD_DIR)/noarch
rm -rf $(BUILD_DIR)/BUILDROOT
-$(BUILD_DIR)/opnfv-apex-release.tar.gz:
+$(BUILD_DIR)/opnfv-apex.tar.gz:
mkdir -p $(BUILD_DIR)
- pushd ../ && git archive --format=tar.gz --prefix=opnfv-apex-release-$(RELRPMVERS)/ HEAD > $(BUILD_DIR)/opnfv-apex-release.tar.gz
+ pushd ../ && git archive --format=tar.gz --prefix=opnfv-apex-$(RPMVERS)/ HEAD > $(BUILD_DIR)/opnfv-apex.tar.gz
-.PHONY: release-rpm-check
-release-rpm-check: $(BUILD_DIR)/opnfv-apex-release.tar.gz
- rpmbuild --clean -bi -bl rpm_specs/opnfv-apex-release.spec $(RPM_DIR_ARGS) -D "_release $(shell echo $(RELEASE) | tr -d '_-')"
+.PHONY: apex-rpm-check
+apex-rpm-check: $(BUILD_DIR)/opnfv-apex.tar.gz
+ rpmbuild --clean -bi -bl rpm_specs/opnfv-apex.spec $(RPM_DIR_ARGS) -D "_release $(shell echo $(RELEASE) | tr -d '_-')"
-.PHONY: release-rpm
-release-rpm: $(BUILD_DIR)/opnfv-apex-release.tar.gz $(RPMREL)
+.PHONY: rpm
+rpm: $(BUILD_DIR)/opnfv-apex.tar.gz $(RPMCOM)
-$(RPMREL):
- @echo "Building the Apex Release RPM"
- # build the release RPM
- rpmbuild --clean -ba rpm_specs/opnfv-apex-release.spec $(RPM_DIR_ARGS) -D "_release $(shell echo $(RELEASE) | tr -d '_-')"
+$(RPMCOM):
+ @echo "Building the Apex RPM"
+ # build the Apex RPM
+ rpmbuild --clean -ba rpm_specs/opnfv-apex.spec $(RPM_DIR_ARGS) -D "_release $(shell echo $(RELEASE) | tr -d '_-')"
-$(BUILD_DIR)/opnfv-apex-common.tar.gz:
- pushd ../ && git archive --format=tar.gz --prefix=opnfv-apex-$(RPMVERS)/ HEAD > $(BUILD_DIR)/opnfv-apex-common.tar.gz
-.PHONY: common-rpm-check
-common-rpm-check: $(BUILD_DIR)/opnfv-apex-common.tar.gz
- rpmbuild --clean -bi -bl rpm_specs/opnfv-apex-common.spec $(RPM_DIR_ARGS) -D "_release $(shell echo $(RELEASE) | tr -d '_-')"
+##################
+# NETWORKING-VPP #
+##################
-.PHONY: common-rpm
-common-rpm: $(BUILD_DIR)/opnfv-apex-common.tar.gz $(RPMCOM)
+$(BUILD_DIR)/python-networking-vpp.tar.gz:
+ @echo "Preparing the networking-vpp RPM prerequisites"
+ git clone $(NETVPP_REPO) -b $(NETVPP_BRANCH) $(BUILD_DIR)/python-networking-vpp-$(NETVPP_VERS)
+ tar czf $(BUILD_DIR)/python-networking-vpp.tar.gz -C $(BUILD_DIR) python-networking-vpp-$(NETVPP_VERS)
-$(RPMCOM):
- @echo "Building the Apex Common RPM"
- # build the common RPM
- rpmbuild --clean -ba rpm_specs/opnfv-apex-common.spec $(RPM_DIR_ARGS) -D "_release $(shell echo $(RELEASE) | tr -d '_-')"
+.PHONY: networking-vpp-rpm
+networking-vpp-rpm: $(BUILD_DIR)/noarch/python-networking-vpp-*.noarch.rpm
+
+$(BUILD_DIR)/noarch/python-networking-vpp-*.noarch.rpm: $(BUILD_DIR)/python-networking-vpp.tar.gz
+ @echo "Building the Networking VPP RPM"
+ rpmbuild --clean -ba --target noarch rpm_specs/networking-vpp.spec $(RPM_DIR_ARGS) -D 'git .git$(NETVPP_COMMIT)'
##################
# PYTHON TESTS #
@@ -126,226 +109,3 @@ rpmlint:
@echo "Running rpmlint against all RPM spec files"
rpmlint rpm_specs/*.spec
-##################
-# NETWORKING-VPP #
-##################
-
-$(BUILD_DIR)/python-networking-vpp.tar.gz:
- @echo "Preparing the networking-vpp RPM prerequisites"
- git clone $(NETVPP_REPO) -b $(NETVPP_BRANCH) $(BUILD_DIR)/python-networking-vpp-$(NETVPP_VERS)
- tar czf $(BUILD_DIR)/python-networking-vpp.tar.gz -C $(BUILD_DIR) python-networking-vpp-$(NETVPP_VERS)
-
-.PHONY: networking-vpp-rpm
-networking-vpp-rpm: $(BUILD_DIR)/noarch/python-networking-vpp-*.noarch.rpm
-
-$(BUILD_DIR)/noarch/python-networking-vpp-*.noarch.rpm: $(BUILD_DIR)/python-networking-vpp.tar.gz
- @echo "Building the Networking VPP RPM"
- rpmbuild --clean -ba --target noarch rpm_specs/networking-vpp.spec $(RPM_DIR_ARGS) -D 'git .git$(NETVPP_COMMIT)'
-
-###############
-# UNDERCLOUD #
-###############
-
-.PHONY: undercloud
-undercloud: $(BUILD_DIR)/undercloud.qcow2
-
-$(BUILD_DIR)/undercloud.qcow2:
- @echo "Building the Apex Undercloud Image"
- @./undercloud.sh
-
-$(BUILD_DIR)/opnfv-apex-undercloud.tar.gz: $(BUILD_DIR)/undercloud.qcow2
- @echo "Preparing the Apex Undercloud RPM prerequisites"
- pushd ../ && git archive --format=tar --prefix=opnfv-apex-undercloud-$(RPMVERS)/ HEAD > $(BUILD_DIR)/opnfv-apex-undercloud.tar
- tar -rf $(BUILD_DIR)/opnfv-apex-undercloud.tar \
- --xform="s:.*undercloud.qcow2:opnfv-apex-undercloud-$(RPMVERS)/build/undercloud.qcow2:" $(BUILD_DIR)/undercloud.qcow2
- gzip -f $(BUILD_DIR)/opnfv-apex-undercloud.tar
-
-.PHONY: undercloud-rpm-check
-undercloud-rpm-check: $(BUILD_DIR)/opnfv-apex-undercloud.tar.gz
- rpmbuild --clean -bi -bl rpm_specs/opnfv-apex-undercloud.spec $(RPM_DIR_ARGS) -D "_release $(shell echo $(RELEASE) | tr -d '_-')"
-
-.PHONY: undercloud-rpm
-undercloud-rpm: $(BUILD_DIR)/opnfv-apex-undercloud.tar.gz $(RPMUDR)
-
-$(RPMUDR):
- @echo "Building the Apex Undercloud RPM"
- rpmbuild --clean -ba rpm_specs/opnfv-apex-undercloud.spec $(RPM_DIR_ARGS) -D "_release $(shell echo $(RELEASE) | tr -d '_-')"
-
-###############
-# OVERCLOUD #
-###############
-
-.PHONY: overcloud-full
-overcloud-full: $(BUILD_DIR)/overcloud-full.qcow2
-
-$(BUILD_DIR)/overcloud-full.qcow2: $(BUILD_DIR)/noarch/python-networking-vpp-*.noarch.rpm
- @echo "Building the Apex Base Overcloud Image"
- @./overcloud-full.sh
-
-###############
-# ODL #
-###############
-
-.PHONY: overcloud-opendaylight
-overcloud-opendaylight: $(BUILD_DIR)/overcloud-full-opendaylight.qcow2
-
-$(BUILD_DIR)/overcloud-full-opendaylight.qcow2: $(BUILD_DIR)/overcloud-full.qcow2
- @echo "Building the Apex OpenDaylight Overcloud Image"
- @./overcloud-opendaylight.sh
-
-$(BUILD_DIR)/opnfv-apex.tar.gz: $(BUILD_DIR)/overcloud-full-opendaylight.qcow2
- tar -czf $(BUILD_DIR)/opnfv-apex.tar.gz --xform="s:.*/:opnfv-apex-$(RPMVERS)/build/:" $(BUILD_DIR)/overcloud-full-opendaylight.qcow2 $(BUILD_DIR)/overcloud-full.initrd $(BUILD_DIR)/overcloud-full.vmlinuz
-
-.PHONY: opendaylight-rpm-check
-opendaylight-rpm-check: $(BUILD_DIR)/opnfv-apex.tar.gz
- rpmbuild --clean -bi -bl rpm_specs/opnfv-apex.spec $(RPM_DIR_ARGS) -D "_release $(shell echo $(RELEASE) | tr -d '_-')"
-
-.PHONY: opendaylight-rpm
-opendaylight-rpm: $(BUILD_DIR)/opnfv-apex.tar.gz $(RPMODL)
-
-$(RPMODL):
- @echo "Building the Apex OpenDaylight RPM"
- # build the overcloud RPM
- rpmbuild --clean -ba rpm_specs/opnfv-apex.spec $(RPM_DIR_ARGS) -D "_release $(shell echo $(RELEASE) | tr -d '_-')"
-
-###############
-# ONOS #
-###############
-
-.PHONY: overcloud-onos
-overcloud-onos: $(BUILD_DIR)/overcloud-full-onos.qcow2
-
-$(BUILD_DIR)/overcloud-full-onos.qcow2: $(BUILD_DIR)/overcloud-full.qcow2
- @echo "Building the Apex ONOS Overcloud Image"
- @./overcloud-onos.sh
-
-$(BUILD_DIR)/opnfv-apex-onos.tar.gz: $(BUILD_DIR)/overcloud-full-onos.qcow2
- tar -czf $(BUILD_DIR)/opnfv-apex-onos.tar.gz --xform="s:.*/:opnfv-apex-onos-$(RPMVERS)/build/:" $(BUILD_DIR)/overcloud-full-onos.qcow2
-
-.PHONY: onos-rpm-check
-onos-rpm-check: $(BUILD_DIR)/opnfv-apex-onos.tar.gz
- rpmbuild --clean -bi -bl rpm_specs/opnfv-apex-onos.spec $(RPM_DIR_ARGS) -D "_release $(shell echo $(RELEASE) | tr -d '_-')"
-
-.PHONY: onos-rpm
-onos-rpm: $(BUILD_DIR)/opnfv-apex-onos.tar.gz $(RPMONO)
-
-$(RPMONO):
- @echo "Building the Apex ONOS RPM"
- # build the overcloud RPM
- rpmbuild --clean -ba rpm_specs/opnfv-apex-onos.spec $(RPM_DIR_ARGS) -D "_release $(shell echo $(RELEASE) | tr -d '_-')"
-
-###############
-# ISO #
-###############
-
-$(CENTISO):
- curl $(CENTDNLD) -z $(CENTISO) -o $(CENTISO) --verbose --silent --location
-
-iso-clean:
- @rm -Rf $(BUILD_DIR)/centos
- @rm -Rf $(BUILD_DIR)/release
- @rm -f $(ISO)
-
-.PHONY: mount-centiso umount-centiso
-mount-centiso: $(CENTISO)
- @echo "Mounting CentOS ISO in $(CENTDIR)"
- @mkdir -p $(CENTDIR)
- @fuseiso $(CENTISO) $(CENTDIR)
-
-umount-centiso:
- @set +e
- @echo "Unmounting CentOS ISO from $(CENTDIR)"
- @fusermount -u $(CENTDIR)
- @rmdir $(CENTDIR)
- @set -e
-
-.PHONY: iso
-iso: iso-clean images rpms $(CENTISO)
- @echo "Building the Apex ISO"
- @mkdir $(BUILD_DIR)/centos $(BUILD_DIR)/release
- cd $(BUILD_DIR)/centos && bsdtar -xf ../$(shell basename $(CENTISO))
- # modify the installer iso's contents
- @chmod -R u+w $(BUILD_DIR)/centos
- @cp -f isolinux.cfg $(BUILD_DIR)/centos/isolinux/isolinux.cfg
- @ln $(RPMCOM) $(BUILD_DIR)/centos/Packages
- @ln $(RPMUDR) $(BUILD_DIR)/centos/Packages
- @ln $(RPMODL) $(BUILD_DIR)/centos/Packages
- # add packages to the centos packages
- cd $(BUILD_DIR)/centos/Packages && yumdownloader openvswitch jq python34 python34-libs python34-PyYAML python34-setuptools
- cd $(BUILD_DIR)/centos/Packages && yumdownloader python34-jinja2 python34-markupsafe ansible python34-six python34-cffi
- cd $(BUILD_DIR)/centos/Packages && yumdownloader ipxe-roms-qemu python34-idna python34-pycparser python-crypto python-httplib2
- cd $(BUILD_DIR)/centos/Packages && yumdownloader python-jinja2 python-keyczar python-paramiko sshpass python-ecdsa python34-ply
- cd $(BUILD_DIR)/centos/Packages && yumdownloader libvirt-python python-lxml python-passlib python2-jmespath
- cd $(BUILD_DIR)/centos/Packages && curl -O http://artifacts.opnfv.org/apex/dependencies/python3-ipmi-0.3.0-1.noarch.rpm
- cd $(BUILD_DIR)/centos/Packages && curl -O http://artifacts.opnfv.org/apex/dependencies/python34-asn1crypto-0.22.0-1.el7.centos.noarch.rpm
- cd $(BUILD_DIR)/centos/Packages && curl -O http://artifacts.opnfv.org/apex/dependencies/python34-cryptography-2.0.3-1.el7.centos.x86_64.rpm
- cd $(BUILD_DIR)/centos/Packages && curl -O http://artifacts.opnfv.org/apex/dependencies/python34-iptables-0.12.0-1.el7.centos.x86_64.rpm
- cd $(BUILD_DIR)/centos/Packages && curl -O http://artifacts.opnfv.org/apex/dependencies/python34-libvirt-3.6.0-1.el7.centos.x86_64.rpm
- cd $(BUILD_DIR)/centos/Packages && curl -O http://artifacts.opnfv.org/apex/dependencies/python34-pbr-3.1.1-1.el7.centos.x86_64.rpm
- cd $(BUILD_DIR)/centos/Packages && curl -O http://artifacts.opnfv.org/apex/dependencies/python34-PrettyTable-0.7.2-1.el7.centos.noarch.rpm
- cd $(BUILD_DIR)/centos/Packages && curl -O http://artifacts.opnfv.org/apex/dependencies/python34-pycrypto-2.6.1-1.el7.centos.x86_64.rpm
- cd $(BUILD_DIR)/centos/Packages && curl -O http://artifacts.opnfv.org/apex/dependencies/python34-pyghmi-1.0.22-1.el7.centos.noarch.rpm
- cd $(BUILD_DIR)/centos/Packages && curl -O http://artifacts.opnfv.org/apex/dependencies/python34-virtualbmc-1.2.0-1.el7.centos.noarch.rpm
- # regenerate yum repo data
- @echo "Generating new yum metadata"
- createrepo --update -g $(BUILD_ROOT)/c7-opnfv-x86_64-comps.xml $(BUILD_DIR)/centos
- # build the iso
- @echo "Building OPNFV iso"
- mkisofs -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -V "OPNFV CentOS 7 x86_64" -R -J -v -T -o $(ISO) $(BUILD_DIR)/centos
- isohybrid $(ISO)
- @printf "\n\nISO is built at $(ISO)\n\n"
-
-##################
-# Quagga Clean #
-##################
-.PHONY: quagga-clean
-quagga-clean:
- @rm -rf $(QUAGGA_BUILD_DIR)
- @sudo yum -y remove zrpc* quagga* c-capnproto* thrift*
-
-#################
-# Quagga+ZRPC #
-#################
-.PHONY: quagga-zrpc
-quagga-zrpc: quagga-clean thrift-rpm capnproto-rpm quagga-rpm zrpc-rpm
-
-##########
-# ZRPC #
-##########
-.PHONY: zrpc-rpm
-zrpc-rpm: quagga-rpm $(QUAGGA_RPMS_DIR)/zrpcd-%.x86_64.rpm
-
-$(QUAGGA_RPMS_DIR)/zrpcd-%.x86_64.rpm:
- @echo "Building ZRPC RPM"
- @./build_quagga.sh -a zrpc
-
-############
-# Quagga #
-############
-.PHONY: quagga-rpm
-quagga-rpm: $(QUAGGA_RPMS_DIR)/RPMS/x86_64/quagga-1.1.0_%.el7.centos.x86_64.rpm
-
-$(QUAGGA_RPMS_DIR)/RPMS/x86_64/quagga-1.1.0_%.el7.centos.x86_64.rpm:
- @echo "Building Quagga RPM"
- @./build_quagga.sh -a quagga
-
-###############
-# Capnproto #
-###############
-.PHONY: capnproto-rpm
-capnproto-rpm: $(QUAGGA_RPMS_DIR)/RPMS/x86_64/c-capnproto-%.x86_64.rpm
-
-$(QUAGGA_RPMS_DIR)/RPMS/x86_64/c-capnproto-%.x86_64.rpm:
- @echo "Building capnproto RPMs"
- @./build_quagga.sh -a capnproto
-
-############
-# Thrift #
-############
-
-.PHONY: thrift-rpm
-thrift-rpm: $(QUAGGA_RPMS_DIR)/RPMS/x86_64/thrift-%.x86_64.rpm
-
-$(QUAGGA_RPMS_DIR)/RPMS/x86_64/thrift-%.x86_64.rpm:
- @echo "Building Thrift RPMs"
- @./build_quagga.sh -a thrift
diff --git a/build/ansible.cfg b/build/ansible.cfg
new file mode 100644
index 00000000..a9db58a0
--- /dev/null
+++ b/build/ansible.cfg
@@ -0,0 +1,11 @@
+[defaults]
+retry_files_enabled = False
+forks = 25
+timeout = 60
+gather_timeout = 30
+
+[ssh_connection]
+ssh_args = -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ControlMaster=auto -o ControlPersist=30m -o ServerAliveInterval=5 -o ServerAliveCountMax=5
+retries = 8
+pipelining = True
+
diff --git a/build/barometer-install.sh b/build/barometer-install.sh
deleted file mode 100755
index 15753a44..00000000
--- a/build/barometer-install.sh
+++ /dev/null
@@ -1,152 +0,0 @@
-#!/usr/bin/env bash
-
-# Copyright 2017 Intel Corporation.
-#
-# Licensed 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.
-
-# Get and install packages needed for Barometer service.
-# These are: collectd rpm's and dependencies, collectd-openstack-plugins,
-# puppet-barometer module.
-source ./variables.sh
-
-# Versions/branches
-COLLECTD_OPENSTACK_PLUGINS_BRANCH="stable/pike"
-
-ARCH="6.el7.centos.x86_64.rpm"
-# don't fail because of missing certificate
-GETFLAG="--no-check-certificate"
-
-# Locations of repos
-ARTIFACTS_BAROM="artifacts.opnfv.org/barometer"
-COLLECTD_OPENSTACK_REPO="https://github.com/openstack/collectd-ceilometer-plugin"
-PUPPET_BAROMETER_REPO="https://github.com/johnhinman/puppet-barometer"
-
-# upload barometer packages tar, extract, and install
-
-function barometer_pkgs {
- OVERCLOUD_IMAGE=$1
-
- # get collectd packages and upload to image
- echo "adding barometer to " $1
- rm -rf barometer
- mkdir barometer
- pushd barometer > /dev/null
-
- # get version of barometer packages to download
- wget $GETFLAG $ARTIFACTS_BAROM/latest.properties
- BAROMETER_VER=$(grep OPNFV_ARTIFACT_VERSION ./latest.properties | cut -d'=' -f2)
- echo "BAROMETER version = $BAROMETER_VER"
-
- # get collectd version from HTML
- wget $GETFLAG $ARTIFACTS_BAROM.html
- COLLECTD_VER=$(grep "$BAROMETER_VER/collectd-debuginfo" ./barometer.html \
- | cut -d'-' -f7)
- SUFFIX=$COLLECTD_VER-$ARCH
-
- # get intel_rdt version
- INTEL_RDT_VER=$(grep "$BAROMETER_VER/intel-cmt-cat-devel" ./barometer.html \
- | cut -d'-' -f9)
- RDT_SUFFIX=$INTEL_RDT_VER-1.el7.centos.x86_64.rpm
-
- wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/libcollectdclient-$SUFFIX
- wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/libcollectdclient-devel-$SUFFIX
- wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-$SUFFIX
- wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-utils-$SUFFIX
- wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-ovs_events-$SUFFIX
- wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-ovs_stats-$SUFFIX
- wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-virt-$SUFFIX
- wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/intel-cmt-cat-$RDT_SUFFIX
- wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/intel-cmt-cat-devel-$RDT_SUFFIX
- wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-python-$SUFFIX
- wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-snmp-$SUFFIX
- wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-snmp_agent-$SUFFIX
- wget $GETFLAG $ARTIFACTS_BAROM/$BAROMETER_VER/collectd-intel_rdt-$SUFFIX
- curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
-
- tar cfz collectd.tar.gz *.rpm get-pip.py
- cp collectd.tar.gz ${BUILD_DIR}
- popd > /dev/null
-
- # get collectd-openstack-plugins and tar it
- rm -rf collectd-openstack-plugins
- git clone $COLLECTD_OPENSTACK_REPO collectd-openstack-plugins
- pushd collectd-openstack-plugins
- git checkout $COLLECTD_OPENSTACK_PLUGINS_BRANCH
- git archive --format=tar.gz HEAD > ${BUILD_DIR}/collectd-openstack-plugins.tar.gz
- popd > /dev/null
-
- # get the barometer puppet module and tar it
- rm -rf puppet-barometer
- git clone $PUPPET_BAROMETER_REPO
- pushd puppet-barometer/ > /dev/null
- git archive --format=tar.gz HEAD > ${BUILD_DIR}/puppet-barometer.tar.gz
- popd > /dev/null
-
- # get mibs for the snmp plugin
- rm -rf barometer
- git clone https://gerrit.opnfv.org/gerrit/barometer
- pushd barometer/mibs > /dev/null
- git archive --format=tar.gz HEAD > ${BUILD_DIR}/mibs.tar.gz
- popd > /dev/null
-
- # Upload tar files to image
- # untar collectd packages
- # install dependencies
- LIBGUESTFS_BACKEND=direct $VIRT_CUSTOMIZE \
- --upload ${BUILD_DIR}/collectd.tar.gz:/opt/ \
- --upload ${BUILD_DIR}/collectd-openstack-plugins.tar.gz:/opt/ \
- --upload ${BUILD_DIR}/puppet-barometer.tar.gz:/etc/puppet/modules/ \
- --run-command 'tar xfz /opt/collectd.tar.gz -C /opt' \
- --install libstatgrab,log4cplus,rrdtool,rrdtool-devel \
- --install mcelog,python34,python34-libs,python34-devel \
- --install libvirt,libvirt-devel,gcc \
- -a $OVERCLOUD_IMAGE
-
- LIBGUESTFS_BACKEND=direct $VIRT_CUSTOMIZE \
- --run-command 'python3.4 /opt/get-pip.py' \
- --run-command 'pip3 install requests libvirt-python pbr babel future six' \
- -a $OVERCLOUD_IMAGE
-
- LIBGUESTFS_BACKEND=direct $VIRT_CUSTOMIZE \
- --run-command "yum install -y \
- /opt/libcollectdclient-${SUFFIX} \
- /opt/libcollectdclient-devel-${SUFFIX} \
- /opt/collectd-${SUFFIX} \
- /opt/collectd-utils-${SUFFIX} \
- /opt/collectd-python-${SUFFIX} \
- /opt/collectd-ovs_events-${SUFFIX} \
- /opt/collectd-ovs_stats-${SUFFIX} \
- /opt/intel-cmt-cat-${RDT_SUFFIX} \
- /opt/intel-cmt-cat-devel-${RDT_SUFFIX} \
- /opt/collectd-intel_rdt-${SUFFIX} \
- /opt/collectd-snmp-${SUFFIX} \
- /opt/collectd-snmp_agent-${SUFFIX} \
- /opt/collectd-virt-${SUFFIX}" \
- -a $OVERCLOUD_IMAGE
-
- # install collectd-openstack-plugins
- # install puppet-barometer module
- # make directories for config files and mibs
- LIBGUESTFS_BACKEND=direct $VIRT_CUSTOMIZE \
- --run-command 'mkdir /opt/stack/collectd-openstack' \
- --run-command "tar xfz /opt/collectd-openstack-plugins.tar.gz -C /opt/stack/collectd-openstack" \
- --run-command "cd /etc/puppet/modules/ && mkdir barometer && \
- tar xzf puppet-barometer.tar.gz -C barometer" \
- --run-command 'mkdir /usr/share/mibs/' \
- --upload ${BUILD_DIR}/mibs.tar.gz:/usr/share/snmp/mibs/ \
- --run-command 'tar xfz /usr/share/snmp/mibs/mibs.tar.gz -C /usr/share/snmp/mibs/' \
- --run-command 'ln -s /usr/share/snmp/mibs/ /usr/share/mibs/ietf' \
- --run-command 'mkdir -p /etc/collectd/collectd.conf.d' \
- -a $OVERCLOUD_IMAGE
-}
-
diff --git a/build/build_ovs_nsh.sh b/build/build_ovs_nsh.sh
new file mode 100644
index 00000000..4e15c363
--- /dev/null
+++ b/build/build_ovs_nsh.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+##############################################################################
+# Copyright (c) 2016 Tim Rozet (Red Hat) and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+set -e
+
+./boot.sh
+libtoolize --force
+aclocal
+autoheader
+automake --force-missing --add-missing
+autoconf
+./configure
+make rpm-fedora RPMBUILD_OPT="\"-D kversion `rpm -q kernel | rpmdev-sort | tail -n -1 | sed 's/^kernel-//'`\" --without check"
+make rpm-fedora-kmod RPMBUILD_OPT="\"-D kversion `rpm -q kernel | rpmdev-sort | tail -n -1 | sed 's/^kernel-//'`\"" \ No newline at end of file
diff --git a/build/build_quagga.sh b/build/build_quagga.sh
deleted file mode 100755
index e33cd274..00000000
--- a/build/build_quagga.sh
+++ /dev/null
@@ -1,251 +0,0 @@
-#!/usr/bin/env bash
-##############################################################################
-# Copyright (c) 2017 Tim Rozet (Red Hat) and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-set -xe
-
-ARTIFACT=None
-
-# Builds Quagga, Zebra and other dependency RPMs for CentOS 7
-# Install package dependencies
-install_quagga_build_deps() {
- sudo yum -y install automake bison flex libtool make readline-devel \
- texinfo texi2html rpm-build libcap-devel groff net-snmp-devel pam-devel glib2 glib2-devel epel-release spectool \
- wget git gcc-c++ openssl-devel boost-devel boost-static gtest zeromq-4.1.4 zeromq-devel-4.1.4 \
- capnproto-devel capnproto-libs capnproto
- sudo yum -y groupinstall "Development Tools"
-}
-
-display_usage ()
-{
-cat << EOF
-$0 Builds Quagga/ZRPC and Dependency RPMs
-
-usage: $0 [ [-a | --artifact] artifact ]
-
-OPTIONS:
- -a artifact to build (thrift, capnproto, quagga, zrpc). Default: All artifacts.
- -c clean all build directories
- -h help, prints this help text
-
-Example:
-build_quagga.sh -a thrift
-EOF
-}
-
-parse_cmdline() {
- while [ "${1:0:1}" = "-" ]
- do
- case "$1" in
- -h|--help)
- display_usage
- exit 0
- ;;
- -a|--artifact)
- ARTIFACT=${2}
- shift 2
- ;;
- -c|--clean)
- CLEAN="True"
- shift 1
- ;;
- *)
- display_usage
- exit 1
- ;;
- esac
- done
-
-}
-
-# Removes build directory folder and re-creates RPM DIRs to use
-function quagga_clean(){
- rm -rf ${QUAGGA_BUILD_DIR}
- sudo yum remove -y zrpc* quagga* thrift* c-capnproto*
-}
-
-# Build Thrift RPM
-function build_thrift(){
- rm -rf thrift
- git clone https://git-wip-us.apache.org/repos/asf/thrift.git
- pushd thrift
- git checkout 0.10.0
- wget https://issues.apache.org/jira/secure/attachment/12840511/0002-THRIFT-3986-using-autoreconf-i-fails-because-of-miss.patch
- wget https://issues.apache.org/jira/secure/attachment/12840512/0001-THRIFT-3987-externalise-declaration-of-thrift-server.patch
- patch -p1 < 0002-THRIFT-3986-using-autoreconf-i-fails-because-of-miss.patch
- patch -p1 < 0001-THRIFT-3987-externalise-declaration-of-thrift-server.patch
- autoreconf -i
- ./configure --without-qt4 --without-qt5 --without-csharp --without-java \
- --without-erlang --without-nodejs --without-perl --without-python \
- --without-php --without-php_extension --without-dart --without-ruby \
- --without-haskell --without-go --without-haxe --without-d
- # Hack somehow the testing file of php is not there
- # We will disable php anyhow later on.
- touch lib/php/src/ext/thrift_protocol/run-tests.php
- make dist
- pushd contrib/
- spectool -g -R thrift.spec
- mv ../thrift-*.tar.gz $rpmbuild/SOURCES/
- rpmbuild --define "_topdir $rpmbuild" -ba thrift.spec --define "without_ruby 1" --define "without-php 1"
- popd > /dev/null
- popd > /dev/null
-}
-
-# c-capnproto RPM
-# This is a library for capnproto in C. Not to be confused with
-# the capnproto provided by the repos
-function build_capnproto(){
- rm -rf c-capnproto
- git clone https://github.com/opensourcerouting/c-capnproto
- pushd c-capnproto
- git checkout 332076e52257
- autoreconf -i
- ./configure --without-gtest
- make dist
-
- cp ${BUILD_ROOT}/rpm_specs/c_capnproto.spec $rpmbuild/SPECS/
- cp c-capnproto-*.tar.gz $rpmbuild/SOURCES/
- rpmbuild --define "_topdir $rpmbuild" -ba $rpmbuild/SPECS/c_capnproto.spec
- popd > /dev/null
-}
-
-build_quagga(){
- # Build Quagga
- rm -rf quagga
- sudo yum -y install $rpmbuild/RPMS/x86_64/*.rpm
- git clone https://github.com/6WIND/quagga.git
- pushd quagga > /dev/null
- # checkout the parent of the bellow patch.
- # Once the issue addressed by the patch is fixed
- # these two lines can be removed.
- git checkout 95bb0f4a
- patch -p1 < ${PATCHES_DIR}/fix_quagga_make_dist.patch
- autoreconf -i
- ./configure --with-zeromq --with-ccapnproto --enable-user=quagga \
- --enable-group=quagga --enable-vty-group=quagga \
- --disable-doc --enable-multipath=64
-
- # Quagga RPM
- make dist
- cp ${BUILD_ROOT}/rpm_specs/quagga.spec $rpmbuild/SPECS/
- cp quagga*.tar.gz $rpmbuild/SOURCES/
- cat > $rpmbuild/SOURCES/bgpd.conf <<EOF
-hostname bgpd
-password sdncbgpc
-service advanced-vty
-log stdout
-line vty
- exec-timeout 0 0
-debug bgp
-debug bgp updates
-debug bgp events
-debug bgp fsm
-EOF
- rpmbuild --define "_topdir $rpmbuild" -ba $rpmbuild/SPECS/quagga.spec
- popd > /dev/null
-}
-
-# Build ZPRC
-build_zrpc(){
- sudo yum -y install $rpmbuild/RPMS/x86_64/*.rpm
- rm -rf zrpcd
- git clone https://github.com/6WIND/zrpcd.git
- pushd zrpcd > /dev/null
- touch NEWS README
- export QUAGGA_CFLAGS='-I/usr/include/quagga/'
- # checkout the parent of the bellow patch.
- # Once the issue addressed by the patch is fixed
- # these two lines can be removed.
- git checkout 9bd1ee8e
- patch -p1 < ${PATCHES_DIR}/fix_zrpcd_make_dist.patch
- patch -p1 < ${PATCHES_DIR}/zrpcd_hardcoded_paths.patch
- autoreconf -i
-
- # ZRPC RPM
- ./configure --enable-zrpcd \
- --enable-user=quagga --enable-group=quagga \
- --enable-vty-group=quagga --with-thrift-version=4
- make dist
-
- cat > $rpmbuild/SOURCES/zrpcd.service <<EOF
-[Unit]
-Description=ZRPC daemon for quagga
-After=network.service
-
-[Service]
-ExecStart=/usr/sbin/zrpcd
-Type=simple
-ExecStartPre=-/usr/bin/mkdir /var/run/quagga/
-ExecStartPre=/usr/bin/chown -R quagga:quagga /var/run/quagga/
-PIDFile=/var/run/zrpcd.pid
-
-[Install]
-WantedBy=default.target
-EOF
- cp zrpcd-*.tar.gz $rpmbuild/SOURCES/
- cp ${BUILD_ROOT}/rpm_specs/zrpc.spec $rpmbuild/SPECS/
- rpmbuild --define "_topdir $rpmbuild" -ba $rpmbuild/SPECS/zrpc.spec
-}
-
-# Main
-parse_cmdline "$@"
-
-# Check env vars
-if [ -z "$QUAGGA_BUILD_DIR" ]; then
- echo "ERROR: You must set QUAGGA_BUILD_DIR env variable as the location to build!"
- exit 1
-elif [ -z "$QUAGGA_RPMS_DIR" ]; then
- echo "WARN: QUAGGA_RPMS_DIR env var is not set, will default to QUAGGA_BUILD_DIR/rpmbuild"
- rpmbuild=${QUAGGA_BUILD_DIR}/rpmbuild
-else
- rpmbuild=${QUAGGA_RPMS_DIR}
-fi
-
-if [ -z "$BUILD_ROOT" ]; then
- echo "WARN: BUILD_ROOT env var not set, will default to $(pwd)"
- BUILD_ROOT=$(pwd)
-fi
-
-if [ -z "$PATCHES_DIR" ]; then
- echo "WARN: PATCHES_DIR env var not set, will default to ${BUILD_ROOT}/patches"
- PATCHES_DIR=${BUILD_ROOT}/patches
-fi
-
-if [ -n "$CLEAN" ]; then
- quagga_clean
-fi
-
-install_quagga_build_deps
-
-mkdir -p ${QUAGGA_BUILD_DIR}
-mkdir -p $rpmbuild $rpmbuild/SOURCES $rpmbuild/SPECS $rpmbuild/RPMS
-pushd $QUAGGA_BUILD_DIR > /dev/null
-
-case "$ARTIFACT" in
- thrift)
- build_thrift
- ;;
- capnproto)
- build_capnproto
- ;;
- quagga)
- build_quagga
- ;;
- zrpc)
- build_zrpc
- ;;
- *)
- build_thrift
- build_capnproto
- build_quagga
- build_zprc
- ;;
-esac
-
-popd > /dev/null
diff --git a/build/c7-opnfv-x86_64-comps.xml b/build/c7-opnfv-x86_64-comps.xml
deleted file mode 100644
index b76143da..00000000
--- a/build/c7-opnfv-x86_64-comps.xml
+++ /dev/null
@@ -1,7995 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE comps PUBLIC "-//CentOS//DTD Comps info//EN" "comps.dtd">
-<comps>
- <group>
- <id>apex-opendaylight</id>
- <name>OPNFV Apex OpenDaylight Support</name>
- <description>Disk images and configuration files used to launch an Apex OpenDaylight deployment.</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">opnfv-apex</packagereq>
- <packagereq type="mandatory">opnfv-common</packagereq>
- <packagereq type="mandatory">opnfv-undercloud</packagereq>
- </packagelist>
- </group>
- <group>
- <id>apex-onos</id>
- <name>OPNFV Apex ONOS Support</name>
- <description>Disk images and configuration files used to launch an Apex ONOS deployment.</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">opnfv-apex-onos</packagereq>
- <packagereq type="mandatory">opnfv-common</packagereq>
- <packagereq type="mandatory">opnfv-undercloud</packagereq>
- </packagelist>
- </group>
- <group>
- <id>additional-devel</id>
- <name>Additional Development</name>
- <name xml:lang="as">অতিৰিক্ত উন্নয়ন</name>
- <name xml:lang="bn">অতিরিক্ত ডিভেলপমেন্ট</name>
- <name xml:lang="bn_IN">অতিরিক্ত ডিভেলপমেন্ট</name>
- <name xml:lang="cs">Doplňky pro vývoj</name>
- <name xml:lang="de">Zusätzliche Entwicklung</name>
- <name xml:lang="es">Desarrollo adicional</name>
- <name xml:lang="fr">Développement supplémentaire</name>
- <name xml:lang="gu">વધારાનાં વિકાસ</name>
- <name xml:lang="hi">अतिरिक्त विकास</name>
- <name xml:lang="ia">Disveloppamento additional</name>
- <name xml:lang="it">Sviluppo aggiuntivo</name>
- <name xml:lang="ja">その他の開発</name>
- <name xml:lang="kn">ಹೆಚ್ಚುವರಿ ವಿಕಸನೆ</name>
- <name xml:lang="ko">추가 개발</name>
- <name xml:lang="ml">അധികമായ ഡവലപ്പ്മെന്റ്</name>
- <name xml:lang="mr">अगाऊ डेव्हलपमेंट</name>
- <name xml:lang="or">ଅତିରିକ୍ତ ସର୍ଭର ବିକାଶ</name>
- <name xml:lang="pa">ਵਧੀਕ ਵਿਕਾਸ</name>
- <name xml:lang="pl">Dodatkowe programowanie</name>
- <name xml:lang="pt_BR">Desenvolvimento adicional</name>
- <name xml:lang="ru">Дополнительные средства разработки</name>
- <name xml:lang="sv">Ytterligare utveckling</name>
- <name xml:lang="ta">கூடுதல் உருவாக்கம்</name>
- <name xml:lang="te">అదనపు అభివృద్ది</name>
- <name xml:lang="uk">Додаткові інструменти розробки</name>
- <name xml:lang="zh_CN">附加开发</name>
- <name xml:lang="zh_TW">額外開發</name>
- <description>Additional development headers and libraries for building open-source applications.</description>
- <description xml:lang="cs">Doplňkové knihovny a hlavičkové soubory pro sestavování aplikací.</description>
- <description xml:lang="de">Zusätzliche Entwicklungs-Header und -Bibliotheken zur Entwicklung von Open-Source-Applikationen.</description>
- <description xml:lang="es">Encabezados adicionales y bibliotecas para compilar aplicaciones de código abierto.</description>
- <description xml:lang="fr">En-têtes et bibliothèques de développement supplémentaires pour créer des applications open source.</description>
- <description xml:lang="gu">ઓપન-સોર્સ કાર્યક્રમો બાંધવા માટેની વધારાની વિકાસ હેડરો અને લાઇબ્રેરીઓ.</description>
- <description xml:lang="hi">मुक्त स्रोत अनुप्रयोगों के विकास के लिए अतिरिक्त विकास शीर्षिका और लाइब्रेरी.</description>
- <description xml:lang="it">Librerie e intestazioni per uno sviluppo aggiuntivo per la compilazione di applicazioni open-source.</description>
- <description xml:lang="ja">オープンソースアプリケーション構築用のその他開発ヘッダーとライブラリです。</description>
- <description xml:lang="kn">ಮುಕ್ತ-ತಂತ್ರಾಂಶ ಅನ್ವಯಗಳನ್ನು ನಿರ್ಮಿಸಲು ಹೆಚ್ಚುವರಿ ವಿಕಸನಾ ಹೆಡರುಗಳು ಹಾಗು ಲೈಬ್ರರಿಗಳು.</description>
- <description xml:lang="ko">오픈 소스 애플리케이션 구축을 위한 기타 개발 헤더 및 라이브러리입니다.</description>
- <description xml:lang="ml">ഓപ്പണ്‍-സോഴ്സ് പ്രയോഗങ്ങള്‍ തയ്യാറാക്കുന്നതിനുള്ള അധികമായ വികസന ഹെഡറുകളും ലൈബ്രറികളും.</description>
- <description xml:lang="mr">ओपन-सोअर्स ॲप्लिकेशन्सच्या बांधणीकरिता अगाऊ डेव्हलपमेंट हेडर्स.</description>
- <description xml:lang="or">ଅତିରିକ୍ତ ବିକାଶ ଶୀର୍ଷକ ଏବଂ ମୁକ୍ତ ଉତ୍ସ ପ୍ରୟୋଗଗୁଡ଼ିକର ନିର୍ମାଣ ପାଇଁ ଗ୍ରନ୍ଥାଳୟ।</description>
- <description xml:lang="pa">ਓਪਨ-ਸਰੋਤ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੀ ਉਸਾਰੀ ਲਈ ਵਧੀਕ ਵਿਕਾਸ ਹੈਡਰ ਅਤੇ ਲਾਇਬਰੇਰੀਆਂ।</description>
- <description xml:lang="pl">Dodatkowe nagłówki i biblioteki do rozwijania aplikacji open source.</description>
- <description xml:lang="pt_BR">Cabeçalhos de desenvolvimento adiiconal e bibliotecas para construir aplicativos de fonte aberta.</description>
- <description xml:lang="ru">Дополнительные библиотеки и файлы заголовков для разработки приложений с открытым кодом.</description>
- <description xml:lang="ta">திற மூல பயன்பாடுகளை உருவாக்குவதற்காக கூடுதல் உருவாக்க தலைப்புகள் மற்றும் தரவகங்கள்.</description>
- <description xml:lang="te">ఓపెన్-సోర్స్ అనువర్తనాలను నిర్మించుటకు అదనపు అభివృద్ది పీఠికలు మరియు లైబ్రరీలు.</description>
- <description xml:lang="uk">Додаткові пакунки з заголовками та бібліотеками для розробки програмного забезпечення з відкритим кодом.</description>
- <description xml:lang="zh_CN">用于构建开源应用程序的附加开发标头及程序可。</description>
- <description xml:lang="zh_TW">用來建置開放式原始碼應用程式的應用程式開發表頭與函式庫。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">alsa-lib-devel</packagereq>
- <packagereq type="mandatory">audit-libs-devel</packagereq>
- <packagereq type="mandatory">binutils-devel</packagereq>
- <packagereq type="mandatory">boost-devel</packagereq>
- <packagereq type="mandatory">bzip2-devel</packagereq>
- <packagereq type="mandatory">c-ares-devel</packagereq>
- <packagereq type="mandatory">cups-devel</packagereq>
- <packagereq type="mandatory">cyrus-sasl-devel</packagereq>
- <packagereq type="mandatory">dbus-glib-devel</packagereq>
- <packagereq type="mandatory">e2fsprogs-devel</packagereq>
- <packagereq type="mandatory">elfutils-devel</packagereq>
- <packagereq type="mandatory">elfutils-libelf-devel</packagereq>
- <packagereq type="mandatory">evolution-data-server-devel</packagereq>
- <packagereq type="mandatory">expat-devel</packagereq>
- <packagereq type="mandatory">freeglut-devel</packagereq>
- <packagereq type="mandatory">fuse-devel</packagereq>
- <packagereq type="mandatory">gmp-devel</packagereq>
- <packagereq type="mandatory">gnome-desktop3-devel</packagereq>
- <packagereq type="mandatory">gnutls-devel</packagereq>
- <packagereq type="mandatory">gstreamer1-devel</packagereq>
- <packagereq type="mandatory">gstreamer1-plugins-base-devel</packagereq>
- <packagereq type="mandatory">gvfs-devel</packagereq>
- <packagereq type="mandatory">hmaccalc</packagereq>
- <packagereq type="mandatory">httpd-devel</packagereq>
- <packagereq type="mandatory">hunspell-devel</packagereq>
- <packagereq type="mandatory">iptables-devel</packagereq>
- <packagereq type="mandatory">java-1.6.0-openjdk-devel</packagereq>
- <packagereq type="mandatory">java-1.7.0-openjdk-devel</packagereq>
- <packagereq type="mandatory">java-1.8.0-openjdk-devel</packagereq>
- <packagereq type="mandatory">junit</packagereq>
- <packagereq type="mandatory">kde-workspace-devel</packagereq>
- <packagereq type="mandatory">kdegraphics-devel</packagereq>
- <packagereq type="mandatory">kdelibs-devel</packagereq>
- <packagereq type="mandatory">kdenetwork-devel</packagereq>
- <packagereq type="mandatory">kdepim-devel</packagereq>
- <packagereq type="mandatory">kdepimlibs-devel</packagereq>
- <packagereq type="mandatory">kdesdk-devel</packagereq>
- <packagereq type="mandatory">libacl-devel</packagereq>
- <packagereq type="mandatory">libaio-devel</packagereq>
- <packagereq type="mandatory">libatomic-static</packagereq>
- <packagereq type="mandatory">libattr-devel</packagereq>
- <packagereq type="mandatory">libblkid-devel</packagereq>
- <packagereq type="mandatory">libcanberra-devel</packagereq>
- <packagereq type="mandatory">libcap-devel</packagereq>
- <packagereq type="mandatory">libcap-ng-devel</packagereq>
- <packagereq type="mandatory">libcurl-devel</packagereq>
- <packagereq type="mandatory">libdrm-devel</packagereq>
- <packagereq type="mandatory">libgcrypt-devel</packagereq>
- <packagereq type="mandatory">libgnome-keyring-devel</packagereq>
- <packagereq type="mandatory">libgudev1-devel</packagereq>
- <packagereq type="mandatory">libhugetlbfs-devel</packagereq>
- <packagereq type="mandatory">libitm-devel</packagereq>
- <packagereq type="mandatory">libnl-devel</packagereq>
- <packagereq type="mandatory">libnotify-devel</packagereq>
- <packagereq type="mandatory">libpfm-devel</packagereq>
- <packagereq type="mandatory">librsvg2-devel</packagereq>
- <packagereq type="mandatory">libselinux-devel</packagereq>
- <packagereq type="mandatory">libsoup-devel</packagereq>
- <packagereq type="mandatory">libtiff-devel</packagereq>
- <packagereq type="mandatory">libusbx-devel</packagereq>
- <packagereq type="mandatory">libuuid-devel</packagereq>
- <packagereq type="mandatory">libXau-devel</packagereq>
- <packagereq type="mandatory">libXaw-devel</packagereq>
- <packagereq type="mandatory">libXinerama-devel</packagereq>
- <packagereq type="mandatory">libXmu-devel</packagereq>
- <packagereq type="mandatory">libXpm-devel</packagereq>
- <packagereq type="mandatory">libXrandr-devel</packagereq>
- <packagereq type="mandatory">libxslt-devel</packagereq>
- <packagereq type="mandatory">mariadb-devel</packagereq>
- <packagereq type="mandatory">motif-devel</packagereq>
- <packagereq type="mandatory">mpfr-devel</packagereq>
- <packagereq type="mandatory">net-snmp-devel</packagereq>
- <packagereq type="mandatory">numactl-devel</packagereq>
- <packagereq type="mandatory">openlmi-providers-devel</packagereq>
- <packagereq type="mandatory">papi-devel</packagereq>
- <packagereq type="mandatory">pcre-devel</packagereq>
- <packagereq type="mandatory">perl-App-cpanminus</packagereq>
- <packagereq type="mandatory">perl-devel</packagereq>
- <packagereq type="mandatory">perl-ExtUtils-MakeMaker</packagereq>
- <packagereq type="mandatory">perl-homedir</packagereq>
- <packagereq type="mandatory">perl-Test-Pod</packagereq>
- <packagereq type="mandatory">perl-Test-Pod-Coverage</packagereq>
- <packagereq type="mandatory">polkit-devel</packagereq>
- <packagereq type="mandatory">popt-devel</packagereq>
- <packagereq type="mandatory">postgresql-devel</packagereq>
- <packagereq type="mandatory">pulseaudio-libs-devel</packagereq>
- <packagereq type="mandatory">pygobject3-devel</packagereq>
- <packagereq type="mandatory">PyQt4-devel</packagereq>
- <packagereq type="mandatory">python-devel</packagereq>
- <packagereq type="mandatory">python-setuptools</packagereq>
- <packagereq type="mandatory">qt-mysql</packagereq>
- <packagereq type="mandatory">qt-odbc</packagereq>
- <packagereq type="mandatory">qt-postgresql</packagereq>
- <packagereq type="mandatory">qt3-MySQL</packagereq>
- <packagereq type="mandatory">qt3-ODBC</packagereq>
- <packagereq type="mandatory">qt3-PostgreSQL</packagereq>
- <packagereq type="mandatory">rdma-core-devel</packagereq>
- <packagereq type="mandatory">readline-devel</packagereq>
- <packagereq type="mandatory">sane-backends-devel</packagereq>
- <packagereq type="mandatory">SDL-devel</packagereq>
- <packagereq type="mandatory">sqlite-devel</packagereq>
- <packagereq type="mandatory">startup-notification-devel</packagereq>
- <packagereq type="mandatory">systemd-devel</packagereq>
- <packagereq type="mandatory">tbb-devel</packagereq>
- <packagereq type="mandatory">tcl-devel</packagereq>
- <packagereq type="mandatory">tcp_wrappers-devel</packagereq>
- <packagereq type="mandatory">tk-devel</packagereq>
- <packagereq type="mandatory">unique3-devel</packagereq>
- <packagereq type="mandatory">unixODBC-devel</packagereq>
- <packagereq type="mandatory">xorg-x11-proto-devel</packagereq>
- <packagereq type="mandatory">xz-devel</packagereq>
- <packagereq type="optional">flatpak</packagereq>
- <packagereq type="optional">subversion-gnome</packagereq>
- </packagelist>
- </group>
- <group>
- <id>anaconda-tools</id>
- <name>Anaconda Tools</name>
- <name xml:lang="as">Anaconda সঁজুলিসমূহ</name>
- <name xml:lang="bn_IN">Anaconda সরঞ্জাম</name>
- <name xml:lang="cs">Nástroje instalátoru Anaconda</name>
- <name xml:lang="de">Anaconda-Werkzeuge</name>
- <name xml:lang="es">Herramientas de Anaconda</name>
- <name xml:lang="fr">Outils Anaconda</name>
- <name xml:lang="gu">એનાકોન્ડા સાધનો</name>
- <name xml:lang="hi">एनाकोंडा औज़ार</name>
- <name xml:lang="it">Strumenti di Anaconda</name>
- <name xml:lang="ja">Anaconda ツール</name>
- <name xml:lang="kn">Anaconda ಉಪಕರಣಗಳು</name>
- <name xml:lang="ko">Anaconda 도구</name>
- <name xml:lang="ml">അനക്കോണ്ട പ്രയോഗങ്ങള്‍</name>
- <name xml:lang="mr">ॲनाकाँडा साधने</name>
- <name xml:lang="or">Anaconda ସାଧନଗୁଡ଼ିକ</name>
- <name xml:lang="pa">ਐਨਾਕੋਂਡਾ ਸੰਦ</name>
- <name xml:lang="pl">Narzędzia dla instalatora Anaconda</name>
- <name xml:lang="pt_BR">Ferramentas do Anaconda</name>
- <name xml:lang="ru">Инструменты Anaconda.</name>
- <name xml:lang="ta">Anaconda கருவிகள்</name>
- <name xml:lang="te">అనకొండ సాధనాలు</name>
- <name xml:lang="uk">Інструменти Anaconda</name>
- <name xml:lang="zh_CN">Anaconda 工具</name>
- <name xml:lang="zh_TW">Anaconda 工具</name>
- <description/>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">authconfig</packagereq>
- <packagereq type="mandatory">btrfs-progs</packagereq>
- <packagereq type="mandatory">chkconfig</packagereq>
- <packagereq type="mandatory">chrony</packagereq>
- <packagereq type="mandatory">cryptsetup</packagereq>
- <packagereq type="mandatory">device-mapper-multipath</packagereq>
- <packagereq type="mandatory">dmraid</packagereq>
- <packagereq type="mandatory">dosfstools</packagereq>
- <packagereq type="mandatory">dracut-network</packagereq>
- <packagereq type="mandatory">e2fsprogs</packagereq>
- <packagereq type="mandatory">efibootmgr</packagereq>
- <packagereq type="mandatory">fcoe-utils</packagereq>
- <packagereq type="mandatory">firewalld</packagereq>
- <packagereq type="mandatory">gfs2-utils</packagereq>
- <packagereq type="mandatory">iscsi-initiator-utils</packagereq>
- <packagereq type="mandatory">lvm2</packagereq>
- <packagereq type="mandatory">mdadm</packagereq>
- <packagereq type="mandatory">system-config-firewall-base</packagereq>
- <packagereq type="mandatory">tboot</packagereq>
- <packagereq type="mandatory">tmux</packagereq>
- <packagereq type="mandatory">xfsprogs</packagereq>
- <packagereq type="default">grub2</packagereq>
- <packagereq type="default">shim-x64</packagereq>
- <packagereq type="optional">dbxtool</packagereq>
- <packagereq type="optional">grub2-efi-ia32</packagereq>
- <packagereq type="optional">grub2-efi-ia32-modules</packagereq>
- <packagereq type="optional">grub2-efi-x64</packagereq>
- <packagereq type="optional">grub2-efi-x64-modules</packagereq>
- <packagereq type="optional">grub2-pc</packagereq>
- <packagereq type="optional">oscap-anaconda-addon</packagereq>
- <packagereq type="optional">shim-ia32</packagereq>
- <packagereq type="optional">shim-unsigned-ia32</packagereq>
- <packagereq type="optional">shim-unsigned-x64</packagereq>
- </packagelist>
- </group>
- <group>
- <id>backup-client</id>
- <name>Backup Client</name>
- <name xml:lang="as">বেক-আপ ক্লাএন্ট</name>
- <name xml:lang="bn">ব্যাক-আপ ক্লায়েন্ট</name>
- <name xml:lang="bn_IN">ব্যাক-আপ ক্লায়েন্ট</name>
- <name xml:lang="cs">Zálohovací klient</name>
- <name xml:lang="de">Backup-Client</name>
- <name xml:lang="es">Cliente de respaldo</name>
- <name xml:lang="eu">Babeskopia-bezeroa</name>
- <name xml:lang="fr">Client de sauvegarde</name>
- <name xml:lang="gu">બેકઅપ ક્લાયન્ટ</name>
- <name xml:lang="hi">बैकअप क्लाइंट</name>
- <name xml:lang="ia">Cliente de retrocopiage</name>
- <name xml:lang="it">Client di backup</name>
- <name xml:lang="ja">バックアップクライアント</name>
- <name xml:lang="kn">ಬ್ಯಾಕ್ಅಪ್ ಕ್ಲೈಂಟ್</name>
- <name xml:lang="ko">백업 클라이언트</name>
- <name xml:lang="ml">ബാക്കപ്പ് ക്ലയന്റ്</name>
- <name xml:lang="mr">बॅकअप क्लाएंट</name>
- <name xml:lang="or">ନକଲ ସଂରକ୍ଷଣ କ୍ଲାଏଣ୍ଟ</name>
- <name xml:lang="pa">ਬੈਕਅੱਪ ਕਲਾਂਈਟ</name>
- <name xml:lang="pl">Klient kopii zapasowych</name>
- <name xml:lang="pt_BR">Cliente Backup</name>
- <name xml:lang="ru">Резервный клиент</name>
- <name xml:lang="sv">Säkerhetskopieringsklient</name>
- <name xml:lang="ta">பின்சேமிப்பு வாடிக்கையாளர்</name>
- <name xml:lang="te">బ్యాకప్ క్లైంట్</name>
- <name xml:lang="uk">Клієнт резервного копіювання</name>
- <name xml:lang="zh_CN">备份客户端</name>
- <name xml:lang="zh_TW">備份客戶端</name>
- <description>Client tools for connecting to a backup server and doing backups.</description>
- <description xml:lang="as">বেক-আপ চাৰ্ভাৰৰ সৈতে সংযোগ স্থাপন কৰি বেক-আপ কৰাৰ বাবে ক্লাএন্ট সঁজুলিসমূহ।</description>
- <description xml:lang="bn">ব্যাক-আপ সার্ভারের সাথে সংযোগ স্থাপন করে ব্যাক-আপ করার জন্য ব্যবহারযোগ্য ক্লায়েন্ট প্রান্তের সরঞ্জাম।</description>
- <description xml:lang="bn_IN">ব্যাক-আপ সার্ভারের সাথে সংযোগ স্থাপন করে ব্যাক-আপ করার জন্য ব্যবহারযোগ্য ক্লায়েন্ট প্রান্তের সরঞ্জাম।</description>
- <description xml:lang="cs">Klientské nástroje pro přístup na zálohovací servery a provádění záloh.</description>
- <description xml:lang="de">Client-Tools zur Verbindung mit einem Backup-Server und zur Durchführung von Backups.</description>
- <description xml:lang="es">Herramientas de cliente para conectarse a un servidor de respaldo y hacer copias de seguridad.</description>
- <description xml:lang="fr">Outils client pour connecter à un serveur de sauvegarde et faire des copies de sauvegarde.</description>
- <description xml:lang="gu">બેકઅપ સર્વર સાથે જોડાવવા માટે ક્લાયન્ટ સાધન અને બેકઅપ લઇ રહ્યા છે.</description>
- <description xml:lang="hi">किसी बैकअप सर्वर से कनेक्ट करने और बैकअप लेने के लिए क्लाइंट.</description>
- <description xml:lang="ia">Utensiles pro connecter al servitor de retrocopias e exequer salvamento de datos.</description>
- <description xml:lang="it">Tool del client per il collegamento ad un server di backup ed esecuzione di backup.</description>
- <description xml:lang="ja">バックアップサーバーに接続しバックアップを実行するためのクライアントツール</description>
- <description xml:lang="kn">ಬ್ಯಾಕ್ಅಪ್ ಪೂರೈಕೆಗಣಕದೊಂದಿಗೆ ಸಂಪರ್ಕಸಾಧಿಸಲು ಹಾಗು ಬ್ಯಾಕ್ಅಪ್ ಅನ್ನು ನಿರ್ವಹಿಸಲು ಬಳಸಲಾಗುವ ಬ್ಯಾಕ್ಅಪ್ ಉಪಕರಣಗಳು.</description>
- <description xml:lang="ko">백업 서버에 접속하고 백업을 수행하기 위한 클라이언트 도구</description>
- <description xml:lang="ml">ബാക്കപ്പ് സര്‍വറിലേക്ക് കണക്ട് ചെയ്തു് ബാക്കപ്പുകള്‍ എടുക്കുന്നതിനുള്ള ക്ലയന്റ് ഉപകരണങ്ങള്‍.</description>
- <description xml:lang="mr">बॅकअप सर्व्हरशी जोडणी करण्यासाठी व बॅकअप्स् करीता क्लाएंट साधने.</description>
- <description xml:lang="or">ନକଲ ସଂରକ୍ଷଣ ସର୍ଭର ସହିତ ସଂଯୋଗ କରି ନକଲ ସଂରକ୍ଷଣ କରିବା ପାଇଁ କ୍ଲାଏଣ୍ଟ ସାଧନଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">ਬੈਕਅੱਪ ਸਰਵਰ ਨਾਲ ਜੁੜਨ ਅਤੇ ਬੈਕਅੱਪ ਲੈਣ ਲਈ ਕਲਾਂਈਟ ਟੂਲ।</description>
- <description xml:lang="pl">Narzędzia klienckie do łączenia się z serwerem kopii zapasowych i wykonywanie kopii zapasowych.</description>
- <description xml:lang="pt_BR">Ferramentas de cliente para conectar ao servidor de backup e para fazer backups.</description>
- <description xml:lang="ru">Инструменты клиента для подключения к резервному серверу и создания резервных копий.</description>
- <description xml:lang="sv">Klientverktyg för att ansluta till en säkerhetskopieringsserver och göra säkerhetskopior.</description>
- <description xml:lang="ta">ஒரு பின்சேமிப்பு சேவையகம் மற்றும் பின்சேமிப்புகளை செய்தலை இணைப்பற்கான வாடிக்கையாளர் கருவிகள்.</description>
- <description xml:lang="te">బ్యాకప్ సర్వర్‌కు అనుసంధానమగుటకు మరియు బ్యాకప్స్ తీయుటకు క్లైంట్ సాధనములు.</description>
- <description xml:lang="uk">Клієнтські програми для встановлення з’єднання з сервером резервного копіювання та створення резервних копій.</description>
- <description xml:lang="zh_CN">用来连接到备份服务器并进行备份的客户端工具。</description>
- <description xml:lang="zh_TW">用來連至備份伺服器並進行備份的客戶端工具。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">amanda-client</packagereq>
- <packagereq type="optional">bacula-client</packagereq>
- <packagereq type="optional">rear</packagereq>
- </packagelist>
- </group>
- <group>
- <id>backup-server</id>
- <name>Backup Server</name>
- <name xml:lang="as">বেক-আপ চাৰ্ভাৰ</name>
- <name xml:lang="bn">ব্যাক-আপ সার্ভার</name>
- <name xml:lang="bn_IN">ব্যাক-আপ সার্ভার</name>
- <name xml:lang="cs">Zálohovací server</name>
- <name xml:lang="de">Backup-Server</name>
- <name xml:lang="es">Servidor de respaldo</name>
- <name xml:lang="eu">Babeskopia-zerbitzaria</name>
- <name xml:lang="fr">Serveur de sauvegarde</name>
- <name xml:lang="gu">બેકઅપ સર્વર</name>
- <name xml:lang="hi">बैकअप सर्वर</name>
- <name xml:lang="ia">Servitor de retrocopias</name>
- <name xml:lang="it">Server di backup</name>
- <name xml:lang="ja">バックアップサーバー</name>
- <name xml:lang="kn">ಬ್ಯಾಕ್ಅಪ್ ಪೂರೈಕೆಗಣಕ</name>
- <name xml:lang="ko">백업 서버</name>
- <name xml:lang="ml">ബാക്കപ്പ് സര്‍വര്‍</name>
- <name xml:lang="mr">बॅकअप सर्व्हर</name>
- <name xml:lang="or">ନକଲ ସଂରକ୍ଷଣ ସର୍ଭର</name>
- <name xml:lang="pa">ਬੈਕਅੱਪ ਸਰਵਰ</name>
- <name xml:lang="pl">Serwer kopii zapasowych</name>
- <name xml:lang="pt_BR">Servidor de backup</name>
- <name xml:lang="ru">Резервный сервер</name>
- <name xml:lang="sv">Säkerhetskopieringsserver</name>
- <name xml:lang="ta">பின்சேமிப்பு சேவையகம்</name>
- <name xml:lang="te">బ్యాకప్ సర్వర్</name>
- <name xml:lang="uk">Сервер резервування</name>
- <name xml:lang="zh_CN">备份服务器</name>
- <name xml:lang="zh_TW">備份伺服器</name>
- <description>Software to centralize your infrastructure's backups.</description>
- <description xml:lang="as">আন্তঃগাথনীত বেক-আপ কেন্দ্ৰস্থিত কৰাৰ বাবে ব্যৱহাৰযোগ্য চফ্টৱেৰ।</description>
- <description xml:lang="bn">পরিকাঠামোর মধ্যে ব্যাক-আপ কেন্দ্রস্থিত করার জন্য ব্যবহারযোগ্য সফ্টওয়্যার।</description>
- <description xml:lang="bn_IN">পরিকাঠামোর মধ্যে ব্যাক-আপ কেন্দ্রস্থিত করার জন্য ব্যবহারযোগ্য সফ্টওয়্যার।</description>
- <description xml:lang="cs">Software centralizující zálohy vaší infrastruktury.</description>
- <description xml:lang="de">Software zur Zentralisierung Ihrer Infrastruktur-Datensicherungen.</description>
- <description xml:lang="es">Software para centralizar sus respaldos de infraestructura.</description>
- <description xml:lang="fr">Logiciel pour la centralisation des copies de sauvegarde de votre infrastructure.</description>
- <description xml:lang="gu">તમારા ઇન્ફ્રાસ્ટ્રક્ચરનાં બેકઅપને કેન્દ્રિત કરવા માટે સોફ્ટવેર.</description>
- <description xml:lang="hi">आपके बुनियादी ढाँचा के बैकअप के केंद्रीकरण के लिए सॉफ्टवेयर.</description>
- <description xml:lang="ia">Software pro centralisar le infrastructura de retrocopiage.</description>
- <description xml:lang="it">Software per la centralizzazione dei backup della tua infrastruttura.</description>
- <description xml:lang="ja">インフラストラクチャのバックアップを集中化するソフトウェアです。</description>
- <description xml:lang="kn">ನಿಮ್ಮ ಮೂಲಭೂತ ವ್ಯವಸ್ಥೆಯ ಬ್ಯಾಕ್ಅಪ್‌ಗಳನ್ನು ಕೇಂದ್ರ ವ್ಯವಸ್ಥೆಯನ್ನು ಕೇಂದ್ರೀಕರಣ ವ್ಯವಸ್ಥೆಯಾಗಿಸುವ ತಂತ್ರಾಂಶ.</description>
- <description xml:lang="ko">인프라스트럭쳐 백업을 중앙 집중화 하기 위한 소프트웨어.</description>
- <description xml:lang="ml">നിങ്ങളുടെ ഇന്‍ഫ്രാസ്ട്രക്ചറിനുള്ള ബാക്കപ്പ് കേന്ദ്രീകരിക്കുന്നതിനുള്ള സോഫ്റ്റ്‌വെയര്‍.</description>
- <description xml:lang="mr">इंफ्रास्ट्रक्चरचे बॅकअप सेंट्रलाइज करण्यासाठी सॉफ्टवेअर.</description>
- <description xml:lang="or">ଆପଣଙ୍କର ଅବସଂରଚନାର ନକଲ ସଂରକ୍ଷଣକୁ କ୍ରେନ୍ଦ୍ରିତ କରିବା ପାଇଁ ସଫ୍ଟୱେର।</description>
- <description xml:lang="pa">ਤੁਹਾਡੇਂ ਢਾਂਚੇ ਦੇ ਬੈਕਅੱਪ ਨੂੰ ਕੇਂਦਰੀ ਬਣਾਉਣ ਲਈ ਸਾਫਟਵੇਅਰ।</description>
- <description xml:lang="pl">Oprogramowanie do centralizacji kopii zapasowych infrastruktury.</description>
- <description xml:lang="pt_BR">Software para centralizar seus backups de infraestrutura.</description>
- <description xml:lang="ru">Программы для централизованного создания резервных копий.</description>
- <description xml:lang="sv">Program för att centralisera din infrastrukturs säkerhetskopior.</description>
- <description xml:lang="ta">உங்கள் தனிப்பட்ட பின்சேமிப்புகளை சீராக்குவதற்கான மென்பொருள்.</description>
- <description xml:lang="te">మీ అవస్థాపన(ఇన్ఫ్రాస్ట్రక్చర్) యొక్క బ్యాకప్సును కేంద్రీకరించుటకు సాఫ్టువేరు.</description>
- <description xml:lang="uk">Програми для централізованого керування вашою інфраструктурою резервних копій.</description>
- <description xml:lang="zh_CN">集中管理基础设施备份的软件。</description>
- <description xml:lang="zh_TW">用來中央化您架構備份的軟體。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">amanda-server</packagereq>
- <packagereq type="mandatory">mt-st</packagereq>
- <packagereq type="mandatory">mtx</packagereq>
- </packagelist>
- </group>
- <group>
- <id>base</id>
- <name>Base</name>
- <name xml:lang="af">Basis</name>
- <name xml:lang="am">መሠረት</name>
- <name xml:lang="ar">أساسيّة</name>
- <name xml:lang="as">ভিত্তি</name>
- <name xml:lang="bal">اساس</name>
- <name xml:lang="be">Падмурак</name>
- <name xml:lang="bg">Основа</name>
- <name xml:lang="bn">ভিত্তি (Base)</name>
- <name xml:lang="bn_IN">ভিত্তি (Base)</name>
- <name xml:lang="bs">Osnova</name>
- <name xml:lang="ca">Bàsic</name>
- <name xml:lang="cs">Základ</name>
- <name xml:lang="cy">Sail</name>
- <name xml:lang="da">Base</name>
- <name xml:lang="de">Basis</name>
- <name xml:lang="el">Βάση</name>
- <name xml:lang="en_GB">Base</name>
- <name xml:lang="es">Base</name>
- <name xml:lang="et">Baas</name>
- <name xml:lang="fa">پایه</name>
- <name xml:lang="fi">Peruspaketit</name>
- <name xml:lang="fr">Base</name>
- <name xml:lang="gu">આધાર</name>
- <name xml:lang="he">בסיס</name>
- <name xml:lang="hi">आधार</name>
- <name xml:lang="hr">Osnova</name>
- <name xml:lang="hu">Alap</name>
- <name xml:lang="hy">բազա</name>
- <name xml:lang="ia">Base</name>
- <name xml:lang="id">Dasar</name>
- <name xml:lang="is">Grunnur</name>
- <name xml:lang="it">Base</name>
- <name xml:lang="ja">ベース</name>
- <name xml:lang="ka">ძირითადი</name>
- <name xml:lang="kn">ಮೂಲ</name>
- <name xml:lang="ko">기본</name>
- <name xml:lang="lv">Pamatsistēma</name>
- <name xml:lang="mai">आधार</name>
- <name xml:lang="mk">Основни</name>
- <name xml:lang="ml">ബെയ്സ്</name>
- <name xml:lang="mr">आधार</name>
- <name xml:lang="ms">Asas</name>
- <name xml:lang="nb">Grunnpakker</name>
- <name xml:lang="ne">आधार</name>
- <name xml:lang="nl">Basis</name>
- <name xml:lang="no">Grunnpakker</name>
- <name xml:lang="nso">Motheo</name>
- <name xml:lang="or">ଆଧାର</name>
- <name xml:lang="pa">ਮੂਲ</name>
- <name xml:lang="pl">Część podstawowa</name>
- <name xml:lang="pt">Base</name>
- <name xml:lang="pt_BR">Base</name>
- <name xml:lang="ro">Bază</name>
- <name xml:lang="ru">Основные</name>
- <name xml:lang="si">පාදම</name>
- <name xml:lang="sk">Základ</name>
- <name xml:lang="sl">Osnovno</name>
- <name xml:lang="sq">Bazë</name>
- <name xml:lang="sr">Основа</name>
- <name xml:lang="sr@latin">Osnova</name>
- <name xml:lang="sr@Latn">Osnova</name>
- <name xml:lang="sv">Bas</name>
- <name xml:lang="ta">அடிப்படை</name>
- <name xml:lang="te">ఆధారం</name>
- <name xml:lang="tg">Асосҳо</name>
- <name xml:lang="th">พื้นฐาน</name>
- <name xml:lang="tr">Temel</name>
- <name xml:lang="uk">Основа</name>
- <name xml:lang="ur">مرکز</name>
- <name xml:lang="vi">Cở sở</name>
- <name xml:lang="zh_CN">基本</name>
- <name xml:lang="zh_TW">基礎</name>
- <name xml:lang="zu">Isiqu</name>
- <description>The basic installation of CentOS Linux.</description>
- <description xml:lang="as">CentOS Linux ৰ মৌলিক ইনস্টল।</description>
- <description xml:lang="bn">CentOS Linux-র মৌলিক ইনস্টলেশন।</description>
- <description xml:lang="bn_IN">CentOS Linux-র মৌলিক ইনস্টলেশন।</description>
- <description xml:lang="cs">Základní instalace systému CentOS Linux.</description>
- <description xml:lang="de">Die Basis-Installation von CentOS Linux.</description>
- <description xml:lang="es">Instalación básica de CentOS Linux.</description>
- <description xml:lang="fr">Installation de base de CentOS Linux.</description>
- <description xml:lang="gu">CentOS Linux નું આધાર સ્થાપન.</description>
- <description xml:lang="hi">CentOS Linux का मौलिक संस्थापन.</description>
- <description xml:lang="it">Installazione di base di CentOS Linux.</description>
- <description xml:lang="ja">CentOS Linux の基本インストール</description>
- <description xml:lang="kn">CentOS Linuxನ ಮೂಲಭೂತ ಅನುಸ್ಥಾಪನೆ.</description>
- <description xml:lang="ko">CentOS Linux 기본 설치.</description>
- <description xml:lang="ml">CentOS Linux-ന്റെ അടിസ്ഥാന ഇന്‍സ്റ്റലേഷന്‍.</description>
- <description xml:lang="mr">CentOS Linux चे मुळ प्रतिष्ठापन.</description>
- <description xml:lang="or">CentOS Linux ର ମୌଳିକ ସ୍ଥାପନା।</description>
- <description xml:lang="pa">CentOS Linux ਦੀ ਮੁਢਲੀ ਇੰਸਟਾਲੇਸ਼ਨ।</description>
- <description xml:lang="pl">Podstawowa instalacja systemu CentOS Linux.</description>
- <description xml:lang="pt_BR">A instalação básica do CentOS Linux</description>
- <description xml:lang="ru">Стандартная установка CentOS Linux.</description>
- <description xml:lang="sv">Grundinstallationen av CentOS Linux.</description>
- <description xml:lang="ta">CentOS Linuxன் அடிப்படை நிறுவல்.</description>
- <description xml:lang="te">CentOS Linux యొక్క ప్రాధమిక సంస్థాపన.</description>
- <description xml:lang="uk">Стандартне встановлення CentOS Linux.</description>
- <description xml:lang="zh_CN">红帽企业版 Linux 基本安装。</description>
- <description xml:lang="zh_TW">CentOS Linux 的基本安裝。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">acl</packagereq>
- <packagereq type="mandatory">at</packagereq>
- <packagereq type="mandatory">attr</packagereq>
- <packagereq type="mandatory">authconfig</packagereq>
- <packagereq type="mandatory">bc</packagereq>
- <packagereq type="mandatory">bind-utils</packagereq>
- <packagereq type="mandatory">centos-indexhtml</packagereq>
- <packagereq type="mandatory">cpio</packagereq>
- <packagereq type="mandatory">crda</packagereq>
- <packagereq type="mandatory">crontabs</packagereq>
- <packagereq type="mandatory">cyrus-sasl-plain</packagereq>
- <packagereq type="mandatory">dbus</packagereq>
- <packagereq type="mandatory">ed</packagereq>
- <packagereq type="mandatory">file</packagereq>
- <packagereq type="mandatory">logrotate</packagereq>
- <packagereq type="mandatory">lsof</packagereq>
- <packagereq type="mandatory">man-db</packagereq>
- <packagereq type="mandatory">net-tools</packagereq>
- <packagereq type="mandatory">ntsysv</packagereq>
- <packagereq type="mandatory">pciutils</packagereq>
- <packagereq type="mandatory">psacct</packagereq>
- <packagereq type="mandatory">quota</packagereq>
- <packagereq type="mandatory">setserial</packagereq>
- <packagereq type="mandatory">traceroute</packagereq>
- <packagereq type="mandatory">usb_modeswitch</packagereq>
- <packagereq type="conditional" requires="ruby">rubygem-abrt</packagereq>
- <packagereq type="default">abrt-addon-ccpp</packagereq>
- <packagereq type="default">abrt-addon-python</packagereq>
- <packagereq type="default">abrt-cli</packagereq>
- <packagereq type="default">abrt-console-notification</packagereq>
- <packagereq type="default">bash-completion</packagereq>
- <packagereq type="default">blktrace</packagereq>
- <packagereq type="default">bridge-utils</packagereq>
- <packagereq type="default">bzip2</packagereq>
- <packagereq type="default">chrony</packagereq>
- <packagereq type="default">cryptsetup</packagereq>
- <packagereq type="default">dmraid</packagereq>
- <packagereq type="default">dosfstools</packagereq>
- <packagereq type="default">ethtool</packagereq>
- <packagereq type="default">fprintd-pam</packagereq>
- <packagereq type="default">gnupg2</packagereq>
- <packagereq type="default">hunspell</packagereq>
- <packagereq type="default">hunspell-en</packagereq>
- <packagereq type="default">kpatch</packagereq>
- <packagereq type="default">ledmon</packagereq>
- <packagereq type="default">libaio</packagereq>
- <packagereq type="default">libreport-plugin-mailx</packagereq>
- <packagereq type="default">libstoragemgmt</packagereq>
- <packagereq type="default">lvm2</packagereq>
- <packagereq type="default">man-pages</packagereq>
- <packagereq type="default">man-pages-overrides</packagereq>
- <packagereq type="default">mdadm</packagereq>
- <packagereq type="default">mlocate</packagereq>
- <packagereq type="default">mtr</packagereq>
- <packagereq type="default">nano</packagereq>
- <packagereq type="default">ntpdate</packagereq>
- <packagereq type="default">pinfo</packagereq>
- <packagereq type="default">plymouth</packagereq>
- <packagereq type="default">pm-utils</packagereq>
- <packagereq type="default">rdate</packagereq>
- <packagereq type="default">rfkill</packagereq>
- <packagereq type="default">rng-tools</packagereq>
- <packagereq type="default">rsync</packagereq>
- <packagereq type="default">scl-utils</packagereq>
- <packagereq type="default">setuptool</packagereq>
- <packagereq type="default">smartmontools</packagereq>
- <packagereq type="default">sos</packagereq>
- <packagereq type="default">sssd-client</packagereq>
- <packagereq type="default">strace</packagereq>
- <packagereq type="default">sysstat</packagereq>
- <packagereq type="default">systemtap-runtime</packagereq>
- <packagereq type="default">tcpdump</packagereq>
- <packagereq type="default">tcsh</packagereq>
- <packagereq type="default">teamd</packagereq>
- <packagereq type="default">time</packagereq>
- <packagereq type="default">unzip</packagereq>
- <packagereq type="default">usbutils</packagereq>
- <packagereq type="default">vim-enhanced</packagereq>
- <packagereq type="default">virt-what</packagereq>
- <packagereq type="default">wget</packagereq>
- <packagereq type="default">which</packagereq>
- <packagereq type="default">words</packagereq>
- <packagereq type="default">xfsdump</packagereq>
- <packagereq type="default">xz</packagereq>
- <packagereq type="default">yum-langpacks</packagereq>
- <packagereq type="default">yum-utils</packagereq>
- <packagereq type="default">zip</packagereq>
- <packagereq type="optional">acpid</packagereq>
- <packagereq type="optional">audispd-plugins</packagereq>
- <packagereq type="optional">augeas</packagereq>
- <packagereq type="optional">brltty</packagereq>
- <packagereq type="optional">ceph-common</packagereq>
- <packagereq type="optional">cryptsetup-reencrypt</packagereq>
- <packagereq type="optional">device-mapper-persistent-data</packagereq>
- <packagereq type="optional">dos2unix</packagereq>
- <packagereq type="optional">dumpet</packagereq>
- <packagereq type="optional">fwupd</packagereq>
- <packagereq type="optional">fwupdate</packagereq>
- <packagereq type="optional">genisoimage</packagereq>
- <packagereq type="optional">gpm</packagereq>
- <packagereq type="optional">i2c-tools</packagereq>
- <packagereq type="optional">kabi-yum-plugins</packagereq>
- <packagereq type="optional">libatomic</packagereq>
- <packagereq type="optional">libcgroup</packagereq>
- <packagereq type="optional">libcgroup-tools</packagereq>
- <packagereq type="optional">libitm</packagereq>
- <packagereq type="optional">libstoragemgmt-netapp-plugin</packagereq>
- <packagereq type="optional">libstoragemgmt-nstor-plugin</packagereq>
- <packagereq type="optional">libstoragemgmt-smis-plugin</packagereq>
- <packagereq type="optional">libstoragemgmt-targetd-plugin</packagereq>
- <packagereq type="optional">libstoragemgmt-udev</packagereq>
- <packagereq type="optional">linuxptp</packagereq>
- <packagereq type="optional">logwatch</packagereq>
- <packagereq type="optional">mkbootdisk</packagereq>
- <packagereq type="optional">mtools</packagereq>
- <packagereq type="optional">ncurses-term</packagereq>
- <packagereq type="optional">ntp</packagereq>
- <packagereq type="optional">nvmetcli</packagereq>
- <packagereq type="optional">oddjob</packagereq>
- <packagereq type="optional">pax</packagereq>
- <packagereq type="optional">prelink</packagereq>
- <packagereq type="optional">PyPAM</packagereq>
- <packagereq type="optional">python-volume_key</packagereq>
- <packagereq type="optional">redhat-lsb-core</packagereq>
- <packagereq type="optional">redhat-upgrade-dracut</packagereq>
- <packagereq type="optional">redhat-upgrade-tool</packagereq>
- <packagereq type="optional">rsyslog-gnutls</packagereq>
- <packagereq type="optional">rsyslog-gssapi</packagereq>
- <packagereq type="optional">rsyslog-relp</packagereq>
- <packagereq type="optional">sgpio</packagereq>
- <packagereq type="optional">sox</packagereq>
- <packagereq type="optional">squashfs-tools</packagereq>
- <packagereq type="optional">star</packagereq>
- <packagereq type="optional">tmpwatch</packagereq>
- <packagereq type="optional">udftools</packagereq>
- <packagereq type="optional">usbguard</packagereq>
- <packagereq type="optional">uuidd</packagereq>
- <packagereq type="optional">volume_key</packagereq>
- <packagereq type="optional">wodim</packagereq>
- <packagereq type="optional">x86info</packagereq>
- <packagereq type="optional">yum-plugin-aliases</packagereq>
- <packagereq type="optional">yum-plugin-changelog</packagereq>
- <packagereq type="optional">yum-plugin-tmprepo</packagereq>
- <packagereq type="optional">yum-plugin-verify</packagereq>
- <packagereq type="optional">yum-plugin-versionlock</packagereq>
- <packagereq type="optional">zsh</packagereq>
- </packagelist>
- </group>
- <group>
- <id>compat-libraries</id>
- <name>Compatibility Libraries</name>
- <name xml:lang="as">সংগতি লাইব্ৰেৰীসমূহ</name>
- <name xml:lang="bn_IN">সুসংগততা লাইব্রেরি</name>
- <name xml:lang="cs">Knihovny zpětné kompatibility</name>
- <name xml:lang="de">Kompatibilitätsbibliotheken</name>
- <name xml:lang="es">Bibliotecas compatibles</name>
- <name xml:lang="fr">Bibliothèques de compatibilité</name>
- <name xml:lang="gu">સુસંગતતા લાઇબ્રેરીઓ</name>
- <name xml:lang="hi">सुसंगतता लाइब्रेरी</name>
- <name xml:lang="it">Libreria di compatibilità</name>
- <name xml:lang="ja">互換性ライブラリ</name>
- <name xml:lang="kn">ಹೊಂದಿಕೊಳ್ಳುವ ಲೈಬ್ರರಿಗಳು</name>
- <name xml:lang="ko">호환성 라이브러리</name>
- <name xml:lang="ml">പൊരുത്തപ്പെടലിനുള്ള ലൈബ്രറികള്‍</name>
- <name xml:lang="mr">सहत्वता लाइब्ररिज</name>
- <name xml:lang="or">ସୁସଂଗତତା ଲାଇବ୍ରେରୀଗୁଡ଼ିକ</name>
- <name xml:lang="pa">ਅਨੁਕੂਲਤਾ ਲਾਇਬਰੇਰੀਆਂ</name>
- <name xml:lang="pl">Biblioteki zgodności</name>
- <name xml:lang="pt_BR">Bibliotecas de compatibilidade</name>
- <name xml:lang="ru">Библиотеки совместимости</name>
- <name xml:lang="ta">இணக்கத்தன்மை தரவகங்கள்</name>
- <name xml:lang="te">సారూప్యతా లైబ్రరీలు</name>
- <name xml:lang="uk">Бібліотеки для забезпечення сумісності</name>
- <name xml:lang="zh_CN">兼容性程序库</name>
- <name xml:lang="zh_TW">相容性函式庫</name>
- <description>Compatibility libraries for applications built on previous versions of CentOS Linux.</description>
- <description xml:lang="as">CentOS Linux ৰ পূৰ্ববৰ্তী সংস্কৰণত নিৰ্মিত এপ্লিকেচনৰ সৈতে সংগতিৰ বাবে লাইব্ৰেৰী।</description>
- <description xml:lang="bn">CentOS Linux-র পূর্ববর্তী সংস্করণের মধ্যে নির্মিত অ্যাপ্লিকেশনের সাথে সুসংগতির জন্য লাইব্রেরি।</description>
- <description xml:lang="bn_IN">CentOS Linux-র পূর্ববর্তী সংস্করণের মধ্যে নির্মিত অ্যাপ্লিকেশনের সাথে সুসংগতির জন্য লাইব্রেরি।</description>
- <description xml:lang="cs">Balíčky s knihovnami pro podporu kompatibility s předchozími verzemi systému CentOS Linux.</description>
- <description xml:lang="de">Kompatibilitätsbibliotheken für Applikationen, die auf früheren Versionen von CentOS Linux erstellt wurden.</description>
- <description xml:lang="es">Bibliotecas de compatibilidad para aplicaciones creadas en versiones anteriores de CentOS Linux.</description>
- <description xml:lang="fr">Biblitohèques de compatibilité pour application construites sur des versions précédentes de CentOS Linux.</description>
- <description xml:lang="gu">CentOS Linux ની પહેલાંની આવૃત્તિઓ પર બિસ્ટ કાર્યક્રમો માટે સુસંગત લાઇબ્રેરીઓ.</description>
- <description xml:lang="hi">CentOS Linux के पहले संस्करण पर निर्मित अनुप्रयोग के लिए सुसंगतता लाइब्रेरी.</description>
- <description xml:lang="it">Librerie di compatibilità per le applicazioni compilate su versioni precedenti di CentOS Linux.</description>
- <description xml:lang="ja">旧バージョンの CentOS Linux によって構築されたアプリケーションに対する互換性ライブラリ</description>
- <description xml:lang="kn">ಹಿಂದಿನ CentOS Linuxನ ಆವೃತ್ತಿಯಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ ಅನ್ವಯಗಳಿಗಾಗಿನ ಸಹರ್ತನೀಯ ಲೈಬ್ರರಿಗಳು.</description>
- <description xml:lang="ko">예전 버전의 CentOS Linux에서 빌드된 프로그램을 위한 호환성 라이브러리</description>
- <description xml:lang="ml">CentOS Linux-ന്റെ മുമ്പുള്ള പതിപ്പുകളില്‍ തയ്യാറാക്കിയിട്ടുള്ള പ്രയോഗങ്ങള്‍ക്കു് പൊരുത്തപ്പെടുന്ന ലൈബ്രറികള്‍.</description>
- <description xml:lang="mr">CentOS Linux च्या मागील आवृत्तींवर बिल्ट केलेल्या ऍप्लिकेशन्स् करीता सहत्वता लाइब्ररीज्.</description>
- <description xml:lang="or">CentOS Linux ର ପୂର୍ବ ସଂସ୍କରଣରେ ନିର୍ମିତ ପ୍ରୟୋଗଗୁଡ଼ିକ ପାଇଁ ସୁସଙ୍ଗତତା ଲାଇବ୍ରେରୀ।</description>
- <description xml:lang="pa">CentOS Linux ਦੇ ਪਿਛਲੇ ਵਰਜਨ ਉੱਪਰ ਬਣੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ ਅਨੁਕੂਲਤਾ ਲਾਇਬਰੇਰੀਆਂ।</description>
- <description xml:lang="pl">Biblioteki zgodności dla aplikacji zbudowanych w poprzednich wersjach systemu CentOS Linux.</description>
- <description xml:lang="pt_BR">As bibliotecas de compatibilidades para aplicativos construídos em versões anteriores do CentOS Linux.</description>
- <description xml:lang="ru">Библиотеки совместимости для приложений, созданных в предыдущих версиях CentOS Linux.</description>
- <description xml:lang="sv">Kompatibilitetsbibliotek för program byggda på tidigare versioner av CentOS Linux</description>
- <description xml:lang="ta">CentOS Linuxன் முந்தைய பதிப்புகளில் பயன்பாடுகளை கட்டுவதற்கான ஒத்தியல்பு நூலகங்கள்.</description>
- <description xml:lang="te">CentOS Linux యొక్క గత వర్షన్లపై నిర్మితమైన అనువర్తనముల కొరకు కంపాటిబిలిటి లైబ్రరీలు.</description>
- <description xml:lang="uk">Бібліотеки сумісності для програм, створених у попередніх версіях CentOS Linux.</description>
- <description xml:lang="zh_CN">用于在红帽企业版 Linux 的之前版本中构建的应用程序的兼容程序库。</description>
- <description xml:lang="zh_TW">建置於先前版本的 CentOS Linux 上的應用程式的相容性函式庫。</description>
- <default>false</default>
- <uservisible>true</uservisible>
- <packagelist>
- <packagereq type="mandatory">compat-db47</packagereq>
- <packagereq type="mandatory">compat-glibc</packagereq>
- <packagereq type="mandatory">compat-libcap1</packagereq>
- <packagereq type="mandatory">compat-libf2c-34</packagereq>
- <packagereq type="mandatory">compat-libgfortran-41</packagereq>
- <packagereq type="mandatory">compat-libtiff3</packagereq>
- <packagereq type="mandatory">compat-openldap</packagereq>
- <packagereq type="mandatory">libpng12</packagereq>
- <packagereq type="mandatory">openssl098e</packagereq>
- </packagelist>
- </group>
- <group>
- <id>conflicts-client</id>
- <name>Conflicts (Client)</name>
- <name xml:lang="as">দন্দসমূহ (ক্লাএন্ট)</name>
- <name xml:lang="bn">Conflicts (Client)</name>
- <name xml:lang="bn_IN">Conflicts (Client)</name>
- <name xml:lang="cs">Konflikty (klient)</name>
- <name xml:lang="de">Konflikte (Client)</name>
- <name xml:lang="es">Conflictos (Cliente)</name>
- <name xml:lang="eu">Gatazkak (bezeroa)</name>
- <name xml:lang="fr">Conflits (Client)</name>
- <name xml:lang="gu">અથડામણો (ક્લાઇન્ટ)</name>
- <name xml:lang="hi">परस्पर विरोध (क्लाइंट)</name>
- <name xml:lang="it">Conflitti (Client)</name>
- <name xml:lang="ja">競合 (Client)</name>
- <name xml:lang="kn">ಅಸಮಂಜಸತೆ (ಕ್ಲೈಂಟ್‌)</name>
- <name xml:lang="ko">충돌(클라이언트)</name>
- <name xml:lang="ml">പൊരുത്തക്കേടുകള്‍ (ക്ലയന്റ്)</name>
- <name xml:lang="mr">मतभेद (क्लाएंट)</name>
- <name xml:lang="or">ଦ୍ୱନ୍ଦ (କ୍ଲାଏଣ୍ଟ)</name>
- <name xml:lang="pa">ਪ੍ਰਤੀਰੋਧ (ਕਲਾਂਈਟ)</name>
- <name xml:lang="pl">Konflikty (klient)</name>
- <name xml:lang="pt_BR">Conflitos (Cliente)</name>
- <name xml:lang="ru">Конфликты (Client)</name>
- <name xml:lang="ta">முரண்பாடுகள் (கிளையன்)</name>
- <name xml:lang="te">విభేదాలు (క్లైంట్)</name>
- <name xml:lang="uk">Суперечності (Клієнт)</name>
- <name xml:lang="zh_CN">冲突(客户端)</name>
- <name xml:lang="zh_TW">衝突(客戶端)</name>
- <description>This group includes packages conflicting with @everything installation on the Client variant.</description>
- <description xml:lang="as">এই দলে ক্লাএন্ট অপৰত থকা @everything ইনস্টলৰ লগত দন্দ কৰা পেকেইজসমূহ অন্তৰ্ভুক্ত কৰে।</description>
- <description xml:lang="bn">Client-র জন্য @everything ইনস্টলেশনের ক্ষেত্রে দ্বন্দ্ব সৃষ্টিকারী প্যাকেজগুলি এই সংকলনের মধ্যে উপস্থিত রয়েছে।</description>
- <description xml:lang="bn_IN">Client-র জন্য @everything ইনস্টলেশনের ক্ষেত্রে দ্বন্দ্ব সৃষ্টিকারী প্যাকেজগুলি এই সংকলনের মধ্যে উপস্থিত রয়েছে।</description>
- <description xml:lang="cs">Skupina balíčků, které kolidují při instalaci všech balíčků ve variantě Klient.</description>
- <description xml:lang="de">Diese Paketgruppe umfasst Pakete, die mit der @everything-Installation bei der Client-Variante in Konflikt stehen.</description>
- <description xml:lang="es">Este grupo incluye paquetes en conflicto con instalación @everything en la variante Client.</description>
- <description xml:lang="fr">Ce groupe comprend des paquetages en conflit avec l'installation @everything sur la variante Client.</description>
- <description xml:lang="gu">આ જૂથ ક્લાઇન્ટ વિવિધતા પર @બધા જ સ્થાપન સાથે અથડામણ થતા પેકેજોને સમાવે છે.</description>
- <description xml:lang="hi">यह समूह संस्थापन से जुड़े हर चीज से विरोध में क्लाइंट चर के साथ संकुल समाहित करता है.</description>
- <description xml:lang="it">Questo gruppo contiene pacchetti in conflitto con l'installazione @everything sulla variante del client.</description>
- <description xml:lang="ja">このグループには クライアントの機種にある @everything インストールと競合するパッケージが 含まれています。</description>
- <description xml:lang="kn">ಈ ಸಮೂಹವು ಕ್ಲೈಂಟ್ ವೇರಿಯಂಟ್‌ನೊಂದಿಗೆ @everything ಅನುಸ್ಥಾಪನೆಯೊಂದಿಗೆ ಅಸಮಂಜಸತೆಯನ್ನು ಉಂಟುಮಾಡುವ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಹೊಂದಿದೆ.</description>
- <description xml:lang="ko">이 그룹에는 클라이언트 유형의 @everything 설치와 충돌하는 패키지가 포함되어 있습니다.</description>
- <description xml:lang="ml">ക്ലയന്റ് വേരിയന്റില്‍ @everything ഇന്‍സ്റ്റലേഷനില്‍ തകരാറുണ്ടാക്കുന്ന പാക്കേജുകള്‍ ഈ ഗ്രൂപ്പില്‍ ഉള്‍പ്പെടുന്നു.</description>
- <description xml:lang="mr">या गटामध्ये क्लाएंट वेरिएंटवरील @everything प्रतिष्ठापनसह मतभेद निर्माण करणारे संकुले समाविष्टीत आहे.</description>
- <description xml:lang="or">ଏହି ଶ୍ରେଣୀରେ ପ୍ଯାକେଜଗୁଡ଼ିକ କ୍ଲାଏଣ୍ଟ ଭିନ୍ନତା ସହିତ @everything ସ୍ଥାପନ ସହିତ ଦ୍ୱନ୍ଦକୁ ଅନ୍ତର୍ଭୁକ୍ତ କରିଥାଏ।</description>
- <description xml:lang="pa">ਇਸ ਗਰੁੱਪ ਵਿੱਚ ਉਹ ਪੈਕੇਜ ਹਨ ਜੋ ਕਲਾਂਈਟ ਵੇਰੀਏਂਟਾ ਉੱਪਰ @everything ਇੰਸਟਾਲੇਸ਼ਨ ਨਾਲ ਪ੍ਰਤੀਰੋਧੀ ਹਨ।</description>
- <description xml:lang="pl">Ta grupa zawiera pakiety będące w konflikcie z instalacją typu @everything dla wariantu klienta.</description>
- <description xml:lang="pt_BR">Este grupo inclui pacotes conflitantes com a instalação do @everything na variante do Cliente.</description>
- <description xml:lang="ru">Эта группа содержит пакеты, создающие конфликт при установке @everything в CentOS Linux Client.</description>
- <description xml:lang="ta">இந்தக் குழுவானது கிளையன் மாறுபாட்டின் தொகுப்புகளின் முரண்பாடு @everything நிறுவலையும் சேர்க்கிறது.</description>
- <description xml:lang="te">ఈ సమూహం క్లైంట్ వేరియంట్‌పై @everything సంస్థాపనతో విభేదిస్తున్న ప్యాకేజీలను కలిగివుంటుంది.</description>
- <description xml:lang="uk">Ця група містить пакунки, що створюють конфлікт при встановленні @everything на CentOS Linux Client.</description>
- <description xml:lang="zh_CN">这个组群包含与 @everything 客户端变体安装冲突的软件包。</description>
- <description xml:lang="zh_TW">此群組包含了與客戶端上 @everything 安裝含有衝突的套件。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist/>
- </group>
- <group>
- <id>conflicts-computenode</id>
- <name>Conflicts (ComputeNode)</name>
- <name xml:lang="as">দন্দসমূহ (ComputeNode)</name>
- <name xml:lang="bn">Conflicts (ComputeNode)</name>
- <name xml:lang="bn_IN">Conflicts (ComputeNode)</name>
- <name xml:lang="cs">Konflikty (ComputeNode)</name>
- <name xml:lang="de">Konflikte (Rechenknoten)</name>
- <name xml:lang="es">Conflictos (ComputeNode)</name>
- <name xml:lang="fr">Conflits (ComputeNode)</name>
- <name xml:lang="gu">અથડામણો (ComputeNode)</name>
- <name xml:lang="hi">परस्पर विरोध (ComputeNode)</name>
- <name xml:lang="it">Conflitti (ComputeNode)</name>
- <name xml:lang="ja">競合 (ComputeNode)</name>
- <name xml:lang="kn">ಅಸಮಂಜಸತೆ (ಕಂಪ್ಯೂಟ್‌ನೋಡ್)</name>
- <name xml:lang="ko">충돌(ComputeNode)</name>
- <name xml:lang="ml">പൊരുത്തക്കേടുകള്‍ (കമ്പ്യൂട്ട്നോഡ്)</name>
- <name xml:lang="mr">मतभेद (कम्प्युटनोड)</name>
- <name xml:lang="or">ଦ୍ୱନ୍ଦ (ComputeNode)</name>
- <name xml:lang="pa">ਪ੍ਰਤੀਰੋਧ (ਕੰਪਿਊਟਨੋਡ)</name>
- <name xml:lang="pl">Konflikty (węzeł obliczeniowy)</name>
- <name xml:lang="pt_BR">Conflitos (ComputeNode)</name>
- <name xml:lang="ru">Конфликты (ComputeNode)</name>
- <name xml:lang="ta">முரண்பாடுகள் (ComputeNode)</name>
- <name xml:lang="te">విభేదాలు (కంప్యూట్‌నోడ్)</name>
- <name xml:lang="uk">Суперечності (Обчислювальний вузол)</name>
- <name xml:lang="zh_CN">冲突(计算节点)</name>
- <name xml:lang="zh_TW">衝突(ComputeNode)</name>
- <description>This group includes packages conflicting with @everything installation on the ComputeNode variant.</description>
- <description xml:lang="as">এই দলে ComputeNode অপৰত থকা @everything ইনস্টলৰ লগত দন্দ কৰা পেকেইজসমূহ অন্তৰ্ভুক্ত কৰে।</description>
- <description xml:lang="bn">ComputeNode-র জন্য @everything ইনস্টলেশনের ক্ষেত্রে দ্বন্দ্ব সৃষ্টিকারী প্যাকেজগুলি এই সংকলনের মধ্যে উপস্থিত রয়েছে।</description>
- <description xml:lang="bn_IN">ComputeNode-র জন্য @everything ইনস্টলেশনের ক্ষেত্রে দ্বন্দ্ব সৃষ্টিকারী প্যাকেজগুলি এই সংকলনের মধ্যে উপস্থিত রয়েছে।</description>
- <description xml:lang="cs">Skupina balíčků, které kolidují při instalaci všech balíčků ve variantě ComputeNode.</description>
- <description xml:lang="de">Diese Paketgruppe umfasst Pakete, die mit der @everything-Installation bei der Rechenknoten-Variante in Konflikt stehen.</description>
- <description xml:lang="es">Este grupo incluye paquetes en conflicto con instalación @everything en la variante de ComputeNode.</description>
- <description xml:lang="fr">Ce groupe comprend des paquetages en conflit avec l'installation @everything sur la variante ComputeNode.</description>
- <description xml:lang="gu">આ જૂથ ComputeNode વિવિધતા પર @બધા જ સ્થાપન સાથે અથડામણ થતા પેકેજોને સમાવે છે.</description>
- <description xml:lang="hi">यह समूह संस्थापन से जुड़े हर चीज से विरोध में ComputeNode चर के साथ संकुल समाहित करता है.</description>
- <description xml:lang="it">Questo gruppo contiene pacchetti in conflitto con l'installazione @everything sulla variante ComputeNode.</description>
- <description xml:lang="ja">このグループには ComputeNode の機種にある @everything インストールと競合するパッケージが 含まれています。</description>
- <description xml:lang="kn">ಈ ಸಮೂಹವು ಕಂಪ್ಯೂಟ್‌ನೋಡ್ ವೇರಿಯಂಟ್‌ನಲ್ಲಿ @everything ಅನುಸ್ಥಾಪನೆಯೊಂದಿಗೆ ಅಸಮಂಜಸತೆಯನ್ನು ಉಂಟುಮಾಡುವ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಹೊಂದಿದೆ.</description>
- <description xml:lang="ko">이 그룹에는 ComputeNode유형의 @everything 설치와 충돌하는 패키지가 포함되어 있습니다.</description>
- <description xml:lang="ml">കമ്പ്യൂട്ട്നോഡ് വേരിയന്റില്‍ @everything ഇന്‍സ്റ്റലേഷനില്‍ തകരാറുണ്ടാക്കുന്ന പാക്കേജുകള്‍ ഈ ഗ്രൂപ്പില്‍ ഉള്‍പ്പെടുന്നു.</description>
- <description xml:lang="mr">या गटामध्ये कम्प्युटनोड वेरिएंटवरील @everything प्रतिष्ठापनसह मतभेद निर्माण करणारे संकुले समाविष्टीत आहे.</description>
- <description xml:lang="or">ଏହି ଶ୍ରେଣୀରେ ପ୍ଯାକେଜଗୁଡ଼ିକ ComputeNode ଭିନ୍ନତା ସହିତ @everything ସ୍ଥାପନ ସହିତ ଦ୍ୱନ୍ଦକୁ ଅନ୍ତର୍ଭୁକ୍ତ କରିଥାଏ।</description>
- <description xml:lang="pa">ਇਸ ਗਰੁੱਪ ਵਿੱਚ ਉਹ ਪੈਕੇਜ ਹਨ ਜੋ ਕੰਪਿਊਟਨੋਡ ਵੇਰੀਏਂਟਾਂ ਉੱਪਰ @everything ਇੰਸਟਾਲੇਸ਼ਨ ਨਾਲ ਪ੍ਰਤੀਰੋਧੀ ਹਨ।</description>
- <description xml:lang="pl">Ta grupa zawiera pakiety będące w konflikcie z instalacją typu @everything dla wariantu węzła obliczeniowego.</description>
- <description xml:lang="pt_BR">Este grupo inclui pacotes conflitantes com a instalação do @everything na variante do ComputeNode.</description>
- <description xml:lang="ru">Эта группа содержит пакеты, создающие конфликт при установке @everything в ComputeNode.</description>
- <description xml:lang="ta">இந்தக் குழுவானது ComputeNode மாறுபாட்டின் தொகுப்புகளின் முரண்பாடு @everything நிறுவலையும் சேர்க்கிறது.</description>
- <description xml:lang="te">ఈ సమూహం కంప్యూట్‌నోడ్ వేరియంట్ పై @everything సంస్థాపనతో విభేదిస్తున్న ప్యాకేజీలను కలిగివుంటుంది.</description>
- <description xml:lang="uk">Ця група містить пакунки, що створюють конфлікт при встановленні @everything на обчислювальний вузол.</description>
- <description xml:lang="zh_CN">这个组群包含与 @everything 计算节点变体安装冲突的软件包。</description>
- <description xml:lang="zh_TW">此群組包含了與 ComputeNode 上 @everything 安裝含有衝突的套件。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist/>
- </group>
- <group>
- <id>conflicts-server</id>
- <name>Conflicts (Server)</name>
- <name xml:lang="as">দন্দসমূহ (চাৰ্ভাৰ)</name>
- <name xml:lang="bn">Conflicts (Server)</name>
- <name xml:lang="bn_IN">Conflicts (Server)</name>
- <name xml:lang="cs">Konflikty (server)</name>
- <name xml:lang="de">Konflikte (Server)</name>
- <name xml:lang="es">Conflictos (Servidor)</name>
- <name xml:lang="eu">Gatazkak (zerbitzaria)</name>
- <name xml:lang="fr">Conflits (Serveur)</name>
- <name xml:lang="gu">અથડામણો (સર્વર)</name>
- <name xml:lang="hi">परस्पर विरोध (सर्वर)</name>
- <name xml:lang="it">Conflitti (Server)</name>
- <name xml:lang="ja">競合 (Server)</name>
- <name xml:lang="kn">ಅಸಮಂಜಸತೆ (ಪೂರೈಕೆಗಣಕ)</name>
- <name xml:lang="ko">충돌(서버)</name>
- <name xml:lang="ml">പൊരുത്തക്കേടുകള്‍ (സര്‍വര്‍)</name>
- <name xml:lang="mr">मतभेद (सर्व्हर)</name>
- <name xml:lang="or">ଦ୍ୱନ୍ଦ (ସର୍ଭର)</name>
- <name xml:lang="pa">ਪ੍ਰਤੀਰੋਧ (ਸਰਵਰ)</name>
- <name xml:lang="pl">Konflikty (serwer)</name>
- <name xml:lang="pt_BR">Conflitos (Servidor)</name>
- <name xml:lang="ru">Конфликты (Server)</name>
- <name xml:lang="ta">முரண்பாடுகள் (Server)</name>
- <name xml:lang="te">విభేదాలు (సర్వర్)</name>
- <name xml:lang="uk">Суперечності (Сервер)</name>
- <name xml:lang="zh_CN">冲突(服务器)</name>
- <name xml:lang="zh_TW">衝突(伺服器)</name>
- <description>This group includes packages conflicting with @everything installation on the Server variant.</description>
- <description xml:lang="as">এই দলে চাৰ্ভাৰ অপৰত থকা @everything ইনস্টলৰ লগত দন্দ কৰা পেকেইজসমূহ অন্তৰ্ভুক্ত কৰে।</description>
- <description xml:lang="bn">Server-র জন্য @everything ইনস্টলেশনের ক্ষেত্রে দ্বন্দ্ব সৃষ্টিকারী প্যাকেজগুলি এই সংকলনের মধ্যে উপস্থিত রয়েছে।</description>
- <description xml:lang="bn_IN">Server-র জন্য @everything ইনস্টলেশনের ক্ষেত্রে দ্বন্দ্ব সৃষ্টিকারী প্যাকেজগুলি এই সংকলনের মধ্যে উপস্থিত রয়েছে।</description>
- <description xml:lang="cs">Skupina balíčků, které kolidují při instalaci všech balíčků ve variantě Server.</description>
- <description xml:lang="de">Diese Paketgruppe umfasst Pakete, die mit der @everything-Installation bei der Server-Variante in Konflikt stehen.</description>
- <description xml:lang="es">Este grupo incluye paquetes en conflicto con la instalación @everything en la variante Server.</description>
- <description xml:lang="fr">Ce groupe comprend des paquetages en conflit avec l'installation @everything sur la variante Serveur.</description>
- <description xml:lang="gu">આ જૂથ સર્વર વિવિધતા પર @બધા જ સ્થાપન સાથે અથડામણ થતા પેકેજોને સમાવે છે.</description>
- <description xml:lang="hi">यह समूह संस्थापन से जुड़े हर चीज से विरोध में सर्वर चर के साथ संकुल समाहित करता है.</description>
- <description xml:lang="it">Questo gruppo contiene pacchetti in conflitto con l'installazione @everything sulla variante del server.</description>
- <description xml:lang="ja">このグループには サーバーの機種にある @everything インストールと競合するパッケージが 含まれています。</description>
- <description xml:lang="kn">ಈ ಸಮೂಹವು ಪೂರೈಕೆಗಣಕ ವೇರಿಯಂಟ್‌ನೊಂದಿಗೆ @everything ಅನುಸ್ಥಾಪನೆಯೊಂದಿಗೆ ಅಸಮಂಜಸತೆಯನ್ನು ಉಂಟುಮಾಡುವ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಹೊಂದಿದೆ.</description>
- <description xml:lang="ko">이 그룹에는 서버 유형의 @everything 설치와 충돌하는 패키지가 포함되어 있습니다.</description>
- <description xml:lang="ml">സര്‍വര്‍ വേരിയന്റില്‍ @everything ഇന്‍സ്റ്റലേഷനില്‍ തകരാറുണ്ടാക്കുന്ന പാക്കേജുകള്‍ ഈ ഗ്രൂപ്പില്‍ ഉള്‍പ്പെടുന്നു.</description>
- <description xml:lang="mr">या गटामध्ये सर्व्हर वेरिएंटवरील @everything प्रतिष्ठापनसह मतभेद निर्माण करणारे संकुले समाविष्टीत आहे.</description>
- <description xml:lang="or">ଏହି ଶ୍ରେଣୀରେ ପ୍ଯାକେଜଗୁଡ଼ିକ ସର୍ଭର ଭିନ୍ନତା ସହିତ @everything ସ୍ଥାପନ ସହିତ ଦ୍ୱନ୍ଦକୁ ଅନ୍ତର୍ଭୁକ୍ତ କରିଥାଏ।</description>
- <description xml:lang="pa">ਇਸ ਗਰੁੱਪ ਵਿੱਚ ਉਹ ਪੈਕੇਜ ਹਨ ਜੋ ਸਰਵਰ ਵੇਰੀਏਂਟਾਂ ਉੱਪਰ @everything ਇੰਸਟਾਲੇਸ਼ਨ ਨਾਲ ਪ੍ਰਤੀਰੋਧੀ ਹਨ।</description>
- <description xml:lang="pl">Ta grupa zawiera pakiety będące w konflikcie z instalacją typu @everything dla wariantu serwerowego.</description>
- <description xml:lang="pt_BR">Este grupo inclui pacotes conflitantes com a instalação do @everything em variante de Servidor.</description>
- <description xml:lang="ru">Эта группа содержит пакеты, создающие конфликт при установке @everything в CentOS Linux Server.</description>
- <description xml:lang="ta">இந்தக் குழுவானது சேவையக மாறுபாட்டின் தொகுப்புகளின் முரண்பாடு @everything நிறுவலையும் சேர்க்கிறது.</description>
- <description xml:lang="te">ఈ సమూహం సర్వర్ వేరియంట్ పై @everything సంస్థాపనతో విభేదిస్తున్న ప్యాకేజీలను కలిగివుంటుంది.</description>
- <description xml:lang="uk">Ця група містить пакунки, що створюють конфлікт при встановленні @everything на CentOS Linux Server.</description>
- <description xml:lang="zh_CN">这个组群包含与 @everything 服务器变体安装冲突的软件包。</description>
- <description xml:lang="zh_TW">此群組包含了與伺服器上 @everything 安裝含有衝突的套件。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">libcmpiCppImpl0</packagereq>
- </packagelist>
- </group>
- <group>
- <id>conflicts-workstation</id>
- <name>Conflicts (Workstation)</name>
- <name xml:lang="as">দন্দসমূহ (ৱাৰ্কস্টেশন)</name>
- <name xml:lang="bn">Conflicts (Workstation)</name>
- <name xml:lang="bn_IN">Conflicts (Workstation)</name>
- <name xml:lang="cs">Konflikty (pracovní stanice)</name>
- <name xml:lang="de">Konflikte (Workstation)</name>
- <name xml:lang="es">Conflictos (Workstation)</name>
- <name xml:lang="fr">Conflits (station de travail)</name>
- <name xml:lang="gu">અથડામણો (વર્કસ્ટેશન)</name>
- <name xml:lang="hi">परस्पर विरोध (वर्कस्टेशन)</name>
- <name xml:lang="it">Conflitti (Workstation)</name>
- <name xml:lang="ja">競合 (Workstation)</name>
- <name xml:lang="kn">ಅಸಮಂಜಸತೆ (ಕಾರ್ಯಕ್ಷೇತ್ರ)</name>
- <name xml:lang="ko">충돌(워크스테이션)</name>
- <name xml:lang="ml">പൊരുത്തക്കേടുകള്‍ (വര്‍ക്ക്സ്റ്റേഷന്‍)</name>
- <name xml:lang="mr">मतभेद (वर्कस्टेशन)</name>
- <name xml:lang="or">ଦ୍ୱନ୍ଦ (କାର୍ଯ୍ୟକ୍ଷେତ୍ର)</name>
- <name xml:lang="pa">ਪ੍ਰਤੀਰੋਧ (ਵਰਕਸਟੇਸ਼ਨ)</name>
- <name xml:lang="pl">Konflikty (stacja robocza)</name>
- <name xml:lang="pt_BR">Conflitos (Estação de Trabalho)</name>
- <name xml:lang="ru">Конфликты (Workstation)</name>
- <name xml:lang="ta">முரண்பாடுகள் (பணிக்கணினி)</name>
- <name xml:lang="te">విభేదాలు (వర్కుస్టేషన్)</name>
- <name xml:lang="uk">Суперечності (Робоча станція)</name>
- <name xml:lang="zh_CN">冲突(工作站)</name>
- <name xml:lang="zh_TW">衝突(工作站)</name>
- <description>This group includes packages conflicting with @everything installation on the Workstation variant.</description>
- <description xml:lang="as">এই দলে ৱাৰ্কস্টেশন অপৰত থকা @everything ইনস্টলৰ লগত দন্দ কৰা পেকেইজসমূহ অন্তৰ্ভুক্ত কৰে।</description>
- <description xml:lang="bn">Workstation-র জন্য @everything ইনস্টলেশনের ক্ষেত্রে দ্বন্দ্ব সৃষ্টিকারী প্যাকেজগুলি এই সংকলনের মধ্যে উপস্থিত রয়েছে।</description>
- <description xml:lang="bn_IN">Workstation-র জন্য @everything ইনস্টলেশনের ক্ষেত্রে দ্বন্দ্ব সৃষ্টিকারী প্যাকেজগুলি এই সংকলনের মধ্যে উপস্থিত রয়েছে।</description>
- <description xml:lang="cs">Skupina balíčků, které kolidují při instalaci všech balíčků ve variantě Pracovní stanice.</description>
- <description xml:lang="de">Diese Paketgruppe umfasst Pakete, die mit der @everything-Installation bei der Workstation-Variante in Konflikt stehen.</description>
- <description xml:lang="es">Este grupo incluye paquetes en conflicto con instalación @everything en la variante Workstation.</description>
- <description xml:lang="fr">Ce groupe comprend des paquetages en conflit avec l'installation @everything sur la variante Station de travail.</description>
- <description xml:lang="gu">આ જૂથ વર્કસ્ટેશન વિવિધતા પર @બધા જ સ્થાપન સાથે અથડામણ થતા પેકેજોને સમાવે છે.</description>
- <description xml:lang="hi">यह समूह संस्थापन से जुड़े हर चीज से विरोध में वर्कस्टेशन चर के साथ संकुल समाहित करता है.</description>
- <description xml:lang="it">Questo gruppo contiene pacchetti in conflitto con l'installazione @everything sulla variante Workstation.</description>
- <description xml:lang="ja">このグループには ワークステーションの機種にある @everything インストールと競合するパッケージが 含まれています。</description>
- <description xml:lang="kn">ಈ ಸಮೂಹವು ಕಾರ್ಯಕ್ಷೇತ್ರ ವೇರಿಯಂಟ್‌ನೊಂದಿಗೆ @everything ಅನುಸ್ಥಾಪನೆಯೊಂದಿಗೆ ಅಸಮಂಜಸತೆಯನ್ನು ಉಂಟುಮಾಡುವ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಹೊಂದಿದೆ.</description>
- <description xml:lang="ko">이 그룹에는 워크스테이션 유형의 @everything 설치와 충돌하는 패키지가 포함되어 있습니다.</description>
- <description xml:lang="ml">വര്‍ക്ക്സ്റ്റേഷന്‍ ന്റ് വേരിയന്റില്‍ @everything ഇന്‍സ്റ്റലേഷനില്‍ തകരാറുണ്ടാക്കുന്ന പാക്കേജുകള്‍ ഈ ഗ്രൂപ്പില്‍ ഉള്‍പ്പെടുന്നു.</description>
- <description xml:lang="mr">या गटामध्ये वर्कस्टेशन वेरिएंटवरील @everything प्रतिष्ठापनसह मतभेद निर्माण करणारे संकुले समाविष्टीत आहे.</description>
- <description xml:lang="or">ଏହି ଶ୍ରେଣୀରେ ପ୍ଯାକେଜଗୁଡ଼ିକ କାର୍ଯ୍ୟକ୍ଷେତ୍ର ଭିନ୍ନତା ସହିତ @everything ସ୍ଥାପନ ସହିତ ଦ୍ୱନ୍ଦକୁ ଅନ୍ତର୍ଭୁକ୍ତ କରିଥାଏ।</description>
- <description xml:lang="pa">ਇਸ ਗਰੁੱਪ ਵਿੱਚ ਉਹ ਪੈਕੇਜ ਹਨ ਜੋ ਵਰਕਸਟੇਸ਼ਨ ਵੇਰੀਏਂਟਾ ਉੱਪਰ @everything ਇੰਸਟਾਲੇਸ਼ਨ ਨਾਲ ਪ੍ਰਤੀਰੋਧੀ ਹਨ।</description>
- <description xml:lang="pl">Ta grupa zawiera pakiety będące w konflikcie z instalacją typu @everything dla wariantu dla stacji roboczej.</description>
- <description xml:lang="pt_BR">Este grupo inclui pacotes conflitantes com a instalação do @everything na variante do Workstation.</description>
- <description xml:lang="ru">Эта группа содержит пакеты, создающие конфликт при установке @everything в CentOS Linux Workstation.</description>
- <description xml:lang="ta">இந்தக் குழுவானது பணிக்கணினி மாறுபாட்டின் தொகுப்புகளின் முரண்பாடு @everything நிறுவலையும் சேர்க்கிறது.</description>
- <description xml:lang="te">ఈ సమూహం వర్కుస్టేషన్ వేరియంట్ @everything సంస్థాపనతో విభేదిస్తున్న ప్యాకేజీలను కలిగివుంటుంది.</description>
- <description xml:lang="uk">Ця група містить пакунки, що створюють конфлікт при встановленні @everything на робочу станцію.</description>
- <description xml:lang="zh_CN">这个组群包含与 @everything 工作站变体安装冲突的软件包。</description>
- <description xml:lang="zh_TW">此群組包含了與工作站上 @everything 安裝含有衝突的套件。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">libcmpiCppImpl0</packagereq>
- </packagelist>
- </group>
- <group>
- <id>console-internet</id>
- <name>Console Internet Tools</name>
- <name xml:lang="as">কনচৌল ইন্টাৰনেট সঁজুলি</name>
- <name xml:lang="bn_IN">কনসোল ইন্টারনেট সরঞ্জাম</name>
- <name xml:lang="cs">Konzolové nástroje pro přístup k internetu</name>
- <name xml:lang="de">Internet-Tools für die Konsole</name>
- <name xml:lang="es">Herramientas para consola de Internet.</name>
- <name xml:lang="fr">Outils internet de la console</name>
- <name xml:lang="gu">કન્સોલ ઇન્ટરનેટ સાધનો</name>
- <name xml:lang="hi">कंसोल इंटरनेट औज़ार</name>
- <name xml:lang="it">Strumenti internet della console</name>
- <name xml:lang="ja">コンソールインターネットツール</name>
- <name xml:lang="kn">ಕನ್ಸೋಲ್ ಅಂತರಜಾಲ ಉಪಕರಣಗಳು</name>
- <name xml:lang="ko">콘솔 인터넷 도구</name>
- <name xml:lang="ml">കണ്‍സോളിനുള്ള ഇന്റര്‍നെറ്റ് പ്രയോഗങ്ങള്‍</name>
- <name xml:lang="mr">कंसोल इंटरनेट साधने</name>
- <name xml:lang="or">କୋନସୋଲ ଇଣ୍ଟରନେଟ ସାଧନଗୁଡ଼ିକ</name>
- <name xml:lang="pa">ਕੰਸੋਲ ਇੰਟਰਨੈੱਟ ਸੰਦ</name>
- <name xml:lang="pl">Narzędzia dostępu do Internetu w konsoli</name>
- <name xml:lang="pt_BR">Ferramentas de Internet de Console</name>
- <name xml:lang="ru">Консольные средства Интернета</name>
- <name xml:lang="ta">பணியக இணைய கருவிகள்</name>
- <name xml:lang="te">కన్సోల్ ఇంటర్నెట్ సాధనాలు</name>
- <name xml:lang="uk">Консольні інтернет-програми</name>
- <name xml:lang="zh_CN">控制台互联网工具</name>
- <name xml:lang="zh_TW">主控台網際網路工具</name>
- <description>Console internet access tools, often used by administrators.</description>
- <description xml:lang="as">কনচৌলৰ মাধ্যমে ইন্টাৰনেট ব্যৱহাৰৰ সঁজুলিসমূহ, সাধাৰণত প্ৰশাসকৰ দ্বাৰা ব্যৱহৃত।</description>
- <description xml:lang="bn">কনসোলের মাধ্যমে ইন্টারনেট ব্যবহারের সামগ্রী, সাধারণত অ্যাডমিনিস্ট্রেটরদের দ্বারা ব্যবহৃত।</description>
- <description xml:lang="bn_IN">কনসোলের মাধ্যমে ইন্টারনেট ব্যবহারের সামগ্রী, সাধারণত অ্যাডমিনিস্ট্রেটরদের দ্বারা ব্যবহৃত।</description>
- <description xml:lang="cs">Konzolové nástroje pro přístup k internetu; často využívané správci systému.</description>
- <description xml:lang="de">Oft von Administratoren verwendete Tools für den Zugriff auf das Internet via Konsole.</description>
- <description xml:lang="es">Herramientas de consola para acceso a Internet, utilizados por administradores.</description>
- <description xml:lang="fr">Outils d'accès internet console, souvent utilisés par des administrateurs.</description>
- <description xml:lang="gu">કન્સોલ ઇન્ટરનેટ પ્રવેશ સાધનો, વારંવાર વહીવટકર્તાઓ દ્દારા વપરાયેલ છે.</description>
- <description xml:lang="hi">कंसोल इंटरनेट पहुँच औज़ार, प्रायः प्रशासक के द्वारा प्रयुक्त.</description>
- <description xml:lang="ia">Utensiles de accesso a rete per le consola, sovente usate per administratores.</description>
- <description xml:lang="it">Tool di accesso ad internet della console spesso usati dagli amministratori.</description>
- <description xml:lang="ja">管理者によって頻繁に使用されるコンソールインターネットアクセスツール</description>
- <description xml:lang="kn">ವ್ಯವಸ್ಥಾಪಕರಿಂದ ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸಲಾಗುವ ಕನ್ಸೋಲ್ ಅಂತರಜಾಲ ಉಪಕರಣಗಳು.</description>
- <description xml:lang="ko">관리자가 자주 사용하곤 하는, 콘솔 인터넷 억세스 도구들.</description>
- <description xml:lang="ml">കണ്‍സോള്‍ ഇന്റര്‍നെറ്റ് പ്രയോഗങ്ങള്‍, അഡ്മിനിസ്ട്രേറ്റര്‍ ഉപയോഗിക്കുന്നവ.</description>
- <description xml:lang="mr">कंसोल इंटरनेट प्रवेश साधने, सहसा प्रशासकांद्वारे वापरले जाते.</description>
- <description xml:lang="or">କୋନସୋଲ ଇଣ୍ଟରନେଟ ଅଭିଗମ୍ୟତା ସାଧନଗୁଡ଼ିକ, ପ୍ରାୟତଃ ପ୍ରଶାସକଙ୍କ ଦ୍ୱାରା ବ୍ୟବହୃତ ହୋଇଥାଏ।</description>
- <description xml:lang="pa">ਕੰਸੋਲ ਇੰਟਰਨੈੱਟ ਪਹੁੰਚ ਟੂਲ. ਜੋ ਪਰਬੰਧਕਾਂ ਦੁਆਰਾ ਵਰਤੇ ਜਾਂਦੇ ਹਨ।</description>
- <description xml:lang="pl">Narzędzia dostępu do Internetu w konsoli, często używane przez administratorów</description>
- <description xml:lang="pt_BR">Ferramentas de acesso à internet console, geralmente usada por administrdores.</description>
- <description xml:lang="ru">Консольные средства доступа к Интернету, обычно используемые администраторами.</description>
- <description xml:lang="sv">Verktyg för åtkomst av internet från konseolen, ofta använda av administratörer.</description>
- <description xml:lang="ta">பணியக இணையத்தள அணுகல் கருவிகள், நிர்வாகிகளால் அடிக்கடி பயன்படுத்தப்படுகின்றன.</description>
- <description xml:lang="te">కన్సోల్ యింటర్నెట్ యాక్సెస్ సాధనములు, తరచుగా నిర్వహణాధికారుల చేత వుపయోగించబడును.</description>
- <description xml:lang="uk">Програми для доступу до інтернету з консолі, часто використовуються адміністраторами.</description>
- <description xml:lang="zh_CN">控制台互联网访问工具,通常由管理员使用。</description>
- <description xml:lang="zh_TW">主控台網際網路存取工具,一般由系統管理員所使用。</description>
- <default>false</default>
- <uservisible>true</uservisible>
- <packagelist>
- <packagereq type="optional">elinks</packagereq>
- <packagereq type="optional">fetchmail</packagereq>
- <packagereq type="optional">ftp</packagereq>
- <packagereq type="optional">irssi</packagereq>
- <packagereq type="optional">lftp</packagereq>
- <packagereq type="optional">mutt</packagereq>
- <packagereq type="optional">whois</packagereq>
- </packagelist>
- </group>
- <group>
- <id>core</id>
- <name>Core</name>
- <name xml:lang="af">Kern</name>
- <name xml:lang="am">ማዕከላዊ ቦታ</name>
- <name xml:lang="ar">اللبّ</name>
- <name xml:lang="as">ভিত্তি</name>
- <name xml:lang="bal">هستگ</name>
- <name xml:lang="be">Падмурак</name>
- <name xml:lang="bg">Основа</name>
- <name xml:lang="bn">কোর</name>
- <name xml:lang="bn_IN">কোর</name>
- <name xml:lang="bs">Jezgra</name>
- <name xml:lang="ca">Nucli</name>
- <name xml:lang="cs">Úplný základ</name>
- <name xml:lang="cy">Craidd</name>
- <name xml:lang="da">Grundlæggende</name>
- <name xml:lang="de">Kern</name>
- <name xml:lang="el">Πυρήνας</name>
- <name xml:lang="en_GB">Core</name>
- <name xml:lang="es">Núcleo</name>
- <name xml:lang="et">Tuum</name>
- <name xml:lang="fa">اصل</name>
- <name xml:lang="fi">Keskeiset</name>
- <name xml:lang="fr">Core</name>
- <name xml:lang="gl">Núcleo</name>
- <name xml:lang="gu">મૂળ</name>
- <name xml:lang="he">ליבה</name>
- <name xml:lang="hi">कोर</name>
- <name xml:lang="hr">Jezgra</name>
- <name xml:lang="hu">Mag</name>
- <name xml:lang="hy">Հիմք</name>
- <name xml:lang="ia">Nucleo</name>
- <name xml:lang="id">Inti</name>
- <name xml:lang="ilo">Bugas</name>
- <name xml:lang="is">Lágmarkskerfi</name>
- <name xml:lang="it">Principale</name>
- <name xml:lang="ja">コア</name>
- <name xml:lang="ka">ბირთვი</name>
- <name xml:lang="kn">ಅಂತಸ್ಸಾರ</name>
- <name xml:lang="ko">핵심</name>
- <name xml:lang="lv">Pamatsistēma</name>
- <name xml:lang="mai">कोर</name>
- <name xml:lang="mk">Основни</name>
- <name xml:lang="ml">കോറ്‍</name>
- <name xml:lang="mr">कोर</name>
- <name xml:lang="ms">Teras</name>
- <name xml:lang="nb">Kjerne</name>
- <name xml:lang="ne">कोर</name>
- <name xml:lang="nl">Kern</name>
- <name xml:lang="no">Kjerne</name>
- <name xml:lang="nso">Bogare</name>
- <name xml:lang="or">ପ୍ରମୂଖ</name>
- <name xml:lang="pa">ਮੂਲ</name>
- <name xml:lang="pl">Rdzeń</name>
- <name xml:lang="pt">Núcleo</name>
- <name xml:lang="pt_BR">Núcleo</name>
- <name xml:lang="ro">Nucleu</name>
- <name xml:lang="ru">Основа</name>
- <name xml:lang="si">න්‍යෂ්ඨිය</name>
- <name xml:lang="sk">Jadro</name>
- <name xml:lang="sl">Jedro</name>
- <name xml:lang="sq">Bërthama</name>
- <name xml:lang="sr">Срж</name>
- <name xml:lang="sr@latin">Srž</name>
- <name xml:lang="sr@Latn">Srž</name>
- <name xml:lang="sv">Grund</name>
- <name xml:lang="ta">கோர்</name>
- <name xml:lang="te">అంతర్భాగం</name>
- <name xml:lang="tg">Система</name>
- <name xml:lang="th">แกนหลัก</name>
- <name xml:lang="tr">Çekirdek</name>
- <name xml:lang="uk">Основа</name>
- <name xml:lang="ur">مرکز</name>
- <name xml:lang="vi">Lõi</name>
- <name xml:lang="zh_CN">核心</name>
- <name xml:lang="zh_TW">核心</name>
- <name xml:lang="zu">Okuyikhona</name>
- <description>Smallest possible installation.</description>
- <description xml:lang="as">ন্যূনতম ইনস্টল।</description>
- <description xml:lang="bn">ন্যূনতম ইনস্টলেশন।</description>
- <description xml:lang="bn_IN">ন্যূনতম ইনস্টলেশন।</description>
- <description xml:lang="cs">Nejmenší možná instalace.</description>
- <description xml:lang="de">Kleinstmögliche Installation.</description>
- <description xml:lang="es">La instalación más pequeña posible.</description>
- <description xml:lang="fr">Plus petite installation possible.</description>
- <description xml:lang="gu">નાનામાં નાના શક્ય સ્થાપન.</description>
- <description xml:lang="hi">लघुतम संभावित संस्थापन.</description>
- <description xml:lang="ia">Le minime possibile installation.</description>
- <description xml:lang="it">Minima installazione possibile.</description>
- <description xml:lang="ja">最小限のインストール</description>
- <description xml:lang="kn">ಅತ್ಯಲ್ಪಸಾಧ್ಯ ಅನುಸ್ಥಾಪನೆ.</description>
- <description xml:lang="ko">가능한 최소 설치</description>
- <description xml:lang="ml">സാധ്യമായ ഏറ്റവും ചെറിയ ഇന്‍സ്റ്റലേഷന്‍.</description>
- <description xml:lang="mr">शक्यतया सर्वात लहान प्रतिष्ठापन.</description>
- <description xml:lang="or">କ୍ଷୁଦ୍ରତମ ସମ୍ଭାବ୍ଯ ସ୍ଥାପନା।</description>
- <description xml:lang="pa">ਘੱਟੋ-ਘੱਟ ਸੰਭਵ ਇੰਸਟਾਲੇਸ਼ਨ।</description>
- <description xml:lang="pl">Najmniejsza możliwa instalacja.</description>
- <description xml:lang="pt_BR">Menor instalação possível</description>
- <description xml:lang="ru">Минимально возможная установка</description>
- <description xml:lang="sv">Minsta möjliga installation</description>
- <description xml:lang="ta">மிகச் சிறிய செயல்படுத்தக்கூடிய நிறுவல்.</description>
- <description xml:lang="te">సాధ్యమగు అతిచిన్న సంస్థాపన.</description>
- <description xml:lang="uk">Мінімально можливе встановлення.</description>
- <description xml:lang="zh_CN">最小可能安装。</description>
- <description xml:lang="zh_TW">最小型安裝。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">audit</packagereq>
- <packagereq type="mandatory">basesystem</packagereq>
- <packagereq type="mandatory">bash</packagereq>
- <packagereq type="mandatory">btrfs-progs</packagereq>
- <packagereq type="mandatory">coreutils</packagereq>
- <packagereq type="mandatory">cronie</packagereq>
- <packagereq type="mandatory">curl</packagereq>
- <packagereq type="mandatory">dhclient</packagereq>
- <packagereq type="mandatory">e2fsprogs</packagereq>
- <packagereq type="mandatory">filesystem</packagereq>
- <packagereq type="mandatory">firewalld</packagereq>
- <packagereq type="mandatory">glibc</packagereq>
- <packagereq type="mandatory">hostname</packagereq>
- <packagereq type="mandatory">initscripts</packagereq>
- <packagereq type="mandatory">iproute</packagereq>
- <packagereq type="mandatory">iprutils</packagereq>
- <packagereq type="mandatory">iptables</packagereq>
- <packagereq type="mandatory">iputils</packagereq>
- <packagereq type="mandatory">irqbalance</packagereq>
- <packagereq type="mandatory">kbd</packagereq>
- <packagereq type="mandatory">kexec-tools</packagereq>
- <packagereq type="mandatory">less</packagereq>
- <packagereq type="mandatory">man-db</packagereq>
- <packagereq type="mandatory">ncurses</packagereq>
- <packagereq type="mandatory">openssh-clients</packagereq>
- <packagereq type="mandatory">openssh-server</packagereq>
- <packagereq type="mandatory">parted</packagereq>
- <packagereq type="mandatory">passwd</packagereq>
- <packagereq type="mandatory">plymouth</packagereq>
- <packagereq type="mandatory">policycoreutils</packagereq>
- <packagereq type="mandatory">procps-ng</packagereq>
- <packagereq type="mandatory">rootfiles</packagereq>
- <packagereq type="mandatory">rpm</packagereq>
- <packagereq type="mandatory">rsyslog</packagereq>
- <packagereq type="mandatory">selinux-policy-targeted</packagereq>
- <packagereq type="mandatory">setup</packagereq>
- <packagereq type="mandatory">shadow-utils</packagereq>
- <packagereq type="mandatory">sudo</packagereq>
- <packagereq type="mandatory">systemd</packagereq>
- <packagereq type="mandatory">tar</packagereq>
- <packagereq type="mandatory">tuned</packagereq>
- <packagereq type="mandatory">util-linux</packagereq>
- <packagereq type="mandatory">vim-minimal</packagereq>
- <packagereq type="mandatory">xfsprogs</packagereq>
- <packagereq type="mandatory">yum</packagereq>
- <packagereq type="default">aic94xx-firmware</packagereq>
- <packagereq type="default">alsa-firmware</packagereq>
- <packagereq type="default">biosdevname</packagereq>
- <packagereq type="default">dracut-config-rescue</packagereq>
- <packagereq type="default">ivtv-firmware</packagereq>
- <packagereq type="default">iwl100-firmware</packagereq>
- <packagereq type="default">iwl1000-firmware</packagereq>
- <packagereq type="default">iwl105-firmware</packagereq>
- <packagereq type="default">iwl135-firmware</packagereq>
- <packagereq type="default">iwl2000-firmware</packagereq>
- <packagereq type="default">iwl2030-firmware</packagereq>
- <packagereq type="default">iwl3160-firmware</packagereq>
- <packagereq type="default">iwl3945-firmware</packagereq>
- <packagereq type="default">iwl4965-firmware</packagereq>
- <packagereq type="default">iwl5000-firmware</packagereq>
- <packagereq type="default">iwl5150-firmware</packagereq>
- <packagereq type="default">iwl6000-firmware</packagereq>
- <packagereq type="default">iwl6000g2a-firmware</packagereq>
- <packagereq type="default">iwl6000g2b-firmware</packagereq>
- <packagereq type="default">iwl6050-firmware</packagereq>
- <packagereq type="default">iwl7260-firmware</packagereq>
- <packagereq type="default">iwl7265-firmware</packagereq>
- <packagereq type="default">kernel-tools</packagereq>
- <packagereq type="default">libsysfs</packagereq>
- <packagereq type="default">linux-firmware</packagereq>
- <packagereq type="default">microcode_ctl</packagereq>
- <packagereq type="default">NetworkManager</packagereq>
- <packagereq type="default">NetworkManager-team</packagereq>
- <packagereq type="default">NetworkManager-tui</packagereq>
- <packagereq type="default">NetworkManager-wifi</packagereq>
- <packagereq type="default">postfix</packagereq>
- <packagereq type="optional">dracut-config-generic</packagereq>
- <packagereq type="optional">dracut-fips</packagereq>
- <packagereq type="optional">dracut-fips-aesni</packagereq>
- <packagereq type="optional">dracut-network</packagereq>
- <packagereq type="optional">initial-setup</packagereq>
- <packagereq type="optional">openssh-keycat</packagereq>
- <packagereq type="optional">rdma-core</packagereq>
- <packagereq type="optional">selinux-policy-mls</packagereq>
- <packagereq type="optional">tboot</packagereq>
- </packagelist>
- </group>
- <group>
- <id>debugging</id>
- <name>Debugging Tools</name>
- <name xml:lang="as">ডিবাগ কৰা সঁজুলিসমূহ</name>
- <name xml:lang="bn">ডিবাগ করতে ব্যবহৃত সরঞ্জাম</name>
- <name xml:lang="bn_IN">ডিবাগ করতে ব্যবহৃত সরঞ্জাম</name>
- <name xml:lang="cs">Nástroje pro ladění</name>
- <name xml:lang="de">Debugging-Tools</name>
- <name xml:lang="es">Herramientas de depuración</name>
- <name xml:lang="fr">Outils de débogage</name>
- <name xml:lang="gu">ડિબગીંગ સાધનો</name>
- <name xml:lang="hi">डिबगिंग औज़ार</name>
- <name xml:lang="ia">Instrumentos de depuration</name>
- <name xml:lang="it">Tool per il debug</name>
- <name xml:lang="ja">デバッグツール</name>
- <name xml:lang="kn">ದೋಷನಿವಾರಣಾ ಉಪಕರಣಗಳು</name>
- <name xml:lang="ko">디버깅 도구</name>
- <name xml:lang="ml">ഡീബഗ്ഗിങ് ഉപകരണങ്ങള്‍</name>
- <name xml:lang="mr">डिबगींग साधने</name>
- <name xml:lang="or">ତ୍ରୁଟି ନିବାରଣ ସାଧନଗୁଡ଼ିକ</name>
- <name xml:lang="pa">ਡੀਬੱਗਿੰਗ ਸੰਦ</name>
- <name xml:lang="pl">Narzędzia debugowania</name>
- <name xml:lang="pt_BR">Ferramentas de depuração</name>
- <name xml:lang="ru">Средства отладки</name>
- <name xml:lang="sv">Felsökningsverktyg</name>
- <name xml:lang="ta">பிழைதிருத்த கருவிகள்</name>
- <name xml:lang="te">డీబగ్గింగ్ సాధనములు</name>
- <name xml:lang="uk">Інструменти для зневаджування</name>
- <name xml:lang="zh_CN">调试工具</name>
- <name xml:lang="zh_TW">除錯工具</name>
- <description>Tools for debugging misbehaving applications and diagnosing performance problems.</description>
- <description xml:lang="as">বিশৃঙ্খল এপ্লিকেচন ডিবাগ কৰাৰ বাবে আৰু কাৰ্য্যক্ষমতাৰ সমস্যাৰ কাৰণ নিৰ্ণয় কৰাৰ বাবে বিভিন্ন সঁজুলিসমূহ।</description>
- <description xml:lang="bn">বিশৃঙ্খল অ্যাপ্লিকেশন ডিবাগ করার জন্য ও কর্মক্ষমতার সমস্যার কারণনির্ণয় করার জন্য বিভিন্ন সরঞ্জাম।</description>
- <description xml:lang="bn_IN">বিশৃঙ্খল অ্যাপ্লিকেশন ডিবাগ করার জন্য ও কর্মক্ষমতার সমস্যার কারণনির্ণয় করার জন্য বিভিন্ন সরঞ্জাম।</description>
- <description xml:lang="cs">Nástroje pro ladění nesprávně běžících aplikací a diagnostiku potíží s výkonem.</description>
- <description xml:lang="de">Tools für das Debuggen von fehlerhaften Anwendungen und zur Diagnose von Performanzproblemen.</description>
- <description xml:lang="es">Herramientas para depuración de aplicaciones que se comportan mal y diagnosis de problemas de rendimiento.</description>
- <description xml:lang="fr">Outils pour déboguer les applications ayant un mauvais comportement et diagnostiquer les problèmes de performance.</description>
- <description xml:lang="gu">ખરાબ વર્ણતૂકવાળા કાર્યક્રમોનું ડિબગીંગ અને પ્રભાવની સમસ્યાઓનું નિદાન કરવા માટેનાં સાધનો.</description>
- <description xml:lang="hi">बुरे अनुप्रयोगों और प्रदर्शन समस्या के निदान के लिए औजार.</description>
- <description xml:lang="ia">Utensiles pro depurar applicationes que non es functionante correctemente, e pro diagnosticar problemas in le rendimento.</description>
- <description xml:lang="it">Tool per il debug di applicazioni errate e per la diagnosi dei problemi sulle prestazioni.</description>
- <description xml:lang="ja">正しく動作しないアプリケーションをデバッグし、パフォーマンスの問題を分析するツールです。</description>
- <description xml:lang="kn">ತಪ್ಪಾಗಿ ವರ್ತಿಸುವ ಅನ್ವಯಗಳ ದೋಷನಿವಾರಣೆ ಹಾಗು ಕಾರ್ಯನಿರ್ವಹಣೆಯಲ್ಲಿನ ತೊಂದರೆಗಳನ್ನು ನಿವಾರಿಸುವ ಉಪಕರಣಗಳು.</description>
- <description xml:lang="ko">잘 못 동작하는 어플리케이션의 디버깅과 성능 문제 진단을 위한 도구.</description>
- <description xml:lang="ml">തകരാറുള്ള പ്രയോഗങ്ങളും പ്രവര്‍ത്തന പിശകുകളും ഡീബഗ്ഗ് ചെയ്യുന്നതിനുള്ള പ്രയോഗങ്ങള്‍.</description>
- <description xml:lang="mr">अयोग्य ऍप्लिकेशन्सच्या डिबगींग व क्षमता विश्लेषण संबंधीत अडचणींकरीता साधने.</description>
- <description xml:lang="or">ଖରାପ ଆଚରଣ କରୁଥିବା ପ୍ରୟୋଗର ତ୍ରୁଟି ନିବାରଣ ଏବଂ କାର୍ଯ୍ୟକ୍ଷମତା ସମସ୍ୟାର ବିଶ୍ଳେଷଣ କରିବା ପାଇଁ ସାଧନଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">ਗਲਤ ਵਰਤਾਓ ਵਾਲੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੀ ਡੀਬੱਗਿੰਗ ਅਤੇ ਕਾਰਜਕੁਸ਼ਲਤਾ ਸਮੱਸਿਆਵਾਂ ਦੀ ਪੜਤਾਲ ਲਈ ਟੂਲ।</description>
- <description xml:lang="pl">Narzędzia do debugowania błędnie zachowujących się aplikacji i diagnozowania problemów z wydajnością.</description>
- <description xml:lang="pt_BR">Ferramentas para depurar aplicativos mal comportados e diagnosticar problemas de desempenho.</description>
- <description xml:lang="ru">Средства отладки приложений и проблем производительности.</description>
- <description xml:lang="sv">Verktyg för felsökning av program som beter sig felaktigt, och diagnostik av prestandaproblem.</description>
- <description xml:lang="ta">மோசமான பயன்பாடுகளின் பிழைதிருத்த மற்றும் செயற்படுத்தல் சிக்கல்களுக்கான கருவிகள்.</description>
- <description xml:lang="te">సరిగాప్రవర్తించని అనువర్తనముల మరియు పనితనపు సమస్యల విశ్లేషణా డీబగ్గింగ్ కొరకు సాధనములు.</description>
- <description xml:lang="uk">Програми для діагностики помилкової поведінки програми та проблем з швидкодією.</description>
- <description xml:lang="zh_CN">调试行为异常程序以及诊断性能问题的工具。</description>
- <description xml:lang="zh_TW">用來為執行不正常的應用程式除錯並為效能問題進行診斷的工具。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">gdb</packagereq>
- <packagereq type="mandatory">kexec-tools</packagereq>
- <packagereq type="mandatory">latrace</packagereq>
- <packagereq type="mandatory">libreport-cli</packagereq>
- <packagereq type="mandatory">strace</packagereq>
- <packagereq type="mandatory">systemtap-runtime</packagereq>
- <packagereq type="default">abrt-addon-ccpp</packagereq>
- <packagereq type="default">abrt-addon-python</packagereq>
- <packagereq type="default">abrt-cli</packagereq>
- <packagereq type="default">crash</packagereq>
- <packagereq type="default">crash-gcore-command</packagereq>
- <packagereq type="default">crash-ptdump-command</packagereq>
- <packagereq type="default">crash-trace-command</packagereq>
- <packagereq type="default">elfutils</packagereq>
- <packagereq type="default">kernel-tools</packagereq>
- <packagereq type="default">libreport-plugin-mailx</packagereq>
- <packagereq type="default">ltrace</packagereq>
- <packagereq type="default">memstomp</packagereq>
- <packagereq type="default">ps_mem</packagereq>
- <packagereq type="default">trace-cmd</packagereq>
- <packagereq type="default">valgrind</packagereq>
- <packagereq type="optional">abrt-java-connector</packagereq>
- <packagereq type="optional">gdb-gdbserver</packagereq>
- <packagereq type="optional">glibc-utils</packagereq>
- <packagereq type="optional">memtest86+</packagereq>
- <packagereq type="optional">systemtap-client</packagereq>
- <packagereq type="optional">systemtap-initscript</packagereq>
- </packagelist>
- </group>
- <group>
- <id>desktop-debugging</id>
- <name>Desktop Debugging and Performance Tools</name>
- <name xml:lang="as">ডেস্কটপ ডিবাগ আৰু কাৰ্য্যক্ষমতাৰ সম্বন্ধীয় সঁজুলিসমূহ</name>
- <name xml:lang="bn">ডেস্কটপ ডিবাগ ও কর্মক্ষমতার সম্বন্ধীয় সামগ্রী</name>
- <name xml:lang="bn_IN">ডেস্কটপ ডিবাগ ও কর্মক্ষমতার সম্বন্ধীয় সামগ্রী</name>
- <name xml:lang="cs">Nástroje pro ladění pracovního prostředí a sledování výkonu</name>
- <name xml:lang="de">Debugging- und Performance-Tools für den Desktop</name>
- <name xml:lang="es">Depuración de escritorio y herramientas de rendimiento</name>
- <name xml:lang="fr">Outils de débogage et performance du bureau</name>
- <name xml:lang="gu">ડેસ્કટોપ ડિબગીંગ અને પ્રભાવ સાધનો</name>
- <name xml:lang="hi">डेस्कटॉप डिबगिंग और प्रदर्शन औज़ार</name>
- <name xml:lang="ia">Instrumentos de scriptorio pro depuration e rendimento</name>
- <name xml:lang="it">Tool per le prestazioni e di debug del desktop</name>
- <name xml:lang="ja">デスクトップのデバッグとパフォーマンスツール</name>
- <name xml:lang="kn">ಗಣಕತೆರೆ ದೋಷನಿವಾರಣೆ ಹಾಗು ಕಾರ್ಯನಿರ್ವಹಣಾ ಉಪಕರಣಗಳು</name>
- <name xml:lang="ko">데스크탑 디버깅과 성능 도구</name>
- <name xml:lang="ml">ഡസ്ക്ടോപ്പ് ഡീബഗ്ഗിങും പ്രവര്‍ത്തനത്തിനുമുള്ള ഉപകരണങ്ങള്‍</name>
- <name xml:lang="mr">डेस्कटॉप डिबगींग व क्षमता साधने</name>
- <name xml:lang="or">ଡେସ୍କଟପ ତ୍ରୁଟିନିବାରଣ ଏବଂ କାର୍ଯ୍ୟକ୍ଷମତା ସାଧନଗୁଡ଼ିକ</name>
- <name xml:lang="pa">ਡੈਸਕਟਾਪ ਡੀਬੱਗਿੰਗ ਅਤੇ ਕਾਰਜਕੁਸ਼ਲਤਾ ਸੰਦ</name>
- <name xml:lang="pl">Narzędzia debugowania i obliczania wydajności środowisk graficznych</name>
- <name xml:lang="pt_BR">Depuração de Desktop e Ferramentas de Desempenho</name>
- <name xml:lang="ru">Средства отладки и поддержки производительности рабочего стола.</name>
- <name xml:lang="sv">Skrivbordsfelsöknings- och prestandaverktyg</name>
- <name xml:lang="ta">பணிமேடை பிழைதிருத்தி மற்றும் செயற்படுத்தல் கருவிகள்</name>
- <name xml:lang="te">డెస్కుటాప్ డీబగ్గింగ్ మరియు పనితనం సాధనములు</name>
- <name xml:lang="uk">Програми для діагностики та перевірки швидкодії робочої станції</name>
- <name xml:lang="zh_CN">桌面调试和运行工具</name>
- <name xml:lang="zh_TW">桌面環境除錯與效能工具</name>
- <description>GUI tools for debugging applications and performance.</description>
- <description xml:lang="as">এপ্লিকেচন ডিবাগ কৰিবলৈ আৰু কাৰ্য্যক্ষমতা সম্বন্ধীয় GUI সঁজুলিসমূহ।</description>
- <description xml:lang="bn">অ্যাপ্লিকেশন ডিবাগ করতে ও কর্মক্ষমতা সম্বন্ধীয় GUI সরঞ্জাম।</description>
- <description xml:lang="bn_IN">অ্যাপ্লিকেশন ডিবাগ করতে ও কর্মক্ষমতা সম্বন্ধীয় GUI সরঞ্জাম।</description>
- <description xml:lang="cs">Grafické nástroje pro ladění aplikací a výkonu.</description>
- <description xml:lang="de">GUI-Tools für das Debuggen von Applikationen und deren Performanz.</description>
- <description xml:lang="es">Herramientas GUI para aplicaciones de depuración y rendimiento.</description>
- <description xml:lang="fr">Outils de GUI pour le débogage et la performance d'applications.</description>
- <description xml:lang="gu">ડિબગીંગ કાર્યક્રમો અને પ્રભાવ માટે GUI સાધનો.</description>
- <description xml:lang="hi">अनुप्रयोग डबगिंग और प्रदर्शन के लिए GUI औजार.</description>
- <description xml:lang="ia">Utensiles graphic pro depuration e rendimento de applicationes.</description>
- <description xml:lang="it">Tool della GUI per prestazioni ed il debug delle applicazioni.</description>
- <description xml:lang="ja">アプリケーションやパフォーマンスのデバッグを行うための GUI ツール</description>
- <description xml:lang="kn">ದೋಷನಿವಾರಣೆ ಹಾಗು ಕಾರ್ಯನಿರ್ವಹಣೆಗಾಗಿನ GUI ಉಪಕರಣಗಳು.</description>
- <description xml:lang="ko">프로그램 디버깅과 성능 향상을 위한 GUI 도구</description>
- <description xml:lang="ml">പ്രയോഗങ്ങളും പ്രവര്‍ത്തനവും ഡീബഗ്ഗ് ചെയ്യുന്നതിനുള്ള GUI പ്രയോഗങ്ങള്‍.</description>
- <description xml:lang="mr">ऍप्लिकेशन्स् व क्षमता डिबग करण्यासाठी GUI साधने.</description>
- <description xml:lang="or">ପ୍ରୟୋଗଗୁଡ଼ିକର ତ୍ରୁଟି ନିବାରଣ ଏବଂ କାର୍ଯ୍ୟକ୍ଷମତା ପାଇଁ GUI ସାଧନଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">ਐਪਲੀਕੇਸ਼ਨ ਅਤੇ ਕਾਰਜਕੁਸ਼ਲਤਾ ਡੀਬੱਗਿੰਗ ਲਈ GUI ਸੰਦ।</description>
- <description xml:lang="pl">Narzędzia graficzne do debugowania aplikacji i mierzenia wydajności.</description>
- <description xml:lang="pt_BR">Ferramentas GUI para depurar aplicativos e desempenho.</description>
- <description xml:lang="ru">Графические инструменты отладки приложений и контроля производительности.</description>
- <description xml:lang="sv">Grafiska verktyg för felsökning av program och prestanda.</description>
- <description xml:lang="ta">பிழைதிருத்த பயன்பாடுகள் மற்றும் செயற்படுதலுக்கான GUI கருவிகள்.</description>
- <description xml:lang="te">అనువర్తనముల మరియు పనితనం డీబగ్గింగ్‌కు GUI సాధనములు.</description>
- <description xml:lang="uk">Графічні інструмент для діагностики програм та визначення джерел проблем зі швидкодією.</description>
- <description xml:lang="zh_CN">调试应用程序和性能的 GUI 工具。</description>
- <description xml:lang="zh_TW">用來為應用程式和效能進行除錯的 GUI 工具。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="default">abrt-desktop</packagereq>
- <packagereq type="default">crash</packagereq>
- <packagereq type="default">libreport-gtk</packagereq>
- <packagereq type="optional">abrt-gui</packagereq>
- <packagereq type="optional">bltk</packagereq>
- <packagereq type="optional">oprofile-gui</packagereq>
- <packagereq type="optional">pcp-gui</packagereq>
- <packagereq type="optional">tuna</packagereq>
- <packagereq type="optional">xrestop</packagereq>
- </packagelist>
- </group>
- <group>
- <id>development</id>
- <name>Development Tools</name>
- <name xml:lang="af">Ontwikkelingsnutsgoed</name>
- <name xml:lang="am">ማሳደጊያ መሣሪያዎች</name>
- <name xml:lang="ar">أدوات التطوير</name>
- <name xml:lang="as">উন্নয়ন সঁজুলিসমূহ</name>
- <name xml:lang="bal">وسایل پیشروگ</name>
- <name xml:lang="be">Сродкі распрацоўкі праграм</name>
- <name xml:lang="bg">Инструменти за разработка</name>
- <name xml:lang="bn">সফ্টওয়্যার নির্মাণের জন্য প্রয়োজনীয় টুল</name>
- <name xml:lang="bn_IN">সফ্টওয়্যার নির্মাণের জন্য প্রয়োজনীয় টুল</name>
- <name xml:lang="bs">Razvojni alati</name>
- <name xml:lang="ca">Eines de desenvolupament</name>
- <name xml:lang="cs">Vývojářské nástroje</name>
- <name xml:lang="cy">Arfau Datblygu</name>
- <name xml:lang="da">Udviklingsværktøjer</name>
- <name xml:lang="de">Entwicklungswekzeuge</name>
- <name xml:lang="el">Εργαλεία ανάπτυξης λογισμικού</name>
- <name xml:lang="en_GB">Development Tools</name>
- <name xml:lang="es">Herramientas de desarrollo</name>
- <name xml:lang="et">Arendusvahendid</name>
- <name xml:lang="fa">ابزارهای برنامه‌سازی</name>
- <name xml:lang="fi">Ohjelmistokehitystyökalut</name>
- <name xml:lang="fr">Outils de développement</name>
- <name xml:lang="gl">Ferramentas de desenvolvemento</name>
- <name xml:lang="gu">વિકાસના સાધનો</name>
- <name xml:lang="he">כלי פיתוח</name>
- <name xml:lang="hi">विकासात्मक उपकरण</name>
- <name xml:lang="hr">Razvojni alati</name>
- <name xml:lang="hu">Fejlesztőeszközök</name>
- <name xml:lang="hy">Ծրագրավորման գործիքներ</name>
- <name xml:lang="ia">Instrumentos de disveloppamento</name>
- <name xml:lang="id">Peralatan Pengembangan</name>
- <name xml:lang="ilo">Ramramit a Pambukel</name>
- <name xml:lang="is">Þróunartól</name>
- <name xml:lang="it">Strumenti di sviluppo</name>
- <name xml:lang="ja">開発ツール</name>
- <name xml:lang="ka">პროგრამირების ინსტრუმენტები</name>
- <name xml:lang="kn">ವಿಕಸನ ಉಪಕರಣಗಳು</name>
- <name xml:lang="ko">개발용 도구</name>
- <name xml:lang="lv">Programmēšanas rīki</name>
- <name xml:lang="mai">विकासात्मक अओजार</name>
- <name xml:lang="mk">Алатки за развој</name>
- <name xml:lang="ml">ഡെവലപ്പ്മെന്‍റ് ഉപകരണങ്ങള്‍</name>
- <name xml:lang="mr">विकास उपकरणे</name>
- <name xml:lang="ms">Alatan Pembangunan</name>
- <name xml:lang="nb">Utviklingsverktøy</name>
- <name xml:lang="ne">विकास उपकरण</name>
- <name xml:lang="nl">Ontwikkelingshulpmiddelen</name>
- <name xml:lang="no">Utviklingsverktøy</name>
- <name xml:lang="nso">Didirišwa tša Tšwetšopele</name>
- <name xml:lang="or">ବିକାଶ ଉପକରଣ</name>
- <name xml:lang="pa">ਵਿਕਾਸ ਸੰਦ</name>
- <name xml:lang="pl">Narzędzia programistyczne</name>
- <name xml:lang="pt">Ferramentas de Desenvolvimento</name>
- <name xml:lang="pt_BR">Ferramentas de Desenvolvimento</name>
- <name xml:lang="ro">Unelte pentru dezvoltare</name>
- <name xml:lang="ru">Средства разработки</name>
- <name xml:lang="si">ප්‍රවර්ධන මෙවලම්</name>
- <name xml:lang="sk">Vývojárske nástroje</name>
- <name xml:lang="sl">Razvojna orodja</name>
- <name xml:lang="sq">Mjete Zhvillimi</name>
- <name xml:lang="sr">Развојне алатке</name>
- <name xml:lang="sr@latin">Razvojne alatke</name>
- <name xml:lang="sr@Latn">Razvojne alatke</name>
- <name xml:lang="sv">Utvecklingsverktyg</name>
- <name xml:lang="ta">உருவாக்கம் கருவிகள்</name>
- <name xml:lang="te">అబివృద్ధిచేయు సాధనములు</name>
- <name xml:lang="tg">Асбобҳои барноманависӣ</name>
- <name xml:lang="th">เครื่องมือสำหรับการพัฒนาซอฟต์แวร์</name>
- <name xml:lang="tr">Geliştirme Araçları</name>
- <name xml:lang="uk">Засоби розробки</name>
- <name xml:lang="ur">تعمیر کے الات</name>
- <name xml:lang="vi">Công cụ phát triển</name>
- <name xml:lang="zh_CN">开发工具</name>
- <name xml:lang="zh_TW">開發工具</name>
- <name xml:lang="zu">Amathuluzi Okuthuthukisa</name>
- <description>A basic development environment.</description>
- <description xml:lang="as">উন্নয়নৰ বাবে মৌলিক পৰিৱেশ।</description>
- <description xml:lang="bn">ডিভেলমেন্টের জন্য মৌলিক পরিবেশ।</description>
- <description xml:lang="bn_IN">ডিভেলমেন্টের জন্য মৌলিক পরিবেশ।</description>
- <description xml:lang="cs">Základní vývojové prostředí.</description>
- <description xml:lang="de">Eine grundlegende Entwicklungsumgebung.</description>
- <description xml:lang="es">Un entorno de desarrollo básico.</description>
- <description xml:lang="eu">Oinarrizko garapen ingurune bat</description>
- <description xml:lang="fr">Un environnement de développement de base.</description>
- <description xml:lang="gu">આધાર વિકાસ પર્યાવરણ.</description>
- <description xml:lang="hi">मौलिक विकास वातावरण.</description>
- <description xml:lang="ia">Un ambiente de disveloppamento basic.</description>
- <description xml:lang="it">Un ambiente di sviluppo di base.</description>
- <description xml:lang="ja">基本的な開発環境</description>
- <description xml:lang="kn">ಒಂದು ಮೂಲಭೂತ ವಿಕಸನಾ ಪರಿಸರ.</description>
- <description xml:lang="ko">기본 개발 환경.</description>
- <description xml:lang="ml">ഒരു അടിസ്ഥാന ഡെവലപ്പ്മെന്റ് എന്‍വയോണ്മെന്റ്.</description>
- <description xml:lang="mr">मुळ डेव्हलपमेंट एन्वार्यनमेंट.</description>
- <description xml:lang="or">ଗୋଟିଏ ମୌଳିକ ବିକାଶ ପରିବେଶ।</description>
- <description xml:lang="pa">ਇੱਕ ਮੁਢਲਾ ਵਿਕਾਸ ਵਾਤਾਵਰਣ।</description>
- <description xml:lang="pl">Podstawowe środowisko programistyczne.</description>
- <description xml:lang="pt_BR">O ambiente básico de desenvolvimento</description>
- <description xml:lang="ru">Стандартная среда разработки.</description>
- <description xml:lang="sv">En grundläggande utvecklingsmiljö.</description>
- <description xml:lang="ta">ஒரு அடிப்படை வளர்ச்சி சூழல்.</description>
- <description xml:lang="te">ఒక ప్రాధమిక అభివృద్ది వాతావరణం.</description>
- <description xml:lang="uk">Базове середовище розробки.</description>
- <description xml:lang="zh_CN">基本开发环境。</description>
- <description xml:lang="zh_TW">基本開發環境。</description>
- <default>false</default>
- <uservisible>true</uservisible>
- <packagelist>
- <packagereq type="mandatory">autoconf</packagereq>
- <packagereq type="mandatory">automake</packagereq>
- <packagereq type="mandatory">binutils</packagereq>
- <packagereq type="mandatory">bison</packagereq>
- <packagereq type="mandatory">flex</packagereq>
- <packagereq type="mandatory">gcc</packagereq>
- <packagereq type="mandatory">gcc-c++</packagereq>
- <packagereq type="mandatory">gettext</packagereq>
- <packagereq type="mandatory">libtool</packagereq>
- <packagereq type="mandatory">make</packagereq>
- <packagereq type="mandatory">patch</packagereq>
- <packagereq type="mandatory">pkgconfig</packagereq>
- <packagereq type="mandatory">redhat-rpm-config</packagereq>
- <packagereq type="mandatory">rpm-build</packagereq>
- <packagereq type="mandatory">rpm-sign</packagereq>
- <packagereq type="default">byacc</packagereq>
- <packagereq type="default">cscope</packagereq>
- <packagereq type="default">ctags</packagereq>
- <packagereq type="default">diffstat</packagereq>
- <packagereq type="default">doxygen</packagereq>
- <packagereq type="default">elfutils</packagereq>
- <packagereq type="default">gcc-gfortran</packagereq>
- <packagereq type="default">git</packagereq>
- <packagereq type="default">indent</packagereq>
- <packagereq type="default">intltool</packagereq>
- <packagereq type="default">patchutils</packagereq>
- <packagereq type="default">rcs</packagereq>
- <packagereq type="default">subversion</packagereq>
- <packagereq type="default">swig</packagereq>
- <packagereq type="default">systemtap</packagereq>
- <packagereq type="optional">ant</packagereq>
- <packagereq type="optional">babel</packagereq>
- <packagereq type="optional">bzr</packagereq>
- <packagereq type="optional">chrpath</packagereq>
- <packagereq type="optional">cmake</packagereq>
- <packagereq type="optional">compat-gcc-44</packagereq>
- <packagereq type="optional">compat-gcc-44-c++</packagereq>
- <packagereq type="optional">cvs</packagereq>
- <packagereq type="optional">dejagnu</packagereq>
- <packagereq type="optional">ElectricFence</packagereq>
- <packagereq type="optional">expect</packagereq>
- <packagereq type="optional">gcc-gnat</packagereq>
- <packagereq type="optional">gcc-objc</packagereq>
- <packagereq type="optional">gcc-objc++</packagereq>
- <packagereq type="optional">imake</packagereq>
- <packagereq type="optional">javapackages-tools</packagereq>
- <packagereq type="optional">ksc</packagereq>
- <packagereq type="optional">libstdc++-docs</packagereq>
- <packagereq type="optional">mercurial</packagereq>
- <packagereq type="optional">mod_dav_svn</packagereq>
- <packagereq type="optional">nasm</packagereq>
- <packagereq type="optional">perltidy</packagereq>
- <packagereq type="optional">python-docs</packagereq>
- <packagereq type="optional">rpmdevtools</packagereq>
- <packagereq type="optional">rpmlint</packagereq>
- <packagereq type="optional">systemtap-sdt-devel</packagereq>
- <packagereq type="optional">systemtap-server</packagereq>
- </packagelist>
- </group>
- <group>
- <id>dial-up</id>
- <name>Dial-up Networking Support</name>
- <name xml:lang="ar">دعم شبكات الاتصال الهاتفي</name>
- <name xml:lang="as">ডায়েল-আপ কৰা নেটৱাৰ্কিং সমৰ্থন</name>
- <name xml:lang="bal">حمایت شبکه ای دیال آپ</name>
- <name xml:lang="bg">Поддръжка на Dailup мрежи</name>
- <name xml:lang="bn">ডায়াল-আপ নেটওয়ার্কিং ব্যবস্থা</name>
- <name xml:lang="bn_IN">ডায়াল-আপ নেটওয়ার্কিং ব্যবস্থা</name>
- <name xml:lang="bs">Podrška za telefoniranje</name>
- <name xml:lang="ca">Suport per a la connexió a la xarxa</name>
- <name xml:lang="cs">Telefonické připojení</name>
- <name xml:lang="da">Understøttelse for opkaldt netopkobling</name>
- <name xml:lang="de">Unterstützung für DFÜ-Netzwerke</name>
- <name xml:lang="el">Υποστήριξη δικτύωσης μέσω τηλεφώνου</name>
- <name xml:lang="es">Soporte de Red por Módem</name>
- <name xml:lang="et">Sissehelistamisega võrgutamise tugi</name>
- <name xml:lang="fi">Tuki puhelinverkkoyhteyksille</name>
- <name xml:lang="fr">Prise en charge de l'accès à distance au réseau</name>
- <name xml:lang="gu">ડાયલ-અપ નેટવર્કીંગ આધાર</name>
- <name xml:lang="he">תמיכה בחיוג לרשת</name>
- <name xml:lang="hi">ड़ायलअप संजालन समर्थन</name>
- <name xml:lang="hr">Podrška za telefoniranje</name>
- <name xml:lang="hu">Telefonos hálózat támogatása</name>
- <name xml:lang="hy">Հեռախոսային միացման հնարավորություն</name>
- <name xml:lang="ia">Supporto de connexion a rete per modem</name>
- <name xml:lang="id">Dukungan Dialup Networking</name>
- <name xml:lang="is">Upphringinetsstuðningur</name>
- <name xml:lang="it">Supporto Networking dialup</name>
- <name xml:lang="ja">ダイヤルアップネットワークサポート</name>
- <name xml:lang="kn">ದೂರವಾಣಿ ಮೂಲಕ ಜಾಲವ್ಯವಸ್ಥೆಯ ಬೆಂಬಲ</name>
- <name xml:lang="ko">전화연결 네트워킹 지원</name>
- <name xml:lang="lv">Iezvanpiekļuve datortīkliem</name>
- <name xml:lang="mai">ड़ायलअप संजालन समर्थन</name>
- <name xml:lang="ml">ഡൈല്‍-അപ്പ് നെറ്റ്‍വര്‍ക്കിങ് പിന്തുണ</name>
- <name xml:lang="mr">डायल-अप संजालन समर्थन</name>
- <name xml:lang="ms">Sokongan Rangkaian Dail-up</name>
- <name xml:lang="nb">Støtte for oppringt nettverk</name>
- <name xml:lang="ne">डायल-अप नेटवर्किङ समर्थन</name>
- <name xml:lang="nl">Inbelnetwerk ondersteuning</name>
- <name xml:lang="or">ଡାଏଲ-ଅପ ନେଟୱାର୍କିଙ୍ଗ ସହାୟତା</name>
- <name xml:lang="pa">ਡਾਇਲ-ਅੱਪ ਨੈੱਟਵਰਕ ਸਹਿਯੋਗ</name>
- <name xml:lang="pl">Obsługa sieci dial-up</name>
- <name xml:lang="pt">Suporte a Redes Telefónicas</name>
- <name xml:lang="pt_BR">Suporte à Rede Dialup</name>
- <name xml:lang="ro">Suport pentru acces la reţea prin telefon</name>
- <name xml:lang="ru">Удалённый доступ к сети</name>
- <name xml:lang="si">ඩයල්අප් ජාල පහසුකම</name>
- <name xml:lang="sk">Podpora telefonického pripojenia</name>
- <name xml:lang="sl">Podpora za klicne povezave</name>
- <name xml:lang="sq">Mbulim Punimi në Rrjet Dial-up</name>
- <name xml:lang="sr">Подршка за телефонско умрежавање</name>
- <name xml:lang="sr@latin">Podrška za telefonsko umrežavanje</name>
- <name xml:lang="sr@Latn">Podrška za telefonsko umrežavanje</name>
- <name xml:lang="sv">Stöd för uppringt nätverk</name>
- <name xml:lang="ta">டயல்-அப் பிணைய ஆதரவு</name>
- <name xml:lang="te">డయిల్-అప్ నెట్ వర్కు మద్దతు</name>
- <name xml:lang="tg">Рақамзании Интернет Dial-up</name>
- <name xml:lang="tr">Çevirmeli Ağ Desteği</name>
- <name xml:lang="uk">Комутований доступ до мережі</name>
- <name xml:lang="zh_CN">拨号网络支持</name>
- <name xml:lang="zh_TW">撥號網路支援</name>
- <description>Tools for connecting via WWAN, PPP or ISDN.</description>
- <description xml:lang="as">WWAN, PPP বা ISDN ৰে সংযোগ কৰিবলে সঁজুলিসমূহ।</description>
- <description xml:lang="bn_IN">WWAN, PPP অথবা ISDN-র মাধ্যমে সংযোগ স্থাপনার বিভিন্ন সরঞ্জাম।</description>
- <description xml:lang="cs">Nástroje pro připojení pomocí protokolů WWAN, PPP nebo ISDN.</description>
- <description xml:lang="de">Werkzeuge zur Verbindung über WWAN, PPP oder ISDN.</description>
- <description xml:lang="es">Herramientas para conexión vía WWAN, PPP o ISDN.</description>
- <description xml:lang="fr">Outils de connexion via WWAN, PPP ou ISDN.</description>
- <description xml:lang="gu">WWAN, PPP અથવા ISDN મારફતે જોડાવા માટેના સાધનો.</description>
- <description xml:lang="hi">WWAN, PPP या ISDN के द्वारा कनेक्टिंग के लिए औज़ार.</description>
- <description xml:lang="it">Strumenti per il collegamento tramite WWAN, PPP o ISDN.</description>
- <description xml:lang="ja">WWAN、PPP または ISDN 経由の接続に使用するツールです。</description>
- <description xml:lang="kn">WWAN, PPP ಅಥವ ISDN ಮೂಲಕ ಸಂಪರ್ಕಸಾಧಿಸಲು ಬಳಸಲಾಗುವ ಉಪಕರಣಗಳು.</description>
- <description xml:lang="ko">WWAN, PPP나 ISDN을 통한 연결을 위한 도구.</description>
- <description xml:lang="ml">ഡബ്ല്യൂഡബ്ല്യൂഎഎന്‍, പിപിപി അല്ലെങ്കില്‍ ഐഎസ്ഡിഎന്‍ മുഖേന കണക്ട് ചെയ്യുന്നതിനുള്ള പ്രയോഗങ്ങള്‍</description>
- <description xml:lang="mr">WWAN, PPP किंवा ISDN मार्फत जोडणीकरिता साधने.</description>
- <description xml:lang="or">WWAN, PPP କିମ୍ବା ISDN ମାଧ୍ଯମରେ ସଂଯୋଗ କରିବା ପାଇଁ ସାଧନଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">WWAN, PPP ਜਾਂ ISDN ਦੁਆਰਾ ਸੰਪਰਕ ਜੋੜਨ ਲਈ ਸੰਦ।</description>
- <description xml:lang="pl">Narzędzia do łączenia się przez WWAN, PPP lub ISDN.</description>
- <description xml:lang="pt_BR">Ferramentas para conectar via WWAN, PPP ou ISDN.</description>
- <description xml:lang="ru">Средства подключения через WWAN, PPP, ISDN.</description>
- <description xml:lang="ta">WWAN, PPP அல்லது ISDN வழியாக இணைப்பதற்கான கருவிகள்.</description>
- <description xml:lang="te">WWAN, PPP లేదా ISDN ద్వారా అనుసంధానమగుటకు సాధనాలు.</description>
- <description xml:lang="uk">Програми для встановлення з’єднання за допомогою WWAN, PPP або ISDN.</description>
- <description xml:lang="zh_CN">通过 WWAN、PPP 或者 ISDN 连接的工具。</description>
- <description xml:lang="zh_TW">用來透過 WWAN、PPP 或是 ISDN 連線的工具</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">lrzsz</packagereq>
- <packagereq type="mandatory">ModemManager</packagereq>
- <packagereq type="mandatory">NetworkManager-adsl</packagereq>
- <packagereq type="mandatory">NetworkManager-ppp</packagereq>
- <packagereq type="mandatory">ppp</packagereq>
- <packagereq type="mandatory">usb_modeswitch-data</packagereq>
- <packagereq type="mandatory">wvdial</packagereq>
- <packagereq type="optional">efax</packagereq>
- <packagereq type="optional">isdn4k-utils</packagereq>
- <packagereq type="optional">minicom</packagereq>
- <packagereq type="optional">pptp</packagereq>
- <packagereq type="optional">rp-pppoe</packagereq>
- </packagelist>
- </group>
- <group>
- <id>directory-client</id>
- <name>Directory Client</name>
- <name xml:lang="as">ডাইৰেকটৰি ক্লাএন্ট</name>
- <name xml:lang="bn">ডিরেক্টরি ক্লায়েন্ট</name>
- <name xml:lang="bn_IN">ডিরেক্টরি ক্লায়েন্ট</name>
- <name xml:lang="cs">klient LDAP</name>
- <name xml:lang="de">Verzeichnis-Client</name>
- <name xml:lang="es">Cliente de directorio</name>
- <name xml:lang="eu">Direktorio-bezeroa</name>
- <name xml:lang="fr">Client LDAP</name>
- <name xml:lang="gu">ડિરેક્ટરી ક્લાયન્ટ</name>
- <name xml:lang="hi">निर्देशिका क्लाइंट</name>
- <name xml:lang="ia">Cliente de directorio</name>
- <name xml:lang="it">Directory Client</name>
- <name xml:lang="ja">ディレクトリ接続クライアント</name>
- <name xml:lang="kn">ಡಿರೆಕ್ಟರಿ ಕ್ಲೈಂಟ್</name>
- <name xml:lang="ko">디렉터리 클라이언트</name>
- <name xml:lang="ml">ഡയറക്ടറി ക്ലയന്റ്</name>
- <name xml:lang="mr">डिरेक्ट्री क्लाएंट</name>
- <name xml:lang="or">ଡିରେକ୍ଟୋରୀ କ୍ଲାଏଣ୍ଟ</name>
- <name xml:lang="pa">ਡਾਇਰੈਕਟਰੀ ਕਲਾਈਂਟ</name>
- <name xml:lang="pl">Klient katalogu</name>
- <name xml:lang="pt_BR">Cliente de Diretório</name>
- <name xml:lang="ru">Клиент каталогов</name>
- <name xml:lang="sv">Katalogklient</name>
- <name xml:lang="ta">அடைவு வாடிக்கையாளர்</name>
- <name xml:lang="te">డైరెక్టరీ క్లైంట్</name>
- <name xml:lang="uk">Клієнт служби каталогів</name>
- <name xml:lang="zh_CN">目录客户端</name>
- <name xml:lang="zh_TW">目錄客戶端</name>
- <description>Clients for integration into a network managed by a directory service.</description>
- <description xml:lang="as">নেটৱাৰ্ক দ্বাৰা পৰিচালিত ডাইৰেকটৰি সেৱাৰ সৈতে অনুকলনৰ বাবে ব্যৱহাৰযোগ্য ক্লাএন্ট।</description>
- <description xml:lang="bn">নেটওয়ার্ক দ্বারা পরিচালিত ডিরেক্টরি পরিসেবার সাথে একত্রিকরণের জন্য ব্যবহারযোগ্য ক্লায়েন্ট।</description>
- <description xml:lang="bn_IN">নেটওয়ার্ক দ্বারা পরিচালিত ডিরেক্টরি পরিসেবার সাথে একত্রিকরণের জন্য ব্যবহারযোগ্য ক্লায়েন্ট।</description>
- <description xml:lang="cs">Klienti pro integraci do sítí spravovaných adresářovou službou.</description>
- <description xml:lang="de">Clients zur Integration in ein via Directory Service verwaltetes Netzwerk.</description>
- <description xml:lang="es">Clientes para integración en una red administrada por un servicio de directorio.</description>
- <description xml:lang="fr">Clients pour intégration dans un réseau géré par un service répertoire.</description>
- <description xml:lang="gu">ડિરેક્ટરી સેવા દ્દારા સંચાલિત થયેલ નેટવર્કમાં એકત્રીકરણ માટે ક્લાયન્ટો.</description>
- <description xml:lang="hi">निर्देशिका सेवा के द्वारा प्रबंधित संजाल में एकीकरण के लिए क्लाइंट.</description>
- <description xml:lang="ia">Clientes pro integrar a un rete administrate per un servicio de directorio.</description>
- <description xml:lang="it">Client per l'integrazione in una rete gestita da un servizio della directory.</description>
- <description xml:lang="ja">ディレクトリサービスによって管理されるネットワークに統合するための接続クライアント</description>
- <description xml:lang="kn">ಡಿರೆಕ್ಟರಿ ಸೇವೆಯಿಂದ ನಿರ್ವಹಿಸಲಾಗುತ್ತಿರುವ ಜಾಲಬಂಧದೊಂದಿಗೆ ಸೇರ್ಪಡಿಸುವ ಕ್ಲೈಂಟ್‌ಗಳು.</description>
- <description xml:lang="ko">디렉터리 서비스에 의해 관리되는 네트워크에 통합하기 위한 클라이언트</description>
- <description xml:lang="ml">ഒരു ഡയറക്ടറി സര്‍വീസ് കൈകാര്യം ചെയ്യുന്ന നെറ്റ്‌വര്‍ക്കിലേക്ക് ചേര്‍ക്കുന്നതിനുള്ള ക്ലയന്റുകള്‍.</description>
- <description xml:lang="mr">डिरेक्ट्री सर्व्हिस द्वारे व्यवस्थापीत नेटवर्कमध्ये एकत्रीत करण्यासाठी क्लाएंट्स्.</description>
- <description xml:lang="or">ଡିରେକ୍ଟୋରୀ ସର୍ଭିସ ଦ୍ୱାରା ପରିଚାଳିତ ନେଟୱର୍କ ଭିତରେ ସଂଯୁକ୍ତ କରିବା ପାଇଁ କ୍ଲାଏଣ୍ଟ।</description>
- <description xml:lang="pa">ਡਾਇਰੈਕਟਰੀ ਸਰਵਿਸ ਦੁਆਰਾ ਪਰਬੰਧਿਤ ਨੈੱਟਵਰਕ ਨਾਲ ਜੁੜਨ ਲਈ ਕਲਾਂਈਟ।</description>
- <description xml:lang="pl">Klienci do integrowania z siecią zarządzaną przez usługę katalogu.</description>
- <description xml:lang="pt_BR">Clientes para integração com a rede gerenciada pelo serviço de diretório.</description>
- <description xml:lang="ru">Клиенты для интеграции с сетью под управлением службы каталогов.</description>
- <description xml:lang="sv">Klienter för integrering i ett nätverk som hanteras med en katalogtjänst.</description>
- <description xml:lang="ta">ஒரு அடைவு சேவையால் பராமரிக்கப்பட்ட ஒரு பிணையத்தின் ஒருமைபாட்டிற்கான வாடிக்கையாளர்கள்</description>
- <description xml:lang="te">డైరెక్టరీ సేవ ద్వారా నిర్వహించబడుచున్న నెట్వర్కులోనికి విలీనం చెందుటకు క్లైంట్లు.</description>
- <description xml:lang="uk">Клієнтські програми для інтеграції до мережі, якою керує служба каталогів.</description>
- <description xml:lang="zh_CN">用于整合到使用目录服务管理的网络的客户端。</description>
- <description xml:lang="zh_TW">用來整合入一個由目錄服務所管理的網路的客戶端。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="default">adcli</packagereq>
- <packagereq type="default">certmonger</packagereq>
- <packagereq type="default">ipa-client</packagereq>
- <packagereq type="default">oddjob-mkhomedir</packagereq>
- <packagereq type="default">realmd</packagereq>
- <packagereq type="default">sssd</packagereq>
- <packagereq type="optional">clevis-dracut</packagereq>
- <packagereq type="optional">clevis-udisks2</packagereq>
- <packagereq type="optional">krb5-pkinit</packagereq>
- <packagereq type="optional">krb5-workstation</packagereq>
- <packagereq type="optional">ldapjdk</packagereq>
- <packagereq type="optional">luksmeta</packagereq>
- <packagereq type="optional">nscd</packagereq>
- <packagereq type="optional">nss-pam-ldapd</packagereq>
- <packagereq type="optional">openldap-clients</packagereq>
- <packagereq type="optional">pam_krb5</packagereq>
- <packagereq type="optional">samba-winbind</packagereq>
- <packagereq type="optional">samba-winbind-clients</packagereq>
- <packagereq type="optional">sssd-dbus</packagereq>
- <packagereq type="optional">sssd-kcm</packagereq>
- <packagereq type="optional">sssd-polkit-rules</packagereq>
- <packagereq type="optional">sssd-tools</packagereq>
- <packagereq type="optional">sssd-winbind-idmap</packagereq>
- </packagelist>
- </group>
- <group>
- <id>directory-server</id>
- <name>Directory Server</name>
- <name xml:lang="as">ডাইৰেকটৰি চাৰ্ভাৰ</name>
- <name xml:lang="bn">ডিরেক্টরি সার্ভার</name>
- <name xml:lang="bn_IN">ডিরেক্টরি সার্ভার</name>
- <name xml:lang="cs">Server LDAP</name>
- <name xml:lang="de">Verzeichnis-Server</name>
- <name xml:lang="es">Servidores de directorio</name>
- <name xml:lang="eu">Direktorio-zerbitzaria</name>
- <name xml:lang="fr">Serveur LDAP</name>
- <name xml:lang="gu">ડિરેક્ટરી સર્વર</name>
- <name xml:lang="hi">निर्देशिका सर्वर</name>
- <name xml:lang="ia">Servitor de directorio</name>
- <name xml:lang="it">Directory Server</name>
- <name xml:lang="ja">ディレクトリサーバー</name>
- <name xml:lang="kn">ಡಿರೆಕ್ಟರಿ ಪೂರೈಕೆಗಣಕ</name>
- <name xml:lang="ko">디렉터리 서버</name>
- <name xml:lang="ml">ഡയറക്ടറി സര്‍വര്‍</name>
- <name xml:lang="mr">डिरेक्ट्री सर्व्हर</name>
- <name xml:lang="or">ଡିରେକ୍ଟୋରୀ ସର୍ଭର</name>
- <name xml:lang="pa">ਡਾਇਰੈਕਟਰੀ ਸਰਵਰ</name>
- <name xml:lang="pl">Serwer katalogu</name>
- <name xml:lang="pt_BR">Servidores de Diretório</name>
- <name xml:lang="ru">Сервер каталогов</name>
- <name xml:lang="sv">Katalogservrar</name>
- <name xml:lang="ta">அடைவு சேவையகம்</name>
- <name xml:lang="te">డెరెక్టరీ సర్వరు</name>
- <name xml:lang="uk">Сервер каталогів</name>
- <name xml:lang="zh_CN">目录服务器</name>
- <name xml:lang="zh_TW">目錄伺服器</name>
- <description>Machine and user identity servers.</description>
- <description xml:lang="as">মেশিন আৰু ব্যৱহাৰকাৰীৰ পৰিচয় চাৰ্ভাৰ।</description>
- <description xml:lang="bn">মেশিন ও ব্যবহারকারীদের সনাক্তকারী সার্ভার।</description>
- <description xml:lang="bn_IN">মেশিন ও ব্যবহারকারীদের সনাক্তকারী সার্ভার।</description>
- <description xml:lang="cs">Servery pro identity počítačů a uživatelů.</description>
- <description xml:lang="de">Maschinen- und Benutzer-Identitätsserver.</description>
- <description xml:lang="es">Máquina y servidores de identidad de usuario.</description>
- <description xml:lang="fr">Serveurs d'identité machine et utilisateur.</description>
- <description xml:lang="gu">મશીન અને વપરાશકર્તા ઓળખપત્ર સર્વરો.</description>
- <description xml:lang="hi">मशीन और उपयोक्ता पहचान सर्वर.</description>
- <description xml:lang="ia">Servitores de identification de machinas e usatores.</description>
- <description xml:lang="it">Server identità utente e macchina</description>
- <description xml:lang="ja">マシンおよびユーザーの認証サーバー</description>
- <description xml:lang="kn">ಗಣಕ ಹಾಗು ಬಳಕೆದಾರರನ್ನು ಗುರುತಿಸುವ ಪೂರೈಕೆಗಣಕಗಳು.</description>
- <description xml:lang="ko">기계와 사용자 식별 서버.</description>
- <description xml:lang="ml">മഷീന്‍, യൂസര്‍ ഐഡന്റിറ്റി സര്‍വറുകള്‍.</description>
- <description xml:lang="mr">मशीन व वापरकर्ता ओळख सर्व्हस्.</description>
- <description xml:lang="or">ଯନ୍ତ୍ର ଏବଂ ଚାଳକ ପରିଚୟ ସର୍ଭରଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">ਮਸ਼ੀਨ ਅਤੇ ਯੂਜ਼ਰ ਪਛਾਣ ਸਰਵਰ।</description>
- <description xml:lang="pl">Serwery tożsamości komputerów i użytkowników.</description>
- <description xml:lang="pt_BR">Servidores de identidade de usuário e máquina</description>
- <description xml:lang="ru">Серверы идентификации компьютеров и пользователей.</description>
- <description xml:lang="sv">Maskin- och användaridentitetsservrar.</description>
- <description xml:lang="ta">கணினி மற்றும் பயனர் அடையாளங்காணும் சேவையகங்கள்.</description>
- <description xml:lang="te">మిషన్ మరియు వినియోగదారి గుర్తింపు సేవికలు.</description>
- <description xml:lang="uk">Сервери ідентифікації комп'ютерів та користувачів</description>
- <description xml:lang="zh_CN">机器和用户识别服务器。</description>
- <description xml:lang="zh_TW">機器和使用者身份伺服器。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="optional">krb5-server</packagereq>
- <packagereq type="optional">krb5-server-ldap</packagereq>
- <packagereq type="optional">migrationtools</packagereq>
- <packagereq type="optional">mod_session</packagereq>
- <packagereq type="optional">openldap-servers</packagereq>
- <packagereq type="optional">python-pyasn1-modules</packagereq>
- <packagereq type="optional">samba</packagereq>
- </packagelist>
- </group>
- <group>
- <id>dns-server</id>
- <name>DNS Name Server</name>
- <name xml:lang="af">DNS-naambediener</name>
- <name xml:lang="am">DNS የስም ሰርቨር</name>
- <name xml:lang="ar">اسم خادم خدمة أسم النّطاق (DNS)</name>
- <name xml:lang="as">DNS নাম চাৰ্ভাৰ</name>
- <name xml:lang="bal">نام سرور DNS</name>
- <name xml:lang="be">Паслужнік DNS</name>
- <name xml:lang="bg">DNS сървър на имена</name>
- <name xml:lang="bn">DNS নেইম সার্ভার</name>
- <name xml:lang="bn_IN">DNS নেইম সার্ভার</name>
- <name xml:lang="bs">DNS poslužitelj naziva</name>
- <name xml:lang="ca">Servidor de noms de DNS</name>
- <name xml:lang="cs">DNS server</name>
- <name xml:lang="cy">Gweinydd Enwau DNS</name>
- <name xml:lang="da">DNS-navneserver</name>
- <name xml:lang="de">DNS-Nameserver</name>
- <name xml:lang="el">Διακομιστής ονομάτων DNS</name>
- <name xml:lang="en_GB">DNS Name Server</name>
- <name xml:lang="es">Servidor de nombres DNS</name>
- <name xml:lang="et">DNS nimeserver</name>
- <name xml:lang="eu">DNS izen-zerbitzaria</name>
- <name xml:lang="fa">کارگزار نام DNS</name>
- <name xml:lang="fi">DNS-nimipalvelin</name>
- <name xml:lang="fr">Serveur de nom DNS</name>
- <name xml:lang="gu">DNS નામ સર્વર</name>
- <name xml:lang="he">שרת שמות (DNS).</name>
- <name xml:lang="hi">DNS नाम सर्वर</name>
- <name xml:lang="hr">DNS poslužitelj naziva</name>
- <name xml:lang="hu">DNS névkiszolgáló</name>
- <name xml:lang="hy">DNS Անունների սերվեր</name>
- <name xml:lang="ia">Servitor de nomines DNS</name>
- <name xml:lang="id">DNS Name Server</name>
- <name xml:lang="ilo">Serbidor ti DNS a Nagnagan</name>
- <name xml:lang="is">DNS nafnaþjónn</name>
- <name xml:lang="it">Server dei nomi DNS</name>
- <name xml:lang="ja">DNS ネームサーバー</name>
- <name xml:lang="ka">DNS სახელთა სერვერი</name>
- <name xml:lang="kn">DNS ನಾಮಪೂರೈಕೆಗಣಕ</name>
- <name xml:lang="ko">DNS 네임 서버</name>
- <name xml:lang="lv">DNS vārdu serveris</name>
- <name xml:lang="mai">DNS नाम सर्वर</name>
- <name xml:lang="mk">DNS сервер</name>
- <name xml:lang="ml">DNS നെയിം സര്‍വര്‍</name>
- <name xml:lang="mr">DNS नाम सर्व्हर</name>
- <name xml:lang="ms">Pelayan Nama DNS</name>
- <name xml:lang="nb">DNS-tjener</name>
- <name xml:lang="ne">DNS नाम सर्भर</name>
- <name xml:lang="nl">DNS-nameserver</name>
- <name xml:lang="no">DNS-tjener</name>
- <name xml:lang="nso">Seabi sa Leina la DNS</name>
- <name xml:lang="or">ଡି.ଏନ୍.ଏସ୍. ନାମ ସେବକ</name>
- <name xml:lang="pa">DNS ਨਾਂ ਸਰਵਰ</name>
- <name xml:lang="pl">Serwer nazw DNS</name>
- <name xml:lang="pt">Servidor de Nomes DNS</name>
- <name xml:lang="pt_BR">Servidor de Nomes DNS</name>
- <name xml:lang="ro">Server de nume DNS</name>
- <name xml:lang="ru">Сервер DNS</name>
- <name xml:lang="si">DNS Name සේවා දායකය</name>
- <name xml:lang="sk">DNS menný server</name>
- <name xml:lang="sl">Imenski strežnik DNS</name>
- <name xml:lang="sq">Shërbyes Emrash DNS</name>
- <name xml:lang="sr">DNS сервер имена</name>
- <name xml:lang="sr@latin">DNS server imena</name>
- <name xml:lang="sr@Latn">DNS server imena</name>
- <name xml:lang="sv">DNS-namnserver</name>
- <name xml:lang="ta">DNS பெயர் சேவையகம்</name>
- <name xml:lang="te">DNS పేరుకల సర్వరు</name>
- <name xml:lang="tg">Номи хидматгоҳи DNS</name>
- <name xml:lang="th">ตัวให้บริการ DNS</name>
- <name xml:lang="tr">DNS İsim Sunucusu</name>
- <name xml:lang="uk">Сервер DNS</name>
- <name xml:lang="ur">نام سرور (DNS)</name>
- <name xml:lang="vi">Server tên miền DNS</name>
- <name xml:lang="zh_CN">DNS 名称服务器</name>
- <name xml:lang="zh_TW">DNS 名稱伺服器</name>
- <name xml:lang="zu">Umlekeleli Wegama le-DNS</name>
- <description>This package group allows you to run a DNS name server (BIND) on the system.</description>
- <description xml:lang="af">Hierdie pakket stel jou in staat om 'n DNS-naambediener (BIND) op die rekenaar te laat loop.</description>
- <description xml:lang="am">የዚህ ጥቅል ቡድን የDNS የስም ሰርቨር (BIND)ን በሲስተሙ ላይ ለማስኬድ ያስችልዎታል።</description>
- <description xml:lang="ar">تتيح لك هذه المجموعة من الحزم تشغيل خادم خدمة أسم النّطاق (BIND) على النظام.</description>
- <description xml:lang="as">এই পেকেইজে আপোনাক চিস্টেমত DNS নামকৰণৰ চাৰ্ভাৰ(BIND) চলোৱা সম্ভৱ কৰে।</description>
- <description xml:lang="bal">ای گروه بستگ په شما اجازت دن تا یک نام DNS سروری(BIND) اور سیستم اجرا کنیت.</description>
- <description xml:lang="bg">Тази група пакети позволява стартирането на DNS сървър за имена (BIND).</description>
- <description xml:lang="bn">এই প্যাকেজগুলির সাহায্যে সিস্টেমে একটি DNS নেম সার্ভার (BIND) চালানো যাবে।</description>
- <description xml:lang="bn_IN">এই প্যাকেজগুলির সাহায্যে সিস্টেমে একটি DNS নেম সার্ভার (BIND) চালানো যাবে।</description>
- <description xml:lang="bs">Ova vam grupa paketa dopušta pokretanje DNS poslužitelja naziva (BIND).</description>
- <description xml:lang="ca">Aquest grup de paquets us permet executar un servidor de noms DNS (BIND) en el sistema.</description>
- <description xml:lang="cs">Skupina balíčků pro provoz DNS serveru (BIND).</description>
- <description xml:lang="cy">Mae'r grŵp pecynnau yma'n caniatáu i chi redeg gweinydd enwau DNS (BIND) ar y system.</description>
- <description xml:lang="da">Denne pakkegruppe lader dig køre en DNS-navneserver (BIND) på systemet.</description>
- <description xml:lang="de">Mit dieser Paketgruppe können Sie einen DNS-Nameserver (BIND) auf dem System betreiben.</description>
- <description xml:lang="el">Αυτή η ομάδα πακέτων επιτρέπει τη λειτουργία DNS διακομιστή ονομάτων (BIND) στο σύστημα.</description>
- <description xml:lang="en_GB">This package group allows you to run a DNS name server (BIND) on the system.</description>
- <description xml:lang="es">Este paquete le permite ejecutar un servidor de nombres DNS (BIND) en el sistema.</description>
- <description xml:lang="et">See paketirühm võimaldab DNS nimeserverit (BIND) jooksutada.</description>
- <description xml:lang="fa">این گروه بسته به شما امکان می‌دهد که یک کارگزار نام DNS‏ (BIND) روی سیستم اجرا کنید.</description>
- <description xml:lang="fi">Tämä paketti mahdollistaa DNS-nimipalvelimen (BIND) ajamisen järjestelmässä.</description>
- <description xml:lang="fr">Ce groupe de paquetages vous permet d'exécuter un serveur de noms DNS (BIND) sur le système.</description>
- <description xml:lang="gu">આ પેકેજનું જૂથ તમને સિસ્ટમ પર DNS નામ સેવા (BIND) ચલાવવાની પરવાનગી આપે છે.</description>
- <description xml:lang="he">קבוצת חבילות זו מאפשרת לך להריץ את BIND, שרת שמות (DNS) על גבי המערכת.</description>
- <description xml:lang="hi">इस संकुल समूह से आप सिस्टम पर DNS नाम सर्वर (BIND) को चला सकते हैं.</description>
- <description xml:lang="hr">Ova vam grupa paketa dopušta pokretanje DNS poslužitelja naziva (BIND).</description>
- <description xml:lang="hu">Ez a csoport DNS-kiszolgáló (BIND) kialakításához szükséges programokat tartalmaz.</description>
- <description xml:lang="ia">Iste gruppo de pacchettos te permitte exequer un servitor de nomines DNS (BIND) sur le systema.</description>
- <description xml:lang="id">Di grup paket ini membolehkan anda untuk menjalakan server name DNS (BIND) pada sistem.</description>
- <description xml:lang="is">Þessi pakkahópur gerir þér kleyft að keyra DNS nafnaþjón (BIND) á vélinni þinni.</description>
- <description xml:lang="it">Questo gruppo di pacchetti consente di eseguire un server dei nomi DNS (BIND) sul sistema.</description>
- <description xml:lang="ja">このパッケージグループを使用するとシステムで DNS ネームサーバー (BIND) を稼動できます。</description>
- <description xml:lang="kn">ಈ ಪ್ಯಾಕೇಜ್ ಸಮೂಹ ನಿಮ್ಮ ಗಣಕದಲ್ಲಿ ನಾಮಪೂರೈಕೆಗಣಕವನ್ನು (DNS name server (BIND)) ಚಾಲಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.</description>
- <description xml:lang="ko">이 패키지 그룹을 사용하여 시스템 상에서 DNS 네임 서버 (BIND)를 운영하실 수 있습니다.</description>
- <description xml:lang="lv">Šīs grupas pakotnes ļaus Jums uzstādīt iestatīt DNS serveri BIND.</description>
- <description xml:lang="mai">ई संकुल समूह सँ अहाँ सिस्टम पर DNS नाम सर्वर (BIND) केँ चलाए सकैत छी.</description>
- <description xml:lang="mk">Овој пакет Ви овозможва да користите DNS сервер (BIND) на системот.</description>
- <description xml:lang="ml">കംപ്യൂട്ടറില്‍ DNS നെയിം സര്‍വര്‍ (BIND) പ്രവര്‍ത്തിപ്പിയ്ക്കുന്നതിനായി നിങ്ങളെ ഈ പാക്കേജ് സഹായിക്കുന്നു.</description>
- <description xml:lang="mr">हा संकुल संच तुम्हास DNS नाम सेवक (BIND) प्रणालीवर चालवू देतो.</description>
- <description xml:lang="ms">Kumpulan pakej ini membolehkan anda untuk melaksanakan pelayan nama DNS (BIND) pada sistem.</description>
- <description xml:lang="nb">Denne pakkegruppen lar deg kjøre en DNS-tjener (BIND) på systemet.</description>
- <description xml:lang="ne">यो प्याकेज समूहले तपाईँलाई प्रणालीमा DNS नाम सर्भर (BIND) चलाउन अनुमति दिन्छ ।</description>
- <description xml:lang="nl">Met deze pakketgroep kunt u een DNS-nameserver (BIND) op het systeem draaien.</description>
- <description xml:lang="no">Denne pakkegruppen lar deg kjøre en DNS-tjener (BIND) på systemet.</description>
- <description xml:lang="nso">Sehlopha se sa sephuthelwana se go dumelela go diriša seabi (BIND) sa leina la DNS tshepedišong.</description>
- <description xml:lang="or">ଏହି ପ୍ଯାକେଜ ସମୂହଟି ଆପଣଙ୍କୁ ତନ୍ତ୍ର ରେ ଡି.ଏନ୍.ଏସ୍. ନାମ ସେବକ (ବାଇଣ୍ଡ) କୁ ଚଳାଇବା ପାଇଁ ଅନୁମତି ପ୍ରଦାନ କରି ଥାଏ</description>
- <description xml:lang="pa">ਇਹ ਪੈਕੇਜ ਤੁਹਾਨੂੰ ਆਪਣੇ ਸਿਸਟਮ ਤੇ DNS ਨਾਂ -ਸਰਵਰ(BIND) ਨੂੰ ਚਲਾਉਣ ਲਈ ਸਹਾਈ ਹੈ।</description>
- <description xml:lang="pl">Ta grupa pakietów umożliwia uruchomienie serwera nazw DNS (BIND).</description>
- <description xml:lang="pt">Este grupo de pacotes permite-lhe correr um servidor de nomes de DNS (o BIND) no sistema.</description>
- <description xml:lang="pt_BR">Este grupo de pacotes permite rodar um servidor de nomes DNS (BIND) no sistema.</description>
- <description xml:lang="ro">Acest grup de pachete vă permite să rulaţi pe sistem un server de nume DNS (BIND).</description>
- <description xml:lang="ru">Пакеты в этой группе позволят вам установить и настроить DNS (BIND).</description>
- <description xml:lang="si">මෙම ඇසුරුම් කණ්ඩායම තුල තිබෙන ඇසුරුම් DNS name සේවා දායකයක් (BIND) පද්ධතිය තුල ක්‍රියා කිරීමට අවශ්‍ය පහසුකම් සලසනු ලබයි.</description>
- <description xml:lang="sk">Táto skupina balíčkov vám umožní spustiť DNS menný server (BIND) na počítači.</description>
- <description xml:lang="sl">Ta skupina paketov vam omogoča poganjanje imenskega strežnika DNS (BIND) v sistemu.</description>
- <description xml:lang="sq">Ky grup paketash ju lejon të xhironi në sistem një shërbyes emrash DNS (BIND).</description>
- <description xml:lang="sr">Ова група пакета омогућава извршавање DNS сервера имена (BIND) на систему.</description>
- <description xml:lang="sr@latin">Ova grupa paketa omogućava izvršavanje DNS servera imena (BIND) na sistemu.</description>
- <description xml:lang="sr@Latn">Ova grupa paketa omogućava izvršavanje DNS servera imena (BIND) na sistemu.</description>
- <description xml:lang="sv">Denna paketgrupp låter dig köra en DNS-namnserver (BIND) på systemet.</description>
- <description xml:lang="ta">இந்த தொகுப்பு குழு கணினியில் DNS பெயர் சேவையகத்தை (BIND) இயக்க அனுமதிக்கிறது.</description>
- <description xml:lang="te">DNS పేరుగల సర్వరును (BIND) మీ కంప్యూటరులో ఉపయోగించటానికి ఈ అనువర్తనాల సమూహం అనుమతిస్తుంది.</description>
- <description xml:lang="tg">Ин гуруҳи барномаҳо иҷозат медиҳад, номи хидматгоҳи DNS (BIND)дар система иҷро кунед.</description>
- <description xml:lang="th">แพ็กเกจกลุ่มนี้ทำให้คุณรันตัวให้บริการชื่อ DNS (BIND) บนระบบได้</description>
- <description xml:lang="tr">Bu paket grubu sisteminizde DNS isim sunucusu (BIND) çalıştırabilmenizi mümkün kılar.</description>
- <description xml:lang="uk">Пакунки цієї групи дозволяють встановити та налаштувати сервер DNS (BIND).</description>
- <description xml:lang="ur">یھ مجموعہ اپ کو اجازت د ے گا نظام پر DNS name server (BIND) چلانے کے لے</description>
- <description xml:lang="vi">Nhóm gói này cho phép bạn chạy Server tên miền DNS (BIND) trên hệ thống.</description>
- <description xml:lang="zh_CN">该软件包组允许您在系统上运行 DNS 名称服务器(BIND)。</description>
- <description xml:lang="zh_TW">這個套件群組讓您可以在系統上執行 DNS 名稱伺服器 (BIND)。</description>
- <description xml:lang="zu">Leli qembu likuvuma ukuba usebenzise igama lomlekeleli we-DNS (BIND) kulesistimu</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="default">bind-chroot</packagereq>
- <packagereq type="optional">bind-dyndb-ldap</packagereq>
- <packagereq type="optional">unbound</packagereq>
- </packagelist>
- </group>
- <group>
- <id>emacs</id>
- <name>Emacs</name>
- <name xml:lang="af">Emacs</name>
- <name xml:lang="am">ኢማክስ</name>
- <name xml:lang="ar">إيماكس</name>
- <name xml:lang="as">Emacs</name>
- <name xml:lang="be">Emacs</name>
- <name xml:lang="bn">Emacs</name>
- <name xml:lang="bn_IN">Emacs</name>
- <name xml:lang="bs">Emacs</name>
- <name xml:lang="ca">Emacs</name>
- <name xml:lang="cs">Emacs</name>
- <name xml:lang="cy">Emacs</name>
- <name xml:lang="de">Emacs</name>
- <name xml:lang="en_GB">Emacs</name>
- <name xml:lang="es">Emacs</name>
- <name xml:lang="eu">Emacs</name>
- <name xml:lang="fa">ای‌مَکس</name>
- <name xml:lang="fi">Emacs</name>
- <name xml:lang="fr">Emacs</name>
- <name xml:lang="gl">Emacs</name>
- <name xml:lang="gu">Emacs</name>
- <name xml:lang="hi">Emacs</name>
- <name xml:lang="hr">Emacs</name>
- <name xml:lang="hu">Emacs</name>
- <name xml:lang="hy">Emacs</name>
- <name xml:lang="ia">Emacs</name>
- <name xml:lang="id">Emacs</name>
- <name xml:lang="ilo">Emacs</name>
- <name xml:lang="it">Emacs</name>
- <name xml:lang="ja">Emacs</name>
- <name xml:lang="ka">Emacs</name>
- <name xml:lang="kn">Emacs</name>
- <name xml:lang="ko">이맥스</name>
- <name xml:lang="lv">Emacs</name>
- <name xml:lang="mk">Emacs</name>
- <name xml:lang="ml">ഈമാക്സ്</name>
- <name xml:lang="mr">ईमॅक्स्</name>
- <name xml:lang="no">Emacs</name>
- <name xml:lang="nso">Emacs</name>
- <name xml:lang="or">ଇ-ମାକ୍ସ</name>
- <name xml:lang="pa">ਈਮੈਕਸ</name>
- <name xml:lang="pl">Emacs</name>
- <name xml:lang="pt_BR">Emacs</name>
- <name xml:lang="ru">Emacs</name>
- <name xml:lang="si">Emacs</name>
- <name xml:lang="sl">Emacs</name>
- <name xml:lang="sq">Emacs</name>
- <name xml:lang="sv">Emacs</name>
- <name xml:lang="ta">Emacs</name>
- <name xml:lang="te">ఈమాక్స్</name>
- <name xml:lang="th">Emacs</name>
- <name xml:lang="tr">Emacs</name>
- <name xml:lang="uk">Emacs</name>
- <name xml:lang="ur">إيماكس</name>
- <name xml:lang="vi">Emacs</name>
- <name xml:lang="zh_CN">Emacs</name>
- <name xml:lang="zh_TW">Emacs</name>
- <name xml:lang="zu">I-emacs</name>
- <description>The GNU Emacs extensible, customizable, text editor.</description>
- <description xml:lang="as">GNU Emacs প্ৰসাৰণযোগ্য, স্বনিৰ্ধাৰণযোগ্য গুণ, টেক্সট এডিটৰ।</description>
- <description xml:lang="bn">GNU Emacs প্রসারণযোগ্য, বৈশিষ্ট্য স্বনির্ধারণযোগ্য, টেক্সট এডিটর।</description>
- <description xml:lang="bn_IN">GNU Emacs প্রসারণযোগ্য, বৈশিষ্ট্য স্বনির্ধারণযোগ্য, টেক্সট এডিটর।</description>
- <description xml:lang="cs">Rozšiřitelný a nastavitelný textový editor GNU Emacs.</description>
- <description xml:lang="de">Der GNU-Emacs erweiterbare, anpassbare Texteditor.</description>
- <description xml:lang="es">El editor de texto de Emacs de GNU extensible y personalizable.</description>
- <description xml:lang="fr">L'éditeur de texte GNU Emacs est extensible et personnalisable.</description>
- <description xml:lang="gu">GNU Emacs વિસ્તૃત કરી શકાય તેવુ, વૈવિધ્યપૂર્ણ થઇ શકે તેવુ, લખાણ સંપાદક.</description>
- <description xml:lang="hi">GNU Emacs विस्तार योग्य, पसंदीदाकरण योग्य पाठ संपादक.</description>
- <description xml:lang="ia">Le editor de textos extensibile e personalisabile GNU Emacs.</description>
- <description xml:lang="it">L'editor di testo di GNU Emacs personalizzabile ed estendibile.</description>
- <description xml:lang="ja">拡張およびカスタマイズ可能な GNU Emacs テキストエディタ</description>
- <description xml:lang="kn">GNU Emacs ವಿಸ್ತಾರವಾದ, ಇಚ್ಛೆಗೆ ತಕ್ಕಂತೆ ಬದಲಾಯಿಸಬಹುದಾದ, ಪಠ್ಯ ಸಂಪಾದಕ.</description>
- <description xml:lang="ko">GNU 이맥스 - 확장가능하고 사용자 변경 가능한 텍스트 에디터</description>
- <description xml:lang="ml">ഗ്നു ഈമാക്സ് ടെക്സ്റ്റ് എഡിറ്റര്‍.</description>
- <description xml:lang="mr">GNU Emacs एक्सटेंसिबल, पसंतीचे, मजकूर संपादक.</description>
- <description xml:lang="or">GNU Emacs ଅନୁଲମ୍ବିତ, ଇଚ୍ଛାରୂପଣ, ପାଠ୍ୟ ସମ୍ପାଦକ।</description>
- <description xml:lang="pa">GNU ਈਮੈਕਸ ਐਕਸਟੈਂਸੀਬਲ, ਪਸੰਦੀਯੋਗ, ਪਾਠ ਸੰਪਾਦਕ।</description>
- <description xml:lang="pl">Rozszerzalny, łatwo modyfikowalny edytor tekstu GNU Emacs.</description>
- <description xml:lang="pt_BR">O editor de texto do GNU Emacs, extensível, personalizável.</description>
- <description xml:lang="ru">Многофункциональный расширяемый текстовый редактор Emacs, распространяемый на условиях GNU GPL.</description>
- <description xml:lang="sv">Den utbyggbara, anpassningsbara, textredigeraren GNU Emacs.</description>
- <description xml:lang="ta">GNU Emacs விரிவாக்கக்கூடிய, தனிபயாக்கக்கூடிய, உரையை எடிட் செய்ய கூடியதாகும்.</description>
- <description xml:lang="te">విస్తృతపరచగల, మలచుకొనగల, పాఠపు సరికూర్పరి GNU Emacs.</description>
- <description xml:lang="uk">Гнучкий у можливостях розширення та налаштування текстовий редактор GNU Emacs.</description>
- <description xml:lang="zh_CN">GNU Emacs 可扩展、可自定义的文本编辑器。</description>
- <description xml:lang="zh_TW">可延伸、自訂化的 GNU Emacs 文字編輯器。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">emacs</packagereq>
- <packagereq type="optional">ctags-etags</packagereq>
- <packagereq type="optional">emacs-auctex</packagereq>
- <packagereq type="optional">emacs-gnuplot</packagereq>
- <packagereq type="optional">emacs-nox</packagereq>
- </packagelist>
- </group>
- <group>
- <id>file-server</id>
- <name>File and Storage Server</name>
- <name xml:lang="as">ফাইল আৰু সংৰক্ষণ চাৰ্ভাৰ</name>
- <name xml:lang="bn_IN">ফাইল এবং স্টোরেজ সার্ভার</name>
- <name xml:lang="cs">Úložný a souborový server</name>
- <name xml:lang="de">Datei- und Storage-Server</name>
- <name xml:lang="es">Servidor y archivo de almacenamiento</name>
- <name xml:lang="fr">Serveur de fichiers et de stockage</name>
- <name xml:lang="gu">ફાઇલ અને સ્ટોરેજ સર્વર</name>
- <name xml:lang="hi">फ़ाइल और भंडार सर्वर</name>
- <name xml:lang="it">Server di storage e file</name>
- <name xml:lang="ja">ファイルとストレージサーバー</name>
- <name xml:lang="kn">ಕಡತ ಮತ್ತು ಶೇಖರಣಾ ಪೂರೈಕೆಗಣಕಗಳು</name>
- <name xml:lang="ko">파일 및 스토리지 서버</name>
- <name xml:lang="ml">ഫയല്‍, സംഭരണ സര്‍വര്‍</name>
- <name xml:lang="mr">फाइल आणि स्टोरेज सर्व्हर</name>
- <name xml:lang="or">ଫାଇଲ ଏବଂ ସଂରକ୍ଷଣ ସର୍ଭର</name>
- <name xml:lang="pa">ਫਾਈਲ ਅਤੇ ਭੰਡਾਰਣ ਸਰਵਰ</name>
- <name xml:lang="pl">Serwer plików i przechowywania danych</name>
- <name xml:lang="pt_BR">Arquivo e Servidor de Armazenamento</name>
- <name xml:lang="ru">Сервер файлов и печати</name>
- <name xml:lang="ta">கோப்பு மற்றும் சேமிப்பக சேவையகம்</name>
- <name xml:lang="te">ఫైలు మరియు నిల్వ సేవిక</name>
- <name xml:lang="uk">Сервер для зберігання файлів і даних</name>
- <name xml:lang="zh_CN">文件及存储服务器</name>
- <name xml:lang="zh_TW">檔案與儲存伺服器</name>
- <description>CIFS, SMB, NFS, iSCSI, iSER, and iSNS network storage server.</description>
- <description xml:lang="as">CIFS, SMB, NFS, iSCSI, iSER, আৰু iSNS নেটৱাৰ্ক সংৰক্ষণ চাৰ্ভাৰ।</description>
- <description xml:lang="bn_IN">CIFS, SMB, NFS, iSCSI, iSER, এবং iSNS নেটওয়ার্ক স্টোরেজ সার্ভার।</description>
- <description xml:lang="cs">Server pro síťová úložiště CIFS, SMB, NFS, iSCSI, iSER a iSNS.</description>
- <description xml:lang="de">CIFS, SMB, NFS, iSCSI, iSER und iSNS Netzwerk-Storage-Server.</description>
- <description xml:lang="es">CIFS, SMB, NFS, iSCSI, iSER, y servidor de almacenamiento de red iSNS.</description>
- <description xml:lang="fr">Serveur de stockage réseau CIFS, SMB, NFS, iSCSI, iSER et iSNS.</description>
- <description xml:lang="gu">CIFS, SMB, NFS, iSCSI, iSER, અને iSNS નેટવર્ક સ્ટોરેજ સર્વર.</description>
- <description xml:lang="hi">CIFS, SMB, NFS, iSCSI, iSER, और iSNS संजाल भंडारण सर्वर.</description>
- <description xml:lang="it">Server per lo storage di rete CIFS, SMB, NFS, iSCSI, iSER e iSNS.</description>
- <description xml:lang="ja">CIFS、SMB、NFS、iSCSI、iSER、iSNS のネットワークストレージサーバーです。</description>
- <description xml:lang="kn">CIFS, SMB, NFS, iSCSI, iSER, ಹಾಗು iSNS ಜಾಲಬಂಧ ಶೇಖರಣಾ ಪೂರೈಕೆಗಣಕ.</description>
- <description xml:lang="ko">CIFS, SMB, NFS, iSCSI, iSER, iSNS 네트워크 스토리지 서버.</description>
- <description xml:lang="ml">സിഐഎഫ്എസ്, എസ്എംബി, എന്‍എഫ്എസ്, iSCSI, iSER, iSNS നെറ്റ്‌വര്‍ക്ക് സംഭരണ സര്‍വര്‍.</description>
- <description xml:lang="mr">CIFS, SMB, NFS, iSCSI, iSER, आणि iSNS नेटवर्क स्टोरेज सर्व्हर.</description>
- <description xml:lang="or">CIFS, SMB, NFS, iSCSI, iSER, ଏବଂ iSNS ନେଟୱର୍କ ସଂରକ୍ଷଣ ସର୍ଭର।</description>
- <description xml:lang="pa">CIFS, SMB, NFS, iSCSI, iSER, ਅਤੇ iSNS ਨੈੱਟਵਰਕ ਭੰਡਾਰਣ ਸਰਵਰ।</description>
- <description xml:lang="pl">Serwer sieciowego przechowywania danych w CIFS, SMB, NFS, iSCSI, iSER i iSNS.</description>
- <description xml:lang="pt_BR">CIFS, SMB, NFS, iSCSI, iSER, e servidor de armazenamento de rede iSNS</description>
- <description xml:lang="ru">Сетевой сервер CIFS, SMB, NFS, iSCSI, iSER, iSNS.</description>
- <description xml:lang="ta">CIFS, SMB, NFS, iSCSI, iSER மற்றும் iSNS பிணையிஅ சேமிப்பக சேவையகம்.</description>
- <description xml:lang="te">CIFS, SMB, NFS, iSCSI, iSER, మరియు iSNS నెట్వర్కు నిల్వ సేవిక.</description>
- <description xml:lang="uk">Сервер зберігання даних CIFS, SMB, NFS, iSCSI, iSER та iSNS.</description>
- <description xml:lang="zh_CN">CIFS, SMB, NFS, iSCSI, iSER 及 iSNS 网络存储服务器。</description>
- <description xml:lang="zh_TW">CIFS、SMB、NFS、iSCSI、iSER 和 iSNS 網路儲存伺服器。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">cifs-utils</packagereq>
- <packagereq type="mandatory">gssproxy</packagereq>
- <packagereq type="mandatory">nfs-utils</packagereq>
- <packagereq type="mandatory">nfs4-acl-tools</packagereq>
- <packagereq type="mandatory">samba</packagereq>
- <packagereq type="mandatory">targetcli</packagereq>
- <packagereq type="mandatory">targetd</packagereq>
- <packagereq type="optional">isns-utils</packagereq>
- <packagereq type="optional">nfsometer</packagereq>
- <packagereq type="optional">nfstest</packagereq>
- </packagelist>
- </group>
- <group>
- <id>fonts</id>
- <name>Fonts</name>
- <name xml:lang="ar">خطوط</name>
- <name xml:lang="as">ফন্টসমূহ</name>
- <name xml:lang="bal">فونت آن</name>
- <name xml:lang="bg">Шрифтове</name>
- <name xml:lang="bn">ফন্ট</name>
- <name xml:lang="bn_IN">ফন্ট</name>
- <name xml:lang="ca">Tipus de lletra</name>
- <name xml:lang="cs">Sada fontů</name>
- <name xml:lang="da">Skrifttyper</name>
- <name xml:lang="de">Schriftarten</name>
- <name xml:lang="el">Γραμματοσειρές</name>
- <name xml:lang="es">Fuentes</name>
- <name xml:lang="et">Kirjatüübid (fondid)</name>
- <name xml:lang="eu">Letra-tipoak</name>
- <name xml:lang="fi">Kirjasimet</name>
- <name xml:lang="fr">Police</name>
- <name xml:lang="gu">ફોન્ટ</name>
- <name xml:lang="he">גופנים</name>
- <name xml:lang="hi">फ़ॉन्ट</name>
- <name xml:lang="hu">Betűkészletek</name>
- <name xml:lang="ia">Characteres</name>
- <name xml:lang="id">Huruf</name>
- <name xml:lang="is">Letur</name>
- <name xml:lang="it">Caratteri</name>
- <name xml:lang="ja">フォント</name>
- <name xml:lang="kn">ಅಕ್ಷರಶೈಲಿಗಳು</name>
- <name xml:lang="ko">폰트</name>
- <name xml:lang="lv">Fonti</name>
- <name xml:lang="mai">फान्ट्स</name>
- <name xml:lang="ml">ലിപികള്‍</name>
- <name xml:lang="mr">फॉन्ट</name>
- <name xml:lang="ms">Font</name>
- <name xml:lang="nb">Skrifter</name>
- <name xml:lang="ne">फन्ट</name>
- <name xml:lang="nl">Lettertypes</name>
- <name xml:lang="or">ଅକ୍ଷରରୂପଗୁଡ଼ିକ</name>
- <name xml:lang="pa">ਫੌਂਟ</name>
- <name xml:lang="pl">Czcionki</name>
- <name xml:lang="pt">Tipos de Letra</name>
- <name xml:lang="pt_BR">Fontes</name>
- <name xml:lang="ru">Шрифты</name>
- <name xml:lang="sk">Písma</name>
- <name xml:lang="sr">Фонтови</name>
- <name xml:lang="sr@latin">Fontovi</name>
- <name xml:lang="sr@Latn">Fontovi</name>
- <name xml:lang="sv">Typsnitt</name>
- <name xml:lang="ta">எழுத்துருக்கள்</name>
- <name xml:lang="te">ఫాంట్లు</name>
- <name xml:lang="tg">Ҳарфҳо</name>
- <name xml:lang="th">แบบอักษร</name>
- <name xml:lang="uk">Шрифти</name>
- <name xml:lang="zh_CN">字体</name>
- <name xml:lang="zh_TW">字型</name>
- <description>Fonts for rendering text in a variety of languages and scripts.</description>
- <description xml:lang="as">বিভিন্ন ভাষা আৰু লিপিত লিখা টেক্সট ৰেন্ডাৰ কৰিবলৈ ব্যৱহৃত ফন্ট সঁজুলিসমূহ।</description>
- <description xml:lang="bn">বিভিন্ন ভাষা ও লীপিতে লেখা টেক্সট রেন্ডার করতে ব্যবহৃত ফন্ট প্যাকেজ।</description>
- <description xml:lang="bn_IN">বিভিন্ন ভাষা ও লীপিতে লেখা টেক্সট রেন্ডার করতে ব্যবহৃত ফন্ট প্যাকেজ।</description>
- <description xml:lang="cs">Fonty pro zobrazování textu v různých jazycích a zápisech.</description>
- <description xml:lang="de">Font-Pakete für das Rendering von Text in einer Vielfalt von Sprachen und Skripten.</description>
- <description xml:lang="es">Paquetes de tipos de letra para crear una variedad de idiomas y scripts.</description>
- <description xml:lang="fr">Polices pour la restitution de textes dans un éventail de langues et scripts.</description>
- <description xml:lang="gu">ભાષાઓ અને સ્ક્રિપ્ટોની વિવિધતામાં રેન્ડરિંગ લખાણ માટે ફોન્ટો.</description>
- <description xml:lang="hi">विभिन्न भाषा और स्क्रिप्ट में पाठ रेंडरिंग के लिए फ़ॉन्ट.</description>
- <description xml:lang="ia">Characteres pro render texto in varie linguas e scriptos.</description>
- <description xml:lang="it">Caratteri per la rappresentazione del testo in una varietà di lingue e script.</description>
- <description xml:lang="ja">異なる言語やスクリプトにテキストをレンダリングするためのフォント</description>
- <description xml:lang="kn">ಹಲವಾರು ಭಾಷೆಗಳು ಹಾಗು ಲಿಪಿಗಳಲ್ಲಿ ಪಠ್ಯವನ್ನು ರೆಂಡರ್ ಮಾಡುವ ಅಕ್ಷರಶೈಲಿಗಳು.</description>
- <description xml:lang="ko">여러 언어와 문자에서 텍스트를 표시하기 위한 폰트</description>
- <description xml:lang="ml">അനവധി ഭാഷകളിലും സ്ക്രിപ്റ്റുകളിലും വാക്യം റെണ്ടര്‍ ചെയ്യുവാനുള്ള അക്ഷരസഞ്ചയങ്ങള്‍.</description>
- <description xml:lang="mr">विविध भाषा व स्क्रिप्टस् मध्ये मजकूर दाखवण्याकरीता फाँट्स्.</description>
- <description xml:lang="or">ବିଭିନ୍ନ ଭାଷା ଏବଂ ସ୍କ୍ରିପ୍ଟଗୁଡ଼ିକରେ ପାଠ୍ୟ ଚିତ୍ରଣ ପାଇଁ ଅକ୍ଷରରୂପ।</description>
- <description xml:lang="pa">ਵੱਖ-ਵੱਖ ਭਾਸ਼ਾਵਾਂ ਅਤੇ ਸਕਰਿਪਟਾਂ ਵਿੱਚ ਟੈਕਸਟ ਰੈਂਡਰਿੰਗ ਲਈ ਫੌਂਟ।</description>
- <description xml:lang="pl">Czcionki do wyświetlania tekstu w różnych językach i pismach.</description>
- <description xml:lang="pt_BR">Fontes para renderizar texto em diversas linguas e scripts</description>
- <description xml:lang="ru">Шрифты для отображения текста на различных языках.</description>
- <description xml:lang="sv">Typsnitt för att rendera text i ett antal olika språk och alfabeten.</description>
- <description xml:lang="ta">பல்வேறு மொழிகள் மற்றும் எழுத்துக்களில் உள்ள உரைகளை திரும்ப தருகின்றன.</description>
- <description xml:lang="te">పాఠమును వివిధ భాషలనందు మరియు లిపులనందు చూపుటకు ఫాంట్లు.</description>
- <description xml:lang="uk">Шрифти для показу тексту різними мовами та писемностями.</description>
- <description xml:lang="zh_CN">在各种语言和脚本中输入文本的字体。</description>
- <description xml:lang="zh_TW">用來處理各種語言與 script 中的文字的字型。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="default">cjkuni-uming-fonts</packagereq>
- <packagereq type="default">dejavu-sans-fonts</packagereq>
- <packagereq type="default">dejavu-sans-mono-fonts</packagereq>
- <packagereq type="default">dejavu-serif-fonts</packagereq>
- <packagereq type="default">gnu-free-mono-fonts</packagereq>
- <packagereq type="default">gnu-free-sans-fonts</packagereq>
- <packagereq type="default">gnu-free-serif-fonts</packagereq>
- <packagereq type="default">google-crosextra-caladea-fonts</packagereq>
- <packagereq type="default">google-crosextra-carlito-fonts</packagereq>
- <packagereq type="default">jomolhari-fonts</packagereq>
- <packagereq type="default">khmeros-base-fonts</packagereq>
- <packagereq type="default">liberation-mono-fonts</packagereq>
- <packagereq type="default">liberation-sans-fonts</packagereq>
- <packagereq type="default">liberation-serif-fonts</packagereq>
- <packagereq type="default">lklug-fonts</packagereq>
- <packagereq type="default">lohit-assamese-fonts</packagereq>
- <packagereq type="default">lohit-bengali-fonts</packagereq>
- <packagereq type="default">lohit-devanagari-fonts</packagereq>
- <packagereq type="default">lohit-gujarati-fonts</packagereq>
- <packagereq type="default">lohit-kannada-fonts</packagereq>
- <packagereq type="default">lohit-malayalam-fonts</packagereq>
- <packagereq type="default">lohit-marathi-fonts</packagereq>
- <packagereq type="default">lohit-nepali-fonts</packagereq>
- <packagereq type="default">lohit-oriya-fonts</packagereq>
- <packagereq type="default">lohit-punjabi-fonts</packagereq>
- <packagereq type="default">lohit-tamil-fonts</packagereq>
- <packagereq type="default">lohit-telugu-fonts</packagereq>
- <packagereq type="default">madan-fonts</packagereq>
- <packagereq type="default">nhn-nanum-gothic-fonts</packagereq>
- <packagereq type="default">open-sans-fonts</packagereq>
- <packagereq type="default">overpass-fonts</packagereq>
- <packagereq type="default">paktype-naskh-basic-fonts</packagereq>
- <packagereq type="default">paratype-pt-sans-fonts</packagereq>
- <packagereq type="default">sil-abyssinica-fonts</packagereq>
- <packagereq type="default">sil-nuosu-fonts</packagereq>
- <packagereq type="default">sil-padauk-fonts</packagereq>
- <packagereq type="default">smc-meera-fonts</packagereq>
- <packagereq type="default">stix-fonts</packagereq>
- <packagereq type="default">thai-scalable-waree-fonts</packagereq>
- <packagereq type="default">ucs-miscfixed-fonts</packagereq>
- <packagereq type="default">vlgothic-fonts</packagereq>
- <packagereq type="default">wqy-microhei-fonts</packagereq>
- <packagereq type="default">wqy-zenhei-fonts</packagereq>
- <packagereq type="optional">bitmap-fixed-fonts</packagereq>
- <packagereq type="optional">bitmap-lucida-typewriter-fonts</packagereq>
- <packagereq type="optional">bpg-chveulebrivi-fonts</packagereq>
- <packagereq type="optional">bpg-courier-fonts</packagereq>
- <packagereq type="optional">bpg-glaho-fonts</packagereq>
- <packagereq type="optional">cjkuni-ukai-fonts</packagereq>
- <packagereq type="optional">culmus-aharoni-clm-fonts</packagereq>
- <packagereq type="optional">culmus-caladings-clm-fonts</packagereq>
- <packagereq type="optional">culmus-david-clm-fonts</packagereq>
- <packagereq type="optional">culmus-drugulin-clm-fonts</packagereq>
- <packagereq type="optional">culmus-ellinia-clm-fonts</packagereq>
- <packagereq type="optional">culmus-frank-ruehl-clm-fonts</packagereq>
- <packagereq type="optional">culmus-hadasim-clm-fonts</packagereq>
- <packagereq type="optional">culmus-keteryg-fonts</packagereq>
- <packagereq type="optional">culmus-miriam-clm-fonts</packagereq>
- <packagereq type="optional">culmus-miriam-mono-clm-fonts</packagereq>
- <packagereq type="optional">culmus-nachlieli-clm-fonts</packagereq>
- <packagereq type="optional">culmus-simple-clm-fonts</packagereq>
- <packagereq type="optional">culmus-stamashkenaz-clm-fonts</packagereq>
- <packagereq type="optional">culmus-stamsefarad-clm-fonts</packagereq>
- <packagereq type="optional">culmus-yehuda-clm-fonts</packagereq>
- <packagereq type="optional">ghostscript-chinese</packagereq>
- <packagereq type="optional">google-noto-sans-armenian-fonts</packagereq>
- <packagereq type="optional">google-noto-sans-devanagari-fonts</packagereq>
- <packagereq type="optional">google-noto-sans-devanagari-ui-fonts</packagereq>
- <packagereq type="optional">google-noto-sans-ethiopic-fonts</packagereq>
- <packagereq type="optional">google-noto-sans-fonts</packagereq>
- <packagereq type="optional">google-noto-sans-georgian-fonts</packagereq>
- <packagereq type="optional">google-noto-sans-hebrew-fonts</packagereq>
- <packagereq type="optional">google-noto-sans-khmer-fonts</packagereq>
- <packagereq type="optional">google-noto-sans-khmer-ui-fonts</packagereq>
- <packagereq type="optional">google-noto-sans-lao-fonts</packagereq>
- <packagereq type="optional">google-noto-sans-lao-ui-fonts</packagereq>
- <packagereq type="optional">google-noto-sans-tamil-fonts</packagereq>
- <packagereq type="optional">google-noto-sans-tamil-ui-fonts</packagereq>
- <packagereq type="optional">google-noto-sans-thai-fonts</packagereq>
- <packagereq type="optional">google-noto-sans-thai-ui-fonts</packagereq>
- <packagereq type="optional">google-noto-sans-ui-fonts</packagereq>
- <packagereq type="optional">google-noto-serif-armenian-fonts</packagereq>
- <packagereq type="optional">google-noto-serif-fonts</packagereq>
- <packagereq type="optional">google-noto-serif-georgian-fonts</packagereq>
- <packagereq type="optional">google-noto-serif-lao-fonts</packagereq>
- <packagereq type="optional">google-noto-serif-thai-fonts</packagereq>
- <packagereq type="optional">gubbi-fonts</packagereq>
- <packagereq type="optional">ipa-gothic-fonts</packagereq>
- <packagereq type="optional">ipa-mincho-fonts</packagereq>
- <packagereq type="optional">ipa-pgothic-fonts</packagereq>
- <packagereq type="optional">ipa-pmincho-fonts</packagereq>
- <packagereq type="optional">kacst-art-fonts</packagereq>
- <packagereq type="optional">kacst-book-fonts</packagereq>
- <packagereq type="optional">kacst-decorative-fonts</packagereq>
- <packagereq type="optional">kacst-digital-fonts</packagereq>
- <packagereq type="optional">kacst-farsi-fonts</packagereq>
- <packagereq type="optional">kacst-letter-fonts</packagereq>
- <packagereq type="optional">kacst-naskh-fonts</packagereq>
- <packagereq type="optional">kacst-office-fonts</packagereq>
- <packagereq type="optional">kacst-one-fonts</packagereq>
- <packagereq type="optional">kacst-pen-fonts</packagereq>
- <packagereq type="optional">kacst-poster-fonts</packagereq>
- <packagereq type="optional">kacst-qurn-fonts</packagereq>
- <packagereq type="optional">kacst-screen-fonts</packagereq>
- <packagereq type="optional">kacst-title-fonts</packagereq>
- <packagereq type="optional">kacst-titlel-fonts</packagereq>
- <packagereq type="optional">khmeros-battambang-fonts</packagereq>
- <packagereq type="optional">khmeros-bokor-fonts</packagereq>
- <packagereq type="optional">khmeros-handwritten-fonts</packagereq>
- <packagereq type="optional">khmeros-metal-chrieng-fonts</packagereq>
- <packagereq type="optional">khmeros-muol-fonts</packagereq>
- <packagereq type="optional">khmeros-siemreap-fonts</packagereq>
- <packagereq type="optional">kurdit-unikurd-web-fonts</packagereq>
- <packagereq type="optional">liberation-narrow-fonts</packagereq>
- <packagereq type="optional">nafees-web-naskh-fonts</packagereq>
- <packagereq type="optional">navilu-fonts</packagereq>
- <packagereq type="optional">nhn-nanum-brush-fonts</packagereq>
- <packagereq type="optional">nhn-nanum-myeongjo-fonts</packagereq>
- <packagereq type="optional">nhn-nanum-pen-fonts</packagereq>
- <packagereq type="optional">paktype-naqsh-fonts</packagereq>
- <packagereq type="optional">paktype-tehreer-fonts</packagereq>
- <packagereq type="optional">pothana2000-fonts</packagereq>
- <packagereq type="optional">saab-fonts</packagereq>
- <packagereq type="optional">samyak-devanagari-fonts</packagereq>
- <packagereq type="optional">samyak-gujarati-fonts</packagereq>
- <packagereq type="optional">samyak-malayalam-fonts</packagereq>
- <packagereq type="optional">samyak-oriya-fonts</packagereq>
- <packagereq type="optional">samyak-tamil-fonts</packagereq>
- <packagereq type="optional">smc-anjalioldlipi-fonts</packagereq>
- <packagereq type="optional">smc-dyuthi-fonts</packagereq>
- <packagereq type="optional">smc-kalyani-fonts</packagereq>
- <packagereq type="optional">smc-rachana-fonts</packagereq>
- <packagereq type="optional">smc-raghumalayalam-fonts</packagereq>
- <packagereq type="optional">smc-suruma-fonts</packagereq>
- <packagereq type="optional">thai-scalable-garuda-fonts</packagereq>
- <packagereq type="optional">thai-scalable-kinnari-fonts</packagereq>
- <packagereq type="optional">thai-scalable-loma-fonts</packagereq>
- <packagereq type="optional">thai-scalable-norasi-fonts</packagereq>
- <packagereq type="optional">thai-scalable-purisa-fonts</packagereq>
- <packagereq type="optional">thai-scalable-sawasdee-fonts</packagereq>
- <packagereq type="optional">thai-scalable-tlwgmono-fonts</packagereq>
- <packagereq type="optional">thai-scalable-tlwgtypewriter-fonts</packagereq>
- <packagereq type="optional">thai-scalable-tlwgtypist-fonts</packagereq>
- <packagereq type="optional">thai-scalable-tlwgtypo-fonts</packagereq>
- <packagereq type="optional">thai-scalable-umpush-fonts</packagereq>
- <packagereq type="optional">tibetan-machine-uni-fonts</packagereq>
- <packagereq type="optional">vemana2000-fonts</packagereq>
- <packagereq type="optional">vlgothic-p-fonts</packagereq>
- </packagelist>
- </group>
- <group>
- <id>ftp-server</id>
- <name>FTP Server</name>
- <name xml:lang="af">FTP-bediener</name>
- <name xml:lang="am">FTP ሰርቨር</name>
- <name xml:lang="ar">خادم FTP</name>
- <name xml:lang="as">FTP চাৰ্ভাৰ</name>
- <name xml:lang="bal">سرور FTP</name>
- <name xml:lang="be">Паслужнік FTP</name>
- <name xml:lang="bg">FTP сървър</name>
- <name xml:lang="bn">FTP সার্ভার</name>
- <name xml:lang="bn_IN">FTP সার্ভার</name>
- <name xml:lang="bs">FTP poslužitelj</name>
- <name xml:lang="ca">Servidor FTP</name>
- <name xml:lang="cs">FTP server</name>
- <name xml:lang="cy">Gweinydd FTP</name>
- <name xml:lang="da">FTP-server</name>
- <name xml:lang="de">FTP-Server</name>
- <name xml:lang="el">Εξυπηρετητής FTP</name>
- <name xml:lang="en_GB">FTP Server</name>
- <name xml:lang="es">Servidor FTP</name>
- <name xml:lang="et">FTP server</name>
- <name xml:lang="eu">FTP zerbitzaria</name>
- <name xml:lang="fa">کارگزار FTP</name>
- <name xml:lang="fi">FTP-palvelin</name>
- <name xml:lang="fr">Serveur FTP</name>
- <name xml:lang="gl">Servidor FTP</name>
- <name xml:lang="gu">FTP સર્વર</name>
- <name xml:lang="he">שרת FTP</name>
- <name xml:lang="hi">FTP सर्वर</name>
- <name xml:lang="hr">FTP poslužitelj</name>
- <name xml:lang="hu">FTP-kiszolgáló</name>
- <name xml:lang="hy">FTP սերվեր</name>
- <name xml:lang="ia">Servitor FTP</name>
- <name xml:lang="id">Server FTP</name>
- <name xml:lang="ilo">Serbidor a FTP</name>
- <name xml:lang="is">FTP þjónn</name>
- <name xml:lang="it">Server FTP</name>
- <name xml:lang="ja">FTP サーバー</name>
- <name xml:lang="ka">FTP სერვერი</name>
- <name xml:lang="kn">FTP ಪೂರೈಕೆಗಣಕ</name>
- <name xml:lang="ko">FTP 서버</name>
- <name xml:lang="lv">FTP serveris</name>
- <name xml:lang="mai">FTP सर्वर</name>
- <name xml:lang="mk">FTP сервер</name>
- <name xml:lang="ml">FTP സര്‍വര്‍</name>
- <name xml:lang="mr">FTP सर्व्हर</name>
- <name xml:lang="ms">Pelayan FTP</name>
- <name xml:lang="nb">FTP-tjener</name>
- <name xml:lang="ne">FTP सर्भर</name>
- <name xml:lang="nl">FTP-server</name>
- <name xml:lang="no">FTP-tjener</name>
- <name xml:lang="nso">Seabi sa FTP</name>
- <name xml:lang="or">ଏଫ.ଟି.ପି. ସେବକ</name>
- <name xml:lang="pa">FTP ਸਰਵਰ</name>
- <name xml:lang="pl">Serwer FTP</name>
- <name xml:lang="pt">Servidor de FTP</name>
- <name xml:lang="pt_BR">Servidor FTP</name>
- <name xml:lang="ro">Server FTP</name>
- <name xml:lang="ru">Сервер FTP</name>
- <name xml:lang="si">FTP සේවා දායකය</name>
- <name xml:lang="sk">FTP server</name>
- <name xml:lang="sl">Strežnik FTP</name>
- <name xml:lang="sq">Shërbyes FTP</name>
- <name xml:lang="sr">FTP сервер</name>
- <name xml:lang="sr@latin">FTP server</name>
- <name xml:lang="sr@Latn">FTP server</name>
- <name xml:lang="sv">FTP-server</name>
- <name xml:lang="ta">FTP சேவையகம்</name>
- <name xml:lang="te">FTP సర్వరు</name>
- <name xml:lang="tg">Ҳидматгоҳи FTP</name>
- <name xml:lang="th">ตัวให้บริการ FTP</name>
- <name xml:lang="tr">FTP Sunucusu</name>
- <name xml:lang="uk">Сервер FTP</name>
- <name xml:lang="ur">سرور FTP</name>
- <name xml:lang="vi">Server FTP</name>
- <name xml:lang="zh_CN">FTP 服务器</name>
- <name xml:lang="zh_TW">FTP 伺服器</name>
- <name xml:lang="zu">Umlekeleli we-FTP</name>
- <description>Allows the system to act as an FTP server.</description>
- <description xml:lang="as">চিস্টেমক এটা FTP চাৰ্ভাৰ হিচাপে কাৰ্য্য কৰাৰ অনুমতি দিয়ে।</description>
- <description xml:lang="bn">FTP সার্ভার রূপে সিস্টেম ব্যবহার করার সুবিধা উপলব্ধ করা হয়।</description>
- <description xml:lang="bn_IN">FTP সার্ভার রূপে সিস্টেম ব্যবহার করার সুবিধা উপলব্ধ করা হয়।</description>
- <description xml:lang="cs">Umožňuje používat počítač jako FTP server.</description>
- <description xml:lang="de">Ermöglicht dem System, als FTP-Server fungieren.</description>
- <description xml:lang="es">Permite al sistema actuar como un servidor FTP.</description>
- <description xml:lang="fr">Permet au système d'agir comme un serveur FTP.</description>
- <description xml:lang="gu">FTP સર્વર તરીકે કાર્ય કરવા માટે સિસ્ટમને પરવાનગી આપે છે.</description>
- <description xml:lang="hi">तंत्र को बतौर FTP सर्वर के रूप में काम करने की अनुमति दें.</description>
- <description xml:lang="ia">Illo permitte al systema ager como un servitor FTP.</description>
- <description xml:lang="it">Permette al sistema di comportarsi come un server FTP.</description>
- <description xml:lang="ja">システムが FTP サーバーとして機能できるようにします。</description>
- <description xml:lang="kn">ವ್ಯವಸ್ಥೆಯು ಒಂದು FTP ಪೂರೈಕೆಗಣಕವಾಗಿ ನಿರ್ವಹಿಸಲು ಇದು ಅನುಮತಿಸುತ್ತದೆ.</description>
- <description xml:lang="ko">시스템이 FTP 서버로 동작하도록 허용</description>
- <description xml:lang="ml">ഒരു എഫ്‌ടിപി സര്‍വറാകുന്നതിനു് സിസ്റ്റത്തിനെ സഹായിക്കുന്നു.</description>
- <description xml:lang="mr">प्रणालीला FTP सर्व्हर म्हणून कार्य करण्यास शक्य करतो.</description>
- <description xml:lang="or">ତନ୍ତ୍ର କୁ FTP ସର୍ଭର ଭଳି କାର୍ଯ୍ଯ କରିବା ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ।</description>
- <description xml:lang="pa">ਸਿਸਟਮ ਨੂੰ FTP ਸਰਵਰ ਵਾਂਗ ਕੰਮ ਕਰਨ ਲਈ ਮਦਦ ਕਰਦਾ ਹੈ।</description>
- <description xml:lang="pl">Umożliwia systemowi pracę jako serwer FTP.</description>
- <description xml:lang="pt_BR">Permite que o sistema aja como um servidor FTP.</description>
- <description xml:lang="ru">Позволяет системе функционировать в качестве FTP-сервера.</description>
- <description xml:lang="sv">Låter systemet agera som en FTP-server.</description>
- <description xml:lang="ta">ஒரு FTP சேவையகமாக பணியாற்ற இந்தக் கணினியை அனுமதிக்கிறது.</description>
- <description xml:lang="te">సిస్టమ్ FTP సేవిక వలె పనిచేయుటకు అనుమతించును.</description>
- <description xml:lang="uk">Надає змогу системі працювати у режимі сервера FTP.</description>
- <description xml:lang="zh_CN">允许将系统作为 FTP 服务器使用。</description>
- <description xml:lang="zh_TW">允許系統被用來作為 FTP 伺服器。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">vsftpd</packagereq>
- <packagereq type="optional">xferstats</packagereq>
- </packagelist>
- </group>
- <group>
- <id>gnome-apps</id>
- <name>GNOME Applications</name>
- <name xml:lang="as">GNOME এপ্লিকেচনসমূহ</name>
- <name xml:lang="bn_IN">GNOME অ্যাপ্লিকেশন</name>
- <name xml:lang="cs">Aplikace pro GNOME</name>
- <name xml:lang="de">GNOME-Anwendungen</name>
- <name xml:lang="es">Aplicaciones de Gnome</name>
- <name xml:lang="fr">Applications GNOME</name>
- <name xml:lang="gu">GNOME કાર્યક્રમો</name>
- <name xml:lang="hi">गनोम अनुप्रयोग</name>
- <name xml:lang="it">Applicazioni di GNOME</name>
- <name xml:lang="ja">GNOME アプリケーション</name>
- <name xml:lang="kn">GNOME ಅನ್ವಯಗಳು</name>
- <name xml:lang="ko">GNOME 응용 프로그램</name>
- <name xml:lang="ml">ഗ്നോം പ്രയോഗങ്ങള്‍</name>
- <name xml:lang="mr">GNOME ॲप्लिकेशन्स</name>
- <name xml:lang="or">GNOME ପ୍ରୟୋଗଗୁଡ଼ିକ</name>
- <name xml:lang="pa">GNOME ਐਪਲੀਕੇਸ਼ਨਾਂ</name>
- <name xml:lang="pl">Aplikacje GNOME</name>
- <name xml:lang="pt_BR">Aplicativos do GNOME</name>
- <name xml:lang="ru">Приложения GNOME</name>
- <name xml:lang="ta">GNOME பயன்பாடுகள்</name>
- <name xml:lang="te">గ్నోమ్ అనువర్తనాలు</name>
- <name xml:lang="uk">Програми GNOME</name>
- <name xml:lang="zh_CN">GNOME 应用程序</name>
- <name xml:lang="zh_TW">GNOME 應用程式</name>
- <description>A set of commonly used GNOME Applications.</description>
- <description xml:lang="cs">Sada běžně používaných aplikací v prostředí GNOME.</description>
- <description xml:lang="de">Eine Reihe häufig verwendeter GNOME-Anwendungen.</description>
- <description xml:lang="es">Un set de las aplicaciones GNOME más utilizadas.</description>
- <description xml:lang="fr">Ensemble d'applications GNOME couramment utilisées.</description>
- <description xml:lang="gu">સામાન્ય રીતે વપરાતા GNOME કાર્યક્રમોનો સમૂહ.</description>
- <description xml:lang="hi">बारंबार प्रयुक्त गनोम अनुप्रयोग.</description>
- <description xml:lang="it">Un set di applicazioni GNOME usate frequentemente.</description>
- <description xml:lang="ja">よく使用する GNOME アプリケーションセットです。</description>
- <description xml:lang="kn">ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸಲಾಗುವ GNOME ಅನ್ವಯಗಳ ಒಂದು ಸಂಗ್ರಹ.</description>
- <description xml:lang="ko">자주 사용하는 GNOME 애플리케이션 모음입니다.</description>
- <description xml:lang="ml">സാധാരണമായി എപ്പോഴും ഉപയോഗിയ്ക്കുന്ന ഗ്നോം പ്രയോഗങ്ങള്‍.</description>
- <description xml:lang="mr">वारंवार वापरले जाणाऱ्या GNOME ॲप्लिकेशन्स्चा संच.</description>
- <description xml:lang="or">ସାଧାରଣ ଭାବରେ ବ୍ୟବହୃତ GNOME ପ୍ରୟୋଗଗୁଡ଼ିକର ଏକ ସେଟ।</description>
- <description xml:lang="pa">ਅਾਮ ਤੌਰ ਤੇ ਵਰਤੀਆਂ ਜਾਂਦੀਆਂ GNOME ਐਪਲੀਕੇਸ਼ਨਾਂ ਦਾ ਇੱਕ ਸਮੂਹ।</description>
- <description xml:lang="pl">Zestaw często używanych aplikacji środowiska GNOME.</description>
- <description xml:lang="pt_BR">Um conjunto de aplicativos de GNOME mais usados.</description>
- <description xml:lang="ru">Набор популярных приложений GNOME.</description>
- <description xml:lang="ta">பொதுவாகப் பயன்படுத்தப்படும் GNOME பயன்பாடுகளின் தொகுப்பு.</description>
- <description xml:lang="te">ఉమ్మడిగా ఉపయోగించే గ్నోమ్ అనువర్తనాల సమితి</description>
- <description xml:lang="uk">Набір типових програм GNOME.</description>
- <description xml:lang="zh_CN">一组经常使用的 GNOME 应用程序。</description>
- <description xml:lang="zh_TW">一組常用的 GNOME 應用程式。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">brasero</packagereq>
- <packagereq type="mandatory">brasero-nautilus</packagereq>
- <packagereq type="mandatory">rhythmbox</packagereq>
- <packagereq type="mandatory">shotwell</packagereq>
- </packagelist>
- </group>
- <group>
- <id>gnome-desktop</id>
- <name>GNOME</name>
- <name xml:lang="af">GNOME</name>
- <name xml:lang="am">ኖም</name>
- <name xml:lang="ar">جينوم</name>
- <name xml:lang="as">GNOME</name>
- <name xml:lang="be">GNOME</name>
- <name xml:lang="bn">GNOME</name>
- <name xml:lang="bn_IN">GNOME</name>
- <name xml:lang="bs">GNOME</name>
- <name xml:lang="ca">GNOME</name>
- <name xml:lang="cs">GNOME</name>
- <name xml:lang="cy">GNOME</name>
- <name xml:lang="de">GNOME</name>
- <name xml:lang="en_GB">GNOME</name>
- <name xml:lang="es">GNOME</name>
- <name xml:lang="eu">GNOME</name>
- <name xml:lang="fa">گنوم</name>
- <name xml:lang="fi">Gnome</name>
- <name xml:lang="fr">GNOME</name>
- <name xml:lang="gl">GNOME</name>
- <name xml:lang="gu">GNOME</name>
- <name xml:lang="hi">GNOME</name>
- <name xml:lang="hr">GNOME</name>
- <name xml:lang="hu">GNOME</name>
- <name xml:lang="hy">GNOME</name>
- <name xml:lang="id">GNOME</name>
- <name xml:lang="ilo">GNOME</name>
- <name xml:lang="it">GNOME</name>
- <name xml:lang="ja">GNOME</name>
- <name xml:lang="ka">GNOME</name>
- <name xml:lang="kn">GNOME</name>
- <name xml:lang="ko">GNOME</name>
- <name xml:lang="lv">GNOME</name>
- <name xml:lang="mk">Гном</name>
- <name xml:lang="ml">ഗ്നോം</name>
- <name xml:lang="mr">GNOME</name>
- <name xml:lang="no">GNOME</name>
- <name xml:lang="nso">GNOME</name>
- <name xml:lang="or">GNOME</name>
- <name xml:lang="pa">ਗਨੋਮ</name>
- <name xml:lang="pl">GNOME</name>
- <name xml:lang="pt_BR">GNOME</name>
- <name xml:lang="ru">GNOME</name>
- <name xml:lang="si">GNOME</name>
- <name xml:lang="sl">GNOME</name>
- <name xml:lang="sq">GNOME</name>
- <name xml:lang="ta">GNOME</name>
- <name xml:lang="te">GNOME</name>
- <name xml:lang="th">GNOME</name>
- <name xml:lang="tr">GNOME</name>
- <name xml:lang="uk">GNOME</name>
- <name xml:lang="ur">جينوم</name>
- <name xml:lang="vi">GNOME</name>
- <name xml:lang="zh_CN">GNOME</name>
- <name xml:lang="zh_TW">GNOME</name>
- <name xml:lang="zu">I-GNOME</name>
- <description>GNOME is a highly intuitive and user friendly desktop environment.</description>
- <description xml:lang="as">GNOME উচ্চভাৱে আন্তদৃষ্টিক আৰু ব্যৱহাৰকাৰীৰ বাবে সহজ ডেস্কটপ পৰিৱেশ।</description>
- <description xml:lang="bn_IN">GNOME হল উচ্চ অনুমানক্ষমতা বিশিষ্ট এবং ব্যবহারের দিক থেকে সহজ এক ডেস্কটপ এনভায়রনমেন্ট।</description>
- <description xml:lang="cs">GNOME je intuitivní a uživatelsky příjemné pracovní prostředí.</description>
- <description xml:lang="de">GNOME ist eine sehr intuitive und benutzerfreundliche Desktop-Umgebung.</description>
- <description xml:lang="es">GNOME es un entorno de escritorio altamente intuitivo y fácil de manejar</description>
- <description xml:lang="fr">GNOME est un environnement de bureau convivial et hautement intuitif.</description>
- <description xml:lang="gu">GNOME એ ખૂબ ઊંચુ સાહજિક અને વપરાશકર્તા મૈત્રી ડૅસ્કટોપ પર્યાવરણ છે.</description>
- <description xml:lang="hi">गनोम काफी पारस्परिका और उपयोक्ता मैत्रीयुक्त डेस्कटॉप वातावरण है.</description>
- <description xml:lang="it">GNOME è un ambiente desktop facile da usare e altamente intuitivo.</description>
- <description xml:lang="ja">GNOME は非常に直観的でユーザーフレンドリーなデスクトップ環境になります。</description>
- <description xml:lang="kn">GNOME ಒಂದು ಅತ್ಯಂತ ಸುಲಭವಾಗಿ ಅರ್ಥವಾಗುವ ಬಳಕೆದಾರ ಸ್ನೇಹಿ ಗಣಕತೆರೆ ಪರಿಸರ.</description>
- <description xml:lang="ko">GNOME은 사용하기 쉽고 사용자 친화적인 데스크탑 환경입니다.</description>
- <description xml:lang="ml">വളരെ അവബോധജന്യവും ഉപയോക്താവിനോടു് വളരെ സൌഹൃദ്യവുമുള്ള രീതിയിലുള്ള പണിയിടമാണു് ഗ്നോം.</description>
- <description xml:lang="mr">GNOME हे अत्यंत ज्ञानी आणि वापरकर्ता मदतगार डेस्कटॉप वातावरण आहे.</description>
- <description xml:lang="or">GNOME ଅତି ମାତ୍ରାରେ ସହଜଜ୍ଞାନ ସମ୍ପନ୍ନ ଏବଂ ବ୍ୟବହାରକାରୀଙ୍କ ପାଇଁ ସହଜମୟ ଡେସ୍କଟପ ପରିବେଶ।</description>
- <description xml:lang="pa">GNOME ਇੱਕ ਬਹੁਤ ਹੀ ਅਨੁਭਵੀ ਅਤੇ ਵਰਤੋਂਕਾਰ ਹਿਤਕਾਰੀ ਡੈਸਕਟਾਪ ਵਾਤਾਵਰਣ ਹੈ।</description>
- <description xml:lang="pl">GNOME to intuicyjne i przyjazne dla użytkownika środowisko pulpitu.</description>
- <description xml:lang="pt_BR">GNOME é um ambiente de desktop amigável de usuário e altamente intuitivo.</description>
- <description xml:lang="ru">GNOME — интуитивное окружение рабочего стола.</description>
- <description xml:lang="ta">GNOME புத்திசாலித்தனமான மற்றும் பயன்படுத்த எளிதான பணிமேடைச் சூழலாகும்.</description>
- <description xml:lang="te">గ్నోమ్ అనేది తేలికగా తెలుసుకొనే మరియు వాడుకరికి అనుకూలమైన డెస్కుటాప్ పరిసరం.</description>
- <description xml:lang="uk">GNOME — зручне у користуванні та інтуїтивно зрозуміле стільничне середовище.</description>
- <description xml:lang="zh_CN">GNOME 是一个非常直观且用户友好的桌面环境。</description>
- <description xml:lang="zh_TW">GNOME 是個容易上手且容易使用的桌面環境。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">abrt-desktop</packagereq>
- <packagereq type="mandatory">at-spi2-atk</packagereq>
- <packagereq type="mandatory">at-spi2-core</packagereq>
- <packagereq type="mandatory">avahi</packagereq>
- <packagereq type="mandatory">baobab</packagereq>
- <packagereq type="mandatory">caribou</packagereq>
- <packagereq type="mandatory">caribou-gtk2-module</packagereq>
- <packagereq type="mandatory">caribou-gtk3-module</packagereq>
- <packagereq type="mandatory">cheese</packagereq>
- <packagereq type="mandatory">compat-cheese314</packagereq>
- <packagereq type="mandatory">control-center</packagereq>
- <packagereq type="mandatory">dconf</packagereq>
- <packagereq type="mandatory">empathy</packagereq>
- <packagereq type="mandatory">eog</packagereq>
- <packagereq type="mandatory">evince</packagereq>
- <packagereq type="mandatory">evince-nautilus</packagereq>
- <packagereq type="mandatory">file-roller</packagereq>
- <packagereq type="mandatory">file-roller-nautilus</packagereq>
- <packagereq type="mandatory">firewall-config</packagereq>
- <packagereq type="mandatory">firstboot</packagereq>
- <packagereq type="mandatory">fprintd-pam</packagereq>
- <packagereq type="mandatory">gdm</packagereq>
- <packagereq type="mandatory">gedit</packagereq>
- <packagereq type="mandatory">glib-networking</packagereq>
- <packagereq type="mandatory">gnome-bluetooth</packagereq>
- <packagereq type="mandatory">gnome-boxes</packagereq>
- <packagereq type="mandatory">gnome-calculator</packagereq>
- <packagereq type="mandatory">gnome-classic-session</packagereq>
- <packagereq type="mandatory">gnome-clocks</packagereq>
- <packagereq type="mandatory">gnome-color-manager</packagereq>
- <packagereq type="mandatory">gnome-contacts</packagereq>
- <packagereq type="mandatory">gnome-dictionary</packagereq>
- <packagereq type="mandatory">gnome-disk-utility</packagereq>
- <packagereq type="mandatory">gnome-font-viewer</packagereq>
- <packagereq type="mandatory">gnome-getting-started-docs</packagereq>
- <packagereq type="mandatory">gnome-icon-theme</packagereq>
- <packagereq type="mandatory">gnome-icon-theme-extras</packagereq>
- <packagereq type="mandatory">gnome-icon-theme-symbolic</packagereq>
- <packagereq type="mandatory">gnome-initial-setup</packagereq>
- <packagereq type="mandatory">gnome-packagekit</packagereq>
- <packagereq type="mandatory">gnome-packagekit-updater</packagereq>
- <packagereq type="mandatory">gnome-screenshot</packagereq>
- <packagereq type="mandatory">gnome-session</packagereq>
- <packagereq type="mandatory">gnome-session-xsession</packagereq>
- <packagereq type="mandatory">gnome-settings-daemon</packagereq>
- <packagereq type="mandatory">gnome-shell</packagereq>
- <packagereq type="mandatory">gnome-software</packagereq>
- <packagereq type="mandatory">gnome-system-log</packagereq>
- <packagereq type="mandatory">gnome-system-monitor</packagereq>
- <packagereq type="mandatory">gnome-terminal</packagereq>
- <packagereq type="mandatory">gnome-terminal-nautilus</packagereq>
- <packagereq type="mandatory">gnome-themes-standard</packagereq>
- <packagereq type="mandatory">gnome-tweak-tool</packagereq>
- <packagereq type="mandatory">gnome-user-docs</packagereq>
- <packagereq type="mandatory">gnome-weather</packagereq>
- <packagereq type="mandatory">gucharmap</packagereq>
- <packagereq type="mandatory">gvfs-afc</packagereq>
- <packagereq type="mandatory">gvfs-afp</packagereq>
- <packagereq type="mandatory">gvfs-archive</packagereq>
- <packagereq type="mandatory">gvfs-fuse</packagereq>
- <packagereq type="mandatory">gvfs-goa</packagereq>
- <packagereq type="mandatory">gvfs-gphoto2</packagereq>
- <packagereq type="mandatory">gvfs-mtp</packagereq>
- <packagereq type="mandatory">gvfs-smb</packagereq>
- <packagereq type="mandatory">initial-setup-gui</packagereq>
- <packagereq type="mandatory">libcanberra-gtk2</packagereq>
- <packagereq type="mandatory">libcanberra-gtk3</packagereq>
- <packagereq type="mandatory">libproxy-mozjs</packagereq>
- <packagereq type="mandatory">librsvg2</packagereq>
- <packagereq type="mandatory">libsane-hpaio</packagereq>
- <packagereq type="mandatory">metacity</packagereq>
- <packagereq type="mandatory">mousetweaks</packagereq>
- <packagereq type="mandatory">nautilus</packagereq>
- <packagereq type="mandatory">nautilus-sendto</packagereq>
- <packagereq type="mandatory">NetworkManager-libreswan-gnome</packagereq>
- <packagereq type="mandatory">nm-connection-editor</packagereq>
- <packagereq type="mandatory">orca</packagereq>
- <packagereq type="mandatory">PackageKit-command-not-found</packagereq>
- <packagereq type="mandatory">PackageKit-gtk3-module</packagereq>
- <packagereq type="mandatory">redhat-access-gui</packagereq>
- <packagereq type="mandatory">sane-backends-drivers-scanners</packagereq>
- <packagereq type="mandatory">seahorse</packagereq>
- <packagereq type="mandatory">setroubleshoot</packagereq>
- <packagereq type="mandatory">sushi</packagereq>
- <packagereq type="mandatory">totem</packagereq>
- <packagereq type="mandatory">totem-nautilus</packagereq>
- <packagereq type="mandatory">vinagre</packagereq>
- <packagereq type="mandatory">vino</packagereq>
- <packagereq type="mandatory">xdg-user-dirs-gtk</packagereq>
- <packagereq type="mandatory">yelp</packagereq>
- <packagereq type="default">xdg-desktop-portal-gtk</packagereq>
- <packagereq type="optional">alacarte</packagereq>
- <packagereq type="optional">dconf-editor</packagereq>
- <packagereq type="optional">dvgrab</packagereq>
- <packagereq type="optional">fonts-tweak-tool</packagereq>
- <packagereq type="optional">gconf-editor</packagereq>
- <packagereq type="optional">gedit-plugins</packagereq>
- <packagereq type="optional">gnome-shell-browser-plugin</packagereq>
- <packagereq type="optional">gnote</packagereq>
- <packagereq type="optional">seahorse-nautilus</packagereq>
- <packagereq type="optional">seahorse-sharing</packagereq>
- <packagereq type="optional">vim-X11</packagereq>
- <packagereq type="optional">xguest</packagereq>
- </packagelist>
- </group>
- <group>
- <id>graphical-admin-tools</id>
- <name>Graphical Administration Tools</name>
- <name xml:lang="as">গ্ৰাফিকেল পদ্ধতিত ব্যৱহাৰযোগ্য প্ৰশাসনিক সঁজুলিসমূহ</name>
- <name xml:lang="bn">গ্রাফিক্যাল পদ্ধতিতে ব্যবহারযোগ্য প্রশাসনিক সরঞ্জাম</name>
- <name xml:lang="bn_IN">গ্রাফিক্যাল পদ্ধতিতে ব্যবহারযোগ্য প্রশাসনিক সরঞ্জাম</name>
- <name xml:lang="cs">Grafické nástroje pro správu</name>
- <name xml:lang="de">Grafische Administrations-Tools</name>
- <name xml:lang="es">Herramientas gráficas de Administración</name>
- <name xml:lang="fr">Outils d'administration graphique</name>
- <name xml:lang="gu">ગ્રાફિકલ સંચાલન સાધનો</name>
- <name xml:lang="hi">आलेखी प्रशासन औज़ार</name>
- <name xml:lang="ia">Instrumentos de administration graphic</name>
- <name xml:lang="it">Tool di amministrazione grafica</name>
- <name xml:lang="ja">グラフィカル管理ツール</name>
- <name xml:lang="kn">ಚಿತ್ರಾತ್ಮಕ ನಿರ್ವಹಣಾ ಉಪಕರಣಗಳು</name>
- <name xml:lang="ko">그래픽기반 관리 도구</name>
- <name xml:lang="ml">ഗ്രാഫിക്സ് അഡ്മിനിസ്ട്രേഷന്‍ ഉപകരണങ്ങള്‍</name>
- <name xml:lang="mr">ग्राफिकल प्रशासकीय साधने</name>
- <name xml:lang="or">ଆଲେଖୀକ ପ୍ରଶାସନୀୟ ଉପକରଣମାନ</name>
- <name xml:lang="pa">ਗਰਾਫੀਕਲ ਪਰਬੰਧਨ ਟੂਲ</name>
- <name xml:lang="pl">Graficzne narzędzia administracyjne</name>
- <name xml:lang="pt_BR">Ferramentas Administrativas gráficas</name>
- <name xml:lang="ru">Графические средства администрирования</name>
- <name xml:lang="sv">Grafiska administrationsverktyg</name>
- <name xml:lang="ta">வரைகலை நிர்வாக கருவிகள்</name>
- <name xml:lang="te">గ్రాఫికల్ నిర్వహణా సాధనములు</name>
- <name xml:lang="uk">Графічні засоби адміністрування</name>
- <name xml:lang="zh_CN">图形管理工具</name>
- <name xml:lang="zh_TW">圖形化管理工具</name>
- <description>Graphical system administration tools for managing many aspects of a system.</description>
- <description xml:lang="as">এটা চিস্টেমৰ বহু বস্তুক চম্ভালীবলে গ্ৰাফীয় চিস্টেম ব্যৱস্থাপনা সঁজুলিসমূহ।</description>
- <description xml:lang="bn">সিস্টেমের বিভিন্ন অংশ পরিচালনার জন্য সিস্টেম অ্যাডমিনিস্ট্রেশনের গ্রাফিক্যাল সরঞ্জাম</description>
- <description xml:lang="bn_IN">সিস্টেমের বিভিন্ন অংশ পরিচালনার জন্য সিস্টেম অ্যাডমিনিস্ট্রেশনের গ্রাফিক্যাল সরঞ্জাম</description>
- <description xml:lang="cs">Grafické nástroje pro správu mnoha aspektů systému.</description>
- <description xml:lang="de">Grafische Systemadministrations-Tools zur Verwaltung vieler Aspekte eines Systems.</description>
- <description xml:lang="es">Herramientas de administración de sistemas gráficos para administrar varios aspectos de un sistema.</description>
- <description xml:lang="fr">Outils d'administration du système graphique pour la gestion de nombreux aspects d'un système.</description>
- <description xml:lang="gu">સિસ્ટમની ઘણી સ્થિતિને સંચાલિત કરવા માટે ગ્રાફિકલ સિસ્ટમ સંચાલન સાધનો.</description>
- <description xml:lang="hi">तंत्र के कई पहलू के लिए आलेखी प्रशासन औज़ार.</description>
- <description xml:lang="ia">Utensiles graphic pro administrar numerose aspectos de un systema.</description>
- <description xml:lang="it">Strumenti di gestione del sistema grafici per la gestione di numerosi aspetti di un sistema</description>
- <description xml:lang="ja">システムの多くの側面を管理するためのグラフィカルなシステム管理ツール</description>
- <description xml:lang="kn">ಒಂದು ವ್ಯವಸ್ಥೆಯ ಹಲವು ಅಂಶಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಚಿತ್ರಾತ್ಮಕ ನಿರ್ವಹಣಾ ಉಪಕರಣಗಳು</description>
- <description xml:lang="ko">시스템의 여러 측면을 관리하기 위한 그래픽 시스템 관리 도구</description>
- <description xml:lang="ml">ഒരു സിസ്റ്റത്തിന്റെ പല തരത്തിലുള്ള കാര്യങ്ങള്‍ കൈകാര്യം ചെയ്യുന്നതിനുള്ള ഗ്രാഫിക്കല്‍ സിസ്റ്റം അഡ്മിനിസ്ട്രേഷന്‍ പ്രയോഗങ്ങള്‍.</description>
- <description xml:lang="mr">प्रणालीचे अनेक पैलू व्यवस्थापीत करण्यासाठी ग्राफिकल सिस्टम् प्रशासन साधने.</description>
- <description xml:lang="or">ତନ୍ତ୍ରର ଅନେକ ଦୃଷ୍ଟିକୋଣକୁ ପରିଚାଳନା କରିବା ପାଇଁ ଆଲେଖିକ ତନ୍ତ୍ର ପ୍ରଶାସନୀୟ ଉପକରଣଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">ਇੱਕ ਸਿਸਟਮ ਦੇ ਬਹੁਤ ਸਾਰੇ ਕੰਟਰੋਲਾਂ ਲਈ ਗਰਾਫੀਕਲ ਸਿਸਟਮ ਪਰਬੰਧਨ ਟੂਲ।</description>
- <description xml:lang="pl">Graficzne narzędzia administracji systemem do zarządzania wieloma aspektami systemu.</description>
- <description xml:lang="pt_BR">Ferramentas de administração de sistemas para gerenciar muitos aspectos de um sistema.</description>
- <description xml:lang="ru">Графические программы управления системными компонентами.</description>
- <description xml:lang="ta">ஒரு சிஸ்டத்தின் பல வகைகளை நிர்வகிக்க வரைகலை சிஸ்டம் நிர்வாக கருவிகள்.</description>
- <description xml:lang="te">సిస్టమ్ యొక్క పెక్కు దృక్కులు(యాస్పెక్ట్స్) నిర్వహించుటకు గ్రాఫికల్ సిస్టమ్ నిర్వహణా సాధనములు.</description>
- <description xml:lang="uk">Графічні програми для адміністративного керування різними параметрами системи.</description>
- <description xml:lang="zh_CN">用于管理系统各个方面的图形系统管理工具。</description>
- <description xml:lang="zh_TW">管理系統多方面的圖像化系統管理工具。</description>
- <default>false</default>
- <uservisible>true</uservisible>
- <packagelist>
- <packagereq type="conditional" requires="system-config-users">system-config-users-docs</packagereq>
- <packagereq type="optional">authconfig-gtk</packagereq>
- <packagereq type="optional">gnome-disk-utility</packagereq>
- <packagereq type="optional">gnome-packagekit</packagereq>
- <packagereq type="optional">policycoreutils-gui</packagereq>
- <packagereq type="optional">setools-console</packagereq>
- <packagereq type="optional">setroubleshoot</packagereq>
- <packagereq type="optional">system-config-kdump</packagereq>
- <packagereq type="optional">system-config-kickstart</packagereq>
- <packagereq type="optional">system-config-users</packagereq>
- <packagereq type="optional">wireshark-gnome</packagereq>
- </packagelist>
- </group>
- <group>
- <id>graphics</id>
- <name>Graphics Creation Tools</name>
- <name xml:lang="as">গ্ৰাফিক্স নিৰ্মাণৰ বাবে ব্যৱহাৰযোগ্য সঁজুলিসমূহ</name>
- <name xml:lang="bn">গ্রাফিক্স নির্মাণের জন্য ব্যবহারযোগ্য সরঞ্জাম</name>
- <name xml:lang="bn_IN">গ্রাফিক্স নির্মাণের জন্য ব্যবহারযোগ্য সরঞ্জাম</name>
- <name xml:lang="cs">Grafické tvůrčí nástroje</name>
- <name xml:lang="de">Tools zur Erstellung von Grafiken</name>
- <name xml:lang="es">Herramientas de creación de gráficas</name>
- <name xml:lang="fr">Outils de création graphique</name>
- <name xml:lang="gu">ગ્રાફિક્સ બનાવવાનાં સાધનો</name>
- <name xml:lang="hi">आलेखी निर्माण औज़ार</name>
- <name xml:lang="ia">Instrumentos pro crear graphicas</name>
- <name xml:lang="it">Tool di creazione grafici</name>
- <name xml:lang="ja">グラフィックスツール</name>
- <name xml:lang="kn">ಗ್ರಾಫಿಕ್ಸ್ ರಚನಾ ಉಪಕರಣಗಳು</name>
- <name xml:lang="ko">그래픽스 생성 도구</name>
- <name xml:lang="ml">ഗ്രാഫിക്സ് സജ്ജമാക്കുന്നതിനുള്ള ഉപകരണങ്ങള്‍</name>
- <name xml:lang="mr">ग्राफिक्स् निर्माण साधने</name>
- <name xml:lang="or">ଆଲେଖୀକ ନିର୍ମାଣ ଉପକରଣ</name>
- <name xml:lang="pa">ਗਰਾਫੀਕਲ ਬਣਾਵਟੀ ਸੰਦ</name>
- <name xml:lang="pl">Narzędzia tworzenia grafiki</name>
- <name xml:lang="pt_BR">Ferramentas de criaçao gráficas</name>
- <name xml:lang="ru">Средства создания графики</name>
- <name xml:lang="sv">Grafiska verktyg för att skapa</name>
- <name xml:lang="ta">வரைகலைகள் உருவாக்க கருவிகள்</name>
- <name xml:lang="te">గ్రాఫిక్స్ సృష్టీకరణ సాధనములు</name>
- <name xml:lang="uk">Інструменти для створення графіки</name>
- <name xml:lang="zh_CN">图形生成工具</name>
- <name xml:lang="zh_TW">圖形設計工具</name>
- <description>Software for creation and manipulation of still images.</description>
- <description xml:lang="as">ছবি নিৰ্মাণ আৰু পৰিবৰ্তনৰ বাবে ব্যৱহাৰযোগ্য চফ্টৱেৰ।</description>
- <description xml:lang="bn">ছবি নির্মাণ ও পরিবর্তনের জন্য ব্যবহারযোগ্য সফ্টওয়্যার।</description>
- <description xml:lang="bn_IN">ছবি নির্মাণ ও পরিবর্তনের জন্য ব্যবহারযোগ্য সফ্টওয়্যার।</description>
- <description xml:lang="cs">Software pro tvorbu a úpravu statických obrázků.</description>
- <description xml:lang="de">Software zur Erstellung und Manipulation von Stillbildern.</description>
- <description xml:lang="es">Software para creación y manipulación de imágenes fijas.</description>
- <description xml:lang="fr">Logiciel pour la création et la manipulation d'images fixes.</description>
- <description xml:lang="gu">હજુ ઇમેજોને વાપરવા અને બનાવવા માટે સોફ્ટવેર.</description>
- <description xml:lang="hi">निर्जीव छवियों के निर्माण और परिवर्तन के लिए सॉफ्टवेयर.</description>
- <description xml:lang="ia">Software pro crear e manipular imagines immobile.</description>
- <description xml:lang="it">Software per la creazione e manipolazione di immagini ferme.</description>
- <description xml:lang="ja">静止画像の作成や修正を行うためのソフトウェアです。</description>
- <description xml:lang="kn">ಸ್ಥಿರ ಚಿತ್ರಗಳನ್ನು ರಚಿಸುವ ಹಾಗು ಸಂಸ್ಕರಿಸಲು ನೆರವಾಗುವ ತಂತ್ರಾಂಶ.</description>
- <description xml:lang="ko">정지 화상을 만들고 다루기 위한 소프트웨어.</description>
- <description xml:lang="ml">നിശ്ചല ചിത്രങ്ങള്‍ തയ്യാറാക്കുന്നതിനും കൈകാര്യം ചെയ്യുന്നതിനുമുള്ള സോഫ്റ്റ്‌വെയര്‍.</description>
- <description xml:lang="mr">स्टील प्रतिमांच्या निर्माण व बदलकरीता सॉफ्टवेअर.</description>
- <description xml:lang="or">ସ୍ଥିର ପ୍ରତିଛବିଗୁଡ଼ିକର ନିର୍ମାଣ ଏବଂ ସଙ୍କଳନ ପାଇଁ ସଫ୍ଟୱେର।</description>
- <description xml:lang="pa">ਸਟਿੱਲ ਈਮੇਜ਼ ਬਣਾਉਣ ਅਤੇ ਸੋਧਣ ਲਈ ਸਾਫਟਵੇਅਰ।</description>
- <description xml:lang="pl">Oprogramowanie do tworzenia i modyfikowania obrazów.</description>
- <description xml:lang="pt_BR">Software para criação e manipulação de imagens paradas.</description>
- <description xml:lang="ru">Программы для создания и обработки изображений.</description>
- <description xml:lang="sv">Program för att skapa och förändra stillbilder.</description>
- <description xml:lang="ta">இன்னும் படங்களை உருவாக்க மற்றும் திறமையாக கையாளுவதற்கான மென்பொருள்.</description>
- <description xml:lang="te">స్టిల్ ఇమేజెస్‌ను సృష్టించుటకు మరియు తీర్చిదిద్దుటకు సాఫ్టువేరు.</description>
- <description xml:lang="uk">Програми для створення і обробки статичних зображень.</description>
- <description xml:lang="zh_CN">生成和操作静止图像的软件。</description>
- <description xml:lang="zh_TW">用來建立和操作靜態影像的軟體。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">gimp</packagereq>
- <packagereq type="default">gimp-data-extras</packagereq>
- <packagereq type="default">gimp-help</packagereq>
- <packagereq type="default">gutenprint-plugin</packagereq>
- <packagereq type="default">inkscape</packagereq>
- <packagereq type="default">libsane-hpaio</packagereq>
- <packagereq type="default">sane-backends-drivers-scanners</packagereq>
- <packagereq type="default">sane-frontends</packagereq>
- <packagereq type="default">xsane-gimp</packagereq>
- <packagereq type="optional">dcraw</packagereq>
- <packagereq type="optional">ImageMagick</packagereq>
- <packagereq type="optional">netpbm-progs</packagereq>
- </packagelist>
- </group>
- <group>
- <id>guest-agents</id>
- <name>Guest Agents</name>
- <name xml:lang="as">অতিথি সহায়ক</name>
- <name xml:lang="bn_IN">গেস্ট এজেন্ট</name>
- <name xml:lang="cs">Agenti pro virtualizované hosty</name>
- <name xml:lang="de">Gast-Agenten</name>
- <name xml:lang="es">Agentes de huésped</name>
- <name xml:lang="fr">Agents invités</name>
- <name xml:lang="gu">મહેમાન એજન્ટો</name>
- <name xml:lang="hi">अतिथि प्रतिनिधि</name>
- <name xml:lang="it">Agente guest</name>
- <name xml:lang="ja">ゲストエージェント</name>
- <name xml:lang="kn">ಅತಿಥಿ ಮಧ್ಯವರ್ತಿಗಳು</name>
- <name xml:lang="ko">게스트 에이전트</name>
- <name xml:lang="ml">ഗസ്റ്റ് ഏജന്റുകള്‍</name>
- <name xml:lang="mr">अतिथी अजेंट्स</name>
- <name xml:lang="or">ଅତିଥି ସଦସ୍ୟମାନେ</name>
- <name xml:lang="pa">ਪ੍ਰਾਹੁਣੇ ਏਜੰਟ</name>
- <name xml:lang="pl">Agenty gościa</name>
- <name xml:lang="pt_BR">Agentes de Convidados</name>
- <name xml:lang="ru">Гостевые агенты</name>
- <name xml:lang="ta">விருந்தினர் முகவர்கள்</name>
- <name xml:lang="te">అతిథి ఏజెంట్లు</name>
- <name xml:lang="uk">Агенти гостьових систем</name>
- <name xml:lang="zh_CN">虚拟机代理</name>
- <name xml:lang="zh_TW">客座代理程式</name>
- <description>Agents used when running under a hypervisor.</description>
- <description xml:lang="as">এটা হাইপাৰভাইছৰৰ অন্তৰ্গত চলোতে ব্যৱহৃত সহায়কসমূহ।</description>
- <description xml:lang="bn_IN">একটি হাইপারভাইজরের অাওতায় চলার সময়ে ব্যবহৃত এজেন্ট।</description>
- <description xml:lang="cs">Nástroje používané při virtualizaci s hypervizorem.</description>
- <description xml:lang="de">Verwendete Agenten bei Ausführung unter einem Hypervisor.</description>
- <description xml:lang="es">Agentes utilizados al ejecutarse en un hipervisor.</description>
- <description xml:lang="fr">Agents utilisés lors d'une exécution sous un hyperviseur.</description>
- <description xml:lang="gu">હાયપરવાઇઝર હેઠળ ચલાવી રહ્યા હોય ત્યારે વપરાતા એજન્ટો.</description>
- <description xml:lang="hi">हाइपरविज़र के अंतर्गत प्रयुक्त होने वाले प्रतिनिधि.</description>
- <description xml:lang="it">Agenti usati durante l'esecuzione con un hypervisor.</description>
- <description xml:lang="ja">ハイパーバイザー配下で稼働する場合に使用するエージェントです。</description>
- <description xml:lang="kn">ಒಂದು ಹೈಪರ್ವೈಸರಿನ ಅಡಿಯಲ್ಲಿ ಚಲಾಯಿತಗೊಳ್ಳುವಾಗ ಬಳಸಲಾಗುವ ಮಧ್ಯವರ್ತಿಗಳು.</description>
- <description xml:lang="ko">하이퍼바이저에서 실행 시 사용되는 에이전트</description>
- <description xml:lang="ml">ഒരു ഹൈപ്പര്‍വൈസറില്‍ പ്രവര്‍ത്തിയ്ക്കുമ്പോള്‍ ഉപയോഗിയ്ക്കുന്ന ഏജന്റുകള്‍.</description>
- <description xml:lang="mr">हाइपरवाजर अंतर्गत चालवतेवेळी वापरण्याजोगी एजंट्स.</description>
- <description xml:lang="or">ଏକ ହାଇପରଭାଇଜର ଅନ୍ତର୍ଗତରେ ଚଲାଉଥିବା ସମୟରେ ବ୍ୟବହୃତ ସଦସ୍ୟମାନେ।</description>
- <description xml:lang="pa">ਜਦੋਂ ਹਾਈਪਰਵਾਈਜ਼ਰ ਹੇਠਾਂ ਚਲਾਏ ਜਾਣ ਤਾਂ ਵਰਤੇ ਜਾਂਦੇ ਏਜੰਟ।</description>
- <description xml:lang="pl">Agenty używane podczas działania pod nadzorcą.</description>
- <description xml:lang="pt_BR">Agentes utilizados ao serem executados sob um hypervisor</description>
- <description xml:lang="ru">Агенты, работающие под управлением гипервизора.</description>
- <description xml:lang="ta">ஒரு ஹைப்பர்வைசரின் கீழ் இயக்கப்படும் போது பயன்படுத்தப்படும் முகவர்கள்.</description>
- <description xml:lang="te">హైపర్విజర్ కిందన నడుస్తున్నప్పుడు అతిథులు ఉపయోగించబడును.</description>
- <description xml:lang="uk">Агенти, що використовуються під час роботи під керування гіпервізора.</description>
- <description xml:lang="zh_CN">在 hypervisor 中运行时使用的代理。</description>
- <description xml:lang="zh_TW">在 hypervisor 下執行時所使用的代理程式。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">hyperv-daemons</packagereq>
- <packagereq type="mandatory">open-vm-tools</packagereq>
- <packagereq type="mandatory">qemu-guest-agent</packagereq>
- </packagelist>
- </group>
- <group>
- <id>guest-desktop-agents</id>
- <name>Guest Desktop Agents</name>
- <name xml:lang="as">অতিথি ডেস্কটপ সহায়কসমূহ</name>
- <name xml:lang="bn_IN">গেস্ট ডেস্কটপ এজেন্ট</name>
- <name xml:lang="cs">Agenti pro pracovní prostředí hostů</name>
- <name xml:lang="de">Gast-Desktop-Agenten</name>
- <name xml:lang="es">Agentes de escritorio de huésped</name>
- <name xml:lang="fr">Agents de bureau invités</name>
- <name xml:lang="gu">મહેમાન ડૅસ્કટોપ એજન્ટો</name>
- <name xml:lang="hi">अतिथि डेस्कटॉप प्रतिनिधि</name>
- <name xml:lang="it">Agenti desktop del guest</name>
- <name xml:lang="ja">ゲストデスクトップエージェント</name>
- <name xml:lang="kn">ಅತಿಥಿ ಗಣಕತೆರೆ ಮಧ್ಯವರ್ತಿಗಳು</name>
- <name xml:lang="ko">게스트 데스크탑 에이전트</name>
- <name xml:lang="ml">ഗസ്റ്റ് പണിയിടത്തിനുള്ള ഏജന്റുകള്‍</name>
- <name xml:lang="mr">अतिथी डेस्कटॉप एजंट्स</name>
- <name xml:lang="or">ଅତିଥି ଡେସ୍କଟପ ସଦସ୍ୟମାନେ</name>
- <name xml:lang="pa">ਪ੍ਰਾਹੁਣੇ ਡੈਸਕਟਾਪ ਏਜੰਟ</name>
- <name xml:lang="pl">Agenty pulpitu gościa</name>
- <name xml:lang="pt_BR">Agentes de Desktop de Convidado</name>
- <name xml:lang="ru">Агенты гостевого рабочего стола</name>
- <name xml:lang="ta">விருந்தினர் பணிமேடை முகவர்கள்</name>
- <name xml:lang="te">అతిథి డెస్కుటాప్ ఏజెంట్లు</name>
- <name xml:lang="uk">Стільничні агенти гостьових систем</name>
- <name xml:lang="zh_CN">虚拟机桌面代理</name>
- <name xml:lang="zh_TW">客座桌面環境代理程式</name>
- <description>Agents used when running as a virtualized desktop.</description>
- <description xml:lang="as">এটা ভাৰছুৱেলাইজ্ড ডেস্কটপ ৰূপে চলোতে ব্যৱহৃত সহায়কসমূহ।</description>
- <description xml:lang="bn_IN">একটি ভার্চুয়ালাইজড ডেস্কটপ হিসাবে চলার সময়ে ব্যবহৃত এজেন্ট।</description>
- <description xml:lang="cs">Nástroje používané s virtualizovaným pracovním prostředím.</description>
- <description xml:lang="de">Verwendete Agenten bei Ausführung als virtualisierter Desktop.</description>
- <description xml:lang="es">Agentes utilizados cuando se ejecutan como un escritorio virtualizado.</description>
- <description xml:lang="fr">Agents utilisés lors d'une exécution en tant que bureau virtualisé.</description>
- <description xml:lang="gu">વર્ચ્યુઅલાઇઝ્ડ ડેસ્કટોપ તરીકે ચલાવતી વખતે વપરાતા એજન્ટો.</description>
- <description xml:lang="hi">प्रतिनिधि प्रयुक्त जब बतौर वर्चुअलाइज्ड डेस्कटॉप चले.</description>
- <description xml:lang="it">Agenti usati durante l'esecuzione come desktop virtualizzato.</description>
- <description xml:lang="ja">仮想化したデスクトップとして稼働する場合に使用するエージェントです。</description>
- <description xml:lang="kn">ವರ್ಚುವಲ್ ಆದ ಗಣಕತೆರೆಯಾಗಿ ಚಲಾಯಿತಗೊಳ್ಳುವಾಗ ಬಳಸಲಾಗುವ ಮಧ್ಯವರ್ತಿಗಳು.</description>
- <description xml:lang="ko">가상화 데스크탑으로 실행할 때 사용되는 에이전트</description>
- <description xml:lang="ml">ഒരു വിര്‍ച്ച്വലൈസ്ഡ് പണിയിടമായി പ്രവര്‍ത്തിയ്ക്കുമ്പോള്‍ ഉപയോഗിയ്ക്കുന്ന ഏജന്റുകള്‍</description>
- <description xml:lang="mr">वर्च्युअलाइज्ड डेस्कटॉप अंतर्गत चालवतेवेळी वापरण्याजोगी एजंट्स.</description>
- <description xml:lang="or">ଆଭାସୀ ଡେସ୍କଟପ ଭାବରେ ଚଲାଉଥିବା ସମୟରେ ବ୍ୟବହୃତ ସଦସ୍ୟ।</description>
- <description xml:lang="pa">ਜਦੋਂ ਆਭਾਸੀਕ੍ਰਿਤ ਡੈਸਕਟਾਪ ਵਜੋਂ ਚਲਾਏ ਜਾਣ ਤਾਂ ਵਰਤੇ ਜਾਂਦੇ ਏਜੰਟ।</description>
- <description xml:lang="pl">Agenty używane podczas działania jako wirtualizowane środowisko graficzne.</description>
- <description xml:lang="pt_BR">Agentes usados ao serem executados como desktop virtualizados.</description>
- <description xml:lang="ru">Агенты виртуального рабочего стола.</description>
- <description xml:lang="ta">ஒரு மெய்நிகராக்கப்பட்ட பணிமேடையாக இயக்கப்படும் போது பயன்படுத்தப்படும் முகவர்கள்.</description>
- <description xml:lang="te">వర్చ్యులైజ్డు డెస్కుటాప్ వలె నడుచుచున్నప్పుడు ఏజెంట్లు ఉపయోగించబడెను.</description>
- <description xml:lang="uk">Агенти, що використовуються під час роботи у режимі віртуалізованої стільниці.</description>
- <description xml:lang="zh_CN">作为虚拟桌面运行时使用的代理。</description>
- <description xml:lang="zh_TW">以虛擬化桌面環境執行時所使用的代理程式。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">open-vm-tools-desktop</packagereq>
- <packagereq type="mandatory">qemu-guest-agent</packagereq>
- <packagereq type="mandatory">spice-vdagent</packagereq>
- </packagelist>
- </group>
- <group>
- <id>ha</id>
- <name>High Availability</name>
- <name xml:lang="as">অতিমাত্ৰাত উপলব্ধ</name>
- <name xml:lang="bn">অতিমাত্রায় উপলব্ধ</name>
- <name xml:lang="bn_IN">অতিমাত্রায় উপলব্ধ</name>
- <name xml:lang="cs">Vysoká dostupnost</name>
- <name xml:lang="de">Hochverfügbarkeit</name>
- <name xml:lang="es">Alta disponibilidad</name>
- <name xml:lang="fr">Haute disponibilité</name>
- <name xml:lang="gu">ઊંચી ઉપલબ્ધતા</name>
- <name xml:lang="hi">उच्च उपलब्धता</name>
- <name xml:lang="it">High Availability</name>
- <name xml:lang="ja">High Availability</name>
- <name xml:lang="kn">ಅತಿ ಲಭ್ಯತೆ</name>
- <name xml:lang="ko">고 가용성</name>
- <name xml:lang="ml">ഹൈ അവയിലബിളിറ്റി</name>
- <name xml:lang="mr">उच्च उपलब्धता</name>
- <name xml:lang="or">ଅଧିକ ମାତ୍ରାରେ ଉପଲବ୍ଧତା</name>
- <name xml:lang="pa">ਉੱਚ ਉਪਲੱਬਧਤਾ</name>
- <name xml:lang="pl">Wysoka dostępność</name>
- <name xml:lang="pt_BR">Alta disponibilidade</name>
- <name xml:lang="ru">Высокий уровень доступности</name>
- <name xml:lang="sv">Hög tillgänglighet</name>
- <name xml:lang="ta">அதிகம் கிடைக்கூடியது</name>
- <name xml:lang="te">అత్యధిక అందుబాటు</name>
- <name xml:lang="uk">Висока доступність</name>
- <name xml:lang="zh_CN">高可用性</name>
- <name xml:lang="zh_TW">高可用性</name>
- <description>Infrastructure for highly available services and/or shared storage.</description>
- <description xml:lang="as">অতিমাত্ৰাত উপলব্ধ সেৱা আৰু/বা যৌথ ব্যৱহাৰৰ সংৰক্ষণৰ বাবে আন্তঃগাথনী।</description>
- <description xml:lang="bn">অতিমাত্রায় উপলব্ধ পরিসেবা এবং/অথবা যৌথ ব্যবহারের সংগ্রহস্থলের জন্য পরিকাঠামো।</description>
- <description xml:lang="bn_IN">অতিমাত্রায় উপলব্ধ পরিসেবা এবং/অথবা যৌথ ব্যবহারের সংগ্রহস্থলের জন্য পরিকাঠামো।</description>
- <description xml:lang="cs">Infrastruktura pro sdílená úložiště a služby s vysokou dostupností.</description>
- <description xml:lang="de">Infrastruktur für Hochverfügbarkeitsdienste und/oder gemeinsame genutzter Storage.</description>
- <description xml:lang="es">Infraestructura para servicios altamente disponibles y/o almacenaje compartido.</description>
- <description xml:lang="fr">Infrastructure pour services de haute disponibilité et/ou stockage partagé.</description>
- <description xml:lang="gu">ટોચની ઉપલબ્ધ સેવાઓ અને/અથવા વહેંચાયેલ સંગ્રહ માટે ઇન્ફ્રાસ્ટ્રક્ચર.</description>
- <description xml:lang="hi">उच्च रूप से उपलब्ध सेवाओं और/या साझा भंडार के लिए आधारभूत ढाँचा.</description>
- <description xml:lang="it">Infrastruttura per servizi altamente disponibili e/o storage condiviso.</description>
- <description xml:lang="ja">High Availability サービスや共有ストレージのインフラストラクチャ</description>
- <description xml:lang="kn">ಅತಿಯಾಗಿ ಲಭ್ಯವಿರುವ ಸೇವೆಗಳು ಹಾಗು/ಅಥವ ಹಂಚಲಾದ ಶೇಖರಣೆಯ ಸಂಪನ್ಮೂಲ.</description>
- <description xml:lang="ko">고가용성 서비스 또는/그리고 공유 저장소를 위한 인프라스트럭쳐</description>
- <description xml:lang="ml">ഹൈ അവയിലബിളിറ്റി സര്‍വീസുകള്‍, പങ്കിടുന്ന സ്റ്റോറേജ് എന്നിവയ്ക്കുള്ള ഇന്‍ഫ്രാസ്ട്രക്ടര്‍.</description>
- <description xml:lang="mr">उच्च उपलब्ध सर्व्हिसेस् व/किंवा शेअर्ड स्टोरेजकरीता इंफ्रास्ट्रक्चर.</description>
- <description xml:lang="or">ଅଧିକ ମାତ୍ରାରେ ଉପଲବ୍ଧ ସର୍ଭିସଗୁଡ଼ିକ ପାଇଁ ଅବସଂରଚନା ଏବଂ/ଅଥବା ସହଭାଗୀ ଭଣ୍ଡାର।</description>
- <description xml:lang="pa">ਵੱਧ ਉਪਲੱਬਧ ਸੇਵਾਵਾਂ ਅਤੇ/ਜਾਂ ਸ਼ੇਅਰ ਸਟੋਰੇਜ਼ ਲਈ ਢਾਂਚਾ।</description>
- <description xml:lang="pl">Infrastruktura dla wysoko dostępnych usług i/lub współdzielonej pamięci masowej.</description>
- <description xml:lang="pt_BR">Infraestrutura para serviços altamente disponíveis e/ou armazenamento compartilhado.</description>
- <description xml:lang="ru">Инфраструктура служб с высоким уровнем доступа и общего хранилища.</description>
- <description xml:lang="sv">Infrastruktur för tjänster med hög tillgänglighet och/eller delad lagring.</description>
- <description xml:lang="ta">அதிகமாக கிடைக்கக்கூடிய சேவைகள் மற்றும்/அல்லது பகிரப்பட்ட சேமிபக்கதிற்கான உள்ளமைப்பு.</description>
- <description xml:lang="te">అధికంగా అందుబాటులోవున్న సేవలు మరియు/లేదా భాగస్వామ్య నిల్వ కొరకు అవస్థాపన.</description>
- <description xml:lang="uk">Інфраструктура служб з високим рівнем доступності та спільні сховища.</description>
- <description xml:lang="zh_CN">用于高度可用服务和(或者)共享存储的基础设施。</description>
- <description xml:lang="zh_TW">高可用性服務與/或共享儲存裝置的架構。</description>
- <default>true</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">pacemaker</packagereq>
- <packagereq type="default">fence-agents-all</packagereq>
- <packagereq type="default">omping</packagereq>
- <packagereq type="default">pacemaker-doc</packagereq>
- <packagereq type="default">pcs</packagereq>
- <packagereq type="optional">booth-arbitrator</packagereq>
- <packagereq type="optional">booth-site</packagereq>
- <packagereq type="optional">sbd</packagereq>
- </packagelist>
- </group>
- <group>
- <id>hardware-monitoring</id>
- <name>Hardware Monitoring Utilities</name>
- <name xml:lang="as">হাৰ্ডৱেৰ পৰ্যবেক্ষণ সঁজুলিসমূহ</name>
- <name xml:lang="bn_IN">হার্ডওয়্যার নিরীক্ষণের সামগ্রী</name>
- <name xml:lang="cs">Nástroje pro sledování stavu hardware</name>
- <name xml:lang="de">Hardware Überwachungs-Dienstprogramme</name>
- <name xml:lang="es">Herramientas de monitorización de hardware</name>
- <name xml:lang="fr">Utilitaires de surveillance du matériel</name>
- <name xml:lang="gu">હાર્ડવેર મોનીટરીંગ ઉપયોગીતાઓ</name>
- <name xml:lang="hi">हार्डवेयर मॉनिटरिंग उपयोगिता</name>
- <name xml:lang="it">Utilità di monitoraggio hardware</name>
- <name xml:lang="ja">ハードウェアモニタリングユーティリティ</name>
- <name xml:lang="kn">ಯಂತ್ರಾಂಶ ಮೇಲ್ವಿಚಾರಣೆ ಸೌಲಭ್ಯಗಳು</name>
- <name xml:lang="ko">하드웨어 모니터링 유틸리티</name>
- <name xml:lang="ml">ഹാര്‍ഡ്‌വെയര്‍ നിരീക്ഷിയ്ക്കുന്നതിനുള്ള പ്രയോഗങ്ങള്‍</name>
- <name xml:lang="mr">हार्डवेअर मॉनिटरिंग युटिलिटिज</name>
- <name xml:lang="or">ହାର୍ଡୱେର ନିରୀକ୍ଷକ ଉପଯୋଗିତା</name>
- <name xml:lang="pa">ਹਾਰਡਵੇਅਰ ਤੇ ਨਜ਼ਰ ਰੱਖਣ ਵਾਲੀਆਂ ਯੂਟਿਲਟੀਆਂ</name>
- <name xml:lang="pl">Narzędzia do monitorowania sprzętu</name>
- <name xml:lang="pt_BR">Recursos de Monitoramento de Hardware</name>
- <name xml:lang="ru">Средства наблюдения за оборудованием</name>
- <name xml:lang="ta">வன்பொருள் கண்காணிப்புக் கருவிகள்</name>
- <name xml:lang="te">హార్డువేర్ పర్యవేక్షక సౌలభ్యాలు</name>
- <name xml:lang="uk">Програми для спостереження за обладнанням</name>
- <name xml:lang="zh_CN">硬件监控工具</name>
- <name xml:lang="zh_TW">硬體監控程式工具</name>
- <description>A set of tools to monitor server hardware.</description>
- <description xml:lang="as">চাৰ্ভাৰ হাৰ্ডৱাৰ পৰ্যবেক্ষন কৰিবলে সঁজুলিসমূহৰ এটা সংহতি।</description>
- <description xml:lang="bn_IN">সার্ভারের হার্ডওয়্যার নিরীক্ষণের জন্য ব্যবহৃত সরঞ্জামের সংকলন।</description>
- <description xml:lang="cs">Sada nástrojů pro sledování hardware serverů.</description>
- <description xml:lang="de">Eine Reihe von Tools zur Überwachung von Server-Hardware</description>
- <description xml:lang="es">Un set de herramientas para monitorizar hardware de servidor.</description>
- <description xml:lang="fr">Ensemble d'outils pour surveiller le matériel du serveur.</description>
- <description xml:lang="gu">સર્વર હાર્ડવેર મોનીટર કરવા માટેના સાધનોનો સમૂહ.</description>
- <description xml:lang="hi">सर्वर हार्डवेयर निरीक्षण के लिए औज़ारों का एक सेट</description>
- <description xml:lang="it">Un insieme di strumenti per il monitoraggio dell'hardware del server.</description>
- <description xml:lang="ja">サーバーハードウェアの監視用ツールセットです。</description>
- <description xml:lang="kn">ಪೂರೈಕೆಗಣಕದ ಯಂತ್ರಾಂಶವನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ನಡೆಸುವ ಉಪಕರಣಗಳು.</description>
- <description xml:lang="ko">서버 하드웨어를 모니터링 하기 위한 도구 모음</description>
- <description xml:lang="ml">സര്‍വര്‍ ഹാര്‍ഡ്‌വെയര്‍ നിരീക്ഷിയ്ക്കുന്നതിനുള്ള പ്രയോഗങ്ങള്‍.</description>
- <description xml:lang="mr">सर्व्हर हार्डवेअर नियंत्रीत करण्यासाठी साधनांचा संच.</description>
- <description xml:lang="or">ସର୍ଭର ହାର୍ଡୱେରକୁ ନିରୀକ୍ଷଣ କରିବା ପାଇଁ ସାଧାନଗୁଡ଼ିକର ଗୋଟିଏ ସେଟ.</description>
- <description xml:lang="pa">ਸਰਵਰ ਹਾਰਡਵੇਅਰ ਤੇ ਨਜ਼ਰ ਰੱਖਣ ਲਈ ਸੰਦਾਂ ਦਾ ਇੱਕ ਸਮੂਹ।</description>
- <description xml:lang="pl">Zestaw narzędzi do monitorowania sprzętu serwera.</description>
- <description xml:lang="pt_BR">Um conjunto de ferramentas para monitorar o hardware do servidor.</description>
- <description xml:lang="ru">Набор инструментов наблюдения за оборудованием сервера.</description>
- <description xml:lang="ta">சேவையக வன்பொருளைக் கண்காணிப்பதற்கான கருவிகளின் தொகுப்பு.</description>
- <description xml:lang="te">సేవిక హార్డువేర్ పర్యవేక్షించుటకు సాధనాల సమితి.</description>
- <description xml:lang="uk">Набір програм для спостереження за обладнанням сервера.</description>
- <description xml:lang="zh_CN">一组用来监控服务器硬件的工具。</description>
- <description xml:lang="zh_TW">用來監控伺服器硬體的一組工具。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="default">mcelog</packagereq>
- <packagereq type="default">rasdaemon</packagereq>
- <packagereq type="default">smartmontools</packagereq>
- <packagereq type="optional">edac-utils</packagereq>
- <packagereq type="optional">intel-cmt-cat</packagereq>
- <packagereq type="optional">lm_sensors</packagereq>
- </packagelist>
- </group>
- <group>
- <id>identity-management-server</id>
- <name>Identity Management Server</name>
- <name xml:lang="as">পৰিচয় ব্যৱস্থাপনা চাৰ্ভাৰ</name>
- <name xml:lang="bn_IN">আইডেন্টিটি ম্যানেজমেন্ট সার্ভার</name>
- <name xml:lang="cs">Server pro správu identit</name>
- <name xml:lang="de">Identitätsverwaltungs-Server</name>
- <name xml:lang="es">Servidor de admininistración de identidad</name>
- <name xml:lang="fr">Serveur de gestion des identités</name>
- <name xml:lang="gu">ઓળખ સંચાલન સર્વર</name>
- <name xml:lang="hi">पहचान प्रबंधन सर्वर</name>
- <name xml:lang="it">Server gestione identità</name>
- <name xml:lang="ja">識別管理サーバー</name>
- <name xml:lang="kn">ಗುರುತು ನಿರ್ವಹಣಾ ಪೂರೈಕೆಗಣಕಗಣಕ</name>
- <name xml:lang="ko">ID 관리 서버</name>
- <name xml:lang="ml">ഐഡന്റിറ്റി മാനേജ്മെന്റ് സര്‍വര്‍</name>
- <name xml:lang="mr">आइडेंटिटि मॅनेजमेंट सर्व्हर</name>
- <name xml:lang="or">ପରିଚୟ ପରିଚାଳନା ସର୍ଭର</name>
- <name xml:lang="pa">ਅਡੈਂਟਿਟੀ ਮੈਨੇਜਮੈਂਟ ਸਰਵਰ</name>
- <name xml:lang="pl">Serwer zarządzania tożsamością</name>
- <name xml:lang="pt_BR">Servidor de Gerenciamento de Identidade</name>
- <name xml:lang="ru">Сервер управления идентификацией</name>
- <name xml:lang="ta">அடையாள நிர்வாக சேவையகம்</name>
- <name xml:lang="te">గుర్తింపు నిర్వహణ సేవిక</name>
- <name xml:lang="uk">Сервер керування профілями</name>
- <name xml:lang="zh_CN">身份管理服务器</name>
- <name xml:lang="zh_TW">認證管理伺服器</name>
- <description>Centralized management of users, servers and authentication policies.</description>
- <description xml:lang="as">ব্যৱহাৰকাৰীসমূহ, চাৰ্ভাৰসমূহ আৰু প্ৰমাণীকৰণ নীতিসমূহৰ কেন্দ্ৰীয় ব্যৱস্থাপনা।</description>
- <description xml:lang="bn_IN">ব্যবহারকারী, সার্ভার ও অনুমোদনের নিয়মনীতির একটি কেন্দ্রীয় পরিচালন ব্যবস্থা।</description>
- <description xml:lang="cs">Centralizovaná správa uživatelů, serverů a pravidel pro autentizaci.</description>
- <description xml:lang="de">Zentralisierte Verwaltung von Benutzern, Servern und Authentifizierungsrichtlinien.</description>
- <description xml:lang="es">Administración centralizada de usuarios, servidores y políticas de autenticación.</description>
- <description xml:lang="fr">Gestion centralisée des utilisateurs, des serveurs et des politiques d'authentification.</description>
- <description xml:lang="gu">વપરાશકર્તાઓ, સર્વરો અને સત્તાધિકરણ પોલિસીનું કેન્દ્રિય સંચાલન.</description>
- <description xml:lang="hi">उपयोक्ता, सर्वर और सत्यापन नीतियों का केंद्रीकृत प्रबंधन.</description>
- <description xml:lang="it">Gestione centralizzata di utenti, server e politiche di autenticazione.</description>
- <description xml:lang="ja">ユーザー、サーバー、および認証ポリシーの中央管理を行います。</description>
- <description xml:lang="kn">ಬಳಕೆದಾರರು, ಪೂರೈಕೆಗಣಕಗಣಕಗಳು ಮತ್ತು ದೃಢೀಕರಣ ನೀತಿಗಳಿಗಾಗಿ ಕೇಂದ್ರೀಕೃತ ವ್ಯವಸ್ಥೆ.</description>
- <description xml:lang="ko">사용자, 서버, 인증 정책을 중앙 관리합니다.</description>
- <description xml:lang="ml">ഉപയോക്താക്കള്‍ക്കുള്ള സെന്‍ട്രലൈസ്ഡ് മാനേജ്മെന്റ്, സര്‍വറുകളും ആധികാരികത ഉറപ്പാക്കല്‍ പോളിസികളും.</description>
- <description xml:lang="mr">वापरकर्ते, सर्व्हर्स् व ओळखपटवण्याचे कराराचे केंद्रित व्यवस्थापन.</description>
- <description xml:lang="or">ବ୍ୟବହାରକାରୀ, ସର୍ଭର ଏବଂ ବୈଧିକରଣ ନିତୀଗୁଡ଼ିକର କେନ୍ଦ୍ରିୟ ପରିଚାଳନା।</description>
- <description xml:lang="pa">ਯੂਜ਼ਰਾਂ, ਸਰਵਰਾਂ ਅਤੇ ਪ੍ਰਮਾਣਿਕਤਾ ਪਾਲਿਸੀਆਂ ਦਾ ਕੇਂਦਰੀ ਪਰਬੰਧਨ।</description>
- <description xml:lang="pl">Centralne zarządzanie użytkownikami, serwerami i politykami uwierzytelniania.</description>
- <description xml:lang="pt_BR">Gerenciamento centralizado de usuários, servidores e políticas de autenticação.</description>
- <description xml:lang="ru">Централизованное управление пользователями, серверами и механизмами аутентификации.</description>
- <description xml:lang="ta">பயனர்கள், சேவையகங்கள் மற்றும் அங்கீகரிப்பு கொள்கைகளை நிர்வகிக்க மையமான வசதி.</description>
- <description xml:lang="te">వాడుకరుల, సేవికల మరియు ధృవీకరణ విధానాల యొక్క కేంద్రీకృత నిర్వహణ.</description>
- <description xml:lang="uk">Інструмент централізованого керування правилами роботи з користувачами, серверами та правилами розпізнавання.</description>
- <description xml:lang="zh_CN">用户、服务器和认证策略的集中管理。</description>
- <description xml:lang="zh_TW">中央式管理使用者、伺服器、以及授權政策。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="default">389-ds-base</packagereq>
- <packagereq type="default">ipa-admintools</packagereq>
- <packagereq type="default">ipa-server</packagereq>
- <packagereq type="default">pki-ca</packagereq>
- <packagereq type="optional">bind-pkcs11</packagereq>
- <packagereq type="optional">bind-pkcs11-utils</packagereq>
- <packagereq type="optional">ipa-server-dns</packagereq>
- <packagereq type="optional">ipa-server-trust-ad</packagereq>
- <packagereq type="optional">nuxwdog</packagereq>
- <packagereq type="optional">slapi-nis</packagereq>
- </packagelist>
- </group>
- <group>
- <id>infiniband</id>
- <name>Infiniband Support</name>
- <name xml:lang="as">Infiniband সমৰ্থন</name>
- <name xml:lang="bn">Infiniband সমর্থন ব্যবস্থা</name>
- <name xml:lang="bn_IN">Infiniband সমর্থন ব্যবস্থা</name>
- <name xml:lang="cs">Podpora pro Infiniband</name>
- <name xml:lang="de">Unterstützung für Infiniband</name>
- <name xml:lang="es">Soporte para Infiniband</name>
- <name xml:lang="fr">Prise en charge de l'Infiniband</name>
- <name xml:lang="gu">Infiniband આધાર</name>
- <name xml:lang="hi">Infiniband समर्थन</name>
- <name xml:lang="ia">Supporto de Infiniband</name>
- <name xml:lang="it">Supporto Infiniband</name>
- <name xml:lang="ja">Infiniband のサポート</name>
- <name xml:lang="kn">ಇನ್‌ಫಿನಿಬ್ಯಾಂಡ್ ಬೆಂಬಲ</name>
- <name xml:lang="ko">Infiniband 지원</name>
- <name xml:lang="ml">ഇന്‍ഫിനിബാന്‍ഡ് പിന്തുണ</name>
- <name xml:lang="mr">इंफिनिबँड समर्थन</name>
- <name xml:lang="or">ଇନଫିନିବ୍ୟାଣ୍ଡ ସହାୟତା</name>
- <name xml:lang="pa">ਇਨਫਿਨੀਬੈਂਡ ਸਮਰਥਨ</name>
- <name xml:lang="pl">Obsługa InfiniBand</name>
- <name xml:lang="pt_BR">Suporte para Infiniband</name>
- <name xml:lang="ru">Поддержка InfiniBand</name>
- <name xml:lang="sv">Stöd för infiniband</name>
- <name xml:lang="ta">இன்ஃபினிபேண்ட் ஆதரவு</name>
- <name xml:lang="te">ఇన్ఫిబాండ్ మద్దతు</name>
- <name xml:lang="uk">Підтримка Infiniband</name>
- <name xml:lang="zh_CN">Infiniband 支持</name>
- <name xml:lang="zh_TW">Infiniband 支援</name>
- <description>Software designed for supporting clustering and grid connectivity using RDMA-based InfiniBand and iWARP fabrics.</description>
- <description xml:lang="as">RDMA ভিত্তিয় InfiniBand আৰু iWARP ফেব্ৰিকসমূহ ব্যৱহৃত থুপ খোৱা আৰু গ্ৰিড সংযোগৰ বাবে ৰূপাংকিত চফ্টৱেৰ।</description>
- <description xml:lang="bn">RDMA-ভিত্তিক InfiniBand ও iWARP ফ্যাব্রিক প্রয়োগকারী ক্লাস্টার ও গ্রিড সংযোগ সমর্থনকারী সফ্টওয়্যার।</description>
- <description xml:lang="bn_IN">RDMA-ভিত্তিক InfiniBand ও iWARP ফ্যাব্রিক প্রয়োগকারী ক্লাস্টার ও গ্রিড সংযোগ সমর্থনকারী সফ্টওয়্যার।</description>
- <description xml:lang="cs">Software pro podporu clusterů a mřížkové topologie grid s využitím sítí InfiniBand a protokolů RDMA a iWARP.</description>
- <description xml:lang="de">Software, die zur Unterstützung von Clustering- und Grid-Konnektivität unter Verwedung von RDMA-basierten Infiniband- und iWARP-Fabrics konzipiert wurde.</description>
- <description xml:lang="es">Software diseñado para soportar agrupamiento y conectividad de rejilla mediante telas InfiniBand e iWARP basadas en RDMA.</description>
- <description xml:lang="fr">Logiciel conçu pour prendre en charge le clustering et la connectivité de grilles à l'aide d'un InfiniBand basé RDMA, et de fabriques iWARP.</description>
- <description xml:lang="gu">RDMA-based InfiniBand અને iWARP ફેબ્રિક ની મદદથી ક્લસ્ટરીંગ અને જાળી જોડાણને આધાર આપવા માટે સોફ્ટવેર રચાયેલ છે.</description>
- <description xml:lang="hi">क्लस्टरिंग और ग्रिड कनेक्टेविटी के समर्थन के लिए बना सॉफ्टवेयर जो RDMA-आधारित InfiniBand और iWARP फैब्रिक्स का उपयोग करता है.</description>
- <description xml:lang="ia">Software designate pro supportar connexiones in gruppamentos e grillas de systemas per le uso de InfiniBand in modo RDMA e fabricas iWARP.</description>
- <description xml:lang="it">Software creato per il supporto del clustering e della connettività grid utilizzando InfiniBand basato su RDMA e Fabrics iWARP.</description>
- <description xml:lang="ja">RDMA ベースの InfiniBand や iWARP ファブリックを使用してクラスタリングやグリッドの接続性を サポートするように設計されているソフトウェアです。</description>
- <description xml:lang="kn">RDMA-ಆಧರಿತವಾದ InfiniBand ಹಾಗು iWARP ಫ್ಯಾಬ್ರಿಕ್‌ಗಳನ್ನು ಬಳಸುವ ಕ್ಲಸ್ಟರಿಂಗ್ ಹಾಗು ಗ್ರಿಡ್ ಸಂಪರ್ಕವನ್ನು ಬೆಂಬಲಿಸುವ ತಂತ್ರಾಂಶ.</description>
- <description xml:lang="ko">RDMA기반 InfiniBand와 iWARP 패브릭을 사용하여 클러스터링과 그리드 연결을 지원하기 위해 설계된 소프트웨어</description>
- <description xml:lang="ml">RDMA-അടിസ്ഥാനത്തിലുള്ള InfiniBand, iWARP ഫാബ്രിക്സ് ഉപയോഗിച്ചു് ക്ലസ്റ്ററിങും ഗ്രിഡ് കണക്ടിവിറ്റിയും പിന്തുണയ്ക്കുന്നതിനുള്ള സോഫ്റ്റ്‌വെയര്‍.</description>
- <description xml:lang="mr">RDMA-आधारीत InfiniBand व iWARP फॅब्रिक्स्चा वापर करून, क्लस्टरिंग व ग्रीड कनक्टिविटी समर्थन पुरवण्यासाठी सॉफ्टवेअर.</description>
- <description xml:lang="or">RDMA-ଆଧାରିତ InfiniBand ଏବଂ iWARP ଫେବ୍ରିକ ବ୍ୟବାହର କରି କ୍ଲଷ୍ଟରିଙ୍ଗ ଏବଂ ଗ୍ରୀଡ଼ ସଂଯୋଜକତାକୁ ସମର୍ଥନ କରିବା ପାଇଁ ସଂରଚନା କରାଯାଇଥିବା ସଫ୍ଟୱେର।</description>
- <description xml:lang="pa">RDMA-ਅਧਾਰਿਤ InfiniBand ਅਤੇ iWARP ਫੈਬਰਿਕ ਵਰਤ ਕੇ ਕਲੱਸਟਰਿੰਗ ਸਹਿਯੋਗ ਅਤੇ ਗਰਿੱਡ ਕੁਨੈਕਟੀਵਿਟੀ ਲਈ ਬਣਾਇਆ ਸਾਫਟਵੇਅਰ।</description>
- <description xml:lang="pl">Oprogramowanie zaprojektowane do obsługiwania łączności klastrowej i gridów?? używając urządzeń InfiniBand oraz iWARP opartych na RDMA.</description>
- <description xml:lang="pt_BR">Software criado para suportar clustering e conectividade do grid usando o InfiniBand e iWARP fabrics baseado em RDMA.</description>
- <description xml:lang="ru">Программы для поддержки кластеризации и распределенных соединений с помощью коммутации InfiniBand и iWARP.</description>
- <description xml:lang="sv">Programvara gjord för att stödja klustring och nätverkskonnektivitet med RDMA-baserat InfiniBand och iWARP-vävar.</description>
- <description xml:lang="ta">RDMA-அடிப்படையிலான InfiniBand மற்றும் iWARP இழைகளைப் பயன்படுத்தும் கிளஸ்ட்டரிங் மற்றும் கிரிட் இணைப்புத் தன்மை ஆகியவற்றை ஆதரிக்கும் வகையில் வடிவமைக்கப்பட்ட மென்பொருள்.</description>
- <description xml:lang="te">RDMA-ఆధారిత InfiniBand మరియు iWARP ఫాబ్రిక్స్ వుపయోగించి క్లస్టరింగ్ మరియు గ్రిడ్ అనుసంధానతను మద్దతించుటకు రూపొందించబడిన సాఫ్టువేరు.</description>
- <description xml:lang="uk">Програмне забезпечення, розроблене для підтримки кластеризації та підтримання з’єднання у обчислювальних мережах за допомогою заснованих на віддаленому прямому доступі до пам’яті (RDMA) за допомогою шин InfiniBand і iWARP.</description>
- <description xml:lang="zh_CN">用来支持集群和使用 RDMA InfiniBand 和 iWARO 光纤的网状连接性的软件。</description>
- <description xml:lang="zh_TW">此軟體主要設計來透過使用基於 RDMA 的 InfiniBand 和 iWARP fabrics,以支援叢集和網格連線。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">libibcm</packagereq>
- <packagereq type="mandatory">libibverbs</packagereq>
- <packagereq type="mandatory">libibverbs-utils</packagereq>
- <packagereq type="mandatory">librdmacm</packagereq>
- <packagereq type="mandatory">librdmacm-utils</packagereq>
- <packagereq type="conditional" requires="glusterfs">glusterfs-rdma</packagereq>
- <packagereq type="default">dapl</packagereq>
- <packagereq type="default">ibacm</packagereq>
- <packagereq type="default">ibutils</packagereq>
- <packagereq type="default">infiniband-diags</packagereq>
- <packagereq type="default">iwpmd</packagereq>
- <packagereq type="default">libcxgb3</packagereq>
- <packagereq type="default">libcxgb4</packagereq>
- <packagereq type="default">libhfi1</packagereq>
- <packagereq type="default">libi40iw</packagereq>
- <packagereq type="default">libibmad</packagereq>
- <packagereq type="default">libibumad</packagereq>
- <packagereq type="default">libipathverbs</packagereq>
- <packagereq type="default">libmlx4</packagereq>
- <packagereq type="default">libmlx5</packagereq>
- <packagereq type="default">libmthca</packagereq>
- <packagereq type="default">libnes</packagereq>
- <packagereq type="default">libocrdma</packagereq>
- <packagereq type="default">mstflint</packagereq>
- <packagereq type="default">opa-address-resolution</packagereq>
- <packagereq type="default">opa-fastfabric</packagereq>
- <packagereq type="default">perftest</packagereq>
- <packagereq type="default">qperf</packagereq>
- <packagereq type="default">rdma-ndd</packagereq>
- <packagereq type="default">srp_daemon</packagereq>
- <packagereq type="optional">compat-dapl</packagereq>
- <packagereq type="optional">compat-opensm-libs</packagereq>
- <packagereq type="optional">libibcommon</packagereq>
- <packagereq type="optional">libusnic_verbs</packagereq>
- <packagereq type="optional">libvma</packagereq>
- <packagereq type="optional">opensm</packagereq>
- <packagereq type="optional">rdma-core</packagereq>
- <packagereq type="optional">usnic-tools</packagereq>
- </packagelist>
- </group>
- <group>
- <id>input-methods</id>
- <name>Input Methods</name>
- <name xml:lang="ar">طرق الإدخال</name>
- <name xml:lang="as">ইনপুট পদ্ধতিসমূহ</name>
- <name xml:lang="bn">ইনপুট পদ্ধতি</name>
- <name xml:lang="bn_IN">ইনপুট পদ্ধতি</name>
- <name xml:lang="ca">Mètodes d'entrada</name>
- <name xml:lang="cs">Vstupní metody</name>
- <name xml:lang="da">Inddatametoder</name>
- <name xml:lang="de">Eingabemethoden</name>
- <name xml:lang="el">Μέθοδοι εισαγωγής</name>
- <name xml:lang="es">Métodos de Entrada</name>
- <name xml:lang="et">Sisendmeetodid</name>
- <name xml:lang="fi">Syöttömenetelmät</name>
- <name xml:lang="fr">Méthodes de saisie</name>
- <name xml:lang="gu">ઇનપુટ પદ્દતિઓ</name>
- <name xml:lang="he">שיטות קלט</name>
- <name xml:lang="hi">इनपुट विधि</name>
- <name xml:lang="hu">Bevitel eljárások</name>
- <name xml:lang="ia">Methodos de entrata</name>
- <name xml:lang="id">Metoda Input</name>
- <name xml:lang="is">Innsetningaraðferðir</name>
- <name xml:lang="it">Metodi di input</name>
- <name xml:lang="ja">入力メソッド</name>
- <name xml:lang="kn">ಇನ್‌ಪುಟ್ ವಿಧಾನಗಳು</name>
- <name xml:lang="ko">입력 방식</name>
- <name xml:lang="lv">Ievades metodes</name>
- <name xml:lang="mai">इनपुट पद्धति</name>
- <name xml:lang="ml">ഇന്‍പുട്ട് രീതികള്‍</name>
- <name xml:lang="mr">इंपुट पध्दती</name>
- <name xml:lang="nb">Inndatametoder</name>
- <name xml:lang="nl">Invoermethoden</name>
- <name xml:lang="or">ନିବେଶ ପଦ୍ଧତି</name>
- <name xml:lang="pa">ਇੰਪੁੰਟ ਢੰਗ</name>
- <name xml:lang="pl">Metody wprowadzania</name>
- <name xml:lang="pt">Métodos de Introdução de Dados</name>
- <name xml:lang="pt_BR">Métodos de Inserção</name>
- <name xml:lang="ru">Методы ввода</name>
- <name xml:lang="sk">Metódy vstupu</name>
- <name xml:lang="sr">Методе уноса</name>
- <name xml:lang="sr@latin">Metode unosa</name>
- <name xml:lang="sr@Latn">Metode unosa</name>
- <name xml:lang="sv">Inmatningsmetoder</name>
- <name xml:lang="ta">உள்ளீடு முறைகள்</name>
- <name xml:lang="te">ఎగుబడి పద్దతులు</name>
- <name xml:lang="tg">Услубҳои воридотӣ</name>
- <name xml:lang="th">วิธีป้อนข้อความ</name>
- <name xml:lang="uk">Методи вводу</name>
- <name xml:lang="zh_CN">输入法</name>
- <name xml:lang="zh_TW">輸入法</name>
- <description>Software for the input of international text.</description>
- <description xml:lang="as">বিভিন্ন আন্তৰ্জাতিক ভাষাত লিখাৰ বাবে প্ৰয়োজনীয় চফ্টৱেৰ।</description>
- <description xml:lang="bn">বিভিন্ন আন্তর্জাতিক ভাষায় লেখার জন্য প্রয়োজনীয় সফ্টওয়্যার।</description>
- <description xml:lang="bn_IN">বিভিন্ন আন্তর্জাতিক ভাষায় লেখার জন্য প্রয়োজনীয় সফ্টওয়্যার।</description>
- <description xml:lang="cs">Vstupní metody pro podporu exotických jazyků s obrázkovým písmem (např. japonština, korejština, čínština).</description>
- <description xml:lang="de">Software zur Eingabe von internationalem Text.</description>
- <description xml:lang="es">Paquetes de métodos de entrada de texto internacional.</description>
- <description xml:lang="fr">Logiciel pour la saisie de texte international.</description>
- <description xml:lang="gu">આંતરરાષ્ટ્રીય લખાણનાં ઇનપુટ માટે સોફ્ટવેર.</description>
- <description xml:lang="hi">अंतरराष्ट्रीय पाठ की इनपुट के लिए सॉफ्टवेयर.</description>
- <description xml:lang="ia">Software pro le entrata de texto international.</description>
- <description xml:lang="it">Software per l'inserimento di testo internazionale.</description>
- <description xml:lang="ja">国際的なテキストを入力するためのソフトウェアです。</description>
- <description xml:lang="kn">ಅಂತರಾಷ್ಟ್ರೀಯ ಪಠ್ಯವನ್ನು ನಮೂದಿಸಲು ಬಳಸಲಾಗುವ ಇನ್‌ಪುಟ್ ತಂತ್ರಾಂಶ.</description>
- <description xml:lang="ko">다국어 텍스트 입력을 위한 소프트웨어.</description>
- <description xml:lang="ml">ഇന്റര്‍ണാഷണല്‍ ടെക്സ്റ്റ് ഇന്‍പുട്ടിനുള്ള സോഫ്റ്റ്‌വെയര്‍.</description>
- <description xml:lang="mr">अंतरराष्ट्रीय मजकूरच्या इंपुट करीता सॉफ्टवेअर.</description>
- <description xml:lang="or">ଆନ୍ତର୍ଜାତିକ ପାଠ୍ୟର ନିବେଶ ପାଇଁ ସଫ୍ଟୱେର।</description>
- <description xml:lang="pa">ਇੰਟਰਨੈਸ਼ਨਲ ਟੈਕਸਟ ਦੀ ਇੱਪੁੱਟ ਲਈ ਸਾਫਟਵੇਅਰ।</description>
- <description xml:lang="pl">Oprogramowanie do wpisywania międzynarodowego tekstu.</description>
- <description xml:lang="pt_BR">Software para inserção de texto internacional.</description>
- <description xml:lang="ru">Программы для набора текста на различных языках.</description>
- <description xml:lang="sv">Programvara för inmatning av internationell text.</description>
- <description xml:lang="ta">உலகளாவிய உரையின் உள்ளீட்டிற்கான மென்பொருள்.</description>
- <description xml:lang="te">అంతర్జాతీయ పాఠము యొక్క యిన్పుట్ కొరకు సాఫ్టువేరు.</description>
- <description xml:lang="uk">Програми для введення тексту різними мовами.</description>
- <description xml:lang="zh_CN">输入国际文本的软件。</description>
- <description xml:lang="zh_TW">用來輸入國際文字的軟體。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="conditional" requires="gtk2">gtk2-immodule-xim</packagereq>
- <packagereq type="conditional" requires="gtk3">gtk3-immodule-xim</packagereq>
- <packagereq type="conditional" requires="gtk2">ibus-gtk2</packagereq>
- <packagereq type="conditional" requires="gtk3">ibus-gtk3</packagereq>
- <packagereq type="conditional" requires="qt">ibus-qt</packagereq>
- <packagereq type="conditional" requires="gnome-session">imsettings-gsettings</packagereq>
- <packagereq type="conditional" requires="qt">imsettings-qt</packagereq>
- <packagereq type="default">ibus-chewing</packagereq>
- <packagereq type="default">ibus-hangul</packagereq>
- <packagereq type="default">ibus-kkc</packagereq>
- <packagereq type="default">ibus-libpinyin</packagereq>
- <packagereq type="default">ibus-m17n</packagereq>
- <packagereq type="default">ibus-rawcode</packagereq>
- <packagereq type="default">ibus-sayura</packagereq>
- <packagereq type="default">ibus-table</packagereq>
- <packagereq type="default">ibus-table-chinese</packagereq>
- <packagereq type="default">m17n-contrib</packagereq>
- <packagereq type="default">m17n-db</packagereq>
- <packagereq type="optional">ibus-typing-booster</packagereq>
- <packagereq type="optional">iok</packagereq>
- </packagelist>
- </group>
- <group>
- <id>internet-applications</id>
- <name>Internet Applications</name>
- <name xml:lang="as">ইন্টাৰনেট এপ্লিকেচনসমূহ</name>
- <name xml:lang="bn">ইন্টারনেট অ্যাপ্লিকেশন</name>
- <name xml:lang="bn_IN">ইন্টারনেট অ্যাপ্লিকেশন</name>
- <name xml:lang="cs">Internetové aplikace</name>
- <name xml:lang="de">Internet-Anwendungen</name>
- <name xml:lang="es">Aplicaciones de Internet</name>
- <name xml:lang="fr">Applications internet</name>
- <name xml:lang="gu">ઇન્ટરનેટ કાર્યક્રમો</name>
- <name xml:lang="hi">इंटरनेट अनुप्रयोग</name>
- <name xml:lang="ia">Applicationes de Rete</name>
- <name xml:lang="it">Applicazioni internet</name>
- <name xml:lang="ja">インターネットアプリケーション</name>
- <name xml:lang="kn">ಅಂತರಜಾಲ ಅನ್ವಯಗಳು</name>
- <name xml:lang="ko">인터넷 프로그램</name>
- <name xml:lang="ml">ഇന്റര്‍നെറ്റ് പ്രയോഗങ്ങള്‍</name>
- <name xml:lang="mr">ऍप्लिकेशन्स्</name>
- <name xml:lang="or">ଇଣ୍ଟରନେଟ ପ୍ରୟୋଗଗୁଡ଼ିକ</name>
- <name xml:lang="pa">ਇੰਟਰਨੈੱਟ ਐਪਲੀਕੇਸ਼ਨਾਂ</name>
- <name xml:lang="pl">Aplikacje internetowe</name>
- <name xml:lang="pt_BR">Aplicações de Internet</name>
- <name xml:lang="ru">Приложения Интернета</name>
- <name xml:lang="sv">Internetprogram</name>
- <name xml:lang="ta">இணையத்தள பயன்பாடுகள்</name>
- <name xml:lang="te">ఇంటర్నెట్ అనువర్తనములు</name>
- <name xml:lang="uk">Інтернет-програми</name>
- <name xml:lang="zh_CN">互联网应用程序</name>
- <name xml:lang="zh_TW">網際網路應用程式</name>
- <description>Email, chat, and video conferencing software.</description>
- <description xml:lang="as">ই-মেইল, চেট আৰু ভিডিঅ' সন্মিলনী চফ্টৱেৰ।</description>
- <description xml:lang="bn">ই-মেইল, আলাপন ও ভিডিও কনফারেন্স সম্বন্ধীয় সফ্টওয়্যার।</description>
- <description xml:lang="bn_IN">ই-মেইল, আলাপন ও ভিডিও কনফারেন্স সম্বন্ধীয় সফ্টওয়্যার।</description>
- <description xml:lang="cs">Aplikace pro provoz e-mailu, chatu a videokonferencí.</description>
- <description xml:lang="de">E-Mail, Chat und Videokonferenz-Software.</description>
- <description xml:lang="es">Software de correo-e, chat, y vídeo conferencias.</description>
- <description xml:lang="fr">Messagerie électronique, messagerie instantanée, et logiciel de vidéoconférence.</description>
- <description xml:lang="gu">ઇમેલ, ચેટ, અને વિડિયો કૉન્ફરન્સીંગ સોફ્ટવેર.</description>
- <description xml:lang="hi">ईमेल, चैट, और वीडियो सम्मेलन सॉफ्टवेयर.</description>
- <description xml:lang="ia">Software de e-posta, chat e video-conferentia.</description>
- <description xml:lang="it">Software per conferenza video, email e chat.</description>
- <description xml:lang="ja">電子メール、チャット、ビデオ会議のソフトウェアです。</description>
- <description xml:lang="kn">ಇಮೈಲ್, ಮಾತುಕತೆ, ಹಾಗು ವೀಡಿಯೊ ಸಮ್ಮೇಳನಕ್ಕೆ ನೆರವಾಗುವ ತಂತ್ರಾಂಶ.</description>
- <description xml:lang="ko">이메일, 채팅, 화상회의 소프트웨어.</description>
- <description xml:lang="ml">ഈമെയില്‍, ചാറ്റ്, വീഡിയോ കോണ്‍ഫറന്‍സിങ് എന്നിവയ്ക്കുള്ള സോഫ്റ്റ്‌വെയര്‍.</description>
- <description xml:lang="mr">ईमेल, चॅट, व व्हिडीओ कॉन्फरेंसिंग सॉफ्टवेअर.</description>
- <description xml:lang="or">ଇମେଲ, ଚାର୍ଟ, ଏବଂ ଭିଡିଓ ସମ୍ମେଳନ ସଫ୍ଟୱେର।</description>
- <description xml:lang="pa">ਈਮੇਲ, ਚੈਟ, ਅਤੇ ਵੀਡੀਓ ਕਾਨਫਰੰਸ ਸਾਫਟਵੇਅਰ।</description>
- <description xml:lang="pl">Oprogramowanie do obsługi poczty, komunikatorów i wideokonferencji.</description>
- <description xml:lang="pt_BR">Software email, babe-papo e vídeo-conferência.</description>
- <description xml:lang="ru">Программы электронной почты, обмена сообщениями и видеоконференций.</description>
- <description xml:lang="sv">Epost-, chatt- och videokonferensprogram.</description>
- <description xml:lang="ta">மின்னஞ்சல், அரட்டை, மற்றும் வீடியோ கலந்துரையாடல் மென்பொருள்.</description>
- <description xml:lang="te">ఈమెయిల్, చాట్, మరియు వీడియో కాన్ఫరెన్సింగ్ సాఫ్టువేర్.</description>
- <description xml:lang="uk">Програми для обміну електронною поштою, спілкування та проведення відеоконференцій.</description>
- <description xml:lang="zh_CN">电子邮件、聊天和视频会议软件。</description>
- <description xml:lang="zh_TW">郵件、聊天,以及視訊通話的軟體。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="default">ekiga</packagereq>
- <packagereq type="default">empathy</packagereq>
- <packagereq type="default">evolution</packagereq>
- <packagereq type="default">evolution-ews</packagereq>
- <packagereq type="default">evolution-help</packagereq>
- <packagereq type="default">evolution-mapi</packagereq>
- <packagereq type="optional">pidgin</packagereq>
- <packagereq type="optional">pidgin-sipe</packagereq>
- <packagereq type="optional">thunderbird</packagereq>
- <packagereq type="optional">xchat</packagereq>
- </packagelist>
- </group>
- <group>
- <id>internet-browser</id>
- <name>Internet Browser</name>
- <name xml:lang="as">ইন্টাৰনেট ব্ৰাউছাৰ</name>
- <name xml:lang="bn">ইন্টারনেট ব্রাউজার</name>
- <name xml:lang="bn_IN">ইন্টারনেট ব্রাউজার</name>
- <name xml:lang="cs">Prohlížeč internetu</name>
- <name xml:lang="de">Internet-Browser</name>
- <name xml:lang="es">Navegador de Internet</name>
- <name xml:lang="fr">Navigateur Internet</name>
- <name xml:lang="gu">ઇન્ટરનેટ બ્રાઉઝર</name>
- <name xml:lang="hi">इंटरनेट ब्राउज़र</name>
- <name xml:lang="ia">Navigator de Rete</name>
- <name xml:lang="it">Internet Browser</name>
- <name xml:lang="ja">インターネットブラウザ</name>
- <name xml:lang="kn">ಅಂತರಜಾಲ ವೀಕ್ಷಕ</name>
- <name xml:lang="ko">인터넷 브라우저</name>
- <name xml:lang="ml">ഇന്റര്‍നെറ്റ് ബ്രൌസര്‍</name>
- <name xml:lang="mr">इंटरनेट ब्राऊजर</name>
- <name xml:lang="or">ଇଣ୍ଟରନେଟ ବ୍ରାଉଜର</name>
- <name xml:lang="pa">ਇੰਟਰਨੈੱਟ ਬਰਾਊਜ਼ਿੰਗ</name>
- <name xml:lang="pl">Przeglądarka internetowa</name>
- <name xml:lang="pt_BR">Navegador de Internet</name>
- <name xml:lang="ru">Интернет-браузер</name>
- <name xml:lang="sv">Internetbläddrare</name>
- <name xml:lang="ta">இணைய உலாவி</name>
- <name xml:lang="te">ఇంటర్నెట్ బ్రౌజర్</name>
- <name xml:lang="uk">Програма для перегляду інтернету</name>
- <name xml:lang="zh_CN">互联网浏览器</name>
- <name xml:lang="zh_TW">網路瀏覽器</name>
- <description>Firefox web browser.</description>
- <description xml:lang="as">Firefox ৱেব ব্ৰাউছাৰ।</description>
- <description xml:lang="bn_IN">Firefox ওয়েব-ব্রাউজার।</description>
- <description xml:lang="cs">Webový prohlížeč Firefox.</description>
- <description xml:lang="de">Firefox Web-Browser.</description>
- <description xml:lang="es">Navegador web de Firefox</description>
- <description xml:lang="fr">Navigateur web Firefox.</description>
- <description xml:lang="gu">Firefox વેબ બ્રાઉઝર.</description>
- <description xml:lang="hi">फ़ायरफ़ॉक्स वेब ब्राउज़र</description>
- <description xml:lang="it">Web browser Firefox.</description>
- <description xml:lang="ja">Firefox web ブラウザです。</description>
- <description xml:lang="kn">ಫೈರ್ಫಾಕ್ಸ್ ಜಾಲ ವೀಕ್ಷಕ.</description>
- <description xml:lang="ko">Firefox 웹브라우저</description>
- <description xml:lang="ml">ഫയര്‍ഫോക്സ് വെബ് ബ്രൌസര്‍.</description>
- <description xml:lang="mr">Firefox वेब ब्राउजर.</description>
- <description xml:lang="or">Firefox ୱେବ ବ୍ରାଉଜର।</description>
- <description xml:lang="pa">ਫਾਇਰਫਾਕਸ ਵੈੱਬ ਸਰਵਰ।</description>
- <description xml:lang="pl">Przeglądarka WWW Firefox.</description>
- <description xml:lang="pt_BR">Firefox web browser</description>
- <description xml:lang="ru">Браузер Firefox</description>
- <description xml:lang="ta">Firefox வலை உலாவி.</description>
- <description xml:lang="te">ఫైర్‌ఫాక్స్ వెబ్‌బ్రౌజర్.</description>
- <description xml:lang="uk">Браузер Firefox.</description>
- <description xml:lang="zh_CN">Firefox 网页浏览器。</description>
- <description xml:lang="zh_TW">Firefox 網站瀏覽器。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="default">firefox</packagereq>
- <packagereq type="default">icedtea-web</packagereq>
- </packagelist>
- </group>
- <group>
- <id>java-platform</id>
- <name>Java Platform</name>
- <name xml:lang="as">Java প্লেটফৰ্ম</name>
- <name xml:lang="bn">Java প্ল্যাটফর্ম</name>
- <name xml:lang="bn_IN">Java প্ল্যাটফর্ম</name>
- <name xml:lang="cs">Prostředí pro Javu</name>
- <name xml:lang="de">Java-Plattform</name>
- <name xml:lang="es">Plataforma de Java</name>
- <name xml:lang="fr">Plateforme Java</name>
- <name xml:lang="gu">Java પ્લેટફોર્મ</name>
- <name xml:lang="hi">जावा प्लैटफॉर्म</name>
- <name xml:lang="ia">Platteforma Java</name>
- <name xml:lang="it">Piattaforma Java</name>
- <name xml:lang="ja">Java プラットフォーム</name>
- <name xml:lang="kn">ಜಾವಾ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್</name>
- <name xml:lang="ko">자바 플랫폼</name>
- <name xml:lang="ml">ജാവാ പ്ലാറ്റ്ഫോം</name>
- <name xml:lang="mr">Java प्लॅटफॉर्म</name>
- <name xml:lang="or">Java ପ୍ଲାଟଫର୍ମ</name>
- <name xml:lang="pa">ਜਾਵਾ ਪਲੇਟਫਾਰਮ</name>
- <name xml:lang="pl">Platforma Java</name>
- <name xml:lang="pt_BR">Plataforma Java</name>
- <name xml:lang="ru">Java</name>
- <name xml:lang="sv">Javaplattform</name>
- <name xml:lang="ta">ஜாவா ஃப்ளாட்பார்ம்</name>
- <name xml:lang="te">జావా ప్లాట్‌ఫాం</name>
- <name xml:lang="uk">Платформа Java</name>
- <name xml:lang="zh_CN">Java 平台</name>
- <name xml:lang="zh_TW">Java 平台</name>
- <description>Java support for the CentOS Linux Server and Desktop Platforms.</description>
- <description xml:lang="as">CentOS Linux Server আৰু Desktop Platform ৰ বাবে Java সমৰ্থন।</description>
- <description xml:lang="bn">CentOS Linux Server ও Desktop Platform-র জন্য Java সমর্থন।</description>
- <description xml:lang="bn_IN">CentOS Linux Server ও Desktop Platform-র জন্য Java সমর্থন।</description>
- <description xml:lang="cs">Podpora pro Javu na platformách CentOS Linux Server a Desktop.</description>
- <description xml:lang="de">Java-Unterstützung für die CentOS Linux- und Desktop-Plattformen.</description>
- <description xml:lang="es">Soporte de Java para Servidor de CentOS Linux y plataformas de escritorio.</description>
- <description xml:lang="fr">Prise en charge Java pour les plateformes serveur et bureau de CentOS Linux.</description>
- <description xml:lang="gu">CentOS Linux સર્વર અને ડેસ્કટોપ પ્લેટફોર્મ માટે Java આધાર.</description>
- <description xml:lang="hi">CentOS Linux Server और Desktop प्लैटफॉर्म के लिए जावा स्क्रिप्ट.</description>
- <description xml:lang="it">Supporto Java per piattaforme desktop e CentOS Linux Server.</description>
- <description xml:lang="ja">CentOS Linux Server Platform と Desktop Platform の Java サポート</description>
- <description xml:lang="kn">CentOS Linux ಪೂರೈಕೆಗಣಕ ಹಾಗು ಗಣಕತೆರೆ ಪ್ಲಾಟ್‌ಫಾರ್ಮುಗಳಿಗಾಗಿನ Java ಬೆಂಬಲ.</description>
- <description xml:lang="ko">CentOS Linux 서버와 데스크탑 플랫폼을 위한 자바 지원</description>
- <description xml:lang="ml">CentOS Linux സര്‍വര്‍, ഡസ്ക്ടോപ്പ് പ്ലാറ്റ്ഫോമുകള്‍ക്കുള്ള ജാവാ പിന്തുണ.</description>
- <description xml:lang="mr">CentOS Linux Server व Desktop Platforms करीता Java समर्थन.</description>
- <description xml:lang="or">CentOS Linux ସର୍ଭର ଏବଂ Desktop ପ୍ଲାଟଫର୍ମଗୁଡ଼ିକ ପାଇଁ Java ସମର୍ଥନ।</description>
- <description xml:lang="pa">CentOS Linux ਸਰਵਰ ਅਤੇ ਡੈਸਕਟਾਪ ਪਲੇਟਫਾਰਮ ਲਈ ਜਾਵਾ ਸਮਰਥਨ।</description>
- <description xml:lang="pl">Obsługa języka Java dla platformy serwerowej i pulpitu systemu CentOS Linux.</description>
- <description xml:lang="pt_BR">Suporte Java para o Servidor CentOS Linux e Plataformas de Desktop.</description>
- <description xml:lang="ru">Поддержка Java для CentOS Linux Server и Desktop.</description>
- <description xml:lang="sv">Javastöd för CentOS Linux server- och skrivbordsplattformar.</description>
- <description xml:lang="ta">CentOS Linux சேவையகம் மற்றும் பணிமேடை ஃப்ளாட்பார்மிற்கான ஜாவா ஆதரவு.</description>
- <description xml:lang="te">CentOS Linux సర్వర్ మరియు డెస్కుటాప్ ప్లాట్‌ఫాంల కొరకు జావా మద్దతు.</description>
- <description xml:lang="uk">Підтримка Java для CentOS Linux Server та Desktop.</description>
- <description xml:lang="zh_CN">红帽企业版 Linux 服务器和桌面平台的 Java 支持。</description>
- <description xml:lang="zh_TW">CentOS Linux Server 和 Desktop Platforms 的 Java 支援。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">java-1.7.0-openjdk</packagereq>
- <packagereq type="optional">java-1.6.0-openjdk</packagereq>
- <packagereq type="optional">java-1.8.0-openjdk</packagereq>
- <packagereq type="optional">system-switch-java</packagereq>
- </packagelist>
- </group>
- <group>
- <id>kde-apps</id>
- <name>KDE Applications</name>
- <name xml:lang="as">KDE এপ্লিকেচনসমূহ</name>
- <name xml:lang="bn_IN">KDE অ্যাপ্লিকেশন</name>
- <name xml:lang="cs">Aplikace pro KDE</name>
- <name xml:lang="de">KDE-Anwendungen</name>
- <name xml:lang="es">Aplicaciones KDE</name>
- <name xml:lang="fr">Applications KDE</name>
- <name xml:lang="gu">KDE કાર્યક્રમો</name>
- <name xml:lang="hi">केडीई अनुप्रयोग</name>
- <name xml:lang="it">Applicazioni KDE</name>
- <name xml:lang="ja">KDE アプリケーション</name>
- <name xml:lang="kn">KDE ಅನ್ವಯಗಳು</name>
- <name xml:lang="ko">KDE 애플리케이션</name>
- <name xml:lang="ml">കെഡിഇ പ്രയോഗങ്ങള്‍</name>
- <name xml:lang="mr">KDE ॲप्लिकेशन्स</name>
- <name xml:lang="or">KDE ପ୍ରୟୋଗ</name>
- <name xml:lang="pa">KDE ਐਪਲੀਕੇਸ਼ਨਾਂ</name>
- <name xml:lang="pl">Aplikacje KDE</name>
- <name xml:lang="pt_BR">Aplicativos de KDE</name>
- <name xml:lang="ru">Приложения KDE</name>
- <name xml:lang="ta">KDE பயன்பாடுகள்</name>
- <name xml:lang="te">KDE అనువర్తనాలు</name>
- <name xml:lang="uk">Програми KDE</name>
- <name xml:lang="zh_CN">KDE 应用程序</name>
- <name xml:lang="zh_TW">KDE 應用程式</name>
- <description>A set of commonly used KDE Applications.</description>
- <description xml:lang="cs">Sada běžně používaných aplikací v prostředí KDE.</description>
- <description xml:lang="de">Eine Reihe häufig verwendeter KDE-Anwendungen.</description>
- <description xml:lang="es">Un set de las aplicaciones KDE más utilizadas.</description>
- <description xml:lang="fr">Ensemble d'applications KDE couramment utilisées.</description>
- <description xml:lang="gu">સામાન્ય રીતે વપરાતા KDE કાર્યક્રમોનો સમૂહ.</description>
- <description xml:lang="hi">बारंबार प्रयुक्त केडीई अनुप्रयोग.</description>
- <description xml:lang="it">Un set di applicazioni KDE usate frequentemente.</description>
- <description xml:lang="ja">よく使用する KDE アプリケーションセットです。</description>
- <description xml:lang="kn">ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸಲಾಗುವ KDE ಅನ್ವಯಗಳ ಒಂದು ಸಂಗ್ರಹ.</description>
- <description xml:lang="ko">자주 사용하는 KDE 애플리케이션 모음입니다.</description>
- <description xml:lang="ml">സാധാരണമായി എപ്പോഴും ഉപയോഗിയ്ക്കുന്ന കെഡിഇ പ്രയോഗങ്ങള്‍.</description>
- <description xml:lang="mr">वारंवार वापरले जाणाऱ्या KDE ॲप्लिकेशन्स्चा संच.</description>
- <description xml:lang="or">ସାଧାରଣ ଭାବରେ ବ୍ୟବହୃତ KDE ପ୍ରୟୋଗଗୁଡ଼ିକର ଏକ ସେଟ।</description>
- <description xml:lang="pa">ਆਮ ਤੌਰ ਤੇ ਵਰਤੀਆਂ ਜਾਂਦੀਆਂ KDE ਐਪਲੀਕੇਸ਼ਨਾਂ ਦਾ ਇੱਕ ਸਮੂਹ।</description>
- <description xml:lang="pl">Zestaw często używanych aplikacji środowiska KDE.</description>
- <description xml:lang="pt_BR">Um conjunto de aplicativos do KDE mais utilizados.</description>
- <description xml:lang="ru">Набор популярных приложений KDE.</description>
- <description xml:lang="ta">பொதுவாகப் பயன்படுத்தப்படும் KDE பயன்பாடுகளின் தொகுப்பு.</description>
- <description xml:lang="te">ఉమ్మడిగా ఉపయోగించే KDE అనువర్తనాల సమితి.</description>
- <description xml:lang="uk">Набір типових програм KDE.</description>
- <description xml:lang="zh_CN">一组经常使用的 KDE 应用程序。</description>
- <description xml:lang="zh_TW">一組常用的 KDE 應用程式。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">kcoloredit</packagereq>
- <packagereq type="mandatory">kdeartwork-screensavers</packagereq>
- <packagereq type="mandatory">kdenetwork-krdc</packagereq>
- <packagereq type="mandatory">kdenetwork-krfb</packagereq>
- <packagereq type="mandatory">kiconedit</packagereq>
- <packagereq type="mandatory">kolourpaint</packagereq>
- </packagelist>
- </group>
- <group>
- <id>kde-desktop</id>
- <name>KDE</name>
- <name xml:lang="af">KDE</name>
- <name xml:lang="am">ኬዲኢ</name>
- <name xml:lang="ar">كيدي</name>
- <name xml:lang="as">KDE</name>
- <name xml:lang="be">KDE</name>
- <name xml:lang="bn">KDE</name>
- <name xml:lang="bn_IN">KDE</name>
- <name xml:lang="bs">KDE</name>
- <name xml:lang="ca">KDE</name>
- <name xml:lang="cs">KDE</name>
- <name xml:lang="cy">KDE</name>
- <name xml:lang="de">KDE</name>
- <name xml:lang="en_GB">KDE</name>
- <name xml:lang="es">KDE</name>
- <name xml:lang="eu">KDE</name>
- <name xml:lang="fa">KDE</name>
- <name xml:lang="fi">KDE</name>
- <name xml:lang="fr">KDE</name>
- <name xml:lang="gl">KDE</name>
- <name xml:lang="gu">KDE</name>
- <name xml:lang="hi">KDE</name>
- <name xml:lang="hr">KDE</name>
- <name xml:lang="hu">KDE</name>
- <name xml:lang="hy">KDE</name>
- <name xml:lang="id">KDE</name>
- <name xml:lang="it">KDE</name>
- <name xml:lang="ja">KDE</name>
- <name xml:lang="ka">KDE</name>
- <name xml:lang="kn">KDE</name>
- <name xml:lang="ko">KDE</name>
- <name xml:lang="lv">KDE</name>
- <name xml:lang="mk">КДЕ</name>
- <name xml:lang="ml">കെഡിഇ</name>
- <name xml:lang="mr">KDE</name>
- <name xml:lang="no">KDE</name>
- <name xml:lang="nso">KDE</name>
- <name xml:lang="or">KDE</name>
- <name xml:lang="pa">ਕੇ ਡੀ ਈ</name>
- <name xml:lang="pl">KDE</name>
- <name xml:lang="pt_BR">KDE</name>
- <name xml:lang="ru">KDE</name>
- <name xml:lang="si">KDE</name>
- <name xml:lang="sl">KDE</name>
- <name xml:lang="sq">KDE</name>
- <name xml:lang="ta">KDE</name>
- <name xml:lang="te">KDE</name>
- <name xml:lang="th">KDE</name>
- <name xml:lang="tr">KDE</name>
- <name xml:lang="uk">KDE</name>
- <name xml:lang="ur">كيڈي</name>
- <name xml:lang="vi">KDE</name>
- <name xml:lang="zh_CN">KDE</name>
- <name xml:lang="zh_TW">KDE</name>
- <name xml:lang="zu">I-KDE</name>
- <description>The KDE Plasma Workspaces, a highly-configurable graphical user interface which includes a panel, desktop, system icons and desktop widgets, and many powerful KDE applications.</description>
- <description xml:lang="as">KDE প্লাজমা কাৰ্য্যস্থান, এটা উচ্চ-সংৰূপণযোগ্য ব্যৱহাৰকাৰীৰ আন্তঃপৃষ্ঠ য'ত অন্তৰ্ভূক্ত আছে এটা পেনেল, ডেস্কটপ, চিস্টেম আইকন আৰু ডেস্কটপ উইজেট, আৰু বহুতো শক্তিশালী এপ্লিকেচনসমূহ।</description>
- <description xml:lang="bn_IN">KDE প্লাজমা-ওয়ার্কস্পেস, একটি উচ্চস্তরীয় কনফিগারযোগ্য গ্র্যাফিক্যাল ইউজার ইন্টারফেস যার অন্তর্ভুক্ত হল একটি প্যানেল, ডেস্কটপ, সিস্টেম অাইকন এবং ডেস্কটপ উইজেট, এবং অনেক শক্তিশালী KDE অ্যাপ্লিকেশন।</description>
- <description xml:lang="cs">KDE Plasma Workspaces je vysoce nastavitelné grafické uživatelské rozhraní, které obsahuje panel, pracovní plochu, systémové ikony, grafické komponenty a mnoho výkonných aplikací pro KDE.</description>
- <description xml:lang="de">KDE Plasma Workspaces ist eine hoch konfigurierbare grafische Benutzeroberfläche mit Panel, Desktop, Systemicons und Desktop-Widgets, sowie mit vielen leistungsstarken KDE-Anwendungen.</description>
- <description xml:lang="es">Los Espacios de trabajo Plasma KDE, son una interfaz de usuario gráfica, altamente configurable que incluye un panel, un escritorio, iconos y asistentes de escritorio y muchas aplicaciones potentes KDE.</description>
- <description xml:lang="fr">KDE Plasma Workspaces est une interface utilisateur graphique hautement configurable qui inclut un panneau, un bureau, des icônes système, des éléments grapiques de bureau, ainsi que de nombreuses puissantes applications KDE.</description>
- <description xml:lang="gu">KDE પ્લાઝ્મા વર્કસ્પેસ, ઊંચા પ્રમાણમાં રૂપરેખાંકિત કરી શકાય તેવું ગ્રાફિકવાળું વપરાશકર્તા ઇન્ટરફેસ છે કે જે પેનલ, ડેસ્કટોપ, સિસ્ટમ ચિહ્નો અને ડેસ્કટોપ વિજેટો, તથા ઘણા શક્તિશાળી KDE કાર્યક્રમો સમાવે છે.</description>
- <description xml:lang="hi">केडीई प्लाजमा वर्कस्पेस, एक उच्च विन्यासयोग्य आलेखी उपयोक्ता अंतरफलक जिसमें एक पैनल, डेस्कटॉप, तंत्र प्रतीक, और डेस्कटॉप विजेट और कई शक्तिशाली केडीई अनुप्रयोग शामिल हैं.</description>
- <description xml:lang="it">Il KDE Plasma Workspaces è una interfaccia utente grafica altamente configurabile che include un pannello, un desktop, icone di sistema, elementi desktop e numerose applicazioni KDE molto potenti.</description>
- <description xml:lang="ja">KDE Plasma Workspaces は高度な設定が可能なグラフィカルユーザーインターフェースであり、パネルやデスクトップ、システムアイコン、デスクトップウィジェットなど数多くのパワフルな KDE アプリケーションを搭載しています。</description>
- <description xml:lang="kn">KDE ಪ್ಲಾಸ್ಮಾ ವರ್ಕ್‌ಸ್ಪೇಸಸ್, ಪ್ಯಾನಲ್‌ಗಳು, ಗಣಕತೆರೆ, ವ್ಯವಸ್ಥೆಯ ಚಿಹ್ನೆಗಳು ಮತ್ತು ಗಣಕತೆರೆ ವಿಜೆಟ್‌ಗಳು, ಹಾಗೂ ಇನ್ನೂ ಹಲವು ಶಕ್ತಿಯುತ KDE ಅನ್ವಯಗಳನ್ನು ಹೊಂದಿರುವ, ಉತ್ತಮವಾಗಿ-ಸಂರಚಿಸಬಹುದಾದ ಚಿತ್ರಾತ್ಮಕ ಬಳಕೆದಾರ ಸಂಪರ್ಕಸಾಧನವಾಗಿದೆ</description>
- <description xml:lang="ko">KDE Plasma Workspaces는 고급 설정이 가능한 그래픽 사용자 인터페이스로 패널, 데스크탑, 시스템 아이콘 및 데스크탑 위젯 등 여러 강력한 KDE 애플리케이션이 들어 있습니다.</description>
- <description xml:lang="ml">കെ‍ഡിഇ പ്ലാസ്മാ പണിയറകള്‍ - പാനല്‍, പണിയിടം, സിസ്റ്റം പ്രതിരൂപങ്ങള്‍, പണിയിട പ്രയോഗങ്ങള്‍, മറ്റു് അനവധി ശക്തമായ കെഡിഇ പ്രയോഗങ്ങള്‍ എന്നിവ ഉള്‍പ്പെടുന്ന ക്രമീകരിയ്ക്കുവാന്‍ സാധ്യമായ ഗ്രാഫിക്കല്‍ ഉപയോക്തൃ സംയോജകഘടകം.</description>
- <description xml:lang="mr">KDE Plasma Workspaces, अत्यंत-संरचनाजोगी ग्राफिकल वापरकर्ता संवाद आहे ज्यामध्ये पटल, डेस्कटॉप, प्रणाली चिन्ह आणि डेस्कटॉप विजेट्स, आणि अनेक शक्तिशाली KDE ॲप्लिकेशन्स समाविष्टीत आहे.</description>
- <description xml:lang="or">KDE ପ୍ଲାଜମା ଡେସ୍କଟପ, ଯାହାକି ଗୋଟିଏ ଶକ୍ତିଶାଳୀ ଆଲେଖୀକ ଚାଳକ ଅନ୍ତରାପୃଷ୍ଠ ଅଟେ ଯାହାକି ଗୋଟିଏ ପ୍ଯାନେଲ, ଡେସ୍କଟପ, ତନ୍ତ୍ର ଚିତ୍ରସଙ୍କେତ, ଡେସ୍କଟପ ୱିଜେଟ ଏବଂ ଗୋଟିଏ ଶକ୍ତିଶାଳୀ KDE ପ୍ରୟୋଗଗୁଡ଼ିକ ଅନ୍ତର୍ଭୁକ୍ତ।</description>
- <description xml:lang="pa">KDE ਪਲਾਜ਼ਮਾ ਵਰਕਸਪੇਸ, ਇੱਕ ਉਚ-ਸੰਰਚਨਾ ਯੋਗ ਗਰਾਫੀਕਲ ਵਰਤੋਂਕਾਰ ਇੰਟਰਫੇਸ ਜਿਸ ਦੇ ਵਿੱਚ ਇੱਕ ਪੈਨਲ, ਡੈਸਕਟਾਪ, ਸਿਸਟਮ ਆਈਕਨ ਅਤੇ ਡੈਸਕਟਾਪ ਵਿਜੈੱਟ, ਅਤੇ ਹੋਰ ਬਹੁਤ ਸਾਰੀਆਂ ਸ਼ਕਤੀਸ਼ਾਲੀ KDE ਐਪਲੀਕੇਸ਼ਨਾਂ ਸ਼ਾਮਲ ਹਨ।</description>
- <description xml:lang="pl">KDE Plasma, wysoce konfigurowalny graficzny interfejs użytkownika zawierający panel, pulpit, ikony systemowe, widżety pulpitu i wiele aplikacji KDE o dużych możliwościach.</description>
- <description xml:lang="pt_BR">Espaços de Trabalho de Plasma de KDE, uma interface de usuário gráfica altamente configurável que inclui um painel, desktop, ícones de sistema e mini aplicativos de desktop e muitos aplicativos de KDE potentes.</description>
- <description xml:lang="ru">KDE Plasma Workspaces — мощный графический интерфейс, включающий в себя панель приложений, рабочий стол, системные значки, управляющие виджеты и целый ряд приложений KDE.</description>
- <description xml:lang="ta">KDE பிளாஸ்மா ஒர்க்ஸ்பேசஸ் என்பது மேம்பட்ட முறையில் அமைவாக்கம் செய்யக்கூடிய ஒரு வரைவியல் பயனர் இடைமுகமாகும், இதில் ஒரு பலகம், பணிமேடை, கணினி சின்னங்கள், பணிமேடை சிறுநிரல்கள் மற்றும் பல சக்தி வாய்ந்த KDE பயன்பாடுகள் போன்றவை இடம்பெற்றுள்ளன.</description>
- <description xml:lang="te">KDE ప్లాస్మా పనిస్థలాలు, బాగా-ఆకృతీకరించగల గ్రాఫికల్ యూజర్ ఇంటర్ఫేస్ అది పానల్, డెస్కుటాప్, సిస్టమ్ ఐకాన్స్ మరియు డెస్కుటాప్ విడ్జట్స్, మరియు చాలా శక్తివంతమైన KDE అనువర్తనాలు కలిగివుంటుంది.</description>
- <description xml:lang="uk">Робочі простори Плазми KDE — інтерфейс користувача з широкими можливостями з налаштовування, він складається з панелі, робочої стільниці, піктограм та віджетів стільниці та багатьох потужних програм KDE.</description>
- <description xml:lang="zh_CN">KDE Plasma Workspaces 是一个高度可配置图形用户界面,其中包括面板、桌面、系统图标以及桌面向导和很多功能强大的 KDE 应用程序。</description>
- <description xml:lang="zh_TW">KDE Plasma Workspaces 是個高度可配置的圖形使用者介面,它包含了控制面板、桌面環境、系統圖示和桌面應用程式,以及許多功能強大的 KDE 應用程式。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">abrt-desktop</packagereq>
- <packagereq type="mandatory">akonadi</packagereq>
- <packagereq type="mandatory">akonadi-mysql</packagereq>
- <packagereq type="mandatory">ark</packagereq>
- <packagereq type="mandatory">bluedevil</packagereq>
- <packagereq type="mandatory">colord-kde</packagereq>
- <packagereq type="mandatory">cups-pk-helper</packagereq>
- <packagereq type="mandatory">firewall-config</packagereq>
- <packagereq type="mandatory">firstboot</packagereq>
- <packagereq type="mandatory">gdm</packagereq>
- <packagereq type="mandatory">gwenview</packagereq>
- <packagereq type="mandatory">initial-setup-gui</packagereq>
- <packagereq type="mandatory">kamera</packagereq>
- <packagereq type="mandatory">kcalc</packagereq>
- <packagereq type="mandatory">kcharselect</packagereq>
- <packagereq type="mandatory">kcm-gtk</packagereq>
- <packagereq type="mandatory">kcm_touchpad</packagereq>
- <packagereq type="mandatory">kcolorchooser</packagereq>
- <packagereq type="mandatory">kde-base-artwork</packagereq>
- <packagereq type="mandatory">kde-baseapps</packagereq>
- <packagereq type="mandatory">kde-plasma-networkmanagement</packagereq>
- <packagereq type="mandatory">kde-print-manager</packagereq>
- <packagereq type="mandatory">kde-runtime</packagereq>
- <packagereq type="mandatory">kde-settings-pulseaudio</packagereq>
- <packagereq type="mandatory">kde-workspace</packagereq>
- <packagereq type="mandatory">kdeaccessibility</packagereq>
- <packagereq type="mandatory">kdeadmin</packagereq>
- <packagereq type="mandatory">kdegraphics-strigi-analyzer</packagereq>
- <packagereq type="mandatory">kdegraphics-thumbnailers</packagereq>
- <packagereq type="mandatory">kdelibs</packagereq>
- <packagereq type="mandatory">kdenetwork-kdnssd</packagereq>
- <packagereq type="mandatory">kdenetwork-kget</packagereq>
- <packagereq type="mandatory">kdenetwork-krfb</packagereq>
- <packagereq type="mandatory">kdepim</packagereq>
- <packagereq type="mandatory">kdeplasma-addons</packagereq>
- <packagereq type="mandatory">kdeutils-minimal</packagereq>
- <packagereq type="mandatory">kgpg</packagereq>
- <packagereq type="mandatory">kmix</packagereq>
- <packagereq type="mandatory">konsole</packagereq>
- <packagereq type="mandatory">kruler</packagereq>
- <packagereq type="mandatory">ksaneplugin</packagereq>
- <packagereq type="mandatory">ksnapshot</packagereq>
- <packagereq type="mandatory">ksshaskpass</packagereq>
- <packagereq type="mandatory">ksysguard</packagereq>
- <packagereq type="mandatory">kwallet</packagereq>
- <packagereq type="mandatory">kwrite</packagereq>
- <packagereq type="mandatory">okular</packagereq>
- <packagereq type="mandatory">oxygen-gtk</packagereq>
- <packagereq type="mandatory">phonon-backend-gstreamer</packagereq>
- <packagereq type="mandatory">plasma-scriptengine-python</packagereq>
- <packagereq type="mandatory">redhat-access-gui</packagereq>
- <packagereq type="mandatory">setroubleshoot</packagereq>
- <packagereq type="mandatory">sweeper</packagereq>
- <packagereq type="mandatory">system-config-date</packagereq>
- <packagereq type="mandatory">xsettings-kde</packagereq>
- <packagereq type="mandatory">xterm</packagereq>
- <packagereq type="conditional" requires="pinentry">pinentry-qt</packagereq>
- </packagelist>
- </group>
- <group>
- <id>kde-media</id>
- <name>KDE Multimedia Support</name>
- <name xml:lang="as">KDE বহুমাধ্যম সমৰ্থন</name>
- <name xml:lang="bn_IN">KDE মাল্টিমিডিয়া সহায়তা</name>
- <name xml:lang="cs">Multimédia v KDE</name>
- <name xml:lang="de">KDE Multimedia-Unterstützung</name>
- <name xml:lang="es">Soporte multimedios para KDE</name>
- <name xml:lang="fr">Prise en charge multimédia KDE</name>
- <name xml:lang="gu">KDE મલ્ટીમીડિયા આધાર</name>
- <name xml:lang="hi">केडीई मल्टीमीडिया समर्थन</name>
- <name xml:lang="it">Supporto multimediale KDE</name>
- <name xml:lang="ja">KDE マルチメディアサポート</name>
- <name xml:lang="kn">KDE ಮಲ್ಟಿಮೀಡಿಯಾ ಬೆಂಬಲ</name>
- <name xml:lang="ko">KDE 멀티미디어 지원</name>
- <name xml:lang="ml">കെഡിഇ മള്‍ട്ടിമീഡിയാ പിന്തുണ</name>
- <name xml:lang="mr">KDE मल्टिमिडीया समर्थन</name>
- <name xml:lang="or">KDE ମଲଟିମେଡିଆ ସହାୟତା</name>
- <name xml:lang="pa">KDE ਮਲਟੀਮੀਡੀਆ ਸਮਰਥਨ</name>
- <name xml:lang="pl">Obsługa multimediów w środowisku KDE</name>
- <name xml:lang="pt_BR">Suporte de Multimídia do KDE</name>
- <name xml:lang="ru">Поддержка мультимедиа KDE</name>
- <name xml:lang="ta">KDE மல்டிமீடியா ஆதரவு</name>
- <name xml:lang="te">KDE మల్టీమీడియా తోడ్పాటు</name>
- <name xml:lang="uk">Мультимедійна складова KDE</name>
- <name xml:lang="zh_CN">KDE 多媒体支持</name>
- <name xml:lang="zh_TW">KDE 多媒體支援</name>
- <description>Multimedia support for KDE.</description>
- <description xml:lang="cs">Podpora pro multimédia v prostředí KDE.</description>
- <description xml:lang="de">Multimedia-Unterstützung für KDE.</description>
- <description xml:lang="es">Soporte multimedios para KDE</description>
- <description xml:lang="fr">Prise en charge multimédia de KDE.</description>
- <description xml:lang="gu">KDE માટે મલ્ટીમીડિયા આધાર.</description>
- <description xml:lang="hi">केडीई के लिए मल्टीमीडिया समर्थन.</description>
- <description xml:lang="it">Supporto multimediale per KDE</description>
- <description xml:lang="ja">KDE 向けのマルチメディアサポートです。</description>
- <description xml:lang="kn">KDE ಗಾಗಿ ಮಲ್ಟಿಮೀಡಿಯಾ ಬೆಂಬಲ.</description>
- <description xml:lang="ko">KDE 용 멀티미디어 지원</description>
- <description xml:lang="ml">കെഡിഇയ്ക്കുള്ള മള്‍ട്ടിമീഡിയ പിന്തുണ.</description>
- <description xml:lang="mr">KDE करिता मल्टिमिडीया समर्थन.</description>
- <description xml:lang="or">KDE ପାଇଁ ମଲଟିମେଡିଆ ସହାୟତା।</description>
- <description xml:lang="pa">KDE ਲਈ ਮਲਟੀਮੀਡੀਆ ਸਮਰਥਨ।</description>
- <description xml:lang="pl">Obsługa multimediów dla środowiska KDE.</description>
- <description xml:lang="pt_BR">Suporte de Multimídia para o KDE.</description>
- <description xml:lang="ru">Мультимедийная поддержка в KDE.</description>
- <description xml:lang="ta">KDE க்கான மல்டிமீடியா ஆதரவு.</description>
- <description xml:lang="te">KDE కొరకు మల్టీమీడియా తోడ్పాటు</description>
- <description xml:lang="uk">Мультимедійна складова KDE.</description>
- <description xml:lang="zh_CN">对 KDE 的多媒体支持。</description>
- <description xml:lang="zh_TW">KDE 的多媒體支援。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">dragon</packagereq>
- <packagereq type="mandatory">k3b</packagereq>
- </packagelist>
- </group>
- <group>
- <id>large-systems</id>
- <name>Large Systems Performance</name>
- <name xml:lang="as">ডাঙৰ চিস্টেমসমূহৰ পৰিৱেশন</name>
- <name xml:lang="bn">বৃহৎ সিস্টেমের কর্মক্ষমতা</name>
- <name xml:lang="bn_IN">বৃহৎ সিস্টেমের কর্মক্ষমতা</name>
- <name xml:lang="cs">Výkonnost pro rozsáhlé systémy</name>
- <name xml:lang="de">Große System-Performanz</name>
- <name xml:lang="es">Rendimiento de grandes sistemas</name>
- <name xml:lang="fr">Performance des systèmes de grande taille</name>
- <name xml:lang="gu">વિશાળ સિસ્ટમોનો પ્રભાવ</name>
- <name xml:lang="hi">बड़ा तंत्र प्रदर्शन</name>
- <name xml:lang="ia">Rendimento de grande systemas</name>
- <name xml:lang="it">Prestazioni di sistemi grandi</name>
- <name xml:lang="ja">大規模システムのパフォーマンス</name>
- <name xml:lang="kn">ದೊಡ್ಡ ವ್ಯವಸ್ಥೆಗಳ ಕಾರ್ಯಕ್ಷಮತೆ</name>
- <name xml:lang="ko">거대 시스템 성능</name>
- <name xml:lang="ml">ലാര്‍ജ് സിസ്റ്റം പെര്‍ഫോമന്‍സ്</name>
- <name xml:lang="mr">लार्ज सिस्टस्ची कामगिरी</name>
- <name xml:lang="or">ବୃହତ ତନ୍ତ୍ରର କାର୍ଯ୍ୟକ୍ଷମତା</name>
- <name xml:lang="pa">ਵੱਡੇ ਸਿਸਟਮਾਂ ਦੀ ਕਾਰਜਕੁਸ਼ਲਤਾ</name>
- <name xml:lang="pl">Wydajność dużych systemów</name>
- <name xml:lang="pt_BR">Desempenho de Sistemas grandes</name>
- <name xml:lang="ru">Производительность масштабных систем</name>
- <name xml:lang="sv">Stora systems prestanda</name>
- <name xml:lang="ta">பெரிய கணினிகள் செயல்திறன்</name>
- <name xml:lang="te">పెద్ద సిస్టముల పనితనము</name>
- <name xml:lang="uk">Забезпечення швидкодії великих систем</name>
- <name xml:lang="zh_CN">大系统性能</name>
- <name xml:lang="zh_TW">大型檔案系統效能</name>
- <description>Performance support tools for large systems.</description>
- <description xml:lang="as">ডাঙৰ চিস্টেমসমূহৰ বাবে পৰিৱেশন সমৰ্থন সঁজুলিসমূহ।</description>
- <description xml:lang="bn_IN">বৃহৎ মাপের সিস্টেমের কর্মক্ষমতা সমর্থনের সামগ্রী।</description>
- <description xml:lang="cs">Podpůrné nástroje pro správu výkonu v rozsáhlých systémech.</description>
- <description xml:lang="de">Performanz-Support-Tools für große Systeme.</description>
- <description xml:lang="es">Herramientas de soporte de rendimiento para grandes sistemas.</description>
- <description xml:lang="fr">Outils de prise en charge des performances pour les systèmes de grande taille.</description>
- <description xml:lang="gu">મોટી સિસ્ટમો માટેના પરફોર્મન્સ આધાર સાધનો.</description>
- <description xml:lang="hi">बड़े तंत्र के लिए प्रदर्शन समर्थन औज़ार</description>
- <description xml:lang="it">Strumenti di supporto delle prestazioni per sistemi grandi</description>
- <description xml:lang="ja">大規模システム向けのパフォーマンスサポートツールです。</description>
- <description xml:lang="kn">ದೊಡ್ಡ ವ್ಯವಸ್ಥೆಗಳಿಗಾಗಿನ ಕಾರ್ಯನಿರ್ವಹಣೆಯ ಬೆಂಬಲ ಉಪಕರಣ.</description>
- <description xml:lang="ko">대형 시스템 용 성능 지원 도구</description>
- <description xml:lang="ml">വലിയ സിസ്റ്റങ്ങള്‍ക്കുള്ള പ്രവര്‍ത്തനങ്ങള്‍ പിന്തുണയ്ക്കുള്ള പ്രയോഗങ്ങള്‍.</description>
- <description xml:lang="mr">लार्ज सिस्टम्सकरिता परफार्मंस समर्थन साधने.</description>
- <description xml:lang="or">ବୃହତ ତନ୍ତ୍ର ପାଇଁ କାର୍ଯ୍ୟଦକ୍ଷତା ସହାୟକ ସାଧନଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">ਵੱਡੇ ਸਿਸਟਮਾਂ ਲਈ ਕਾਰਗੁਜਾਰੀ ਸਮਰਥਨ ਸੰਦ।</description>
- <description xml:lang="pl">Narzędzia obsługi wydajności dla dużych systemów.</description>
- <description xml:lang="pt_BR">Ferrametnas de Suporte de desempenho para sistemas grandes.</description>
- <description xml:lang="ru">Средства поддержки производительности больших систем</description>
- <description xml:lang="ta">பெரிய கணினிகளுக்கான செயல்திறன் ஆதரவுக் கருவிகள்.</description>
- <description xml:lang="te">పెద్ద వ్యవస్థల కొరకు పనితం తోడ్పాటు సాధనాలు.</description>
- <description xml:lang="uk">Програми для підтримки швидкодії великих систем.</description>
- <description xml:lang="zh_CN">用于大型系统的性能支持工具。</description>
- <description xml:lang="zh_TW">大型系統的效能支援工具。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">numactl</packagereq>
- <packagereq type="mandatory">numad</packagereq>
- <packagereq type="default">hwloc</packagereq>
- <packagereq type="default">libhugetlbfs</packagereq>
- <packagereq type="default">libhugetlbfs-utils</packagereq>
- </packagelist>
- </group>
- <group>
- <id>legacy-unix</id>
- <name>Legacy UNIX Compatibility</name>
- <name xml:lang="as">কিম্বদন্তি UNIX ৰ সৈতে সংগতি</name>
- <name xml:lang="bn_IN">লিগ্যাসি UNIX-র সাথে সুসংগতি</name>
- <name xml:lang="cs">Kompatibilita pro zastaralé systémy UNIX</name>
- <name xml:lang="de">Kompatibilität mit älteren UNIX-Systemen</name>
- <name xml:lang="es">Compatibilidad con legado de UNIX</name>
- <name xml:lang="fr">Compatibilité héritée UNIX</name>
- <name xml:lang="gu">લૅગસી UNIX સુસંગતતા</name>
- <name xml:lang="hi">पुरातन UNIX सुसंगतता</name>
- <name xml:lang="it">Compatibilità UNIX con versioni precedenti</name>
- <name xml:lang="ja">レガシーな UNIX 互換性</name>
- <name xml:lang="kn">ಪಾರಂಪರಿಕ UNIX ಹೊಂದಾಣಿಕೆ</name>
- <name xml:lang="ko">레거시 UNIX 호환성</name>
- <name xml:lang="ml">ലെഗസി യൂണിക്സ് പൊരുത്തം</name>
- <name xml:lang="mr">लेगसि UNIX सहत्वता</name>
- <name xml:lang="or">ପୁରୁଣା UNIX ସୁସଂଗତି</name>
- <name xml:lang="pa">ਵਿਰਾਸਤੀ UNIX ਅਨੁਕੂਲਤਾ</name>
- <name xml:lang="pl">Zgodność z przestarzałym systemem UNIX</name>
- <name xml:lang="pt_BR">Compatibilidade da Legacia UNIX.</name>
- <name xml:lang="ru">Совместимость с устаревшими функциями UNIX</name>
- <name xml:lang="ta">பழமையான UNIX இணக்கத்தன்மை</name>
- <name xml:lang="te">పాత యునిక్స్ సారూప్యత</name>
- <name xml:lang="uk">Сумісність з застарілими версіями UNIX</name>
- <name xml:lang="zh_CN">传统 UNIX 兼容性</name>
- <name xml:lang="zh_TW">Legacy UNIX 相容性</name>
- <description>Compatibility programs for migration from or working with legacy UNIX environments.</description>
- <description xml:lang="as">কিম্বদন্তি UNIX পৰিৱেশৰ পৰা প্ৰব্ৰজন বা এই পৰিৱেশত কাৰ্য্য সঞ্চালনৰ সময়ত সংগতি উপলব্ধকৰ্তা প্ৰোগ্ৰাম।</description>
- <description xml:lang="bn">লিগ্যাসি UNIX পরিবেশ থেকে মাইগ্রেশন অথবা এই পরিবেশে কর্ম সঞ্চালনার সময় সুসংগতি উপলব্ধকারী প্রোগ্রাম।</description>
- <description xml:lang="bn_IN">লিগ্যাসি UNIX পরিবেশ থেকে মাইগ্রেশন অথবা এই পরিবেশে কর্ম সঞ্চালনার সময় সুসংগতি উপলব্ধকারী প্রোগ্রাম।</description>
- <description xml:lang="cs">Programy pro migraci a práci se zastaralými systémy UNIX.</description>
- <description xml:lang="de">Kompatibilitätsprogramme für die Migration von oder die Arbeit mit älteren UNIX-Umgebungen.</description>
- <description xml:lang="es">Programas de compatibilidad para migrar o trabajar con entornos legados de UNIX.</description>
- <description xml:lang="fr">Programmes de compatibilité pour des migrations depuis, ou pour travailler avec des environnements hérités de UNIX.</description>
- <description xml:lang="gu">તેમાંથી સ્થળાંતર માચે સુસંગત પ્રક્રિયાઓ અથવા લેગસિ UNIX વિન્ડો પર્યાવરણો સાથે કામ કરી રહ્યા છે.</description>
- <description xml:lang="hi">पुरातन UNIX वातावरण से कार्य के साथ या उत्प्रवासन के लिए सुसंगतता प्रोग्राम.</description>
- <description xml:lang="ia">Programmas de compatibilitate pro migrar del ambientes hereditari UNIX o pro cooperar con illos.</description>
- <description xml:lang="it">Programmi di compatibilità per la migrazione da o per operare con gli ambienti UNIX di verisioni precedenti.</description>
- <description xml:lang="ja">レガシー UNIX 環境の使用やこの環境からの移行するための互換性プログラム</description>
- <description xml:lang="kn">ಪಾರಂಪರಿಕ UNIX ಪರಿಸರಗಳಿಂದ ವರ್ಗಾಯಿಸಲು ಅಥವ ಅದರೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಹೊಂದಿಕೊಳ್ಳುವ ಪ್ರೊಗ್ರಾಮ್‌ಗಳು.</description>
- <description xml:lang="ko">레거시 유닉스 환경으로부터의 마이그레이션이나, 동작 호환성을 위한 호환 프로그램</description>
- <description xml:lang="ml">ലെഗസി യൂണിക്സ് എന്‍വയോണ്മെന്റില്‍ പ്രവര്‍ത്തിക്കുന്നതിനു് അല്ലെങ്കില്‍ നീങ്ങുന്നതിനുള്ള കോബാറ്റിബിളിറ്റി പ്രോഗ്രാമുകള്‍.</description>
- <description xml:lang="mr">लेगसी UNIX एन्वार्यनमेंट्स् पासून स्थानांतरीत किंवा सह कार्य करणासाठी सहत्वता कार्यक्रम.</description>
- <description xml:lang="or">ସ୍ଥାନାନ୍ତରଣ ପାଇଁ କିମ୍ବା ପୁରୁଣା UNIX ପରିବେଶ ସହିତ କାର୍ଯ୍ୟକରିବା ପାଇଁ ସୁସଙ୍ଗତତା ପ୍ରଗ୍ରାମଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">ਪੁਰਾਣੇ UNIX ਇਨਵਾਇਰਮੈਂਟ ਤੋਂ ਮਾਈਗਰੇਟ ਜਾਂ ਕੰਮ ਕਰਨ ਲਈ ਅਨੁਕੂਲਤਾ ਪਰੋਗਰਾਮ।</description>
- <description xml:lang="pl">Programy zgodności do migrowania z lub pracy z przestarzałymi środowiskami systemu UNIX.</description>
- <description xml:lang="pt_BR">Programas de compatibilidade para migração de ou trabalhando com a legacia de ambientes UNIX.</description>
- <description xml:lang="ru">Программы совместимости для миграции или работы с устаревшими окружениями UNIX.</description>
- <description xml:lang="sv">Kompatibilitetsprogram för migrering från eller arbete med äldre UNIX-miljöer.</description>
- <description xml:lang="ta">ஆவண UNIX சூழல்களுடன் பணிபுரிகிற அல்லது ஒத்தியல்பு நிரல்களுக்காக நகருதலில் இருந்து.</description>
- <description xml:lang="te">పాత UNIX వాతావరణములనుండి మైగ్రేషన్ కొరకు లేదా వాటితో పనిచేయుట కొరకు కంపాటిబిలిటి ప్రోగ్రామ్స్.</description>
- <description xml:lang="uk">Програми забезпечення сумісності для міграції з застарілих середовищ UNIX або роботи з такими середовищами.</description>
- <description xml:lang="zh_CN">用于从继承 UNIX 环境中迁移或者可用于该环境的兼容程序。</description>
- <description xml:lang="zh_TW">用來由 legacy UNIX 環境進行遷移,或是使用 legacy UNIX 環境時的相容性程式。</description>
- <default>false</default>
- <uservisible>true</uservisible>
- <packagelist>
- <packagereq type="optional">authd</packagereq>
- <packagereq type="optional">cups-lpd</packagereq>
- <packagereq type="optional">finger</packagereq>
- <packagereq type="optional">finger-server</packagereq>
- <packagereq type="optional">ksh</packagereq>
- <packagereq type="optional">mksh</packagereq>
- <packagereq type="optional">ncompress</packagereq>
- <packagereq type="optional">rsh</packagereq>
- <packagereq type="optional">rsh-server</packagereq>
- <packagereq type="optional">rusers</packagereq>
- <packagereq type="optional">rusers-server</packagereq>
- <packagereq type="optional">rwho</packagereq>
- <packagereq type="optional">talk</packagereq>
- <packagereq type="optional">talk-server</packagereq>
- <packagereq type="optional">tcp_wrappers</packagereq>
- <packagereq type="optional">telnet</packagereq>
- <packagereq type="optional">telnet-server</packagereq>
- <packagereq type="optional">tftp</packagereq>
- <packagereq type="optional">xinetd</packagereq>
- <packagereq type="optional">ypbind</packagereq>
- <packagereq type="optional">ypserv</packagereq>
- </packagelist>
- </group>
- <group>
- <id>legacy-x</id>
- <name>Legacy X Window System Compatibility</name>
- <name xml:lang="as">কিম্বদন্তি X উইন্ডো চিস্টেম সংগতি</name>
- <name xml:lang="bn_IN">লিগ্যাসি X Window সিস্টেমের সাথে সুসংগতি</name>
- <name xml:lang="cs">Kompatibilita pro zastaralý X Window System</name>
- <name xml:lang="de">Kompatibilität mit älteren X-Window-Systemen</name>
- <name xml:lang="es">Compatibilidad de sistema de ventanas con legado de X</name>
- <name xml:lang="fr">Compatibilité héritée du système X Window</name>
- <name xml:lang="gu">લૅગસી X વિન્ડો સિસ્ટમ સુસંગતતા</name>
- <name xml:lang="hi">पुरातन X विंडोज तंत्र सुसंगता</name>
- <name xml:lang="it">Compatibilità sistema X Window con versioni precedenti</name>
- <name xml:lang="ja">レガシーな X ウィンドウシステム互換性</name>
- <name xml:lang="kn">ಪಾರಂಪರಿಕ X Windows ವ್ಯವಸ್ಥೆಯ ಹೊಂದಾಣಿಕೆ</name>
- <name xml:lang="ko">레거시 X Window 시스템 호환성</name>
- <name xml:lang="ml">ലെഗസി എക്സ് വിന്‍ഡോ സിസ്റ്റം പൊരുത്തം</name>
- <name xml:lang="mr">लेगसि X Window सिस्टम सहत्वता</name>
- <name xml:lang="or">ପୁରୁଣା X ୱିଣ୍ଡୋ ତନ୍ତ୍ର ସୁସଙ୍ଗତତା</name>
- <name xml:lang="pa">ਵਿਰਾਸਤੀ X ਵਿੰਡੋ ਸਿਸਟਮ ਅਨੁਕੂਲਤਾ</name>
- <name xml:lang="pl">Zgodność z przestarzałym systemem X Window</name>
- <name xml:lang="pt_BR">Compatibilidade de Legacia do Sistema X Windows</name>
- <name xml:lang="ru">Совместимость с устаревшей системой X Window</name>
- <name xml:lang="ta">பழமையான X Window System இணக்கத்தன்மை</name>
- <name xml:lang="te">పాత X విండో వ్యవస్థ సారూప్యత</name>
- <name xml:lang="uk">Сумісність з застарілими версіями систем X Window</name>
- <name xml:lang="zh_CN">传统 X Windows 系统的兼容性</name>
- <name xml:lang="zh_TW">Legacy X Window 系統相容性</name>
- <description>Compatibility programs for migration from or working with legacy X Window System environments.</description>
- <description xml:lang="as">কিম্বদন্তি X উইন্ডো চিস্টেম পৰিৱেশসমূহৰ পৰা প্ৰব্ৰজন কৰিবলে বা লগত কাম কৰিবলে সংগত প্ৰগ্ৰামসমূহ।</description>
- <description xml:lang="bn">লিগ্যাসি X Windows পরিবেশ থেকে মাইগ্রেশন অথবা এই পরিবেশে কর্ম সঞ্চালনার সময় সুসংগতি উপলব্ধকারী প্রোগ্রাম।</description>
- <description xml:lang="bn_IN">লিগ্যাসি X Windows পরিবেশ থেকে মাইগ্রেশন অথবা এই পরিবেশে কর্ম সঞ্চালনার সময় সুসংগতি উপলব্ধকারী প্রোগ্রাম।</description>
- <description xml:lang="cs">Programy pro migraci a práci se zastaralým prostředím X Window System.</description>
- <description xml:lang="de">Kompatibilitätsprogramme für die Migration von oder die Arbeit mit älteren X-Windows-System-Umgebungen.</description>
- <description xml:lang="es">Programas de compatibilidad para migrar desde o funcionar con sistema de entornos X.</description>
- <description xml:lang="fr">Programmes de compatibilité pour des migrations depuis, ou pour travailler avec des environnements hérités des environnements X Windows.</description>
- <description xml:lang="gu">તેમાંથી સ્થળાંતર માટે સુસંગત પ્રક્રિયાઓ અથવા લેગસિ X વિન્ડો પર્યાવરણો સાથે કામ કરી રહ્યા છે.</description>
- <description xml:lang="hi">पुरातन X Windows वातावरण से कार्य के साथ या उत्प्रवासन के लिए सुसंगतता प्रोग्राम.</description>
- <description xml:lang="ia">Programmas de compatibilitate pro migrar del ambientes hereditari del systema X Window o pro cooperar con illos.</description>
- <description xml:lang="it">Programmi di compatibilità per la migrazione da o per operare con ambienti del sistema X Window di verisioni precedenti.</description>
- <description xml:lang="ja">レガシー X Windows システム環境の使用やこの環境からの移行するための互換性プログラム</description>
- <description xml:lang="kn">ಪಾರಂಪರಿಕ X Windows ಪರಿಸರಗಳಿಂದ ವರ್ಗಾಯಿಸಲು ಅಥವ ಅದರೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಹೊಂದಿಕೊಳ್ಳುವ ಪ್ರೊಗ್ರಾಮ್‌ಗಳು.</description>
- <description xml:lang="ko">레거시 X Windows 환경의 마이그레이션이나 상호 동작을 위한 호환 프로그램</description>
- <description xml:lang="ml">ലെഗസി X വിന്‍ഡോസ് സിസ്റ്റം എന്‍വയോണ്മെന്റില്‍ പ്രവര്‍ത്തിക്കുന്നതിനു് അല്ലെങ്കില്‍ നീങ്ങുന്നതിനുള്ള കോബാറ്റിബിളിറ്റി പ്രോഗ്രാമുകള്‍.</description>
- <description xml:lang="mr">लेगसी X Window System एन्वार्यनमेंट्स् पासून स्थानांतरन किंवा त्यासह कार्य करणासाठी सहत्वता कार्यक्रम.</description>
- <description xml:lang="or">ସ୍ଥାନାନ୍ତରଣ ପାଇଁ କିମ୍ବା ପୁରୁଣା X ୱିଣ୍ଡୋ ପରିବେଶ ସହିତ କାର୍ଯ୍ୟକରିବା ପାଇଁ ସୁସଙ୍ଗତତା ପ୍ରଗ୍ରାମଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">ਪੁਰਾਣੇ X Windows ਇਨਵਾਇਰਮੈਂਟ ਤੋਂ ਮਾਈਗਰੇਟ ਜਾਂ ਕੰਮ ਕਰਨ ਲਈ ਅਨੁਕੂਲਤਾ ਪਰੋਗਰਾਮ।</description>
- <description xml:lang="pl">Programy zgodności do migrowania z lub pracy z przestarzałymi środowiskami systemu X Window.</description>
- <description xml:lang="pt_BR">Programas de compatibilidade para migração ou trabalhando com legacia de ambientes do Sistema X Windows.</description>
- <description xml:lang="ru">Программы совместимости для миграции или работы с устаревшими окружениями X Window.</description>
- <description xml:lang="sv">Kompatibilitetsprogram för migrering från eller arbete med äldre miljöer av fönstersystemet X.</description>
- <description xml:lang="ta">ஆவண X விண்டோக்களின் சூழலுடன் பணிபுரிய அல்லது நகருவதற்கான ஒத்தியல்பு நிரல்கள்.</description>
- <description xml:lang="te">పాత X విండోస్ వాతావరణముల నుండి మైగ్రేషన్ కొరకు లేదా వాటితో పనిచేయుటకు కంపాటిబిలిటి ప్రోగ్రామ్స్.</description>
- <description xml:lang="uk">Програми забезпечення сумісності для міграції з застарілих середовищ систем X Window або роботи з такими середовищами.</description>
- <description xml:lang="zh_CN">用于从继承 X Windows 环境中迁移或者可用于该环境的兼容程序。</description>
- <description xml:lang="zh_TW">由 legacy X Window 系統環境遷移,或與其搭配運作的相容程式。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="default">libXmu</packagereq>
- <packagereq type="default">libXp</packagereq>
- <packagereq type="default">motif</packagereq>
- <packagereq type="default">xorg-x11-apps</packagereq>
- <packagereq type="default">xorg-x11-fonts-100dpi</packagereq>
- <packagereq type="default">xorg-x11-fonts-ISO8859-1-100dpi</packagereq>
- <packagereq type="default">xorg-x11-fonts-misc</packagereq>
- <packagereq type="default">xorg-x11-fonts-Type1</packagereq>
- <packagereq type="optional">xorg-x11-fonts-75dpi</packagereq>
- <packagereq type="optional">xorg-x11-fonts-cyrillic</packagereq>
- <packagereq type="optional">xorg-x11-fonts-ethiopic</packagereq>
- <packagereq type="optional">xorg-x11-fonts-ISO8859-1-75dpi</packagereq>
- <packagereq type="optional">xorg-x11-fonts-ISO8859-14-100dpi</packagereq>
- <packagereq type="optional">xorg-x11-fonts-ISO8859-14-75dpi</packagereq>
- <packagereq type="optional">xorg-x11-fonts-ISO8859-15-75dpi</packagereq>
- <packagereq type="optional">xorg-x11-fonts-ISO8859-2-100dpi</packagereq>
- <packagereq type="optional">xorg-x11-fonts-ISO8859-2-75dpi</packagereq>
- <packagereq type="optional">xorg-x11-fonts-ISO8859-9-100dpi</packagereq>
- <packagereq type="optional">xorg-x11-fonts-ISO8859-9-75dpi</packagereq>
- </packagelist>
- </group>
- <group>
- <id>load-balancer</id>
- <name>Load Balancer</name>
- <name xml:lang="as">লোড ভাৰসাম্যক</name>
- <name xml:lang="bn">লোড ব্যালেন্সার</name>
- <name xml:lang="bn_IN">লোড ব্যালেন্সার</name>
- <name xml:lang="cs">Rozložení zátěže</name>
- <name xml:lang="de">Lastverteiler</name>
- <name xml:lang="es">Equilibrador de carga</name>
- <name xml:lang="fr">Équilibreur des charges</name>
- <name xml:lang="gu">લોડ સમતોલક</name>
- <name xml:lang="hi">लोड संतुलनकर्ता</name>
- <name xml:lang="it">Load Balancer</name>
- <name xml:lang="ja">Load Balancer</name>
- <name xml:lang="kn">ಹೊರೆ ಸಮತೋಲನೆಗಾರ</name>
- <name xml:lang="ko">로드 밸런싱</name>
- <name xml:lang="ml">ലോഡ് ബാലന്‍സര്‍</name>
- <name xml:lang="mr">लोड बॅलेंसर</name>
- <name xml:lang="or">ଭାର ସନ୍ତୁଳନ</name>
- <name xml:lang="pa">ਲੋਡ ਬੈਲੈਂਸਰ</name>
- <name xml:lang="pl">Równoważenie obciążenia.</name>
- <name xml:lang="pt_BR">Balanceador de Carga</name>
- <name xml:lang="ru">Распределение нагрузки</name>
- <name xml:lang="ta">மீதியை ஏற்று</name>
- <name xml:lang="te">భారపు సంభాలిని (లోడ్ బాలెన్సర్)</name>
- <name xml:lang="uk">Розподіл навантаження</name>
- <name xml:lang="zh_CN">负载平衡器</name>
- <name xml:lang="zh_TW">負載平衡器</name>
- <description>Load balancing support for network traffic.</description>
- <description xml:lang="as">নেটৱাৰ্ক ট্ৰাফিকৰ বাবে ল'ড ভাৰসাম্য সমৰ্থন।</description>
- <description xml:lang="bn_IN">নেটওয়ার্ক ট্রাফিকের উপর চাপের ভারসাম্য নির্ধারণের সমর্থন ব্যবস্থা।</description>
- <description xml:lang="cs">Podpora pro rozložení zátěže v síťovém provozu.</description>
- <description xml:lang="de">Unterstützung für Lastverteilung von Netzwerkverkehr</description>
- <description xml:lang="es">Soporte de equilibrio de carga para tráfico de red.</description>
- <description xml:lang="fr">Prise en charge de l'équilibrage des charges pour le trafic réseau.</description>
- <description xml:lang="gu">નેટવર્ક ટ્રાફિક માટે લૉડ બેલેન્સીંગ આધાર.</description>
- <description xml:lang="hi">संजाल ट्रैफिक के लिए लोड संतुलन समर्थन.</description>
- <description xml:lang="it">Supporto del bilanciamento del carico per il traffico di rete.</description>
- <description xml:lang="ja">ネットワークトラフィック用の負荷分散サポートです。</description>
- <description xml:lang="kn">ಜಾಲಬಂಧ ಸಂಚಾರ ಸಂದಣಿಗಾಗಿನ ಹೊರೆ ಸಮತೋಲನೆಗೊಳಿಸುವಿಕೆಯ ಬೆಂಬಲ.</description>
- <description xml:lang="ko">네트워크 사용량에 대해 로드 밸런싱을 지원합니다.</description>
- <description xml:lang="ml">നെറ്റ്‌വര്‍ക്ക് ട്രാഫിക്കിനുള്ള ലോഡ് ബാലന്‍സിങ് പിന്തുണ.</description>
- <description xml:lang="mr">नेटवर्क ट्राफिककरिता लोड बॅलेंसिंग समर्थन.</description>
- <description xml:lang="or">ନେଟୱର୍କ ଯାତାୟାତ ପାଇଁ ଭାର ସନ୍ତୁଳନ ସହାୟତା।</description>
- <description xml:lang="pa">ਨੈੱਟਵਰਕ ਆਵਾਜਾਈ ਲਈ ਭਾਰ ਸੰਤੁਲਨ ਸਮਰਥਨ।</description>
- <description xml:lang="pl">Obsługa równoważenia obciążenia dla ruchu sieciowego.</description>
- <description xml:lang="pt_BR">Suporte de balanceamento de carga para transito de rede.</description>
- <description xml:lang="ru">Поддержка распределения нагрузки для сетевого трафика.</description>
- <description xml:lang="ta">பிணைய போக்குவரத்துக்கான சுமை சமநிலைப்படுத்தல் ஆதரவு.</description>
- <description xml:lang="te">నెట్వర్కు ట్రాఫిక్ కొరకు బాలెన్సింగ్ తోడ్పాటు లోడ్ చేయి.</description>
- <description xml:lang="uk">Підтримка розподілу навантаження на канал мережі</description>
- <description xml:lang="zh_CN">网络流量的负载平衡支持。</description>
- <description xml:lang="zh_TW">網路流量的負載平衡支援。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">ipvsadm</packagereq>
- <packagereq type="default">keepalived</packagereq>
- <packagereq type="optional">haproxy</packagereq>
- </packagelist>
- </group>
- <group>
- <id>mail-server</id>
- <name>E-mail Server</name>
- <name xml:lang="as">ই-মেইল চাৰ্ভাৰ</name>
- <name xml:lang="bn_IN">ই-মেইল সার্ভার</name>
- <name xml:lang="cs">Poštovní server</name>
- <name xml:lang="de">E-Mail-Server</name>
- <name xml:lang="es">Servidor de correo-e</name>
- <name xml:lang="fr">Serveur de courrier électronique</name>
- <name xml:lang="gu">ઇ-મેલ સર્વર</name>
- <name xml:lang="hi">ईमेल सर्वर</name>
- <name xml:lang="it">Server e-mail</name>
- <name xml:lang="ja">メールサーバー</name>
- <name xml:lang="kn">ವಿಅಂಚೆ ಪೂರೈಕೆಗಣಕ</name>
- <name xml:lang="ko">이메일 서버</name>
- <name xml:lang="ml">ഈമെയില്‍ സര്‍വര്‍</name>
- <name xml:lang="mr">ईमेल सर्व्हर</name>
- <name xml:lang="or">ଇମେଲ ସର୍ଭର</name>
- <name xml:lang="pa">ਈ-ਪੱਤਰ ਸਰਵਰ</name>
- <name xml:lang="pl">Serwer pocztowy</name>
- <name xml:lang="pt_BR">Servidor de E-Mail</name>
- <name xml:lang="ru">Сервер электронной почты</name>
- <name xml:lang="ta">மின்னஞ்சல் சேவையகம்</name>
- <name xml:lang="te">ఈ-మెయిల్ సేవిక</name>
- <name xml:lang="uk">Сервер електронної пошти</name>
- <name xml:lang="zh_CN">电子邮件服务器</name>
- <name xml:lang="zh_TW">電子郵件伺服器</name>
- <description>Allows the system to act as a SMTP and/or IMAP e-mail server.</description>
- <description xml:lang="as">SMTP আৰু/বা IMAP ই-মেইল চাৰ্ভাৰ ৰূপে কমপিউটাৰ ব্যৱহাৰ কৰিবলৈ সহায়ক।</description>
- <description xml:lang="bn">SMTP এবং/অথবা IMAP ই-মেইল সার্ভার রূপে কম্পিউটার ব্যবহার করতে সহায়ক।</description>
- <description xml:lang="bn_IN">SMTP এবং/অথবা IMAP ই-মেইল সার্ভার রূপে কম্পিউটার ব্যবহার করতে সহায়ক।</description>
- <description xml:lang="cs">Umožňuje používat počítač jako e-mailový server SMTP a/nebo IMAP.</description>
- <description xml:lang="de">Ermöglicht dem System, als SMTP- und/oder IMAP-E-Mail-Server zu fungieren.</description>
- <description xml:lang="es">Permite al sistema actuar como un servidor SMTP y/o servidor de correo-e IMAP.</description>
- <description xml:lang="fr">Permet au système d'agir en tant que serveur de messagerie SMTP et/ou IMAP.</description>
- <description xml:lang="gu">SMTP અને/અથવા IMAP ઇ-મેલ સર્વર તરીકે કામ કરવા માટે સિસ્ટમને પરવાનગી આપે છે.</description>
- <description xml:lang="hi">सिस्टम को SMTP और/या IMAP ईमेल सर्वर के रूप में काम करने के लिए अनुमति दें.</description>
- <description xml:lang="ia">Illo permitte al systema de ager como un servitor de e-posta SMTP e/o IMAP.</description>
- <description xml:lang="it">Permette al sistema di comportarsi come un server e-mail IMAP e/o SMTP.</description>
- <description xml:lang="ja">システムが SMTP または IMAP 電子メールサーバーとして機能できるようにします。</description>
- <description xml:lang="kn">ವ್ಯವಸ್ಥೆಯು ಒಂದು SMTP ಹಾಗು/ಅಥವ IMAP ಪೂರೈಕೆಗಣಕವಾಗಿ ನಿರ್ವಹಿಸಲು ಇದು ಅನುಮತಿಸುತ್ತದೆ.</description>
- <description xml:lang="ko">SMTP 또는/와 IMAP 전자우편 서버로 시스템이 동작하도록 허용.</description>
- <description xml:lang="ml">ഒരു SMTP അല്ലെങ്കില്‍ IMAP ഈമെയില്‍ സര്‍വറാകുന്നതിനു് സിസ്റ്റത്തിനെ സഹായിക്കുന്നു.</description>
- <description xml:lang="mr">प्रणालीला SMTP व/किंवा IMAP ई-मेल सर्व्हर म्हणून कार्य करण्यास शक्य करतो.</description>
- <description xml:lang="or">ତନ୍ତ୍ରକୁ ଗୋଟିଏ SMTP ଏବଂ/ଅଥବା IMAP ଇ-ମେଲ ସର୍ଭର ଭାବରେ କାର୍ଯ୍ୟ କରିବା ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ।</description>
- <description xml:lang="pa">ਸਿਸਟਮ ਨੂੰ SMTP ਅਤੇ/ਜਾਂ IMAP ਈ-ਮੇਲ ਸਰਵਰ ਵਾਂਗ ਕੰਮ ਕਰਨ ਲਈ ਮਦਦ ਕਰਦਾ ਹੈ।</description>
- <description xml:lang="pl">Umożliwia systemowi działanie jako serwer pocztowy SMTP i/lub IMAP.</description>
- <description xml:lang="pt_BR">Permite que sistema aja como um SMTP e/ou servidor de email IMAP.</description>
- <description xml:lang="ru">Позволяет системе функционировать в качестве почтового сервера SMTP или IMAP.</description>
- <description xml:lang="sv">Låter systemet agera som en SMTP- och/eller IMAP-epostserver.</description>
- <description xml:lang="ta">கணினியை ஒரு SMTP மற்றும்/அல்லது IMAP மின்னஞ்சல் சேவையகமாக செயல்பட அனுமதிக்கிறது.</description>
- <description xml:lang="te">సిస్టమ్ SMTP మరియు/లేదా IMAP ఈ-మెయిల్ సర్వర్ వలె పనిచేయుటకు అనుమతించును.</description>
- <description xml:lang="uk">Надає системі змогу працювати у режимі сервера електронної пошти SMTP і/або IMAP.</description>
- <description xml:lang="zh_CN">允许将系统作为 SMTP 和(或者)IMAP 电子邮件服务器使用。</description>
- <description xml:lang="zh_TW">允許系統被使用來作為 SMTP 與/或 IMAP 電子郵件伺服器。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="default">dovecot</packagereq>
- <packagereq type="default">postfix</packagereq>
- <packagereq type="default">spamassassin</packagereq>
- <packagereq type="optional">cyrus-imapd</packagereq>
- <packagereq type="optional">cyrus-imapd-utils</packagereq>
- <packagereq type="optional">dovecot-mysql</packagereq>
- <packagereq type="optional">dovecot-pgsql</packagereq>
- <packagereq type="optional">dovecot-pigeonhole</packagereq>
- <packagereq type="optional">mailman</packagereq>
- <packagereq type="optional">sendmail</packagereq>
- <packagereq type="optional">sendmail-cf</packagereq>
- </packagelist>
- </group>
- <group>
- <id>mainframe-access</id>
- <name>Mainframe Access</name>
- <name xml:lang="as">মেইন-ফ্ৰেম ব্যৱহাৰৰ সুবিধা</name>
- <name xml:lang="bn">মেইন-ফ্রেম ব্যবহারের সুবিধা</name>
- <name xml:lang="bn_IN">মেইন-ফ্রেম ব্যবহারের সুবিধা</name>
- <name xml:lang="cs">Přístup ke střediskovým počítačům</name>
- <name xml:lang="de">Mainframe-Zugang</name>
- <name xml:lang="es">Acceso a marcos</name>
- <name xml:lang="fr">Accès à l'ordinateur central</name>
- <name xml:lang="gu">મેઇનફ્રેમ પ્રવેશ</name>
- <name xml:lang="hi">मैनफ्रेम पहुँच</name>
- <name xml:lang="ia">Accesso a computator central</name>
- <name xml:lang="it">Accesso mainframe</name>
- <name xml:lang="ja">メインフレームアクセス</name>
- <name xml:lang="kn">ಮೈನ್‌ಫ್ರೇಮ್ ನಿಲುಕಣೆ</name>
- <name xml:lang="ko">메인프레임 억세스</name>
- <name xml:lang="ml">മെയിന്‍ഫ്രെയിം ആക്സെസ്സ്</name>
- <name xml:lang="mr">Mainframe प्रवेश</name>
- <name xml:lang="or">Mainframe ଅଭିଗମ୍ୟତା</name>
- <name xml:lang="pa">ਮੇਨਫਰੇਮ ਪਹੁੰਚ</name>
- <name xml:lang="pl">Dostęp do systemów typu mainframe</name>
- <name xml:lang="pt_BR">Acesso à Mainframe</name>
- <name xml:lang="ru">Доступ к мэйнфрейму</name>
- <name xml:lang="sv">Åtkomst av stordatorer</name>
- <name xml:lang="ta">முக்கியப்ரேம் அணுகல்</name>
- <name xml:lang="te">Mainframe యాక్సెస్</name>
- <name xml:lang="uk">Доступ до мейнфреймів</name>
- <name xml:lang="zh_CN">主框架访问</name>
- <name xml:lang="zh_TW">Mainframe 存取</name>
- <description>Tools for accessing mainframe computing resources.</description>
- <description xml:lang="as">মেইন-ফ্ৰেম কমপিউটাৰৰ বিভিন্ন সামগ্ৰী ব্যৱহাৰৰ সঁজুলিসমূহ।</description>
- <description xml:lang="bn">মেইন-ফ্রেম কম্পিউটারের বিভিন্ন সামগ্রী ব্যবহারের সরঞ্জাম।</description>
- <description xml:lang="bn_IN">মেইন-ফ্রেম কম্পিউটারের বিভিন্ন সামগ্রী ব্যবহারের সরঞ্জাম।</description>
- <description xml:lang="cs">Nástroje pro přístup k výpočetním zdrojům střediskových počítačů.</description>
- <description xml:lang="de">Tools für den Zugriff auf Mainframe-Rechner-Ressourcen.</description>
- <description xml:lang="es">Herramientas para acceder a recursos de computación de marcho principal.</description>
- <description xml:lang="fr">Outils pour accéder aux ressources informatiques de l'ordinateur central.</description>
- <description xml:lang="gu">મેઇનફ્રેમ કમ્પ્યુટીંગ સ્ત્રોતોનાં પ્રવેશ માટેનાં સાધનો.</description>
- <description xml:lang="hi">मेनफ्रेम कंप्यूटिंग संसाधन के लिए औजार.</description>
- <description xml:lang="ia">Utensiles pro acceder ressources del computator central.</description>
- <description xml:lang="it">Tool per l'accesso alle risorse di programmazione del mainframe.</description>
- <description xml:lang="ja">メインフレームコンピューティングリソースにアクセスするためのツール</description>
- <description xml:lang="kn">ಮೈನ್‌ಫ್ರೇಮ್ ಗಣಕೀಯ ಸಂಪನ್ಮೂಲಗಳನ್ನು ನಿಲುಕಿಸಿಕೊಳ್ಳಲು ಬಳಸಲಾಗುವ ಉಪಕರಣಗಳು.</description>
- <description xml:lang="ko">메인프레임 컴퓨팅 자원을 억세스하기 위한 도구</description>
- <description xml:lang="ml">മെയിന്‍ഫ്രെയിം കമ്പ്യൂട്ടിങ് റിസോഴ്സുകള്‍ ലഭ്യമാക്കുന്നതിനുള്ള ഉപകരണങ്ങള്‍.</description>
- <description xml:lang="mr">मैनफ्रेम्स् कम्प्युटिंग स्रोतच्या प्रवेशकरीता साधने.</description>
- <description xml:lang="or">mainframe ଗଣନା ଉତ୍ସଗୁଡ଼ିକୁ ଅଭିଗମ୍ୟ କରିବା ପାଇଁ ସାଧନଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">ਮੇਨਫਰੇਮ ਕੰਪਿਊਟਿੰਗ ਸਰੋਤ ਵਰਤਣ ਲਈ ਟੂਲ।</description>
- <description xml:lang="pl">Narzędzia do uzyskiwania dostępu do zasobów obliczeniowych typu mainframe.</description>
- <description xml:lang="pt_BR">Ferramentas para acessar os recursos de computação de mainframe.</description>
- <description xml:lang="ru">Средства доступа к вычислительным ресурсам мэйнфрейма.</description>
- <description xml:lang="sv">Verktyg för att komma åt resurser i stordatorer.</description>
- <description xml:lang="ta">கணினி மறுமூலங்களின் முக்கிய திட்டத்தை அணுகுவதற்கான கருவிகள்.</description>
- <description xml:lang="te">mainframe కంప్యూటింగ్ వనరులను యాక్సెస్ చేయుటకు సాధనములు.</description>
- <description xml:lang="uk">Програми для доступу до обчислювальних потужностей великих обчислювальних машин (мейнфреймів).</description>
- <description xml:lang="zh_CN">访问主框架计算源的工具。</description>
- <description xml:lang="zh_TW">存取 mainframe 運算資源的工具。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="default">tn5250</packagereq>
- <packagereq type="default">x3270-text</packagereq>
- <packagereq type="default">x3270-x11</packagereq>
- </packagelist>
- </group>
- <group>
- <id>mariadb</id>
- <name>MariaDB Database Server</name>
- <name xml:lang="as">MariaDB ডাটাবেইচ চাৰ্ভাৰ</name>
- <name xml:lang="bn_IN">MariaDB ডেটাবেস সার্ভার</name>
- <name xml:lang="cs">Databázový server MariaDB</name>
- <name xml:lang="de">MariaDB Datenbank-Server</name>
- <name xml:lang="es">Servidor de base de datos MariaDB</name>
- <name xml:lang="fr">Serveur de base de données MariaDB</name>
- <name xml:lang="gu">MariaDB ડેટાબેઝ સર્વર</name>
- <name xml:lang="hi">MariaDB डाटाबेस सर्वर</name>
- <name xml:lang="it">Server database MariaDB</name>
- <name xml:lang="ja">MariaDB データベースサーバー</name>
- <name xml:lang="kn">MariaDB ದತ್ತಸಂಚಯ ಪೂರೈಕೆಗಣಕ</name>
- <name xml:lang="ko">MariaDB 데이터베이스 서버</name>
- <name xml:lang="ml">മരിയാഡിബി ഡേറ്റാബെയിസ് സര്‍വര്‍</name>
- <name xml:lang="mr">MariaDB डाटाबेस सर्व्हर</name>
- <name xml:lang="or">MariaDB ତଥ୍ୟାଧାର ସର୍ଭର</name>
- <name xml:lang="pa">MariaDB ਡਾਟਾਬੇਸ ਸਰਵਰ</name>
- <name xml:lang="pl">Serwer bazy danych MariaDB</name>
- <name xml:lang="pt_BR">Servidor de Banco de Dados MariaDB</name>
- <name xml:lang="ru">Сервер MariaDB</name>
- <name xml:lang="ta">MariaDB தரவுத்தள சேவையகம்</name>
- <name xml:lang="te">MariaDB డాటాబేస్ సేవిక</name>
- <name xml:lang="uk">Сервер бази даних MariaDB</name>
- <name xml:lang="zh_CN">MariaDB 数据库服务器</name>
- <name xml:lang="zh_TW">MariaDB 資料庫伺服器</name>
- <description>The MariaDB SQL database server, and associated packages.</description>
- <description xml:lang="as">MariaDB SQL ডাটাবেইচ চাৰ্ভাৰ, আৰু সংযুক্ত পেকেইজসমূহ।</description>
- <description xml:lang="bn_IN">MariaDB SQL ডেটাবেস সার্ভার, এবং সংশ্লিষ্ট প্যাকেজগুলি।</description>
- <description xml:lang="cs">Server pro SQL databáze MariaDB a další související balíčky.</description>
- <description xml:lang="de">Der MariaDB SQL Datenbank-Server und verwandte Pakete.</description>
- <description xml:lang="es">El servidor de base de datos MariaDB SQL y paquetes asociados.</description>
- <description xml:lang="fr">Serveur de base de données SQL MariaDB et paquets associés.</description>
- <description xml:lang="gu">MariaDB SQL ડેટાબેઝ સર્વર, અને સંકળાયેલા પેકેજો.</description>
- <description xml:lang="hi">MariaDB SQL डेटाबेस सर्वर और संबद्ध संकुल.</description>
- <description xml:lang="it">Server del database MariaDB SQL e pacchetti associati.</description>
- <description xml:lang="ja">MariaDB SQL データベースサーバーと関連パッケージです。</description>
- <description xml:lang="kn">MariaDB SQL ದತ್ತಸಂಚಯ ಪೂರೈಕೆಗಣಕ, ಹಾಗು ಸಂಬಂಧಿತ ಪ್ಯಾಕೇಜುಗಳು.</description>
- <description xml:lang="ko">MariaDB SQL 데이터베이스 서버와 관련 패키지.</description>
- <description xml:lang="ml">മരിയഡിബി എസ്‌ക്യൂഎല്‍ ഡേറ്റാബെയിസ് സര്‍വറും അനുബന്ധിച്ച പാക്കേജുകളും.</description>
- <description xml:lang="mr">MariaDB SQL डाटाबेस सर्व्हर, आणि संबंधित संकुल.</description>
- <description xml:lang="or">MariaDB ତଥ୍ଯାଧାର ସର୍ଭର, ଏବଂ ସଶ୍ଳିଷ୍ଟ ପ୍ୟାକେଜଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">MariaDB SQL ਡਾਟਾਬੇਸ ਸਰਵਰ, ਅਤੇ ਸੰਬੰਧਿਤ ਪੰਡਾਂ/ਪੈਕੇਜ।</description>
- <description xml:lang="pl">Serwer bazy danych SQL MariaDB i powiązane pakiety.</description>
- <description xml:lang="pt_BR">O servidor de banco de dados do Maria DB SQL, e pacotes associados.</description>
- <description xml:lang="ru">SQL-сервер MariaDB с необходимым набором пакетов.</description>
- <description xml:lang="ta">MariaDB SQL தரவுத்தள சேவையகம் மற்றும் தொடர்புடைய தொகுப்புகள்.</description>
- <description xml:lang="te">MariaDB SQL డాటాబేస్ సేవిక, మరియు సంబందిత ప్యాకేజీలు.</description>
- <description xml:lang="uk">Сервер бази даних SQL MariaDB та пов’язані з його роботою пакунки.</description>
- <description xml:lang="zh_CN">MariaDB SQL 数据库服务器及关联的软件包。</description>
- <description xml:lang="zh_TW">MariaDB SQL 資料庫伺服器與相聯套件。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">mariadb-server</packagereq>
- <packagereq type="optional">mariadb-bench</packagereq>
- <packagereq type="optional">mariadb-test</packagereq>
- </packagelist>
- </group>
- <group>
- <id>mariadb-client</id>
- <name>MariaDB Database Client</name>
- <name xml:lang="as">MariaDB ডাটাবেইচ ক্লাএন্ট</name>
- <name xml:lang="bn_IN">MariaDB ডেটাবেস ক্লায়েন্ট</name>
- <name xml:lang="cs">Databázový klient MariaDB</name>
- <name xml:lang="de">MariaDB Datenbank-Client</name>
- <name xml:lang="es">Cliente de base de datos MariaDB</name>
- <name xml:lang="fr">Client de base de données MariaDB</name>
- <name xml:lang="gu">MariaDB ડેબાબેઝ ક્લાયન્ટ</name>
- <name xml:lang="hi">MariaDB डाटाबेस क्लाइंट</name>
- <name xml:lang="it">Client database MariaDB</name>
- <name xml:lang="ja">MariaDB データベースクライアント</name>
- <name xml:lang="kn">MariaDB ದತ್ತಸಂಚಯ ಕ್ಲೈಂಟ್</name>
- <name xml:lang="ko">MariaDB 데이터베이스 클라이언트</name>
- <name xml:lang="ml">മരിയാഡിബി ഡേറ്റാബെയിസ് ക്ലയന്റ്</name>
- <name xml:lang="mr">MariaDB डाटाबेस क्लाएंट</name>
- <name xml:lang="or">MariaDB ତଥ୍ଯାଧାର କ୍ଲାଏଣ୍ଟ</name>
- <name xml:lang="pa">MariaDB ਡਾਟਾਬੇਸ ਕਲਾਈਂਟ</name>
- <name xml:lang="pl">Klient bazy danych MariaDB</name>
- <name xml:lang="pt_BR">Cliente de Banco de Dados MariaDB</name>
- <name xml:lang="ru">Клиент MariaDB</name>
- <name xml:lang="ta">MariaDB தரவுத்தள கிளையன்</name>
- <name xml:lang="te">MariaDB డాటాబేస్ క్లైంట్</name>
- <name xml:lang="uk">Клієнт бази даних MariaDB</name>
- <name xml:lang="zh_CN">MariaDB 数据库客户端</name>
- <name xml:lang="zh_TW">MariaDB 資料庫客戶端</name>
- <description>The MariaDB SQL database client, and associated packages.</description>
- <description xml:lang="as">MariaDB SQL ডাটাবেইচ ক্লাএন্ট, আৰু সংযুক্ত পেকেইজসমূহ।</description>
- <description xml:lang="bn_IN">MariaDB SQL ডেটাবেস ক্লায়েন্ট এবং সংশ্লিষ্ট প্যাকেজগুলি।</description>
- <description xml:lang="cs">Klient pro SQL databáze MariaDB a další související balíčky.</description>
- <description xml:lang="de">Der MariaDB SQL Datenbank-Client und verwandte Pakete.</description>
- <description xml:lang="es">El cliente de base de datos MariaDB SQL y paquetes asociados.</description>
- <description xml:lang="fr">Client de base de données SQL MariaDB et paquets associés.</description>
- <description xml:lang="gu">MariaDB SQL ડેટાબેઝ ક્લાઇન્ટ, અને સંકળાયેલા પેકેજો.</description>
- <description xml:lang="hi">MariaDB SQL डेटाबेस क्लाइंट और संबद्ध संकुल.</description>
- <description xml:lang="it">Client del database MariaDB SQL e pacchetti associati.</description>
- <description xml:lang="ja">MariaDB SQL データベースクライアントと関連パッケージです。</description>
- <description xml:lang="kn">MariaDB SQL ದತ್ತಸಂಚಯ ಕ್ಲೈಂಟ್, ಹಾಗು ಸಂಬಂಧಿತ ಪ್ಯಾಕೇಜುಗಳು.</description>
- <description xml:lang="ko">MariaDB SQL 데이터베이스 클라이언트와 관련 패키지.</description>
- <description xml:lang="ml">മരിയഡിബി എസ്‌ക്യൂഎല്‍ ഡേറ്റാബെയിസ് ക്ലയന്റും അനുബന്ധിച്ച പാക്കേജുകളും.</description>
- <description xml:lang="mr">MariaDB SQL डाटाबेस क्लाएंट, आणि संबंधित संकुल.</description>
- <description xml:lang="or">MariaDB ତଥ୍ଯାଧାର କ୍ଲାଏଣ୍ଟ, ଏବଂ ସଶ୍ଳିଷ୍ଟ ପ୍ୟାକେଜଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">MariaDB SQL ਡਾਟਾਬੇਸ ਕਲਾਈਂਟ, ਅਤੇ ਸੰਬੰਧਿਤ ਪੰਡਾਂ/ਪੈਕੇਜ।</description>
- <description xml:lang="pl">Klient bazy danych SQL MariaDB i powiązane pakiety.</description>
- <description xml:lang="pt_BR">O cliente de banco de dados do MariaDB SQL, e pacotes associados.</description>
- <description xml:lang="ru">SQL-клиент MariaDB с необходимым набором пакетов.</description>
- <description xml:lang="ta">MariaDB SQL தரவுத்தள கிளையன் மற்றும் தொடர்புடைய தொகுப்புகள்.</description>
- <description xml:lang="te">MariaDB SQL డాటాబేస్ క్లైంట్, మరియు సంబందిత ప్యాకేజీలు.</description>
- <description xml:lang="uk">Клієнтська частина бази даних SQL MariaDB та пов’язані з його роботою пакунки.</description>
- <description xml:lang="zh_CN">MariaDB SQL 数据库客户端以及关联的软件包。</description>
- <description xml:lang="zh_TW">MariaDB SQL 資料庫客戶端與相聯套件。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">mariadb</packagereq>
- <packagereq type="default">mysql-connector-odbc</packagereq>
- <packagereq type="default">MySQL-python</packagereq>
- <packagereq type="optional">libdbi-dbd-mysql</packagereq>
- <packagereq type="optional">mysql-connector-java</packagereq>
- <packagereq type="optional">perl-DBD-MySQL</packagereq>
- </packagelist>
- </group>
- <group>
- <id>multimedia</id>
- <name>Multimedia</name>
- <name xml:lang="ar">وسائط متعددة</name>
- <name xml:lang="as">মাল্টিমিডিয়া</name>
- <name xml:lang="bn">মাল্টি-মিডিয়া</name>
- <name xml:lang="bn_IN">মাল্টি-মিডিয়া</name>
- <name xml:lang="bs">Multimedija</name>
- <name xml:lang="ca">Multimèdia</name>
- <name xml:lang="cs">Multimédia</name>
- <name xml:lang="cy">Amlgyfryngau</name>
- <name xml:lang="da">Multimedie</name>
- <name xml:lang="de">Multimedia</name>
- <name xml:lang="en_GB">Multimedia</name>
- <name xml:lang="es">Multimedia</name>
- <name xml:lang="eu">Multimedia</name>
- <name xml:lang="fi">Multimedia</name>
- <name xml:lang="fr">Multimédia</name>
- <name xml:lang="gu">મલ્ટીમીડિયા</name>
- <name xml:lang="hi">मल्टीमीडिया</name>
- <name xml:lang="hr">Multimedija</name>
- <name xml:lang="hu">Multimédia</name>
- <name xml:lang="hy">Մուլտիմեդիա</name>
- <name xml:lang="id">Multimedia</name>
- <name xml:lang="it">Multimedia</name>
- <name xml:lang="ja">マルチメディア</name>
- <name xml:lang="ka">მულტიმედია</name>
- <name xml:lang="kn">ಮಲ್ಟಿಮೀಡಿಯಾ</name>
- <name xml:lang="ko">멀티미디어</name>
- <name xml:lang="lv">Multimedija</name>
- <name xml:lang="ml">മള്‍ട്ടിമീഡിയാ</name>
- <name xml:lang="mr">मल्टिमिडीया</name>
- <name xml:lang="or">ଏକାଧିକ ପ୍ରସାର ମାଧ୍ଯମ</name>
- <name xml:lang="pa">ਮਲਟੀਮੀਡੀਆ</name>
- <name xml:lang="pl">Multimedia</name>
- <name xml:lang="pt_BR">Multimídia</name>
- <name xml:lang="ru">Мультимедиа</name>
- <name xml:lang="si">බහු මාධ්‍ය</name>
- <name xml:lang="sl">Večpredstavnost</name>
- <name xml:lang="sq">Multimedia</name>
- <name xml:lang="sv">Multimedia</name>
- <name xml:lang="ta">பல்லூடகம்</name>
- <name xml:lang="te">బహుళమాద్యమం</name>
- <name xml:lang="th">มัลติมีเดีย</name>
- <name xml:lang="tr">Çoklu Ortam</name>
- <name xml:lang="uk">Мультимедіа</name>
- <name xml:lang="zh_CN">多媒体</name>
- <name xml:lang="zh_TW">多媒體</name>
- <description>Audio/video framework common to desktops.</description>
- <description xml:lang="cs">Podpora pro běžně používané audio a video.</description>
- <description xml:lang="de">Audio/Video-Framework für Desktops.</description>
- <description xml:lang="es">Marco común de audio y vídeo para escritorios.</description>
- <description xml:lang="fr">Environnement audio/vidéo commun aux bureaux.</description>
- <description xml:lang="gu">ડૅસ્કટોપમાં સામાન્ય ઓડિયો/વીડિયો ફ્રેમવર્ક.</description>
- <description xml:lang="hi">डेस्कटॉप में साझा किए जानेवाले ऑडियो/वीडियो फ्रेमवर्क</description>
- <description xml:lang="it">Framework audio/video comune per i desktop.</description>
- <description xml:lang="ja">デスクトップに共通のオーディオ/ビデオフレームワークです。</description>
- <description xml:lang="kn">ಗಣಕತೆರೆಗಳಿಗಾಗಿ (ಡೆಸ್ಕ್‌ಟಾಪ್‌) ಸಾಮಾನ್ಯವಾಗಿರುವ ಆಡಿಯೋ/ವೀಡಿಯೊ ಫ್ರೇಮ್‌ವರ್ಕ್.</description>
- <description xml:lang="ko">데스트탑에 일반적인 오디오/비디오 프레임워크입니다.</description>
- <description xml:lang="ml">പണിയിടങ്ങള്‍ക്കു് പൊതുവായുള്ള ഓഡിയോ/വീഡിയോ ചട്ടക്കൂടു്.</description>
- <description xml:lang="mr">डेस्कटॉपकरिता सामान्य ऑडिओ किंवा व्हिडीओ फ्रेमवर्क.</description>
- <description xml:lang="or">ଡେସ୍କଟପଗୁଡିକରେ ସମାନତା ଥିବା ଧ୍ୱନି/ଭିଡ଼ିଓ ଫ୍ରେମୱର୍କ।</description>
- <description xml:lang="pa">ਸਰਵਰਾਂ ਲਈ ਸਾਂਝਾ ਆਡੀਉ/ਵੀਡੀਉ ਫਰੇਮਵਰਕ।</description>
- <description xml:lang="pl">Struktura audio/wideo wspólna dla środowisk pulpitu.</description>
- <description xml:lang="pt_BR">Estrutura de áudio/vídeo comuns para desktops.</description>
- <description xml:lang="ru">Аудио и видео для рабочих станций.</description>
- <description xml:lang="ta">பணிமேடைகளுக்கான பொதுவான ஆடியோ/வீடியோ சட்டமைப்பு.</description>
- <description xml:lang="te">డెస్కుటాప్‌లకు మామూలు అయిన దృశ్యకం/శ్రవ్యకం ఫ్రేమ్‌వర్క్.</description>
- <description xml:lang="uk">Система бібліотек для роботи з відео та звуком, типова для робочих станцій.</description>
- <description xml:lang="zh_CN">桌面通用的音频/视频框架。</description>
- <description xml:lang="zh_TW">桌面環境常用的音效/影像基礎框架。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">alsa-plugins-pulseaudio</packagereq>
- <packagereq type="mandatory">alsa-utils</packagereq>
- <packagereq type="mandatory">dvd+rw-tools</packagereq>
- <packagereq type="mandatory">gstreamer-plugins-bad-free</packagereq>
- <packagereq type="mandatory">gstreamer-plugins-good</packagereq>
- <packagereq type="mandatory">PackageKit-gstreamer-plugin</packagereq>
- <packagereq type="mandatory">pulseaudio</packagereq>
- <packagereq type="mandatory">pulseaudio-module-x11</packagereq>
- <packagereq type="mandatory">pulseaudio-utils</packagereq>
- <packagereq type="mandatory">wodim</packagereq>
- <packagereq type="conditional" requires="gstreamer1">gstreamer1-plugins-bad-free</packagereq>
- <packagereq type="conditional" requires="gstreamer1">gstreamer1-plugins-good</packagereq>
- <packagereq type="optional">pavucontrol</packagereq>
- </packagelist>
- </group>
- <group>
- <id>network-file-system-client</id>
- <name>Network File System Client</name>
- <name xml:lang="as">নেটৱাৰ্ক ফাইল চিস্টেম ক্লাএন্ট</name>
- <name xml:lang="bn_IN">নেটওয়ার্ক ফাইল সিস্টেম ক্লায়েন্ট</name>
- <name xml:lang="cs">Klient pro síťový souborový systém</name>
- <name xml:lang="de">Network File System Client</name>
- <name xml:lang="es">Cliente de sistema de archivos de red</name>
- <name xml:lang="fr">Client NFS</name>
- <name xml:lang="gu">નેટવર્ક ફાઇલ સિસ્ટમ ક્લાયન્ટ</name>
- <name xml:lang="hi">संजाल फाइल तंत्र क्लाइंट</name>
- <name xml:lang="it">Client del file system di rete</name>
- <name xml:lang="ja">ネットワークファイルシステムクライアント</name>
- <name xml:lang="kn">ಜಾಲ ಕಡತ ವ್ಯವಸ್ಥೆ ಕ್ಲೈಂಟ್</name>
- <name xml:lang="ko">네트워크 파일 시스템 클라이언트</name>
- <name xml:lang="ml">നെറ്റ്‌വര്‍ക്ക് ഫയല്‍ സിസ്റ്റം ക്ലയന്റ്</name>
- <name xml:lang="mr">नेटवर्क फाइल सिस्टम क्लाएंट</name>
- <name xml:lang="or">ନେଟୱର୍କ ଫାଇଲତନ୍ତ୍ର କ୍ଲାଏଣ୍ଟ</name>
- <name xml:lang="pa">ਨੈੱਟਵਰਕ ਫਾਈਲ ਸਿਸਟਮ ਕਲਾਈਂਟ</name>
- <name xml:lang="pl">Klient sieciowego systemu plików</name>
- <name xml:lang="pt_BR">Cliente de Sistema de Arquivo de Rede</name>
- <name xml:lang="ru">Клиент NFS</name>
- <name xml:lang="ta">பிணைய கோப்பு முறைமை கிளையன்</name>
- <name xml:lang="te">నెట్వర్కు ఫైల్ సిస్టమ్ క్లైంట్</name>
- <name xml:lang="uk">Клієнт мережевих файлових систем</name>
- <name xml:lang="zh_CN">网络文件系统客户端</name>
- <name xml:lang="zh_TW">網路檔案系統客戶端</name>
- <description>Enables the system to attach to network storage.</description>
- <description xml:lang="as">নেটৱাৰ্ক সংৰক্ষণৰ সৈতে কমপিউটাৰক সংযুক্ত কৰাৰ সুবিধা উপলব্ধ কৰা হয়।</description>
- <description xml:lang="bn">নেটওয়ার্ক সংগ্রহস্থলের সাথে কম্পিউটার সংযুক্ত করার সুবিধা উপলব্ধ করা হয়।</description>
- <description xml:lang="bn_IN">নেটওয়ার্ক সংগ্রহস্থলের সাথে কম্পিউটার সংযুক্ত করার সুবিধা উপলব্ধ করা হয়।</description>
- <description xml:lang="cs">Umožňuje připojit počítač k síťovému úložišti.</description>
- <description xml:lang="de">Ermöglicht dem System die Anbindung an Netzwerk-Storage.</description>
- <description xml:lang="es">Permite al sistema conectarse a un almacenamiento de red.</description>
- <description xml:lang="fr">Permet au système de s'attacher au stockage réseau.</description>
- <description xml:lang="gu">નેટવર્ક સંગ્રહ સાથે જોડાવા સિસ્ટમને સક્રિય કરે છે.</description>
- <description xml:lang="hi">संजाल भंजार में जुड़ने के लिए तंत्र को सक्रिय करता है.</description>
- <description xml:lang="ia">Illo permitte al systema de attaccar se al immagazinage de rete.</description>
- <description xml:lang="it">Permette al sistema di collegarsi allo storage della rete.</description>
- <description xml:lang="ja">システムがネットワークストレージに接続できるようにします。</description>
- <description xml:lang="kn">ಜಾಲಬಂಧ ಶೇಖರಣೆಯೊಂದಿಗೆ ವ್ಯವಸ್ಥೆಯೊಂದಿಗೆ ಲಗತ್ತಿಸುವುದನ್ನು ಶಕ್ತಗೊಳಿಸುತ್ತದೆ.</description>
- <description xml:lang="ko">네트워크 저장소에 시스템을 붙이도록 함</description>
- <description xml:lang="ml">നെറ്റ്‌വര്‍ക്ക് സ്റ്റോറേജിലേക്ക് ചേരുവാന്‍ സിസ്റ്റത്തിനെ സജ്ജമാക്കുന്നു.</description>
- <description xml:lang="mr">नेटवर्क स्टोरेजसह जोडणीकरीता प्रणालीला समर्थीत करतो.</description>
- <description xml:lang="or">ନେଟୱର୍କ ସଂରକ୍ଷଣ ସହିତ ସଂଲଗ୍ନ ହେବା ପାଇଁ ତନ୍ତ୍ରକୁ ସକ୍ରିୟ କରନ୍ତୁ।</description>
- <description xml:lang="pa">ਸਿਸਟਮ ਨੂੰ ਨੈੱਟਵਰਕ ਸਟੋਰੇਮ ਨਾਲ ਜੁੜਨ ਲਈ ਯੋਗ ਕਰਦਾ ਹੈ।</description>
- <description xml:lang="pl">Umożliwia systemowi podłączanie sieciowych pamięci masowych.</description>
- <description xml:lang="pt_BR">Permite que o sistema anexe ao armazenamento de rede.</description>
- <description xml:lang="ru">Обеспечивает подключение системы к сетевому хранилищу.</description>
- <description xml:lang="sv">Gör att systemet kan ansluta till nätverkslagring.</description>
- <description xml:lang="ta">பிணைய சேமிபக்கத்துடன் கணினியை இணைக்க செயல்படுகிறது.</description>
- <description xml:lang="te">సిస్టమ్ నెట్వర్కు నిల్వనకు అనుభందింపబడునట్లు చేతనముచేయును.</description>
- <description xml:lang="uk">Надає змогу долучати систему до мережевого сховища даних.</description>
- <description xml:lang="zh_CN">启用该系统附加到网络存储。</description>
- <description xml:lang="zh_TW">讓系統可連至網路儲存裝置。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">autofs</packagereq>
- <packagereq type="mandatory">cgdcbxd</packagereq>
- <packagereq type="mandatory">cifs-utils</packagereq>
- <packagereq type="mandatory">device-mapper-multipath</packagereq>
- <packagereq type="mandatory">fcoe-utils</packagereq>
- <packagereq type="mandatory">glusterfs-fuse</packagereq>
- <packagereq type="mandatory">gssproxy</packagereq>
- <packagereq type="mandatory">iscsi-initiator-utils</packagereq>
- <packagereq type="mandatory">lldpad</packagereq>
- <packagereq type="mandatory">nfs-utils</packagereq>
- <packagereq type="mandatory">nfs4-acl-tools</packagereq>
- <packagereq type="mandatory">samba-client</packagereq>
- <packagereq type="mandatory">targetcli</packagereq>
- <packagereq type="optional">cachefilesd</packagereq>
- </packagelist>
- </group>
- <group>
- <id>network-server</id>
- <name>Network Infrastructure Server</name>
- <name xml:lang="as">নেটৱাৰ্ক আন্তঃগাথনী চাৰ্ভাৰ</name>
- <name xml:lang="bn">নেটওয়ার্ক ইনফ্রাস্ট্রাকচার সার্ভার</name>
- <name xml:lang="bn_IN">নেটওয়ার্ক ইনফ্রাস্ট্রাকচার সার্ভার</name>
- <name xml:lang="cs">Server síťové infrastruktury</name>
- <name xml:lang="de">Netzwerk-Infrastruktur-Server</name>
- <name xml:lang="es">Servidores de infraestructura de red</name>
- <name xml:lang="fr">Serveur d'infrastructure réseau</name>
- <name xml:lang="gu">નેટવર્ક ઇન્ફ્રાસ્ટ્રક્ચર સર્વર</name>
- <name xml:lang="hi">संजाल आधारभूत ढाँचा सर्वर</name>
- <name xml:lang="ia">Servitor del infrastructura de rete</name>
- <name xml:lang="it">Server per l'infrastruttura di rete</name>
- <name xml:lang="ja">ネットワークインフラストラクチャサーバー</name>
- <name xml:lang="kn">ಜಾಲ ಸಂಪನ್ಮೂಲ ಪೂರೈಕೆಗಣಕ</name>
- <name xml:lang="ko">네트워크 인프라스트럭쳐 서버</name>
- <name xml:lang="ml">നെറ്റ്‌വര്‍ക്ക് ഇന്‍ഫ്രാസ്ട്രക്ചര്‍ സര്‍വര്‍</name>
- <name xml:lang="mr">नेटवर्क इंफ्रास्ट्रक्चर सर्व्हर</name>
- <name xml:lang="or">ନେଟୱାର୍କ ଅବସଂରଚନା ସର୍ଭର</name>
- <name xml:lang="pa">ਨੈੱਟਵਰਕ ਢਾਂਚਾ ਸਰਵਰ</name>
- <name xml:lang="pl">Serwer infrastruktury sieciowej</name>
- <name xml:lang="pt_BR">Servidores de Infraestrutura de Rede</name>
- <name xml:lang="ru">Сервер сетевой инфраструктуры</name>
- <name xml:lang="sv">Nätverksinfrastrukturserver</name>
- <name xml:lang="ta">பிணைய அடித்தள சேவையகம்</name>
- <name xml:lang="te">నెట్వర్క్ అవస్థాపన సర్వర్</name>
- <name xml:lang="uk">Сервер інфраструктури мережі</name>
- <name xml:lang="zh_CN">网络基础设施服务器</name>
- <name xml:lang="zh_TW">網路架構伺服器</name>
- <description>Servers for core network protocols and services, such as DHCP or DNS.</description>
- <description xml:lang="as">নেটৱাৰ্কৰ প্ৰধান প্ৰটোকল আৰু সেৱা যেনে DHCP বা DNS ৰ বাবে চাৰ্ভাৰ।</description>
- <description xml:lang="bn">নেটওয়ার্কের প্রধান প্রোটোকল ও পরিসেবা যেমন DHCP অথবা DNS-র জন্য সার্ভার।</description>
- <description xml:lang="bn_IN">নেটওয়ার্কের প্রধান প্রোটোকল ও পরিসেবা যেমন DHCP অথবা DNS-র জন্য সার্ভার।</description>
- <description xml:lang="cs">Servery pro základní síťové protokoly jako jsou DHCP nebo DNS.</description>
- <description xml:lang="de">Server für zentrale Netzwerkprotokolle und -dienste, wie DHCP oder DNS.</description>
- <description xml:lang="es">Servidores para protocolos y servicios de red de núcleo, tales como DHCP o DNS.</description>
- <description xml:lang="fr">Serveurs pour protocoles réseau et services principaux, tels que DHCP et DNS.</description>
- <description xml:lang="gu">કોર નેટવર્ક પ્રોટોકોલ અને સેવાઓ માટે સર્વરો, જેવાં કે DHCP અથવા DNS.</description>
- <description xml:lang="hi">कोर संजाल प्रोटोकॉल और सेवाओं के लिए सर्वर जैसे कि DHCP या DNS.</description>
- <description xml:lang="ia">Servitores pro protocollos e servicios de rete central, tal como DHCP o DNS.</description>
- <description xml:lang="it">Server per protocolli di rete di base e servizi, come ad esempio DHCP o DNS.</description>
- <description xml:lang="ja">DHCP や DNS などコアネットワークプロトコルやサービスのサーバーです。</description>
- <description xml:lang="kn">DHCP ಅಥವ DNS ನಂತಹ ಪ್ರಮುಖ ಜಾಲಬಂಧ ಪ್ರೊಟೊಕಾಲ್‌ಗಳು ಹಾಗು ಸೇವೆಗಳಿಗಾಗಿನ ಪೂರೈಕೆಗಣಕಗಳು.</description>
- <description xml:lang="ko">DHCP나 DNS와 같은 핵심 네트워크 프로토콜과 서비스를 위한 서버</description>
- <description xml:lang="ml">ഡിഎച്ഡിപി അല്ലെങ്കില്‍ ഡിഎന്‍എസ് പോലുള്ള കോര്‍ നെറ്റ്‌വര്‍ക്ക് പ്രോട്ടോക്കോളുകളും സര്‍വീസുകള്‍ക്കുമുള്ള സര്‍വറുകള്‍.</description>
- <description xml:lang="mr">कोर नेटवर्क प्रोटोकॉल्स् व सर्व्हिसेस् करीता सर्व्हर्स्, जसे की DHCP किंवा DNS.</description>
- <description xml:lang="or">ମୁଖ୍ୟ ନେଟୱର୍କ ପ୍ରୋଟୋକଲ ଏବଂ ସର୍ଭିସଗୁଡ଼ିକ ପାଇଁ ସର୍ଭର, ଯେପରିକି DHCP କିମ୍ବା DNS.</description>
- <description xml:lang="pa">ਕੋਰ ਨੈੱਟਵਰਕ ਪਰੋਟੋਕਾਲ ਅਤੇ ਸਰਵਿਸਾਂ, ਜਿਵੇਂ DHCP ਜਾਂ DNS ਲਈ ਸਰਵਰ।</description>
- <description xml:lang="pl">Serwery najważniejszych protokołów i usług sieciowych, takich jak DHCP lub DNS.</description>
- <description xml:lang="pt_BR">Servidores para protocolos de rede central e serviços, tais como o DHCP ou DNS.</description>
- <description xml:lang="ru">Серверы для основных сетевых протоколов и служб, таких как DHCP и DNS.</description>
- <description xml:lang="sv">Servrar för grundläggande nätverksprotokoll och -tjänster, såsom DHCP eller DNS.</description>
- <description xml:lang="ta">பிணைய நெறிமுறைகள் மற்றும் சேவைகளுக்காட குறியீட்டிற்கான சேவையகங்கள், அவைகள் DHCP அல்லது DNS.</description>
- <description xml:lang="te">DHCP లేదా DNS వలె, కోర్ నెట్వర్క్ ప్రొటోకాల్స్ మరియు సేవల కొరకు సర్వర్స్.</description>
- <description xml:lang="uk">Сервери для виконання завдань з обробки основних мережевих протоколів та роботи основних служб, зокрема DHCP і DNS.</description>
- <description xml:lang="zh_CN">用于核网络协议和服务,比如 DHCP 或者 DNS 的服务器。</description>
- <description xml:lang="zh_TW">核心網路協定與服務的伺服器,例如 DHCP 或 DNS。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="optional">dhcp</packagereq>
- <packagereq type="optional">dnsmasq</packagereq>
- <packagereq type="optional">freeradius</packagereq>
- <packagereq type="optional">quagga</packagereq>
- <packagereq type="optional">radvd</packagereq>
- <packagereq type="optional">rsyslog-gnutls</packagereq>
- <packagereq type="optional">rsyslog-gssapi</packagereq>
- <packagereq type="optional">rsyslog-mysql</packagereq>
- <packagereq type="optional">rsyslog-pgsql</packagereq>
- <packagereq type="optional">rsyslog-relp</packagereq>
- <packagereq type="optional">syslinux</packagereq>
- <packagereq type="optional">tang</packagereq>
- <packagereq type="optional">tftp-server</packagereq>
- </packagelist>
- </group>
- <group>
- <id>network-tools</id>
- <name>Networking Tools</name>
- <name xml:lang="as">নেটৱাৰ্ক ব্যৱস্থাৰ বিভিন্ন সঁজুলিসমূহ</name>
- <name xml:lang="bn">নেটওয়ার্ক ব্যবস্থার বিভিন্ন সরঞ্জাম</name>
- <name xml:lang="bn_IN">নেটওয়ার্ক ব্যবস্থার বিভিন্ন সরঞ্জাম</name>
- <name xml:lang="cs">Nástroje pro práci v síti</name>
- <name xml:lang="de">Netzwerk-Tools</name>
- <name xml:lang="es">Herramientas de red</name>
- <name xml:lang="fr">Outils réseau</name>
- <name xml:lang="gu">નેટવર્કિંગ સાધનો</name>
- <name xml:lang="hi">संजालन औजार</name>
- <name xml:lang="ia">Instrumentos de rete</name>
- <name xml:lang="it">Tool per il networking</name>
- <name xml:lang="ja">ネットワーキングツール</name>
- <name xml:lang="kn">ಜಾಲಬಂಧ ಉಪಕರಣಗಳು</name>
- <name xml:lang="ko">네트워킹 도구</name>
- <name xml:lang="ml">നെറ്റ്‌വര്‍ക്കിങ് ഉപകരണങ്ങള്‍</name>
- <name xml:lang="mr">नेटवर्किंग साधने</name>
- <name xml:lang="or">ନେଟୱର୍କିଙ୍ଗ ସାଧନଗୁଡ଼ିକ</name>
- <name xml:lang="pa">ਨੈੱਟਵਰਕਿੰਗ ਟੂਲ</name>
- <name xml:lang="pl">Narzędzia sieciowe</name>
- <name xml:lang="pt_BR">Ferramentas de rede</name>
- <name xml:lang="ru">Сетевые инструменты</name>
- <name xml:lang="sv">Nätverksverktyg</name>
- <name xml:lang="ta">பிணையத்தின் கருவிகள்</name>
- <name xml:lang="te">నెట్వర్కింగ్ సాధనములు</name>
- <name xml:lang="uk">Програми для роботи у мережі</name>
- <name xml:lang="zh_CN">联网工具</name>
- <name xml:lang="zh_TW">網路作業工具</name>
- <description>Tools for configuring and analyzing computer networks.</description>
- <description xml:lang="as">কমপিউটাৰ নেটৱাৰ্ক সংৰূপণ আৰু বিশ্লেষণৰ বাবে বিভিন্ন সঁজুলিসমূহ।</description>
- <description xml:lang="bn">কম্পিউটার নেটওয়ার্ক কনফিগার ও বিশ্লেষণের জন্য বিভিন্ন সরঞ্জাম।</description>
- <description xml:lang="bn_IN">কম্পিউটার নেটওয়ার্ক কনফিগার ও বিশ্লেষণের জন্য বিভিন্ন সরঞ্জাম।</description>
- <description xml:lang="cs">Nástroje pro konfiguraci a analýzu počítačových sítí.</description>
- <description xml:lang="de">Tools zur Konfiguration und Analyse von Computer-Netzwerken.</description>
- <description xml:lang="es">Herramientas para configurar y analizar redes informáticas.</description>
- <description xml:lang="fr">Outils pour configurer et analyser des réseaux informatiques.</description>
- <description xml:lang="gu">કમ્પ્યૂટર નેટવર્કોનું પૃથ્થકરણ અને રૂપરેખાંકિત કરવા માટેનાં સાધનો.</description>
- <description xml:lang="hi">कंप्यूटर संजाल के विन्यास और विश्लेषण के लिए औज़ार.</description>
- <description xml:lang="ia">Utensiles pro configurar e analysar retes de computatores.</description>
- <description xml:lang="it">Tool per la configurazione e l'analisi delle reti del computer.</description>
- <description xml:lang="ja">コンピュータネットワークを設定し分析するためのツール</description>
- <description xml:lang="kn">ಗಣಕದ ಜಾಲಬಂಧಗಳನ್ನು ಸಂರಚಿಸಲು ಹಾಗು ವಿಶ್ಲೇಷಿಸಲು ಸಲುವಾಗಿನ ಉಪಕರಣಗಳು.</description>
- <description xml:lang="ko">컴퓨터 네트워크를 설정하고 분석하기 위한 도구.</description>
- <description xml:lang="ml">കമ്പ്യൂട്ടര്‍ നെറ്റ്‌വര്‍ക്കുകള്‍ ക്രമീകരിക്കുന്നതിനും നിരീക്ഷിക്കുന്നതിനുമുള്ള ഉപകരണങ്ങള്‍.</description>
- <description xml:lang="mr">कम्पुटर नेटवर्कस् संरचीत व विश्लेषीत करण्यासाठी साधने.</description>
- <description xml:lang="or">କମ୍ପୁଟର ନେଟୱର୍କକୁ ବିନ୍ୟାସ ଏବଂ ବିଶ୍ଳେଷଣ କରିବା ପାଇଁ ସାଧନଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">ਕੰਪਿਊਟਰ ਨੈੱਟਵਰਕ ਸੰਰਚਿਤ ਅਤੇ ਪੜਤਾਲ ਕਰਨ ਲਈ ਟੂਲ।</description>
- <description xml:lang="pl">Narzędzia do konfigurowania i analizowania sieci komputerowych.</description>
- <description xml:lang="pt_BR">Ferramentas para configurar e analizar rede de computador.</description>
- <description xml:lang="ru">Средства конфигурации и анализа компьютерных сетей.</description>
- <description xml:lang="sv">Verktyg för att konfigurera och analysera datornätverk.</description>
- <description xml:lang="ta">கணினி பிணையங்களை கட்டமைக்க மற்றும் ஆய்வுசெய்யவதற்கான கருவிகள்.</description>
- <description xml:lang="te">కంప్యూటర్ నెట్వర్కులను ఆకృతీకరించుటకు మరియు విశ్లేషించుటకు సాధనములు.</description>
- <description xml:lang="uk">Програми для налаштування та аналізу комп’ютерних мереж.</description>
- <description xml:lang="zh_CN">配置和分析计算机网络的工具。</description>
- <description xml:lang="zh_TW">配置和分析電腦網路的工具。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">tcpdump</packagereq>
- <packagereq type="default">libreswan</packagereq>
- <packagereq type="default">nmap-ncat</packagereq>
- <packagereq type="default">socat</packagereq>
- <packagereq type="optional">arptables</packagereq>
- <packagereq type="optional">arpwatch</packagereq>
- <packagereq type="optional">dnssec-trigger</packagereq>
- <packagereq type="optional">dropwatch</packagereq>
- <packagereq type="optional">ebtables</packagereq>
- <packagereq type="optional">ipset</packagereq>
- <packagereq type="optional">iptraf-ng</packagereq>
- <packagereq type="optional">iptstate</packagereq>
- <packagereq type="optional">lksctp-tools</packagereq>
- <packagereq type="optional">mipv6-daemon</packagereq>
- <packagereq type="optional">mrtg</packagereq>
- <packagereq type="optional">netlabel_tools</packagereq>
- <packagereq type="optional">netsniff-ng</packagereq>
- <packagereq type="optional">NetworkManager-openswan</packagereq>
- <packagereq type="optional">nmap</packagereq>
- <packagereq type="optional">stunnel</packagereq>
- <packagereq type="optional">wireshark</packagereq>
- <packagereq type="optional">wireshark-gnome</packagereq>
- </packagelist>
- </group>
- <group>
- <id>networkmanager-submodules</id>
- <name>Common NetworkManager submodules</name>
- <description>This group contains NetworkManager submodules that are commonly used, but may not be wanted in some streamlined configurations.</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="default">NetworkManager-bluetooth</packagereq>
- <packagereq type="default">NetworkManager-wifi</packagereq>
- <packagereq type="default">NetworkManager-wwan</packagereq>
- </packagelist>
- </group>
- <group>
- <id>office-suite</id>
- <name>Office Suite and Productivity</name>
- <name xml:lang="as">কাৰ্যালয় গোট আৰু কাৰ্য্যক্ষমতা</name>
- <name xml:lang="bn">অফিস স্যুট ও কর্মক্ষমতা</name>
- <name xml:lang="bn_IN">অফিস স্যুট ও কর্মক্ষমতা</name>
- <name xml:lang="cs">Kancelářské aplikace</name>
- <name xml:lang="de">Büro-Suite und Produktivität</name>
- <name xml:lang="es">Office Suite y Productividad</name>
- <name xml:lang="fr">Suite de bureautique et productivité</name>
- <name xml:lang="gu">ઓફિસ સુટ અને ઉત્પાદકતા</name>
- <name xml:lang="hi">ऑफिस सूइट और उत्पादकता</name>
- <name xml:lang="ia">Applicationes de officio e productivitate</name>
- <name xml:lang="it">Suite d'ufficio e Produttività</name>
- <name xml:lang="ja">オフィススイートと生産性</name>
- <name xml:lang="kn">ಆಫೀಸ್ ಸೂಟ್ ಹಾಗು ಉತ್ಪಾದಕತೆ</name>
- <name xml:lang="ko">오피스 스위트/생산성</name>
- <name xml:lang="ml">ഓഫീസ് സ്യൂട്ടും പ്രൊഡക്ടിവിറ്റിയും</name>
- <name xml:lang="mr">ऑफिस स्युट व प्रोडक्टिवीटी</name>
- <name xml:lang="or">ଅଫିସ ଅନୁଗାମୀ ଏବଂ ଉତ୍ପାଦନ</name>
- <name xml:lang="pa">ਦਫਤਰੀ ਸੂਟ ਅਤੇ ਉਤਪਾਦਨ</name>
- <name xml:lang="pl">Biuro i praca biurowa</name>
- <name xml:lang="pt_BR">Conjunto Office e Produtividade</name>
- <name xml:lang="ru">Офисный комплект</name>
- <name xml:lang="sv">Kontorssvit och produktivitet</name>
- <name xml:lang="ta">அலுவலகம் பரிவாரம் மற்றும் உற்பத்தி திறன்</name>
- <name xml:lang="te">ఆఫీస్ స్యూట్ మరియు ఉత్పాదకత</name>
- <name xml:lang="uk">Офісні комплекси і окремі програми</name>
- <name xml:lang="zh_CN">办公套件和生产率</name>
- <name xml:lang="zh_TW">辦公軟體和生產軟體</name>
- <description>A full-purpose office suite, and other productivity tools.</description>
- <description xml:lang="as">সম্পূৰ্ণ কাৰ্য্যক্ষমতা বিশিষ্ট কাৰ্যালয় গোট আৰু অন্যান্য নিৰ্মাণকাৰ্য্যৰ সামগ্ৰী।</description>
- <description xml:lang="bn">সম্পূর্ণ কর্মক্ষমতা বিশিষ্ট অফিস স্যুট ও অন্যান্য নির্মাণকাজের সামগ্রী।</description>
- <description xml:lang="bn_IN">সম্পূর্ণ কর্মক্ষমতা বিশিষ্ট অফিস স্যুট ও অন্যান্য নির্মাণকাজের সামগ্রী।</description>
- <description xml:lang="cs">Univerzální kancelářský balík a další užitečné nástroje.</description>
- <description xml:lang="de">Eine Vollzweck-Office-Suite und sonstige Produktivitäts-Tools.</description>
- <description xml:lang="es">Un propósito total de office suite y otras herramientas de productividad.</description>
- <description xml:lang="fr">Suite bureautique complète et autres outils de productivité.</description>
- <description xml:lang="gu">સંપૂર્ણ-હેતુ માટે ઓફિસ સુટ, અને બીજા ઉત્પાદકતા સાધનો.</description>
- <description xml:lang="hi">एक पूर्ण उद्देश्यीय ऑफिस सूइट, और अन्य उत्पादकता औज़ार.</description>
- <description xml:lang="ia">Un insimul complete del applicationes de officio e altere utensiles pro le productivitate.</description>
- <description xml:lang="it">Una suite d'ufficio per tutti gli scopi ed altri tool di produttività.</description>
- <description xml:lang="ja">全目的対応のオフィススイートおよびその他生産性ツール</description>
- <description xml:lang="kn">ಸಂಪೂರ್ಣ ಸಜ್ಜಿತವಾದ ಆಫೀಸ್ ಸೂಟ್, ಹಾಗು ಇತರೆ ಉತ್ಪಾದನಾ ಉಪಕರಣಗಳು.</description>
- <description xml:lang="ko">완전한 오피스 스위트와 다른 생산성 도구들.</description>
- <description xml:lang="ml">പൂര്‍ണ്ണ ആവശ്യങ്ങള്‍ക്കുള്ള ഓഫീസ് സ്യൂട്ടും മറ്റ് പ്രൊഡക്ടിവിറ്റി ഉപകരണങ്ങളും.</description>
- <description xml:lang="mr">संपूर्णतया-उपयोगी ऑफिस संच, व इतर उपयोगी साधने.</description>
- <description xml:lang="or">ଗୋଟିଏ ସମ୍ପୂର୍ଣ୍ଣ-ଉପଯୋଗୀ ଅଫିସ ଅନୁଗାମୀ, ଏବଂ ଅନ୍ୟାନ୍ୟ ଉତ୍ପାଦନ ମୂଳକ ସାଧନଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">ਇੱਕ ਸੰਪੂਰਨ ਦਫਤਰ ਸੈੱਟ, ਅਤੇ ਹੋਰ ਉਤਪਾਦਕੀ ਜੰਤਰ।</description>
- <description xml:lang="pl">Pakiet biurowy i inne narzędzia produkcyjne.</description>
- <description xml:lang="pt_BR">Um conjunto de office totalmente designado e outras ferramentas de produtividade.</description>
- <description xml:lang="ru">Многофункциональный комплект офисных приложений.</description>
- <description xml:lang="sv">En kontorssvit för alla ändamål, och andra produktivitetsverktyg.</description>
- <description xml:lang="ta">ஒரு முழு-செயல்முறை அலுவக சூழல், மற்றும் மற்ற தயாரிப்பு கருவிகள்.</description>
- <description xml:lang="te">ఒక పూర్తి-ప్రయోజనాత్మక ఆఫీస్ సూట్, మరియు యితర వుత్పాదక సాధనములు.</description>
- <description xml:lang="uk">Комплекс офісних програм широкого призначення.</description>
- <description xml:lang="zh_CN">全套办公套件以及其它产品工具。</description>
- <description xml:lang="zh_TW">完整用途的辦公軟體套件,以及其它生產用途的工具。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="conditional" requires="gnome-session">gnome-documents</packagereq>
- <packagereq type="default">libreoffice-calc</packagereq>
- <packagereq type="default">libreoffice-draw</packagereq>
- <packagereq type="default">libreoffice-emailmerge</packagereq>
- <packagereq type="default">libreoffice-graphicfilter</packagereq>
- <packagereq type="default">libreoffice-impress</packagereq>
- <packagereq type="default">libreoffice-math</packagereq>
- <packagereq type="default">libreoffice-writer</packagereq>
- <packagereq type="default">unoconv</packagereq>
- <packagereq type="optional">libreoffice-base</packagereq>
- <packagereq type="optional">libreoffice-ogltrans</packagereq>
- <packagereq type="optional">libreoffice-pyuno</packagereq>
- <packagereq type="optional">libreoffice-wiki-publisher</packagereq>
- </packagelist>
- </group>
- <group>
- <id>performance</id>
- <name>Performance Tools</name>
- <name xml:lang="as">কাৰ্য্যক্ষমতা সম্বন্ধীয় সঁজুলিসমূহ</name>
- <name xml:lang="bn">কর্মক্ষমতা সম্বন্ধীয় সরঞ্জাম</name>
- <name xml:lang="bn_IN">কর্মক্ষমতা সম্বন্ধীয় সরঞ্জাম</name>
- <name xml:lang="cs">Nástroje pro správu výkonu</name>
- <name xml:lang="de">Performanz-Tools</name>
- <name xml:lang="es">Herramientas de rendimiento</name>
- <name xml:lang="fr">Outils de performance</name>
- <name xml:lang="gu">પ્રભાવ સાધનો</name>
- <name xml:lang="hi">प्रदर्शन औजार</name>
- <name xml:lang="ia">Instrumentos de rendimento</name>
- <name xml:lang="it">Tool di prestazione</name>
- <name xml:lang="ja">パフォーマンスツール</name>
- <name xml:lang="kn">ಕಾರ್ಯನಿರ್ವಾಹಣಾ ಉಪಕರಣಗಳು</name>
- <name xml:lang="ko">성능 도구</name>
- <name xml:lang="ml">പ്രവര്‍ത്തന ഉപകരണങ്ങള്‍</name>
- <name xml:lang="mr">क्षमता साधने</name>
- <name xml:lang="or">କାର୍ଯ୍ୟକ୍ଷମତା ସାଧନମାନ</name>
- <name xml:lang="pa">ਕਾਰਜਕੁਸ਼ਲਤਾ ਸੰਦ</name>
- <name xml:lang="pl">Narzędzia wydajności</name>
- <name xml:lang="pt_BR">Ferramentas de desempenho</name>
- <name xml:lang="ru">Средства контроля производительности</name>
- <name xml:lang="sv">Prestandaverktyg</name>
- <name xml:lang="ta">செயற்படுத்தக்கூடிய கருவிகள்.</name>
- <name xml:lang="te">పనితనపు సాధనములు</name>
- <name xml:lang="uk">Підтримання швидкодії</name>
- <name xml:lang="zh_CN">性能工具</name>
- <name xml:lang="zh_TW">效能工具</name>
- <description>Tools for diagnosing system and application-level performance problems.</description>
- <description xml:lang="as">চিস্টেম আৰু এপ্লিকেচন স্তৰত কাৰ্য্যক্ষমতা সংক্ৰান্ত সমস্যাৰ কাৰণ নিৰ্ণয় কৰাৰ বিভিন্ন সঁজুলিসমূহ।</description>
- <description xml:lang="bn">সিস্টেম ও অ্যাপ্লিকেশন স্তরে কর্মক্ষমতা সংক্রান্ত সমস্যার কারণনির্ণয় করার বিভিন্ন সরঞ্জাম।</description>
- <description xml:lang="bn_IN">সিস্টেম ও অ্যাপ্লিকেশন স্তরে কর্মক্ষমতা সংক্রান্ত সমস্যার কারণনির্ণয় করার বিভিন্ন সরঞ্জাম।</description>
- <description xml:lang="cs">Nástroje pro diagnostiku potíží s výkonem na úrovni aplikací a systému.</description>
- <description xml:lang="de">Tools für die Diagnose von Performanzproblemen auf System- und Applikationslevel.</description>
- <description xml:lang="es">Herramientas para sistemas de diagnóstico y problemas de rendimiento a nivel de aplicación.</description>
- <description xml:lang="fr">Outils pour diagnostiquer le système et les problèmes de performance au niveau des applications.</description>
- <description xml:lang="gu">સિસ્ટમ અને કાર્યક્રમ-સ્તર પ્રભાવ સમસ્યાઓનું નિદારન કરવા માટે સાધનો.</description>
- <description xml:lang="hi">तंत्र और अनुप्रयोग स्तर के प्रदर्शन की समस्या के निदान के लिए औज़ार.</description>
- <description xml:lang="ia">Instrumentos pro diagnosticar problemas in le rendimento del systema o de applicationes.</description>
- <description xml:lang="it">Tool per la diagnosi dei problemi di prestazione del sistema e livello-applicazione.</description>
- <description xml:lang="ja">システムおよびアプリケーションレベルのパフォーマンス問題を分析するツールです。</description>
- <description xml:lang="kn">ವ್ಯವಸ್ಥೆಯ ಹಾಗು ಅನ್ವಯ ಮಟ್ಟದ ಕಾರ್ಯನಿರ್ವಹಣೆಯಲ್ಲಿ ಉಂಟಾಗುವ ತೊಂದರೆಗಳನ್ನು ಪತ್ತೆ ಮಾಡುವ ಉಪಕರಣಗಳು.</description>
- <description xml:lang="ko">시스템과 어플리케이션 수준의 성능 문제를 진단하기 위한 도구.</description>
- <description xml:lang="ml">സിസ്റ്റത്തിനും പ്രയോഗത്തിനുമുള്ള പ്രവര്‍ത്തന തകരാറുകള്‍ കണ്ടുപിടിക്കുന്നതിനുള്ള പ്രയോഗങ്ങള്‍.</description>
- <description xml:lang="mr">प्रणाली व ऍप्लिकेशन-स्तरीय क्षमता अडचणींच्या विश्लेषणकरीता साधने.</description>
- <description xml:lang="or">ତନ୍ତ୍ର ଏବଂ ପ୍ରୟୋଗ-ସ୍ତରୀୟ କାର୍ଯ୍ୟକ୍ଷମତା ସମସ୍ୟାଗୁଡ଼ିକୁ ବିଶ୍ଳେଷଣ କରିବା ପାଇଁ ସାଧନଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">ਸਿਸਟਮ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ-ਪੱਧਰ ਦੀਆਂ ਕਾਰਜਕੁਸ਼ਲਤਾ ਸਮੱਸਿਆਵਾਂ ਲਈ ਟੂਲ।</description>
- <description xml:lang="pl">Narzędzia do diagnozowania problemów z wydajnością na poziomie systemu i aplikacji.</description>
- <description xml:lang="pt_BR">Ferramentas para diagnosticar problemas de desempenho de sistema e nível de aplicativo.</description>
- <description xml:lang="ru">Средства диагностики системы и производительности на уровне приложений.</description>
- <description xml:lang="sv">Verktyg för diagnostik av prestandaproblem på system- och programnivå.</description>
- <description xml:lang="ta">கணினியை பரிசோதிக்க மற்றும் பயன்பாடு-மட்ட செயற்படுத்தல் சிக்கலுகளுக்கான கருவிகள்.</description>
- <description xml:lang="te">సిస్టమ్ మరియు అనువర్తన-స్థాయి పనితనపు సమస్యలను విశ్లేషించుటకు సాధనములు.</description>
- <description xml:lang="uk">Програми для діагностування проблем швидкодії системи та програмного рівня.</description>
- <description xml:lang="zh_CN">诊断系统和程序级别性能问题的工具。</description>
- <description xml:lang="zh_TW">用來為系統和應用程式層級效能問題進行診斷的工具。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">blktrace</packagereq>
- <packagereq type="mandatory">sysstat</packagereq>
- <packagereq type="default">dstat</packagereq>
- <packagereq type="default">iotop</packagereq>
- <packagereq type="default">iowatcher</packagereq>
- <packagereq type="default">latencytop</packagereq>
- <packagereq type="default">latencytop-tui</packagereq>
- <packagereq type="default">oprofile</packagereq>
- <packagereq type="default">pcp</packagereq>
- <packagereq type="default">perf</packagereq>
- <packagereq type="default">powertop</packagereq>
- <packagereq type="optional">hdparm</packagereq>
- <packagereq type="optional">iperf3</packagereq>
- <packagereq type="optional">libpfm</packagereq>
- <packagereq type="optional">oprofile-jit</packagereq>
- <packagereq type="optional">papi</packagereq>
- <packagereq type="optional">sdparm</packagereq>
- <packagereq type="optional">sg3_utils</packagereq>
- <packagereq type="optional">tuned-profiles-cpu-partitioning</packagereq>
- <packagereq type="optional">tuned-utils</packagereq>
- </packagelist>
- </group>
- <group>
- <id>perl-runtime</id>
- <name>Perl Support</name>
- <name xml:lang="as">Perl সমৰ্থন</name>
- <name xml:lang="bn">Perl সমর্থন</name>
- <name xml:lang="bn_IN">Perl সমর্থন</name>
- <name xml:lang="cs">Podpora pro Perl</name>
- <name xml:lang="de">Unterstützung für Perl</name>
- <name xml:lang="es">Soporte Perl</name>
- <name xml:lang="fr">Prise en charge Perl</name>
- <name xml:lang="gu">Perl આધાર</name>
- <name xml:lang="hi">पर्ल समर्थन</name>
- <name xml:lang="ia">Supporto de Perl</name>
- <name xml:lang="it">Supporto perl</name>
- <name xml:lang="ja">Perl のサポート</name>
- <name xml:lang="kn">Perl ಬೆಂಬಲ</name>
- <name xml:lang="ko">Perl 지원</name>
- <name xml:lang="ml">പേള്‍ പിന്തുണ</name>
- <name xml:lang="mr">पर्ल समर्थन</name>
- <name xml:lang="or">Perl ସହାୟତା</name>
- <name xml:lang="pa">Perl ਸਮਰਥਨ</name>
- <name xml:lang="pl">Obsługa Perla</name>
- <name xml:lang="pt_BR">Suporte à Perl</name>
- <name xml:lang="ru">Поддержка Perl</name>
- <name xml:lang="sv">Stöd för Perl</name>
- <name xml:lang="ta">பெரல் ஆதரவு</name>
- <name xml:lang="te">Perl మద్దతు</name>
- <name xml:lang="uk">Підтримка Perl</name>
- <name xml:lang="zh_CN">Perl 支持</name>
- <name xml:lang="zh_TW">Perl 支援</name>
- <description>Perl interfaces to common libraries and functionality.</description>
- <description xml:lang="as">সাধাৰণ লাইব্ৰেৰী আৰু কাৰ্য্যক্ষমতাৰ বাবে Perl আন্তঃপৃষ্ঠ।</description>
- <description xml:lang="bn">সাধারণ লাইব্রেরি ও কর্মক্ষমতার জন্য Perl ইন্টারফেস।</description>
- <description xml:lang="bn_IN">সাধারণ লাইব্রেরি ও কর্মক্ষমতার জন্য Perl ইন্টারফেস।</description>
- <description xml:lang="cs">Rozhraní jazyka Perl pro běžné knihovny a funkcionalitu.</description>
- <description xml:lang="de">Perl-Schnittstellen für allgemeine Bibliotheken und Funktionsweisen.</description>
- <description xml:lang="es">Interfaces de Perl para bibliotecas comunes y funcionalidad.</description>
- <description xml:lang="fr">Perl offre des interfaces pour les bibliothèques communes et les fonctionnalités.</description>
- <description xml:lang="gu">સામાન્ય લાઇબ્રેરીઓ અને કાર્યક્ષમતા માટે Perl ઇન્ટરફેસો.</description>
- <description xml:lang="hi">सामान्य लाइब्रेरी और कार्यशीलता के लिए पर्ल अंतरफलक.</description>
- <description xml:lang="ia">Interfacies Perl al bibliothecas e functionalitate commun.</description>
- <description xml:lang="it">Interfacce perk per le librerie comuni e funzionalità.</description>
- <description xml:lang="ja">一般的なライブラリや機能への Perl インターフェース。</description>
- <description xml:lang="kn">ಸಾಮಾನ್ಯ ಲೈಬ್ರರಿಗಳಿಗಾಗಿ Perl ಸಂಪರ್ಕಸಾಧನಗಳು.</description>
- <description xml:lang="ko">공통 라이브러리와 기능에 대한 Perl 인터페이스</description>
- <description xml:lang="ml">സാധാരണയുള്ള ലൈബ്രറികള്‍ക്കും പ്രവര്‍ത്തനങ്ങള്‍ക്കുമുള്ള പേള്‍ ഇന്റര്‍ഫെയിസുകള്‍.</description>
- <description xml:lang="mr">सामान्य लाइब्ररीज् व फंकशनॅलिटीकरीता Perl संवाद.</description>
- <description xml:lang="or">ସାଧାରଣ ଲାଇବ୍ରେରୀ ଏବଂ ଫଳନ ପ୍ରତି Perl ଅନ୍ତରାପୃଷ୍ଠ।</description>
- <description xml:lang="pa">ਆਮ ਲਾਇਬਰੇਰੀਆਂ ਅਤੇ ਕਾਰਜਕੁਸ਼ਲਤਾ ਲਈ Perl ਇੰਟਰਫੇਸ।</description>
- <description xml:lang="pl">Interfejsy języka Perl do wspólnych bibliotek i funkcjonalności.</description>
- <description xml:lang="pt_BR">Interfaces do Perl para bibliotecas comuns e funcionalidade.</description>
- <description xml:lang="ru">Интерфейс Perl для поддержки функциональности и общих библиотек.</description>
- <description xml:lang="sv">Perlgränssnitt till vanliga bibliotek och funktionalitet.</description>
- <description xml:lang="ta">போது நூலகங்கள் மற்றும் செயல்பாட்டிற்கான பெர்ல் இடைமுகங்கள்.</description>
- <description xml:lang="te">సాధరణ లైబ్రరీలకు మరియు ఫంక్షనాలిటికి Perl యింటర్ఫేసెస్.</description>
- <description xml:lang="uk">Інтерфейси Perl до загальних бібліотек та функціональних можливостей.</description>
- <description xml:lang="zh_CN">通用程序库和功能性的 Perl 界面。</description>
- <description xml:lang="zh_TW">通用函式庫和功能的 Perl 介面。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">perl</packagereq>
- <packagereq type="default">perl-core</packagereq>
- <packagereq type="default">perl-Crypt-SSLeay</packagereq>
- <packagereq type="default">perl-XML-Dumper</packagereq>
- <packagereq type="default">perl-XML-Grove</packagereq>
- <packagereq type="default">perl-XML-Twig</packagereq>
- <packagereq type="optional">perl-App-cpanminus</packagereq>
- <packagereq type="optional">perl-Date-Calc</packagereq>
- <packagereq type="optional">perl-Date-Manip</packagereq>
- <packagereq type="optional">perl-DateTime</packagereq>
- <packagereq type="optional">perl-DateTime-Format-DateParse</packagereq>
- <packagereq type="optional">perl-DateTime-Locale</packagereq>
- <packagereq type="optional">perl-DateTime-TimeZone</packagereq>
- <packagereq type="optional">perl-DBD-SQLite</packagereq>
- <packagereq type="optional">perl-homedir</packagereq>
- <packagereq type="optional">perl-LDAP</packagereq>
- <packagereq type="optional">perl-Mozilla-LDAP</packagereq>
- <packagereq type="optional">perl-Perl4-CoreLibs</packagereq>
- </packagelist>
- </group>
- <group>
- <id>perl-web</id>
- <name>Perl for Web</name>
- <name xml:lang="as">ৱেবৰ বাবে পাৰ্ল</name>
- <name xml:lang="bn_IN">ওয়েবের জন্য Perl</name>
- <name xml:lang="cs">Perl pro web</name>
- <name xml:lang="de">Perl fürs Web</name>
- <name xml:lang="es">Perl para Web</name>
- <name xml:lang="fr">Perl pour le web</name>
- <name xml:lang="gu">વેબ માટે Perl</name>
- <name xml:lang="hi">वेब का पर्ल</name>
- <name xml:lang="it">Perl per Web</name>
- <name xml:lang="ja">Perl - Web 向け</name>
- <name xml:lang="kn">ಜಾಲಕ್ಕಾಗಿ Perl</name>
- <name xml:lang="ko">Perl - Web 용</name>
- <name xml:lang="ml">വെബിനുള്ള പേള്‍</name>
- <name xml:lang="mr">वेबकरिता Perl</name>
- <name xml:lang="or">ୱେବ ପାଇଁ Perl</name>
- <name xml:lang="pa">ਵੈੱਬ ਲਈ ਪਰਲ</name>
- <name xml:lang="pl">Perl dla WWW</name>
- <name xml:lang="pt_BR">Perl para Web</name>
- <name xml:lang="ru">Perl для веб-разработки</name>
- <name xml:lang="ta">வலைக்கான Perl</name>
- <name xml:lang="te">వెబ్ కొరకు Perl</name>
- <name xml:lang="uk">Perl для інтернету</name>
- <name xml:lang="zh_CN">网页用 Perl</name>
- <name xml:lang="zh_TW">用於網站的 Perl</name>
- <description>Basic Perl web application support.</description>
- <description xml:lang="as">মৌলিক Perl ৱেব এপ্লিকেচন সমৰ্থন।</description>
- <description xml:lang="bn_IN">প্রাথমিক Perl ওয়েব অ্যাপ্লিকেশন সহায়তা।</description>
- <description xml:lang="cs">Podpora pro základní webové aplikace v jazyce Perl.</description>
- <description xml:lang="de">Grundlegende Unterstützung für die Perl Webanwendung.</description>
- <description xml:lang="es">Soporte de aplicaciones web en Basic Perl</description>
- <description xml:lang="fr">Prise en charge d'application web Perl de base.</description>
- <description xml:lang="gu">મૂળભૂત Perl વેબ કાર્યક્રમ આધાર.</description>
- <description xml:lang="hi">बेसिक पर्ल अनुप्रयोग समर्थन.</description>
- <description xml:lang="it">Supporto applicazione web Perl di base</description>
- <description xml:lang="ja">Perl のベーシック web アプリケーションサポートです。</description>
- <description xml:lang="kn">ಮೂಲಭೂತ Perl ಜಾಲ ಅನ್ವಯ ಬೆಂಬಲ.</description>
- <description xml:lang="ko">기본 Perl 웹 애플리케이션 지원</description>
- <description xml:lang="ml">അടിസ്ഥാന പേള്‍ വെബ് പ്രയോഗത്തിനുള്ള പിന്തുണ.</description>
- <description xml:lang="mr">बेसिक Perl वेब ॲप्लिकेशन समर्थन.</description>
- <description xml:lang="or">ସାଧାରଣ Perl ୱେବ ପ୍ରୟୋଗ ସମର୍ଥନ।</description>
- <description xml:lang="pa">ਮੁੱਢਲਾ ਪਰਲ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਸਮਰਥਨ।</description>
- <description xml:lang="pl">Podstawowa obsługa aplikacji WWW w języku Perl.</description>
- <description xml:lang="pt_BR">Suporte de Aplicativo da Web Perl Básico</description>
- <description xml:lang="ru">Базовая поддержка веб-приложений Perl.</description>
- <description xml:lang="ta">அடிப்படை Perl வலைப் பயன்பாடு ஆதரவு.</description>
- <description xml:lang="te">సాధారణ Perl వెబ్ అనువర్తన తోడ్పాటు.</description>
- <description xml:lang="uk">Базова підтримка роботи вебпрограм мовою Perl.</description>
- <description xml:lang="zh_CN">基本 Perl 网页应用程序支持。</description>
- <description xml:lang="zh_TW">基本的 Perl 網站應用程式支援。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">ImageMagick-perl</packagereq>
- <packagereq type="mandatory">perl-App-cpanminus</packagereq>
- <packagereq type="mandatory">perl-core</packagereq>
- <packagereq type="mandatory">perl-CPAN</packagereq>
- <packagereq type="mandatory">perl-CPANPLUS</packagereq>
- <packagereq type="mandatory">perl-DBD-MySQL</packagereq>
- <packagereq type="mandatory">perl-DBD-SQLite</packagereq>
- <packagereq type="mandatory">perl-LWP-Protocol-https</packagereq>
- <packagereq type="mandatory">perl-Mozilla-CA</packagereq>
- </packagelist>
- </group>
- <group>
- <id>php</id>
- <name>PHP Support</name>
- <name xml:lang="as">PHP সমৰ্থন</name>
- <name xml:lang="bn">PHP সমর্থন</name>
- <name xml:lang="bn_IN">PHP সমর্থন</name>
- <name xml:lang="cs">Podpora pro PHP</name>
- <name xml:lang="de">PHP-Unterstützung</name>
- <name xml:lang="es">Soporte para PHP</name>
- <name xml:lang="fr">Prise en charge PHP</name>
- <name xml:lang="gu">PHP આધાર</name>
- <name xml:lang="hi">पीएचपी समर्थन</name>
- <name xml:lang="ia">Supporto de PHP</name>
- <name xml:lang="it">Supporto PHP</name>
- <name xml:lang="ja">PHP サポート</name>
- <name xml:lang="kn">PHP ಬೆಂಬಲ</name>
- <name xml:lang="ko">PHP 지원</name>
- <name xml:lang="ml">പിഎച്പി പിന്തുണ</name>
- <name xml:lang="mr">PHP समर्थन</name>
- <name xml:lang="or">PHP ସହାୟତା</name>
- <name xml:lang="pa">PHP ਸਮਰਥਨ</name>
- <name xml:lang="pl">Obsługa PHP</name>
- <name xml:lang="pt_BR">Suporte PHP</name>
- <name xml:lang="ru">Поддержка PHP</name>
- <name xml:lang="sv">PHP-stöd</name>
- <name xml:lang="ta">PHP ஆதரவு</name>
- <name xml:lang="te">PHP మద్దతు</name>
- <name xml:lang="uk">Підтримка PHP</name>
- <name xml:lang="zh_CN">PHP 支持</name>
- <name xml:lang="zh_TW">PHP 支援</name>
- <description>PHP web application framework.</description>
- <description xml:lang="as">PHP ৱেব এপ্লিকেচন গাথনী</description>
- <description xml:lang="bn">PHP ওয়েব অ্যাপ্লিকেশন ফ্রেমওয়ার্ক</description>
- <description xml:lang="bn_IN">PHP ওয়েব অ্যাপ্লিকেশন ফ্রেমওয়ার্ক</description>
- <description xml:lang="cs">Prostředí pro webové aplikace v PHP</description>
- <description xml:lang="de">PHP-Web-Applikations-Framework</description>
- <description xml:lang="es">Marco de aplicación de web PHP.</description>
- <description xml:lang="fr">Framework d'application web PHP</description>
- <description xml:lang="gu">PHP વેબ કાર્યક્રમ ફ્રેમવર્ક.</description>
- <description xml:lang="hi">PHP वेब अनुप्रयोग फ्रेमवर्क.</description>
- <description xml:lang="ia">Ambiente pro le applicationes web PHP.</description>
- <description xml:lang="it">Framework per l'applicazione web PHP</description>
- <description xml:lang="ja">PHP Web アプリケーションフレームワーク。</description>
- <description xml:lang="kn">PHP ಜಾಲ ಅನ್ವಯ ಫ್ರೇಮ್‌ವರ್ಕ್.</description>
- <description xml:lang="ko">PHP 웹 어플리케이션 프레임워크.</description>
- <description xml:lang="ml">പിഎച്പി വെബ് ആപ്ലിക്കേഷന്‍ ഫ്രെയിംവര്‍ക്ക്.</description>
- <description xml:lang="mr">PHP वेब ऍप्लिकेशन फ्रेमवर्क.</description>
- <description xml:lang="or">PHP ୱେବ ପ୍ରୟୋଗ ଫ୍ରେମୱର୍କ।</description>
- <description xml:lang="pa">PHP ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਫਰੇਮਵਰਕ।</description>
- <description xml:lang="pl">Struktura aplikacji WWW PHP.</description>
- <description xml:lang="pt_BR">Estrutura de aplicativo da web PHP</description>
- <description xml:lang="ru">Средства разработки веб-приложений PHP.</description>
- <description xml:lang="sv">Webbprogramramverket PHP.</description>
- <description xml:lang="ta">PHP இணையத்தள பயன்பாடு கட்டமைப்பு.</description>
- <description xml:lang="te">PHP వెబ్ అనువర్తన ఫ్రేమ్‌వర్క్.</description>
- <description xml:lang="uk">Оболонка веб-програм PHP.</description>
- <description xml:lang="zh_CN">PHP web 应用程序框架。</description>
- <description xml:lang="zh_TW">PHP 網站應用程式框架。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">php</packagereq>
- <packagereq type="default">php-gd</packagereq>
- <packagereq type="default">php-pdo</packagereq>
- <packagereq type="default">php-pear</packagereq>
- <packagereq type="default">php-xml</packagereq>
- <packagereq type="optional">php-ldap</packagereq>
- <packagereq type="optional">php-mysql</packagereq>
- <packagereq type="optional">php-odbc</packagereq>
- <packagereq type="optional">php-pecl-memcache</packagereq>
- <packagereq type="optional">php-pgsql</packagereq>
- <packagereq type="optional">php-recode</packagereq>
- <packagereq type="optional">php-soap</packagereq>
- <packagereq type="optional">php-xmlrpc</packagereq>
- </packagelist>
- </group>
- <group>
- <id>platform-devel</id>
- <name>Platform Development</name>
- <name xml:lang="as">প্লেটফৰ্ম উন্নয়ন</name>
- <name xml:lang="bn_IN">প্ল্যাটফর্ম বিকাশ</name>
- <name xml:lang="cs">Vývoj platformy</name>
- <name xml:lang="de">Plattformentwicklung</name>
- <name xml:lang="es">Desarrollo de plataforma</name>
- <name xml:lang="fr">Développement plateforme</name>
- <name xml:lang="gu">પ્લેટફોર્મ વિકાસ</name>
- <name xml:lang="hi">प्लैटफॉर्म विकास</name>
- <name xml:lang="it">Sviluppo piattaforma</name>
- <name xml:lang="ja">プラットフォーム開発</name>
- <name xml:lang="kn">ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ವಿಕಸನ</name>
- <name xml:lang="ko">플랫폼 개발</name>
- <name xml:lang="ml">പ്ലാറ്റ്ഫോം വികസനം</name>
- <name xml:lang="mr">प्लॅटफॉर्म डेव्हलपमेंट</name>
- <name xml:lang="or">ପ୍ଲାଟଫର୍ମ ବିକାଶ</name>
- <name xml:lang="pa">ਮੰਚ ਵਿਕਾਸ</name>
- <name xml:lang="pl">Rozwijanie platformy</name>
- <name xml:lang="pt_BR">Desenvolvimento de Plataforma</name>
- <name xml:lang="ru">Средства разработки платформы</name>
- <name xml:lang="ta">இயங்கு தள உருவாக்கம்</name>
- <name xml:lang="te">ప్లాట్‌ఫాం అభివృద్ది</name>
- <name xml:lang="uk">Розробка для платформи</name>
- <name xml:lang="zh_CN">平台开发</name>
- <name xml:lang="zh_TW">平台開發</name>
- <description>Recommended development headers and libraries for developing applications to run on CentOS Linux.</description>
- <description xml:lang="as">CentOS Linux ত সঞ্চালনযোগ্য এপ্লিকেচন নিৰ্মাণৰ বাবে উপদেশিত উন্নয়ন হেডাৰ আৰু লাইব্ৰেৰী।</description>
- <description xml:lang="bn_IN">CentOS Linux এ চালানোর জন্য অ্যাপ্লিকেশন উন্নত করতে প্রস্তাবিত উন্নয়ন হেডার এবং লাইব্রেরি।</description>
- <description xml:lang="cs">Doporučené knihovny a hlavičkové soubory pro vývoj aplikací pro CentOS Linux.</description>
- <description xml:lang="de">Empfohlene Entwicklungs-Header und Bibliotheken zur Entwicklung von Anwendungen, die auf CentOS Linux laufen sollen.</description>
- <description xml:lang="es">Cabeceras de desarrollo y bibliotecas recomendadas para aplicaciones en desarrollo a ejecutarse en la plataforma de CentOS Linux.</description>
- <description xml:lang="fr">En-têtes et bibliothèques de développement recommandés pour développer des applications fonctionnant sur CentOS Linux.</description>
- <description xml:lang="gu">CentOS Linux પર ચલાવવા માટે કાર્યક્રમો વિકસાવવા માટેની આગ્રહણીય વિકાસ હેડરો અને લાઇબ્રેરીઓ.</description>
- <description xml:lang="hi">CentOS Linux पर चलने के लिए डेस्कटॉप अनुप्रयोगों के लिए विकास अनुशंसित शीर्षिका और लाइब्रेरी.</description>
- <description xml:lang="it">Librerie e intestazioni di sviluppo consigliate per lo sviluppo delle applicazioni per l'esecuzione su CentOS Linux.</description>
- <description xml:lang="ja">CentOS Linux 上で実行するアプリケーション開発向けに推奨している開発ヘッダーおよびライブラリです。</description>
- <description xml:lang="kn">CentOS Linux ನಲ್ಲಿ ಚಲಾಯಿಸಲು ಅನ್ವಯಗಳನ್ನು ವಿಕಸನಗೊಳಿಸುವುದಕ್ಕಾಗಿ ಸಲಹೆ ಮಾಡಲಾಗುವ ವಿಕಸನಾ ಹೆಡರುಗಳು ಹಾಗು ಲೈಬ್ರರಿಗಳು.</description>
- <description xml:lang="ko">CentOS Linux에서 실행되는 애플리케이션 개발 용으로 권장하는개발 헤더 및 라이브러리</description>
- <description xml:lang="ml">CentOS Linux-ല്‍ നടപ്പിലാക്കുന്നതിനുള്ള പ്രയോഗങ്ങള്‍ വികസിപ്പിയ്ക്കുന്നതിനുള്ള ഉചിതമായ വികസന ഹെഡറുകളും ലൈബ്രറികളും</description>
- <description xml:lang="mr">CentOS Linux वर चालवण्याजोगी ॲप्लिकेशन्स विकसीत करण्यासाठी शिफारसीय डेव्हलपमेंट हेडर्स आणि लाइब्ररिज.</description>
- <description xml:lang="or">CentOS Linux ସର୍ଭର ଉପରେ ପ୍ଲାଟଫର୍ମକୁ ଚଲାଇବା ପାଇଁ ପରାମର୍ଶିତ ବିକାଶ ଶୀର୍ଷକ ଏବଂ ବିକାଶଶୀଳ ପ୍ରୟୋଗଗୁଡ଼ିକ ପାଇଁ ଲାଇବ୍ରେରୀ।</description>
- <description xml:lang="pa">CentOS Linux ਉੱਤੇ ਚਲਾਉਣ ਲਈ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੇ ਵਿਕਾਸ ਲਈ ਸਿਫਾਰਸ਼ੀ ਵਿਕਾਸ ਹੈਡਰ ਅਤੇ ਲਾਇਬਰੇਰੀਆਂ।</description>
- <description xml:lang="pl">Nagłówki i biblioteki zalecane do tworzenia aplikacji uruchamianych w systemie CentOS Linux.</description>
- <description xml:lang="pt_BR">Cabeçalhos de desenvolvimento recomendado e bibliotecas para aplicativos de desenvolvimento para serem executados no CentOS Linux.</description>
- <description xml:lang="ru">Библиотеки и файлы заголовков для разработки приложений на платформе CentOS Linux.</description>
- <description xml:lang="ta">CentOS Linux இல் இயக்குவதற்கான பயன்பாடுகளை உருவாக்குவதற்கான, உருவாக்க தலைப்புகள் மற்றும் தரவகங்கள்.</description>
- <description xml:lang="te">CentOS Linux పైన నడిచే అనువర్తనాలు అభివృద్ది చేయుటకు సిఫార్సు చేసిన హెడర్లు మరియు లైబ్రరీలు.</description>
- <description xml:lang="uk">Рекомендовані бібліотеки та файли заголовків для розробки програм для платформи CentOS Linux.</description>
- <description xml:lang="zh_CN">推荐在用于开发在 CentOS Linux 中所运行应用程序的标头及程序库。</description>
- <description xml:lang="zh_TW">用來開發在 CentOS Linux 上執行的應用程式的建議開發表頭與函式庫。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">atk-devel</packagereq>
- <packagereq type="mandatory">cairo-devel</packagereq>
- <packagereq type="mandatory">dbus-devel</packagereq>
- <packagereq type="mandatory">desktop-file-utils</packagereq>
- <packagereq type="mandatory">fontconfig-devel</packagereq>
- <packagereq type="mandatory">freetype-devel</packagereq>
- <packagereq type="mandatory">glib2-devel</packagereq>
- <packagereq type="mandatory">glibc-devel</packagereq>
- <packagereq type="mandatory">gnome-common</packagereq>
- <packagereq type="mandatory">gtk2-devel-docs</packagereq>
- <packagereq type="mandatory">gtk3-devel</packagereq>
- <packagereq type="mandatory">krb5-devel</packagereq>
- <packagereq type="mandatory">libdb-devel</packagereq>
- <packagereq type="mandatory">libICE-devel</packagereq>
- <packagereq type="mandatory">libjpeg-turbo-devel</packagereq>
- <packagereq type="mandatory">libpng-devel</packagereq>
- <packagereq type="mandatory">libSM-devel</packagereq>
- <packagereq type="mandatory">libstdc++-devel</packagereq>
- <packagereq type="mandatory">libvirt-devel</packagereq>
- <packagereq type="mandatory">libvirt-java-devel</packagereq>
- <packagereq type="mandatory">libX11-devel</packagereq>
- <packagereq type="mandatory">libXext-devel</packagereq>
- <packagereq type="mandatory">libXft-devel</packagereq>
- <packagereq type="mandatory">libXi-devel</packagereq>
- <packagereq type="mandatory">libxml2-devel</packagereq>
- <packagereq type="mandatory">libXrender-devel</packagereq>
- <packagereq type="mandatory">libXt-devel</packagereq>
- <packagereq type="mandatory">libXtst-devel</packagereq>
- <packagereq type="mandatory">mesa-libGL-devel</packagereq>
- <packagereq type="mandatory">mesa-libGLU-devel</packagereq>
- <packagereq type="mandatory">mesa-libGLw-devel</packagereq>
- <packagereq type="mandatory">ncurses-devel</packagereq>
- <packagereq type="mandatory">nss-devel</packagereq>
- <packagereq type="mandatory">openldap-devel</packagereq>
- <packagereq type="mandatory">openssl-devel</packagereq>
- <packagereq type="mandatory">pam-devel</packagereq>
- <packagereq type="mandatory">pango-devel</packagereq>
- <packagereq type="mandatory">qt-devel</packagereq>
- <packagereq type="mandatory">qt3-devel</packagereq>
- <packagereq type="mandatory">qt5-qt3d-devel</packagereq>
- <packagereq type="mandatory">qt5-qtbase-mysql</packagereq>
- <packagereq type="mandatory">qt5-qtbase-odbc</packagereq>
- <packagereq type="mandatory">qt5-qtbase-postgresql</packagereq>
- <packagereq type="mandatory">qt5-qtcanvas3d</packagereq>
- <packagereq type="mandatory">qt5-qtconnectivity-devel</packagereq>
- <packagereq type="mandatory">qt5-qtdoc</packagereq>
- <packagereq type="mandatory">qt5-qtenginio-devel</packagereq>
- <packagereq type="mandatory">qt5-qtgraphicaleffects</packagereq>
- <packagereq type="mandatory">qt5-qtimageformats</packagereq>
- <packagereq type="mandatory">qt5-qtlocation-devel</packagereq>
- <packagereq type="mandatory">qt5-qtmultimedia-devel</packagereq>
- <packagereq type="mandatory">qt5-qtquickcontrols</packagereq>
- <packagereq type="mandatory">qt5-qtscript-devel</packagereq>
- <packagereq type="mandatory">qt5-qtsensors-devel</packagereq>
- <packagereq type="mandatory">qt5-qtserialport-devel</packagereq>
- <packagereq type="mandatory">qt5-qtsvg-devel</packagereq>
- <packagereq type="mandatory">qt5-qttools-devel</packagereq>
- <packagereq type="mandatory">qt5-qttranslations</packagereq>
- <packagereq type="mandatory">qt5-qtwebchannel-devel</packagereq>
- <packagereq type="mandatory">qt5-qtwebsockets-devel</packagereq>
- <packagereq type="mandatory">qt5-qtx11extras-devel</packagereq>
- <packagereq type="mandatory">qt5-qtxmlpatterns-devel</packagereq>
- <packagereq type="mandatory">redhat-lsb</packagereq>
- <packagereq type="mandatory">xorg-x11-docs</packagereq>
- <packagereq type="mandatory">zlib-devel</packagereq>
- <packagereq type="optional">libdb-cxx</packagereq>
- </packagelist>
- </group>
- <group>
- <id>platform-kvm</id>
- <name>KVM platform specific packages</name>
- <description>Virtualization utilities and drivers for KVM</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">qemu-guest-agent</packagereq>
- </packagelist>
- </group>
- <group>
- <id>platform-microsoft</id>
- <name>Hyper-v platform specific packages</name>
- <description>Virtualization utilities and drivers for Hyper-v</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="default">hyperv-daemons</packagereq>
- </packagelist>
- </group>
- <group>
- <id>platform-vmware</id>
- <name>VMware platform specific packages</name>
- <description>Virtualization utilities and drivers for VMware</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="default">open-vm-tools</packagereq>
- <packagereq type="optional">open-vm-tools-desktop</packagereq>
- </packagelist>
- </group>
- <group>
- <id>postgresql</id>
- <name>PostgreSQL Database Server</name>
- <name xml:lang="as">PostgreSQL ডাটাবেইচ চাৰ্ভাৰ</name>
- <name xml:lang="bn_IN">PostgreSQL ডেটাবেস সার্ভার</name>
- <name xml:lang="cs">Databázový server PostgreSQL</name>
- <name xml:lang="de">PostgreSQL-Datenbank-Server</name>
- <name xml:lang="es">Servidor de base de datos PostgreSQL</name>
- <name xml:lang="fr">Serveur de base de données PostgreSQL</name>
- <name xml:lang="gu">PostgreSQL ડેટાબેઝ સર્વર</name>
- <name xml:lang="hi">PostgreSQL डेटाबेस सर्वर</name>
- <name xml:lang="it">Server del database PostgreSQL</name>
- <name xml:lang="ja">PostgreSQL データベースサーバー</name>
- <name xml:lang="kn">PostgreSQL ದತ್ತಸಂಚಯ ಪೂರೈಕೆಗಣಕ</name>
- <name xml:lang="ko">PostgreSQL 데이터베이스 서버</name>
- <name xml:lang="ml">PostgreSQL ഡേറ്റാബെയിസ് സര്‍വര്‍</name>
- <name xml:lang="mr">PostgreSQL डाटाबेस सर्व्हर</name>
- <name xml:lang="or">PostgreSQL ତଥ୍ଯାଧାର ସର୍ଭର</name>
- <name xml:lang="pa">PostgreSQL ਡਾਟਾਬੇਸ ਸਰਵਰ</name>
- <name xml:lang="pl">Serwer bazy danych PostgreSQL</name>
- <name xml:lang="pt_BR">Servidor de Banco de Dados PostgreSQL</name>
- <name xml:lang="ru">Сервер PostgreSQL</name>
- <name xml:lang="ta">PostgreSQL தரவுத்தள சேவையகம்</name>
- <name xml:lang="te">PostgreSQL డాటాబేస్ సేవిక</name>
- <name xml:lang="uk">Сервер бази даних PostgreSQL</name>
- <name xml:lang="zh_CN">PostgreSQL 数据库服务器</name>
- <name xml:lang="zh_TW">PostgreSQL 資料庫伺服器</name>
- <description>The PostgreSQL SQL database server, and associated packages.</description>
- <description xml:lang="as">PostgreSQL SQL ডাটাবেইচ চাৰ্ভাৰ আৰু অন্যান্য সম্বন্ধীয় পেকেইজসমূহ।</description>
- <description xml:lang="bn">PostgreSQL SQL ডাটাবেস সার্ভার ও অন্যান্য সম্বন্ধীয় প্যাকেজ।</description>
- <description xml:lang="bn_IN">PostgreSQL SQL ডাটাবেস সার্ভার ও অন্যান্য সম্বন্ধীয় প্যাকেজ।</description>
- <description xml:lang="cs">Server SQL pro databáze PostgreSQL a další související balíčky.</description>
- <description xml:lang="de">Der PostgreSQL-SQL Datenbank-Server und verwandte Pakete.</description>
- <description xml:lang="es">El servidor de base de datos SQL Postgre SQL y paquetes asociados.</description>
- <description xml:lang="fr">Serveur SQL de base de données PostgreSQL, et paquetages associés.</description>
- <description xml:lang="gu">PostgreSQL SQL ડેટાબેઝ સર્વર, અને સંકળાયેલ પેકેજો.</description>
- <description xml:lang="hi">PostgreSQL SQL डेटाबेस सर्वर और संबद्ध संकुल.</description>
- <description xml:lang="ia">Le servitor de base de datos PostgreSQL e su pacchettos associate.</description>
- <description xml:lang="it">Server database PostgreSQL SQL e pacchetti associati.</description>
- <description xml:lang="ja">PostgreSQL データベースサーバーと関連パッケージ</description>
- <description xml:lang="kn">PostgreSQL SQL ದತ್ತಸಂಚಯ ಪೂರೈಕೆಗಣಕ, ಹಾಗು ಸಂಬಂಧಿತ ಪ್ಯಾಕೇಜುಗಳು.</description>
- <description xml:lang="ko">PostgreSQL SQL 데이터베이스 서버와 관련 패키지.</description>
- <description xml:lang="ml">PostgreSQL SQL ഡേറ്റാബെയിസ് സര്‍വറും അതിനുള്ള പാക്കേജുകളും.</description>
- <description xml:lang="mr">PostgreSQL SQL डाटाबेस सर्व्हर, व संबंधीत संकुले.</description>
- <description xml:lang="or">PostgreSQL SQL ତଥ୍ୟାଧାର ସର୍ଭର, ଏବଂ ସଂଶ୍ଳିଷ୍ଟ ପ୍ୟାକେଜମାନ।</description>
- <description xml:lang="pa">PostgreSQL SQL ਡਾਟਾਬੇਸ ਸਰਵਰ, ਅਤੇ ਸੰਬੰਧਿਤ ਪੈਕੇਜ।</description>
- <description xml:lang="pl">Serwer bazy danych SQL PostgreSQL i powiązane pakiety.</description>
- <description xml:lang="pt_BR">O servidor de banco de dados do POstgreSQL SQL, e pacotes associados.</description>
- <description xml:lang="ru">SQL-сервер базы данных PostgreSQL с набором пакетов.</description>
- <description xml:lang="sv">SQL-databasservern PostgreSQL, och tillhörande paket.</description>
- <description xml:lang="ta">PostgreSQL SQL தரவுத்தள சேவையகம், மற்றும் தொகுப்புகளுடன் தொடர்புடையுது.</description>
- <description xml:lang="te">PostgreSQL SQL డేటాబేస్ సర్వర్, మరియు సంభందిత ప్యాకేజీలు.</description>
- <description xml:lang="uk">Сервер бази даних SQL PostgreSQL та пов’язані з його роботою пакунки.</description>
- <description xml:lang="zh_CN">PostgreSQL SQL 数据库服务器以及相关软件包。</description>
- <description xml:lang="zh_TW">PostgreSQL SQL 資料庫伺服器與相聯套件。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">postgresql-server</packagereq>
- <packagereq type="default">postgresql-docs</packagereq>
- <packagereq type="optional">postgresql-contrib</packagereq>
- <packagereq type="optional">postgresql-plperl</packagereq>
- <packagereq type="optional">postgresql-plpython</packagereq>
- <packagereq type="optional">postgresql-pltcl</packagereq>
- <packagereq type="optional">postgresql-test</packagereq>
- <packagereq type="optional">rhdb-utils</packagereq>
- </packagelist>
- </group>
- <group>
- <id>postgresql-client</id>
- <name>PostgreSQL Database Client</name>
- <name xml:lang="as">PostgreSQL ডাটাবেইচ ক্লাএন্ট</name>
- <name xml:lang="bn_IN">PostgreSQL ডেটাবেস ক্লায়েন্ট</name>
- <name xml:lang="cs">Databázový klient PostgreSQL</name>
- <name xml:lang="de">PostgreSQL-Datenbank-Client</name>
- <name xml:lang="es">Cliente de base de datos PostgreSQL</name>
- <name xml:lang="fr">Client de base de données PostgreSQL</name>
- <name xml:lang="gu">PostgreSQL ડેટાબેઝ ક્લાયન્ટ</name>
- <name xml:lang="hi">PostgreSQL डेटाबेस क्लाइंट</name>
- <name xml:lang="it">Client del database PostgreSQL</name>
- <name xml:lang="ja">PostgreSQL データベースクライアント</name>
- <name xml:lang="kn">PostgreSQL ದತ್ತಸಂಚಯ ಕ್ಲೈಂಟ್</name>
- <name xml:lang="ko">PostgreSQL 데이터베이스 클라이언트</name>
- <name xml:lang="ml">PostgreSQL ഡേറ്റാബെയിസ് ക്ലയന്റ്</name>
- <name xml:lang="mr">PostgreSQL डाटाबेस क्लाएंट</name>
- <name xml:lang="or">PostgreSQL ତଥ୍ଯାଧାର କ୍ଲାଏଣ୍ଟ</name>
- <name xml:lang="pa">PostgreSQL ਡਾਟਾਬੇਸ ਕਲਾਈਂਟ</name>
- <name xml:lang="pl">Klient bazy danych PostgreSQL</name>
- <name xml:lang="pt_BR">Cliente de Banco de Dados PostgreSQL</name>
- <name xml:lang="ru">Клиент PostgreSQL</name>
- <name xml:lang="ta">PostgreSQL தரவுத்தள கிளையன்</name>
- <name xml:lang="te">PostgreSQL డాటాబేస్ క్లైంట్</name>
- <name xml:lang="uk">Клієнт бази даних PostgreSQL</name>
- <name xml:lang="zh_CN">PostgreSQL 数据库客户端</name>
- <name xml:lang="zh_TW">PostgreSQL 資料庫客戶端</name>
- <description>The PostgreSQL SQL database client, and associated packages.</description>
- <description xml:lang="as">PostgreSQL SQL ডাটাবেইচ ক্লাএন্ট আৰু অন্যান্য সম্বন্ধীয় পেকেইজসমূহ।</description>
- <description xml:lang="bn">PostgreSQL SQL ডাটাবেস ক্লায়েন্ট ও অন্যান্য সম্বন্ধীয় প্যাকেজ।</description>
- <description xml:lang="bn_IN">PostgreSQL SQL ডাটাবেস ক্লায়েন্ট ও অন্যান্য সম্বন্ধীয় প্যাকেজ।</description>
- <description xml:lang="cs">Klient SQL pro databáze PostgreSQL a další související balíčky.</description>
- <description xml:lang="de">Der PostgreSQL-SQL Datenbank-Client und verwandte Pakete.</description>
- <description xml:lang="es">El cliente de base de datos SQL Psotgre SQL y paquetes asociados.</description>
- <description xml:lang="fr">Client SQL de base de données PostgreSQL, et paquetages associés.</description>
- <description xml:lang="gu">PostgreSQL SQL ડેટાબેઝ ક્લાયન્ટ, અને સંકળાયેલ પેકેજો.</description>
- <description xml:lang="hi">PostgreSQL SQL डेटाबेस क्लाइंट और संबद्ध संकुल.</description>
- <description xml:lang="ia">Le cliente de base de datos PostgreSQL e su pacchettos associate.</description>
- <description xml:lang="it">Client database PostgreSQL SQL e pacchetti associati.</description>
- <description xml:lang="ja">PostgreSQL データベース接続クライアントと関連パッケージ</description>
- <description xml:lang="kn">PostgreSQL SQL ದತ್ತಸಂಚಯ ಕ್ಲೈಂಟ್, ಹಾಗು ಸಂಬಂಧಿತ ಪ್ಯಾಕೇಜುಗಳು.</description>
- <description xml:lang="ko">PostgreSQL SQL 데이터베이스 클라이언트와 관련 패키지.</description>
- <description xml:lang="ml">PostgreSQL SQL ഡേറ്റാബെയിസ് ക്ലയന്റും അതിനുള്ള പാക്കേജുകളും.</description>
- <description xml:lang="mr">PostgreSQL SQL डाटाबेस क्लाएंट, व संबंधीत संकुले.</description>
- <description xml:lang="or">PostgreSQL SQL ତଥ୍ୟାଧାର କ୍ଲାଏଣ୍ଟ, ଏବଂ ସଂଶ୍ଳିଷ୍ଟ ପ୍ୟାକେଜମାନ।</description>
- <description xml:lang="pa">PostgreSQL SQL ਡਾਟਾਬੇਸ ਕਲਾਂਈਟ, ਅਤੇ ਸੰਬੰਧਿਤ ਪੈਕੇਜ।</description>
- <description xml:lang="pl">Klient bazy danych SQL PostgreSQL i powiązane pakiety.</description>
- <description xml:lang="pt_BR">O cliente de banco de dados do PostgreSQL SQL, e pacotes associados.</description>
- <description xml:lang="ru">SQL-клиент базы данных PostgreSQL с набором пакетов.</description>
- <description xml:lang="sv">SQL-databasklienten PostgreSQL, och tillhörande paket.</description>
- <description xml:lang="ta">PostgreSQL SQL தரவுத்தள வாடிக்கையாளர், மற்றும் தொகுப்புகளுடன் தொடர்புடையுது.</description>
- <description xml:lang="te">PostgreSQL SQL డేటాబేస్ క్లైంట్, మరియు సంభందిత ప్యాకేజీలు.</description>
- <description xml:lang="uk">Клієнтська частина бази даних SQL PostgreSQL та пов’язані з його роботою пакунки.</description>
- <description xml:lang="zh_CN">PostgreSQL SQL 数据库客户端以及相关软件包。</description>
- <description xml:lang="zh_TW">PostgreSQL SQL 資料庫客戶端與相聯套件。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">postgresql</packagereq>
- <packagereq type="default">postgresql-odbc</packagereq>
- <packagereq type="default">PyGreSQL</packagereq>
- <packagereq type="default">python-psycopg2</packagereq>
- <packagereq type="optional">libdbi-dbd-pgsql</packagereq>
- <packagereq type="optional">perl-DBD-Pg</packagereq>
- <packagereq type="optional">postgresql-jdbc</packagereq>
- <packagereq type="optional">tcl-pgtcl</packagereq>
- </packagelist>
- </group>
- <group>
- <id>print-client</id>
- <name>Printing Client</name>
- <name xml:lang="as">প্ৰিন্টিং ক্লাএন্ট</name>
- <name xml:lang="bn_IN">মুদ্রণ ক্লায়েন্ট</name>
- <name xml:lang="cs">Tiskový klient</name>
- <name xml:lang="de">Druck-Client</name>
- <name xml:lang="es">Cliente de impresión</name>
- <name xml:lang="fr">Client d'impression</name>
- <name xml:lang="gu">છાપન ક્લાયન્ટ</name>
- <name xml:lang="hi">क्लाइंट की छपाई</name>
- <name xml:lang="it">Client di stampa</name>
- <name xml:lang="ja">印刷クライアント</name>
- <name xml:lang="kn">ಮುದ್ರಣ ಕ್ಲೈಂಟ್</name>
- <name xml:lang="ko">인쇄 클라이언트</name>
- <name xml:lang="ml">പ്രിന്റ് ചെയ്യുന്നതിനുള്ള ക്ലയന്റ്</name>
- <name xml:lang="mr">छपाई क्लाएंट</name>
- <name xml:lang="or">ମୂଦ୍ରଣ କ୍ଲାଏଣ୍ଟ</name>
- <name xml:lang="pa">ਛਪਾਈ ਕਲਾਈਂਟ</name>
- <name xml:lang="pl">Klient drukowania</name>
- <name xml:lang="pt_BR">Cliente de Impressão</name>
- <name xml:lang="ru">Клиент печати</name>
- <name xml:lang="ta">அச்சிடல் கிளையன்</name>
- <name xml:lang="te">ముద్రించు క్లైంట్</name>
- <name xml:lang="uk">Клієнт друку</name>
- <name xml:lang="zh_CN">打印客户端</name>
- <name xml:lang="zh_TW">列印客戶端</name>
- <description>Tools for printing to a local printer or a remote print server.</description>
- <description xml:lang="as">স্থানীয় প্ৰিন্টাৰৰ বা দূৰবৰ্তী প্ৰিন্ট চাৰ্ভাৰত প্ৰিন্ট কৰাৰ বাবে ব্যৱহৃত সঁজুলিসমূহ।</description>
- <description xml:lang="bn">স্থানীয় প্রিন্টার অথবা দূরবর্তী প্রিন্ট সার্ভারের মধ্যে প্রিন্ট করার জন্য ব্যবহৃত সরঞ্জাম।</description>
- <description xml:lang="bn_IN">স্থানীয় প্রিন্টার অথবা দূরবর্তী প্রিন্ট সার্ভারের মধ্যে প্রিন্ট করার জন্য ব্যবহৃত সরঞ্জাম।</description>
- <description xml:lang="cs">Nástroje pro tisk na lokálních tiskárnách nebo vzdálených tiskových serverech.</description>
- <description xml:lang="de">Tools für das Drucken auf einem lokalen oder einem entfernten Drucker-Server.</description>
- <description xml:lang="es">Herramientas para imprimir en una impresora local o un servidor de impresión remoto.</description>
- <description xml:lang="fr">Outils pour l'impression sur une imprimante locale ou sur un serveur d'impression à distance.</description>
- <description xml:lang="gu">સ્થાનિય પ્રિન્ટર અથવા દૂરસ્થ છાપન સર્વર માં છાપવા માટે સાધનો.</description>
- <description xml:lang="hi">किसी स्थानीय मुद्रक या दूरस्थ मुद्रण सर्वर में छपाई के लिए औजार.</description>
- <description xml:lang="ia">Utensiles pro imprimer sur un imprimitor local o per un servitor de impression remote.</description>
- <description xml:lang="it">Tool per la stampa su di una stampante locale o un server di stampa locale.</description>
- <description xml:lang="ja">ローカルのプリンタやリモートプリントサーバーへ印刷するためのツールです。</description>
- <description xml:lang="kn">ಒಂದು ಸ್ಥಳೀಯ ಮುದ್ರಕಕ್ಕೆ ಅಥವ ದೂರಸ್ಥ ಮುದ್ರಣ ಪೂರೈಕೆಗಣಕಕ್ಕೆ ಮುದ್ರಿಸಲು ಉಪಕರಣಗಳು.</description>
- <description xml:lang="ko">로컬 프린터와 원격 프린트 서버에 인쇄를 지원하는 도구.</description>
- <description xml:lang="ml">ഒരു ലോക്കല്‍ പ്രിന്റര്‍ അല്ലെങ്കില്‍ റിമോട്ട് പ്രിന്റ് സര്‍വറിലേക്ക് പ്രിന്റ് ചെയ്യുന്നതിനുള്ള ഉപകരണങ്ങള്‍.</description>
- <description xml:lang="mr">स्थानीय छपाईयंत्र किंवा रिमोट छपाई सर्व्हरकरीता छपाईकरीता साधने.</description>
- <description xml:lang="or">ଗୋଟିଏ ସ୍ଥାନୀୟ ମୁଦ୍ରଣୀ କିମ୍ବା ସୁଦୂର ମୁଦ୍ରଣୀ ସର୍ଭରରେ ମୁଦ୍ରଣ ପାଇଁ ସାଧନଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">ਇੱਕ ਲੋਕਲ ਪਰਿੰਟਰ ਜਾਂ ਇੱਕ ਰਿਮੋਟ ਪਰਿੰਟਰ ਤੇ ਪਰਿੰਟਿੰਗ ਲਈ ਟੂਲ।</description>
- <description xml:lang="pl">Narzędzia do drukowania za pomocą lokalnej drukarki lub zdalnego serwera druku.</description>
- <description xml:lang="pt_BR">Ferramentas para impressão em uma impressora local ou servidor de impressão remota.</description>
- <description xml:lang="ru">Средства для печати на локальном принтере или удаленном сервере печати.</description>
- <description xml:lang="sv">Verktyg för utskrift till en lokal skrivare eller fjärrskrivarserver.</description>
- <description xml:lang="ta">ஒரு உள்ளமை அச்சடிப்பான் அல்லது ஒரு தொலை அச்சு சேவையகத்தை அச்சடிப்பதற்கான கருவிகள்.</description>
- <description xml:lang="te">స్థానిక ముద్రణాయంత్రముకు లేదా రిమోట్ ముద్రణా సేవికకు ముద్రించుటకు సాధనములు.</description>
- <description xml:lang="uk">Програми для друку на локальному принтері або на віддаленому сервері друку.</description>
- <description xml:lang="zh_CN">在本地打印机和远程打印服务器中打印的工具。</description>
- <description xml:lang="zh_TW">用來列印至本機列印機或是遠端列印伺服器的工具。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">cups</packagereq>
- <packagereq type="mandatory">cups-pk-helper</packagereq>
- <packagereq type="mandatory">enscript</packagereq>
- <packagereq type="mandatory">ghostscript-cups</packagereq>
- <packagereq type="default">colord</packagereq>
- <packagereq type="default">gutenprint</packagereq>
- <packagereq type="default">gutenprint-cups</packagereq>
- <packagereq type="default">hpijs</packagereq>
- <packagereq type="default">paps</packagereq>
- <packagereq type="default">pnm2ppa</packagereq>
- <packagereq type="default">python-smbc</packagereq>
- <packagereq type="default">system-config-printer</packagereq>
- <packagereq type="default">system-config-printer-udev</packagereq>
- <packagereq type="optional">hplip</packagereq>
- <packagereq type="optional">hplip-gui</packagereq>
- <packagereq type="optional">samba-krb5-printing</packagereq>
- </packagelist>
- </group>
- <group>
- <id>print-server</id>
- <name>Print Server</name>
- <name xml:lang="as">প্ৰিন্ট চাৰ্ভাৰ</name>
- <name xml:lang="bn">প্রিন্ট সার্ভার</name>
- <name xml:lang="bn_IN">প্রিন্ট সার্ভার</name>
- <name xml:lang="cs">Tiskový server</name>
- <name xml:lang="de">Druck-Server</name>
- <name xml:lang="es">Servidor de impresión</name>
- <name xml:lang="fr">Serveur d'impressionFTP</name>
- <name xml:lang="gu">છાપન સર્વર</name>
- <name xml:lang="hi">प्रिंट सर्वर</name>
- <name xml:lang="ia">Servitor de impression</name>
- <name xml:lang="it">Server di stampa</name>
- <name xml:lang="ja">プリントサーバー</name>
- <name xml:lang="kn">ಮುದ್ರಣ ಪೂರೈಕೆಗಣಕ</name>
- <name xml:lang="ko">인쇄 서버</name>
- <name xml:lang="ml">പ്രിന്റ് സര്‍വര്‍</name>
- <name xml:lang="mr">FTP सर्व्हर</name>
- <name xml:lang="or">ମୁଦ୍ରଣୀ ସର୍ଭର</name>
- <name xml:lang="pa">ਪ੍ਰਿੰਟ ਸਰਵਰ</name>
- <name xml:lang="pl">Serwer druku</name>
- <name xml:lang="pt_BR">Servidor de Impressão</name>
- <name xml:lang="ru">Сервер печати</name>
- <name xml:lang="sv">Utskriftsserver</name>
- <name xml:lang="ta">சேவையகத்தை அச்சிடு</name>
- <name xml:lang="te">ముద్రణ సర్వర్</name>
- <name xml:lang="uk">Сервер друку</name>
- <name xml:lang="zh_CN">打印服务器</name>
- <name xml:lang="zh_TW">列印伺服器</name>
- <description>Allows the system to act as a print server.</description>
- <description xml:lang="as">চিস্টেমক এটা প্ৰিন্ট চাৰ্ভাৰ হিচাপে কাৰ্য্য কৰিবলে অনুমতি দিয়ে।</description>
- <description xml:lang="bn">প্রিন্ট সার্ভার রূপে কম্পিউটার ব্যবহারের জন্য সহায়ক।</description>
- <description xml:lang="bn_IN">প্রিন্ট সার্ভার রূপে কম্পিউটার ব্যবহারের জন্য সহায়ক।</description>
- <description xml:lang="cs">Umožňuje používat počítač jako tiskový server.</description>
- <description xml:lang="de">Ermöglicht dem System, als Drucker-Server zu fungieren.</description>
- <description xml:lang="es">Permite al sistema actuar como servidor de impresión.</description>
- <description xml:lang="fr">Permet au système d'agir comme un serveur d'impression.</description>
- <description xml:lang="gu">છાપન સર્વર તરીકે કમ કરવા માટે સિસ્ટમને પરવાનગી આપે છે.</description>
- <description xml:lang="hi">तंत्र को मुद्रण सर्वर में काम करने की स्वीकृति दें.</description>
- <description xml:lang="ia">Illo permitte al systema de ager como un servitor de impression.</description>
- <description xml:lang="it">Permette al sistema di comportarsi come server di stampa.</description>
- <description xml:lang="ja">システムがプリントサーバーとして機能できるようにします。</description>
- <description xml:lang="kn">ವ್ಯವಸ್ಥೆಯು ಒಂದು ಮುದ್ರಣ ಪೂರೈಕೆಗಣಕವಾಗಿ ನಿರ್ವಹಿಸಲು ಇದು ಅನುಮತಿಸುತ್ತದೆ.</description>
- <description xml:lang="ko">프린터 서버로 시스템이 동작하도록 허용</description>
- <description xml:lang="ml">ഒരു പ്രിന്റ് സര്‍വറാകുന്നതിനു് സിസ്റ്റത്തിനെ സഹായിക്കുന്നു.</description>
- <description xml:lang="mr">प्रणालीला छपाई सर्व्हर म्हणून कार्य करण्यास शक्य करतो.</description>
- <description xml:lang="or">ତନ୍ତ୍ର କୁ ମୂଦ୍ରଣ ସର୍ଭର ଭଳି କାର୍ଯ୍ଯ କରିବା ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ।</description>
- <description xml:lang="pa">ਸਿਸਟਮ ਨੂੰ ਪਰਿੰਟ ਸਰਵਰ ਵਜੋਂ ਕੰਮ ਕਰਨ ਲਈ ਮਦਦ ਕਰਦਾ ਹੈ।</description>
- <description xml:lang="pl">Umożliwia systemowi pracę jako serwer druku.</description>
- <description xml:lang="pt_BR">Permite que o sistema aja como servidor de impressão.</description>
- <description xml:lang="ru">Позволяет системе функционировать в качестве сервера печати.</description>
- <description xml:lang="sv">Låter systemet agera som en utskriftsserver.</description>
- <description xml:lang="ta">ஒரு அச்சு சேவையகமாக பணியாற்ற கணினியை செயல்படுத்த அனுமதிக்கவும்.</description>
- <description xml:lang="te">సిస్టమ్ ముద్రణా సర్వర్ వలె పనిచేయుటకు అనుమతించును.</description>
- <description xml:lang="uk">Надає змогу системі працювати у режимі сервера друку.</description>
- <description xml:lang="zh_CN">允许将系统作为打印服务器使用。</description>
- <description xml:lang="zh_TW">允許系統作為列印伺服器。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">cups</packagereq>
- <packagereq type="mandatory">ghostscript-cups</packagereq>
- <packagereq type="default">foomatic</packagereq>
- <packagereq type="default">foomatic-filters</packagereq>
- <packagereq type="default">gutenprint</packagereq>
- <packagereq type="default">gutenprint-cups</packagereq>
- <packagereq type="default">hpijs</packagereq>
- <packagereq type="default">paps</packagereq>
- </packagelist>
- </group>
- <group>
- <id>python-web</id>
- <name>Python</name>
- <name xml:lang="as">Python</name>
- <name xml:lang="bn_IN">Python</name>
- <name xml:lang="cs">Python</name>
- <name xml:lang="de">Python</name>
- <name xml:lang="es">Python</name>
- <name xml:lang="fr">Python</name>
- <name xml:lang="gu">Python</name>
- <name xml:lang="hi">पायथन</name>
- <name xml:lang="it">Python</name>
- <name xml:lang="ja">Python</name>
- <name xml:lang="kn">Python</name>
- <name xml:lang="ko">Python</name>
- <name xml:lang="ml">പൈഥണ്‍</name>
- <name xml:lang="mr">Python</name>
- <name xml:lang="or">Python</name>
- <name xml:lang="pa">ਪਾਇਥਨ</name>
- <name xml:lang="pl">Python</name>
- <name xml:lang="pt_BR">Python</name>
- <name xml:lang="ru">Python</name>
- <name xml:lang="ta">Python</name>
- <name xml:lang="te">Python</name>
- <name xml:lang="uk">Python</name>
- <name xml:lang="zh_CN">Python</name>
- <name xml:lang="zh_TW">Python</name>
- <description>Basic Python web application support.</description>
- <description xml:lang="as">মৌলিক Python ৱেব এপ্লিকেচন সমৰ্থন।</description>
- <description xml:lang="bn_IN">প্রাথমিক Python ওয়েব অ্যাপ্লিকেশন সহায়তা।</description>
- <description xml:lang="cs">Podpora pro základní webové aplikace v jazyce Python.</description>
- <description xml:lang="de">Grundlegende Unterstützung für die Python Webanwendung.</description>
- <description xml:lang="es">Soporte de aplicaciones web en Basic Python</description>
- <description xml:lang="fr">Prise en charge d'application web Python de base.</description>
- <description xml:lang="gu">મૂળભૂત Python વેબ કાર્યક્રમ આધાર.</description>
- <description xml:lang="hi">बेसिक पाइथन वेब अनुप्रयोग समर्थन.</description>
- <description xml:lang="it">Supporto applicazione web Python di base</description>
- <description xml:lang="ja">Python のベーシック web アプリケーションサポートです。</description>
- <description xml:lang="kn">ಮೂಲಭೂತ Python ಜಾಲ ಅನ್ವಯ ಬೆಂಬಲ.</description>
- <description xml:lang="ko">기본 Python 웹 애플리케이션 지원</description>
- <description xml:lang="ml">അടിസ്ഥാന പൈഥണ്‍ വെബ് പ്രയോഗത്തിനുള്ള പിന്തുണ.</description>
- <description xml:lang="mr">बेसिक Python वेब ॲप्लिकेशन समर्थन.</description>
- <description xml:lang="or">ମୌଳିକ Python ୱେବ ପ୍ରୟୋଗ ସହାୟତା।</description>
- <description xml:lang="pa">ਮੁੱਢਲਾ ਪਾਇਥਨ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਸਮਰਥਨ।</description>
- <description xml:lang="pl">Podstawowa obsługa aplikacji WWW w języku Python.</description>
- <description xml:lang="pt_BR">Suporte de aplicativo da Web Phyton Básico</description>
- <description xml:lang="ru">Базовая поддержка веб-приложений Python.</description>
- <description xml:lang="ta">அடிப்படை Python வலைப் பயன்பாடு ஆதரவு.</description>
- <description xml:lang="te">సాధారణ Python వెబ్ అనువర్తన తోడ్పాటు.</description>
- <description xml:lang="uk">Базова підтримка вебпрограм мовою Python.</description>
- <description xml:lang="zh_CN">基本 Python 网页应用程序支持。</description>
- <description xml:lang="zh_TW">基本的 Python 網站應用程式支援。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">freetype-devel</packagereq>
- <packagereq type="mandatory">libcurl</packagereq>
- <packagereq type="mandatory">libcurl-devel</packagereq>
- <packagereq type="mandatory">libjpeg-turbo</packagereq>
- <packagereq type="mandatory">libjpeg-turbo-devel</packagereq>
- <packagereq type="mandatory">mod_wsgi</packagereq>
- <packagereq type="mandatory">MySQL-python</packagereq>
- <packagereq type="mandatory">numpy</packagereq>
- <packagereq type="mandatory">numpy-f2py</packagereq>
- <packagereq type="mandatory">python</packagereq>
- <packagereq type="mandatory">python-magic</packagereq>
- <packagereq type="mandatory">python-psycopg2</packagereq>
- <packagereq type="mandatory">python-virtualenv</packagereq>
- </packagelist>
- </group>
- <group>
- <id>remote-desktop-clients</id>
- <name>Remote Desktop Clients</name>
- <name xml:lang="as">দূৰৰ ডেস্কটপ ক্লাএন্ট</name>
- <name xml:lang="bn">দূরবর্তী ডেস্কটপ ক্লায়েন্ট</name>
- <name xml:lang="bn_IN">দূরবর্তী ডেস্কটপ ক্লায়েন্ট</name>
- <name xml:lang="cs">Klienti pro vzdálené plochy</name>
- <name xml:lang="de">Remote-Desktop-Clients</name>
- <name xml:lang="es">Cliente de escritorio remoto</name>
- <name xml:lang="fr">Clients de bureau à distance</name>
- <name xml:lang="gu">દૂરસ્થ ડેસ્કટોપ ક્લાયન્ટો</name>
- <name xml:lang="hi">दूरस्थ डेस्कटॉप क्लाइंट</name>
- <name xml:lang="ia">Cliente de scriptorio remote</name>
- <name xml:lang="it">Client desktop remoto</name>
- <name xml:lang="ja">リモートデスクトップ接続クライアント</name>
- <name xml:lang="kn">ದೂರಸ್ಥ(ರಿಮೋಟ್) ಗಣಕ ಪರಿಸರ ಕ್ಲೈಂಟ್‌ಗಳು</name>
- <name xml:lang="ko">원격 데스크탑 클라이언트</name>
- <name xml:lang="ml">റിമോട്ട് ഡസ്ക്ടോപ്പ് ക്ലയന്റുകള്‍</name>
- <name xml:lang="mr">रिमोट डेस्कटॉप क्लाएंट्स्</name>
- <name xml:lang="or">ସୁଦୂର ଡେସ୍କଟପ କ୍ଲାଏଣ୍ଟମାନ</name>
- <name xml:lang="pa">ਰਿਮੋਟ ਡੈਸਕਟਾਪ ਕਲਾਈਂਟ</name>
- <name xml:lang="pl">Zdalni klienci środowisk graficznych</name>
- <name xml:lang="pt_BR">Clientes de Ambientes de Trabalho Remotos</name>
- <name xml:lang="ru">Клиенты удалённого рабочего стола</name>
- <name xml:lang="sv">Fjärrskrivbordsklienter</name>
- <name xml:lang="ta">தொலை பணிமேடை வாடிக்கையாளர்கள்</name>
- <name xml:lang="te">రిమోట్ డెస్కుటాప్ క్లైంట్స్</name>
- <name xml:lang="uk">Клієнти віддалених робочих столів</name>
- <name xml:lang="zh_CN">远程桌面客户端</name>
- <name xml:lang="zh_TW">遠端桌面環境客戶端</name>
- <description/>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="optional">freerdp</packagereq>
- <packagereq type="optional">kdenetwork-krdc</packagereq>
- <packagereq type="optional">spice-xpi</packagereq>
- <packagereq type="optional">tigervnc</packagereq>
- <packagereq type="optional">vinagre</packagereq>
- </packagelist>
- </group>
- <group>
- <id>remote-system-management</id>
- <name>Remote Management for Linux</name>
- <name xml:lang="as">Linux ৰ বাবে দূৰৱৰ্তী ব্যৱস্থাপনা</name>
- <name xml:lang="bn_IN">Linux এর জন্য রিমোট ব্যবস্থাপনা</name>
- <name xml:lang="cs">Vzdálená správa pro Linux</name>
- <name xml:lang="de">Remote-Verwaltung für Linux</name>
- <name xml:lang="es">Administración remota para Linux</name>
- <name xml:lang="fr">Gestion distante Linux</name>
- <name xml:lang="gu">Linux માટે દૂરસ્થ વ્યવસ્થાપન</name>
- <name xml:lang="hi">लिनक्स के लिए दूरस्थ प्रबंधन</name>
- <name xml:lang="it">Gestione remota per Linux</name>
- <name xml:lang="ja">Linux 向けリモート管理</name>
- <name xml:lang="kn">Linux ಗಾಗಿನ ದೂರಸ್ಥ ನಿರ್ವಹಣೆ</name>
- <name xml:lang="ko">Linux 용 원격 관리</name>
- <name xml:lang="ml">ലിനക്സിനുള്ള റിമോട്ട് മാനേജ്മെന്റ്</name>
- <name xml:lang="mr">Linux करिता दूरस्त व्यवस्थापन</name>
- <name xml:lang="or">Linux ପାଇଁ ସୁଦୂର ପରିଚାଳନା</name>
- <name xml:lang="pa">ਲੀਨਿਕਸ ਲਈ ਦੁਰੇਡਾ ਪ੍ਰਬੰਧਨ</name>
- <name xml:lang="pl">Zdalne zarządzanie dla systemu Linux</name>
- <name xml:lang="pt_BR">Gerenciamento Remoto para Linux</name>
- <name xml:lang="ru">Удаленное управление Linux</name>
- <name xml:lang="ta">Linux க்கான தொலைநிலை நிர்வாகம்</name>
- <name xml:lang="te">లైనక్స్ కొరకు దూరస్థ నిర్వహణ</name>
- <name xml:lang="uk">Віддалене керування для Linux</name>
- <name xml:lang="zh_CN">Linux 的远程管理</name>
- <name xml:lang="zh_TW">Linux 的遠端管理</name>
- <description>Remote management interface for CentOS Linux, including OpenLMI and SNMP.</description>
- <description xml:lang="as">OpenLMI আৰু SNMP ৰ সৈতে CentOS Linux ৰ বাবে দূৰৱৰ্তী ব্যৱস্থাপনা আন্তঃপৃষ্ঠ।</description>
- <description xml:lang="bn_IN">CentOS Linux এর জন্য রিমোট ব্যবস্থাপনা ইন্টারফেস, OpenLMI এবং SNMP সমেত।</description>
- <description xml:lang="cs">Rozhraní pro vzdálenou správu systému CentOS Linux, včetně OpenLMI a SNMP.</description>
- <description xml:lang="de">Schnittstelle zur Remote-Verwaltung für CentOS Linux, einschließlich OpenLMI und SNMP.</description>
- <description xml:lang="es">Interfaz de administración remota para CentOS Linux, incluidos OpenLMI y SNMP..</description>
- <description xml:lang="fr">Interface de gestion distante pour CentOS Linux, y compris OpenLMI et SNMP.</description>
- <description xml:lang="gu">CentOS Linux માટે દૂરસ્થ વ્યવસ્થાપન ઇન્ટરફેસ, OpenLMI અને SNMP ને સમાવીને.</description>
- <description xml:lang="hi">CentOS Linux के लिए दूरस्थ प्रबंधन अंतरफलक, जिसमें OpenLMI और SNMP शामिल हैं.</description>
- <description xml:lang="it">Interfaccia gestione remota per CentOS Linux, incluso OpenLMI e SNMP.</description>
- <description xml:lang="ja">OpenLMI and SNMP など、CentOS Linux 向けのリモート管理インターフェースです。</description>
- <description xml:lang="kn">OpenLMI ಮತ್ತು SNMP ಯೂ ಸಹ ಸೇರಿದಂತೆ, CentOS Linux ಗಾಗಿನ ದೂರಸ್ಥ ನಿರ್ವಹಣಾ ಸಂಪರ್ಕಸಾಧನ.</description>
- <description xml:lang="ko">OpenLMI 및 SNMP를 포함하여 CentOS Linux 용 원격 관리 인터페이스</description>
- <description xml:lang="ml">OpenLMI, എന്‍എന്‍എംപി ഉള്‍പ്പെടുന്ന CentOS Linux-നുള്ള വിദൂര മാനേജ്മെന്റ് ഇന്റര്‍ഫെയിസ്.</description>
- <description xml:lang="mr">CentOS Linux करिता रिमोट व्यवस्थापन संवाद, OpenLMI आणि SNMP समाविष्टीत.</description>
- <description xml:lang="or">CentOS Linux ପାଇଁ ସୁଦୂର ପରିଚାଳନା ଅନ୍ତରାପୃଷ୍ଠ, OpenLMI ଏବଂ SNMP କୁ ଅନ୍ତର୍ଭୁକ୍ତ କରି।</description>
- <description xml:lang="pa">CentOS Linux ਲਈ ਦੁਰੇਡਾ ਪ੍ਰਬੰਧਨ ਇੰਟਰਫੇਸ, OpenLMI ਅਤੇ SNMP ਸਮੇਤ।</description>
- <description xml:lang="pl">Interfejs zdalnego zarządzania dla systemu CentOS Linux, w tym OpenLMI i SNMP.</description>
- <description xml:lang="pt_BR">Interface de gerenciamento remoto para CentOS Linux, incluindo OpenLMI e SNMP.</description>
- <description xml:lang="ru">Интерфейс удаленного управления CentOS Linux, включая OpenLMI и SNMP.</description>
- <description xml:lang="ta">OpenLMI மற்றும் SNMP உள்ளிட்ட, CentOS Linux க்கான தொலைநிலை நிர்வாக இடைமுகம்.</description>
- <description xml:lang="te">CentOS Linux కొరకు దూరస్థ నిర్వహణ ఇంటర్ఫేస్, OpenLMI మరియు SNMP తో కలిపి.</description>
- <description xml:lang="uk">Інтерфейс віддаленого керування для CentOS Linux, зокрема OpenLMI та SNMP.</description>
- <description xml:lang="zh_CN">CentOS Linux 的远程管理界面,其中包含 OpenLMI 和 SNMP。</description>
- <description xml:lang="zh_TW">CentOS Linux 的遠端管理介面,包括 OpenLMI 與 SNMP。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="default">cockpit</packagereq>
- <packagereq type="default">net-snmp</packagereq>
- <packagereq type="default">net-snmp-utils</packagereq>
- <packagereq type="default">openlmi-account</packagereq>
- <packagereq type="default">openlmi-hardware</packagereq>
- <packagereq type="default">openlmi-networking</packagereq>
- <packagereq type="default">openlmi-providers</packagereq>
- <packagereq type="default">openlmi-service</packagereq>
- <packagereq type="default">openlmi-software</packagereq>
- <packagereq type="default">openlmi-storage</packagereq>
- <packagereq type="default">openslp-server</packagereq>
- <packagereq type="default">openwsman-client</packagereq>
- <packagereq type="default">tog-pegasus</packagereq>
- <packagereq type="default">wsmancli</packagereq>
- <packagereq type="optional">openlmi</packagereq>
- <packagereq type="optional">openlmi-account-doc</packagereq>
- <packagereq type="optional">openlmi-fan</packagereq>
- <packagereq type="optional">openlmi-fan-doc</packagereq>
- <packagereq type="optional">openlmi-hardware-doc</packagereq>
- <packagereq type="optional">openlmi-logicalfile</packagereq>
- <packagereq type="optional">openlmi-logicalfile-doc</packagereq>
- <packagereq type="optional">openlmi-networking-doc</packagereq>
- <packagereq type="optional">openlmi-powermanagement</packagereq>
- <packagereq type="optional">openlmi-powermanagement-doc</packagereq>
- <packagereq type="optional">openlmi-realmd</packagereq>
- <packagereq type="optional">openlmi-realmd-doc</packagereq>
- <packagereq type="optional">openlmi-service-doc</packagereq>
- <packagereq type="optional">openlmi-software-doc</packagereq>
- <packagereq type="optional">openlmi-storage-doc</packagereq>
- <packagereq type="optional">openlmi-tools</packagereq>
- <packagereq type="optional">openlmi-tools-doc</packagereq>
- <packagereq type="optional">openwsman-server</packagereq>
- <packagereq type="optional">sblim-cim-client2</packagereq>
- <packagereq type="optional">sblim-cmpi-fsvol</packagereq>
- <packagereq type="optional">sblim-cmpi-network</packagereq>
- <packagereq type="optional">sblim-cmpi-nfsv3</packagereq>
- <packagereq type="optional">sblim-cmpi-nfsv4</packagereq>
- <packagereq type="optional">sblim-cmpi-params</packagereq>
- <packagereq type="optional">sblim-cmpi-sysfs</packagereq>
- <packagereq type="optional">sblim-cmpi-syslog</packagereq>
- <packagereq type="optional">sblim-gather</packagereq>
- <packagereq type="optional">sblim-gather-provider</packagereq>
- <packagereq type="optional">sblim-indication_helper</packagereq>
- <packagereq type="optional">sblim-sfcb</packagereq>
- <packagereq type="optional">sblim-smis-hba</packagereq>
- <packagereq type="optional">sblim-wbemcli</packagereq>
- </packagelist>
- </group>
- <group>
- <id>resilient-storage</id>
- <name>Resilient Storage</name>
- <name xml:lang="as">স্থিতিস্থাপক সংৰক্ষণ</name>
- <name xml:lang="bn">রেসিলিয়েন্ট সংগ্রহস্থল</name>
- <name xml:lang="bn_IN">রেসিলিয়েন্ট সংগ্রহস্থল</name>
- <name xml:lang="cs">Odolné úložiště</name>
- <name xml:lang="de">Resilient-Speicher</name>
- <name xml:lang="es">Almacenamiento resistente</name>
- <name xml:lang="fr">Espace de stockage résilient</name>
- <name xml:lang="gu">રિઝિલિઅન્ટ સંગ્રહ</name>
- <name xml:lang="hi">रेसीलियेंट भंडार</name>
- <name xml:lang="it">Resilient Storage</name>
- <name xml:lang="ja">Resilient Storage</name>
- <name xml:lang="kn">ಮೊದಲಿನಂತಾಗಬಲ್ಲ ಶೇಖರಣೆ</name>
- <name xml:lang="ko">내결함성 스토리지</name>
- <name xml:lang="ml">റീസീലിയന്റ് സംഭരണം</name>
- <name xml:lang="mr">रिझिलिअंट स्टोरेज</name>
- <name xml:lang="or">ପୁଞ୍ଜୀଭୂତ ସଂରକ୍ଷଣ</name>
- <name xml:lang="pa">ਰੈਜ਼ੀਲੀਏਂਟ ਭੰਡਾਰਣ</name>
- <name xml:lang="pl">Elastyczne przechowywanie danych</name>
- <name xml:lang="pt_BR">Armazenamento Flexível</name>
- <name xml:lang="ru">Надёжное хранилище</name>
- <name xml:lang="ta">ரீசைலண்ட் சேமிப்பகம்.</name>
- <name xml:lang="te">రెసిలియంట్ నిల్వ</name>
- <name xml:lang="uk">Надійне сховище</name>
- <name xml:lang="zh_CN">弹性存储</name>
- <name xml:lang="zh_TW">高彈性的儲存裝置</name>
- <description>Clustered storage, including the GFS2 file system.</description>
- <description xml:lang="as">GFS2 ফাইলচিস্টেম সহ থুপ সংৰক্ষণ।</description>
- <description xml:lang="bn_IN">GFS2 ফাইল-সিস্টেম সহ ক্লাস্টার সংগ্রহস্থল।</description>
- <description xml:lang="cs">Úložný cluster, včetně souborového systému GFS2.</description>
- <description xml:lang="de">Clustered-Storage, inklusive GFS2-Dateisystem.</description>
- <description xml:lang="es">Almacenaje agrupado, incluido el sistema de archivos GFS2.</description>
- <description xml:lang="fr">Stockage en cluster, y compris le système de fichiers GFS2.</description>
- <description xml:lang="gu">GFS2 ફાઇલ સિસ્ટમને સમાવતું ક્લસ્ટરવાળું સ્ટોરેજ.</description>
- <description xml:lang="hi">क्लस्टर किया भंडार, GFS2 फाइलसिस्टम के साथ.</description>
- <description xml:lang="it">Storage clusterizzato incluso il filesystem GFS2.</description>
- <description xml:lang="ja">GFS2 ファイルシステムなど、クラスタ化したストレージです。</description>
- <description xml:lang="kn">GFS2 ಕಡತವ್ಯವಸ್ಥೆಯನ್ನೂ ಒಳಗೊಂಡಿರುವಂತೆ, ಕ್ಲಸ್ಟರ್ ಶೇಖರಣೆ.</description>
- <description xml:lang="ko">GFS2 파일시스템이 들어 있는 클러스터 스토리지입니다.</description>
- <description xml:lang="ml">ജിഎഫ്എസ്2 ഫയല്‍ സിസ്റ്റം ഉള്‍പ്പടെയുള്ള ക്ലസ്റ്റര്‍ഡ് സംഭരണം.</description>
- <description xml:lang="mr">क्लस्टर्ज स्टोरेज, GFS2 फाइल प्रणाली समाविष्टीत.</description>
- <description xml:lang="or">କ୍ଲଷ୍ଟର ସଂରକ୍ଷଣ, GFS2 ଫାଇଲତନ୍ତ୍ରକୁ ଅନ୍ତର୍ଭୁକ୍ତ କରି।</description>
- <description xml:lang="pa">ਕਲੱਸਟਰ ਕੀਤਾ ਭੰਡਾਰਣ, GFS2 ਫਾਈਲ ਸਿਸਟਮ ਸਮੇਤ।</description>
- <description xml:lang="pl">Przechowywanie danych w klastrach, w tym system plików GFS2.</description>
- <description xml:lang="pt_BR">Armazenamento em clusters, incluindo o filesystem GFS2.</description>
- <description xml:lang="ru">Кластерное хранилище и GFS2.</description>
- <description xml:lang="ta">GFS2 கோப்பு முறைமை உள்ளிட்ட கிளஸ்ட்டர்டு சேமிப்பகம்.</description>
- <description xml:lang="te">క్లస్టర్డ్ నిల్వ, GFS2 ఫైల్ సిస్టమ్‌తో కలిపి.</description>
- <description xml:lang="uk">Кластерне сховище, зокрема файлова система GFS2.</description>
- <description xml:lang="zh_CN">集群存储,其中包括 GFS2 文件系统。</description>
- <description xml:lang="zh_TW">叢集儲存裝置,包括 GFS2 檔案系統。</description>
- <default>true</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">gfs2-utils</packagereq>
- <packagereq type="mandatory">lvm2-cluster</packagereq>
- <packagereq type="default">dlm</packagereq>
- <packagereq type="optional">cmirror</packagereq>
- <packagereq type="optional">ctdb</packagereq>
- </packagelist>
- </group>
- <group>
- <id>ruby-runtime</id>
- <name>Ruby Support</name>
- <name xml:lang="as">Ruby সমৰ্থন</name>
- <name xml:lang="bn_IN">Ruby সমর্থন</name>
- <name xml:lang="cs">Podpora pro Ruby</name>
- <name xml:lang="de">Ruby-Unterstützung</name>
- <name xml:lang="es">Soporte de Ruby</name>
- <name xml:lang="fr">Prise en charge Ruby</name>
- <name xml:lang="gu">Ruby આધાર</name>
- <name xml:lang="hi">रूबी समर्थन</name>
- <name xml:lang="it">Supporto Ruby</name>
- <name xml:lang="ja">Ruby サポート</name>
- <name xml:lang="kn">ರೂಬಿ ಬೆಂಬಲ</name>
- <name xml:lang="ko">Ruby 지원</name>
- <name xml:lang="ml">റൂബി പിന്തുണ</name>
- <name xml:lang="mr">रूबि समर्थन</name>
- <name xml:lang="or">Ruby ସହାୟତା</name>
- <name xml:lang="pa">ਰੂਬੀ ਸਮਰਥਨ</name>
- <name xml:lang="pl">Obsługa języka Ruby</name>
- <name xml:lang="pt_BR">Suporte Ruby</name>
- <name xml:lang="ru">Поддержка Ruby</name>
- <name xml:lang="ta">ரூபி ஆதரவு</name>
- <name xml:lang="te">Ruby తోడ్పాటు</name>
- <name xml:lang="uk">Підтримка Ruby</name>
- <name xml:lang="zh_CN">Ruby 支持</name>
- <name xml:lang="zh_TW">支援 Ruby</name>
- <description>Ruby interfaces to common libraries and functionality.</description>
- <description xml:lang="as">সাধাৰণ লাইব্ৰেৰীসমূহ আৰু কাৰ্য্যকৰীতালে Ruby আন্তঃপৃষ্ঠসমূহ।</description>
- <description xml:lang="bn_IN">সাধারণ লাইব্রেরি ও কাজের জন্য ব্যবহারযোগ্য Ruby ইন্টারফেস।</description>
- <description xml:lang="cs">Rozhraní jazyka Ruby pro běžné knihovny a funkcionalitu.</description>
- <description xml:lang="de">Ruby-Schnittstellen zu gemeinsamen Bibliotheken und Funktionalitäten.</description>
- <description xml:lang="es">Interfaces de Ruby para funcionalidad y bibliotecas comunes.</description>
- <description xml:lang="fr">Interfaces Ruby des bibliothèques communes et fonctionnalité.</description>
- <description xml:lang="gu">સામાન્ય લાઇબ્રેરીઓ અને કાર્યક્ષમતા માટે Ruby ઇન્ટરફેસ.</description>
- <description xml:lang="hi">सामान्य लाइब्रेरी और कार्यशीलता का रूबी अंतरफलक</description>
- <description xml:lang="it">Interfacce di Ruby per le funzionalità e librerie comuni.</description>
- <description xml:lang="ja">一般的なライブラリと機能への Ruby インターフェイスです</description>
- <description xml:lang="kn">ಸಾಮಾನ್ಯ ಲೈಬ್ರರಿಗಳು ಮತ್ತು ಕ್ರಿಯಾಶೀಲನೆಗಾಗಿ ರೂಬಿ ಸಂಪರ್ಕಸಾಧನಗಳು.</description>
- <description xml:lang="ko">일반적인 라이브러리 및 기능에 대한 Ruby 인터페이스</description>
- <description xml:lang="ml">സാധാരണ ലൈബ്രറികളിലേക്കും പ്രവര്‍ത്തനങ്ങളിലേക്കുമുള്ള റൂബി ഇന്റര്‍ഫെയിസുകള്‍.</description>
- <description xml:lang="mr">कॉमन लाइब्ररिरज् व सुविधाकरिता रूबि संवाद.</description>
- <description xml:lang="or">ସାଧାରଣ ଲାଇବ୍ରେରୀ ଏବଂ କାର୍ଯ୍ୟ ପାଇଁ Ruby ଅନ୍ତରାପୃଷ୍ଠ।</description>
- <description xml:lang="pa">ਕਾਮਨ ਲਾਇਬਰੇਰੀਆਂ ਅਤੇ ਫੰਕਸ਼ਨੈਲਿਟੀਆਂ ਲਈ ਰੂਬੀ ਇੰਟਰਫੇਸ।</description>
- <description xml:lang="pl">Interfejsy Ruby dla często używanych bibliotek i funkcji.</description>
- <description xml:lang="pt_BR">Interfaces do Ruby para bibliotecas comuns e funcionalidade</description>
- <description xml:lang="ru">Интерфейсы Ruby для общих библиотек</description>
- <description xml:lang="ta">பொதுவான தரவகங்களுக்கும் செயலம்சங்களுக்கும் ரூபி இடைமுகங்கள்.</description>
- <description xml:lang="te">ఉమ్మడి లైబ్రరీలు మరియు ప్రమేయత కొరకు Ruby యింటర్ఫేసులు.</description>
- <description xml:lang="uk">Інтерфейси Ruby до загальних бібліотек та можливостей системи.</description>
- <description xml:lang="zh_CN">常用库和功能的 Ruby 界面。</description>
- <description xml:lang="zh_TW">Ruby 介面,連接至一般函示庫與功能。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">ruby</packagereq>
- <packagereq type="mandatory">ruby-irb</packagereq>
- <packagereq type="mandatory">rubygem-bundler</packagereq>
- </packagelist>
- </group>
- <group>
- <id>scientific</id>
- <name>Scientific Support</name>
- <name xml:lang="as">বৈজ্ঞানিক সমৰ্থন</name>
- <name xml:lang="bn_IN">বৈজ্ঞানিক সহায়তা</name>
- <name xml:lang="cs">Vědecké aplikace</name>
- <name xml:lang="de">Unterstützung für Wissenschaft</name>
- <name xml:lang="es">Soporte científico</name>
- <name xml:lang="fr">Prise en charge Scientific</name>
- <name xml:lang="gu">વૈજ્ઞાનિક આધાર</name>
- <name xml:lang="hi">वैज्ञानिक समर्थन</name>
- <name xml:lang="it">Supporto scientifico</name>
- <name xml:lang="ja">科学的サポート</name>
- <name xml:lang="kn">ವೈಜ್ಞಾನಿಕ ಬೆಂಬಲ</name>
- <name xml:lang="ko">과학기술 지원</name>
- <name xml:lang="ml">ശാസ്ത്രീയമായ പിന്തുണ</name>
- <name xml:lang="mr">वैज्ञानिक समर्थन</name>
- <name xml:lang="or">ବୈଜ୍ଞାନିକ ସହାୟତା</name>
- <name xml:lang="pa">ਵਿਗਿਆਨਕ ਸਮਰਥਨ</name>
- <name xml:lang="pl">Obsługa aplikacji naukowych</name>
- <name xml:lang="pt_BR">Suporte Científico</name>
- <name xml:lang="ru">Инженерные инструменты</name>
- <name xml:lang="ta">அறிவியல்சார்ந்த ஆதரவு</name>
- <name xml:lang="te">సైంటిఫిక్ తోడ్పాటు</name>
- <name xml:lang="uk">Підтримка наукових розробок</name>
- <name xml:lang="zh_CN">科学记数法支持</name>
- <name xml:lang="zh_TW">科學支援</name>
- <description>Tools for mathematical and scientific computations, and parallel computing.</description>
- <description xml:lang="as">গাণিতিক আৰু বৈজ্ঞানিক গণনা আৰু পেৰালেল কম্পিউটিংৰ বিভিন্ন সঁজুলিসমূহ।</description>
- <description xml:lang="bn">গাণিতিক ও বৈজ্ঞানিক গণনা এবং প্যারালেল কম্পিউটিংয়ের বিভিন্ন সরঞ্জাম।</description>
- <description xml:lang="bn_IN">গাণিতিক ও বৈজ্ঞানিক গণনা এবং প্যারালেল কম্পিউটিংয়ের বিভিন্ন সরঞ্জাম।</description>
- <description xml:lang="cs">Nástroje pro matematické a vědecké výpočty a pro paralelní výpočty.</description>
- <description xml:lang="de">Tools für mathematische und wissenschaftliche Berechnungen, sowie paralleles Rechnen.</description>
- <description xml:lang="es">Herramientas para ejecutar cálculos matemáticos y científicos, así computación paralela.</description>
- <description xml:lang="fr">Outils pour effectuer des calculs mathématiques et scientifiques, et des traitements parallèles.</description>
- <description xml:lang="gu">ગાણિતીક અને વૈજ્ઞાનિક ગણતરીઓ માટે સાધનો, અને સમાંતર ગણતરી.</description>
- <description xml:lang="hi">इस समूह में गणित और वैज्ञानिक अभिकलन और समांतर कंप्यूटिंग के लिए औज़ार.</description>
- <description xml:lang="ia">Instrumentos pro le computationes mathematic e scientific, e pro exequer computationes parallel.</description>
- <description xml:lang="it">Tool per elaborazioni matematiche e scientifiche, ed informatica parallela.</description>
- <description xml:lang="ja">数学的計算や科学的計算、並列計算のツールです。</description>
- <description xml:lang="kn">ಗಣಿತೀಯ ಹಾಗೂ ವೈಜ್ಞಾನಿಕ ಲೆಕ್ಕಗಳು ಹಾಗು ಸಮಾನಾಂತರ ಕಂಪ್ಯೂಟಿಂಗ್‌ಗಾಗಿನ ಉಪಕರಣಗಳು.</description>
- <description xml:lang="ko">수학/과학 계산과 병렬 계산을 위한 도구.</description>
- <description xml:lang="ml">ശാസ്ത്ര ഗണിത കണക്കുകള്‍ക്കും പാരലല്‍ കമ്പ്യൂട്ടിങിനുമുള്ള ഉപകരണങ്ങള്‍.</description>
- <description xml:lang="mr">या संचात गणितीय आणि वैज्ञानिक गणना आणि आलेखन, तसेच एकक रूपांतर करण्यासाठी उपयुक्त संकुलांचा समावेश होतो.</description>
- <description xml:lang="or">ଗାଣିତିକ ଏବଂ ବୈଜ୍ଞାନିକ ଗଣନା ପାଇଁ ସାଧନ, ଏବଂ ସମାନ୍ତରାଳ ମାନାଙ୍କନ।</description>
- <description xml:lang="pa">ਗਣਿਤ ਅਤੇ ਵਿਗਿਆਨਿਕ ਕੰਪਿਊਟੇਸ਼ਨਾਂ, ਅਤੇ ਪੈਰਲਲ ਕੰਪਿਊਟਿੰਗ ਲਈ ਟੂਲ।</description>
- <description xml:lang="pl">Narzędzia do wykonywania obliczeń matematycznych i naukowych oraz obliczeń równoległych.</description>
- <description xml:lang="pt_BR">Ferramentas para computações científicas e matemática, e computação paralela.</description>
- <description xml:lang="ru">Средства для математических и научных вычислений и преобразований, а также параллельных вычислений.</description>
- <description xml:lang="sv">Verktyg för matematiska och vetenskapliga beräkningar, och parallellberäkningar.</description>
- <description xml:lang="ta">கணிதத்திற்கான கருவிகள் மற்றும் அறிவியல் கணக்கீடுகள், மற்றும் இணையான மதிப்பிடுதல்.</description>
- <description xml:lang="te">గణిత మరియు శాస్త్రీయ లెక్కింపుల కొరకు, మరియు సమాంతర కంప్యూటింగ్ కొరకు సాధనములు.</description>
- <description xml:lang="uk">Програми для математичних та інших наукових обчислень, а також розподілених обчислень.</description>
- <description xml:lang="zh_CN">用于数学和科学计算以及平行计算的工具。</description>
- <description xml:lang="zh_TW">用來執行數學與科學的運算,以及平行運算的工具。</description>
- <default>false</default>
- <uservisible>true</uservisible>
- <packagelist>
- <packagereq type="optional">atlas</packagereq>
- <packagereq type="optional">fftw</packagereq>
- <packagereq type="optional">fftw-devel</packagereq>
- <packagereq type="optional">fftw-static</packagereq>
- <packagereq type="optional">gnuplot</packagereq>
- <packagereq type="optional">gsl-devel</packagereq>
- <packagereq type="optional">lapack</packagereq>
- <packagereq type="optional">mpich-3.0-devel</packagereq>
- <packagereq type="optional">mpich-3.2-devel</packagereq>
- <packagereq type="optional">mpitests-mvapich2</packagereq>
- <packagereq type="optional">mpitests-openmpi</packagereq>
- <packagereq type="optional">mvapich2-2.0-devel</packagereq>
- <packagereq type="optional">mvapich2-2.0-doc</packagereq>
- <packagereq type="optional">mvapich2-2.0-psm-devel</packagereq>
- <packagereq type="optional">mvapich2-2.2-devel</packagereq>
- <packagereq type="optional">mvapich2-2.2-doc</packagereq>
- <packagereq type="optional">mvapich2-2.2-psm-devel</packagereq>
- <packagereq type="optional">mvapich2-2.2-psm2-devel</packagereq>
- <packagereq type="optional">numpy</packagereq>
- <packagereq type="optional">openmpi</packagereq>
- <packagereq type="optional">openmpi-devel</packagereq>
- <packagereq type="optional">scipy</packagereq>
- <packagereq type="optional">units</packagereq>
- </packagelist>
- </group>
- <group>
- <id>security-tools</id>
- <name>Security Tools</name>
- <name xml:lang="as">নিৰাপত্তা বিষয়ক সামগ্ৰীৰ সঁজুলি</name>
- <name xml:lang="bn">নিরাপত্তা বিষয়ক সামগ্রী</name>
- <name xml:lang="bn_IN">নিরাপত্তা বিষয়ক সামগ্রী</name>
- <name xml:lang="cs">Bezpečnostní nástroje</name>
- <name xml:lang="de">Sicherheits-Tools</name>
- <name xml:lang="es">Herramientas de seguridad</name>
- <name xml:lang="eu">Segurtasun tresnak</name>
- <name xml:lang="fr">Outils de sécurité</name>
- <name xml:lang="gu">સુરક્ષા સાધનો</name>
- <name xml:lang="hi">सुरक्षा औज़ार</name>
- <name xml:lang="ia">Instrumentos de securitate</name>
- <name xml:lang="it">Tool per la sicurezza</name>
- <name xml:lang="ja">セキュリティツール</name>
- <name xml:lang="kn">ಸುರಕ್ಷತಾ ಉಪಕರಣಗಳು</name>
- <name xml:lang="ko">보안 도구</name>
- <name xml:lang="ml">സുരക്ഷാ ഉപകരണങ്ങള്‍</name>
- <name xml:lang="mr">सुरक्षा साधने</name>
- <name xml:lang="or">ସୁରକ୍ଷା ଉପକରଣ</name>
- <name xml:lang="pa">ਸੁਰੱਖਿਆ ਸੰਦ</name>
- <name xml:lang="pl">Narzędzia bezpieczeństwa</name>
- <name xml:lang="pt_BR">Ferramentas de Segurança</name>
- <name xml:lang="ru">Средства безопасности</name>
- <name xml:lang="sv">Säkerhetsverktyg</name>
- <name xml:lang="ta">பாதுகாப்பு கருவிகள்</name>
- <name xml:lang="te">రక్షణ సాధనములు</name>
- <name xml:lang="uk">Засоби захисту</name>
- <name xml:lang="zh_CN">安全性工具</name>
- <name xml:lang="zh_TW">安全性工具</name>
- <description>Security tools for integrity and trust verification.</description>
- <description xml:lang="as">যথাৰ্থতা আৰু বিশ্বস্ততা পৰীক্ষাৰ বাবে ব্যৱহাৰযোগ্য নিৰাপত্তা বিষয়ক সামগ্ৰী।</description>
- <description xml:lang="bn">যথার্থতা ও বিশ্বস্ততা যাচাইয়ের জন্য ব্যবহারযোগ্য নিরাপত্তা বিষয়ক সামগ্রী।</description>
- <description xml:lang="bn_IN">যথার্থতা ও বিশ্বস্ততা যাচাইয়ের জন্য ব্যবহারযোগ্য নিরাপত্তা বিষয়ক সামগ্রী।</description>
- <description xml:lang="cs">Bezpečnostní nástroje pro kontrolu integrity a důvěryhodnosti.</description>
- <description xml:lang="de">Sicherheits-Tools zur Überprüfung der Integrität und Vertrauenswürdigkeit.</description>
- <description xml:lang="es">Herramientas de seguridad para integridad y verificación de fiabilidad.</description>
- <description xml:lang="fr">Outils de sécurité pour vérification de confiance et intégrité.</description>
- <description xml:lang="gu">વિશ્ર્વાસ ચકાસણી અને એકત્રિતા માટે સુરક્ષા સાધનો.</description>
- <description xml:lang="hi">अखंडता और भरोसा जाँच के लिए सुरक्षा औज़ार.</description>
- <description xml:lang="ia">Instrumentos de securitate pro verificar integritate e fiducia.</description>
- <description xml:lang="it">Tool di sicurezza per la verifica dei fidati ed integrità.</description>
- <description xml:lang="ja">整合性や信用を検証するセキュリティツール</description>
- <description xml:lang="kn">ಸಮಗ್ರತೆ ಹಾಗು ನಂಬಿಕೆಯ ಪರಿಶೀಲನೆಯನ್ನು ನಡೆಸುವ ಸುರಕ್ಷತಾ ಉಪಕರಣ.</description>
- <description xml:lang="ko">통합과 신뢰 검증을 위한 보안 도구</description>
- <description xml:lang="ml">പരിശോധനയ്ക്കുള്ള സുരക്ഷാ പ്രയോഗങ്ങള്‍.</description>
- <description xml:lang="mr">एकाग्रता व विश्वासर्ह तापसणी करीता सुरक्षा साधने.</description>
- <description xml:lang="or">ଅଖଣ୍ଡତା ଏବଂ ବିଶ୍ୱାସ ଯାଞ୍ଚ ପାଇଁ ସୁରକ୍ଷା ଉପକରଣ।</description>
- <description xml:lang="pa">ਇਕਸਾਰਤਾ ਅਤੇ ਭਰੋਸਾ ਜਾਂਚ ਲਈ ਸੁਰੱਖਿਆ ਸੰਦ।</description>
- <description xml:lang="pl">Narzędzia bezpieczeństwa do sprawdzania integralności i zaufania.</description>
- <description xml:lang="pt_BR">Ferramentas de segurança para integridade e verificação de confiabilidade</description>
- <description xml:lang="ru">Средства защиты для обеспечения целостности и проверки подлинности.</description>
- <description xml:lang="sv">Säkerhetsverktyg för integritets- och förtroendeverifiering.</description>
- <description xml:lang="ta">நேர்மையான மற்றும் நம்பக்கூடிய உறுதிபடுத்தலுக்கான பாதுகாப்பு கருவிகள்.</description>
- <description xml:lang="te">ఇంటిగ్రిటి మరియు ట్రస్ట్ నిర్ధారణ కొరకు రక్షణ సాధనములు</description>
- <description xml:lang="uk">Програми для захисту даних шляхом перевірки цілісності та надійності зберігання.</description>
- <description xml:lang="zh_CN">用于完整性和可信验证的安全性工具。</description>
- <description xml:lang="zh_TW">整合性和信任驗證的安全性工具。</description>
- <default>false</default>
- <uservisible>true</uservisible>
- <packagelist>
- <packagereq type="default">scap-security-guide</packagereq>
- <packagereq type="optional">aide</packagereq>
- <packagereq type="optional">hmaccalc</packagereq>
- <packagereq type="optional">openscap</packagereq>
- <packagereq type="optional">openscap-utils</packagereq>
- <packagereq type="optional">scap-security-guide-doc</packagereq>
- <packagereq type="optional">scap-workbench</packagereq>
- <packagereq type="optional">strongimcv</packagereq>
- <packagereq type="optional">tncfhh</packagereq>
- <packagereq type="optional">tpm-quote-tools</packagereq>
- <packagereq type="optional">tpm-tools</packagereq>
- <packagereq type="optional">tpm2-tools</packagereq>
- <packagereq type="optional">trousers</packagereq>
- </packagelist>
- </group>
- <group>
- <id>smart-card</id>
- <name>Smart Card Support</name>
- <name xml:lang="as">স্মাৰ্ট কাৰ্ড সমৰ্থন</name>
- <name xml:lang="bn_IN">Smart Card সহায়তা</name>
- <name xml:lang="cs">Podpora Smart card</name>
- <name xml:lang="de">Smart-Card-Unterstützung</name>
- <name xml:lang="es">Soporte para tarjeta inteligente</name>
- <name xml:lang="fr">Prise en charge Smart Card</name>
- <name xml:lang="gu">સ્માર્ટ કાર્ડ આધાર</name>
- <name xml:lang="hi">स्मार्ट कार्ड समर्थन</name>
- <name xml:lang="it">Supporto smart card</name>
- <name xml:lang="ja">スマートカードサポート</name>
- <name xml:lang="kn">ಸ್ಮಾರ್ಟ್ ಕಾರ್ಡ್ ಬೆಂಬಲ</name>
- <name xml:lang="ko">스마트카드 지원</name>
- <name xml:lang="ml">സ്മാര്‍ട്ട് കാര്‍ഡിനുള്ള പിന്തുണ</name>
- <name xml:lang="mr">स्मार्ट कार्ड समर्थन</name>
- <name xml:lang="or">ସ୍ମାର୍ଟ-କାର୍ଡ ସହାୟତା</name>
- <name xml:lang="pa">ਸਮਾਰਟ ਕਾਰਡ ਸਮਰਥਨ</name>
- <name xml:lang="pl">Obsługa smart card</name>
- <name xml:lang="pt_BR">Suporte a Smart Card</name>
- <name xml:lang="ru">Поддержка смарт-карт</name>
- <name xml:lang="ta">ஸ்மார்ட் கார்ட் ஆதரவு</name>
- <name xml:lang="te">స్మార్టు కార్డ్ తోడ్పాటు</name>
- <name xml:lang="uk">Підтримка смарт-карток</name>
- <name xml:lang="zh_CN">智能卡支持</name>
- <name xml:lang="zh_TW">智慧卡支援</name>
- <description>Support for using smart card authentication.</description>
- <description xml:lang="as">স্মাৰ্ট-কাৰ্ড অনুমোদন ব্যৱস্থা ব্যৱহাৰৰ বাবে সমৰ্থন।</description>
- <description xml:lang="bn">স্মার্ট-কার্ড অনুমোদন ব্যবস্থা ব্যবহারের জন্য সমর্থন।</description>
- <description xml:lang="bn_IN">স্মার্ট-কার্ড অনুমোদন ব্যবস্থা ব্যবহারের জন্য সমর্থন।</description>
- <description xml:lang="cs">Podpora pro používání autentizace čipovými kartami.</description>
- <description xml:lang="de">Unterstützung für die Verwendung von Smart Card Authentifikation.</description>
- <description xml:lang="es">Soporte para uso de autenticación de tarjeta inteligente.</description>
- <description xml:lang="fr">Prise en charge de l'authentification avec carte à puce.</description>
- <description xml:lang="gu">સ્માર્ટ કાર્ડ સત્તાધિકરણને વાપરવા માટે આધાર.</description>
- <description xml:lang="hi">स्मार्ट कार्ड सत्यापन के उपयोग के लिए समर्थन.</description>
- <description xml:lang="ia">Supporto pro le authentication per chip-carta.</description>
- <description xml:lang="it">Supporto per l'utilizzo dell'autenticazione delle smart card.</description>
- <description xml:lang="ja">スマートカード認証の使用に対するサポートです。</description>
- <description xml:lang="kn">ಸ್ಮಾರ್ಟ್ ಕಾರ್ಡ್ ದೃಢೀಕರಣಕ್ಕೆ ಯಾವುದೆ ಬೆಂಬಲ.</description>
- <description xml:lang="ko">스마트 카드 인증 사용 지원</description>
- <description xml:lang="ml">സ്മാര്‍ട്ട് കാര്‍ഡ് ഉപയോഗിച്ചു് ആധികാരികത ഉറപ്പാക്കുന്നതിനുള്ള പിന്തുണ.</description>
- <description xml:lang="mr">स्मार्ट कार्डचा ओळख पटवण्याकरीताचे समर्थन.</description>
- <description xml:lang="or">ସ୍ମଗର୍ଟ କାର୍ଡ଼ ବୈଧିକରଣ ବ୍ୟବହାର କରିବା ପାଇଁ ସମର୍ଥନ।</description>
- <description xml:lang="pa">ਸਮਾਰਟ ਕਾਰਡ ਪ੍ਰਮਾਣਿਕਤਾ ਲਈ ਸਮਰਥਨ।</description>
- <description xml:lang="pl">Obsługa uwierzytelniania za pomocą kart smart card.</description>
- <description xml:lang="pt_BR">Suporte para uso de autenticação do Smart card.</description>
- <description xml:lang="ru">Поддержка аутентификации с помощью смарт-карт.</description>
- <description xml:lang="sv">Stöd för användning av smarta kort för autenticering.</description>
- <description xml:lang="ta">ஸ்மார்ட் கார்டு அங்கீகாரத்தை பயன்படுத்துவதற்கான ஆதரவு.</description>
- <description xml:lang="te">స్మార్ట్ కార్డ్ ధృవీకరణను వుపయోగించుట కొరకు మద్దతు.</description>
- <description xml:lang="uk">Підтримка використання смарт-карток для розпізнавання.</description>
- <description xml:lang="zh_CN">支持使用智能卡验证。</description>
- <description xml:lang="zh_TW">支援使用智慧卡認證。</description>
- <default>false</default>
- <uservisible>true</uservisible>
- <packagelist>
- <packagereq type="default">coolkey</packagereq>
- <packagereq type="default">esc</packagereq>
- <packagereq type="default">pam_pkcs11</packagereq>
- <packagereq type="default">pcsc-lite-ccid</packagereq>
- <packagereq type="optional">opencryptoki</packagereq>
- <packagereq type="optional">opensc</packagereq>
- </packagelist>
- </group>
- <group>
- <id>system-admin-tools</id>
- <name>System Administration Tools</name>
- <name xml:lang="as">চিস্টেমৰ প্ৰশাসনৰ সঁজুলিসমূহ</name>
- <name xml:lang="bn_IN">সিস্টেমের প্রশাসনিক কাজের সরঞ্জাম</name>
- <name xml:lang="cs">Nástroje pro správu systému</name>
- <name xml:lang="de">Systemadministrationstools</name>
- <name xml:lang="es">Herramientas de Administración de sistemas</name>
- <name xml:lang="fr">Outils d'administration système</name>
- <name xml:lang="gu">સિસ્ટમ સંચાલન સાધનો</name>
- <name xml:lang="hi">तंत्र प्रशासन औज़ार</name>
- <name xml:lang="it">Strumenti di amministrazione del sistema</name>
- <name xml:lang="ja">システム管理ツール</name>
- <name xml:lang="kn">ವ್ಯವಸ್ಥೆ ನಿರ್ವಹಣಾ ಉಪಕರಣಗಳು</name>
- <name xml:lang="ko">시스템 관리 도구</name>
- <name xml:lang="ml">സിസ്റ്റത്തിന്റെ നടത്തിപ്പിനുള്ള പ്രയോഗങ്ങള്‍</name>
- <name xml:lang="mr">सिस्टम ॲडमिनिस्ट्रेशन साधने</name>
- <name xml:lang="or">ତନ୍ତ୍ର ପ୍ରଶାସନୀୟ ଉପକରଣମାନ</name>
- <name xml:lang="pa">ਸਿਸਟਮ ਪ੍ਰਸ਼ਾਸ਼ਨ ਸੰਦ</name>
- <name xml:lang="pl">Systemowe narzędzia administracyjne</name>
- <name xml:lang="pt_BR">Ferramentas de Administração de Sistema</name>
- <name xml:lang="ru">Средства администрирования</name>
- <name xml:lang="ta">கணினி நிர்வாக கருவிகள்</name>
- <name xml:lang="te">వ్యవస్థ నిర్వహణ సాధనాలు</name>
- <name xml:lang="uk">Інструменти адміністрування системи</name>
- <name xml:lang="zh_CN">系统管理工具</name>
- <name xml:lang="zh_TW">系統管理工具</name>
- <description>Utilities useful in system administration.</description>
- <description xml:lang="as">চিস্টেমৰ প্ৰশাসনিক কাৰ্য্যৰ বাবে সুবিধাজনক কিছু সামগ্ৰী।</description>
- <description xml:lang="bn">সিস্টেমের প্রশাসনিক কাজের জন্য সুবিধাজনক কিছু সামগ্রী।</description>
- <description xml:lang="bn_IN">সিস্টেমের প্রশাসনিক কাজের জন্য সুবিধাজনক কিছু সামগ্রী।</description>
- <description xml:lang="cs">Užitečné nástroje pro správu počítače.</description>
- <description xml:lang="de">Für die Systemadministration nützliche Dienstprogramme.</description>
- <description xml:lang="es">Servicios útiles en administración de sistemas.</description>
- <description xml:lang="fr">Utilitaires pratiques pour l'administration de systèmes.</description>
- <description xml:lang="gu">સિસ્ટમ વહીવટમાં ઉપયોગિતા ઉપયોગી.</description>
- <description xml:lang="hi">तंत्र प्रशासन में उपयोगी उपयोगिता.</description>
- <description xml:lang="ia">Utensiles utile pro administrar le systema.</description>
- <description xml:lang="it">Utilità utili nella gestione del sistema.</description>
- <description xml:lang="ja">システム管理に便利なユーティリティです。</description>
- <description xml:lang="kn">ವ್ಯವಸ್ಥೆಯ ನಿರ್ವಹಣೆಯಲ್ಲಿ ನೆರವಾಗುವ ಸವಲತ್ತುಗಳು.</description>
- <description xml:lang="ko">시스템 관리에 유용한 유틸리티.</description>
- <description xml:lang="ml">സിസ്റ്റം അഡ്മിനിസ്ട്രേഷനുള്ള പ്രയോഗങ്ങള്‍.</description>
- <description xml:lang="mr">प्रणाली प्रशासनमध्ये उपयोगी युटिलीटीज्.</description>
- <description xml:lang="or">ତନ୍ତ୍ର ପ୍ରଶାସନରେ ଉପଯୋଗିତାମାନ ଲାଭଦାୟକ।</description>
- <description xml:lang="pa">ਸਿਸਟਮ ਪ੍ਰਸ਼ਾਸ਼ਨ ਵਿੱਚ ਸਹਿਯੋਗੀ ਸਹੂਲਤਾਂ।</description>
- <description xml:lang="pl">Narzędzia przydatne w administracji systemem.</description>
- <description xml:lang="pt_BR">Utilidades úteis na administração de sistema.</description>
- <description xml:lang="ru">Инструменты администрирования системы.</description>
- <description xml:lang="sv">Verktyg som är användbara för systemadministration.</description>
- <description xml:lang="ta">கணினி நிர்வாகத்தில் பயன்டுத் ஆதாயங்கள்.</description>
- <description xml:lang="te">సిస్టమ్ నిర్వహణనందు వుపయోగకరమైన లభ్యములు</description>
- <description xml:lang="uk">Програми, корисні для адміністрування систем.</description>
- <description xml:lang="zh_CN">对系统管理有用的程序。</description>
- <description xml:lang="zh_TW">有助於進行系統管理的工具程式。</description>
- <default>false</default>
- <uservisible>true</uservisible>
- <packagelist>
- <packagereq type="optional">conman</packagereq>
- <packagereq type="optional">crypto-utils</packagereq>
- <packagereq type="optional">dump</packagereq>
- <packagereq type="optional">expect</packagereq>
- <packagereq type="optional">hardlink</packagereq>
- <packagereq type="optional">lsscsi</packagereq>
- <packagereq type="optional">mc</packagereq>
- <packagereq type="optional">mgetty</packagereq>
- <packagereq type="optional">pexpect</packagereq>
- <packagereq type="optional">rdist</packagereq>
- <packagereq type="optional">rear</packagereq>
- <packagereq type="optional">rrdtool</packagereq>
- <packagereq type="optional">screen</packagereq>
- <packagereq type="optional">scrub</packagereq>
- <packagereq type="optional">snapper</packagereq>
- <packagereq type="optional">symlinks</packagereq>
- <packagereq type="optional">system-storage-manager</packagereq>
- <packagereq type="optional">tree</packagereq>
- <packagereq type="optional">xdelta</packagereq>
- </packagelist>
- </group>
- <group>
- <id>system-management</id>
- <name>System Management</name>
- <name xml:lang="as">চিস্টেম ব্যৱস্থাপনা</name>
- <name xml:lang="bn">সিস্টেম পরিচালনা</name>
- <name xml:lang="bn_IN">সিস্টেম পরিচালনা</name>
- <name xml:lang="cs">Správa systému</name>
- <name xml:lang="de">System-Management</name>
- <name xml:lang="es">Administración de sistemas</name>
- <name xml:lang="fr">Gestion du système</name>
- <name xml:lang="gu">સિસ્ટમ સંચાલન</name>
- <name xml:lang="hi">तंत्र प्रबंधन</name>
- <name xml:lang="ia">Gestion de systema</name>
- <name xml:lang="it">Gestione del sistema</name>
- <name xml:lang="ja">システム管理</name>
- <name xml:lang="kn">ವ್ಯವಸ್ಥೆ ನಿರ್ವಹಣೆ</name>
- <name xml:lang="ko">시스템 관리</name>
- <name xml:lang="ml">സിസ്റ്റം മാനേജ്മെന്റ്</name>
- <name xml:lang="mr">प्रणाली व्यवस्थापन</name>
- <name xml:lang="or">ତନ୍ତ୍ର ପରିଚାଳନା</name>
- <name xml:lang="pa">ਸਿਸਟਮ ਪਰਬੰਧਨ</name>
- <name xml:lang="pl">Zarządzanie systemem</name>
- <name xml:lang="pt_BR">Gerenciamento de Sistema</name>
- <name xml:lang="ru">Управление системой</name>
- <name xml:lang="sv">Systemhantering</name>
- <name xml:lang="ta">கணினி மேலாண்மை</name>
- <name xml:lang="te">సిస్టమ్ నిర్వహణ</name>
- <name xml:lang="uk">Керування системою</name>
- <name xml:lang="zh_CN">系统管理</name>
- <name xml:lang="zh_TW">系統管理</name>
- <description>Various low-level hardware management frameworks.</description>
- <description xml:lang="as">নিম্ন-স্তৰৰ যান্ত্ৰিক সামগ্ৰী ব্যৱস্থাপনাৰ বিভিন্ন গাথনী।</description>
- <description xml:lang="bn">নিম্ন-স্তরের হার্ডওয়্যার পরিচালনার বিভিন্ন ফ্রেমওয়ার্ক।</description>
- <description xml:lang="bn_IN">নিম্ন-স্তরের হার্ডওয়্যার পরিচালনার বিভিন্ন ফ্রেমওয়ার্ক।</description>
- <description xml:lang="cs">Různá nízkoúrovňová rozhraní pro správu hardware.</description>
- <description xml:lang="de">Verschiedene geringfügige Hardware-Management-Frameworks.</description>
- <description xml:lang="es">Varios marcos de gestión de hardware de bajo nivel.</description>
- <description xml:lang="fr">Divers frameworks de gestion du matériel de bas niveau.</description>
- <description xml:lang="gu">વિવિધ નીચા-સ્તરનાં હાર્ડવેર સંચાલન ફ્રેમવર્કો.</description>
- <description xml:lang="hi">विविध निम्नस्तरीय हार्डवेयर प्रबंधन फ्रेमवर्क.</description>
- <description xml:lang="ia">Varie infrastructuras pro gerer le hardware al nivello basse.</description>
- <description xml:lang="it">Framework di gestione hardware di livello-basso vari.</description>
- <description xml:lang="ja">多様な低レベルハードウェア管理フレームワークです。</description>
- <description xml:lang="kn">ಹಲವಾರು ಕೆಳ-ಮಟ್ಟದ ಯಂತ್ರಾಂಶ ನಿರ್ವಹಣಾ ಫ್ರೇಮ್‌ವರ್ಕುಗಳು.</description>
- <description xml:lang="ko">여러 저수준 하드웨어 관리 프레임워크.</description>
- <description xml:lang="ml">അനവധി ലോ-ലവല്‍ ഹാര്‍ഡ്‌വെയര്‍ മാനേജ്മെന്റ് ഫ്രെയിംവര്‍ക്കുകള്‍.</description>
- <description xml:lang="mr">विविध कमी-स्तरीय हार्डवेअर व्यवस्थापन फ्रेमवर्क्स्.</description>
- <description xml:lang="or">ବିଭିନ୍ନ ନିମ୍ନ-ସ୍ତରୀୟ ହାର୍ଡୱେର ପରିଚାଳନା ଫ୍ରେମୱର୍କମାନ।</description>
- <description xml:lang="pa">ਵੱਖ-ਵੱਖ ਘੱਟ-ਦਰਜੇ ਦੇ ਹਾਰਡਵੇਅਰ ਮੈਨੇਜਮੈਂਟ ਫਰੇਮਵਰਕ।</description>
- <description xml:lang="pl">Różne niskopoziomowe struktury zarządzania sprzętem.</description>
- <description xml:lang="pt_BR">Diversas estruturas de gerenciamento de hardware de baixo nível.</description>
- <description xml:lang="ru">Различные инфраструктуры управления оборудованием на низком уровне.</description>
- <description xml:lang="sv">Diverse hanteringsramverk för lågnivåhårdvara.</description>
- <description xml:lang="ta">வேறுபட்ட குறைந்த-மட்ட வன்பொருள் மேலாண்மை கட்டமைப்புகள்.</description>
- <description xml:lang="te">వివిధ తక్కువ-స్థాయి హార్డువేర్ నిర్వహణా ఫ్రేమ్‌వర్క్స్.</description>
- <description xml:lang="uk">Різноманітні оболонки низькорівневого керування обладнанням.</description>
- <description xml:lang="zh_CN">各种低级硬件管理框架。</description>
- <description xml:lang="zh_TW">各種低層的硬體管理框架。</description>
- <default>false</default>
- <uservisible>true</uservisible>
- <packagelist>
- <packagereq type="optional">fence-agents-all</packagereq>
- <packagereq type="optional">freeipmi</packagereq>
- <packagereq type="optional">freeipmi-bmc-watchdog</packagereq>
- <packagereq type="optional">freeipmi-ipmidetectd</packagereq>
- <packagereq type="optional">ipmitool</packagereq>
- <packagereq type="optional">openhpi</packagereq>
- <packagereq type="optional">OpenIPMI</packagereq>
- <packagereq type="optional">watchdog</packagereq>
- </packagelist>
- </group>
- <group>
- <id>technical-writing</id>
- <name>Technical Writing</name>
- <name xml:lang="as">প্ৰযুক্তিবিষয়ক ৰচনা</name>
- <name xml:lang="bn">প্রযুক্তিবিষয়ক নথিপত্ররচনা</name>
- <name xml:lang="bn_IN">প্রযুক্তিবিষয়ক নথিপত্ররচনা</name>
- <name xml:lang="cs">Technická dokumentace</name>
- <name xml:lang="de">Technisches Schreiben</name>
- <name xml:lang="es">Escritura técnica</name>
- <name xml:lang="fr">Rédaction technique</name>
- <name xml:lang="gu">તકનીકી લખવાનું</name>
- <name xml:lang="hi">तकनीकी लेखन</name>
- <name xml:lang="ia">Scriptura technic</name>
- <name xml:lang="it">Scrittura tecnica</name>
- <name xml:lang="ja">技術文書</name>
- <name xml:lang="kn">ತಾಂತ್ರಿಕ ಬರವಣಿಗೆ</name>
- <name xml:lang="ko">기술 저작</name>
- <name xml:lang="ml">സാങ്കേതിക വിവരണക്കുറിപ്പു് രചിക്കുക</name>
- <name xml:lang="mr">तांत्रीक लेखन</name>
- <name xml:lang="or">ଯାନ୍ତ୍ରିକ ଲିଖନ</name>
- <name xml:lang="pa">ਤਕਨੀਕੀ ਲਿਖਤ</name>
- <name xml:lang="pl">Dokumentacja techniczna</name>
- <name xml:lang="pt_BR">Criação de escrita técnica</name>
- <name xml:lang="ru">Техническая документация</name>
- <name xml:lang="sv">Teknisk dokumentation</name>
- <name xml:lang="ta">தொழில்நுட்பமாக எழுதுதல்</name>
- <name xml:lang="te">సాంకేతిక లేఖనం</name>
- <name xml:lang="uk">Технічне документування</name>
- <name xml:lang="zh_CN">科技写作</name>
- <name xml:lang="zh_TW">技術編寫</name>
- <description>Tools for writing technical documentation.</description>
- <description xml:lang="as">প্ৰযুক্তিবিষয়ক ফাইল লিখাৰ বিভিন্ন সঁজুলিসমূহ।</description>
- <description xml:lang="bn">প্রযুক্তিবিষয়ক নথিপত্র লেখার বিভিন্ন সরঞ্জাম।</description>
- <description xml:lang="bn_IN">প্রযুক্তিবিষয়ক নথিপত্র লেখার বিভিন্ন সরঞ্জাম।</description>
- <description xml:lang="cs">Nástroje pro sazbu technické dokumentace.</description>
- <description xml:lang="de">Tools für das Schreiben technischer Dokumentationen.</description>
- <description xml:lang="es">Herramientas para documentación de escritura técnica.</description>
- <description xml:lang="fr">Outils pour rédiger une documentation technique.</description>
- <description xml:lang="gu">તકનીકી દસ્તાવેજીકરણને લખવા માટે સાધનો.</description>
- <description xml:lang="hi">तकनीकी दस्तावेजीकरण के लेखन के लिए औज़ार.</description>
- <description xml:lang="ia">Instrumentos pro scriber documentation technic.</description>
- <description xml:lang="it">Tool per la scrittura di documentazione tecnica.</description>
- <description xml:lang="ja">技術文書を書くためのツールです。</description>
- <description xml:lang="kn">ತಾಂತ್ರಿಕ ದಸ್ತಾವೇಜನ್ನು ಬರೆಯಲು ನೆರವಾಗುವ ಉಪಕರಣಗಳು.</description>
- <description xml:lang="ko">기술 문서를 작성하기 위한 도구.</description>
- <description xml:lang="ml">സാങ്കേതിക വിവരക്കുറിപ്പു് തയ്യാറാക്കുന്നതിനുള്ള ഉപകരണങ്ങള്‍.</description>
- <description xml:lang="mr">तांत्रीक दस्तऐवजीकरण लिहण्यासाठी साधने.</description>
- <description xml:lang="or">ଯାନ୍ତ୍ରିକ ଦଲିଲ ଲେଖିବା ପାଇଁ ସାଧନଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">ਟੈਕਨੀਕਲ ਡੌਕੂਮੈਂਟ ਲਿਖਣ ਲਈ ਟੂਲ।</description>
- <description xml:lang="pl">Narzędzia do pisania dokumentacji technicznej.</description>
- <description xml:lang="pt_BR">Ferramentas para escrita de documentação técnica.</description>
- <description xml:lang="ru">Средства для создания технической документации.</description>
- <description xml:lang="sv">Verktyg för att skriva teknisk dokumentation.</description>
- <description xml:lang="ta">தொழில்நுட்ப ஆவணத்தை எழுதுவதற்கான கருவிகள்.</description>
- <description xml:lang="te">సాంకేతిక పత్రికీకరణను రాయుటకు సాధనములు.</description>
- <description xml:lang="uk">Інструменти для створення технічної документації</description>
- <description xml:lang="zh_CN">编写科技文档的工具。</description>
- <description xml:lang="zh_TW">用來編寫技術文件的工具。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">docbook-slides</packagereq>
- <packagereq type="mandatory">docbook-style-xsl</packagereq>
- <packagereq type="mandatory">docbook-utils</packagereq>
- <packagereq type="mandatory">docbook-utils-pdf</packagereq>
- <packagereq type="mandatory">docbook5-schemas</packagereq>
- <packagereq type="mandatory">docbook5-style-xsl</packagereq>
- <packagereq type="mandatory">tex-fonts-hebrew</packagereq>
- <packagereq type="mandatory">texinfo</packagereq>
- <packagereq type="mandatory">texlive</packagereq>
- <packagereq type="mandatory">texlive-cm-lgc</packagereq>
- <packagereq type="mandatory">texlive-kerkis</packagereq>
- <packagereq type="mandatory">texlive-latex</packagereq>
- <packagereq type="mandatory">xmlto</packagereq>
- <packagereq type="mandatory">xmlto-tex</packagereq>
- <packagereq type="mandatory">xmltoman</packagereq>
- <packagereq type="conditional" requires="evince">evince-dvi</packagereq>
- </packagelist>
- </group>
- <group>
- <id>virtualization-client</id>
- <name>Virtualization Client</name>
- <name xml:lang="as">ভাৰছুৱেলাইজেষণ ক্লাএন্ট</name>
- <name xml:lang="bn">ভার্চুয়ালাইজেশন ক্লায়েন্ট</name>
- <name xml:lang="bn_IN">ভার্চুয়ালাইজেশন ক্লায়েন্ট</name>
- <name xml:lang="cs">Virtualizační klient</name>
- <name xml:lang="de">Virtualisierungs-Client</name>
- <name xml:lang="es">Cliente de virtualización</name>
- <name xml:lang="fr">Client de virtualisation</name>
- <name xml:lang="gu">વર્ચ્યુઅલાઈઝેશન ક્લાયન્ટ</name>
- <name xml:lang="hi">वर्चुअलाइजेशन क्लाइंट</name>
- <name xml:lang="ia">Cliente de virtualisation</name>
- <name xml:lang="it">Client di virtualizzazione</name>
- <name xml:lang="ja">仮想化クライアント</name>
- <name xml:lang="kn">ವರ್ಚುವಲೈಸೇಶನ್ ಕ್ಲೈಂಟ್</name>
- <name xml:lang="ko">가상화 클라이언트</name>
- <name xml:lang="ml">വിര്‍ച്ച്വലൈസേഷന്‍ ക്ലയന്റ്</name>
- <name xml:lang="mr">वर्च्युअलाइजेशन क्लाएंट</name>
- <name xml:lang="or">ଆଭାସୀକରଣ କ୍ଲାଏଣ୍ଟ</name>
- <name xml:lang="pa">ਵਰਚੁਲਾਈਜ਼ੇਸ਼ਨ ਕਲਾਈਂਟ</name>
- <name xml:lang="pl">Klient wirtualizacji</name>
- <name xml:lang="pt_BR">Cliente de Virtualização</name>
- <name xml:lang="ru">Клиент виртуализации</name>
- <name xml:lang="sv">Virtualiseringsklient</name>
- <name xml:lang="ta">மெய்நிகராக்க வாடிக்கையாளர்</name>
- <name xml:lang="te">వర్చ్యులైజేషన్ క్లైంట్</name>
- <name xml:lang="uk">Клієнт віртуалізації</name>
- <name xml:lang="zh_CN">虚拟化客户端</name>
- <name xml:lang="zh_TW">虛擬化客戶端</name>
- <description>Clients for installing and managing virtualization instances.</description>
- <description xml:lang="as">ভাৰছুৱেলাইজেষণ ক্ষণ ইনস্টল আৰু ব্যৱস্থাপনাৰ বাবে ব্যৱহৃত ক্লাএন্ট।</description>
- <description xml:lang="bn">ভার্চুয়ালাইজেশন ইনস্ট্যান্স ইনস্টল ও পরিচালনার জন্য ব্যবহৃত ক্লায়েন্ট।</description>
- <description xml:lang="bn_IN">ভার্চুয়ালাইজেশন ইনস্ট্যান্স ইনস্টল ও পরিচালনার জন্য ব্যবহৃত ক্লায়েন্ট।</description>
- <description xml:lang="cs">Klienti pro instalaci a správu virtualizačních instancí.</description>
- <description xml:lang="de">Clients zur Installation und Verwaltung von Virtualisierungs-Instanzen.</description>
- <description xml:lang="es">Clientes para instalar y administrar instancias de virtualización.</description>
- <description xml:lang="fr">Clients pour installer et gérer des instances de virtualisation.</description>
- <description xml:lang="gu">વર્ચ્યુઅલાઇઝેશન નમૂનાઓને સંચાલિત કરવા અને સ્થાપિત કરવા માટે ક્લાયન્ટો.</description>
- <description xml:lang="hi">वर्चुअलाइजेशन उदाहरणों के संस्थापन और प्रबंधन के लिए क्लाइंट.</description>
- <description xml:lang="ia">Clientes pro installar e administrar exemplares de virtualisation.</description>
- <description xml:lang="it">Client per l'installazione e gestione delle istanze di virtualizzazione.</description>
- <description xml:lang="ja">仮想化マシンへOSをインストールしたり管理するための接続クライアント</description>
- <description xml:lang="kn">ವರ್ಚುವಲೈಸೇನ್ ಸನ್ನಿವೇಶಗಳನ್ನು(ಇನ್‌ಸ್ಟನ್ಸ್) ಅನುಸ್ಥಾಪಿಸುವ ಹಾಗು ನಿರ್ವಹಿಸುವ ಕ್ಲೈಂಟ್‌ಗಳು.</description>
- <description xml:lang="ko">가상화 인스턴스를 관리하고 설치하기 위한 클라이언트</description>
- <description xml:lang="ml">വിര്‍ച്ച്വലൈസേഷന്‍ ഇന്‍സ്റ്റന്‍സുകള്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്തു് കൈകാര്യം ചെയ്യുന്നതിനുള്ള ക്ലയന്റുകള്‍.</description>
- <description xml:lang="mr">वर्च्युअलाइजेशन घटना प्रतिष्ठापीत व व्यवस्थापीत करण्यासाठी क्लाएंट्स्.</description>
- <description xml:lang="or">ଆଭାସୀ ପରିସ୍ଥିତିଗୁଡ଼ିକୁ ସ୍ଥାପନ ଏବଂ ପରିଚାଳନା କରିବା ପାଇଁ କ୍ଲାଏଣ୍ଟମାନ।</description>
- <description xml:lang="pa">ਵਰਚੁਅਲਾਈਜੇਸ਼ਨ ਸੰਬੰਧੀ ਇੰਸਾਟਲੇਸ਼ਨ ਅਤੇ ਪਰਬੰਧਨ ਕਰਨ ਲਈ ਕਲਾਂਈਟ।</description>
- <description xml:lang="pl">Klienci instalowania i zarządzania instalacjami wirtualizacji.</description>
- <description xml:lang="pt_BR">Clientes para instalar e gerenciar instâncias de virtualização.</description>
- <description xml:lang="ru">Клиенты для установки и управления экземплярами виртуализации.</description>
- <description xml:lang="sv">Klienter för installation och hantering av virtualiseringsinstanser.</description>
- <description xml:lang="ta">நிறுவல் மற்றும் மெய்நிகராக்க உதாரணங்களை பராமரிப்பதற்கான வாடிக்கையாளர்கள்.</description>
- <description xml:lang="te">వర్చ్యులైజేషన్ యిన్‌స్టాన్సులను సంస్థాపించుటకు మరియు నిర్వహించుటకు క్లైంట్స్.</description>
- <description xml:lang="uk">Клієнтські програми для встановлення та керування віртуалізованими системами.</description>
- <description xml:lang="zh_CN">用于安装和管理虚拟化事件的客户端。</description>
- <description xml:lang="zh_TW">用來安裝和管理虛擬化事例的客戶端。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">gnome-boxes</packagereq>
- <packagereq type="mandatory">virt-install</packagereq>
- <packagereq type="mandatory">virt-manager</packagereq>
- <packagereq type="mandatory">virt-viewer</packagereq>
- <packagereq type="default">virt-top</packagereq>
- <packagereq type="optional">libguestfs-inspect-icons</packagereq>
- <packagereq type="optional">libguestfs-tools</packagereq>
- <packagereq type="optional">libguestfs-tools-c</packagereq>
- </packagelist>
- </group>
- <group>
- <id>virtualization-hypervisor</id>
- <name>Virtualization Hypervisor</name>
- <name xml:lang="as">ভাৰছুৱেলাইজেষণ হাইপাৰভাইছৰ</name>
- <name xml:lang="bn_IN">ভার্চুয়ালাইজেশন হাইপারভাইজর</name>
- <name xml:lang="cs">Virtualizační hypervizor</name>
- <name xml:lang="de">Virtualisierungs-Hypervisor</name>
- <name xml:lang="es">Hipervisor de virtualización</name>
- <name xml:lang="fr">Hyperviseur de virtualisation</name>
- <name xml:lang="gu">વર્ચ્યુઅલાઇઝેશન હાયપરવાઇઝર</name>
- <name xml:lang="hi">वर्चुअलाइजेशन हाइपरविजन</name>
- <name xml:lang="it">Hypervisor di virtualizzazione</name>
- <name xml:lang="ja">仮想化ハイパーバイザー</name>
- <name xml:lang="kn">ವರ್ಚುವಲೈಸೇಶನ್ ಹೈಪರ್ವೈಸರ್</name>
- <name xml:lang="ko">가상화 하이퍼바이저</name>
- <name xml:lang="ml">വിര്‍ച്ച്വലൈസേഷന്‍ ഹൈപ്പര്‍വൈസര്‍</name>
- <name xml:lang="mr">वर्च्युअलाइजेशन हाइपरवाइजर</name>
- <name xml:lang="or">ଆଭାସୀକରଣ ହାଇପରଭାଇଜର</name>
- <name xml:lang="pa">ਆਭਾਸੀਕਰਣ ਹਾਈਪਰਵਾਈਜ਼ਰ</name>
- <name xml:lang="pl">Nadzorca wirtualizacji</name>
- <name xml:lang="pt_BR">Hypervisor de Virtualização</name>
- <name xml:lang="ru">Гипервизор виртуализации</name>
- <name xml:lang="ta">மெய்நிகராக்க ஹைப்பர்வைசர்</name>
- <name xml:lang="te">వర్చ్యులైజేషన్ హైపర్విజర్</name>
- <name xml:lang="uk">Гіпервізор віртуалізації</name>
- <name xml:lang="zh_CN">虚拟化 Hypervisor</name>
- <name xml:lang="zh_TW">虛擬化 Hypervisor</name>
- <description>Smallest possible virtualization host installation.</description>
- <description xml:lang="as">নূন্যতম সম্ভাব্য ভাৰছুৱেলাইজেষণ হস্ট ইনস্টলেষণ।</description>
- <description xml:lang="bn_IN">সবথেকে ছোট সম্ভাব্য ভার্চুয়ালাইজেশন হোস্ট ইনস্টলেশান।</description>
- <description xml:lang="cs">Nejmenší možná instalace virtualizačního hostitele.</description>
- <description xml:lang="de">Kleinstmögliche Installation eines Virtualisierungshosts.</description>
- <description xml:lang="es">La instalación de host de virtualización más pequeña posible.</description>
- <description xml:lang="fr">Installation d'hôte de virtualisation la plus petite possible.</description>
- <description xml:lang="gu">નાનામાં નાનું શક્ય વર્ચ્યુઅલાઇઝેશન યજમાન સ્થાપન.</description>
- <description xml:lang="hi">सबसे छोटा वर्चुअलाइजेशन मेजबान संस्थापन.</description>
- <description xml:lang="it">Installazione minima host di virtualizzazione possibile</description>
- <description xml:lang="ja">最小限の仮想化ホストのインストールです。</description>
- <description xml:lang="kn">ಕನಿಷ್ಟ ಸಾಧ್ಯವಿರುವ ವರ್ಚುವಲೈಸೇಶನ್ ಆತಿಥೇಯ ಅನುಸ್ಥಾಪನೆ.</description>
- <description xml:lang="ko">가능한 최소한의 가상화 호스트를 설치합니다.</description>
- <description xml:lang="ml">ഏറ്റവും എളുപ്പത്തിലുള്ള സാധ്യമായ വിര്‍ച്ച്വലൈസേഷന്‍ ഹോസ്റ്റ് ഇന്‍സ്റ്റലേഷന്‍.</description>
- <description xml:lang="mr">सर्वात छोटे संभाव्य वर्च्युअलाइजेशन यजमान इंस्टॉलेशन.</description>
- <description xml:lang="or">କ୍ଷୁଦ୍ରତମ ସମ୍ଭାବ୍ଯ ଆଭାସୀ ହୋଷ୍ଟ ସ୍ଥାପନ।</description>
- <description xml:lang="pa">ਵੱਧ ਤੋਂ ਵੱਧ ਸੰਭਵ ਆਭਾਸੀਕਰਣ ਮੇਜਬਾਨ ਇੰਸਟਾਲੇਸ਼ਨ।</description>
- <description xml:lang="pl">Najmniejsza możliwa instalacja gospodarza wirtualizacji.</description>
- <description xml:lang="pt_BR">Instalação de host de virtualização menor possível</description>
- <description xml:lang="ru">Минимальная установка хоста виртуализации.</description>
- <description xml:lang="ta">சாத்தியமான மிகச் சிறிய மெய்நிகராக்க வழங்கி நிறுவல்.</description>
- <description xml:lang="te">సాధ్యమగు చిన్న వర్చ్యలైజేషన్ అతిధేయి సంస్థాపన.</description>
- <description xml:lang="uk">Найменша з можливих основна система для віртуалізації.</description>
- <description xml:lang="zh_CN">最小的虚拟化主机安装。</description>
- <description xml:lang="zh_TW">最小型的虛擬化主機安裝程序。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">libvirt</packagereq>
- <packagereq type="mandatory">qemu-kvm</packagereq>
- <packagereq type="optional">qemu-kvm-tools</packagereq>
- </packagelist>
- </group>
- <group>
- <id>virtualization-platform</id>
- <name>Virtualization Platform</name>
- <name xml:lang="as">ভাৰছুৱেলাইজেষণ প্লেটফৰ্ম</name>
- <name xml:lang="bn">ভার্চুয়ালাইজেশন প্ল্যাটফর্ম</name>
- <name xml:lang="bn_IN">ভার্চুয়ালাইজেশন প্ল্যাটফর্ম</name>
- <name xml:lang="cs">Virtualizační platforma</name>
- <name xml:lang="de">Virtualisierungs-Plattform</name>
- <name xml:lang="es">Plataforma de virtualización</name>
- <name xml:lang="fr">Plateforme de virtualisation</name>
- <name xml:lang="gu">વર્ચ્યુઅલાઈઝેશન પ્લેટફોર્મ</name>
- <name xml:lang="hi">वर्चुअलाइजेशन प्लेटफॉर्म</name>
- <name xml:lang="ia">Platteforma de virtualisation</name>
- <name xml:lang="it">Piattaforma di virtualizzazione</name>
- <name xml:lang="ja">仮想化プラットフォーム</name>
- <name xml:lang="kn">ವರ್ಚುವಲೈಸೇಶನ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್</name>
- <name xml:lang="ko">가상화 플랫폼</name>
- <name xml:lang="ml">വിര്‍ച്ച്വലൈസേഷന്‍ പ്ലാറ്റ്ഫോം</name>
- <name xml:lang="mr">वर्च्युअलाइजेशन प्लॅटफार्म</name>
- <name xml:lang="or">ଆଭାସୀକରଣ ପ୍ଲାଟଫର୍ମ</name>
- <name xml:lang="pa">ਆਭਾਸੀਕਰਣ ਮੰਚ</name>
- <name xml:lang="pl">Platforma wirtualizacji</name>
- <name xml:lang="pt_BR">Plataforma de Virtualização</name>
- <name xml:lang="ru">Платформа виртуализации</name>
- <name xml:lang="sv">Virtualiseringsplattform</name>
- <name xml:lang="ta">மெய்நிகராக்க ஃப்ளாட்பார்ம்</name>
- <name xml:lang="te">వర్చ్యులైజేషన్ ప్లాట్‌ఫాం</name>
- <name xml:lang="uk">Платформа віртуалізації</name>
- <name xml:lang="zh_CN">虚拟化平台</name>
- <name xml:lang="zh_TW">虛擬化平台</name>
- <description>Provides an interface for accessing and controlling virtualized guests and containers.</description>
- <description xml:lang="as">ভাৰছুৱেল অতিথি আৰু ধাৰকসমূহত প্ৰবেশাধিকাৰ লবলে এটা আন্তঃপৃষ্ঠ প্ৰদান কৰে।</description>
- <description xml:lang="bn">ভার্চুয়ালাইজ করা গেস্ট সিস্টেম ও সেগুলি ধারণকারী ব্যবহার ও নিয়ন্ত্রণ করার জন্য একটি ইন্টারফেস উপলব্ধ করা হয়।</description>
- <description xml:lang="bn_IN">ভার্চুয়ালাইজ করা গেস্ট সিস্টেম ও সেগুলি ধারণকারী ব্যবহার ও নিয়ন্ত্রণ করার জন্য একটি ইন্টারফেস উপলব্ধ করা হয়।</description>
- <description xml:lang="cs">Poskytuje rozhraní pro přístup a ovládání virtuálních hostů a kontejnerů.</description>
- <description xml:lang="de">Liefert eine Schnittstelle für den Zugriff und die Kontrolle virtueller Gäste und Container.</description>
- <description xml:lang="es">Proporciona una interfaz para acceder y controlar huéspedes y contenedores virtualizados.</description>
- <description xml:lang="fr">Offre une interface pour l'accès et le contrôle des invités virtualisés et des conteneurs.</description>
- <description xml:lang="gu">વર્ચ્યુઅલ થયેલ મહેમાનોને અને કન્ટેનરોને નિયંત્રિત કરવા અને વાપરવા માટે ઇન્ટરફેસને પૂરુ પાડે છે.</description>
- <description xml:lang="hi">वर्चुअलाइज्ड गेस्ट और कंटेनर की पहुँच और नियंत्रण के लिए अंतरफलक देता है</description>
- <description xml:lang="ia">Illo provide un interfacie pro acceder e gerer hospites virtualisate e containers.</description>
- <description xml:lang="it">Fornisce una interfaccia per l'accesso ed il controllo dei container e dei guest virtualizzati.</description>
- <description xml:lang="ja">仮想化ゲストやコンテナへアクセスしたり制御するためのインターフェースを提供します。</description>
- <description xml:lang="kn">ವರ್ಚುವಲೈಸೇನ್ ಅತಿಥಿಗಳನ್ನು ಹಾಗು ಕಂಟೈನರುಗಳನ್ನು ನಿಲುಕಿಸಿಕೊಳ್ಳಲು ಮತ್ತು ನಿಯಂತ್ರಿಸಲು ಒಂದು ಸಂಪರ್ಕಸಾಧನವನ್ನು ಒದಗಿಸುತ್ತದೆ.</description>
- <description xml:lang="ko">가상화된 게스트와 컨테이너를 억세스하고 컨트롤하기 위한 인터페이스 제공.</description>
- <description xml:lang="ml">വിര്‍ച്ച്വലൈസ്ഡ് ഗസ്റ്റുകള്‍ക്കും സംഭരണങ്ങള്‍ക്കും, ലഭ്യമാക്കുന്നതിനും നിയന്ത്രിക്കുന്നതിനുമുള്ള ഇന്റര്‍ഫെയിസ് നല്‍കുന്നു.</description>
- <description xml:lang="mr">वर्च्युअलाइज्ड् अतिथीव कंटेनर्सच्या प्रवेश व नियंत्रणकरीता संवाद पुरवतो.</description>
- <description xml:lang="or">ଆଭାସୀ ଅତିଥି ଏବଂ ଧାରଣକାରୀମାନଙ୍କୁ ଅଭିଗମ୍ୟ ଏବଂ ନିୟନ୍ତ୍ରଣ କରିବା ପାଇଁ ଗୋଟିଏ ଅନ୍ତରାପୃଷ୍ଠ ପ୍ରଦାନ କରିଥାଏ।</description>
- <description xml:lang="pa">ਵਰਚੁਅਲਾਈਜ਼ਡ ਗਿਸਟ ਅਤੇ ਕੰਟੇਨਰ ਵਰਤਣ ਅਤੇ ਕੰਟਰੋਲ ਲਈ ਇੰਟਰਫੇਸ ਦਿੰਦਾ ਹੈ।</description>
- <description xml:lang="pl">Dostarcza interfejs do uzyskiwania dostępu i kontrolowania wirtualizowanych gości i kontenerów.</description>
- <description xml:lang="pt_BR">Fornece uma interface para acessar e controlar convidados virtualizados e containers.</description>
- <description xml:lang="ru">Интерфейс для доступа и управления виртуальными машинами и контейнерами.</description>
- <description xml:lang="sv">Ger ett gränssnitt för att komma åt och styra virtualiserade gäster och behållare.</description>
- <description xml:lang="ta">மெய்நிகராக்கப்பட்ட விருந்தினர்கள் மற்றும் கொள்கலன்களுக்கான அணுகல் மற்றும் கட்டுபடுத்தலுக்கான ஒரு இடைமுகத்தை வழங்குகிறது.</description>
- <description xml:lang="te">వర్చ్యులైజ్డు గెస్టులను మరియు కంటైనర్లను యాక్సెస్ చేయుటకు మరియు నియంత్రించుటకు యింటర్ఫేస్‌ను అందించును.</description>
- <description xml:lang="uk">Надає інтерфейс для доступу та керування віртуалізованими гостьовими системами та контейнерами.</description>
- <description xml:lang="zh_CN">提供用来访问和控制虚拟访客和容器的接口。</description>
- <description xml:lang="zh_TW">提供了一個介面以存取和控制虛擬化客座端以及 container。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">libvirt</packagereq>
- <packagereq type="mandatory">libvirt-client</packagereq>
- <packagereq type="mandatory">virt-who</packagereq>
- <packagereq type="optional">fence-virtd-libvirt</packagereq>
- <packagereq type="optional">fence-virtd-multicast</packagereq>
- <packagereq type="optional">fence-virtd-serial</packagereq>
- <packagereq type="optional">libvirt-cim</packagereq>
- <packagereq type="optional">libvirt-java</packagereq>
- <packagereq type="optional">libvirt-snmp</packagereq>
- <packagereq type="optional">perl-Sys-Virt</packagereq>
- </packagelist>
- </group>
- <group>
- <id>virtualization-tools</id>
- <name>Virtualization Tools</name>
- <name xml:lang="as">ভাৰছুৱেলাইজেষণৰ সঁজুলিসমূহ</name>
- <name xml:lang="bn">ভার্চুয়ালাইজেশনের সরঞ্জাম</name>
- <name xml:lang="bn_IN">ভার্চুয়ালাইজেশনের সরঞ্জাম</name>
- <name xml:lang="cs">Virtualizační nástroje</name>
- <name xml:lang="de">Virtualisierungs-Tools</name>
- <name xml:lang="es">Herramientas de virtualización</name>
- <name xml:lang="fr">Outils de virtualisation</name>
- <name xml:lang="gu">વર્ચ્યુઅલાઈઝેશન સાધનો</name>
- <name xml:lang="hi">वर्चुअलाइजेशन औजार</name>
- <name xml:lang="ia">Instrumentos de virtualisation</name>
- <name xml:lang="it">Tool di virtualizzazione</name>
- <name xml:lang="ja">仮想化ツール</name>
- <name xml:lang="kn">ವರ್ಚುವಲೈಸೇಶನ್ ಉಪಕರಣಗಳು</name>
- <name xml:lang="ko">가상화 도구</name>
- <name xml:lang="ml">വിര്‍ച്ച്വലൈസേഷന്‍ ഉപകരണങ്ങള്‍</name>
- <name xml:lang="mr">वर्च्युअलाइजेशन साधने</name>
- <name xml:lang="or">ଆଭାସୀକରଣ ସାଧନଗୁଡ଼ିକ</name>
- <name xml:lang="pa">ਆਭਾਸੀਕਰਣ ਸੰਦ</name>
- <name xml:lang="pl">Narzędzia wirtualizacji</name>
- <name xml:lang="pt_BR">Ferramentas de Virtualização</name>
- <name xml:lang="ru">Средства виртуализации</name>
- <name xml:lang="sv">Virtualiseringsverktyg</name>
- <name xml:lang="ta">மெய்நிகராக்க கருவிகள்</name>
- <name xml:lang="te">వర్చ్యులైజేషన్ సాధనములు</name>
- <name xml:lang="uk">Інструменти віртуалізації</name>
- <name xml:lang="zh_CN">虚拟化工具</name>
- <name xml:lang="zh_TW">虛擬化工具</name>
- <description>Tools for offline virtual image management.</description>
- <description xml:lang="as">অফ-লাইন ভাৰ্চুৱেল ইমেজ ব্যৱস্থাপনাৰ বিভিন্ন সঁজুলিসমূহ।</description>
- <description xml:lang="bn">অফ-লাইন ভার্চুয়াল ইমেজ পরিচালনার বিভিন্ন সরঞ্জাম।</description>
- <description xml:lang="bn_IN">অফ-লাইন ভার্চুয়াল ইমেজ পরিচালনার বিভিন্ন সরঞ্জাম।</description>
- <description xml:lang="cs">Nástroje pro správu obrazů virtuálních disků v režimu offline.</description>
- <description xml:lang="de">Tools zur Offline-Verwaltung von virtuellen Images.</description>
- <description xml:lang="es">Herramientas para gestión de imagen virtual desconectada.</description>
- <description xml:lang="fr">Outils pour la gestion d'images virtuelles hors-ligne.</description>
- <description xml:lang="gu">ઓફલાઇન વર્ચ્યુઅલ ઇમેજ સંચાલન માટે સાધનો.</description>
- <description xml:lang="hi">ऑफलाइन वर्चुअल छवि प्रबंधन के लिए औज़ार.</description>
- <description xml:lang="ia">Instrumentos pro le gestion de imagines virtual in modo autonome.</description>
- <description xml:lang="it">Tool per la gestione dell'immagine virtuale offline.</description>
- <description xml:lang="ja">停止中の仮想マシンのディスクイメージを操作するためのツールです。</description>
- <description xml:lang="kn">ಆಫ್‌ಲೈನಿನಲ್ಲಿ ಚಿತ್ರಿಕೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಬಳಸಬಹುದಾದ ಉಪಕರಣಗಳು.</description>
- <description xml:lang="ko">오프라인 가상 이미지 관리를 위한 도구.</description>
- <description xml:lang="ml">ഓഫ്‌ലൈന്‍ വിര്‍ച്ച്വല്‍ ഇമേജ് മാനേജ്മെന്റിനുള്ള ഉപകരണങ്ങള്‍.</description>
- <description xml:lang="mr">ऑफलाइन प्रतिमा व्यवस्थापन करीता साधने.</description>
- <description xml:lang="or">ଅଫଲାଇନ ଆଭାସୀ ପରିଚାଳନା ପାଇଁ ସାଧନଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">ਆਫਲਾਈਨ ਵਰਚੁਅਲ ਈਮੇਜ਼ ਪਰਬੰਧਨ ਲਈ ਟੂਲ।</description>
- <description xml:lang="pl">Narzędzia do zarządzania obrazami wirtualnymi w trybie offline.</description>
- <description xml:lang="pt_BR">Ferramentas para gerenciamento de imagem virtual offline.</description>
- <description xml:lang="ru">Средства для автономного управления виртуальными образами.</description>
- <description xml:lang="sv">Verktyg för hantering av virtuella avbilder i frånkopplat läge.</description>
- <description xml:lang="ta">ஆஃப்லைன் மெய்நிகர் பட மேலாண்மைக்கான கருவிகள்.</description>
- <description xml:lang="te">ఆఫ్‌లైన్ వర్చ్యువల్ చిత్ర నిర్వహణ కొరకు సాధనములు.</description>
- <description xml:lang="uk">Програми для керування образами віртуальних систем.</description>
- <description xml:lang="zh_CN">用于离线虚拟映像管理的工具。</description>
- <description xml:lang="zh_TW">用來進行離線虛擬映像檔管理的工具。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="default">libguestfs</packagereq>
- <packagereq type="optional">libguestfs-inspect-icons</packagereq>
- <packagereq type="optional">libguestfs-java</packagereq>
- <packagereq type="optional">libguestfs-tools</packagereq>
- <packagereq type="optional">libguestfs-tools-c</packagereq>
- </packagelist>
- </group>
- <group>
- <id>web-server</id>
- <name>Web Server</name>
- <name xml:lang="af">Webbediener</name>
- <name xml:lang="am">የድር ሰርቨር</name>
- <name xml:lang="ar">خادم وٍبْ</name>
- <name xml:lang="as">ৱেব চাৰ্ভাৰ।</name>
- <name xml:lang="bal">سرور وب</name>
- <name xml:lang="be">Паслужнік павуціньня</name>
- <name xml:lang="bg">Уеб сървър</name>
- <name xml:lang="bn">ওয়েব সার্ভার</name>
- <name xml:lang="bn_IN">ওয়েব সার্ভার</name>
- <name xml:lang="bs">Internetski poslužitelj</name>
- <name xml:lang="ca">Servidor web</name>
- <name xml:lang="cs">WWW server</name>
- <name xml:lang="cy">Gweinydd Gwe</name>
- <name xml:lang="da">Webserver</name>
- <name xml:lang="de">Web-Server</name>
- <name xml:lang="el">Εξυπηρετητής ιστοσελίδων</name>
- <name xml:lang="en_GB">Web Server</name>
- <name xml:lang="es">Servidor Web</name>
- <name xml:lang="et">Veebiserver</name>
- <name xml:lang="eu">Web-zerbitzaria</name>
- <name xml:lang="fa">کارگزار وب</name>
- <name xml:lang="fi">WWW-palvelin</name>
- <name xml:lang="fr">Serveur Web</name>
- <name xml:lang="gl">Servidor web</name>
- <name xml:lang="gu">વેબ સર્વર</name>
- <name xml:lang="he">שרת Web.</name>
- <name xml:lang="hi">वेब सर्वर</name>
- <name xml:lang="hr">Internetski poslužitelj</name>
- <name xml:lang="hu">Webkiszolgáló</name>
- <name xml:lang="hy">Վեբ սերվեր</name>
- <name xml:lang="ia">Servitor web</name>
- <name xml:lang="id">Server Web</name>
- <name xml:lang="ilo">Serbidor ti Saput</name>
- <name xml:lang="is">Vefþjónn</name>
- <name xml:lang="it">Server Web</name>
- <name xml:lang="ja">Web サーバー</name>
- <name xml:lang="ka">ვებ-სერვერი</name>
- <name xml:lang="kn">ಜಾಲ ಪೂರೈಕೆಗಣಕ</name>
- <name xml:lang="ko">웹 서버</name>
- <name xml:lang="lv">Interneta serveris</name>
- <name xml:lang="mai">वेब सर्वर</name>
- <name xml:lang="mk">Веб сервер</name>
- <name xml:lang="ml">വെബ് സര്‍വര്‍</name>
- <name xml:lang="mr">जाल(वेब) सर्व्हर</name>
- <name xml:lang="ms">Pelayan Web</name>
- <name xml:lang="nb">Webtjener</name>
- <name xml:lang="ne">वेब सर्भर</name>
- <name xml:lang="nl">Webserver</name>
- <name xml:lang="no">Webtjener</name>
- <name xml:lang="nso">Seabi sa Wepe</name>
- <name xml:lang="or">ୱେବ ସେବକ</name>
- <name xml:lang="pa">ਵੈੱਬ ਸਰਵਰ</name>
- <name xml:lang="pl">Serwer WWW</name>
- <name xml:lang="pt">Servidor Web</name>
- <name xml:lang="pt_BR">Servidor Web</name>
- <name xml:lang="ro">Server Web</name>
- <name xml:lang="ru">Веб-сервер</name>
- <name xml:lang="si">වියුණු සේවා දායකය</name>
- <name xml:lang="sk">WWW server</name>
- <name xml:lang="sl">Spletni strežnik</name>
- <name xml:lang="sq">Shërbyes Web</name>
- <name xml:lang="sr">Веб сервер</name>
- <name xml:lang="sr@latin">Veb server</name>
- <name xml:lang="sr@Latn">Veb server</name>
- <name xml:lang="sv">Webbserver</name>
- <name xml:lang="ta">இணைய சேவையகம்</name>
- <name xml:lang="te">వెబ్ సేవిక</name>
- <name xml:lang="tg">Хидматгоҳи Веб</name>
- <name xml:lang="th">ตัวให้บริการเว็บ</name>
- <name xml:lang="tr">Ağ Sunucusu</name>
- <name xml:lang="uk">Веб-сервер</name>
- <name xml:lang="ur">سرور (Web) ويب</name>
- <name xml:lang="vi">Server Web</name>
- <name xml:lang="zh_CN">万维网服务器</name>
- <name xml:lang="zh_TW">網頁伺服器</name>
- <name xml:lang="zu">Umlekeleli we-web</name>
- <description>Allows the system to act as a web server, and run Perl and Python web applications.</description>
- <description xml:lang="as">ৱেব চাৰ্ভাৰ ৰূপে চিস্টেম ব্যৱহাৰ কৰে, Perl আৰু Python ৱেব এপ্লিকেচন সঞ্চালনৰ বাবে সহায়ক।</description>
- <description xml:lang="bn">ওয়েব সার্ভার রূপে সিস্টেমটি ব্যবহার করে Perl ও Python ওয়েব অ্যাপ্লিকেশন সঞ্চালনার জন্য সহায়ক।</description>
- <description xml:lang="bn_IN">ওয়েব সার্ভার রূপে সিস্টেমটি ব্যবহার করে Perl ও Python ওয়েব অ্যাপ্লিকেশন সঞ্চালনার জন্য সহায়ক।</description>
- <description xml:lang="cs">Umožňuje používat počítač jako webový server s podporou pro aplikace v Perlu a Pythonu.</description>
- <description xml:lang="de">Ermöglicht dem System, als Web-Server zu fungieren und Perl- und Python-Web-Applikationen auszuführen.</description>
- <description xml:lang="es">Permite al sistema actuar como servidor web y aplicaciones de web Perl y Python.</description>
- <description xml:lang="fr">Permet au système d'agir comme un serveur web, et d'exécuter les applications web Perl et Python.</description>
- <description xml:lang="gu">વેબ સર્વર તરીકે કામ કરવા માટે સિસ્ટમને પરવાનગી આપે છે, અને Perl અને Python વેબ કાર્યક્રમોને ચલાવો.</description>
- <description xml:lang="hi">तंत्र को वेब सर्वर के रूप में काम करने की स्वीकृति दें और Perl और Python वेब अनुप्रयोग चलाएँ.</description>
- <description xml:lang="ia">Illo permitte al systema de ager como un servitor web e exequer applicationes in le linguages Perl e Python.</description>
- <description xml:lang="it">Permette al sistema di comportarsi come un web server ed eseguire le applicazioni web Python e Perl.</description>
- <description xml:lang="ja">システムが Web サーバとして機能し、Perl や Python Web アプリケーションを実行できるようにします。</description>
- <description xml:lang="kn">ವ್ಯವಸ್ಥೆಯು ಒಂದು ಜಾಲ ಪೂರೈಕೆಗಣಕವಾಗಿ ನಿರ್ವಹಿಸಲು, ಹಾಗು Perl ಮತ್ತು Python ಜಾಲಬಂದ ಅನ್ವಯಗಳನ್ನು ಚಲಾಯಿಸಲು ಇದು ಅನುಮತಿಸುತ್ತದೆ.</description>
- <description xml:lang="ko">시스템이 웹서버로 동작하며 Perl과 Python 웹 프로그램을 실행하도록 허용</description>
- <description xml:lang="ml">ഒരു വെബ് സര്‍വറായി പേള്‍, പൈഥണ്‍ വെബ് പ്രയോഗങ്ങള്‍ പ്രവര്‍ത്തിപ്പിക്കുന്നതിനു് സിസ്റ്റത്തിനെ സഹായിക്കുന്നു.</description>
- <description xml:lang="mr">प्रणाली वेब सर्व्हर, आणि Perl व Python वेब ऍप्लिकेशन्स् चालवण्यास म्हणून कार्य करण्यास शक्य करतो.</description>
- <description xml:lang="or">ତନ୍ତ୍ରକୁ ଗୋଟିଏ ୱେବ ସର୍ଭର ଭାବରେ କାର୍ଯ୍ୟ କରିବା ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ, ଏବଂ Perl ଏବଂ Python ୱେବ ପ୍ରୟୋଗଗୁଡ଼ିକୁ ଚଲାନ୍ତୁ।</description>
- <description xml:lang="pa">ਸਿਸਟਮ ਨੂੰ ਵੈੱਬ ਸਰਵਰ ਵਾਂਗ ਕੰਮ ਕਰਨ, ਅਤੇ Perl ਅਤੇ Python ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਚਲਾਉਣ ਲਈ ਮਦਦ ਕਰਦਾ ਹੈ।</description>
- <description xml:lang="pl">Umożliwia systemowi działanie jako serwer WWW oraz wykonywanie aplikacji WWW w językach Perl i Python</description>
- <description xml:lang="pt_BR">Permite que o sistema aja como um servidor de web, e execute um aplicativo de Perl e Python.</description>
- <description xml:lang="ru">Позволяет системе функционировать в качестве веб-сервера и выполнять веб-приложения Perl и Python.</description>
- <description xml:lang="sv">Låter systemet agera som en webbserver, och köra webbprogram i Perl och Python.</description>
- <description xml:lang="ta">கணினியானது ஒரு இணைய சேவையகமாக செயல்பட அனுமதிக்கிறது, Perl மற்றும் Python இணைய பயன்பாடுகளாகவும் இயங்க அனுமதிக்கிறது.</description>
- <description xml:lang="te">సిస్టమ్ వెబ్ సర్వర్ వలె పనిచేయుటకు, Perl మరియు Python వెబ్ అనువర్తనములను నడుపుటకు అనుమతించును.</description>
- <description xml:lang="uk">Надає системі змогу працювати у режимі веб-сервера та запускати веб-програми мовами Perl і Python.</description>
- <description xml:lang="zh_CN">允许将系统作为 web 服务器使用,并运行 Perl 和 Python web 应用程序。</description>
- <description xml:lang="zh_TW">允許系統被用來作為網站伺服器,並執行 Perl 和 Python 網站應用程式。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">httpd</packagereq>
- <packagereq type="default">crypto-utils</packagereq>
- <packagereq type="default">httpd-manual</packagereq>
- <packagereq type="default">mod_fcgid</packagereq>
- <packagereq type="default">mod_ssl</packagereq>
- <packagereq type="optional">certmonger</packagereq>
- <packagereq type="optional">keycloak-httpd-client-install</packagereq>
- <packagereq type="optional">libmemcached</packagereq>
- <packagereq type="optional">memcached</packagereq>
- <packagereq type="optional">mod_auth_kerb</packagereq>
- <packagereq type="optional">mod_auth_mellon</packagereq>
- <packagereq type="optional">mod_auth_openidc</packagereq>
- <packagereq type="optional">mod_nss</packagereq>
- <packagereq type="optional">mod_revocator</packagereq>
- <packagereq type="optional">mod_security</packagereq>
- <packagereq type="optional">mod_security_crs</packagereq>
- <packagereq type="optional">perl-CGI</packagereq>
- <packagereq type="optional">perl-CGI-Session</packagereq>
- <packagereq type="optional">python-memcached</packagereq>
- <packagereq type="optional">squid</packagereq>
- </packagelist>
- </group>
- <group>
- <id>web-servlet</id>
- <name>Web Servlet Engine</name>
- <name xml:lang="as">ৱেব চাৰ্ভলেট ইঞ্জিন</name>
- <name xml:lang="bn">ওয়েব সার্ভলেট ইঞ্জিন</name>
- <name xml:lang="bn_IN">ওয়েব সার্ভলেট ইঞ্জিন</name>
- <name xml:lang="cs">Webový kontejner pro servlety</name>
- <name xml:lang="de">Web-Servlet-Engine</name>
- <name xml:lang="es">Motor Servlet de Web</name>
- <name xml:lang="fr">Moteur servlet web</name>
- <name xml:lang="gu">વેબ સર્વલેટ એંજિન</name>
- <name xml:lang="hi">वेब सर्वलेट इंजन</name>
- <name xml:lang="ia">Motor de servlet web</name>
- <name xml:lang="it">Motore Web Servlet</name>
- <name xml:lang="ja">Web サーブレットエンジン</name>
- <name xml:lang="kn">ಜಾಲ ಪೂರೈಕೆಗಣಕ ಎಂಜಿನ್</name>
- <name xml:lang="ko">웹 서블렛 엔진</name>
- <name xml:lang="ml">വെബ് സര്‍വ്‌ലെറ്റ് എഞ്ചിന്‍</name>
- <name xml:lang="mr">वेब सर्व्हरलेट इंजीन</name>
- <name xml:lang="or">ୱେବ ସର୍ଭଲେଟ ଯନ୍ତ୍ର</name>
- <name xml:lang="pa">ਵੈੱਬ ਸਰਵਲੈੱਟ ਇੰਜਣ</name>
- <name xml:lang="pl">Mechanizm servletów WWW</name>
- <name xml:lang="pt_BR">Máquina da Servidor Web</name>
- <name xml:lang="ru">Веб-сервлеты</name>
- <name xml:lang="sv">Webbservletmotor</name>
- <name xml:lang="ta">இணைய செர்வ்லெட் என்ஜின்</name>
- <name xml:lang="te">వెబ్ సర్వలెట్ యింజన్</name>
- <name xml:lang="uk">Рушій інтернет-сервлетів</name>
- <name xml:lang="zh_CN">Web 服务器程序引擎</name>
- <name xml:lang="zh_TW">網站 Servlet 引擎</name>
- <description>Allows the system to host Java servlets.</description>
- <description xml:lang="as">চিস্টেমত Java servlet হস্ট কৰাৰ সুবিধা উপলব্ধ কৰা হয়।</description>
- <description xml:lang="bn">সিস্টেমের মধ্যে Java servlet হোস্ট করার সুবিধা উপলব্ধ করা হয়।</description>
- <description xml:lang="bn_IN">সিস্টেমের মধ্যে Java servlet হোস্ট করার সুবিধা উপলব্ধ করা হয়।</description>
- <description xml:lang="cs">Umožňuje systému poskytovat servlety pro Javu</description>
- <description xml:lang="de">Ermöglicht dem System, Java-Servlets zu hosten.</description>
- <description xml:lang="es">Permite al sistema albergar servlets Java.</description>
- <description xml:lang="fr">Permet au système d'être hôte à des servlets Java.</description>
- <description xml:lang="gu">Java સર્વલેટને યજમાનિત કરવા માટે સિસ્ટમને પરવાનગી આપે છે.</description>
- <description xml:lang="hi">सिस्टम को Java सर्वलेट को होस्ट करने की स्वीकृति दें.</description>
- <description xml:lang="ia">Illo permitte al systema de exequer servlets Java.</description>
- <description xml:lang="it">Permette al sistema di ospitare Java servlets.</description>
- <description xml:lang="ja">システムが Java サーブレットをホストできるようにします。</description>
- <description xml:lang="kn">ಜಾವಾ ಸರ್ವಲೆಟ್‌ಗಳನ್ನು ಇರಿಕೊಳ್ಳಲು ವ್ಯವಸ್ಥೆಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.</description>
- <description xml:lang="ko">시스템이 자바 서브릿을 호스트하도록 허용</description>
- <description xml:lang="ml">ജാവാ സര്‍വ്‌ലെറ്റുകള്‍ ഹോസ്റ്റ് ചെയ്യുന്നതിനായി സിസ്റ്റത്തിനെ അനുവദിക്കുന്നു.</description>
- <description xml:lang="mr">प्रणालीला Java सर्व्हलेट्स् होस्ट करण्यास शक्य करतो.</description>
- <description xml:lang="or">ତନ୍ତ୍ରକୁ Java servlets କୁ ହୋଷ୍ଟ କରିବା ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ।</description>
- <description xml:lang="pa">ਸਿਸਟਮ ਨੂੰ ਜਾਵਾ ਸਰਵਲਿਟਸ ਹੋਸਟ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ।</description>
- <description xml:lang="pl">Umożliwia systemowi udostępnianie servletów Javy.</description>
- <description xml:lang="pt_BR">Permite que o sistema acomode servlets do java.</description>
- <description xml:lang="ru">Позволяет системе предоставлять сервлеты Java.</description>
- <description xml:lang="sv">Låter systemet vara värd för Java-servlet:ar.</description>
- <description xml:lang="ta">ஜாவா servlets புரவல கணினி அனுமதிக்கிறது .</description>
- <description xml:lang="te">సిస్టమ్ జావా సర్వులెట్సును హోస్టు చేయుటకు అనుమతించును.</description>
- <description xml:lang="uk">Надає системі змогу забезпечувати роботу сервлетів Java.</description>
- <description xml:lang="zh_CN">允许将系统作为主机 Java 服务器程序使用。</description>
- <description xml:lang="zh_TW">允許系統 host Java servlet。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">tomcat</packagereq>
- <packagereq type="mandatory">tomcat-admin-webapps</packagereq>
- <packagereq type="mandatory">tomcat-webapps</packagereq>
- </packagelist>
- </group>
- <group>
- <id>x11</id>
- <name>X Window System</name>
- <name xml:lang="af">X Window-stelsel</name>
- <name xml:lang="am">የX መስኮት ሲስተም</name>
- <name xml:lang="ar">نظام نوافذ X</name>
- <name xml:lang="as">X উইন্ডো চিস্টেম</name>
- <name xml:lang="bal">سیستم ویندو X</name>
- <name xml:lang="be">X Window System</name>
- <name xml:lang="bg">Система за прозорци Х</name>
- <name xml:lang="bn">X উইন্ডো সিস্টেম</name>
- <name xml:lang="bn_IN">X উইন্ডো সিস্টেম</name>
- <name xml:lang="bs">X sustav prozora</name>
- <name xml:lang="ca">Sistema de finestres X</name>
- <name xml:lang="cs">X Window System</name>
- <name xml:lang="cy">System Ffenestri X</name>
- <name xml:lang="da">Vinduessystemet X</name>
- <name xml:lang="de">X-Window-System</name>
- <name xml:lang="el">Παραθυρικό σύστημα Χ</name>
- <name xml:lang="en_GB">X Window System</name>
- <name xml:lang="es">Sistema X Window</name>
- <name xml:lang="et">X Window süsteem</name>
- <name xml:lang="eu">X leiho sistema</name>
- <name xml:lang="fa">سیستم پنجره‌ای X</name>
- <name xml:lang="fi">X-ikkunointijärjestelmä</name>
- <name xml:lang="fr">Système X Window</name>
- <name xml:lang="gl">Sistema X Window</name>
- <name xml:lang="gu">X વિન્ડો સિસ્ટમ</name>
- <name xml:lang="he">סביבת החלונות X</name>
- <name xml:lang="hi">X विंडो सिस्टम</name>
- <name xml:lang="hr">X sustav prozora</name>
- <name xml:lang="hu">X Window System grafikus rendszer</name>
- <name xml:lang="hy">X պատուհանների համակարգ</name>
- <name xml:lang="ia">Systema X Window</name>
- <name xml:lang="id">Sistem X Window</name>
- <name xml:lang="ilo">Sistema ti X Window</name>
- <name xml:lang="is">X gluggakerfið</name>
- <name xml:lang="it">Sistema X Window</name>
- <name xml:lang="ja">X Window System</name>
- <name xml:lang="kn">X Window ವ್ಯವಸ್ಥೆ</name>
- <name xml:lang="ko">X 윈도우 시스템</name>
- <name xml:lang="lv">X Window sistēma</name>
- <name xml:lang="mai">X विंडो सिस्टम</name>
- <name xml:lang="mk">X графички систем</name>
- <name xml:lang="ml">X Window സിസ്റ്റം</name>
- <name xml:lang="mr">X विंडो प्रणाली</name>
- <name xml:lang="ms">Sistem X Window</name>
- <name xml:lang="nb">X-vindussystemet</name>
- <name xml:lang="ne">X सञ्झ्याल प्रणाली</name>
- <name xml:lang="nl">X Window systeem</name>
- <name xml:lang="no">X-vindussystemet</name>
- <name xml:lang="nso">Tshepedišo ya Lefesetere la X</name>
- <name xml:lang="or">X ୱିଣ୍ଡୋ ତନ୍ତ୍ର</name>
- <name xml:lang="pa">X ਵਿੰਡੋ ਸਿਸਟਮ</name>
- <name xml:lang="pl">System X Window</name>
- <name xml:lang="pt">Sistema de Janelas X</name>
- <name xml:lang="pt_BR">X Window System</name>
- <name xml:lang="ro">Sistemul de ferestre X</name>
- <name xml:lang="ru">Система X Window</name>
- <name xml:lang="si">X කවුළු පද්ධතිය</name>
- <name xml:lang="sk">X Window systém</name>
- <name xml:lang="sl">Okenski sistem X</name>
- <name xml:lang="sq">Sistemi X i Dritareve</name>
- <name xml:lang="sr">Икс систем прозора</name>
- <name xml:lang="sr@latin">X sistem prozora</name>
- <name xml:lang="sr@Latn">X sistem prozora</name>
- <name xml:lang="sv">Fönstersystemet X</name>
- <name xml:lang="ta">X விண்டோ அமைப்பு</name>
- <name xml:lang="te">X విండో విధానం</name>
- <name xml:lang="tg">Системаи X Window</name>
- <name xml:lang="th">ระบบ X Window</name>
- <name xml:lang="tr">X Pencere Sistemi</name>
- <name xml:lang="uk">Система X Window</name>
- <name xml:lang="ur">ونڈوز نظام X</name>
- <name xml:lang="vi">X Window System</name>
- <name xml:lang="zh_CN">X 窗口系统</name>
- <name xml:lang="zh_TW">X 視窗系統</name>
- <name xml:lang="zu">X Isistimu Yewindi</name>
- <description>X Window System Support.</description>
- <description xml:lang="as">X উইন্ডো চিস্টেম সমৰ্থন।</description>
- <description xml:lang="bn">X Window সিস্টেম সমর্থন।</description>
- <description xml:lang="bn_IN">X Window সিস্টেম সমর্থন।</description>
- <description xml:lang="cs">Podpora pro X Window System.</description>
- <description xml:lang="de">X-Window-System-Unterstützung.</description>
- <description xml:lang="es">Soporte para sistema X Window.</description>
- <description xml:lang="fr">Prise en charge X Window System.</description>
- <description xml:lang="gu">X વિન્ડો સિસ્ટમ આધાર.</description>
- <description xml:lang="hi">X विंडो तंत्र समर्थन.</description>
- <description xml:lang="ia">Supporto pro le systema X Window.</description>
- <description xml:lang="it">Supporto sistema X Window.</description>
- <description xml:lang="ja">X Window システムのサポート</description>
- <description xml:lang="kn">X ವಿಂಡೊ ವ್ಯವಸ್ಥೆಯ ಬೆಂಬಲ.</description>
- <description xml:lang="ko">X 윈도우 지원.</description>
- <description xml:lang="ml">X വിന്‍ഡോ സിസ്റ്റം പിന്തുണ.</description>
- <description xml:lang="mr">X Window प्रणाली समर्थन.</description>
- <description xml:lang="or">X ୱିଣ୍ଡୋ ତନ୍ତ୍ର ସମର୍ଥନ।</description>
- <description xml:lang="pa">X ਵਿੰਡੋ ਸਿਸਟਮ ਸਮਰਥਨ।</description>
- <description xml:lang="pl">Obsługa systemu X Window.</description>
- <description xml:lang="pt_BR">Suporte para Sistema X Window</description>
- <description xml:lang="ru">Поддержка системы X Window.</description>
- <description xml:lang="sv">Stöd för fönstersystemet X.</description>
- <description xml:lang="ta">X விண்டோ கணினி சேவை.</description>
- <description xml:lang="te">X విండో సిస్టమ్ మద్దతు.</description>
- <description xml:lang="uk">Підтримка системи X Window.</description>
- <description xml:lang="zh_CN">X 窗口系统支持。</description>
- <description xml:lang="zh_TW">X Window 系統支援。</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">glx-utils</packagereq>
- <packagereq type="mandatory">initial-setup-gui</packagereq>
- <packagereq type="mandatory">mesa-dri-drivers</packagereq>
- <packagereq type="mandatory">plymouth-system-theme</packagereq>
- <packagereq type="mandatory">spice-vdagent</packagereq>
- <packagereq type="mandatory">xorg-x11-drivers</packagereq>
- <packagereq type="mandatory">xorg-x11-server-Xorg</packagereq>
- <packagereq type="mandatory">xorg-x11-utils</packagereq>
- <packagereq type="mandatory">xorg-x11-xauth</packagereq>
- <packagereq type="mandatory">xorg-x11-xinit</packagereq>
- <packagereq type="mandatory">xvattr</packagereq>
- <packagereq type="optional">tigervnc-server</packagereq>
- <packagereq type="optional">xorg-x11-drv-keyboard</packagereq>
- <packagereq type="optional">xorg-x11-drv-libinput</packagereq>
- <packagereq type="optional">xorg-x11-drv-mouse</packagereq>
- <packagereq type="optional">xorg-x11-drv-openchrome</packagereq>
- </packagelist>
- </group>
- <category>
- <id>applications</id>
- <name>Applications</name>
- <name xml:lang="af">Toepassings</name>
- <name xml:lang="am">መጠቀሚያ ፕሮግራሞች</name>
- <name xml:lang="ar">تطبيقات</name>
- <name xml:lang="as">এপ্লিকেচন</name>
- <name xml:lang="bal">کارمرزیان</name>
- <name xml:lang="be">Дастасаваньні</name>
- <name xml:lang="bg">Приложения</name>
- <name xml:lang="bn">অ্যাপ্লিকেশন</name>
- <name xml:lang="bn_IN">অ্যাপ্লিকেশন</name>
- <name xml:lang="bs">Aplikacije</name>
- <name xml:lang="ca">Aplicacions</name>
- <name xml:lang="cs">Aplikace</name>
- <name xml:lang="cy">Cymwysiadau</name>
- <name xml:lang="da">Programmer</name>
- <name xml:lang="de">Anwendungen</name>
- <name xml:lang="el">Εφαρμογές</name>
- <name xml:lang="en_GB">Applications</name>
- <name xml:lang="es">Aplicaciones</name>
- <name xml:lang="et">Rakendused</name>
- <name xml:lang="eu">Aplikazioak</name>
- <name xml:lang="fa">برنامه‌ها</name>
- <name xml:lang="fi">Apuohjelmat</name>
- <name xml:lang="fr">Applications</name>
- <name xml:lang="gl">Aplicacións</name>
- <name xml:lang="gu">કાર્યક્રમો</name>
- <name xml:lang="he">ישומים</name>
- <name xml:lang="hi">अनुप्रयोग</name>
- <name xml:lang="hr">Aplikacije</name>
- <name xml:lang="hu">Alkalmazások</name>
- <name xml:lang="hy">ծրագրեր</name>
- <name xml:lang="ia">Applicationes</name>
- <name xml:lang="id">Aplikasi</name>
- <name xml:lang="ilo">Dagiti Aplikasion</name>
- <name xml:lang="is">Forrit</name>
- <name xml:lang="it">Applicazioni</name>
- <name xml:lang="ja">アプリケーション</name>
- <name xml:lang="ka">პროგრამები</name>
- <name xml:lang="kn">ಅನ್ವಯಗಳು</name>
- <name xml:lang="ko">응용 프로그램</name>
- <name xml:lang="lv">Lietojumprogrammas</name>
- <name xml:lang="mai">अनुप्रयोग</name>
- <name xml:lang="mk">Апликации</name>
- <name xml:lang="ml">പ്രയോഗങ്ങള്‍</name>
- <name xml:lang="mr">अनुप्रयोग</name>
- <name xml:lang="ms">Aplikasi</name>
- <name xml:lang="nb">Programmer</name>
- <name xml:lang="ne">अनुप्रयोग</name>
- <name xml:lang="nl">Toepassingen</name>
- <name xml:lang="no">Programmer</name>
- <name xml:lang="nso">Ditirišo</name>
- <name xml:lang="or">ପ୍ରୟୋଗ</name>
- <name xml:lang="pa">ਐਪਲੀਕੇਸ਼ਨ</name>
- <name xml:lang="pl">Aplikacje</name>
- <name xml:lang="pt">Aplicações</name>
- <name xml:lang="pt_BR">Aplicações</name>
- <name xml:lang="ro">Aplicaţii</name>
- <name xml:lang="ru">Приложения</name>
- <name xml:lang="si">වැඩසටහන්</name>
- <name xml:lang="sk">Aplikácie</name>
- <name xml:lang="sl">Aplikacije</name>
- <name xml:lang="sq">Zbatime</name>
- <name xml:lang="sr">Програми</name>
- <name xml:lang="sr@latin">Programi</name>
- <name xml:lang="sr@Latn">Programi</name>
- <name xml:lang="sv">Program</name>
- <name xml:lang="ta">பயன்பாடுகள்</name>
- <name xml:lang="te">అనువర్తనాలు</name>
- <name xml:lang="tg">Барномаҳо</name>
- <name xml:lang="th">แอพลิเคชัน</name>
- <name xml:lang="tr">Uygulamalar</name>
- <name xml:lang="uk">Програми</name>
- <name xml:lang="ur">اپلکیشن</name>
- <name xml:lang="vi">Ứng dụng</name>
- <name xml:lang="zh_CN">应用程序</name>
- <name xml:lang="zh_TW">應用程式</name>
- <name xml:lang="zu">Abayaleli</name>
- <description>End-user applications.</description>
- <description xml:lang="as">অন্ত-ব্যৱহাৰকাৰীৰ এপ্লিকেচন।</description>
- <description xml:lang="bn">ব্যবহারকারী-প্রান্তের অ্যাপ্লিকেশন।</description>
- <description xml:lang="bn_IN">ব্যবহারকারী-প্রান্তের অ্যাপ্লিকেশন।</description>
- <description xml:lang="cs">Uživatelské aplikace</description>
- <description xml:lang="de">End-Benutzer-Anwendungen.</description>
- <description xml:lang="es">Aplicaciones de usuario final.</description>
- <description xml:lang="fr">Applications pour utilisateur final.</description>
- <description xml:lang="gu">અંતિમ-વપરાશકર્તા કાર્યક્રમો.</description>
- <description xml:lang="hi">अंत्य उपयोक्ता अनुप्रयोग.</description>
- <description xml:lang="ia">Applicationes de usatores final.</description>
- <description xml:lang="it">Applicazioni utente finale.</description>
- <description xml:lang="ja">エンドユーザーアプリケーション</description>
- <description xml:lang="kn">ಎಂಡ್-ಯೂಸರ್ ಅನ್ವಯಗಳು</description>
- <description xml:lang="ko">최종사용자 어플리케이션.</description>
- <description xml:lang="ml">ഉപയോക്താവിനുള്ള പ്രയോഗങ്ങള്‍.</description>
- <description xml:lang="mr">एंड-यूजर ऍप्लिकेशन्स्.</description>
- <description xml:lang="or">ଚାଳକ ପ୍ରୟୋଗଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">ਅੰਤਲਾ-ਯੂਜ਼ਰ ਐਪਲੀਕੇਸ਼ਨ।</description>
- <description xml:lang="pl">Aplikacje dla użytkowników końcowych.</description>
- <description xml:lang="pt_BR">Aplicações de usuário final.</description>
- <description xml:lang="ru">Приложения пользователя.</description>
- <description xml:lang="sv">Slutanvändarprogram.</description>
- <description xml:lang="ta">கடைசி-பயனர் பயன்பாடுகள்.</description>
- <description xml:lang="te">అంత్య-వినియోగదారి అనువర్తనములు.</description>
- <description xml:lang="uk">Програми для кінцевих користувачів.</description>
- <description xml:lang="zh_CN">终端用户应用程序。</description>
- <description xml:lang="zh_TW">終端用戶應用程式。</description>
- <grouplist>
- <groupid>emacs</groupid>
- <groupid>gnome-apps</groupid>
- <groupid>graphics</groupid>
- <groupid>internet-applications</groupid>
- <groupid>internet-browser</groupid>
- <groupid>kde-apps</groupid>
- <groupid>kde-media</groupid>
- <groupid>office-suite</groupid>
- <groupid>technical-writing</groupid>
- </grouplist>
- </category>
- <category>
- <id>base-system</id>
- <name>System</name>
- <name xml:lang="af">Rekenaar</name>
- <name xml:lang="am">ሲስተም</name>
- <name xml:lang="ar">نظام</name>
- <name xml:lang="as">চিস্টেম</name>
- <name xml:lang="be">Сытэма</name>
- <name xml:lang="bn">সিস্টেম</name>
- <name xml:lang="bn_IN">সিস্টেম</name>
- <name xml:lang="bs">Sustav</name>
- <name xml:lang="ca">Sistema</name>
- <name xml:lang="cs">Systém</name>
- <name xml:lang="cy">System</name>
- <name xml:lang="de">System</name>
- <name xml:lang="en_GB">System</name>
- <name xml:lang="es">Sistema</name>
- <name xml:lang="eu">Sistema</name>
- <name xml:lang="fa">سیستم</name>
- <name xml:lang="fi">Järjestelmä</name>
- <name xml:lang="fr">Système</name>
- <name xml:lang="gl">Sistema</name>
- <name xml:lang="gu">સિસ્ટમ</name>
- <name xml:lang="hi">तंत्र</name>
- <name xml:lang="hr">Sustav</name>
- <name xml:lang="hu">Rendszer</name>
- <name xml:lang="hy">Համակարգ</name>
- <name xml:lang="id">Sistem</name>
- <name xml:lang="ilo">Sistema</name>
- <name xml:lang="it">Sistema</name>
- <name xml:lang="ja">システム</name>
- <name xml:lang="ka">სისტემა</name>
- <name xml:lang="kn">ವ್ಯವಸ್ಥೆ</name>
- <name xml:lang="ko">시스템</name>
- <name xml:lang="lv">Sistēma</name>
- <name xml:lang="mk">Систем</name>
- <name xml:lang="ml">സിസ്റ്റം</name>
- <name xml:lang="mr">प्रणाली</name>
- <name xml:lang="no">System</name>
- <name xml:lang="nso">Tshepedišo</name>
- <name xml:lang="or">ତନ୍ତ୍ର</name>
- <name xml:lang="pa">ਸਿਸਟਮ</name>
- <name xml:lang="pl">System</name>
- <name xml:lang="pt_BR">Sistema</name>
- <name xml:lang="ru">Система</name>
- <name xml:lang="si">පද්ධතිය</name>
- <name xml:lang="sl">Sistem</name>
- <name xml:lang="sq">Sistem</name>
- <name xml:lang="ta">கணினி</name>
- <name xml:lang="te">వ్యవస్థ</name>
- <name xml:lang="th">ระบบ</name>
- <name xml:lang="tr">Sistem</name>
- <name xml:lang="uk">Система</name>
- <name xml:lang="ur">نظام</name>
- <name xml:lang="vi">Hệ thống</name>
- <name xml:lang="zh_CN">系统</name>
- <name xml:lang="zh_TW">系統</name>
- <name xml:lang="zu">Isistimu</name>
- <description>Core system components.</description>
- <description xml:lang="as">চিস্টেমৰ মূখ্য উপাদানসমূহ।</description>
- <description xml:lang="bn">সিস্টেমের কোর সামগ্রী।</description>
- <description xml:lang="bn_IN">সিস্টেমের কোর সামগ্রী।</description>
- <description xml:lang="cs">Základní komponenty systému.</description>
- <description xml:lang="de">Zentrale Systemkomponenten.</description>
- <description xml:lang="es">Componentes de sistema Core</description>
- <description xml:lang="fr">Composants du système de base.</description>
- <description xml:lang="gu">કોર સિસ્ટમ સાધનો.</description>
- <description xml:lang="hi">प्रधान सिस्टम घटक</description>
- <description xml:lang="it">Componenti di base del sistema.</description>
- <description xml:lang="ja">コアシステムコンポーネント</description>
- <description xml:lang="kn">ಪ್ರಮುಖ ವ್ಯವಸ್ಥೆಯ ಘಟಕಗಳು.</description>
- <description xml:lang="ko">핵심 시스템 콤포넌트.</description>
- <description xml:lang="ml">കോര്‍ സിസ്റ്റം ഘടകങ്ങള്‍.</description>
- <description xml:lang="mr">कोर प्रणाली घटके.</description>
- <description xml:lang="or">ମୂଖ୍ୟ ତନ୍ତ୍ର ଉପାଦାନଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">ਮੁੱਖ ਸਿਸਟਮ ਹਿੱਸੇ।</description>
- <description xml:lang="pl">Główne składniki systemu.</description>
- <description xml:lang="pt_BR">Componentes de sistema central</description>
- <description xml:lang="ru">Основные компоненты системы.</description>
- <description xml:lang="sv">Grundläggande systemkomponenter.</description>
- <description xml:lang="ta">உள்ளீடு கணினி ஆக்கக்கூறுகள்.</description>
- <description xml:lang="te">కోర్ సిస్టమ్ మూలకములు.</description>
- <description xml:lang="uk">Основні компонент систем.</description>
- <description xml:lang="zh_CN">核系统组件。</description>
- <description xml:lang="zh_TW">核心系統元件。</description>
- <grouplist>
- <groupid>backup-client</groupid>
- <groupid>base</groupid>
- <groupid>compat-libraries</groupid>
- <groupid>console-internet</groupid>
- <groupid>debugging</groupid>
- <groupid>dial-up</groupid>
- <groupid>directory-client</groupid>
- <groupid>hardware-monitoring</groupid>
- <groupid>infiniband</groupid>
- <groupid>java-platform</groupid>
- <groupid>large-systems</groupid>
- <groupid>legacy-unix</groupid>
- <groupid>mainframe-access</groupid>
- <groupid>network-file-system-client</groupid>
- <groupid>network-tools</groupid>
- <groupid>performance</groupid>
- <groupid>perl-runtime</groupid>
- <groupid>print-client</groupid>
- <groupid>ruby-runtime</groupid>
- <groupid>scientific</groupid>
- <groupid>security-tools</groupid>
- <groupid>smart-card</groupid>
- </grouplist>
- </category>
- <category>
- <id>databases</id>
- <name>Databases</name>
- <name xml:lang="as">ডাটাবেইচসমূহ</name>
- <name xml:lang="bn">ডাটাবেস</name>
- <name xml:lang="bn_IN">ডাটাবেস</name>
- <name xml:lang="cs">Databáze</name>
- <name xml:lang="de">Datenbanken</name>
- <name xml:lang="es">Base de datos</name>
- <name xml:lang="eu">Datu-baseak</name>
- <name xml:lang="fr">Base de données</name>
- <name xml:lang="gu">ડેટાબેઝો</name>
- <name xml:lang="hi">डेटाबेस</name>
- <name xml:lang="it">Database</name>
- <name xml:lang="ja">データベース</name>
- <name xml:lang="kn">ದತ್ತಸಂಚಯಗಳು</name>
- <name xml:lang="ko">데이터베이스</name>
- <name xml:lang="ml">ഡാറ്റാബെയിസുകള്‍</name>
- <name xml:lang="mr">डाटाबेसेस्</name>
- <name xml:lang="or">ତଥ୍ଯାଧାରମାନ</name>
- <name xml:lang="pa">ਡਾਟਾਬੇਸ</name>
- <name xml:lang="pl">Bazy danych</name>
- <name xml:lang="pt_BR">Banco de Dados</name>
- <name xml:lang="ru">Базы данных</name>
- <name xml:lang="sv">Databaser</name>
- <name xml:lang="ta">தரவுத்தளங்கள்</name>
- <name xml:lang="te">డాటాబేస్‌లు</name>
- <name xml:lang="uk">Бази даних</name>
- <name xml:lang="zh_CN">数据库</name>
- <name xml:lang="zh_TW">資料庫</name>
- <description>SQL Databases.</description>
- <description xml:lang="as">SQL ডাটাবেইচসমূহ।</description>
- <description xml:lang="bn_IN">SQL ডেটাবেস।</description>
- <description xml:lang="cs">Databáze SQL.</description>
- <description xml:lang="de">SQL-Datenbanken.</description>
- <description xml:lang="es">Bases de datos SQL.</description>
- <description xml:lang="fr">Bases de données SQL.</description>
- <description xml:lang="gu">SQL ડેટાબેઝો.</description>
- <description xml:lang="hi">SQL डाटाबेस</description>
- <description xml:lang="it">Database SQL</description>
- <description xml:lang="ja">SQL データベースです。</description>
- <description xml:lang="kn">SQL ದತ್ತಸಂಚಯಗಳು.</description>
- <description xml:lang="ko">SQL 데이터베이스</description>
- <description xml:lang="ml">എസ്‌ക്യൂഎല്‍ ഡേറ്റാബെയിസുകള്‍.</description>
- <description xml:lang="mr">SQL डाटाबेसेस.</description>
- <description xml:lang="or">SQL ତଥ୍ୟାଧାର।</description>
- <description xml:lang="pa">SQL ਡਾਟਾਬੇਸ।</description>
- <description xml:lang="pl">Bazy danych SQL.</description>
- <description xml:lang="pt_BR">Banco de Dados SQL</description>
- <description xml:lang="ru">Базы данных MySQL.</description>
- <description xml:lang="ta">SQL தரவுத்தளங்கள்.</description>
- <description xml:lang="te">SQL డాటాబేస్‌లు.</description>
- <description xml:lang="uk">Бази даних SQL.</description>
- <description xml:lang="zh_CN">SQL 数据库。</description>
- <description xml:lang="zh_TW">SQL 資料庫。</description>
- <grouplist>
- <groupid>mariadb</groupid>
- <groupid>mariadb-client</groupid>
- <groupid>postgresql</groupid>
- <groupid>postgresql-client</groupid>
- </grouplist>
- </category>
- <category>
- <id>desktops</id>
- <name>Desktops</name>
- <name xml:lang="af">Werkskerms</name>
- <name xml:lang="am">ዴስክቶፖች</name>
- <name xml:lang="ar">أسطح المكتب</name>
- <name xml:lang="as">ডেস্কটপ</name>
- <name xml:lang="be">Стальцы</name>
- <name xml:lang="bn">ডেস্কটপ</name>
- <name xml:lang="bn_IN">ডেস্কটপ</name>
- <name xml:lang="bs">Radne površine</name>
- <name xml:lang="ca">Escriptoris</name>
- <name xml:lang="cs">Pracovní prostředí</name>
- <name xml:lang="cy">Penbyrddau</name>
- <name xml:lang="de">Desktops</name>
- <name xml:lang="en_GB">Desktops</name>
- <name xml:lang="es">Escritorios</name>
- <name xml:lang="eu">Mahaigainak</name>
- <name xml:lang="fa">محیط‌های رومیزی</name>
- <name xml:lang="fi">Työpöydät</name>
- <name xml:lang="fr">Bureaux</name>
- <name xml:lang="gl">Escritorios</name>
- <name xml:lang="gu">ડેસ્કટોપો</name>
- <name xml:lang="hi">डेस्कटॉप</name>
- <name xml:lang="hr">Radne površine</name>
- <name xml:lang="hu">Munkaasztalok</name>
- <name xml:lang="hy">Դեսքթոփներ</name>
- <name xml:lang="ia">Scriptorios</name>
- <name xml:lang="id">Desktop</name>
- <name xml:lang="ilo">Eskritorio</name>
- <name xml:lang="it">Desktop</name>
- <name xml:lang="ja">デスクトップ</name>
- <name xml:lang="ka">სამუშაო გარემოები</name>
- <name xml:lang="kn">ಗಣಕತೆರೆಗಳು</name>
- <name xml:lang="ko">데스크탑</name>
- <name xml:lang="lv">Darbvirsmas</name>
- <name xml:lang="mk">Графички работни околини</name>
- <name xml:lang="ml">പണിയിടങ്ങള്‍</name>
- <name xml:lang="mr">डेस्कटॉप्स्</name>
- <name xml:lang="no">Skrivebord</name>
- <name xml:lang="nso">Diteseke</name>
- <name xml:lang="or">ଡେସ୍କଟପ୍ ମାନ</name>
- <name xml:lang="pa">ਡੈਸਕਟਾਪ</name>
- <name xml:lang="pl">Środowiska graficzne</name>
- <name xml:lang="pt_BR">Desktops</name>
- <name xml:lang="ru">Рабочие столы</name>
- <name xml:lang="si">Desktops</name>
- <name xml:lang="sl">Namizja</name>
- <name xml:lang="sq">Desktopë</name>
- <name xml:lang="sv">Skrivbord</name>
- <name xml:lang="ta">பணிமேடைகள்</name>
- <name xml:lang="te">డెస్కుటాప్స్</name>
- <name xml:lang="th">เดสก์ท็อป</name>
- <name xml:lang="tr">Masaüstleri</name>
- <name xml:lang="uk">Робочі середовища</name>
- <name xml:lang="ur">ڈيسک ٹاپس</name>
- <name xml:lang="vi">Desktop</name>
- <name xml:lang="zh_CN">桌面</name>
- <name xml:lang="zh_TW">桌面環境</name>
- <name xml:lang="zu">Amadesktop</name>
- <description>Desktops and thin clients.</description>
- <description xml:lang="as">ডেস্কটপ আৰু ক্ষীণ ক্লাএন্ট।</description>
- <description xml:lang="bn">ডেস্কটপ ও থিন ক্লায়েন্ট।</description>
- <description xml:lang="bn_IN">ডেস্কটপ ও থিন ক্লায়েন্ট।</description>
- <description xml:lang="cs">Pracovní prostředí a tencí klienti.</description>
- <description xml:lang="de">Desktops und Thin-Clients.</description>
- <description xml:lang="es">Escritorios y clientes livianos.</description>
- <description xml:lang="fr">Bnvirox et clients légers.nnements de bureau</description>
- <description xml:lang="gu">ડેસ્કટોપ અને પાતળા ક્લાયન્ટો.</description>
- <description xml:lang="hi">डेस्कटॉप और थिन क्लाइंट</description>
- <description xml:lang="ia">Scriptorios e clientes legier.</description>
- <description xml:lang="it">Desktop e thin client.</description>
- <description xml:lang="ja">デスクトップとシンクライアント</description>
- <description xml:lang="kn">ಗಣಕತೆರೆಗಳು ಹಾಗು ಥಿನ್‌ ಕ್ಲೈಂಟ್‌ಗಳು.</description>
- <description xml:lang="ko">데스크탑과 씬 클라이언트</description>
- <description xml:lang="ml">ഡസ്ക്ടോപ്പുകളും ഥിന്‍ ക്ലയന്റുകളും്റുകള്‍</description>
- <description xml:lang="mr">डेस्कटॉप्स् व थीन क्लाएंट्स्.</description>
- <description xml:lang="or">ଡେସ୍କଟପ ଏବଂ ଥିନ କ୍ଲାଏଣ୍ଟମାନ।</description>
- <description xml:lang="pa">ਡੈਸਕਟਾਪ ਅਤੇ ਥਿੰਨ ਕਲਾਈਂਟ</description>
- <description xml:lang="pl">Środowiska graficzne i ciency klienci.</description>
- <description xml:lang="pt_BR">Ambientes de Trabalho e clientes finos</description>
- <description xml:lang="ru">Рабочие столы и ?тонкие? клиенты.</description>
- <description xml:lang="sv">Skrivbord och tunna klienter.</description>
- <description xml:lang="ta">பணிமேடை மற்றும் ஒல்லியான வாடிக்கையாளர்கள்.</description>
- <description xml:lang="te">డెస్కుటాప్స్ మరియు తిన్ క్లైంట్లు.</description>
- <description xml:lang="uk">Робочі станції та «тонкі» клієнти.</description>
- <description xml:lang="zh_CN">桌面和瘦客户端。</description>
- <description xml:lang="zh_TW">桌面環境與 thin clinet。</description>
- <grouplist>
- <groupid>desktop-debugging</groupid>
- <groupid>fonts</groupid>
- <groupid>gnome-desktop</groupid>
- <groupid>input-methods</groupid>
- <groupid>kde-desktop</groupid>
- <groupid>legacy-x</groupid>
- <groupid>remote-desktop-clients</groupid>
- <groupid>x11</groupid>
- </grouplist>
- </category>
- <category>
- <id>development</id>
- <name>Development</name>
- <name xml:lang="af">Ontwikkeling</name>
- <name xml:lang="am">እድገት</name>
- <name xml:lang="ar">تطوير</name>
- <name xml:lang="as">উন্নয়ন</name>
- <name xml:lang="bal">پیش روگ</name>
- <name xml:lang="be">Распрацоўка</name>
- <name xml:lang="bg">Разработка</name>
- <name xml:lang="bn">সফ্টওয়্যার নির্মাণ</name>
- <name xml:lang="bn_IN">সফ্টওয়্যার নির্মাণ</name>
- <name xml:lang="bs">Razvoj</name>
- <name xml:lang="ca">Desenvolupament</name>
- <name xml:lang="cs">Vývoj</name>
- <name xml:lang="cy">Datblygiad</name>
- <name xml:lang="da">Udvikling</name>
- <name xml:lang="de">Softwareentwicklung</name>
- <name xml:lang="el">Ανάπτυξη λογισμικού</name>
- <name xml:lang="en_GB">Development</name>
- <name xml:lang="es">Desarrollo</name>
- <name xml:lang="et">Arendus</name>
- <name xml:lang="eu">Garapena</name>
- <name xml:lang="fa">برنامه‌سازی</name>
- <name xml:lang="fi">Ohjelmistokehitys</name>
- <name xml:lang="fr">Développement</name>
- <name xml:lang="gl">Desenvolvemento</name>
- <name xml:lang="gu">વિકાસ</name>
- <name xml:lang="he">פיתוח</name>
- <name xml:lang="hi">विकास</name>
- <name xml:lang="hr">Razvoj</name>
- <name xml:lang="hu">Fejlesztőeszközök</name>
- <name xml:lang="hy">Ծրագրավորում</name>
- <name xml:lang="ia">Disveloppamento</name>
- <name xml:lang="id">Pengembangan</name>
- <name xml:lang="ilo">Panagbukel</name>
- <name xml:lang="is">Þróun</name>
- <name xml:lang="it">Sviluppo</name>
- <name xml:lang="ja">開発</name>
- <name xml:lang="ka">პრიოგრამირება</name>
- <name xml:lang="kn">ವಿಕಾಸನ</name>
- <name xml:lang="ko">개발</name>
- <name xml:lang="lv">Programmēšana</name>
- <name xml:lang="mai">विकास</name>
- <name xml:lang="mk">Развој</name>
- <name xml:lang="ml">ഡെവലപ്പ്മെന്‍റ്</name>
- <name xml:lang="mr">विकास</name>
- <name xml:lang="ms">Pembangunan</name>
- <name xml:lang="nb">Utviklingsverktøy</name>
- <name xml:lang="ne">विकास</name>
- <name xml:lang="nl">Ontwikkeling</name>
- <name xml:lang="no">Utviklingsverktøy</name>
- <name xml:lang="nso">Tšwetšopele</name>
- <name xml:lang="or">ବିକାଶ</name>
- <name xml:lang="pa">ਵਿਕਾਸ</name>
- <name xml:lang="pl">Programowanie</name>
- <name xml:lang="pt">Desenvolvimento</name>
- <name xml:lang="pt_BR">Desenvolvimento</name>
- <name xml:lang="ro">Dezvoltare</name>
- <name xml:lang="ru">Программирование</name>
- <name xml:lang="si">ප්‍රවර්ධනය</name>
- <name xml:lang="sk">Vývoj</name>
- <name xml:lang="sl">Razvoj</name>
- <name xml:lang="sq">Zhvillim</name>
- <name xml:lang="sr">Развој</name>
- <name xml:lang="sr@latin">Razvoj</name>
- <name xml:lang="sr@Latn">Razvoj</name>
- <name xml:lang="sv">Utveckling</name>
- <name xml:lang="ta">உருவாக்கம்</name>
- <name xml:lang="te">అభివృద్ధి</name>
- <name xml:lang="tg">Барноманависӣ</name>
- <name xml:lang="th">การพัฒนาซอฟต์แวร์</name>
- <name xml:lang="tr">Geliştirme</name>
- <name xml:lang="uk">Програмування</name>
- <name xml:lang="ur">تمیرات</name>
- <name xml:lang="vi">Phát triển</name>
- <name xml:lang="zh_CN">开发</name>
- <name xml:lang="zh_TW">程式開發</name>
- <name xml:lang="zu">Intuthuko</name>
- <description>Development tools and libraries.</description>
- <description xml:lang="as">উন্নয়নৰ বাবে সঁজুলিসমূহ আৰু লাইব্ৰেৰী।</description>
- <description xml:lang="bn">নির্মাণের জন্য প্রয়োজনীয় সরঞ্জাম ও লাইব্রেরি।</description>
- <description xml:lang="bn_IN">নির্মাণের জন্য প্রয়োজনীয় সরঞ্জাম ও লাইব্রেরি।</description>
- <description xml:lang="cs">Vývojářské nástroje a knihovny</description>
- <description xml:lang="de">Entwicklungs-Tools und -bibliotheken.</description>
- <description xml:lang="es">Herramientas de desarrollo y bibliotecas.</description>
- <description xml:lang="fr">Outils et bibliothèques de développement.</description>
- <description xml:lang="gu">વિકાસ સાધનો અને લાઈબ્રેરીઓ.</description>
- <description xml:lang="hi">विकासात्मक औजार और लाइब्रेरी</description>
- <description xml:lang="ia">Instrumentos de disveloppamento e bibliothecas.</description>
- <description xml:lang="it">Librerie e tool di sviluppo</description>
- <description xml:lang="ja">開発ツールおよびライブラリ</description>
- <description xml:lang="kn">ವಿಕಸನಾ ಉಪಕರಣಗಳು ಹಾಗು ಲೈಬ್ರರಿಗಳು.</description>
- <description xml:lang="ko">개발용 도구와 라이브러리</description>
- <description xml:lang="ml">ഡെവലപ്പ്മെന്റ് ഉപകരണങ്ങളും ലൈബ്രറികളും.</description>
- <description xml:lang="mr">डेव्हलपमेंट साधने व लाइब्ररीज्.</description>
- <description xml:lang="or">ବିକାଶ ଉପକରଣ ଏବଂ ପାଠାଗାର।</description>
- <description xml:lang="pa">ਵਿਕਾਸ ਸੰਦ ਅਤੇ ਲਾਇਬਰੇਰੀਆਂ।</description>
- <description xml:lang="pl">Narzędzia i biblioteki programistyczne.</description>
- <description xml:lang="pt_BR">Bibliotecas e ferramentas de Desenvolvimento</description>
- <description xml:lang="ru">Инструменты и библиотеки для разработки программ.</description>
- <description xml:lang="sv">Utvecklingsverktyg och -bibliotek.</description>
- <description xml:lang="ta">உருவாக்க கருவிகள் மற்றும் நூலகங்கள்</description>
- <description xml:lang="te">అభివృద్దీకరణ సాధనములు మరియు లైబ్రరీలు.</description>
- <description xml:lang="uk">Програми та бібліотеки для розробки.</description>
- <description xml:lang="zh_CN">开发工具和程序库。</description>
- <description xml:lang="zh_TW">開發工具與函式庫。</description>
- <grouplist>
- <groupid>additional-devel</groupid>
- <groupid>development</groupid>
- <groupid>platform-devel</groupid>
- </grouplist>
- </category>
- <category>
- <id>high-availability</id>
- <name>High Availability</name>
- <name xml:lang="as">অতিমাত্ৰাত উপলব্ধ</name>
- <name xml:lang="bn">অতিমাত্রায় উপলব্ধ</name>
- <name xml:lang="bn_IN">অতিমাত্রায় উপলব্ধ</name>
- <name xml:lang="cs">Vysoká dostupnost</name>
- <name xml:lang="de">Hochverfügbarkeit</name>
- <name xml:lang="es">Alta disponibilidad</name>
- <name xml:lang="fr">Haute disponibilité</name>
- <name xml:lang="gu">ઊંચી ઉપલબ્ધતા</name>
- <name xml:lang="hi">उच्च उपलब्धता</name>
- <name xml:lang="it">High Availability</name>
- <name xml:lang="ja">High Availability</name>
- <name xml:lang="kn">ಅತಿ ಲಭ್ಯತೆ</name>
- <name xml:lang="ko">고 가용성</name>
- <name xml:lang="ml">ഹൈ അവയിലബിളിറ്റി</name>
- <name xml:lang="mr">उच्च उपलब्धता</name>
- <name xml:lang="or">ଅଧିକ ମାତ୍ରାରେ ଉପଲବ୍ଧତା</name>
- <name xml:lang="pa">ਉੱਚ ਉਪਲੱਬਧਤਾ</name>
- <name xml:lang="pl">Wysoka dostępność</name>
- <name xml:lang="pt_BR">Alta disponibilidade</name>
- <name xml:lang="ru">Высокий уровень доступности</name>
- <name xml:lang="sv">Hög tillgänglighet</name>
- <name xml:lang="ta">அதிகம் கிடைக்கூடியது</name>
- <name xml:lang="te">అత్యధిక అందుబాటు</name>
- <name xml:lang="uk">Висока доступність</name>
- <name xml:lang="zh_CN">高可用性</name>
- <name xml:lang="zh_TW">高可用性</name>
- <description>High availability support.</description>
- <description xml:lang="as">উচ্চ উপলব্ধতা সমৰ্থন।</description>
- <description xml:lang="bn_IN">উচ্চমাত্রার উপলব্ধতা সংক্রান্ত সমর্থন।</description>
- <description xml:lang="cs">Podpora vysoké dostupnosti.</description>
- <description xml:lang="de">Unterstützung für Hochverfügbarkeit.</description>
- <description xml:lang="es">Soporte de alta disponibilidad.</description>
- <description xml:lang="fr">Prise en charge de la haute disponibilité.</description>
- <description xml:lang="gu">ઊંચી ઉપલબ્ધતા આધાર.</description>
- <description xml:lang="hi">उच्च उपलब्धता समर्थन.</description>
- <description xml:lang="it">Supporto per l'elevata disponibilità</description>
- <description xml:lang="ja">高可用性サポートです。</description>
- <description xml:lang="kn">ಹೈ ಅವೆಲಿಬಿಲಿಟಿ ಬೆಂಬಲ.</description>
- <description xml:lang="ko">고가용성 지원</description>
- <description xml:lang="ml">ഹൈ അവയിലബിളിറ്റി പിന്തുണ.</description>
- <description xml:lang="mr">हाय अव्हलेबिलिटि समर्थन.</description>
- <description xml:lang="or">ଉଚ୍ଚ ଉପଲବ୍ଧତା ସହାୟତା।</description>
- <description xml:lang="pa">ਉੱਚ ਉਪਲੱਬਧਯੋਗਤਾ ਸਮਰਥਨ।</description>
- <description xml:lang="pl">Obsługa wysokiej dostępności.</description>
- <description xml:lang="pt_BR">Suporte de Alta disponibilidade.</description>
- <description xml:lang="ru">Поддержка решений высокого уровня готовности.</description>
- <description xml:lang="ta">ஹை அவைலபிலிட்டி ஆதரவு.</description>
- <description xml:lang="te">హై ఎవైలబిలిటీ తోడ్పాటు.</description>
- <description xml:lang="uk">Керування ресурсами з високою доступністю</description>
- <description xml:lang="zh_CN">高可用支持。</description>
- <description xml:lang="zh_TW">High Availability 支援。</description>
- <grouplist>
- <groupid>ha</groupid>
- </grouplist>
- </category>
- <category>
- <id>resilient-storage</id>
- <name>Resilient Storage</name>
- <name xml:lang="as">স্থিতিস্থাপক সংৰক্ষণ</name>
- <name xml:lang="bn">রেসিলিয়েন্ট সংগ্রহস্থল</name>
- <name xml:lang="bn_IN">রেসিলিয়েন্ট সংগ্রহস্থল</name>
- <name xml:lang="cs">Odolné úložiště</name>
- <name xml:lang="de">Resilient-Speicher</name>
- <name xml:lang="es">Almacenamiento resistente</name>
- <name xml:lang="fr">Espace de stockage résilient</name>
- <name xml:lang="gu">રિઝિલિઅન્ટ સંગ્રહ</name>
- <name xml:lang="hi">रेसीलियेंट भंडार</name>
- <name xml:lang="it">Resilient Storage</name>
- <name xml:lang="ja">Resilient Storage</name>
- <name xml:lang="kn">ಮೊದಲಿನಂತಾಗಬಲ್ಲ ಶೇಖರಣೆ</name>
- <name xml:lang="ko">내결함성 스토리지</name>
- <name xml:lang="ml">റീസീലിയന്റ് സംഭരണം</name>
- <name xml:lang="mr">रिझिलिअंट स्टोरेज</name>
- <name xml:lang="or">ପୁଞ୍ଜୀଭୂତ ସଂରକ୍ଷଣ</name>
- <name xml:lang="pa">ਰੈਜ਼ੀਲੀਏਂਟ ਭੰਡਾਰਣ</name>
- <name xml:lang="pl">Elastyczne przechowywanie danych</name>
- <name xml:lang="pt_BR">Armazenamento Flexível</name>
- <name xml:lang="ru">Надёжное хранилище</name>
- <name xml:lang="ta">ரீசைலண்ட் சேமிப்பகம்.</name>
- <name xml:lang="te">రెసిలియంట్ నిల్వ</name>
- <name xml:lang="uk">Надійне сховище</name>
- <name xml:lang="zh_CN">弹性存储</name>
- <name xml:lang="zh_TW">高彈性的儲存裝置</name>
- <description>Clustered storage, including the GFS2 file system.</description>
- <description xml:lang="as">GFS2 ফাইলচিস্টেম সহ থুপ সংৰক্ষণ।</description>
- <description xml:lang="bn_IN">GFS2 ফাইল-সিস্টেম সহ ক্লাস্টার সংগ্রহস্থল।</description>
- <description xml:lang="cs">Úložný cluster, včetně souborového systému GFS2.</description>
- <description xml:lang="de">Clustered-Storage, inklusive GFS2-Dateisystem.</description>
- <description xml:lang="es">Almacenaje agrupado, incluido el sistema de archivos GFS2.</description>
- <description xml:lang="fr">Stockage en cluster, y compris le système de fichiers GFS2.</description>
- <description xml:lang="gu">GFS2 ફાઇલ સિસ્ટમને સમાવતું ક્લસ્ટરવાળું સ્ટોરેજ.</description>
- <description xml:lang="hi">क्लस्टर किया भंडार, GFS2 फाइलसिस्टम के साथ.</description>
- <description xml:lang="it">Storage clusterizzato incluso il filesystem GFS2.</description>
- <description xml:lang="ja">GFS2 ファイルシステムなど、クラスタ化したストレージです。</description>
- <description xml:lang="kn">GFS2 ಕಡತವ್ಯವಸ್ಥೆಯನ್ನೂ ಒಳಗೊಂಡಿರುವಂತೆ, ಕ್ಲಸ್ಟರ್ ಶೇಖರಣೆ.</description>
- <description xml:lang="ko">GFS2 파일시스템이 들어 있는 클러스터 스토리지입니다.</description>
- <description xml:lang="ml">ജിഎഫ്എസ്2 ഫയല്‍ സിസ്റ്റം ഉള്‍പ്പടെയുള്ള ക്ലസ്റ്റര്‍ഡ് സംഭരണം.</description>
- <description xml:lang="mr">क्लस्टर्ज स्टोरेज, GFS2 फाइल प्रणाली समाविष्टीत.</description>
- <description xml:lang="or">କ୍ଲଷ୍ଟର ସଂରକ୍ଷଣ, GFS2 ଫାଇଲତନ୍ତ୍ରକୁ ଅନ୍ତର୍ଭୁକ୍ତ କରି।</description>
- <description xml:lang="pa">ਕਲੱਸਟਰ ਕੀਤਾ ਭੰਡਾਰਣ, GFS2 ਫਾਈਲ ਸਿਸਟਮ ਸਮੇਤ।</description>
- <description xml:lang="pl">Przechowywanie danych w klastrach, w tym system plików GFS2.</description>
- <description xml:lang="pt_BR">Armazenamento em clusters, incluindo o filesystem GFS2.</description>
- <description xml:lang="ru">Кластерное хранилище и GFS2.</description>
- <description xml:lang="ta">GFS2 கோப்பு முறைமை உள்ளிட்ட கிளஸ்ட்டர்டு சேமிப்பகம்.</description>
- <description xml:lang="te">క్లస్టర్డ్ నిల్వ, GFS2 ఫైల్ సిస్టమ్‌తో కలిపి.</description>
- <description xml:lang="uk">Кластерне сховище, зокрема файлова система GFS2.</description>
- <description xml:lang="zh_CN">集群存储,其中包括 GFS2 文件系统。</description>
- <description xml:lang="zh_TW">叢集儲存裝置,包括 GFS2 檔案系統。</description>
- <grouplist>
- <groupid>resilient-storage</groupid>
- </grouplist>
- </category>
- <category>
- <id>servers</id>
- <name>Servers</name>
- <name xml:lang="af">Bedieners</name>
- <name xml:lang="am">ሰርቨሮች</name>
- <name xml:lang="ar">خوادم</name>
- <name xml:lang="as">চাৰ্ভাৰসমূহ</name>
- <name xml:lang="bal">سروران</name>
- <name xml:lang="be">Паслужнікі</name>
- <name xml:lang="bg">Сървъри</name>
- <name xml:lang="bn">সার্ভার</name>
- <name xml:lang="bn_IN">সার্ভার</name>
- <name xml:lang="bs">Poslužitelji</name>
- <name xml:lang="ca">Servidors</name>
- <name xml:lang="cs">Servery</name>
- <name xml:lang="cy">Gweinyddion</name>
- <name xml:lang="da">Servere</name>
- <name xml:lang="de">Server</name>
- <name xml:lang="el">Εξυπηρετητές</name>
- <name xml:lang="en_GB">Servers</name>
- <name xml:lang="es">Servidores</name>
- <name xml:lang="et">Serverid</name>
- <name xml:lang="eu">Zerbitzariak</name>
- <name xml:lang="fa">کارگزارها</name>
- <name xml:lang="fi">Palvelimet</name>
- <name xml:lang="fr">Serveurs</name>
- <name xml:lang="gl">Servidores</name>
- <name xml:lang="gu">સર્વરો</name>
- <name xml:lang="he">שרתים</name>
- <name xml:lang="hi">सर्वर</name>
- <name xml:lang="hr">Poslužitelji</name>
- <name xml:lang="hu">Kiszolgálók</name>
- <name xml:lang="hy">Սերվերներ</name>
- <name xml:lang="ia">Servitores</name>
- <name xml:lang="id">Server</name>
- <name xml:lang="ilo">Serbidor</name>
- <name xml:lang="is">Þjónar</name>
- <name xml:lang="it">Servers</name>
- <name xml:lang="ja">サーバー</name>
- <name xml:lang="ka">სერვერები</name>
- <name xml:lang="kn">ಪೂರೈಕೆಗಣಕಗಳು</name>
- <name xml:lang="ko">서버</name>
- <name xml:lang="lv">Serveri</name>
- <name xml:lang="mai">सर्वर</name>
- <name xml:lang="mk">Сервери</name>
- <name xml:lang="ml">സര്‍വറുകള്‍</name>
- <name xml:lang="mr">सेवक</name>
- <name xml:lang="ms">Pelayan-Pelayan</name>
- <name xml:lang="nb">Tjenere</name>
- <name xml:lang="ne">सर्भर</name>
- <name xml:lang="nl">Servers</name>
- <name xml:lang="no">Tjenere</name>
- <name xml:lang="nso">Baabi</name>
- <name xml:lang="or">ସେବକ ମାନେ</name>
- <name xml:lang="pa">ਸਰਵਰ</name>
- <name xml:lang="pl">Serwery</name>
- <name xml:lang="pt">Servidores</name>
- <name xml:lang="pt_BR">Servidores</name>
- <name xml:lang="ro">Servere</name>
- <name xml:lang="ru">Серверы</name>
- <name xml:lang="si">සේවා දායකයන්</name>
- <name xml:lang="sk">Servery</name>
- <name xml:lang="sl">Strežniki</name>
- <name xml:lang="sq">Shërbyesa</name>
- <name xml:lang="sr">Сервери</name>
- <name xml:lang="sr@latin">Serveri</name>
- <name xml:lang="sr@Latn">Serveri</name>
- <name xml:lang="sv">Servrar</name>
- <name xml:lang="ta">சேவையகங்கள்</name>
- <name xml:lang="te">సేవికలు</name>
- <name xml:lang="tg">Хидматгоҳҳо</name>
- <name xml:lang="th">ตัวให้บริการ</name>
- <name xml:lang="tr">Sunucular</name>
- <name xml:lang="uk">Сервери</name>
- <name xml:lang="ur">سرورز</name>
- <name xml:lang="vi">Server</name>
- <name xml:lang="zh_CN">服务器</name>
- <name xml:lang="zh_TW">伺服器</name>
- <name xml:lang="zu">Abalekeleli</name>
- <description>Various network services.</description>
- <description xml:lang="as">বিভিন্ন নেটৱাৰ্ক সেৱা।</description>
- <description xml:lang="bn">বিভিন্ন নেটওয়ার্ক পরিসেবা।</description>
- <description xml:lang="bn_IN">বিভিন্ন নেটওয়ার্ক পরিসেবা।</description>
- <description xml:lang="cs">Různé síťové služby.</description>
- <description xml:lang="de">Verschiedene Netzwerkdienste.</description>
- <description xml:lang="es">Varios servicios de red</description>
- <description xml:lang="fr">Divers services de réseau.</description>
- <description xml:lang="gu">વિવિધ નેટવર્ક સેવાઓ.</description>
- <description xml:lang="hi">विविध संजाल सेवाएँ.</description>
- <description xml:lang="it">Servizi di rete vari.</description>
- <description xml:lang="ja">多様なネットワークサービスです。</description>
- <description xml:lang="kn">ಹಲವು ಜಾಲ ಸೇವೆಗಳು.</description>
- <description xml:lang="ko">여러 네트워크 서비스.</description>
- <description xml:lang="ml">അനവധി നെറ്റ്‌വര്‍ക്ക് സര്‍വീസുകള്‍.</description>
- <description xml:lang="mr">विविध नेटवर्क सर्व्हिसेस्.</description>
- <description xml:lang="or">ବିଭିନ୍ନ ନେଟୱାର୍କ ସେବା।</description>
- <description xml:lang="pa">ਵੱਖ-ਵੱਖ ਨੈੱਟਵਰਕ ਸੇਵਾਵਾਂ।</description>
- <description xml:lang="pl">Różne usługi sieciowe.</description>
- <description xml:lang="pt_BR">Diversos Servidores de Rede</description>
- <description xml:lang="ru">Различные сетевые службы.</description>
- <description xml:lang="sv">Diverse nätverkstjänster.</description>
- <description xml:lang="ta">பல்வேறு பிணைய சேவைகள்.</description>
- <description xml:lang="te">వివిధ నెట్వర్కు సేవలు.</description>
- <description xml:lang="uk">Різні мережні служби.</description>
- <description xml:lang="zh_CN">各种网络服务器。</description>
- <description xml:lang="zh_TW">各種網路服務。</description>
- <grouplist>
- <groupid>backup-server</groupid>
- <groupid>directory-server</groupid>
- <groupid>file-server</groupid>
- <groupid>ftp-server</groupid>
- <groupid>identity-management-server</groupid>
- <groupid>mail-server</groupid>
- <groupid>network-server</groupid>
- <groupid>print-server</groupid>
- <groupid>system-admin-tools</groupid>
- </grouplist>
- </category>
- <category>
- <id>system-management</id>
- <name>System Management</name>
- <name xml:lang="as">চিস্টেম ব্যৱস্থাপনা</name>
- <name xml:lang="bn">সিস্টেম পরিচালনা</name>
- <name xml:lang="bn_IN">সিস্টেম পরিচালনা</name>
- <name xml:lang="cs">Správa systému</name>
- <name xml:lang="de">System-Management</name>
- <name xml:lang="es">Administración de sistemas</name>
- <name xml:lang="fr">Gestion du système</name>
- <name xml:lang="gu">સિસ્ટમ સંચાલન</name>
- <name xml:lang="hi">तंत्र प्रबंधन</name>
- <name xml:lang="ia">Gestion de systema</name>
- <name xml:lang="it">Gestione del sistema</name>
- <name xml:lang="ja">システム管理</name>
- <name xml:lang="kn">ವ್ಯವಸ್ಥೆ ನಿರ್ವಹಣೆ</name>
- <name xml:lang="ko">시스템 관리</name>
- <name xml:lang="ml">സിസ്റ്റം മാനേജ്മെന്റ്</name>
- <name xml:lang="mr">प्रणाली व्यवस्थापन</name>
- <name xml:lang="or">ତନ୍ତ୍ର ପରିଚାଳନା</name>
- <name xml:lang="pa">ਸਿਸਟਮ ਪਰਬੰਧਨ</name>
- <name xml:lang="pl">Zarządzanie systemem</name>
- <name xml:lang="pt_BR">Gerenciamento de Sistema</name>
- <name xml:lang="ru">Управление системой</name>
- <name xml:lang="sv">Systemhantering</name>
- <name xml:lang="ta">கணினி மேலாண்மை</name>
- <name xml:lang="te">సిస్టమ్ నిర్వహణ</name>
- <name xml:lang="uk">Керування системою</name>
- <name xml:lang="zh_CN">系统管理</name>
- <name xml:lang="zh_TW">系統管理</name>
- <description>System Management frameworks.</description>
- <description xml:lang="as">চিস্টেম ব্যৱস্থাপনা গাথনীসমূহ।</description>
- <description xml:lang="bn_IN">সিস্টেম পরিচালনার পরিকাঠামো।</description>
- <description xml:lang="cs">Prostředí pro správu systému.</description>
- <description xml:lang="de">Frameworks zur Systemverwaltung.</description>
- <description xml:lang="es">Marcos de trabajo de administración de sistemas.</description>
- <description xml:lang="fr">Environnements de gestion de systèmes.</description>
- <description xml:lang="gu">સિસ્ટમ વ્યવસ્થાપન ફ્રેમવર્કો.</description>
- <description xml:lang="hi">तंत्र प्रबंधन फ्रेमवर्क.</description>
- <description xml:lang="it">Framework di gestione del sistema.</description>
- <description xml:lang="ja">システム管理フレームワークです。</description>
- <description xml:lang="kn">ವ್ಯವಸ್ಥೆ ನಿರ್ವಹಣಾ ಫ್ರೇಮ್‌ವರ್ಕ್‌ಗಳು.</description>
- <description xml:lang="ko">시스템 관리 프레임워크</description>
- <description xml:lang="ml">സിസ്റ്റം കൈകാര്യം ചെയ്യുന്നതിനുള്ള ചട്ടക്കുടുകള്‍.</description>
- <description xml:lang="mr">प्रणाली व्यवस्थापन फ्रेमवर्क्स.</description>
- <description xml:lang="or">ତନ୍ତ୍ର ପରିଚାଳନା ଫ୍ରେମୱର୍କ।</description>
- <description xml:lang="pa">ਸਿਸਟਮ ਪ੍ਰਬੰਧਕ ਫਰੇਮ-ਵਰਕ।</description>
- <description xml:lang="pl">Struktury zarządzania systemem.</description>
- <description xml:lang="pt_BR">Frameworks de Gerenciamento de Sistema</description>
- <description xml:lang="ru">Управление системой.</description>
- <description xml:lang="ta">கணினி நிர்வாக சட்டமைப்புகள்.</description>
- <description xml:lang="te">వ్యవస్థ నిర్వహణ ఫ్రేమ్‌వర్కులు.</description>
- <description xml:lang="uk">Оболонки керування системою.</description>
- <description xml:lang="zh_CN">系统管理框架。</description>
- <description xml:lang="zh_TW">系統管理框架。</description>
- <grouplist>
- <groupid>graphical-admin-tools</groupid>
- <groupid>remote-system-management</groupid>
- <groupid>system-management</groupid>
- </grouplist>
- </category>
- <category>
- <id>virtualization</id>
- <name>Virtualization</name>
- <name xml:lang="ar">تقديريات</name>
- <name xml:lang="as">ভাৰছুৱেলাইজেষণ</name>
- <name xml:lang="bal">مجازی کتن</name>
- <name xml:lang="bg">Виртуализация</name>
- <name xml:lang="bn">ভার্চুয়ালাইজেশন</name>
- <name xml:lang="bn_IN">ভার্চুয়ালাইজেশন</name>
- <name xml:lang="bs">Virtualizacija</name>
- <name xml:lang="ca">Virtualització</name>
- <name xml:lang="cs">Virtualizace</name>
- <name xml:lang="da">Virtualisering</name>
- <name xml:lang="de">Virtualisierung</name>
- <name xml:lang="el">Εικονικοποίηση</name>
- <name xml:lang="en_GB">Virtualisation</name>
- <name xml:lang="es">Virtualización</name>
- <name xml:lang="et">Virtualiseerimine</name>
- <name xml:lang="fi">Virtualisointi</name>
- <name xml:lang="fr">Virtualisation</name>
- <name xml:lang="gu">વર્ચ્યુઅલાઈઝેશન</name>
- <name xml:lang="he">הדמייה (וירטואליזציה)</name>
- <name xml:lang="hi">दृश्यकरण</name>
- <name xml:lang="hr">Virtualizacija</name>
- <name xml:lang="hu">Virtualizáció</name>
- <name xml:lang="hy">Վիրտուալիզացիա</name>
- <name xml:lang="ia">Virtualisation</name>
- <name xml:lang="id">Virtualisasi</name>
- <name xml:lang="is">Sýndarvélar</name>
- <name xml:lang="it">Virtualizzazione</name>
- <name xml:lang="ja">仮想化</name>
- <name xml:lang="ka">ვირტუალიზება</name>
- <name xml:lang="kn">ವರ್ಚುವಲೈಸೇಶನ್</name>
- <name xml:lang="ko">가상화</name>
- <name xml:lang="lv">Virtualizācija</name>
- <name xml:lang="mai">वर्चुअलाइजेशन</name>
- <name xml:lang="ml">വിര്‍ച്ച്വലൈസേഷന്‍</name>
- <name xml:lang="mr">वर्च्युअलाइजेशन</name>
- <name xml:lang="ms">Virtualization</name>
- <name xml:lang="nb">Virtualisering</name>
- <name xml:lang="ne">भर्चुअलाइजेसन</name>
- <name xml:lang="nl">Virtualisatie</name>
- <name xml:lang="or">ଆଭାସୀକରଣ</name>
- <name xml:lang="pa">ਆਭਾਸੀਕਰਣ</name>
- <name xml:lang="pl">Wirtualizacja</name>
- <name xml:lang="pt">Virtualização</name>
- <name xml:lang="pt_BR">Virtualização</name>
- <name xml:lang="ro">Virtualizare</name>
- <name xml:lang="ru">Виртуализация</name>
- <name xml:lang="si">අථත්‍යකරණය</name>
- <name xml:lang="sk">Virtualizácia</name>
- <name xml:lang="sl">Virtualizacija</name>
- <name xml:lang="sr">Виртуализација</name>
- <name xml:lang="sr@latin">Virtualizacija</name>
- <name xml:lang="sr@Latn">Virtualizacija</name>
- <name xml:lang="sv">Virtualisering</name>
- <name xml:lang="ta">மெய்நிகராக்கம்</name>
- <name xml:lang="te">వర్చ్యులైజేషన్</name>
- <name xml:lang="tg">Барномаҳои виртуалӣ</name>
- <name xml:lang="th">Virtualization</name>
- <name xml:lang="tr">Sanallaştırma</name>
- <name xml:lang="uk">Віртуалізація</name>
- <name xml:lang="zh_CN">虚拟化</name>
- <name xml:lang="zh_TW">虛擬化</name>
- <description>Virtualization support.</description>
- <description xml:lang="as">ভাৰছুৱেলাইজেষণ সমৰ্থন।</description>
- <description xml:lang="bn">ভার্চুয়ালাইজেশন সমর্থন।</description>
- <description xml:lang="bn_IN">ভার্চুয়ালাইজেশন সমর্থন।</description>
- <description xml:lang="cs">Podpora virtualizace.</description>
- <description xml:lang="de">Virtualisierungsunterstützung.</description>
- <description xml:lang="es">Soporte de virtualización</description>
- <description xml:lang="fr">Prise en charge de la virtualisation.</description>
- <description xml:lang="gu">વર્ચ્યુઅલાઈઝેશન આધાર.</description>
- <description xml:lang="hi">वर्चुअलाइजेशन समर्थन.</description>
- <description xml:lang="it">Supporto per la virtualizzazione.</description>
- <description xml:lang="ja">仮想化サポート</description>
- <description xml:lang="kn">ವರ್ಚುವಲೈಸೇಶನ್ ಬೆಂಬಲ.</description>
- <description xml:lang="ko">가상화 지원.</description>
- <description xml:lang="ml">വിര്‍ച്ച്വലൈസേഷന്‍ പിന്തുണ.</description>
- <description xml:lang="mr">वर्च्युअलाइजेशन समर्थन.</description>
- <description xml:lang="or">ଆଭାସୀକରଣ ସମର୍ଥନ।</description>
- <description xml:lang="pa">ਆਭਾਸੀਕਰਣ ਸਮਰਥਨ।</description>
- <description xml:lang="pl">Obsługa wirtualizacji.</description>
- <description xml:lang="pt_BR">Suporte à Virtualização.</description>
- <description xml:lang="ru">Поддержка виртуализации.</description>
- <description xml:lang="sv">Virtualiseringstöd.</description>
- <description xml:lang="ta">மெய்நிகராக்க ஆதரவு.</description>
- <description xml:lang="te">వర్చ్యులైజేషన్ మద్దతు.</description>
- <description xml:lang="uk">Підтримка віртуалізації.</description>
- <description xml:lang="zh_CN">虚拟化支持。</description>
- <description xml:lang="zh_TW">虛擬化支援。</description>
- <grouplist>
- <groupid>virtualization-client</groupid>
- <groupid>virtualization-hypervisor</groupid>
- <groupid>virtualization-platform</groupid>
- <groupid>virtualization-tools</groupid>
- </grouplist>
- </category>
- <category>
- <id>web-services</id>
- <name>Web Services</name>
- <name xml:lang="as">ৱেব সেৱা</name>
- <name xml:lang="bn">ওয়েব পরিসেবা</name>
- <name xml:lang="bn_IN">ওয়েব পরিসেবা</name>
- <name xml:lang="cs">Webové služby</name>
- <name xml:lang="de">Web-Dienste</name>
- <name xml:lang="es">Servidor de Web</name>
- <name xml:lang="fr">Services Web</name>
- <name xml:lang="gu">વેબ સેવાઓ</name>
- <name xml:lang="hi">वेब सेवाएँ</name>
- <name xml:lang="it">Servizi web</name>
- <name xml:lang="ja">Web サービス</name>
- <name xml:lang="kn">ಜಾಲ ಸೇವೆಗಳು</name>
- <name xml:lang="ko">웹 서비스</name>
- <name xml:lang="ml">വെബ് സര്‍വീസുകള്‍</name>
- <name xml:lang="mr">बेल सर्व्हिसेस्</name>
- <name xml:lang="or">ୱେବ ସର୍ଭିସଗୁଡ଼ିକ</name>
- <name xml:lang="pa">ਵੈੱਬ ਸੇਵਾਵਾਂ</name>
- <name xml:lang="pl">Usługi WWW</name>
- <name xml:lang="pt_BR">Serviços da Web</name>
- <name xml:lang="ru">Веб-службы</name>
- <name xml:lang="sv">Webbtjänster</name>
- <name xml:lang="ta">வெப் சேவைகள்</name>
- <name xml:lang="te">వెబ్ సేవలు</name>
- <name xml:lang="uk">Веб-служби</name>
- <name xml:lang="zh_CN">Web 服务</name>
- <name xml:lang="zh_TW">網站服務</name>
- <description>Web and web application servers.</description>
- <description xml:lang="as">ৱেব আৰু ৱেব এপ্লিকেচন চাৰ্ভাৰসমূহ।</description>
- <description xml:lang="bn">ওয়েব ও ওয়েব অ্যাপ্লিকেশন সার্ভার।</description>
- <description xml:lang="bn_IN">ওয়েব ও ওয়েব অ্যাপ্লিকেশন সার্ভার।</description>
- <description xml:lang="cs">Servery pro web a webové aplikace.</description>
- <description xml:lang="de">Web- und Web-Applikations-Server.</description>
- <description xml:lang="es">Servidores y aplicaciones de Web</description>
- <description xml:lang="fr">Web et serveurs d'applications web.</description>
- <description xml:lang="gu">વેબ અને વેબ કાર્યક્રમ સર્વરો.</description>
- <description xml:lang="hi">वेब और वेब अनुप्रयोग सर्वर.</description>
- <description xml:lang="it">Web server ed applicazione web.</description>
- <description xml:lang="ja">Web および Web アプリケーションサーバーです。</description>
- <description xml:lang="kn">ಜಾಲ ಹಾಗು ಜಾಲ ಅನ್ವಯ ಪೂರೈಕೆಗಣಕಗಳು.</description>
- <description xml:lang="ko">웹과 웹 어플리케이션 서버.</description>
- <description xml:lang="ml">വെബ്, വെബ് ആപ്ലിക്കേഷന്‍ സര്‍വറുകള്‍.</description>
- <description xml:lang="mr">वेब व वेब ऍप्लिकेशन सर्व्हर्स्.</description>
- <description xml:lang="or">ୱେବ ଏବଂ ୱେବ ପ୍ରୟୋଗ ସର୍ଭରଗୁଡ଼ିକ।</description>
- <description xml:lang="pa">ਵੈੱਬ ਅਤੇ ਵੈੱਬ ਐਪਲਕੇਸ਼ਨ ਸਰਵਰ।</description>
- <description xml:lang="pl">Serwery WWW i aplikacji WWW.</description>
- <description xml:lang="pt_BR">Web e Servidores de aplicativos da web</description>
- <description xml:lang="ru">Веб и серверы веб-приложений.</description>
- <description xml:lang="sv">Webb- och webbprogramservrar.</description>
- <description xml:lang="ta">வெப் மற்றும் வெப் பயன்பாடுகளின் சேவையகங்கள்.</description>
- <description xml:lang="te">వెబ్ మరియు వెబ్ అనువర్తన సర్వర్స్.</description>
- <description xml:lang="uk">Веб та сервери веб-програм.</description>
- <description xml:lang="zh_CN">Web 和 web 程序服务器。</description>
- <description xml:lang="zh_TW">網站和網站應用程式伺服器。</description>
- <grouplist>
- <groupid>load-balancer</groupid>
- <groupid>php</groupid>
- <groupid>web-server</groupid>
- <groupid>web-servlet</groupid>
- </grouplist>
- </category>
- <environment>
- <id>opnfv-apex</id>
- <name>OPNFV Apex Provisioning Server</name>
- <description>Installs an OPNFV Apex Provisioning Server</description>
- <display_order>10</display_order>
- <grouplist>
- <groupid>base</groupid>
- <groupid>core</groupid>
- <groupid>virtualization-hypervisor</groupid>
- <groupid>virtualization-tools</groupid>
- <groupid>apex-opendaylight</groupid>
- <groupid>apex-onos</groupid>
- </grouplist>
- <optionlist>
- <groupid>debugging</groupid>
- <groupid>network-file-system-client</groupid>
- <groupid>remote-system-management</groupid>
- <groupid>virtualization-platform</groupid>
- </optionlist>
- </environment>
- <environment>
- <id>graphical-opnfv-apex</id>
- <name>OPNFV Apex Provisioning Server w/Gnome Desktop</name>
- <description>Installs an OPNFV Apex Provisioning Server, with the Gnome Desktop Environment</description>
- <display_order>20</display_order>
- <grouplist>
- <groupid>base</groupid>
- <groupid>base</groupid>
- <groupid>core</groupid>
- <groupid>desktop-debugging</groupid>
- <groupid>dial-up</groupid>
- <groupid>directory-client</groupid>
- <groupid>fonts</groupid>
- <groupid>gnome-desktop</groupid>
- <groupid>guest-agents</groupid>
- <groupid>guest-desktop-agents</groupid>
- <groupid>input-methods</groupid>
- <groupid>internet-browser</groupid>
- <groupid>java-platform</groupid>
- <groupid>multimedia</groupid>
- <groupid>network-file-system-client</groupid>
- <groupid>networkmanager-submodules</groupid>
- <groupid>print-client</groupid>
- <groupid>x11</groupid>
- <groupid>virtualization-hypervisor</groupid>
- <groupid>virtualization-tools</groupid>
- <groupid>apex-opendaylight</groupid>
- <groupid>apex-onos</groupid>
- </grouplist>
- <optionlist>
- <groupid>virtualization-client</groupid>
- <groupid>virtualization-platform</groupid>
- <groupid>backup-client</groupid>
- <groupid>backup-client</groupid>
- <groupid>gnome-apps</groupid>
- <groupid>internet-applications</groupid>
- <groupid>legacy-x</groupid>
- <groupid>office-suite</groupid>
- <groupid>remote-desktop-clients</groupid>
- <groupid>smart-card</groupid>
- </optionlist>
- </environment>
- <langpacks>
- <match install="autocorr-%s" name="autocorr-en"/>
- <match install="firefox-langpack-%s" name="firefox"/>
- <match install="gimp-help-%s" name="gimp-help"/>
- <match install="gnome-getting-started-docs-%s" name="gnome-getting-started-docs"/>
- <match install="hunspell-%s" name="hunspell"/>
- <match install="hyphen-%s" name="hyphen"/>
- <match install="kde-l10n-%s" name="kdelibs"/>
- <match install="libreoffice-langpack-%s" name="libreoffice-core"/>
- <match install="man-pages-%s" name="man-pages"/>
- <match install="mythes-%s" name="mythes"/>
- </langpacks>
-</comps>
diff --git a/build/cache.sh b/build/cache.sh
deleted file mode 100644
index 17f0db2e..00000000
--- a/build/cache.sh
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/sh
-##############################################################################
-# Copyright (c) 2016 Red Hat Inc.
-# Dan Radez <dradez@redhat.com>
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-source ./variables.sh
-
-# Make sure the cache dir exists
-function cache_dir {
- if [ -f $CACHE_DIR ]; then rm -rf $CACHE_DIR; fi
- if [ ! -d $CACHE_DIR/ ]; then mkdir $CACHE_DIR/; fi
- if [ ! -f $CACHE_DIR/$CACHE_HISTORY ]; then touch $CACHE_DIR/$CACHE_HISTORY; fi
- echo "Cache Dir: $CACHE_DIR"
-}
-
-# $1 = download url
-# $2 = filename to write to
-function curl_file {
- if [ -f $CACHE_DIR/$2 ]; then
- echo "Removing stale $2"
- rm -f $CACHE_DIR/$2
- fi
- echo "Downloading $1"
- echo "Cache download location: $CACHE_DIR/$2"
- until curl -C- -L -o $CACHE_DIR/$2 $1 || (( count++ >= 20 )); do
- echo -n '' #do nothing, we just want to loop
- done
- sed -i "/$2/d" $CACHE_DIR/$CACHE_HISTORY
- echo "$(md5sum $CACHE_DIR/$2) $2" >> $CACHE_DIR/$CACHE_HISTORY
-}
-
-# $1 = download url
-# $2 = remote md5
-function populate_cache {
- local my_md5
- cache_dir
-
- # get the file name
- filename="${1##*/}"
- # copy passed in md5
- remote_md5=$2
-
- # check if the cache file exists
- # and if it has an md5 compare that
- echo "Checking if cache file exists: ${filename}"
- if [ ! -f $CACHE_DIR/${filename} ]; then
- echo "Cache file: ${CACHE_DIR}/${filename} missing...will download..."
- curl_file $1 $filename
- else
- echo "Cache file exists...comparing MD5 checksum"
- if [ -z "$remote_md5" ]; then
- remote_md5="$(curl -sf -L ${1}.md5 | awk {'print $1'})"
- fi
- if [ -z "$remote_md5" ]; then
- echo "Got empty MD5 from remote for $filename, skipping MD5 check"
- curl_file $1 $filename
- else
- my_md5=$(grep ${filename} ${CACHE_DIR}/${CACHE_HISTORY} | awk {'print $1'})
- if [ -z "$my_md5" ]; then
- echo "${filename} missing in ${CACHE_HISTORY} file. Caculating md5..."
- my_md5=$(md5sum ${CACHE_DIR}/${filename} | awk {'print $1'})
- fi
- if [ "$remote_md5" != "$my_md5" ]; then
- echo "MD5 mismatch, local cache file MD5 is ${my_md5}"
- echo " remote cache file MD5 is ${remote_md5}"
- echo "Downloading $filename"
- curl_file $1 $filename
- else
- echo "Will use cache for ${filename}"
- fi
- fi
- fi
-}
diff --git a/build/containers-prepare-parameter.yaml b/build/containers-prepare-parameter.yaml
new file mode 100644
index 00000000..5089c335
--- /dev/null
+++ b/build/containers-prepare-parameter.yaml
@@ -0,0 +1,26 @@
+---
+parameter_defaults:
+ ContainerImagePrepare:
+ - push_destination: true
+ set:
+ ceph_image: daemon
+ ceph_namespace: docker.io/ceph
+ ceph_tag: v3.1.0-stable-3.1-luminous-centos-7-x86_64
+ name_prefix: centos-binary-
+ name_suffix: ''
+ namespace: docker.io/tripleomaster
+ neutron_driver: null
+ tag: current-tripleo
+ excludes:
+ - sensu
+ - manila
+ - octavia
+ - skydive
+ - drouter
+ - sahara
+ - rsys
+ - fluent
+ - designate
+ - barbican
+ - etcd
+ - ec2
diff --git a/build/csit-environment.yaml b/build/csit-environment.yaml
index 3dcd6d9e..39486d32 100644
--- a/build/csit-environment.yaml
+++ b/build/csit-environment.yaml
@@ -3,7 +3,7 @@
# types
parameters:
-# CloudDomain:
+ CloudDomain: opnfvlf.org
parameter_defaults:
GlanceBackend: file
@@ -11,39 +11,72 @@ parameter_defaults:
NeutronEnableForceMetadata: true
NeutronEnableDHCPMetadata: true
NeutronEnableIsolatedMetadata: true
- OvercloudControlFlavor: control
- OvercloudComputeFlavor: compute
- controllerImage: overcloud-full
ExtraConfig:
tripleo::ringbuilder::build_ring: false
- nova::nova_public_key:
- type: 'ssh-rsa'
- replace_public_key:
- nova::nova_private_key:
- type: 'ssh-rsa'
- replace_private_key:
- nova::policy::policies:
- nova-os_compute_api:servers:show:host_status:
- key: 'os_compute_api:servers:show:host_status'
- value: 'rule:admin_or_owner'
nova::api::default_floating_pool: 'external'
+ ControllerExtraConfig:
+ tripleo::firewall::firewall_rules:
+ '139 allow NFS TCP':
+ dport:
+ - 2049
+ - 111
+ - 32765
+ proto: tcp
+ action: accept
+ '140 allow NFS UDP':
+ dport:
+ - 2049
+ - 111
+ - 32765
+ proto: udp
+ action: accept
+ GlanceNfsEnabled: true
+ GlanceNfsShare: overcloud-controller-0.opnfvlf.org:/glance
+ GlanceNfsOptions:
+ 'rw,sync,context=system_u:object_r:glance_var_lib_t:s0'
+ NovaNfsEnabled: true
+ NovaNfsShare: overcloud-controller-0.opnfvlf.org:/nova
+ NovaNfsOptions: 'rw,sync,context=system_u:object_r:nfs_t:s0'
+ DockerPuppetProcessCount: 10
+ NeutronNetworkVLANRanges: 'datacentre:500:525'
+ SshServerOptions:
+ HostKey:
+ - '/etc/ssh/ssh_host_rsa_key'
+ - '/etc/ssh/ssh_host_ecdsa_key'
+ - '/etc/ssh/ssh_host_ed25519_key'
+ SyslogFacility: 'AUTHPRIV'
+ AuthorizedKeysFile: '.ssh/authorized_keys'
+ PasswordAuthentication: 'no'
+ ChallengeResponseAuthentication: 'no'
+ GSSAPIAuthentication: 'no'
+ GSSAPICleanupCredentials: 'no'
+ UsePAM: 'yes'
+ X11Forwarding: 'yes'
+ UsePrivilegeSeparation: 'sandbox'
+ AcceptEnv:
+ - 'LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES'
+ - 'LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT'
+ - 'LC_IDENTIFICATION LC_ALL LANGUAGE'
+ - 'XMODIFIERS'
+ Subsystem: 'sftp /usr/libexec/openssh/sftp-server'
+ UseDNS: 'no'
ControllerServices:
- OS::TripleO::Services::CACerts
- - OS::TripleO::Services::Core
+ - OS::TripleO::Services::Clustercheck
- OS::TripleO::Services::Kernel
+ - OS::TripleO::Services::Docker
- OS::TripleO::Services::Keystone
- OS::TripleO::Services::GlanceApi
- OS::TripleO::Services::GlanceRegistry
- OS::TripleO::Services::MySQL
+ - OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NeutronDhcpAgent
- OS::TripleO::Services::NeutronMetadataAgent
- OS::TripleO::Services::NeutronApi
- OS::TripleO::Services::NeutronCorePlugin
- - OS::TripleO::Services::RabbitMQ
- OS::TripleO::Services::HAproxy
- OS::TripleO::Services::Keepalived
- OS::TripleO::Services::Memcached
- - OS::TripleO::Services::Pacemaker
- OS::TripleO::Services::Redis
- OS::TripleO::Services::NovaConductor
- OS::TripleO::Services::MongoDb
@@ -51,28 +84,33 @@ parameter_defaults:
- OS::TripleO::Services::NovaMetadata
- OS::TripleO::Services::NovaScheduler
- OS::TripleO::Services::NovaConsoleauth
+ - OS::TripleO::Services::NovaPlacement
- OS::TripleO::Services::NovaVncProxy
- OS::TripleO::Services::Ntp
+ - OS::TripleO::Services::OsloMessagingRpc
+ - OS::TripleO::Services::OsloMessagingNotify
+ - OS::TripleO::Services::Pacemaker
- OS::TripleO::Services::Snmp
+ - OS::TripleO::Services::Sshd
- OS::TripleO::Services::Timezone
- - OS::TripleO::Services::Horizon
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::OpenDaylightApi
- OS::TripleO::Services::OpenDaylightOvs
- - OS::TripleO::Services::VipHosts
ComputeServices:
- OS::TripleO::Services::CACerts
- OS::TripleO::Services::Timezone
- OS::TripleO::Services::Ntp
- OS::TripleO::Services::Snmp
+ - OS::TripleO::Services::Sshd
+ - OS::TripleO::Services::MySQLClient
- OS::TripleO::Services::NovaCompute
- OS::TripleO::Services::NovaLibvirt
- OS::TripleO::Services::Kernel
+ - OS::TripleO::Services::Docker
- OS::TripleO::Services::ComputeNeutronCorePlugin
- OS::TripleO::Services::ComputeNeutronMetadataAgent
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::NeutronSriovAgent
- OS::TripleO::Services::OpenDaylightOvs
- - OS::TripleO::Services::VipHosts
diff --git a/build/csit-queens-environment.yaml b/build/csit-queens-environment.yaml
new file mode 100644
index 00000000..12c994d1
--- /dev/null
+++ b/build/csit-queens-environment.yaml
@@ -0,0 +1,115 @@
+---
+# Environment file used to list common parameters required for all deployment
+# types
+
+parameters:
+ CloudDomain: opnfvlf.org
+
+parameter_defaults:
+ GlanceBackend: file
+ CeilometerStoreEvents: true
+ NeutronEnableForceMetadata: true
+ NeutronEnableDHCPMetadata: true
+ NeutronEnableIsolatedMetadata: true
+ ExtraConfig:
+ tripleo::ringbuilder::build_ring: false
+ nova::api::default_floating_pool: 'external'
+ ControllerExtraConfig:
+ tripleo::firewall::firewall_rules:
+ '139 allow NFS TCP':
+ dport:
+ - 2049
+ - 111
+ - 32765
+ proto: tcp
+ action: accept
+ '140 allow NFS UDP':
+ dport:
+ - 2049
+ - 111
+ - 32765
+ proto: udp
+ action: accept
+ GlanceNfsEnabled: true
+ GlanceNfsShare: overcloud-controller-0.opnfvlf.org:/glance
+ GlanceNfsOptions:
+ 'rw,sync,context=system_u:object_r:glance_var_lib_t:s0'
+ NovaNfsEnabled: true
+ NovaNfsShare: overcloud-controller-0.opnfvlf.org:/nova
+ NovaNfsOptions: 'rw,sync,context=system_u:object_r:nfs_t:s0'
+ DockerPuppetProcessCount: 10
+ NeutronNetworkVLANRanges: 'datacentre:500:525'
+ SshServerOptions:
+ HostKey:
+ - '/etc/ssh/ssh_host_rsa_key'
+ - '/etc/ssh/ssh_host_ecdsa_key'
+ - '/etc/ssh/ssh_host_ed25519_key'
+ SyslogFacility: 'AUTHPRIV'
+ AuthorizedKeysFile: '.ssh/authorized_keys'
+ PasswordAuthentication: 'no'
+ ChallengeResponseAuthentication: 'no'
+ GSSAPIAuthentication: 'no'
+ GSSAPICleanupCredentials: 'no'
+ UsePAM: 'yes'
+ X11Forwarding: 'yes'
+ UsePrivilegeSeparation: 'sandbox'
+ AcceptEnv:
+ - 'LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES'
+ - 'LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT'
+ - 'LC_IDENTIFICATION LC_ALL LANGUAGE'
+ - 'XMODIFIERS'
+ Subsystem: 'sftp /usr/libexec/openssh/sftp-server'
+ UseDNS: 'no'
+ ControllerServices:
+ - OS::TripleO::Services::CACerts
+ - OS::TripleO::Services::Clustercheck
+ - OS::TripleO::Services::Kernel
+ - OS::TripleO::Services::Docker
+ - OS::TripleO::Services::Keystone
+ - OS::TripleO::Services::GlanceApi
+ - OS::TripleO::Services::GlanceRegistry
+ - OS::TripleO::Services::MySQL
+ - OS::TripleO::Services::MySQLClient
+ - OS::TripleO::Services::NeutronDhcpAgent
+ - OS::TripleO::Services::NeutronMetadataAgent
+ - OS::TripleO::Services::NeutronApi
+ - OS::TripleO::Services::NeutronCorePlugin
+ - OS::TripleO::Services::RabbitMQ
+ - OS::TripleO::Services::HAproxy
+ - OS::TripleO::Services::Keepalived
+ - OS::TripleO::Services::Memcached
+ - OS::TripleO::Services::Redis
+ - OS::TripleO::Services::NovaConductor
+ - OS::TripleO::Services::MongoDb
+ - OS::TripleO::Services::NovaApi
+ - OS::TripleO::Services::NovaMetadata
+ - OS::TripleO::Services::NovaPlacement
+ - OS::TripleO::Services::NovaScheduler
+ - OS::TripleO::Services::NovaConsoleauth
+ - OS::TripleO::Services::NovaVncProxy
+ - OS::TripleO::Services::Ntp
+ - OS::TripleO::Services::Pacemaker
+ - OS::TripleO::Services::Snmp
+ - OS::TripleO::Services::Sshd
+ - OS::TripleO::Services::Timezone
+ - OS::TripleO::Services::TripleoPackages
+ - OS::TripleO::Services::TripleoFirewall
+ - OS::TripleO::Services::OpenDaylightApi
+ - OS::TripleO::Services::OpenDaylightOvs
+ ComputeServices:
+ - OS::TripleO::Services::CACerts
+ - OS::TripleO::Services::Timezone
+ - OS::TripleO::Services::Ntp
+ - OS::TripleO::Services::Snmp
+ - OS::TripleO::Services::Sshd
+ - OS::TripleO::Services::MySQLClient
+ - OS::TripleO::Services::NovaCompute
+ - OS::TripleO::Services::NovaLibvirt
+ - OS::TripleO::Services::Kernel
+ - OS::TripleO::Services::Docker
+ - OS::TripleO::Services::ComputeNeutronCorePlugin
+ - OS::TripleO::Services::ComputeNeutronMetadataAgent
+ - OS::TripleO::Services::TripleoPackages
+ - OS::TripleO::Services::TripleoFirewall
+ - OS::TripleO::Services::NeutronSriovAgent
+ - OS::TripleO::Services::OpenDaylightOvs
diff --git a/build/csit-rocky-environment.yaml b/build/csit-rocky-environment.yaml
new file mode 100644
index 00000000..39486d32
--- /dev/null
+++ b/build/csit-rocky-environment.yaml
@@ -0,0 +1,116 @@
+---
+# Environment file used to list common parameters required for all deployment
+# types
+
+parameters:
+ CloudDomain: opnfvlf.org
+
+parameter_defaults:
+ GlanceBackend: file
+ CeilometerStoreEvents: true
+ NeutronEnableForceMetadata: true
+ NeutronEnableDHCPMetadata: true
+ NeutronEnableIsolatedMetadata: true
+ ExtraConfig:
+ tripleo::ringbuilder::build_ring: false
+ nova::api::default_floating_pool: 'external'
+ ControllerExtraConfig:
+ tripleo::firewall::firewall_rules:
+ '139 allow NFS TCP':
+ dport:
+ - 2049
+ - 111
+ - 32765
+ proto: tcp
+ action: accept
+ '140 allow NFS UDP':
+ dport:
+ - 2049
+ - 111
+ - 32765
+ proto: udp
+ action: accept
+ GlanceNfsEnabled: true
+ GlanceNfsShare: overcloud-controller-0.opnfvlf.org:/glance
+ GlanceNfsOptions:
+ 'rw,sync,context=system_u:object_r:glance_var_lib_t:s0'
+ NovaNfsEnabled: true
+ NovaNfsShare: overcloud-controller-0.opnfvlf.org:/nova
+ NovaNfsOptions: 'rw,sync,context=system_u:object_r:nfs_t:s0'
+ DockerPuppetProcessCount: 10
+ NeutronNetworkVLANRanges: 'datacentre:500:525'
+ SshServerOptions:
+ HostKey:
+ - '/etc/ssh/ssh_host_rsa_key'
+ - '/etc/ssh/ssh_host_ecdsa_key'
+ - '/etc/ssh/ssh_host_ed25519_key'
+ SyslogFacility: 'AUTHPRIV'
+ AuthorizedKeysFile: '.ssh/authorized_keys'
+ PasswordAuthentication: 'no'
+ ChallengeResponseAuthentication: 'no'
+ GSSAPIAuthentication: 'no'
+ GSSAPICleanupCredentials: 'no'
+ UsePAM: 'yes'
+ X11Forwarding: 'yes'
+ UsePrivilegeSeparation: 'sandbox'
+ AcceptEnv:
+ - 'LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES'
+ - 'LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT'
+ - 'LC_IDENTIFICATION LC_ALL LANGUAGE'
+ - 'XMODIFIERS'
+ Subsystem: 'sftp /usr/libexec/openssh/sftp-server'
+ UseDNS: 'no'
+ ControllerServices:
+ - OS::TripleO::Services::CACerts
+ - OS::TripleO::Services::Clustercheck
+ - OS::TripleO::Services::Kernel
+ - OS::TripleO::Services::Docker
+ - OS::TripleO::Services::Keystone
+ - OS::TripleO::Services::GlanceApi
+ - OS::TripleO::Services::GlanceRegistry
+ - OS::TripleO::Services::MySQL
+ - OS::TripleO::Services::MySQLClient
+ - OS::TripleO::Services::NeutronDhcpAgent
+ - OS::TripleO::Services::NeutronMetadataAgent
+ - OS::TripleO::Services::NeutronApi
+ - OS::TripleO::Services::NeutronCorePlugin
+ - OS::TripleO::Services::HAproxy
+ - OS::TripleO::Services::Keepalived
+ - OS::TripleO::Services::Memcached
+ - OS::TripleO::Services::Redis
+ - OS::TripleO::Services::NovaConductor
+ - OS::TripleO::Services::MongoDb
+ - OS::TripleO::Services::NovaApi
+ - OS::TripleO::Services::NovaMetadata
+ - OS::TripleO::Services::NovaScheduler
+ - OS::TripleO::Services::NovaConsoleauth
+ - OS::TripleO::Services::NovaPlacement
+ - OS::TripleO::Services::NovaVncProxy
+ - OS::TripleO::Services::Ntp
+ - OS::TripleO::Services::OsloMessagingRpc
+ - OS::TripleO::Services::OsloMessagingNotify
+ - OS::TripleO::Services::Pacemaker
+ - OS::TripleO::Services::Snmp
+ - OS::TripleO::Services::Sshd
+ - OS::TripleO::Services::Timezone
+ - OS::TripleO::Services::TripleoPackages
+ - OS::TripleO::Services::TripleoFirewall
+ - OS::TripleO::Services::OpenDaylightApi
+ - OS::TripleO::Services::OpenDaylightOvs
+ ComputeServices:
+ - OS::TripleO::Services::CACerts
+ - OS::TripleO::Services::Timezone
+ - OS::TripleO::Services::Ntp
+ - OS::TripleO::Services::Snmp
+ - OS::TripleO::Services::Sshd
+ - OS::TripleO::Services::MySQLClient
+ - OS::TripleO::Services::NovaCompute
+ - OS::TripleO::Services::NovaLibvirt
+ - OS::TripleO::Services::Kernel
+ - OS::TripleO::Services::Docker
+ - OS::TripleO::Services::ComputeNeutronCorePlugin
+ - OS::TripleO::Services::ComputeNeutronMetadataAgent
+ - OS::TripleO::Services::TripleoPackages
+ - OS::TripleO::Services::TripleoFirewall
+ - OS::TripleO::Services::NeutronSriovAgent
+ - OS::TripleO::Services::OpenDaylightOvs
diff --git a/build/isolinux.cfg b/build/isolinux.cfg
deleted file mode 100644
index 87ae01b0..00000000
--- a/build/isolinux.cfg
+++ /dev/null
@@ -1,119 +0,0 @@
-default vesamenu.c32
-timeout 600
-
-display boot.msg
-
-# Clear the screen when exiting the menu, instead of leaving the menu displayed.
-# For vesamenu, this means the graphical background is still displayed without
-# the menu itself for as long as the screen remains in graphics mode.
-menu clear
-menu background splash.png
-menu title CentOS 7
-menu vshift 8
-menu rows 18
-menu margin 8
-#menu hidden
-menu helpmsgrow 15
-menu tabmsgrow 13
-
-# Border Area
-menu color border * #00000000 #00000000 none
-
-# Selected item
-menu color sel 0 #ffffffff #00000000 none
-
-# Title bar
-menu color title 0 #ff7ba3d0 #00000000 none
-
-# Press [Tab] message
-menu color tabmsg 0 #ff3a6496 #00000000 none
-
-# Unselected menu item
-menu color unsel 0 #84b8ffff #00000000 none
-
-# Selected hotkey
-menu color hotsel 0 #84b8ffff #00000000 none
-
-# Unselected hotkey
-menu color hotkey 0 #ffffffff #00000000 none
-
-# Help text
-menu color help 0 #ffffffff #00000000 none
-
-# A scrollbar of some type? Not sure.
-menu color scrollbar 0 #ffffffff #ff355594 none
-
-# Timeout msg
-menu color timeout 0 #ffffffff #00000000 none
-menu color timeout_msg 0 #ffffffff #00000000 none
-
-# Command prompt text
-menu color cmdmark 0 #84b8ffff #00000000 none
-menu color cmdline 0 #ffffffff #00000000 none
-
-# Do not display the actual menu unless the user presses a key. All that is displayed is a timeout message.
-
-menu tabmsg Press Tab for full configuration options on menu items.
-
-menu separator # insert an empty line
-menu separator # insert an empty line
-
-label linux
- menu label ^Install OPNFV Apex :: CentOS 7
- kernel vmlinuz
- append initrd=initrd.img inst.stage2=hd:LABEL=OPNFV\x20CentOS\x207\x20x86_64
-
-#label check
-# menu label Test this ^media & install CentOS 7
-# kernel vmlinuz
-# append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet
-
-menu separator # insert an empty line
-
-# utilities submenu
-menu begin ^Troubleshooting
- menu title Troubleshooting
-
-label vesa
- menu indent count 5
- menu label Install CentOS 7 in ^basic graphics mode
- text help
- Try this option out if you're having trouble installing
- CentOS 7.
- endtext
- kernel vmlinuz
- append initrd=initrd.img inst.stage2=hd:LABEL=OPNFV\x20CentOS\x207\x20x86_64 xdriver=vesa nomodeset quiet
-
-label rescue
- menu indent count 5
- menu label ^Rescue a CentOS system
- text help
- If the system will not boot, this lets you access files
- and edit config files to try to get it booting again.
- endtext
- kernel vmlinuz
- append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rescue quiet
-
-label memtest
- menu label Run a ^memory test
- text help
- If your system is having issues, a problem with your
- system's memory may be the cause. Use this utility to
- see if the memory is working correctly.
- endtext
- kernel memtest
-
-menu separator # insert an empty line
-
-label local
- menu label Boot from ^local drive
- localboot 0xffff
-
-menu separator # insert an empty line
-menu separator # insert an empty line
-
-label returntomain
- menu label Return to ^main menu
- menu exit
-
-menu end
diff --git a/build/kubernetes-environment.yaml b/build/kubernetes-environment.yaml
new file mode 100644
index 00000000..bfc1f9ad
--- /dev/null
+++ b/build/kubernetes-environment.yaml
@@ -0,0 +1,26 @@
+---
+resource_registry:
+ OS::TripleO::Services::Docker: OS::Heat::None
+
+
+parameter_defaults:
+ ControllerServices:
+ - OS::TripleO::Services::Kernel
+ - OS::TripleO::Services::Ntp
+ - OS::TripleO::Services::Snmp
+ - OS::TripleO::Services::Timezone
+ - OS::TripleO::Services::TripleoPackages
+ # - OS::TripleO::Services::TripleoFirewall
+ - OS::TripleO::Services::Sshd
+ # - OS::TripleO::Services::OpenShift::Master
+ # - OS::TripleO::Services::OpenShift::Worker
+ ComputeServices:
+ - OS::TripleO::Services::Kernel
+ - OS::TripleO::Services::Ntp
+ - OS::TripleO::Services::Snmp
+ - OS::TripleO::Services::Timezone
+ - OS::TripleO::Services::TripleoPackages
+ # - OS::TripleO::Services::TripleoFirewall
+ - OS::TripleO::Services::Sshd
+ # - OS::TripleO::Services::OpenShift::Worker
+ Debug: true
diff --git a/build/kvm4nfv-1st-boot.yaml b/build/kvm4nfv-1st-boot.yaml
deleted file mode 100644
index 4c1aefc0..00000000
--- a/build/kvm4nfv-1st-boot.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
----
-heat_template_version: 2014-10-16
-
-description: >
- This is the firstboot configuration for kvmfornfv kernel of the compute nodes
- via cloud-init. To enable this, replace the default
- mapping of OS::TripleO::NodeUserData in ../overcloud_resource_registry*
-
-parameters:
- ComputeKernelArgs:
- description: >
- Name of the kvmfornfv kernel rpm.
- Example: "kvmfornfv_kernel.rpm"
- type: string
- default: ""
- ComputeHostnameFormat:
- type: string
- default: ""
-
-resources:
- userdata:
- type: OS::Heat::MultipartMime
- properties:
- parts:
- - config: {get_resource: compute_kernel_args}
-
- # Verify the logs on /var/log/cloud-init.log on the overcloud node
- compute_kernel_args:
- type: OS::Heat::SoftwareConfig
- properties:
- config:
- str_replace:
- template: |
- #!/bin/bash
- set -x
- FORMAT=$COMPUTE_HOSTNAME_FORMAT
- if [[ -z $FORMAT ]] ; then
- FORMAT="compute" ;
- else
- # Assumption: only %index% and %stackname% are
- # the variables in Host name format
- FORMAT=$(echo $FORMAT | sed 's/\%index\%//g');
- FORMAT=$(echo $FORMAT | sed 's/\%stackname\%//g');
- fi
- if [[ $(hostname) == *$FORMAT* ]] ; then
- yum install -y /root/$KVMFORNFV_KERNEL_RPM
- grub2-mkconfig -o /etc/grub2.cfg
- sleep 5
- reboot
- fi
- params:
- $KVMFORNFV_KERNEL_RPM: {get_param: ComputeKernelArgs}
- $COMPUTE_HOSTNAME_FORMAT: {get_param: ComputeHostnameFormat}
-
-outputs:
- # This means get_resource from the parent template will get the userdata, see:
- # http://docs.openstack.org/developer/heat/template_guide/composition.html#making-your-template-resource-more-transparent
- # Note this is new-for-kilo, an alternative is returning a value then using
- # get_attr in the parent template instead.
- OS::stack_id:
- value: {get_resource: userdata}
diff --git a/build/network-environment.yaml b/build/network-environment.yaml
index 3fd22e3d..1397a0c8 100644
--- a/build/network-environment.yaml
+++ b/build/network-environment.yaml
@@ -63,33 +63,53 @@ parameter_defaults:
NeutronExternalNetworkBridge: 'br-ex'
ServiceNetMap:
+ ApacheNetwork: internal_api
NeutronTenantNetwork: tenant
CeilometerApiNetwork: internal_api
AodhApiNetwork: internal_api
+ PankoApiNetwork: internal_api
+ BarbicanApiNetwork: internal_api
+ GnocchiApiNetwork: internal_api
OpendaylightApiNetwork: internal_api
MongoDbNetwork: internal_api
CinderApiNetwork: internal_api
CinderIscsiNetwork: storage
GlanceApiNetwork: internal_api
GlanceRegistryNetwork: internal_api
+ IronicApiNetwork: ctlplane
+ IronicNetwork: ctlplane
+ IronicInspectorNetwork: ctlplane
KeystoneAdminApiNetwork: ctlplane
KeystonePublicApiNetwork: internal_api
NeutronApiNetwork: internal_api
HeatApiNetwork: internal_api
+ HeatApiCfnNetwork: internal_api
+ HeatApiCloudwatchNetwork: internal_api
+ ManilaApiNetwork: internal_api
+ MetricsQdrNetwork: internal_api
NovaApiNetwork: internal_api
NovaMetadataNetwork: internal_api
+ NovaPlacementNetwork: internal_api
NovaVncProxyNetwork: internal_api
+ NovaLibvirtNetwork: internal_api
+ NovajoinNetwork: internal_api
+ OctaviaApiNetwork: internal_api
SwiftMgmtNetwork: storage
SwiftProxyNetwork: storage
TackerApiNetwork: internal_api
CongressApiNetwork: internal_api
HorizonNetwork: internal_api
+ OsloMessagingRpcNetwork: internal_api
+ OsloMessagingNotifyNetwork: internal_api
MemcachedNetwork: internal_api
RabbitMqNetwork: internal_api
RedisNetwork: internal_api
MysqlNetwork: internal_api
CephClusterNetwork: storage
- CephPublicNetwork: storage
+ CephMonNetwork: storage
+ PublicNetwork: external
+ OvnDbsNetwork: internal_api
+ DockerRegistryNetwork: ctlplane
# Define which network will be used for hostname resolution
ControllerHostnameResolveNetwork: internal_api
ComputeHostnameResolveNetwork: internal_api
diff --git a/build/nics-template.yaml.jinja2 b/build/nics-template.yaml.jinja2
index 93d3dc14..6d1fb9c0 100644
--- a/build/nics-template.yaml.jinja2
+++ b/build/nics-template.yaml.jinja2
@@ -1,4 +1,4 @@
-heat_template_version: 2015-04-30
+heat_template_version: 2016-10-14
description: >
Software Config to drive os-net-config to configure multiple interfaces
@@ -9,30 +9,14 @@ parameters:
default: ''
description: IP address/subnet on the ctlplane network
type: string
- ExternalIpSubnet:
- default: ''
- description: IP address/subnet on the external network
- type: string
- InternalApiIpSubnet:
- default: ''
- description: IP address/subnet on the internal API network
- type: string
- StorageIpSubnet:
- default: ''
- description: IP address/subnet on the storage network
- type: string
- StorageMgmtIpSubnet:
- default: ''
- description: IP address/subnet on the storage mgmt network
- type: string
- TenantIpSubnet:
- default: ''
- description: IP address/subnet on the tenant network
- type: string
- ManagementIpSubnet: # Only populated when including environments/network-management.yaml
- default: ''
- description: IP address/subnet on the management network
- type: string
+ ControlPlaneStaticRoutes:
+ default: []
+ description: >
+ Routes for the ctlplane network traffic.
+ JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
+ Unless the default is changed, the parameter is automatically resolved
+ from the subnet host_routes attribute.
+ type: json
ExternalNetworkVlanID:
default: 10
description: Vlan ID for the external network traffic.
@@ -75,195 +59,297 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
+ ExternalIpSubnet:
+ default: ''
+ description: IP address/subnet on the external network
+ type: string
+ ExternalInterfaceRoutes:
+ default: []
+ description: >
+ Routes for the external network traffic.
+ JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
+ Unless the default is changed, the parameter is automatically resolved
+ from the subnet host_routes attribute.
+ type: json
+ InternalApiIpSubnet:
+ default: ''
+ description: IP address/subnet on the internal_api network
+ type: string
+ InternalApiInterfaceRoutes:
+ default: []
+ description: >
+ Routes for the internal_api network traffic.
+ JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
+ Unless the default is changed, the parameter is automatically resolved
+ from the subnet host_routes attribute.
+ type: json
+ StorageIpSubnet:
+ default: ''
+ description: IP address/subnet on the storage network
+ type: string
+ StorageInterfaceRoutes:
+ default: []
+ description: >
+ Routes for the storage network traffic.
+ JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
+ Unless the default is changed, the parameter is automatically resolved
+ from the subnet host_routes attribute.
+ type: json
+ StorageMgmtIpSubnet:
+ default: ''
+ description: IP address/subnet on the storage_mgmt network
+ type: string
+ StorageMgmtInterfaceRoutes:
+ default: []
+ description: >
+ Routes for the storage_mgmt network traffic.
+ JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
+ Unless the default is changed, the parameter is automatically resolved
+ from the subnet host_routes attribute.
+ type: json
+ StorageNFSIpSubnet:
+ default: ''
+ description: IP address/subnet on the storage_nfs network
+ type: string
+ StorageNFSRoutes:
+ default: []
+ description: >
+ Routes for the storage_nfs network traffic.
+ JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
+ Unless the default is changed, the parameter is automatically resolved
+ from the subnet host_routes attribute.
+ type: json
+ TenantIpSubnet:
+ default: ''
+ description: IP address/subnet on the tenant network
+ type: string
+ TenantInterfaceRoutes:
+ default: []
+ description: >
+ Routes for the tenant network traffic.
+ JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
+ Unless the default is changed, the parameter is automatically resolved
+ from the subnet host_routes attribute.
+ type: json
+ ManagementIpSubnet:
+ default: ''
+ description: IP address/subnet on the management network
+ type: string
+ ManagementInterfaceRoutes:
+ default: []
+ description: >
+ Routes for the management network traffic.
+ JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
+ Unless the default is changed, the parameter is automatically resolved
+ from the subnet host_routes attribute.
+ type: json
resources:
OsNetConfigImpl:
- type: OS::Heat::StructuredConfig
+ type: OS::Heat::SoftwareConfig
properties:
- group: os-apply-config
+ group: script
config:
- os_net_config:
- network_config:
- -
- {%- if not nets['external'][0]['enabled'] or nets['tenant']['nic_mapping'][role]['vlan'] is number or nets['storage']['nic_mapping'][role]['vlan'] is number or nets['api']['nic_mapping'][role]['vlan'] is number or nets['external'][0]['nic_mapping'][role]['vlan'] is number %}
- type: ovs_bridge
- name: {get_input: bridge_name}
- members:
- -
- type: interface
- name: {{ nets['admin']['nic_mapping'][role]['members'][0] }}
- # force the MAC address of the bridge to this interface
- primary: true
- {%- if nets['external'][0]['enabled'] and nets['external'][0]['nic_mapping'][role]['vlan'] is number %}
- -
- type: vlan
- vlan_id: {get_param: ExternalNetworkVlanID}
- addresses:
+ str_replace:
+ template:
+ get_file: /usr/share/openstack-tripleo-heat-templates/network/scripts/run-os-net-config.sh
+ params:
+ $network_config:
+ network_config:
+ -
+ {%- if not nets['external'][0]['enabled'] or nets['tenant']['nic_mapping'][role]['vlan'] is number or nets['storage']['nic_mapping'][role]['vlan'] is number or nets['api']['nic_mapping'][role]['vlan'] is number or nets['external'][0]['nic_mapping'][role]['vlan'] is number %}
+ type: ovs_bridge
+ {%- if nets['external'][0]['enabled'] and nets['external'][0]['nic_mapping'][role]['vlan'] == 'native' %}
+ name: br-isolated
+ {%- else %}
+ name: br-ex
+ {%- endif %}
+ members:
-
- ip_netmask: {get_param: ExternalIpSubnet}
- routes:
- -
- default: true
- next_hop: {get_param: ExternalInterfaceDefaultRoute}
- {%- endif %}
- {%- if nets['tenant']['enabled'] and nets['tenant']['nic_mapping'][role]['vlan'] is number %}
- -
- type: vlan
- vlan_id: {get_param: TenantNetworkVlanID}
- addresses:
- -
- ip_netmask: {get_param: TenantIpSubnet}
- {%- endif %}
- {%- if nets['storage']['enabled'] and nets['storage']['nic_mapping'][role]['vlan'] is number %}
- -
- type: vlan
- vlan_id: {get_param: StorageNetworkVlanID}
- addresses:
- -
- ip_netmask: {get_param: StorageIpSubnet}
- {%- endif %}
- {%- if nets['api']['enabled'] and nets['api']['nic_mapping'][role]['vlan'] is number %}
- -
- type: vlan
- vlan_id: {get_param: InternalApiNetworkVlanID}
- addresses:
+ type: interface
+ name: {{ nets['admin']['nic_mapping'][role]['members'][0] }}
+ # force the MAC address of the bridge to this interface
+ primary: true
+ {%- if nets['external'][0]['enabled'] and nets['external'][0]['nic_mapping'][role]['vlan'] is number %}
+ -
+ type: vlan
+ vlan_id: {get_param: ExternalNetworkVlanID}
+ addresses:
-
- ip_netmask: {get_param: InternalApiIpSubnet}
- {%- endif %}
- {%- else %}
- type: {{ nets['admin']['nic_mapping'][role]['phys_type'] }}
- {%- if nets['admin']['nic_mapping'][role]['phys_type'] == 'linux_bridge' %}
- name: br-ctlplane
- members:
- -
- type: interface
- name: {{ nets['admin']['nic_mapping'][role]['members'][0] }}
- primary: true
+ ip_netmask: {get_param: ExternalIpSubnet}
+ routes:
+ -
+ default: true
+ next_hop: {get_param: ExternalInterfaceDefaultRoute}
+ {%- endif %}
+ {%- if nets['tenant']['enabled'] and nets['tenant']['nic_mapping'][role]['vlan'] is number %}
+ -
+ type: vlan
+ vlan_id: {get_param: TenantNetworkVlanID}
+ addresses:
+ -
+ ip_netmask: {get_param: TenantIpSubnet}
+ {%- endif %}
+ {%- if nets['storage']['enabled'] and nets['storage']['nic_mapping'][role]['vlan'] is number %}
+ -
+ type: vlan
+ vlan_id: {get_param: StorageNetworkVlanID}
+ addresses:
+ -
+ ip_netmask: {get_param: StorageIpSubnet}
+ {%- endif %}
+ {%- if nets['api']['enabled'] and nets['api']['nic_mapping'][role]['vlan'] is number %}
+ -
+ type: vlan
+ vlan_id: {get_param: InternalApiNetworkVlanID}
+ addresses:
+ -
+ ip_netmask: {get_param: InternalApiIpSubnet}
+ {%- endif %}
{%- else %}
- name: {{ nets['admin']['nic_mapping'][role]['members'][0] }}
- {%- endif %}
- {%- endif %}
- use_dhcp: false
- dns_servers: {get_param: DnsServers}
- addresses:
- -
- ip_netmask:
- list_join:
- - '/'
- - - {get_param: ControlPlaneIp}
- - {get_param: ControlPlaneSubnetCidr}
- routes:
- -
- ip_netmask: 169.254.169.254/32
- next_hop: {get_param: EC2MetadataIp}
- {%- if external_net_af == 6 or role == 'compute' or not nets['external'][0]['enabled'] %}
- -
- default: true
- next_hop: {get_param: ControlPlaneDefaultRoute}
+ type: {{ nets['admin']['nic_mapping'][role]['phys_type'] }}
+ {%- if nets['admin']['nic_mapping'][role]['phys_type'] == 'linux_bridge' %}
+ name: br-ctlplane
+ members:
+ -
+ type: interface
+ name: {{ nets['admin']['nic_mapping'][role]['members'][0] }}
+ primary: true
+ {%- else %}
+ name: {{ nets['admin']['nic_mapping'][role]['members'][0] }}
{%- endif %}
-
- {%- if nets['tenant']['enabled'] and nets['tenant']['nic_mapping'][role]['vlan'] == 'native' %}
- {%- if ovs_dpdk_bridge == 'br-phy' and role == 'compute' %}
- -
- type: ovs_user_bridge
- name: {{ ovs_dpdk_bridge }}
- use_dhcp: false
- addresses:
- -
- ip_netmask: {get_param: TenantIpSubnet}
- members:
- -
- type: ovs_dpdk_port
- name: dpdk0
- driver: {{ nets['tenant']['nic_mapping'][role]['uio_driver'] }}
- members:
- -
- type: interface
- name: {{ nets['tenant']['nic_mapping'][role]['members'][0] }}
- # force the MAC address of the bridge to this interface
- primary: true
- {%- else %}
- -
- type: {{ nets['tenant']['nic_mapping'][role]['phys_type'] }}
- name: {{ nets['tenant']['nic_mapping'][role]['members'][0] }}
- {%- if 'uio-driver' in nets['tenant']['nic_mapping'][role] %}
- uio_driver: {{ nets['tenant']['nic_mapping'][role]['uio-driver'] }}
- {%- endif %}
- {%- if 'interface-options' in nets['tenant']['nic_mapping'][role] %}
- options: '{{ nets['tenant']['nic_mapping'][role]['interface-options'] }}'
{%- endif %}
- use_dhcp: false
- addresses:
- -
- ip_netmask: {get_param: TenantIpSubnet}
- {%- endif %}
- {%- endif %}
- {%- if nets['external'][0]['enabled'] and external_net_type != 'br-ex' and nets['external'][0]['nic_mapping'][role]['vlan'] == 'native' %}
- -
- type: {{ nets['external'][0]['nic_mapping'][role]['phys_type'] }}
- name: {{ nets['external'][0]['nic_mapping'][role]['members'][0] }}
- {%- if 'uio-driver' in nets['external'][0]['nic_mapping'][role] %}
- uio_driver: {{ nets['external'][0]['nic_mapping'][role]['uio-driver'] }}
- {%- endif %}
- {%- if role == 'controller' %}
- dns_servers: {get_param: DnsServers}
- {%- endif %}
- use_dhcp: false
- addresses:
- -
- ip_netmask: {get_param: ExternalIpSubnet}
- routes:
- -
- {%- if role == 'controller' %}
- default: true
+ use_dhcp: false
+ dns_servers: {get_param: DnsServers}
+ addresses:
+ -
+ ip_netmask:
+ list_join:
+ - '/'
+ - - {get_param: ControlPlaneIp}
+ - {get_param: ControlPlaneSubnetCidr}
+ routes:
+ -
+ ip_netmask: 169.254.169.254/32
+ next_hop: {get_param: EC2MetadataIp}
+ {%- if external_net_af == 6 or role == 'compute' or not nets['external'][0]['enabled'] %}
+ -
+ default: true
+ next_hop: {get_param: ControlPlaneDefaultRoute}
{%- endif %}
- ip_netmask: 0.0.0.0/0
- next_hop: {get_param: ExternalInterfaceDefaultRoute}
- {%- elif nets['external'][0]['enabled'] and external_net_type == 'br-ex' and nets['external'][0]['nic_mapping'][role]['vlan'] == 'native' %}
- -
+
+ {%- if nets['tenant']['enabled'] and nets['tenant']['nic_mapping'][role]['vlan'] == 'native' %}
{%- if ovs_dpdk_bridge == 'br-phy' and role == 'compute' %}
- type: ovs_user_bridge
+ -
+ type: ovs_user_bridge
+ name: {{ ovs_dpdk_bridge }}
+ use_dhcp: false
+ addresses:
+ -
+ ip_netmask: {get_param: TenantIpSubnet}
+ members:
+ -
+ type: ovs_dpdk_port
+ name: dpdk0
+ driver: {{ nets['tenant']['nic_mapping'][role]['uio_driver'] }}
+ members:
+ -
+ type: interface
+ name: {{ nets['tenant']['nic_mapping'][role]['members'][0] }}
+ # force the MAC address of the bridge to this interface
+ primary: true
+ {%- elif nets['tenant']['segmentation_type'] == 'vlan' %}
+ type: ovs_bridge
+ name: br-vlan
+ use_dhcp: false
+ addresses:
+ -
+ ip_netmask: {get_param: TenantIpSubnet}
+ members:
+ -
+ type: interface
+ name: {{ nets['tenant']['nic_mapping'][role]['members'][0] }}
+ primary: true
{%- else %}
- type: ovs_bridge
+ -
+ type: {{ nets['tenant']['nic_mapping'][role]['phys_type'] }}
+ name: {{ nets['tenant']['nic_mapping'][role]['members'][0] }}
+ {%- if 'uio-driver' in nets['tenant']['nic_mapping'][role] %}
+ uio_driver: {{ nets['tenant']['nic_mapping'][role]['uio-driver'] }}
+ {%- endif %}
+ {%- if 'interface-options' in nets['tenant']['nic_mapping'][role] %}
+ options: '{{ nets['tenant']['nic_mapping'][role]['interface-options'] }}'
+ {%- endif %}
+ use_dhcp: false
+ addresses:
+ -
+ ip_netmask: {get_param: TenantIpSubnet}
{%- endif %}
- name: {get_input: bridge_name}
- use_dhcp: false
- members:
- -
- type: interface
- name: {{ nets['external'][0]['nic_mapping'][role]['members'][0] }}
- # force the MAC address of the bridge to this interface
- primary: true
- {%- if role == 'controller' %}
- dns_servers: {get_param: DnsServers}
- addresses:
- -
- ip_netmask: {get_param: ExternalIpSubnet}
- routes:
- -
- default: true
- ip_netmask: 0.0.0.0/0
- next_hop: {get_param: ExternalInterfaceDefaultRoute}
{%- endif %}
- {%- endif %}
- {%- if nets['storage']['enabled'] and nets['storage']['nic_mapping'][role]['vlan'] == 'native' %}
- -
- type: interface
- name: {{ nets['storage']['nic_mapping'][role]['members'][0] }}
- use_dhcp: false
- addresses:
- -
- ip_netmask: {get_param: StorageIpSubnet}
- {%- endif %}
- {%- if nets['api']['enabled'] and nets['api']['nic_mapping'][role]['vlan'] == 'native' %}
- -
- type: interface
- name: {{ nets['api']['nic_mapping'][role]['members'][0] }}
- use_dhcp: false
- addresses:
- -
- ip_netmask: {get_param: InternalApiIpSubnet}
- {%- endif %}
+ {%- if nets['external'][0]['enabled'] and external_net_type != 'br-ex' and nets['external'][0]['nic_mapping'][role]['vlan'] == 'native' %}
+ -
+ type: {{ nets['external'][0]['nic_mapping'][role]['phys_type'] }}
+ name: {{ nets['external'][0]['nic_mapping'][role]['members'][0] }}
+ {%- if 'uio-driver' in nets['external'][0]['nic_mapping'][role] %}
+ uio_driver: {{ nets['external'][0]['nic_mapping'][role]['uio-driver'] }}
+ {%- endif %}
+ {%- if role == 'controller' %}
+ dns_servers: {get_param: DnsServers}
+ {%- endif %}
+ use_dhcp: false
+ addresses:
+ -
+ ip_netmask: {get_param: ExternalIpSubnet}
+ routes:
+ -
+ {%- if role == 'controller' %}
+ default: true
+ {%- endif %}
+ ip_netmask: 0.0.0.0/0
+ next_hop: {get_param: ExternalInterfaceDefaultRoute}
+ {%- elif nets['external'][0]['enabled'] and external_net_type == 'br-ex' and nets['external'][0]['nic_mapping'][role]['vlan'] == 'native' %}
+ -
+ {%- if ovs_dpdk_bridge == 'br-phy' and role == 'compute' %}
+ type: ovs_user_bridge
+ {%- else %}
+ type: {{ nets['external'][0]['nic_mapping'][role]['phys_type'] }}
+ {%- endif %}
+ name: br-ex
+ use_dhcp: false
+ members:
+ -
+ type: interface
+ name: {{ nets['external'][0]['nic_mapping'][role]['members'][0] }}
+ # force the MAC address of the bridge to this interface
+ primary: true
+ dns_servers: {get_param: DnsServers}
+ addresses:
+ -
+ ip_netmask: {get_param: ExternalIpSubnet}
+ routes:
+ -
+ default: true
+ ip_netmask: 0.0.0.0/0
+ next_hop: {get_param: ExternalInterfaceDefaultRoute}
+ {%- endif %}
+ {%- if nets['storage']['enabled'] and nets['storage']['nic_mapping'][role]['vlan'] == 'native' %}
+ -
+ type: interface
+ name: {{ nets['storage']['nic_mapping'][role]['members'][0] }}
+ use_dhcp: false
+ addresses:
+ -
+ ip_netmask: {get_param: StorageIpSubnet}
+ {%- endif %}
+ {%- if nets['api']['enabled'] and nets['api']['nic_mapping'][role]['vlan'] == 'native' %}
+ -
+ type: interface
+ name: {{ nets['api']['nic_mapping'][role]['members'][0] }}
+ use_dhcp: false
+ addresses:
+ -
+ ip_netmask: {get_param: InternalApiIpSubnet}
+ {%- endif %}
outputs:
OS::stack_id:
diff --git a/build/opnfv-environment.yaml b/build/opnfv-environment.yaml
index 4ef6ef85..84bd2f7c 100644
--- a/build/opnfv-environment.yaml
+++ b/build/opnfv-environment.yaml
@@ -160,7 +160,7 @@ parameter_defaults:
ComputeServices:
- OS::TripleO::Services::AuditD
- OS::TripleO::Services::Sshd
- #- OS::TripleO::Services::Barometer
+ - OS::TripleO::Services::Barometer
- OS::TripleO::Services::CACerts
- OS::TripleO::Services::CephClient
- OS::TripleO::Services::CephOSD
@@ -172,6 +172,7 @@ parameter_defaults:
- OS::TripleO::Services::Snmp
- OS::TripleO::Services::NovaCompute
- OS::TripleO::Services::NovaLibvirt
+ - OS::TripleO::Services::NovaMigrationTarget
- OS::TripleO::Services::Kernel
- OS::TripleO::Services::ComputeNeutronCorePlugin
- OS::TripleO::Services::ComputeNeutronOvsAgent
@@ -196,6 +197,8 @@ resource_registry:
OS::TripleO::Services::SwiftStorage: OS::Heat::None
#OS::TripleO::Services::SwiftRingBuilder: OS::Heat::None
OS::TripleO::Services::SwiftProxy: OS::Heat::None
+ OS::TripleO::Services::BarbicanApi: "/usr/share/openstack-tripleo-heat-\
+ templates/puppet/services/barbican-api.yaml"
# Extra Config
OS::TripleO::ComputeExtraConfigPre: OS::Heat::None
OS::TripleO::ControllerExtraConfigPre: OS::Heat::None
diff --git a/build/overcloud-full.sh b/build/overcloud-full.sh
deleted file mode 100755
index 098ab023..00000000
--- a/build/overcloud-full.sh
+++ /dev/null
@@ -1,155 +0,0 @@
-#!/bin/sh
-##############################################################################
-# Copyright (c) 2015 Tim Rozet (Red Hat), Dan Radez (Red Hat) and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-set -xe
-source ./cache.sh
-source ./variables.sh
-source ./barometer-install.sh
-
-populate_cache "$rdo_images_uri/overcloud-full.tar"
-
-if [ ! -d ${BUILD_DIR} ]; then mkdir ${BUILD_DIR}; fi
-tar -xf ${CACHE_DIR}/overcloud-full.tar -C ${BUILD_DIR}/
-mv -f ${BUILD_DIR}/overcloud-full.qcow2 ${BUILD_DIR}/overcloud-full_build.qcow2
-
-##########################################################
-##### Prep initial overcloud image with common deps #####
-##########################################################
-
-pushd ${BUILD_DIR} > /dev/null
-
-# prep opnfv-puppet-tripleo for undercloud
-python3 -B $BUILD_UTILS clone-fork -r apex-puppet-tripleo
-pushd apex-puppet-tripleo > /dev/null
-git archive --format=tar.gz --prefix=tripleo/ HEAD > ${BUILD_DIR}/apex-puppet-tripleo.tar.gz
-popd > /dev/null
-
-# download customized os-net-config
-python3 -B $BUILD_UTILS clone-fork -r apex-os-net-config
-pushd apex-os-net-config/os_net_config > /dev/null
-git archive --format=tar.gz --prefix=os_net_config/ HEAD > ${BUILD_DIR}/apex-os-net-config.tar.gz
-popd > /dev/null
-
-# tar up vsperf
-rm -rf vsperf vsperf.tar.gz
-git clone https://gerrit.opnfv.org/gerrit/vswitchperf vsperf
-tar czf vsperf.tar.gz vsperf
-
-# Increase disk size by 1500MB to accommodate more packages
-qemu-img resize overcloud-full_build.qcow2 +1500M
-
-# expand file system to max disk size
-# installing forked apex-puppet-tripleo
-# upload neutron port data plane status
-LIBGUESTFS_BACKEND=direct $VIRT_CUSTOMIZE \
- --run-command "xfs_growfs /dev/sda" \
- --upload ${BUILD_DIR}/apex-puppet-tripleo.tar.gz:/etc/puppet/modules \
- --run-command "cd /etc/puppet/modules && rm -rf tripleo && tar xzf apex-puppet-tripleo.tar.gz" \
- --upload ${BUILD_DIR}/apex-os-net-config.tar.gz:/usr/lib/python2.7/site-packages \
- --run-command "cd /usr/lib/python2.7/site-packages/ && rm -rf os_net_config && tar xzf apex-os-net-config.tar.gz" \
- --run-command "if ! rpm -qa | grep python-redis; then yum install -y python-redis; fi" \
- --install epel-release \
- --install unzip \
- --upload ${BUILD_DIR}/vsperf.tar.gz:/var/opt \
- --run-command "cd /var/opt && tar xzf vsperf.tar.gz" \
- --run-command "sed -i -E 's/timeout=[0-9]+/timeout=60/g' /usr/share/openstack-puppet/modules/rabbitmq/lib/puppet/provider/rabbitmqctl.rb" \
- --install patch \
- --upload ${BUILD_ROOT}/patches/neutron_lib_dps.patch:/usr/lib/python2.7/site-packages/ \
- --upload ${BUILD_ROOT}/patches/neutron_server_dps.patch:/usr/lib/python2.7/site-packages/ \
- --upload ${BUILD_ROOT}/patches/neutron_openstacksdk_dps.patch:/usr/lib/python2.7/site-packages/ \
- --upload ${BUILD_ROOT}/patches/neutron_openstackclient_dps.patch:/usr/lib/python2.7/site-packages/ \
- --upload ${BUILD_ROOT}/patches/puppet-neutron-add-sfc.patch:/usr/share/openstack-puppet/modules/neutron/ \
- --upload ${BUILD_ROOT}/patches/congress-parallel-execution.patch:/usr/lib/python2.7/site-packages/ \
- -a overcloud-full_build.qcow2
-# --upload ${BUILD_ROOT}/patches/puppet-neutron-vpp-ml2-type_drivers-setting.patch:/usr/share/openstack-puppet/modules/neutron/ \
-# --run-command "cd /usr/share/openstack-puppet/modules/neutron && patch -p1 < puppet-neutron-vpp-ml2-type_drivers-setting.patch" \
-# --upload ${BUILD_ROOT}/patches/puppet-neutron-add-external_network_bridge-option.patch:/usr/share/openstack-puppet/modules/neutron/ \
-# --run-command "cd /usr/share/openstack-puppet/modules/neutron && patch -p1 < puppet-neutron-add-external_network_bridge-option.patch" \
-
-
-# Arch dependent on x86
-if [ "$(uname -i)" == 'x86_64' ]; then
-dpdk_pkg_str=''
-for package in ${dpdk_rpms[@]}; do
- wget "$dpdk_uri_base/$package"
- dpdk_pkg_str+=" --upload ${BUILD_DIR}/${package}:/root/dpdk_rpms"
-done
-
-# tar up the fd.io module
-rm -rf puppet-fdio
-git clone https://git.fd.io/puppet-fdio
-pushd puppet-fdio > /dev/null
-git archive --format=tar.gz --prefix=fdio/ HEAD > ${BUILD_DIR}/puppet-fdio.tar.gz
-popd > /dev/null
-
-# FD.IO Repo
-cat > ${BUILD_DIR}/fdio.repo << EOF
-[fdio-1710]
-name=fd.io packages
-baseurl=https://nexus.fd.io/content/repositories/fd.io.stable.1710.centos7/
-enabled=1
-gpgcheck=0
-EOF
-
-vpp_nosdn_pkg_str=''
-for package in ${nosdn_vpp_rpms[@]}; do
- wget $package
- vpp_nosdn_pkg_str+=" --upload ${BUILD_DIR}/${package##*/}:/root/nosdn_vpp_rpms"
-done
-
-# Kubernetes Repo
-cat > ${BUILD_DIR}/kubernetes.repo << EOF
-[kubernetes]
-name=Kubernetes
-baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
-enabled=1
-gpgcheck=1
-repo_gpgcheck=1
-gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
- https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
-EOF
-
-# Get Real Time Kernel from kvm4nfv
-populate_cache $kvmfornfv_uri_base/$kvmfornfv_kernel_rpm
-
-# upload dpdk rpms but do not install
-# install fd.io yum repo and packages
-# upload puppet fdio
-# git clone vsperf into the overcloud image
-# upload the rt_kvm kernel
-LIBGUESTFS_BACKEND=direct $VIRT_CUSTOMIZE \
- --run-command "mkdir /root/dpdk_rpms" \
- $dpdk_pkg_str \
- --upload ${BUILD_DIR}/puppet-fdio.tar.gz:/etc/puppet/modules \
- --run-command "cd /etc/puppet/modules && tar xzf puppet-fdio.tar.gz" \
- --upload ${BUILD_DIR}/fdio.repo:/etc/yum.repos.d/ \
- --run-command "mkdir /root/nosdn_vpp_rpms" \
- $vpp_nosdn_pkg_str \
- --upload ${BUILD_DIR}/kubernetes.repo:/etc/yum.repos.d/ \
- --run-command "mkdir /root/fdio" \
- --upload ${BUILD_DIR}/noarch/$netvpp_pkg:/root/nosdn_vpp_rpms \
- --install honeycomb,vpp-plugins,vpp,vpp-lib,vpp-api-python \
- --run-command "rm -f /etc/sysctl.d/80-vpp.conf" \
- --run-command "curl -f https://copr.fedorainfracloud.org/coprs/leifmadsen/ovs-master/repo/epel-7/leifmadsen-ovs-master-epel-7.repo > /etc/yum.repos.d/leifmadsen-ovs-master-epel-7.repo" \
- --run-command "mkdir /root/ovs28" \
- --run-command "yumdownloader --destdir=/root/ovs28 openvswitch*2.8* python-openvswitch-2.8*" \
- --upload ${CACHE_DIR}/$kvmfornfv_kernel_rpm:/root/ \
- --install python-etcd,puppet-etcd \
- --install patch \
- --install docker,kubelet,kubeadm,kubectl,kubernetes-cni \
- -a overcloud-full_build.qcow2
-
- # upload and install barometer packages
- # FIXME collectd pkgs conflict during upgrade to Pike
- # barometer_pkgs overcloud-full_build.qcow2
-
-fi # end x86_64 specific items
-
-mv -f overcloud-full_build.qcow2 overcloud-full.qcow2
-popd > /dev/null
diff --git a/build/overcloud-onos.sh b/build/overcloud-onos.sh
deleted file mode 100755
index 6af4118b..00000000
--- a/build/overcloud-onos.sh
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/sh
-##############################################################################
-# Copyright (c) 2015 Tim Rozet (Red Hat), Dan Radez (Red Hat) and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-set -e
-source ./cache.sh
-source ./variables.sh
-
-pushd ${BUILD_DIR} > /dev/null
-cp -f overcloud-full.qcow2 overcloud-full-onos_build.qcow2
-
-#######################################
-##### Adding ONOS to overcloud #####
-#######################################
-
-# get the onos files
-rm -rf puppet-onos
-populate_cache "$onos_release_uri/$onos_release_file" "$(curl https://downloads.onosproject.org/nightly/ | grep $onos_release_file | grep -o -e '[0-9a-f]\{32\}')"
-populate_cache "$onos_jdk_uri/jdk-8u51-linux-x64.tar.gz"
-
-LIBGUESTFS_BACKEND=direct $VIRT_CUSTOMIZE --upload ${CACHE_DIR}/${onos_release_file}:/opt/ \
- --run-command "mkdir /opt/onos && cd /opt/ && tar -xzf $onos_release_file -C /opt/onos --strip-components=1" \
- -a overcloud-full-onos_build.qcow2
-
-#Those files can be store in local cache for saving download time
-git clone https://github.com/bobzhouHW/puppet-onos.git
-tar --xform="s:puppet-onos/:onos/:" -czf puppet-onos.tar.gz puppet-onos
-
-LIBGUESTFS_BACKEND=direct $VIRT_CUSTOMIZE --upload ${CACHE_DIR}/jdk-8u51-linux-x64.tar.gz:/opt/ \
- --upload ${BUILD_DIR}/puppet-onos/files/install_jdk8.tar:/opt/ \
- --run-command "cd /opt/ && tar -xf install_jdk8.tar && sh /opt/install_jdk8/install_jdk8.sh" \
- --upload ${BUILD_DIR}/puppet-onos/files/networking-onos.tar:/opt/ \
- --run-command "cd /opt/ && tar -xf networking-onos.tar && sh /opt/networking-onos/install_driver.sh" \
- --upload ${BUILD_DIR}/puppet-onos/files/networking-sfc.tar:/opt/ \
- --run-command "cd /opt/ && tar -xf networking-sfc.tar && sh /opt/networking-sfc/install_driver.sh" \
- --upload ${BUILD_DIR}/puppet-onos.tar.gz:/etc/puppet/modules/ \
- --run-command "cd /etc/puppet/modules/ && tar xzf puppet-onos.tar.gz" \
- -a overcloud-full-onos_build.qcow2
-
-mv overcloud-full-onos_build.qcow2 overcloud-full-onos.qcow2
-popd > /dev/null
diff --git a/build/overcloud-opendaylight.sh b/build/overcloud-opendaylight.sh
deleted file mode 100755
index 9e85859d..00000000
--- a/build/overcloud-opendaylight.sh
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/bin/sh
-##############################################################################
-# Copyright (c) 2015 Tim Rozet (Red Hat), Dan Radez (Red Hat) and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-set -e
-source ./cache.sh
-source ./variables.sh
-
-pushd ${BUILD_DIR} > /dev/null
-
-cp -f overcloud-full.qcow2 overcloud-full-opendaylight_build.qcow2
-
-###############################################
-##### Adding OpenDaylight to overcloud #####
-###############################################
-
-cat > ${BUILD_DIR}/opendaylight.repo << EOF
-[opendaylight-7-release]
-name=CentOS CBS OpenDaylight Nitrogen repository
-baseurl=http://cbs.centos.org/repos/nfv7-opendaylight-7-testing/\$basearch/os/
-enabled=1
-gpgcheck=0
-EOF
-
-cat > ${BUILD_DIR}/opendaylight_master.repo << EOF
-[opendaylight-master]
-name=OpenDaylight master repository
-baseurl=https://nexus.opendaylight.org/content/repositories/opendaylight-oxygen-epel-7-x86_64-devel/
-enabled=1
-gpgcheck=0
-EOF
-
-# OpenDaylight Puppet Module
-rm -rf puppet-opendaylight
-git clone -b stable/nitrogen https://git.opendaylight.org/gerrit/integration/packaging/puppet-opendaylight
-pushd puppet-opendaylight > /dev/null
-git archive --format=tar.gz --prefix=opendaylight/ HEAD > ${BUILD_DIR}/puppet-opendaylight-nitrogen.tar.gz
-git checkout master
-git archive --format=tar.gz --prefix=opendaylight/ HEAD > ${BUILD_DIR}/puppet-opendaylight-master.tar.gz
-popd > /dev/null
-
-# cache gluon
-populate_cache http://artifacts.opnfv.org/netready/$gluon_rpm
-
-#Gluon puppet module
-rm -rf netready
-git clone -b master https://gerrit.opnfv.org/gerrit/netready
-pushd netready/ > /dev/null
-git archive --format=tar.gz HEAD:deploy/puppet/ > ${BUILD_DIR}/puppet-gluon.tar.gz
-popd > /dev/null
-
-# Download ODL netvirt for VPP
-populate_cache http://artifacts.opnfv.org/apex/danube/fdio_netvirt/opendaylight-7.0.0-0.1.20170531snap665.el7.noarch.rpm
-
-# install ODL packages
-# Patch in OPNFV custom puppet-tripleO
-# install quagga/zrpc
-# upload neutron patch for generic NS linux interface driver + OVS for external networks
-LIBGUESTFS_BACKEND=direct $VIRT_CUSTOMIZE \
- --upload ${BUILD_DIR}/opendaylight_master.repo:/etc/yum.repos.d/opendaylight.repo \
- --run-command "mkdir -p /root/master" \
- --run-command "yumdownloader --destdir=/root/master opendaylight" \
- --upload ${BUILD_DIR}/opendaylight.repo:/etc/yum.repos.d/opendaylight.repo \
- --install opendaylight,python-networking-odl \
- --upload ${BUILD_DIR}/puppet-opendaylight-nitrogen.tar.gz:/etc/puppet/modules/ \
- --run-command "cd /etc/puppet/modules/ && tar xzf puppet-opendaylight-nitrogen.tar.gz" \
- --upload ${BUILD_DIR}/puppet-opendaylight-master.tar.gz:/root/ \
- --upload ${BUILD_DIR}/puppet-gluon.tar.gz:/etc/puppet/modules/ \
- --run-command "cd /etc/puppet/modules/ && tar xzf puppet-gluon.tar.gz" \
- --install python-click \
- --upload ${CACHE_DIR}/$gluon_rpm:/root/\
- --install /root/$gluon_rpm \
- --run-command "yum downgrade -y python-zmq-14.3.1" \
- --install capnproto-libs,capnproto \
- --upload ${BUILD_ROOT}/patches/neutron-patch-NSDriver.patch:/usr/lib/python2.7/site-packages/ \
- --upload ${CACHE_DIR}/opendaylight-7.0.0-0.1.20170531snap665.el7.noarch.rpm:/root/ \
- -a overcloud-full-opendaylight_build.qcow2
-
-# Arch dependent on x86
-if [ "$(uname -i)" == 'x86_64' ]; then
-
-# Download quagga/zrpc rpms
-populate_cache http://artifacts.opnfv.org/apex/euphrates/quagga/quagga-4.tar.gz
-
-LIBGUESTFS_BACKEND=direct $VIRT_CUSTOMIZE \
- --install zeromq-4.1.4 \
- --upload ${CACHE_DIR}/quagga-4.tar.gz:/root/ \
- --run-command "cd /root/ && tar xzf quagga-4.tar.gz" \
- --run-command "cd /root/quagga; packages=\$(ls |grep -vE 'debuginfo|devel|contrib'); yum -y install \$packages" \
- -a overcloud-full-opendaylight_build.qcow2
-fi
-
-LIBGUESTFS_BACKEND=direct virt-sparsify --compress overcloud-full-opendaylight_build.qcow2 overcloud-full-opendaylight.qcow2
-rm -f overcloud-full-opendaylight_build.qcow2
-popd > /dev/null
diff --git a/build/patches/neutron-patch-NSDriver.patch b/build/patches/neutron-patch-NSDriver.patch
index f01d0318..95ad58f9 100644
--- a/build/patches/neutron-patch-NSDriver.patch
+++ b/build/patches/neutron-patch-NSDriver.patch
@@ -1,6 +1,6 @@
-From d51e6ba77c3f40c7c04c97b1de06bf9344c95929 Mon Sep 17 00:00:00 2001
+From ea53f407637d7ed8b5447fc261b1577d4795744a Mon Sep 17 00:00:00 2001
From: Feng Pan <fpan@redhat.com>
-Date: Thu, 20 Jul 2017 16:12:45 -0400
+Date: Sun, 5 Feb 2017 21:34:19 -0500
Subject: [PATCH] Add NSDriver
---
@@ -10,7 +10,7 @@ Subject: [PATCH] Add NSDriver
3 files changed, 86 insertions(+), 8 deletions(-)
diff --git a/neutron/agent/l3/namespaces.py b/neutron/agent/l3/namespaces.py
-index f65c706..e9fc4b7 100644
+index 71e8cbcf35..7152cd94ff 100644
--- a/neutron/agent/l3/namespaces.py
+++ b/neutron/agent/l3/namespaces.py
@@ -18,6 +18,7 @@ import functools
@@ -18,10 +18,10 @@ index f65c706..e9fc4b7 100644
from oslo_utils import excutils
+from neutron.agent.linux.interface import OVSInterfaceDriver
- from neutron._i18n import _LE, _LW
from neutron.agent.linux import ip_lib
-@@ -110,8 +111,9 @@ class Namespace(object):
+ LOG = logging.getLogger(__name__)
+@@ -119,8 +120,9 @@ class Namespace(object):
class RouterNamespace(Namespace):
@@ -32,7 +32,7 @@ index f65c706..e9fc4b7 100644
name = self._get_ns_name(router_id)
super(RouterNamespace, self).__init__(
name, agent_conf, driver, use_ipv6)
-@@ -132,7 +134,7 @@ class RouterNamespace(Namespace):
+@@ -140,7 +142,7 @@ class RouterNamespace(Namespace):
elif d.name.startswith(ROUTER_2_FIP_DEV_PREFIX):
ns_ip.del_veth(d.name)
elif d.name.startswith(EXTERNAL_DEV_PREFIX):
@@ -42,10 +42,10 @@ index f65c706..e9fc4b7 100644
bridge=self.agent_conf.external_network_bridge,
namespace=self.name,
diff --git a/neutron/agent/l3/router_info.py b/neutron/agent/l3/router_info.py
-index 46db6a5..6775882 100644
+index f578a9e5e2..cadc0371d7 100644
--- a/neutron/agent/l3/router_info.py
+++ b/neutron/agent/l3/router_info.py
-@@ -30,6 +30,7 @@ from neutron.common import exceptions as n_exc
+@@ -29,6 +29,7 @@ from neutron.common import exceptions as n_exc
from neutron.common import ipv6_utils
from neutron.common import utils as common_utils
from neutron.ipam import utils as ipam_utils
@@ -53,7 +53,7 @@ index 46db6a5..6775882 100644
LOG = logging.getLogger(__name__)
INTERNAL_DEV_PREFIX = namespaces.INTERNAL_DEV_PREFIX
-@@ -52,6 +53,7 @@ class RouterInfo(object):
+@@ -51,6 +52,7 @@ class RouterInfo(object):
interface_driver,
use_ipv6=False):
self.agent = agent
@@ -61,7 +61,7 @@ index 46db6a5..6775882 100644
self.router_id = router_id
self.ex_gw_port = None
self._snat_enabled = None
-@@ -63,7 +65,7 @@ class RouterInfo(object):
+@@ -62,7 +64,7 @@ class RouterInfo(object):
self.router = router
self.use_ipv6 = use_ipv6
ns = self.create_router_namespace_object(
@@ -82,7 +82,7 @@ index 46db6a5..6775882 100644
@property
def router(self):
-@@ -609,7 +611,7 @@ class RouterInfo(object):
+@@ -630,7 +632,7 @@ class RouterInfo(object):
for ip in floating_ips]
def _plug_external_gateway(self, ex_gw_port, interface_name, ns_name):
@@ -91,7 +91,7 @@ index 46db6a5..6775882 100644
ex_gw_port['id'],
interface_name,
ex_gw_port['mac_address'],
-@@ -679,7 +681,7 @@ class RouterInfo(object):
+@@ -700,7 +702,7 @@ class RouterInfo(object):
self._add_route_to_gw(ex_gw_port, device_name=interface_name,
namespace=ns_name, preserve_ips=preserve_ips)
@@ -101,7 +101,7 @@ index 46db6a5..6775882 100644
ip_cidrs,
namespace=ns_name,
diff --git a/neutron/agent/linux/interface.py b/neutron/agent/linux/interface.py
-index 1f1ed39..b7781e2 100644
+index 88d6e67f31..c0fab604d1 100644
--- a/neutron/agent/linux/interface.py
+++ b/neutron/agent/linux/interface.py
@@ -15,7 +15,7 @@
@@ -113,7 +113,7 @@ index 1f1ed39..b7781e2 100644
import netaddr
from neutron_lib import constants
from oslo_config import cfg
-@@ -317,6 +317,80 @@ class NullDriver(LinuxInterfaceDriver):
+@@ -308,6 +308,80 @@ class NullDriver(LinuxInterfaceDriver):
def unplug(self, device_name, bridge=None, namespace=None, prefix=None):
pass
@@ -132,20 +132,20 @@ index 1f1ed39..b7781e2 100644
+ return True
+ attempt += 1
+ eventlet.sleep(1)
-+ LOG.error(_LE("Device %(dev)s was not created in %(time)d seconds"),
++ LOG.error("Device %(dev)s was not created in %(time)d seconds",
+ {'dev': device_name,
+ 'time': NSDriver.MAX_TIME_FOR_DEVICE_EXISTENCE})
+ return False
+
+ def _configure_mtu(self, ns_dev, mtu=None):
+ # Need to set MTU, after added to namespace. See review
-+ # https://review.openstack.org/327651
++ # https://review.opendev.org/327651
+ try:
+ # Note: network_device_mtu will be deprecated in future
+ mtu_override = self.conf.network_device_mtu
+ except cfg.NoSuchOptError:
-+ LOG.warning(_LW("Config setting for MTU deprecated - any "
-+ "override will be ignored."))
++ LOG.warning("Config setting for MTU deprecated - any "
++ "override will be ignored.")
+ mtu_override = None
+ if mtu_override:
+ mtu = mtu_override
@@ -195,5 +195,5 @@ index 1f1ed39..b7781e2 100644
class OVSInterfaceDriver(LinuxInterfaceDriver):
"""Driver for creating an internal interface on an OVS bridge."""
--
-2.9.3
+2.14.3
diff --git a/build/patches/puppet-ceph.patch b/build/patches/puppet-ceph.patch
new file mode 100644
index 00000000..18bf9ee4
--- /dev/null
+++ b/build/patches/puppet-ceph.patch
@@ -0,0 +1,76 @@
+From 99a0bcc818ed801f6cb9e07a9904ee40e624bdab Mon Sep 17 00:00:00 2001
+From: Tim Rozet <trozet@redhat.com>
+Date: Mon, 5 Mar 2018 17:03:00 -0500
+Subject: [PATCH] Fixes ceph key import failures by adding multiple attempts
+
+Signed-off-by: Tim Rozet <trozet@redhat.com>
+---
+ manifests/key.pp | 42 +++++++++++++++++-------------------------
+ 1 file changed, 17 insertions(+), 25 deletions(-)
+
+diff --git a/manifests/key.pp b/manifests/key.pp
+index 911df1a..d47a4c3 100644
+--- a/manifests/key.pp
++++ b/manifests/key.pp
+@@ -123,22 +123,6 @@ define ceph::key (
+ }
+ }
+
+- # ceph-authtool --add-key is idempotent, will just update pre-existing keys
+- exec { "ceph-key-${name}":
+- command => "/bin/true # comment to satisfy puppet syntax requirements
+-set -ex
+-ceph-authtool ${keyring_path} --name '${name}' --add-key '${secret}' ${caps}",
+- unless => "/bin/true # comment to satisfy puppet syntax requirements
+-set -x
+-NEW_KEYRING=\$(mktemp)
+-ceph-authtool \$NEW_KEYRING --name '${name}' --add-key '${secret}' ${caps}
+-diff -N \$NEW_KEYRING ${keyring_path}
+-rv=\$?
+-rm \$NEW_KEYRING
+-exit \$rv",
+- require => [ File[$keyring_path], ],
+- logoutput => true,
+- }
+
+ if $inject {
+
+@@ -162,18 +146,26 @@ exit \$rv",
+ exec { "ceph-injectkey-${name}":
+ command => "/bin/true # comment to satisfy puppet syntax requirements
+ set -ex
++cat ${keyring_path}
++ceph-authtool ${keyring_path} --name '${name}' --add-key '${secret}' ${caps}
++cat ${keyring_path}
+ ceph ${cluster_option} ${inject_id_option} ${inject_keyring_option} auth import -i ${keyring_path}",
+- unless => "/bin/true # comment to satisfy puppet syntax requirements
+-set -x
+-OLD_KEYRING=\$(mktemp)
+-ceph ${cluster_option} ${inject_id_option} ${inject_keyring_option} auth get ${name} -o \$OLD_KEYRING || true
+-diff -N \$OLD_KEYRING ${keyring_path}
+-rv=$?
+-rm \$OLD_KEYRING
+-exit \$rv",
+- require => [ Class['ceph'], Exec["ceph-key-${name}"], ],
++ require => [ File[$keyring_path], Class['ceph'] ],
+ logoutput => true,
++ tries => 6,
++ try_sleep => 10
+ }
+
++ } else {
++
++ # ceph-authtool --add-key is idempotent, will just update pre-existing keys
++ exec { "ceph-key-${name}":
++ command => "/bin/true # comment to satisfy puppet syntax requirements
++set -ex
++ceph-authtool ${keyring_path} --name '${name}' --add-key '${secret}' ${caps}
++cat ${keyring_path}",
++ require => [ File[$keyring_path], ],
++ logoutput => true,
++ }
+ }
+ }
+--
+2.14.3
+
diff --git a/build/patches/puppet-neutron-vpp-ml2-type_drivers-setting.patch b/build/patches/puppet-neutron-vpp-ml2-type_drivers-setting.patch
index a84ab83f..00e7183b 100644
--- a/build/patches/puppet-neutron-vpp-ml2-type_drivers-setting.patch
+++ b/build/patches/puppet-neutron-vpp-ml2-type_drivers-setting.patch
@@ -1,18 +1,20 @@
-From 8e37e0fae6195ec177828a9e9d36c6ee009cd372 Mon Sep 17 00:00:00 2001
+From 8676df91883d52e53f2762107267e106ce8c1c64 Mon Sep 17 00:00:00 2001
From: Feng Pan <fpan@redhat.com>
-Date: Thu, 18 May 2017 17:39:42 -0400
-Subject: [PATCH] Add ml2 type_drivers setting
+Date: Fri, 16 Mar 2018 08:47:30 -0400
+Subject: [PATCH] Add vpp ml2 type_driver config
-Change-Id: Ie47a1ace6302d7eccd3ead676c4e1cde7e82c5d2
+Change-Id: I60fb724f2a61377f65df7608c4d70f534c5539f5
+Signed-off-by: Feng Pan <fpan@redhat.com>
---
- manifests/agents/ml2/vpp.pp | 10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
+ manifests/agents/ml2/vpp.pp | 14 +++++++++++++-
+ manifests/plugins/ml2/vpp.pp | 6 ++++++
+ 2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/manifests/agents/ml2/vpp.pp b/manifests/agents/ml2/vpp.pp
-index f17d67e8..08427833 100644
+index f8204024..ca3a333b 100644
--- a/manifests/agents/ml2/vpp.pp
+++ b/manifests/agents/ml2/vpp.pp
-@@ -42,6 +42,11 @@
+@@ -42,6 +42,15 @@
# in the vpp config.
# Defaults to false.
#
@@ -21,32 +23,60 @@ index f17d67e8..08427833 100644
+# Could be an array that can contain flat, vlan or vxlan
+# Defaults to $::os_service_default.
+#
++# [*service_plugins*]
++# (optional) service plugins config
++# Defaults to $::os_service_default.
++#
class neutron::agents::ml2::vpp (
- $package_ensure = 'present',
- $enabled = true,
-@@ -51,6 +56,7 @@ class neutron::agents::ml2::vpp (
- $etcd_port = $::os_service_default,
- $etcd_user = $::os_service_default,
- $etcd_pass = $::os_service_default,
-+ $type_drivers = $::os_service_default,
- $purge_config = false,
+ $package_ensure = 'present',
+ $enabled = true,
+@@ -51,6 +60,8 @@ class neutron::agents::ml2::vpp (
+ $etcd_port = $::os_service_default,
+ $etcd_user = $::os_service_default,
+ $etcd_pass = $::os_service_default,
++ $type_drivers = $::os_service_default,
++ $service_plugins = $::os_service_default,
+ $purge_config = false,
) {
include ::neutron::deps
-@@ -61,12 +67,12 @@ class neutron::agents::ml2::vpp (
- }
-
- neutron_agent_vpp {
-- 'ml2_vpp/physnets': value => $physnets;
-+ 'ml2_vpp/physnets': value => $physnets;
- 'ml2_vpp/etcd_host': value => $etcd_host;
+@@ -66,7 +77,8 @@ class neutron::agents::ml2::vpp (
'ml2_vpp/etcd_port': value => $etcd_port;
'ml2_vpp/etcd_user': value => $etcd_user;
'ml2_vpp/etcd_pass': value => $etcd_pass;
-- 'DEFAULT/host': value => $::hostname;
+- 'DEFAULT/host': value => $::hostname;
+ 'ml2/type_drivers': value => join(any2array($type_drivers), ',');
++ 'DEFAULT/service_plugins': value => $service_plugins;
}
package { 'neutron-vpp-agent':
+diff --git a/manifests/plugins/ml2/vpp.pp b/manifests/plugins/ml2/vpp.pp
+index 0410a43e..b0c3c4d8 100644
+--- a/manifests/plugins/ml2/vpp.pp
++++ b/manifests/plugins/ml2/vpp.pp
+@@ -20,11 +20,16 @@
+ # (optional) Password for etcd authentication
+ # Defaults to $::os_service_default.
+ #
++# [*l3_hosts*]
++# (optional) L3 vpp-routing hosts
++# Defaults to $::os_service_default.
++#
+ class neutron::plugins::ml2::vpp (
+ $etcd_host = $::os_service_default,
+ $etcd_port = $::os_service_default,
+ $etcd_user = $::os_service_default,
+ $etcd_pass = $::os_service_default,
++ $l3_hosts = $::os_service_default,
+ ) {
+ include ::neutron::deps
+ require ::neutron::plugins::ml2
+@@ -34,5 +39,6 @@ class neutron::plugins::ml2::vpp (
+ 'ml2_vpp/etcd_port': value => $etcd_port;
+ 'ml2_vpp/etcd_user': value => $etcd_user;
+ 'ml2_vpp/etcd_pass': value => $etcd_pass, secret => true;
++ 'ml2_vpp/l3_hosts': value => $l3_hosts;
+ }
+ }
--
-2.13.3
+2.14.3
diff --git a/build/patches/tacker-client-fix-symmetrical.patch b/build/patches/tacker-client-fix-symmetrical.patch
deleted file mode 100644
index eab01a62..00000000
--- a/build/patches/tacker-client-fix-symmetrical.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 9630f711a88a69480c44d6ac21244d9a8b0d92c7 Mon Sep 17 00:00:00 2001
-From: Tim Rozet <trozet@redhat.com>
-Date: Fri, 18 Aug 2017 16:22:23 -0400
-Subject: [PATCH] Fixes passing boolean as string for symmetrical
-
-Bug where 'True'/'False' strings were being passed in REST to Tacker
-service which would end up throwing an exception because the DB type for
-symmetrical is boolean/small int. This converts it to boolean in the
-client.
-
-Closes-Bug: 1711550
-
-Change-Id: Ide2aeab73b1dd88beb6e491e6b07cdee9fb7e48a
-Signed-off-by: Tim Rozet <trozet@redhat.com>
----
-
-diff --git a/tackerclient/tacker/v1_0/nfvo/vnffg.py b/tackerclient/tacker/v1_0/nfvo/vnffg.py
-index 729cd19..92b98ed 100644
---- a/tackerclient/tacker/v1_0/nfvo/vnffg.py
-+++ b/tackerclient/tacker/v1_0/nfvo/vnffg.py
-@@ -97,7 +97,9 @@
- help=_('List of logical VNFD name to VNF instance name mapping. '
- 'Example: VNF1:my_vnf1,VNF2:my_vnf2'))
- parser.add_argument(
-- '--symmetrical', metavar='{True,False}',
-+ '--symmetrical',
-+ action='store_true',
-+ default=False,
- help=_('Should a reverse path be created for the NFP'))
- parser.add_argument(
- '--param-file',
diff --git a/build/rpm_specs/c_capnproto.spec b/build/rpm_specs/c_capnproto.spec
deleted file mode 100644
index 2d95494c..00000000
--- a/build/rpm_specs/c_capnproto.spec
+++ /dev/null
@@ -1,45 +0,0 @@
-Name: c-capnproto
-Version: 0.1
-Release: 0
-Summary: C library/compiler for the Cap'n Proto serialization/RPC protocol
-
-Group: System Environment
-License: Apache 2.0
-URL: https://gerrit.opnfv.org/gerrit/apex.git
-Source0: %{name}-%{version}.tar.gz
-
-Provides: c_capnproto
-
-%description
-C library/compiler for the Cap'n Proto serialization/RPC protocol
-
-%prep
-%setup -q
-
-%build
-%configure --without-gtest
-
-%install
-rm -rf $RPM_BUILD_ROOT
-%make_install
-find %{buildroot} -name '*.la' -exec rm -f {} ';'
-find %{buildroot} -name '*.a' -exec rm -f {} ';'
-mkdir -p $RPM_BUILD_ROOT/%{_includedir}/c-capnproto/
-# These are the headers/libs quagga/zrpcd link against
-install -m 700 $RPM_BUILD_ROOT/%{_includedir}/capn.h $RPM_BUILD_ROOT/%{_includedir}/c-capnproto/
-install -m 700 $RPM_BUILD_ROOT/%{_libdir}/libcapn.so $RPM_BUILD_ROOT/%{_libdir}/libcapn_c.so
-
-%files
-%defattr(644,root,root)
-%{_bindir}/capnpc-c
-%{_includedir}/capn.h
-%{_includedir}/c-capnproto/capn.h
-%{_libdir}/libcapn.so*
-%{_libdir}/libcapn_c.so
-
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
-
-%changelog
-* Mon Jan 23 2017 Tim Rozet <trozet@redhat.com> - 1.0-1
-- Initial version
diff --git a/build/rpm_specs/networking-vpp.spec b/build/rpm_specs/networking-vpp.spec
index 80687836..9fb66add 100644
--- a/build/rpm_specs/networking-vpp.spec
+++ b/build/rpm_specs/networking-vpp.spec
@@ -2,7 +2,7 @@
Summary: OpenStack Networking for VPP
Name: python-networking-vpp
-Version: 17.07
+Version: 18.04
Release: %{release}%{?git}%{?dist}
License: Apache 2.0
@@ -12,7 +12,7 @@ Url: https://github.com/openstack/networking-vpp/
BuildArch: noarch
AutoReq: no
-Requires: vpp
+Requires: vpp python-jwt
Vendor: OpenStack <openstack-dev@lists.openstack.org>
Packager: Feng Pan <fpan@redhat.com>
@@ -27,7 +27,7 @@ Description=Networking VPP ML2 Agent
[Service]
ExecStartPre=/usr/bin/systemctl is-active vpp
-ExecStart=/usr/bin/vpp-agent --config-file /etc/neutron/plugins/ml2/vpp_agent.ini
+ExecStart=/usr/bin/vpp-agent --config-file /etc/neutron/plugins/ml2/vpp_agent.ini --log-file /var/log/neutron/vpp-agent.log
Type=simple
Restart=on-failure
RestartSec=5s
@@ -37,6 +37,13 @@ WantedBy=multi-user.target
EOF
+%preun
+%systemd_preun neutron-vpp-agent.service
+
+%postun
+%systemd_postun
+rm -rf %{python2_sitelib}/networking_vpp*
+
%install
python setup.py install -O1 --root=%{buildroot} --record=INSTALLED_FILES
mkdir -p %{buildroot}%{_libdir}/systemd/system
@@ -48,3 +55,4 @@ rm -rf %{buildroot}
%files -f INSTALLED_FILES
%defattr(-,root,root)
%attr(644,root,root) %{_unitdir}/neutron-vpp-agent.service
+
diff --git a/build/rpm_specs/opnfv-apex-common.spec b/build/rpm_specs/opnfv-apex-common.spec
deleted file mode 100644
index dde13a78..00000000
--- a/build/rpm_specs/opnfv-apex-common.spec
+++ /dev/null
@@ -1,195 +0,0 @@
-%global srcname opnfv-apex
-
-Name: python34-%{srcname}
-Version: 6.0
-Release: %{_release}
-Summary: Scripts for OPNFV deployment using Apex
-
-Group: System Environment
-License: Apache 2.0
-URL: https://gerrit.opnfv.org/gerrit/apex.git
-Source0: opnfv-apex-common.tar.gz
-
-BuildArch: noarch
-BuildRequires: python-docutils python34-devel
-Requires: opnfv-apex-sdn opnfv-apex-undercloud openvswitch qemu-kvm bridge-utils libguestfs-tools python34-libvirt
-Requires: initscripts net-tools iputils iproute iptables python34 python34-yaml python34-jinja2 python3-ipmi python34-virtualbmc
-Requires: ipxe-roms-qemu >= 20160127-1
-Requires: libvirt-devel ansible
-Requires: python34-iptables python34-cryptography python34-pbr
-Requires: python34-GitPython python34-pygerrit2
-
-%description
-Scripts for OPNFV deployment using Apex
-https://wiki.opnfv.org/apex
-
-%prep
-%autosetup -n %{srcname}-%{version}
-
-%build
-rst2html docs/release/installation/index.rst docs/release/installation/installation-instructions.html
-rst2html docs/release/release-notes/release-notes.rst docs/release/release-notes/release-notes.html
-%py3_build
-
-%global __python %{__python3}
-
-%install
-mkdir -p %{buildroot}%{_bindir}/
-%py3_install
-install ci/util.sh %{buildroot}%{_bindir}/opnfv-util
-
-mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d/
-install build/bash_completion_apex %{buildroot}%{_sysconfdir}/bash_completion.d/apex
-
-mkdir -p %{buildroot}%{_sysconfdir}/opnfv-apex/
-cp -f %{buildroot}%{_datadir}/opnfv-apex/config/deploy/* %{buildroot}%{_sysconfdir}/opnfv-apex/
-cp -f %{buildroot}%{_datadir}/opnfv-apex/config/network/* %{buildroot}%{_sysconfdir}/opnfv-apex/
-rm -f %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl-csit-noha.yaml
-rm -f %{buildroot}%{_sysconfdir}/opnfv-apex/deploy_settings.yaml
-
-mkdir -p %{buildroot}%{_docdir}/opnfv/
-install LICENSE.rst %{buildroot}%{_docdir}/opnfv/
-install docs/release/installation/installation-instructions.html %{buildroot}%{_docdir}/opnfv/
-install docs/release/release-notes/index.rst %{buildroot}%{_docdir}/opnfv/release-notes.rst
-install docs/release/release-notes/release-notes.html %{buildroot}%{_docdir}/opnfv/
-install config/deploy/deploy_settings.yaml %{buildroot}%{_docdir}/opnfv/deploy_settings.yaml.example
-install config/network/network_settings.yaml %{buildroot}%{_docdir}/opnfv/network_settings.yaml.example
-install config/network/network_settings_v6.yaml %{buildroot}%{_docdir}/opnfv/network_settings_v6.yaml.example
-install config/network/network_settings_vpp.yaml %{buildroot}%{_docdir}/opnfv/network_settings_vpp.yaml.example
-install config/inventory/pod_example_settings.yaml %{buildroot}%{_docdir}/opnfv/inventory.yaml.example
-
-%files
-%{python3_sitelib}/apex/
-%{python3_sitelib}/apex-*.egg-info
-%defattr(644, root, root, 644)
-%attr(755,root,root) %{_bindir}/opnfv-deploy
-%attr(755,root,root) %{_bindir}/opnfv-clean
-%attr(755,root,root) %{_bindir}/opnfv-util
-%{_datadir}/opnfv-apex/
-%{_sysconfdir}/bash_completion.d/apex
-%{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-noha.yaml
-%{_sysconfdir}/opnfv-apex/os-nosdn-bar-noha.yaml
-%{_sysconfdir}/opnfv-apex/os-nosdn-bar-ha.yaml
-%{_sysconfdir}/opnfv-apex/os-nosdn-calipso-noha.yaml
-%{_sysconfdir}/opnfv-apex/os-nosdn-fdio-noha.yaml
-%{_sysconfdir}/opnfv-apex/os-nosdn-fdio-ha.yaml
-%{_sysconfdir}/opnfv-apex/os-nosdn-ovs_dpdk-noha.yaml
-%{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-ha.yaml
-%{_sysconfdir}/opnfv-apex/os-nosdn-performance-ha.yaml
-%{_sysconfdir}/opnfv-apex/os-nosdn-pike-noha.yaml
-%{_sysconfdir}/opnfv-apex/os-odl-pike-noha.yaml
-%{_sysconfdir}/opnfv-apex/os-nosdn-ovs_dpdk-ha.yaml
-%{_sysconfdir}/opnfv-apex/os-nosdn-kvm-ha.yaml
-%{_sysconfdir}/opnfv-apex/os-nosdn-kvm-noha.yaml
-%{_sysconfdir}/opnfv-apex/os-nosdn-kvm_ovs_dpdk-ha.yaml
-%{_sysconfdir}/opnfv-apex/os-nosdn-kvm_ovs_dpdk-noha.yaml
-%{_sysconfdir}/opnfv-apex/os-odl-bgpvpn-ha.yaml
-%{_sysconfdir}/opnfv-apex/os-odl-bgpvpn-noha.yaml
-%{_sysconfdir}/opnfv-apex/os-odl-sfc-ha.yaml
-%{_sysconfdir}/opnfv-apex/os-odl-sfc-noha.yaml
-%{_sysconfdir}/opnfv-apex/os-odl-fdio-noha.yaml
-%{_sysconfdir}/opnfv-apex/os-odl_netvirt-fdio-noha.yaml
-%{_sysconfdir}/opnfv-apex/os-odl-fdio-ha.yaml
-%{_sysconfdir}/opnfv-apex/os-odl-fdio_dvr-ha.yaml
-%{_sysconfdir}/opnfv-apex/os-odl-fdio_dvr-noha.yaml
-%{_sysconfdir}/opnfv-apex/os-odl-ovs_dpdk-noha.yaml
-%{_sysconfdir}/opnfv-apex/os-odl-ovs_dpdk-ha.yaml
-%{_sysconfdir}/opnfv-apex/os-odl-nofeature-ha.yaml
-%{_sysconfdir}/opnfv-apex/os-odl-nofeature-noha.yaml
-%{_sysconfdir}/opnfv-apex/os-odl-gluon-noha.yaml
-%{_sysconfdir}/opnfv-apex/os-ovn-nofeature-noha.yaml
-%{_sysconfdir}/opnfv-apex/os-onos-nofeature-ha.yaml
-%{_sysconfdir}/opnfv-apex/os-onos-sfc-ha.yaml
-%{_sysconfdir}/opnfv-apex/os-ocl-nofeature-ha.yaml
-%{_sysconfdir}/opnfv-apex/network_settings.yaml
-%{_sysconfdir}/opnfv-apex/network_settings_vlans.yaml
-%{_sysconfdir}/opnfv-apex/network_settings_v6.yaml
-%{_sysconfdir}/opnfv-apex/network_settings_vpp.yaml
-%doc %{_docdir}/opnfv/LICENSE.rst
-%doc %{_docdir}/opnfv/installation-instructions.html
-%doc %{_docdir}/opnfv/release-notes.rst
-%doc %{_docdir}/opnfv/release-notes.html
-%doc %{_docdir}/opnfv/deploy_settings.yaml.example
-%doc %{_docdir}/opnfv/network_settings.yaml.example
-%doc %{_docdir}/opnfv/network_settings_v6.yaml.example
-%doc %{_docdir}/opnfv/network_settings_vpp.yaml.example
-%doc %{_docdir}/opnfv/inventory.yaml.example
-
-%changelog
-* Wed Nov 29 2017 Tim Rozet <trozet@redhat.com> - 6.0-0
- Bump version for Fraser
-* Wed Oct 25 2017 Tim Rozet <trozet@redhat.com> - 5.0-9
-- Adds GitPython and pygerrit2 dependencies
-* Mon Oct 2 2017 Tim Rozet <trozet@redhat.com> - 5.0-8
-- Adds upstream deployment scenario
-* Wed Sep 20 2017 Tim Rozet <trozet@redhat.com> - 5.0-7
-- Add calipso
-* Fri Sep 08 2017 Tim Rozet <trozet@redhat.com> - 5.0-6
-- Updates clean to use python
-* Wed Aug 23 2017 Tim Rozet <trozet@redhat.com> - 5.0-5
-- Updated requirements
-* Mon Aug 14 2017 Tim Rozet <trozet@redhat.com> - 5.0-4
-- Updated for python refactoring
-* Mon May 08 2017 Dan Radez <dradez@redhat.com> - 5.0-3
-- adding configure-vm
-* Tue Apr 11 2017 Dan Radez <dradez@redhat.com> - 5.0-2
-- Remove l2 scenario files
-* Tue Apr 04 2017 Dan Radez <dradez@redhat.com> - 5.0-1
-- Version update for Euphrates
-- rename to ovs_dpdk
-* Wed Mar 29 2017 Dan Radez <dradez@redhat.com> - 4.0-9
-- Remove odl_l2-nofeature scenario file
-- rename all odl_l3 scenario files to odl
-* Thu Mar 23 2017 Tim Rozet <trozet@redhat.com> - 4.0-8
-- Adds os-odl_l3-ovs-ha and noha scenarios
-* Sun Mar 12 2017 Feng Pan <fpan@redhat.com> - 4.0-7
-- Add os-nosdn-fdio-ha.yaml
-* Fri Mar 10 2017 Feng Pan <fpan@redhat.com> - 4.0-6
-- Add os-odl_l3-fdio-noha.yaml and os-odl_l3-fdio-ha.yaml
-* Wed Mar 08 2017 Dan Radez <dradez@redhat.com> - 4.0-5
-- Adding kvm4nfv files
-- Adding OVN files
-* Tue Feb 14 2017 Feng Pan <fpan@redhat.com> - 4.0-4
-- Add network_settings_vpp.yaml
-* Fri Feb 3 2017 Nikolas Hermanns <nikolas.hermanns@ericsson.com> - 4.0-3
-- change odl_l3-gluon-noha to odl-gluon-noha
-* Thu Feb 2 2017 Feng Pan <fpan@redhat.com> - 4.0-2
-- Add odl_l3-gluon-noha config file
-* Wed Nov 2 2016 Dan Radez <dradez@redhat.com> - 4.0-1
-- Version update for Danube
-* Fri Sep 16 2016 Dan Radez <dradez@redhat.com> - 3.0-13
-- adding bash completion script
-* Tue Aug 30 2016 Tim Rozet <trozet@redhat.com> - 3.0-12
-- Add clean library.
-* Mon Aug 1 2016 Tim Rozet <trozet@redhat.com> - 3.0-11
-- Add nosdn fdio scenarios.
-* Tue Jul 5 2016 Dan Radez <dradez@redhat.com> - 3.0-10
-- Adding functions.sh files
-* Wed Jun 15 2016 Tim Rozet <trozet@redhat.com> - 3.0-9
-- Add fdio scenarios.
-* Tue Jun 14 2016 Feng Pan <fpan@redhat.com> - 3.0-8
-- Add network_settings_v6.yaml
-* Thu Jun 2 2016 Michael Chapman <michapma@redhat.com> - 3.0-7
-- Add custom libvirt domain.xml.
-* Wed Jun 1 2016 Feng Pan <fpan@redhat.com> - 3.0-6
-- Add performance deployment file
-* Sun May 15 2016 Feng Pan <fpan@redhat.com> - 3.0-5
-- Fixes python3 dependency.
-* Sun May 8 2016 Feng Pan <fpan@redhat.com> - 3.0-4
-- Adds dependency for python34-setuptools
-* Fri Apr 22 2016 Feng Pan <fpan@redhat.com> - 3.0-3
-- Adds python network setting parsing lib.
-* Fri Apr 15 2016 Feng Pan <fpan@redhat.com> - 3.0-2
-- Adds python ip utility lib.
-* Mon Apr 11 2016 Tim Rozet <trozet@redhat.com> - 3.0-1
-- adding opnfv-util
-* Mon Apr 04 2016 Dan Radez <dradez@redhat.com> - 3.0-0
-- Version update for Colorado
-* Mon Apr 04 2016 Dan Radez <dradez@redhat.com> - 2.2-0
-- adding dependencies initscripts net-tools iputils iproute iptables
-* Wed Jan 27 2016 Tim Rozet <trozet@redhat.com> - 2.1-4
-- Adds example inventory file and nosdn scenario
-* Wed Jan 20 2016 Dan Radez <dradez@redhat.com> - 2.1-3
-- Updating the installation instructions
-* Thu Jan 14 2016 Dan Radez <dradez@redhat.com> - 2.1-2
-- Package Split
diff --git a/build/rpm_specs/opnfv-apex-onos.spec b/build/rpm_specs/opnfv-apex-onos.spec
deleted file mode 100644
index 2d600b98..00000000
--- a/build/rpm_specs/opnfv-apex-onos.spec
+++ /dev/null
@@ -1,44 +0,0 @@
-Name: opnfv-apex-onos
-Version: 6.0
-Release: %{_release}
-Summary: Overcloud Disk images for OPNFV Apex ONOS deployment
-
-Group: System Environment
-License: Apache 2.0
-URL: https://gerrit.opnfv.org/gerrit/apex.git
-Source0: opnfv-apex-onos.tar.gz
-
-Provides: opnfv-apex-sdn
-BuildArch: noarch
-Requires: opnfv-apex-common opnfv-apex-undercloud
-
-%description
-Overcloud Disk images for OPNFV Apex ONOS deployment
-https://wiki.opnfv.org/apex
-
-%prep
-%setup -q
-
-%build
-
-%install
-mkdir -p %{buildroot}%{_var}/opt/opnfv/images/
-install build/overcloud-full-onos.qcow2 %{buildroot}%{_var}/opt/opnfv/images/
-
-%files
-%defattr(644, root, root, -)
-%{_var}/opt/opnfv/images/overcloud-full-onos.qcow2
-
-%changelog
-* Wed Nov 29 2017 Tim Rozet <trozet@redhat.com> - 6.0-0
- Bump version for Fraser
-* Tue Apr 04 2017 Dan Radez <dradez@redhat.com> - 5.0-1
-- Version update for Euphrates
-* Wed Dec 7 2016 Tim Rozet <trozet@redhat.com> - 4.0-2
-- Make install path consistent
-* Wed Nov 2 2016 Dan Radez <dradez@redhat.com> - 4.0-1
-- Version update for Danube
-* Mon Apr 04 2016 Dan Radez <dradez@redhat.com> - 3.0-0
-- Version update for Colorado
-* Mon Mar 07 2016 Dan Radez <dradez@redhat.com> - 2.1-1
-- Initial Packaging
diff --git a/build/rpm_specs/opnfv-apex-release.spec b/build/rpm_specs/opnfv-apex-release.spec
deleted file mode 100644
index 9660b83e..00000000
--- a/build/rpm_specs/opnfv-apex-release.spec
+++ /dev/null
@@ -1,36 +0,0 @@
-Name: opnfv-apex-release
-Version: fraser
-Release: %{_release}
-Summary: RPM Release file
-
-Group: System Environment
-License: Apache 2.0
-URL: https://gerrit.opnfv.org/gerrit/apex.git
-Source0: opnfv-apex-release.tar.gz
-
-BuildArch: noarch
-Requires: rdo-release = pike epel-release libvirt-python
-
-%description
-RPM Release file that provides a yum repo file to install OPNFV Apex
-
-%prep
-%setup -q
-
-%build
-
-%install
-mkdir -p %{buildroot}%{_sysconfdir}/yum.repos.d/
-install config/yum.repos.d/opnfv-apex.repo %{buildroot}%{_sysconfdir}/yum.repos.d/
-
-%files
-%defattr(644, root, root, -)
-%{_sysconfdir}/yum.repos.d/opnfv-apex.repo
-
-%changelog
-* Mon Nov 13 2017 Tim Rozet <trozet@redhat.com> - 6.0-1
-- Version update for Fraser
-* Tue Apr 04 2017 Dan Radez <dradez@redhat.com> - 5.0-1
-- Version update for Euphrates
-* Wed Nov 23 2016 Dan Radez <dradez@redhat.com> - 3.0-1
-- Initial Packaging
diff --git a/build/rpm_specs/opnfv-apex-undercloud.spec b/build/rpm_specs/opnfv-apex-undercloud.spec
deleted file mode 100644
index fc3c3ec1..00000000
--- a/build/rpm_specs/opnfv-apex-undercloud.spec
+++ /dev/null
@@ -1,53 +0,0 @@
-Name: opnfv-apex-undercloud
-Version: 6.0
-Release: %{_release}
-Summary: Scripts and Disk images to launch the Undercloud for OPNFV Apex
-
-Group: System Environment
-License: Apache 2.0
-URL: https://gerrit.opnfv.org/gerrit/apex.git
-Source0: opnfv-apex-undercloud.tar.gz
-
-BuildArch: noarch
-BuildRequires: python-docutils
-Requires: openvswitch libvirt qemu-kvm bridge-utils libguestfs-tools
-
-%description
-Scripts and Disk images to launch the Undercloud for OPNFV Apex
-https://wiki.opnfv.org/apex
-
-%prep
-%setup -q
-
-%build
-
-%install
-mkdir -p %{buildroot}%{_var}/opt/opnfv/images/
-mkdir -p %{buildroot}%{_var}/opt/opnfv/nics/
-
-install build/undercloud.qcow2 %{buildroot}%{_var}/opt/opnfv/images/
-install build/network-environment.yaml %{buildroot}%{_var}/opt/opnfv/
-install build/nics-template.yaml.jinja2 %{buildroot}%{_var}/opt/opnfv/
-
-%files
-%defattr(644, root, root, -)
-%{_var}/opt/opnfv/images/undercloud.qcow2
-%{_var}/opt/opnfv/network-environment.yaml
-%{_var}/opt/opnfv/nics-template.yaml.jinja2
-
-
-%changelog
-* Wed Nov 29 2017 Tim Rozet <trozet@redhat.com> - 6.0-0
- Bump version for Fraser
-* Tue Apr 04 2017 Dan Radez <dradez@redhat.com> - 5.0-1
-- Version update for Euphrates
-* Wed Nov 2 2016 Dan Radez <dradez@redhat.com> - 4.0-1
-- Version update for Danube
-* Tue May 24 2016 Tim Rozet <trozet@redhat.com> - 3.0-1
-- Adds jinja2 nic templates
-* Mon Apr 04 2016 Dan Radez <dradez@redhat.com> - 3.0-0
-- Version update for Colorado
-* Wed Mar 30 2016 Dan Radez <dradez@redhat.com> - 2.1-2
-- Replacing NIC files with templates
-* Thu Jan 14 2016 Dan Radez <dradez@redhat.com> - 2.1-1
-- Package Split
diff --git a/build/rpm_specs/opnfv-apex.spec b/build/rpm_specs/opnfv-apex.spec
index 18fafa65..d05397ed 100644
--- a/build/rpm_specs/opnfv-apex.spec
+++ b/build/rpm_specs/opnfv-apex.spec
@@ -1,79 +1,237 @@
-Name: opnfv-apex
-Version: 6.0
+%global srcname opnfv-apex
+
+Name: python34-%{srcname}
+Version: 8.0
Release: %{_release}
-Summary: Overcloud Disk images for OPNFV Apex OpenDaylight deployment
+Summary: Scripts for OPNFV deployment using Apex
Group: System Environment
License: Apache 2.0
URL: https://gerrit.opnfv.org/gerrit/apex.git
Source0: opnfv-apex.tar.gz
-Provides: opnfv-apex-sdn
-BuildArch: noarch
-Requires: python34-opnfv-apex opnfv-apex-undercloud
+BuildArch: noarch
+BuildRequires: python34-docutils python34-devel
+Requires: openvswitch qemu-kvm bridge-utils libguestfs-tools python34-libvirt
+Requires: initscripts net-tools iputils iproute iptables python34 python34-yaml python34-jinja2 python3-ipmi python34-virtualbmc
+Requires: ipxe-roms-qemu >= 20160127-1
+Requires: libvirt-devel ansible
+Requires: python34-iptables python34-cryptography python34-pbr
+Requires: python34-GitPython python34-pygerrit2 python34-distro
+Requires: git
%description
-Overcloud Disk images for OPNFV Apex OpenDaylight deployment
+Scripts for OPNFV deployment using Apex
https://wiki.opnfv.org/apex
%prep
-%setup -q
+%autosetup -n %{srcname}-%{version}
%build
+rst2html docs/release/installation/index.rst docs/release/installation/installation-instructions.html
+rst2html docs/release/release-notes/release-notes.rst docs/release/release-notes/release-notes.html
+%py3_build
+
+%global __python %{__python3}
%install
-mkdir -p %{buildroot}%{_var}/opt/opnfv/images/
-install build/overcloud-full-opendaylight.qcow2 %{buildroot}%{_var}/opt/opnfv/images/
-install build/overcloud-full.vmlinuz %{buildroot}%{_var}/opt/opnfv/images/
-install build/overcloud-full.initrd %{buildroot}%{_var}/opt/opnfv/images/
+mkdir -p %{buildroot}%{_bindir}/
+%py3_install
+install ci/util.sh %{buildroot}%{_bindir}/opnfv-util
+
+mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d/
+install build/bash_completion_apex %{buildroot}%{_sysconfdir}/bash_completion.d/apex
+
+mkdir -p %{buildroot}%{_sysconfdir}/opnfv-apex/
+cp -f %{buildroot}%{_datadir}/opnfv-apex/config/deploy/* %{buildroot}%{_sysconfdir}/opnfv-apex/
+cp -f %{buildroot}%{_datadir}/opnfv-apex/config/network/* %{buildroot}%{_sysconfdir}/opnfv-apex/
+rm -f %{buildroot}%{_sysconfdir}/opnfv-apex/deploy_settings.yaml
+
+mkdir -p %{buildroot}%{_docdir}/opnfv/
+install LICENSE.rst %{buildroot}%{_docdir}/opnfv/
+install docs/release/installation/installation-instructions.html %{buildroot}%{_docdir}/opnfv/
+install docs/release/release-notes/index.rst %{buildroot}%{_docdir}/opnfv/release-notes.rst
+install docs/release/release-notes/release-notes.html %{buildroot}%{_docdir}/opnfv/
+install config/deploy/deploy_settings.yaml %{buildroot}%{_docdir}/opnfv/deploy_settings.yaml.example
+install config/network/network_settings.yaml %{buildroot}%{_docdir}/opnfv/network_settings.yaml.example
+install config/network/network_settings_v6.yaml %{buildroot}%{_docdir}/opnfv/network_settings_v6.yaml.example
+install config/inventory/pod_example_settings.yaml %{buildroot}%{_docdir}/opnfv/inventory.yaml.example
%files
-%defattr(644, root, root, -)
-%{_var}/opt/opnfv/images/overcloud-full-opendaylight.qcow2
-%{_var}/opt/opnfv/images/overcloud-full.vmlinuz
-%{_var}/opt/opnfv/images/overcloud-full.initrd
+%{python3_sitelib}/apex/
+%{python3_sitelib}/apex-*.egg-info
+%defattr(644, root, root, 644)
+%attr(755,root,root) %{_bindir}/opnfv-deploy
+%attr(755,root,root) %{_bindir}/opnfv-clean
+%attr(755,root,root) %{_bindir}/opnfv-util
+%attr(755,root,root) %{_bindir}/opnfv-pyutil
+%{_datadir}/opnfv-apex/
+%{_sysconfdir}/bash_completion.d/apex
+%{_sysconfdir}/opnfv-apex/common-patches.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-bar-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-bar-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-calipso-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-calipso_rocky-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-fdio-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-fdio-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-ovs_dpdk-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-performance-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-rocky-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-rocky-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-queens-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-queens-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-rocky-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-rocky-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-ovs_dpdk-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-kvm-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-kvm-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-kvm_ovs_dpdk-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-kvm_ovs_dpdk-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-bgpvpn-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-bgpvpn-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-bgpvpn_rocky-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-bgpvpn_rocky-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-sfc-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-sfc-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-sfc_rocky-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-sfc_rocky-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-fdio-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl_netvirt-fdio-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-fdio-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-fdio_dvr-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-fdio_dvr-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-l2gw-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-l2gw-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-ovs_dpdk-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-ovs_dpdk-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-nofeature-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-nofeature-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-sriov-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-sriov-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-odl-gluon-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-ovn-nofeature-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-ovn-rocky-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-onos-nofeature-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-onos-sfc-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-ocl-nofeature-ha.yaml
+%{_sysconfdir}/opnfv-apex/network_settings.yaml
+%{_sysconfdir}/opnfv-apex/network_settings_csit.yaml
+%{_sysconfdir}/opnfv-apex/network_settings_vlans.yaml
+%{_sysconfdir}/opnfv-apex/network_settings_v6.yaml
+%{_sysconfdir}/opnfv-apex/k8s-nosdn-nofeature-noha.yaml
+%{_sysconfdir}/opnfv-apex/network_settings_tenant_vlan.yaml
+%doc %{_docdir}/opnfv/LICENSE.rst
+%doc %{_docdir}/opnfv/installation-instructions.html
+%doc %{_docdir}/opnfv/release-notes.rst
+%doc %{_docdir}/opnfv/release-notes.html
+%doc %{_docdir}/opnfv/deploy_settings.yaml.example
+%doc %{_docdir}/opnfv/network_settings.yaml.example
+%doc %{_docdir}/opnfv/network_settings_v6.yaml.example
+%doc %{_docdir}/opnfv/inventory.yaml.example
%changelog
+* Thu Sep 27 2018 Tim Rozet <trozet@redhat.com> - 8.0-0
+ Updates from Queens to Rocky
+* Fri Aug 24 2018 Tim Rozet <trozet@redhat.com> - 7.0-7
+ Add Calipso for Queens
+* Tue Aug 21 2018 Ricardo Noriega <rnoriega@redhat.com> - 7.0-6
+ Enable SFC scenarios for Gambia
+* Tue Aug 14 2018 Tim Rozet <trozet@redhat.com> - 7.0-5
+ Adds common patches file
+* Wed Jun 27 2018 Feng Pan <fpan@redhat.com> - 7.0-4
+ Adds network_settings_tenant_vlan.yaml
+* Wed Jun 20 2018 Zenghui Shi <zshi@redhat.com> - 7.0-3
+ Adds Kubernetes deployment scenario
+* Fri Jun 15 2018 Tim Rozet <trozet@redhat.com> - 7.0-2
+ Adds missing HA deploy settings for Queens
+* Fri May 25 2018 Tim Rozet <trozet@redhat.com> - 7.0-1
+ Adds CSIT network settings file
+* Wed May 02 2018 Tim Rozet <trozet@redhat.com> - 7.0-0
+ Updates master with new version and deploy settings
+* Tue Apr 17 2018 Feng Pan <fpan@redhat.com> - 6.0-4
+ Removes network_settings_vpp.yaml
+* Tue Apr 03 2018 Tim Rozet <trozet@redhat.com> - 6.0-3
+ Adds fetch logs
+* Fri Mar 09 2018 Tim Rozet <trozet@redhat.com> - 6.0-2
+ Add upstream deploy files with containers
+* Wed Feb 14 2018 Tim Rozet <trozet@redhat.com> - 6.0-1
+ Fix docutils requirement and add python34-distro
* Wed Nov 29 2017 Tim Rozet <trozet@redhat.com> - 6.0-0
Bump version for Fraser
-* Wed Aug 23 2017 Tim Rozet <trozet@redhat.com> - 5.0-3
+* Wed Oct 25 2017 Tim Rozet <trozet@redhat.com> - 5.0-9
+- Adds GitPython and pygerrit2 dependencies
+* Mon Oct 2 2017 Tim Rozet <trozet@redhat.com> - 5.0-8
+- Adds upstream deployment scenario
+* Wed Sep 20 2017 Tim Rozet <trozet@redhat.com> - 5.0-7
+- Add calipso
+* Fri Sep 08 2017 Tim Rozet <trozet@redhat.com> - 5.0-6
+- Updates clean to use python
+* Wed Aug 23 2017 Tim Rozet <trozet@redhat.com> - 5.0-5
- Updated requirements
-* Fri May 26 2017 Tim Rozet <trozet@redhat.com> - 5.0-2
-- Fixes missing ramdisk and kernel
+* Mon Aug 14 2017 Tim Rozet <trozet@redhat.com> - 5.0-4
+- Updated for python refactoring
+* Mon May 08 2017 Dan Radez <dradez@redhat.com> - 5.0-3
+- adding configure-vm
+* Tue Apr 11 2017 Dan Radez <dradez@redhat.com> - 5.0-2
+- Remove l2 scenario files
* Tue Apr 04 2017 Dan Radez <dradez@redhat.com> - 5.0-1
- Version update for Euphrates
-* Wed Dec 7 2016 Tim Rozet <trozet@redhat.com> - 4.0-2
-- Make install path consistent
+- rename to ovs_dpdk
+* Wed Mar 29 2017 Dan Radez <dradez@redhat.com> - 4.0-9
+- Remove odl_l2-nofeature scenario file
+- rename all odl_l3 scenario files to odl
+* Thu Mar 23 2017 Tim Rozet <trozet@redhat.com> - 4.0-8
+- Adds os-odl_l3-ovs-ha and noha scenarios
+* Sun Mar 12 2017 Feng Pan <fpan@redhat.com> - 4.0-7
+- Add os-nosdn-fdio-ha.yaml
+* Fri Mar 10 2017 Feng Pan <fpan@redhat.com> - 4.0-6
+- Add os-odl_l3-fdio-noha.yaml and os-odl_l3-fdio-ha.yaml
+* Wed Mar 08 2017 Dan Radez <dradez@redhat.com> - 4.0-5
+- Adding kvm4nfv files
+- Adding OVN files
+* Tue Feb 14 2017 Feng Pan <fpan@redhat.com> - 4.0-4
+- Add network_settings_vpp.yaml
+* Fri Feb 3 2017 Nikolas Hermanns <nikolas.hermanns@ericsson.com> - 4.0-3
+- change odl_l3-gluon-noha to odl-gluon-noha
+* Thu Feb 2 2017 Feng Pan <fpan@redhat.com> - 4.0-2
+- Add odl_l3-gluon-noha config file
* Wed Nov 2 2016 Dan Radez <dradez@redhat.com> - 4.0-1
- Version update for Danube
+* Fri Sep 16 2016 Dan Radez <dradez@redhat.com> - 3.0-13
+- adding bash completion script
+* Tue Aug 30 2016 Tim Rozet <trozet@redhat.com> - 3.0-12
+- Add clean library.
+* Mon Aug 1 2016 Tim Rozet <trozet@redhat.com> - 3.0-11
+- Add nosdn fdio scenarios.
+* Tue Jul 5 2016 Dan Radez <dradez@redhat.com> - 3.0-10
+- Adding functions.sh files
+* Wed Jun 15 2016 Tim Rozet <trozet@redhat.com> - 3.0-9
+- Add fdio scenarios.
+* Tue Jun 14 2016 Feng Pan <fpan@redhat.com> - 3.0-8
+- Add network_settings_v6.yaml
+* Thu Jun 2 2016 Michael Chapman <michapma@redhat.com> - 3.0-7
+- Add custom libvirt domain.xml.
+* Wed Jun 1 2016 Feng Pan <fpan@redhat.com> - 3.0-6
+- Add performance deployment file
+* Sun May 15 2016 Feng Pan <fpan@redhat.com> - 3.0-5
+- Fixes python3 dependency.
+* Sun May 8 2016 Feng Pan <fpan@redhat.com> - 3.0-4
+- Adds dependency for python34-setuptools
+* Fri Apr 22 2016 Feng Pan <fpan@redhat.com> - 3.0-3
+- Adds python network setting parsing lib.
+* Fri Apr 15 2016 Feng Pan <fpan@redhat.com> - 3.0-2
+- Adds python ip utility lib.
+* Mon Apr 11 2016 Tim Rozet <trozet@redhat.com> - 3.0-1
+- adding opnfv-util
* Mon Apr 04 2016 Dan Radez <dradez@redhat.com> - 3.0-0
- Version update for Colorado
-* Wed Jan 20 2016 Dan Radez <dradez@redhat.com> - 2.1-4
-- cleaning out libvirt config files
-- replacing instack-virt-setup with direct tripleo calls
-* Tue Jan 19 2016 Dan Radez <dradez@redhat.com> - 2.1-3
-- Remove conflicts with other SDN controllers, they can co-exist now
-- update overcloud image name to specify opendaylight
+* Mon Apr 04 2016 Dan Radez <dradez@redhat.com> - 2.2-0
+- adding dependencies initscripts net-tools iputils iproute iptables
+* Wed Jan 27 2016 Tim Rozet <trozet@redhat.com> - 2.1-4
+- Adds example inventory file and nosdn scenario
+* Wed Jan 20 2016 Dan Radez <dradez@redhat.com> - 2.1-3
+- Updating the installation instructions
* Thu Jan 14 2016 Dan Radez <dradez@redhat.com> - 2.1-2
- Package Split
-* Wed Jan 13 2016 Dan Radez <dradez@redhat.com> - 2.1-1
-- Incrementing Minor for Bramaputra RC release
-* Sun Dec 20 2015 Tim Rozet <trozet@redhat.com> - 2.0-8
-- Modifies networks to include OPNFV private/storage networks
-* Tue Dec 15 2015 Dan Radez <dradez@redhat.com> - 2.0-7
-- Added deploy settings for flat network config
-- cleaned up files that don't need to be in the rpm
-* Wed Dec 09 2015 Dan Radez <dradez@redhat.com> - 2.0-6
-- Updating the OpenDaylight Patch
-* Sat Dec 05 2015 Dan Radez <dradez@redhat.com> - 2.0-5
-- Removing glance images
-* Fri Nov 20 2015 Dan Radez <dradez@redhat.com> - 2.0-4
-- Adding documentation
-* Thu Nov 12 2015 Dan Radez <dradez@redhat.com> - 2.0-3
-- OpenDaylight and Network Isolation support
-* Wed Oct 21 2015 Dan Radez <dradez@redhat.com> - 2.0-2
-- Initial deployment success using RPM packaging
-* Fri Sep 25 2015 Dan Radez <dradez@redhat.com> - 2.0-1
-- Migrated to RDO Manager
-* Fri Apr 24 2015 Dan Radez <dradez@redhat.com> - 0.1-1
-- Initial Packaging
diff --git a/build/rpm_specs/quagga.spec b/build/rpm_specs/quagga.spec
deleted file mode 100644
index 9a85e9df..00000000
--- a/build/rpm_specs/quagga.spec
+++ /dev/null
@@ -1,744 +0,0 @@
-# configure options
-#
-# Some can be overriden on rpmbuild commandline with:
-# rpmbuild --define 'variable value'
-# (use any value, ie 1 for flag "with_XXXX" definitions)
-#
-# E.g. rpmbuild --define 'release_rev 02' may be useful if building
-# rpms again and again on the same day, so the newer rpms can be installed.
-# bumping the number each time.
-
-####################### Quagga configure options #########################
-# with-feature options
-%{!?with_snmp: %global with_snmp 1 }
-%{!?with_vtysh: %global with_vtysh 1 }
-%{!?with_tcp_zebra: %global with_tcp_zebra 0 }
-%{!?with_vtysh: %global with_vtysh 1 }
-%{!?with_pam: %global with_pam 1 }
-%{!?with_ospfclient: %global with_ospfclient 1 }
-%{!?with_ospfapi: %global with_ospfapi 1 }
-%{!?with_irdp: %global with_irdp 1 }
-%{!?with_rtadv: %global with_rtadv 1 }
-%{!?with_isisd: %global with_isisd 1 }
-%{!?with_pimd: %global with_pimd 1 }
-%{!?with_shared: %global with_shared 1 }
-%{!?with_multipath: %global with_multipath 64 }
-%{!?quagga_user: %global quagga_user quagga }
-%{!?vty_group: %global vty_group quaggavt }
-%{!?with_fpm: %global with_fpm 0 }
-%{!?with_watchquagga: %global with_watchquagga 1 }
-
-# path defines
-%define _sysconfdir /etc/quagga
-%define zeb_src %{_builddir}/%{name}-%{quaggaversion}
-%define zeb_rh_src %{zeb_src}/redhat
-%define zeb_docs %{zeb_src}/doc
-
-# defines for configure
-%define _localstatedir /var/run/quagga
-############################################################################
-
-#### Version String tweak
-# Remove invalid characters form version string and replace with _
-%{expand: %%global rpmversion %(echo '1.1.0-dev' | tr [:blank:]- _ )}
-%define quaggaversion 1.1.0-dev
-
-#### Check version of texi2html
-# Old versions don't support "--number-footnotes" option.
-%{expand: %%global texi2htmlversion %(rpm -q --qf '%%{VERSION}' texi2html | cut -d. -f1 )}
-
-#### Check for systemd or init.d (upstart)
-# Check for init.d (upstart) as used in CentOS 6 or systemd (ie CentOS 7)
-%{expand: %%global initsystem %(if [[ `/sbin/init --version 2> /dev/null` =~ upstart ]]; then echo upstart; elif [[ `systemctl` =~ -\.mount ]]; then echo systemd; fi)}
-#
-# If init system is systemd, then always disable watchquagga
-#
-%if "%{initsystem}" == "systemd"
- # Note: For systems with systemd, watchquagga will NOT be built. Systemd
- # takes over the role of restarting crashed processes. Value will
- # be overwritten with 0 below for systemd independent on the setting here
- %global with_watchquagga 0
-%endif
-
-# if FPM is enabled, then enable tcp_zebra as well
-#
-%if %{with_fpm}
- %global with_tcp_zebra 1
-%endif
-
-# misc internal defines
-%{!?quagga_uid: %global quagga_uid 92 }
-%{!?quagga_gid: %global quagga_gid 92 }
-%{!?vty_gid: %global vty_gid 85 }
-
-%define daemon_list zebra ripd ospfd bgpd
-
-%define daemonv6_list ripngd ospf6d
-
-%if %{with_isisd}
-%define daemon_isisd isisd
-%else
-%define daemon_isisd ""
-%endif
-
-%if %{with_pimd}
-%define daemon_pimd pimd
-%else
-%define daemon_pimd ""
-%endif
-
-%if %{with_watchquagga}
-%define daemon_watchquagga watchquagga
-%else
-%define daemon_watchquagga ""
-%endif
-
-%define all_daemons %{daemon_list} %{daemonv6_list} %{daemon_isisd} %{daemon_pimd} %{daemon_watchquagga}
-
-# allow build dir to be kept
-%{!?keep_build: %global keep_build 0 }
-
-#release sub-revision (the two digits after the CONFDATE)
-%{!?release_rev: %global release_rev 01 }
-
-Summary: Routing daemon
-Name: quagga
-Version: %{rpmversion}
-Release: 20170120%{release_rev}%{?dist}
-License: GPLv2+
-Group: System Environment/Daemons
-Source0: quagga-1.1.0-dev.tar.gz
-Source1: bgpd.conf
-URL: http://www.quagga.net
-Requires: ncurses
-Requires(pre): /sbin/install-info
-Requires(preun): /sbin/install-info
-Requires(post): /sbin/install-info
-BuildRequires: texi2html texinfo autoconf patch libcap-devel groff
-%if %{with_snmp}
-BuildRequires: net-snmp-devel
-Requires: net-snmp
-%endif
-%if %{with_vtysh}
-BuildRequires: readline readline-devel ncurses ncurses-devel
-Requires: ncurses
-%endif
-%if %{with_pam}
-BuildRequires: pam-devel
-Requires: pam
-%endif
-%if "%{initsystem}" == "systemd"
-BuildRequires: systemd
-Requires(post): systemd
-Requires(preun): systemd
-Requires(postun): systemd
-%else
-# Initscripts > 5.60 is required for IPv6 support
-Requires(pre): initscripts >= 5.60
-%endif
-Provides: routingdaemon = %{version}-%{release}
-BuildRoot: %{_tmppath}/%{name}-%{version}-root
-Obsoletes: bird gated mrt zebra quagga-sysvinit
-
-%description
-Quagga is a free software that manages TCP/IP based routing
-protocol. It takes multi-server and multi-thread approach to resolve
-the current complexity of the Internet.
-
-Quagga supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng and PIM.
-
-Quagga is intended to be used as a Route Server and a Route Reflector. It is
-not a toolkit, it provides full routing power under a new architecture.
-Quagga by design has a process for each protocol.
-
-Quagga is a fork of GNU Zebra.
-
-%package contrib
-Summary: contrib tools for quagga
-Group: System Environment/Daemons
-
-%description contrib
-Contributed/3rd party tools which may be of use with quagga.
-
-%package devel
-Summary: Header and object files for quagga development
-Group: System Environment/Daemons
-Requires: %{name} = %{version}-%{release}
-
-%description devel
-The quagga-devel package contains the header and object files neccessary for
-developing OSPF-API and quagga applications.
-
-%prep
-%setup -q -n quagga-%{quaggaversion}
-
-%build
-
-# For standard gcc verbosity, uncomment these lines:
-#CFLAGS="% {optflags} -Wall -Wsign-compare -Wpointer-arith"
-#CFLAGS="${CFLAGS} -Wbad-function-cast -Wwrite-strings"
-
-# For ultra gcc verbosity, uncomment these lines also:
-#CFLAGS="${CFLAGS} -W -Wcast-qual -Wstrict-prototypes"
-#CFLAGS="${CFLAGS} -Wmissing-declarations -Wmissing-noreturn"
-#CFLAGS="${CFLAGS} -Wmissing-format-attribute -Wunreachable-code"
-#CFLAGS="${CFLAGS} -Wpacked -Wpadded"
-
-%configure \
- --sysconfdir=%{_sysconfdir} \
- --libdir=%{_libdir} \
- --libexecdir=%{_libexecdir} \
- --localstatedir=%{_localstatedir} \
- --disable-werror \
-%if !%{with_shared}
- --disable-shared \
-%endif
-%if %{with_snmp}
- --enable-snmp \
-%endif
-%if %{with_multipath}
- --enable-multipath=%{with_multipath} \
-%endif
-%if %{with_tcp_zebra}
- --enable-tcp-zebra \
-%endif
-%if %{with_vtysh}
- --enable-vtysh \
-%endif
-%if %{with_ospfclient}
- --enable-ospfclient=yes \
-%else
- --enable-ospfclient=no\
-%endif
-%if %{with_ospfapi}
- --enable-ospfapi=yes \
-%else
- --enable-ospfapi=no \
-%endif
-%if %{with_irdp}
- --enable-irdp=yes \
-%else
- --enable-irdp=no \
-%endif
-%if %{with_rtadv}
- --enable-rtadv=yes \
-%else
- --enable-rtadv=no \
-%endif
-%if %{with_isisd}
- --enable-isisd \
-%else
- --disable-isisd \
-%endif
-%if %{with_pam}
- --with-libpam \
-%endif
-%if 0%{?quagga_user:1}
- --enable-user=%quagga_user \
- --enable-group=%quagga_user \
-%endif
-%if 0%{?vty_group:1}
- --enable-vty-group=%vty_group \
-%endif
-%if %{with_fpm}
- --enable-fpm \
-%else
- --disable-fpm \
-%endif
-%if %{with_watchquagga}
- --enable-watchquagga \
-%else
- --disable-watchquagga \
-%endif
- --enable-gcc-rdynamic \
- --with-ccapnproto \
- --with-zeromq
-
-make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
-
-pushd doc
-texi2html --number-footnotes --number-sections quagga.texi
-popd
-
-%install
-mkdir -p %{buildroot}/etc/{quagga,sysconfig,logrotate.d,pam.d} \
- %{buildroot}/var/log/quagga %{buildroot}%{_infodir}
-make DESTDIR=%{buildroot} INSTALL="install -p" CP="cp -p" install
-install %{SOURCE1} %{buildroot}/etc/quagga/bgpd.conf
-
-# Remove this file, as it is uninstalled and causes errors when building on RH9
-rm -rf %{buildroot}/usr/share/info/dir
-
-# install /etc sources
-%if "%{initsystem}" == "systemd"
-mkdir -p %{buildroot}%{_unitdir}
-for daemon in %{all_daemons} ; do
- if [ x"${daemon}" != x"" ] ; then
- install %{zeb_rh_src}/${daemon}.service \
- %{buildroot}%{_unitdir}/${daemon}.service
- fi
-done
-%else
-mkdir -p %{buildroot}/etc/rc.d/init.d
-for daemon in %{all_daemons} ; do
- if [ x"${daemon}" != x"" ] ; then
- install %{zeb_rh_src}/${daemon}.init \
- %{buildroot}/etc/rc.d/init.d/${daemon}
- fi
-done
-%endif
-
-install -m644 %{zeb_rh_src}/quagga.pam \
- %{buildroot}/etc/pam.d/quagga
-install -m644 %{zeb_rh_src}/quagga.logrotate \
- %{buildroot}/etc/logrotate.d/quagga
-install -m644 %{zeb_rh_src}/quagga.sysconfig \
- %{buildroot}/etc/sysconfig/quagga
-install -d -m750 %{buildroot}/var/run/quagga
-
-%pre
-# add vty_group
-%if 0%{?vty_group:1}
-if getent group %vty_group > /dev/null ; then : ; else \
- /usr/sbin/groupadd -r -g %vty_gid %vty_group > /dev/null || : ; fi
-%endif
-
-# add quagga user and group
-%if 0%{?quagga_user:1}
-# Ensure that quagga_gid gets correctly allocated
-if getent group %quagga_user >/dev/null; then : ; else \
- /usr/sbin/groupadd -g %quagga_gid %quagga_user > /dev/null || : ; \
-fi
-if getent passwd %quagga_user >/dev/null ; then : ; else \
- /usr/sbin/useradd -u %{quagga_uid} -g %quagga_gid \
- -M -r -s /sbin/nologin -c "Quagga routing suite" \
- -d %_localstatedir %quagga_user 2> /dev/null || : ; \
-fi
-%endif
-
-%post
-# zebra_spec_add_service <service name> <port/proto> <comment>
-# e.g. zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
-
-zebra_spec_add_service ()
-{
- # Add port /etc/services entry if it isn't already there
- if [ -f /etc/services ] && \
- ! %__sed -e 's/#.*$//' /etc/services | %__grep -wq $1 ; then
- echo "$1 $2 # $3" >> /etc/services
- fi
-}
-
-zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
-zebra_spec_add_service zebra 2601/tcp "zebra vty"
-zebra_spec_add_service ripd 2602/tcp "RIPd vty"
-zebra_spec_add_service ripngd 2603/tcp "RIPngd vty"
-zebra_spec_add_service ospfd 2604/tcp "OSPFd vty"
-zebra_spec_add_service bgpd 2605/tcp "BGPd vty"
-zebra_spec_add_service ospf6d 2606/tcp "OSPF6d vty"
-%if %{with_ospfapi}
-zebra_spec_add_service ospfapi 2607/tcp "OSPF-API"
-%endif
-%if %{with_isisd}
-zebra_spec_add_service isisd 2608/tcp "ISISd vty"
-%endif
-%if %{with_pimd}
-zebra_spec_add_service pimd 2611/tcp "PIMd vty"
-%endif
-
-%if "%{initsystem}" == "systemd"
-for daemon in %all_daemons ; do
- %systemd_post ${daemon}.service
-done
-%else
-for daemon in %all_daemons ; do
- /sbin/chkconfig --add ${daemon}
-done
-%endif
-
-/sbin/install-info %{_infodir}/quagga.info.gz %{_infodir}/dir
-
-# Create dummy files if they don't exist so basic functions can be used.
-if [ ! -e %{_sysconfdir}/zebra.conf ]; then
- echo "hostname `hostname`" > %{_sysconfdir}/zebra.conf
-%if 0%{?quagga_user:1}
- chown %quagga_user:%quagga_user %{_sysconfdir}/zebra.conf*
-%endif
- chmod 640 %{_sysconfdir}/zebra.conf
-fi
-for daemon in %{all_daemons} ; do
- if [ ! -e %{_sysconfdir}/${daemon}.conf ]; then
- touch %{_sysconfdir}/${daemon}.conf
- %if 0%{?quagga_user:1}
- chown %quagga_user:%quagga_user %{_sysconfdir}/${daemon}.conf*
- %endif
- fi
-done
-%if %{with_watchquagga}
- # No config for watchquagga - this is part of /etc/sysconfig/quagga
- rm -f %{_sysconfdir}/watchquagga.*
-%endif
-
-if [ ! -e %{_sysconfdir}/vtysh.conf ]; then
- touch %{_sysconfdir}/vtysh.conf
- chmod 640 %{_sysconfdir}/vtysh.conf
-%if 0%{?vty_group:1}
- chown quagga:%{vty_group} %{_sysconfdir}/vtysh.conf*
-%endif
-fi
-
-%postun
-if [ "$1" -ge 1 ]; then
- # Find out which daemons need to be restarted.
- for daemon in %all_daemons ; do
- if [ -f /var/lock/subsys/${daemon} ]; then
- eval restart_${daemon}=yes
- else
- eval restart_${daemon}=no
- fi
- done
- # Rename restart flags for daemons handled specially.
- running_zebra="$restart_zebra"
- restart_zebra=no
- %if %{with_watchquagga}
- running_watchquagga="$restart_watchquagga"
- restart_watchquagga=no
- %endif
-
- %if "%{initsystem}" == "systemd"
- ##
- ## Systemd Version
- ##
- # No watchquagga for systemd version
- #
- # Stop all daemons other than zebra.
- for daemon in %all_daemons ; do
- eval restart=\$restart_${daemon}
- [ "$restart" = yes ] && \
- %systemd_postun ${daemon}.service
- done
- # Restart zebra.
- [ "$running_zebra" = yes ] && \
- %systemd_postun_with_restart $daemon.service
- # Start all daemons other than zebra.
- for daemon in %all_daemons ; do
- eval restart=\$restart_${daemon}
- [ "$restart" = yes ] && \
- %systemd_post ${daemon}.service
- done
- %else
- ##
- ## init.d Version
- ##
- %if %{with_watchquagga}
- # Stop watchquagga first.
- [ "$running_watchquagga" = yes ] && \
- /etc/rc.d/init.d/watchquagga stop >/dev/null 2>&1
- %endif
- # Stop all daemons other than zebra and watchquagga.
- for daemon in %all_daemons ; do
- eval restart=\$restart_${daemon}
- [ "$restart" = yes ] && \
- /etc/rc.d/init.d/${daemon} stop >/dev/null 2>&1
- done
- # Restart zebra.
- [ "$running_zebra" = yes ] && \
- /etc/rc.d/init.d/zebra restart >/dev/null 2>&1
- # Start all daemons other than zebra and watchquagga.
- for daemon in %all_daemons ; do
- eval restart=\$restart_${daemon}
- [ "$restart" = yes ] && \
- /etc/rc.d/init.d/${daemon} start >/dev/null 2>&1
- done
- %if %{with_watchquagga}
- # Start watchquagga last.
- # Avoid postun scriptlet error if watchquagga is not running.
- [ "$running_watchquagga" = yes ] && \
- /etc/rc.d/init.d/watchquagga start >/dev/null 2>&1 || :
- %endif
- %endif
-fi
-
-%preun
-%if "%{initsystem}" == "systemd"
- ##
- ## Systemd Version
- ##
- if [ "$1" = "0" ]; then
- for daemon in %all_daemons ; do
- %systemd_preun ${daemon}.service
- done
- fi
-%else
- ##
- ## init.d Version
- ##
- if [ "$1" = "0" ]; then
- for daemon in %all_daemons ; do
- /etc/rc.d/init.d/${daemon} stop >/dev/null 2>&1
- /sbin/chkconfig --del ${daemon}
- done
- fi
-%endif
-/sbin/install-info --delete %{_infodir}/quagga.info.gz %{_infodir}/dir
-
-%clean
-%if !0%{?keep_build:1}
-rm -rf %{buildroot}
-%endif
-
-%files
-%defattr(-,root,root)
-%doc */*.sample* AUTHORS COPYING
-%doc doc/quagga.html
-%doc doc/mpls
-%doc ChangeLog INSTALL NEWS README REPORTING-BUGS SERVICES TODO
-%if 0%{?quagga_user:1}
-%dir %attr(751,%quagga_user,%quagga_user) %{_sysconfdir}
-%dir %attr(750,%quagga_user,%quagga_user) /var/log/quagga
-%dir %attr(751,%quagga_user,%quagga_user) /var/run/quagga
-%attr(750,%quagga_user,%quagga_user) %{_sysconfdir}/bgpd.conf
-%else
-%dir %attr(750,root,root) %{_sysconfdir}
-%dir %attr(750,root,root) /var/log/quagga
-%dir %attr(750,root,root) /var/run/quagga
-%endif
-%if 0%{?vty_group:1}
-%attr(750,%quagga_user,%vty_group) %{_sysconfdir}/vtysh.conf.sample
-%endif
-%{_infodir}/quagga.info.gz
-%{_mandir}/man*/*
-%{_sbindir}/zebra
-%{_sbindir}/ospfd
-%{_sbindir}/ripd
-%{_sbindir}/bgpd
-%if %{with_watchquagga}
- %{_sbindir}/watchquagga
-%endif
-%{_sbindir}/ripngd
-%{_sbindir}/ospf6d
-%if %{with_pimd}
-%{_sbindir}/pimd
-%endif
-%if %{with_isisd}
-%{_sbindir}/isisd
-%endif
-%if %{with_shared}
-%attr(755,root,root) %{_libdir}/lib*.so
-%attr(755,root,root) %{_libdir}/lib*.so.*
-%endif
-%if %{with_vtysh}
-%{_bindir}/*
-%endif
-%config /etc/quagga/[!v]*
-%if "%{initsystem}" == "systemd"
- %config %{_unitdir}/*.service
-%else
- %config /etc/rc.d/init.d/zebra
- %if %{with_watchquagga}
- %config /etc/rc.d/init.d/watchquagga
- %endif
- %config /etc/rc.d/init.d/ripd
- %config /etc/rc.d/init.d/ospfd
- %config /etc/rc.d/init.d/bgpd
- %config /etc/rc.d/init.d/ripngd
- %config /etc/rc.d/init.d/ospf6d
- %if %{with_isisd}
- %config /etc/rc.d/init.d/isisd
- %endif
- %if %{with_pimd}
- %config /etc/rc.d/init.d/pimd
- %endif
-%endif
-%config(noreplace) /etc/sysconfig/quagga
-%config(noreplace) /etc/pam.d/quagga
-%config(noreplace) %attr(640,root,root) /etc/logrotate.d/*
-
-%files contrib
-%defattr(-,root,root)
-%doc tools
-
-%files devel
-%defattr(-,root,root)
-%if %{with_ospfclient}
-%{_sbindir}/ospfclient
-%endif
-%{_libdir}/*.a
-%{_libdir}/*.la
-%dir %attr(755,root,root) %{_includedir}/%{name}
-%{_includedir}/%name/*.h
-%dir %attr(755,root,root) %{_includedir}/%{name}/ospfd
-%{_includedir}/%name/ospfd/*.h
-%if %{with_ospfapi}
-%dir %attr(755,root,root) %{_includedir}/%{name}/ospfapi
-%{_includedir}/%name/ospfapi/*.h
-%endif
-
-%changelog
-* Thu Feb 11 2016 Paul Jakma <paul@jakma.org>
-- remove with_ipv6 conditionals, always build v6
-- Fix UTF-8 char in spec changelog
-- remove quagga.pam.stack, long deprecated.
-
-* Thu Oct 22 2015 Martin Winter <mwinter@opensourcerouting.org>
-- Cleanup configure: remove --enable-ipv6 (default now), --enable-nssa,
- --enable-netlink
-- Remove support for old fedora 4/5
-- Fix for package nameing
-- Fix Weekdays of previous changelogs (bogus dates)
-- Add conditional logic to only build tex footnotes with supported texi2html
-- Added pimd to files section and fix double listing of /var/lib*/quagga
-- Numerous fixes to unify upstart/systemd startup into same spec file
-- Only allow use of watchquagga for non-systemd systems. no need with systemd
-
-* Fri Sep 4 2015 Paul Jakma <paul@jakma.org>
-- buildreq updates
-- add a default define for with_pimd
-
-* Mon Sep 12 2005 Paul Jakma <paul@dishone.st>
-- Steal some changes from Fedora spec file:
-- Add with_rtadv variable
-- Test for groups/users with getent before group/user adding
-- Readline need not be an explicit prerequisite
-- install-info delete should be postun, not preun
-
-* Wed Jan 12 2005 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-- on package upgrade, implement careful, phased restart logic
-- use gcc -rdynamic flag when linking for better backtraces
-
-* Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-- daemonv6_list should contain only IPv6 daemons
-
-* Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-- watchquagga added
-- on upgrade, all daemons should be condrestart'ed
-- on removal, all daemons should be stopped
-
-* Mon Nov 08 2004 Paul Jakma <paul@dishone.st>
-- Use makeinfo --html to generate quagga.html
-
-* Sun Nov 07 2004 Paul Jakma <paul@dishone.st>
-- Fix with_ipv6 set to 0 build
-
-* Sat Oct 23 2004 Paul Jakma <paul@dishone.st>
-- Update to 0.97.2
-
-* Sat Oct 23 2004 Andrew J. Schorr <aschorr@telemetry-investments.com>
-- Make directories be owned by the packages concerned
-- Update logrotate scripts to use correct path to killall and use pid files
-
-* Fri Oct 08 2004 Paul Jakma <paul@dishone.st>
-- Update to 0.97.0
-
-* Wed Sep 15 2004 Paul Jakma <paul@dishone.st>
-- build snmp support by default
-- build irdp support
-- build with shared libs
-- devel subpackage for archives and headers
-
-* Thu Jan 08 2004 Paul Jakma <paul@dishone.st>
-- updated sysconfig files to specify local dir
-- added ospf_dump.c crash quick fix patch
-- added ospfd persistent interface configuration patch
-
-* Tue Dec 30 2003 Paul Jakma <paul@dishone.st>
-- sync to CVS
-- integrate RH sysconfig patch to specify daemon options (RH)
-- default to have vty listen only to 127.1 (RH)
-- add user with fixed UID/GID (RH)
-- create user with shell /sbin/nologin rather than /bin/false (RH)
-- stop daemons on uninstall (RH)
-- delete info file on preun, not postun to avoid deletion on upgrade. (RH)
-- isisd added
-- cleanup tasks carried out for every daemon
-
-* Sun Nov 2 2003 Paul Jakma <paul@dishone.st>
-- Fix -devel package to include all files
-- Sync to 0.96.4
-
-* Tue Aug 12 2003 Paul Jakma <paul@dishone.st>
-- Renamed to Quagga
-- Sync to Quagga release 0.96
-
-* Thu Mar 20 2003 Paul Jakma <paul@dishone.st>
-- zebra privileges support
-
-* Tue Mar 18 2003 Paul Jakma <paul@dishone.st>
-- Fix mem leak in 'show thread cpu'
-- Ralph Keller's OSPF-API
-- Amir: Fix configure.ac for net-snmp
-
-* Sat Mar 1 2003 Paul Jakma <paul@dishone.st>
-- ospfd IOS prefix to interface matching for 'network' statement
-- temporary fix for PtP and IPv6
-- sync to zebra.org CVS
-
-* Mon Jan 20 2003 Paul Jakma <paul@dishone.st>
-- update to latest cvs
-- Yon's "show thread cpu" patch - 17217
-- walk up tree - 17218
-- ospfd NSSA fixes - 16681
-- ospfd nsm fixes - 16824
-- ospfd OLSA fixes and new feature - 16823
-- KAME and ifindex fixes - 16525
-- spec file changes to allow redhat files to be in tree
-
-* Sat Dec 28 2002 Alexander Hoogerhuis <alexh@ihatent.com>
-- Added conditionals for building with(out) IPv6, vtysh, RIP, BGP
-- Fixed up some build requirements (patch)
-- Added conditional build requirements for vtysh / snmp
-- Added conditional to files for _bindir depending on vtysh
-
-* Mon Nov 11 2002 Paul Jakma <paulj@alphyra.ie>
-- update to latest CVS
-- add Greg Troxel's md5 buffer copy/dup fix
-- add RIPv1 fix
-- add Frank's multicast flag fix
-
-* Wed Oct 09 2002 Paul Jakma <paulj@alphyra.ie>
-- update to latest CVS
-- timestamped crypt_seqnum patch
-- oi->on_write_q fix
-
-* Mon Sep 30 2002 Paul Jakma <paulj@alphyra.ie>
-- update to latest CVS
-- add vtysh 'write-config (integrated|daemon)' patch
-- always 'make rebuild' in vtysh/ to catch new commands
-
-* Fri Sep 13 2002 Paul Jakma <paulj@alphyra.ie>
-- update to 0.93b
-
-* Wed Sep 11 2002 Paul Jakma <paulj@alphyra.ie>
-- update to latest CVS
-- add "/sbin/ip route flush proto zebra" to zebra RH init on startup
-
-* Sat Aug 24 2002 Paul Jakma <paulj@alphyra.ie>
-- update to current CVS
-- add OSPF point to multipoint patch
-- add OSPF bugfixes
-- add BGP hash optimisation patch
-
-* Fri Jun 14 2002 Paul Jakma <paulj@alphyra.ie>
-- update to 0.93-pre1 / CVS
-- add link state detection support
-- add generic PtP and RFC3021 support
-- various bug fixes
-
-* Thu Aug 09 2001 Elliot Lee <sopwith@redhat.com> 0.91a-6
-- Fix bug #51336
-
-* Wed Aug 1 2001 Trond Eivind Glomsrød <teg@redhat.com> 0.91a-5
-- Use generic initscript strings instead of initscript specific
- ( "Starting foo: " -> "Starting $prog:" )
-
-* Fri Jul 27 2001 Elliot Lee <sopwith@redhat.com> 0.91a-4
-- Bump the release when rebuilding into the dist.
-
-* Tue Feb 6 2001 Tim Powers <timp@redhat.com>
-- built for Powertools
-
-* Sun Feb 4 2001 Pekka Savola <pekkas@netcore.fi>
-- Hacked up from PLD Linux 0.90-1, Mandrake 0.90-1mdk and one from zebra.org.
-- Update to 0.91a
-- Very heavy modifications to init.d/*, .spec, pam, i18n, logrotate, etc.
-- Should be quite Red Hat'isque now.
diff --git a/build/rpm_specs/zrpc.spec b/build/rpm_specs/zrpc.spec
deleted file mode 100644
index a8dd3b75..00000000
--- a/build/rpm_specs/zrpc.spec
+++ /dev/null
@@ -1,46 +0,0 @@
-Name: zrpcd
-Version: 0.2
-Release: 0
-
-Summary: Zebra Remote Procedure Call
-Group: Applications/Internet
-License: GPL
-Source0: %{name}-%{version}.tar.gz
-Source1: zrpcd.service
-
-BuildRequires: systemd-units
-
-Requires: thrift zeromq glib2 c-capnproto capnproto quagga
-Requires(post): systemd
-Requires(preun): systemd
-Requires(postun): systemd
-%description
-ZRPC provides a Thrift API and handles RPC to configure Quagga framework.
-
-%prep
-%setup -q
-
-%build
-
-%configure
-
-%install
-mkdir -p %{buildroot}%{_unitdir}
-install -p -D -m 644 %{SOURCE1} %{buildroot}%{_unitdir}/zrpcd.service
-%make_install
-
-%post
-%systemd_post zrpcd.service
-
-%preun
-%systemd_preun zrpcd.service
-
-%postun
-%systemd_postun_with_restart zrpcd.service
-
-%files
-%defattr(-,root,root)
-%{_sbindir}/zrpcd
-%{_includedir}/%name/zrpc_global.h
-%{_includedir}/%name/zrpc_os_wrapper.h
-%{_unitdir}/zrpcd.service
diff --git a/build/undercloud.sh b/build/undercloud.sh
deleted file mode 100755
index 0cfb6737..00000000
--- a/build/undercloud.sh
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/bin/sh
-##############################################################################
-# Copyright (c) 2015 Tim Rozet (Red Hat), Dan Radez (Red Hat) and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-set -xe
-source ./cache.sh
-source ./variables.sh
-
-populate_cache "$rdo_images_uri/undercloud.qcow2"
-if [ ! -d "$BUILD_DIR" ]; then mkdir ${BUILD_DIR}; fi
-cp -f ${CACHE_DIR}/undercloud.qcow2 ${BUILD_DIR}/undercloud_build.qcow2
-
-pushd ${BUILD_DIR} > /dev/null
-
-# prep apex-tht for undercloud
-python3 -B $BUILD_UTILS clone-fork -r apex-tripleo-heat-templates
-pushd apex-tripleo-heat-templates > /dev/null
-git archive --format=tar.gz --prefix=openstack-tripleo-heat-templates/ HEAD > ${BUILD_DIR}/apex-tripleo-heat-templates.tar.gz
-popd > /dev/null
-
-# inject rt_kvm kernel rpm name into the enable file
-sed "s/kvmfornfv_kernel.rpm/$kvmfornfv_kernel_rpm/" ${BUILD_ROOT}/enable_rt_kvm.yaml | tee ${BUILD_DIR}/enable_rt_kvm.yaml
-
-# grab latest calipso
-populate_cache $calipso_uri_base/$calipso_script
-
-# Turn off GSSAPI Auth in sshd
-# installing forked apex-tht
-# enabling ceph OSDs to live on the controller
-# seeding configuration files specific to OPNFV
-# Add performance image scripts
-LIBGUESTFS_BACKEND=direct $VIRT_CUSTOMIZE \
- --run-command "sed -i 's/^#UseDNS.*$/UseDNS no/' /etc/ssh/sshd_config" \
- --run-command "sed -i 's/^GSSAPIAuthentication.*$/GSSAPIAuthentication no/' /etc/ssh/sshd_config" \
- --upload ${BUILD_DIR}/apex-tripleo-heat-templates.tar.gz:/usr/share \
- --install "openstack-utils" \
- --install "ceph-common" \
- --install openstack-nova-compute \
- --install epel-release \
- --install python34,python34-pip \
- --install openstack-ironic-inspector,subunit-filters,docker-distribution,openstack-tripleo-validations \
- --run-command "cd /usr/share && rm -rf openstack-tripleo-heat-templates && tar xzf apex-tripleo-heat-templates.tar.gz" \
- --run-command "sed -i '/ControllerEnableCephStorage/c\\ ControllerEnableCephStorage: true' /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml" \
- --run-command "sed -i '/ComputeEnableCephStorage/c\\ ComputeEnableCephStorage: true' /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml" \
- --run-command "cp /usr/share/instack-undercloud/undercloud.conf.sample /home/stack/undercloud.conf && chown stack:stack /home/stack/undercloud.conf" \
- --upload ${BUILD_ROOT}/opnfv-environment.yaml:/home/stack/ \
- --upload ${BUILD_ROOT}/first-boot.yaml:/home/stack/ \
- --upload ${BUILD_DIR}/enable_rt_kvm.yaml:/usr/share/openstack-tripleo-heat-templates/environments/ \
- --upload ${BUILD_ROOT}/ovs-dpdk-preconfig.yaml:/home/stack/ \
- --upload ${BUILD_ROOT}/csit-environment.yaml:/home/stack/ \
- --upload ${BUILD_ROOT}/virtual-environment.yaml:/home/stack/ \
- --upload ${BUILD_ROOT}/baremetal-environment.yaml:/home/stack/ \
- --uninstall "libvirt-client" \
- --upload ${CACHE_DIR}/${calipso_script}:/root/ \
- --install "libguestfs-tools" \
- --install "python-tackerclient" \
- --upload ${BUILD_ROOT}/patches/tacker-client-fix-symmetrical.patch:/usr/lib/python2.7/site-packages/ \
- --run-command "cd usr/lib/python2.7/site-packages/ && patch -p1 < tacker-client-fix-symmetrical.patch" \
- --run-command "yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo" \
- --install yum-utils,lvm2,device-mapper-persistent-data \
- -a undercloud_build.qcow2
-
-mv -f undercloud_build.qcow2 undercloud.qcow2
-popd > /dev/null
diff --git a/build/upstream-environment.yaml b/build/upstream-environment.yaml
index ef6cdb62..ab110177 100644
--- a/build/upstream-environment.yaml
+++ b/build/upstream-environment.yaml
@@ -6,7 +6,14 @@ parameters:
CloudDomain: opnfvlf.org
parameter_defaults:
- NeutronNetworkVLANRanges: 'datacentre:500:525'
+ DockerPuppetProcessCount: 10
+ #NeutronNetworkVLANRanges: 'datacentre:500:525'
+ #NeutronBridgeMappings: "datacentre:br-ex"
+ #OpenDaylightProviderMappings: "datacentre:br-ex"
+ NeutronNetworkType: vxlan
+ MigrationSshKey:
+ public_key: replace_public_key
+ private_key: replace_private_key
SshServerOptions:
HostKey:
- '/etc/ssh/ssh_host_rsa_key'
diff --git a/build/variables.sh b/build/variables.sh
deleted file mode 100644
index e966e33e..00000000
--- a/build/variables.sh
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/sh
-##############################################################################
-# Copyright (c) 2015 Tim Rozet (Red Hat), Dan Radez (Red Hat) and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-BUILD_ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
-BUILD_DIR="$(dirname ${BUILD_ROOT})/.build"
-QUAGGA_RPMS_DIR=${BUILD_DIR}/quagga_build_dir
-CACHE_DIR="$(dirname ${BUILD_ROOT})/.cache"
-CACHE_HISTORY=".cache_history"
-PATCHES_DIR="${BUILD_ROOT}/patches"
-BUILD_UTILS="$(dirname ${BUILD_ROOT})/apex/build_utils.py"
-
-# Run virt-customize commands with a guest memory of 4G to avoid
-# oom issues on some of the larger build steps
-VIRT_CUSTOMIZE="virt-customize -m 4096"
-
-rdo_images_uri=${RDO_IMAGES_URI:-https://images.rdoproject.org/pike/delorean/current-tripleo}
-
-onos_release_uri=https://downloads.onosproject.org/release/
-onos_release_file=onos-1.8.4.tar.gz
-onos_jdk_uri=http://artifacts.opnfv.org/apex/colorado
-onos_ovs_uri=http://artifacts.opnfv.org/apex/colorado
-onos_ovs_pkg=package_ovs_rpm3.tar.gz
-if [ -z ${GS_PATHNAME+x} ]; then
- GS_PATHNAME=/colorado
-fi
-dpdk_uri_base=http://artifacts.opnfv.org/ovsnfv/danube
-dpdk_rpms=(
-'ovs4opnfv-e8acab14-dpdk-16.11-5.el7.centos.x86_64.rpm'
-'ovs4opnfv-e8acab14-dpdk-devel-16.11-5.el7.centos.x86_64.rpm'
-'ovs4opnfv-e8acab14-dpdk-examples-16.11-5.el7.centos.x86_64.rpm'
-'ovs4opnfv-e8acab14-dpdk-tools-16.11-5.el7.centos.x86_64.rpm'
-)
-
-kvmfornfv_uri_base="http://artifacts.opnfv.org/kvmfornfv/danube"
-kvmfornfv_kernel_rpm="kvmfornfv-4bfeded9-apex-kernel-4.4.50_rt62_centos.x86_64.rpm"
-
-calipso_uri_base="https://git.opnfv.org/calipso/plain/app/install"
-calipso_script="calipso-installer.py"
-
-netvpp_repo="https://github.com/openstack/networking-vpp"
-netvpp_branch="17.07"
-netvpp_commit=$(git ls-remote ${netvpp_repo} ${netvpp_branch} | awk '{print substr($1,1,7)}')
-netvpp_pkg=python-networking-vpp-17.07-1.git${NETVPP_COMMIT}$(rpm -E %dist).noarch.rpm
-
-gluon_rpm=gluon-0.0.1-1_20170302.noarch.rpm
-
-nosdn_vpp_rpms=(
-'https://nexus.fd.io/content/repositories/fd.io.centos7/io/fd/vpp/vpp/17.07.01-release.x86_64/vpp-17.07.01-release.x86_64.rpm'
-'https://nexus.fd.io/content/repositories/fd.io.centos7/io/fd/vpp/vpp-api-python/17.07.01-release.x86_64/vpp-api-python-17.07.01-release.x86_64.rpm'
-'https://nexus.fd.io/content/repositories/fd.io.centos7/io/fd/vpp/vpp-lib/17.07.01-release.x86_64/vpp-lib-17.07.01-release.x86_64.rpm'
-'https://nexus.fd.io/content/repositories/fd.io.centos7/io/fd/vpp/vpp-plugins/17.07.01-release.x86_64/vpp-plugins-17.07.01-release.x86_64.rpm'
-)
diff --git a/ci/PR_revision.log b/ci/PR_revision.log
index b83ca400..9aecb90f 100644
--- a/ci/PR_revision.log
+++ b/ci/PR_revision.log
@@ -10,4 +10,8 @@ apex-puppet-tripleo, Ie336c22b366bd478963ca14e25d645fec0cded7a
apex-tripleo-heat-templates, I0749ed6e0d27bd4c9a5bb19657579d400501d09e
apex-puppet-tripleo, I486c4045e29c7032526be6e19d11e7979070c2d9
-apex-os-net-config, Idaf03d78d2ce657ac484c1285a795d98760d0112 \ No newline at end of file
+apex-os-net-config, Idaf03d78d2ce657ac484c1285a795d98760d0112
+apex-tripleo-heat-templates, Ib94b0182fd5fbc3a254cae5862a82982bf3131be
+apex-tripleo-heat-templates, I1b4d3eea61e29e1ede0e06d78fde842ef13b7b8e
+
+apex-tripleo-heat-templates, I37039207bc7cf9965d26e6dfa034e84bf9b7224d
diff --git a/ci/util.sh b/ci/util.sh
index a9df0213..5172ae1b 100755
--- a/ci/util.sh
+++ b/ci/util.sh
@@ -48,7 +48,7 @@ controller<number> or compute<number>"
node_output=$(undercloud_connect "stack" "source stackrc; nova list")
node=$(echo "$1" | sed -E 's/([a-zA-Z]+)([0-9]+)/\1-\2/')
- node_ip=$(echo "$node_output" | grep "$node" | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
+ node_ip=$(echo "$node_output" | grep "$node " | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
if [ "$node_ip" == "" ]; then
echo -e "Unable to find IP for ${node} in \n${node_output}"
diff --git a/config/deploy/common-patches.yaml b/config/deploy/common-patches.yaml
new file mode 100644
index 00000000..bac6812c
--- /dev/null
+++ b/config/deploy/common-patches.yaml
@@ -0,0 +1,45 @@
+---
+patches:
+ master:
+ undercloud:
+ - change-id: I2e0a40d7902f592e4b7bd727f57048111e0bea36
+ project: openstack/tripleo-common
+ - change-id: Iaa2276aadae351fbc138de258c51d786f69e4395
+ project: openstack/tripleo-common
+ - change-id: I8d1db69d520da069099f919f286e6a553dd645a5
+ project: openstack/tripleo-heat-templates
+ - change-id: Ia51a825d11bd9b94d0110f13cdf2a6bbcedf6194
+ project: openstack/tripleo-common
+ overcloud:
+ - change-id: Ie988ba6a2d444a614e97c0edf5fce24b23970310
+ project: openstack/puppet-tripleo
+ - change-id: I93e3d355625508fdc42f44bdd358f3ba86fbd8d7
+ project: openstack/puppet-tripleo
+ rocky:
+ undercloud:
+ - change-id: I2e0a40d7902f592e4b7bd727f57048111e0bea36
+ project: openstack/tripleo-common
+ branch: master
+ - change-id: Iaa2276aadae351fbc138de258c51d786f69e4395
+ project: openstack/tripleo-common
+ branch: master
+ - change-id: I8d1db69d520da069099f919f286e6a553dd645a5
+ project: openstack/tripleo-heat-templates
+ - change-id: Ia51a825d11bd9b94d0110f13cdf2a6bbcedf6194
+ project: openstack/tripleo-common
+ overcloud:
+ - change-id: Ie988ba6a2d444a614e97c0edf5fce24b23970310
+ project: openstack/puppet-tripleo
+ branch: master
+ - change-id: I93e3d355625508fdc42f44bdd358f3ba86fbd8d7
+ project: openstack/puppet-tripleo
+ branch: master
+ queens:
+ undercloud:
+ - change-id: I966bf7f6f8d1cbc656abfad59e8bb927e1aa53c2
+ project: openstack/tripleo-common
+ overcloud:
+ - change-id: Ie988ba6a2d444a614e97c0edf5fce24b23970310
+ project: openstack/puppet-tripleo
+ - change-id: I93e3d355625508fdc42f44bdd358f3ba86fbd8d7
+ project: openstack/puppet-tripleo
diff --git a/config/deploy/deploy_settings.yaml b/config/deploy/deploy_settings.yaml
index 47bf0834..caef2628 100644
--- a/config/deploy/deploy_settings.yaml
+++ b/config/deploy/deploy_settings.yaml
@@ -7,8 +7,17 @@
# If ha_enabled is false, there will only be one controller.
global_params:
ha_enabled: true
+ # introspect defaults to True,
+ # Enables/disables the introspection process at deploy time.
+ introspect: true
+ # ipxe defaults to True
+ # Enables/disables the use of ipxe for provisioning
+ ipxe: true
deploy_options:
+ # Whether or not to use containers for the overcloud services
+ containers: true
+
# Which SDN controller to use. Valid options are 'opendaylight', 'onos',
# 'opendaylight-external', 'opencontrail' or false. A value of false will
# use Neutron's OVS ML2 controller.
@@ -46,6 +55,11 @@ deploy_options:
# The dataplane should be specified as fdio if this is set to true
vpp: false
+ # Whether to install and configure SRIOV service in the compute node(s) to
+ # allow VMs to use VFs/PFs. The user must know in advance the name of the
+ # SRIOV capable NIC that will be configured.
+ sriov: em2
+
# Whether to run vsperf after the install has completed
# vsperf: false
@@ -94,3 +108,8 @@ deploy_options:
# Set dovetail option to install dovetail
# dovetail: false
+
+ # Whether the nodes are deployed as openstack, kubernetes or openshift nodes
+ # Defaults to openstack.
+ # Possible values are openstack, k8s, openshift
+ vim: 'openstack'
diff --git a/config/deploy/os-nosdn-pike-noha.yaml b/config/deploy/k8s-nosdn-nofeature-noha.yaml
index 11417840..33a9b41a 100644
--- a/config/deploy/os-nosdn-pike-noha.yaml
+++ b/config/deploy/k8s-nosdn-nofeature-noha.yaml
@@ -3,12 +3,14 @@ global_params:
ha_enabled: false
patches:
undercloud:
- - change-id: I301370fbf47a71291614dd60e4c64adc7b5ebb42
+ - change-id: Ib8ff69a4bc869de21ad838b3bc6c38a8676036c6
project: openstack/tripleo-heat-templates
+
deploy_options:
- os_version: pike
sdn_controller: false
tacker: false
congress: false
sfc: false
vpn: false
+ ceph: false
+ vim: 'k8s'
diff --git a/config/deploy/os-nosdn-calipso-noha.yaml b/config/deploy/os-nosdn-calipso-noha.yaml
index ce5c8a5e..6502bcb0 100644
--- a/config/deploy/os-nosdn-calipso-noha.yaml
+++ b/config/deploy/os-nosdn-calipso-noha.yaml
@@ -3,6 +3,7 @@ global_params:
ha_enabled: false
deploy_options:
+ containers: true
sdn_controller: false
sfc: false
vpn: false
diff --git a/config/deploy/os-nosdn-calipso_rocky-noha.yaml b/config/deploy/os-nosdn-calipso_rocky-noha.yaml
new file mode 100644
index 00000000..b14ceed5
--- /dev/null
+++ b/config/deploy/os-nosdn-calipso_rocky-noha.yaml
@@ -0,0 +1,11 @@
+---
+global_params:
+ ha_enabled: false
+
+deploy_options:
+ containers: true
+ os_version: rocky
+ sdn_controller: false
+ sfc: false
+ vpn: false
+ calipso: true
diff --git a/config/deploy/os-nosdn-nofeature-ha.yaml b/config/deploy/os-nosdn-nofeature-ha.yaml
index 93a1fb6f..d896a672 100644
--- a/config/deploy/os-nosdn-nofeature-ha.yaml
+++ b/config/deploy/os-nosdn-nofeature-ha.yaml
@@ -3,8 +3,10 @@ global_params:
ha_enabled: true
deploy_options:
+ containers: true
+ os_version: master
sdn_controller: false
- tacker: true
- congress: true
+ tacker: false
+ congress: false
sfc: false
vpn: false
diff --git a/config/deploy/os-nosdn-nofeature-noha.yaml b/config/deploy/os-nosdn-nofeature-noha.yaml
index 77e5d5e2..0725031f 100644
--- a/config/deploy/os-nosdn-nofeature-noha.yaml
+++ b/config/deploy/os-nosdn-nofeature-noha.yaml
@@ -3,8 +3,10 @@ global_params:
ha_enabled: false
deploy_options:
+ containers: true
+ os_version: master
sdn_controller: false
- tacker: true
- congress: true
+ tacker: false
+ congress: false
sfc: false
vpn: false
diff --git a/config/deploy/os-nosdn-rocky-ha.yaml b/config/deploy/os-nosdn-rocky-ha.yaml
new file mode 100644
index 00000000..152a8840
--- /dev/null
+++ b/config/deploy/os-nosdn-rocky-ha.yaml
@@ -0,0 +1,11 @@
+---
+global_params:
+ ha_enabled: true
+deploy_options:
+ containers: true
+ os_version: rocky
+ sdn_controller: false
+ tacker: false
+ congress: false
+ sfc: false
+ vpn: false
diff --git a/config/deploy/os-ovn-nofeature-noha.yaml b/config/deploy/os-nosdn-rocky-noha.yaml
index 8c8c5f97..5fecfb6d 100644
--- a/config/deploy/os-ovn-nofeature-noha.yaml
+++ b/config/deploy/os-nosdn-rocky-noha.yaml
@@ -1,10 +1,11 @@
---
global_params:
ha_enabled: false
-
deploy_options:
- sdn_controller: ovn
+ containers: true
+ os_version: rocky
+ sdn_controller: false
tacker: false
- congress: true
+ congress: false
sfc: false
vpn: false
diff --git a/config/deploy/os-odl-bgpvpn-ha.yaml b/config/deploy/os-odl-bgpvpn-ha.yaml
index 68b62734..f61e1a60 100644
--- a/config/deploy/os-odl-bgpvpn-ha.yaml
+++ b/config/deploy/os-odl-bgpvpn-ha.yaml
@@ -3,9 +3,11 @@ global_params:
ha_enabled: true
deploy_options:
+ containers: true
+ os_version: master
sdn_controller: opendaylight
- odl_version: nitrogen
+ odl_version: master
tacker: false
- congress: true
+ congress: false
sfc: false
vpn: true
diff --git a/config/deploy/os-odl-bgpvpn-noha.yaml b/config/deploy/os-odl-bgpvpn-noha.yaml
index 0435e6b5..4bf90aa7 100644
--- a/config/deploy/os-odl-bgpvpn-noha.yaml
+++ b/config/deploy/os-odl-bgpvpn-noha.yaml
@@ -3,9 +3,11 @@ global_params:
ha_enabled: false
deploy_options:
+ containers: true
+ os_version: master
sdn_controller: opendaylight
- odl_version: nitrogen
+ odl_version: master
tacker: false
- congress: true
+ congress: false
sfc: false
vpn: true
diff --git a/config/deploy/os-odl-bgpvpn_rocky-ha.yaml b/config/deploy/os-odl-bgpvpn_rocky-ha.yaml
new file mode 100644
index 00000000..a0833fd4
--- /dev/null
+++ b/config/deploy/os-odl-bgpvpn_rocky-ha.yaml
@@ -0,0 +1,13 @@
+---
+global_params:
+ ha_enabled: true
+
+deploy_options:
+ containers: true
+ os_version: rocky
+ sdn_controller: opendaylight
+ odl_version: master
+ tacker: false
+ congress: false
+ sfc: false
+ vpn: true
diff --git a/config/deploy/os-odl-bgpvpn_rocky-noha.yaml b/config/deploy/os-odl-bgpvpn_rocky-noha.yaml
new file mode 100644
index 00000000..6bc5adf3
--- /dev/null
+++ b/config/deploy/os-odl-bgpvpn_rocky-noha.yaml
@@ -0,0 +1,13 @@
+---
+global_params:
+ ha_enabled: false
+
+deploy_options:
+ containers: true
+ os_version: rocky
+ sdn_controller: opendaylight
+ odl_version: master
+ tacker: false
+ congress: false
+ sfc: false
+ vpn: true
diff --git a/config/deploy/os-odl-l2gw-ha.yaml b/config/deploy/os-odl-l2gw-ha.yaml
new file mode 100644
index 00000000..a22da3bb
--- /dev/null
+++ b/config/deploy/os-odl-l2gw-ha.yaml
@@ -0,0 +1,12 @@
+---
+global_params:
+ ha_enabled: true
+
+deploy_options:
+ sdn_controller: opendaylight
+ odl_version: nitrogen
+ tacker: false
+ congress: true
+ sfc: false
+ vpn: false
+ l2gw: true
diff --git a/config/deploy/os-odl-csit-noha.yaml b/config/deploy/os-odl-l2gw-noha.yaml
index 634b6cb5..ae5218aa 100644
--- a/config/deploy/os-odl-csit-noha.yaml
+++ b/config/deploy/os-odl-l2gw-noha.yaml
@@ -6,7 +6,7 @@ deploy_options:
sdn_controller: opendaylight
odl_version: nitrogen
tacker: false
- congress: false
+ congress: true
sfc: false
vpn: false
- ceph: false
+ l2gw: true
diff --git a/config/deploy/os-odl-nofeature-ha.yaml b/config/deploy/os-odl-nofeature-ha.yaml
index 4dd31e9e..748da3c7 100644
--- a/config/deploy/os-odl-nofeature-ha.yaml
+++ b/config/deploy/os-odl-nofeature-ha.yaml
@@ -3,9 +3,11 @@ global_params:
ha_enabled: true
deploy_options:
+ containers: true
+ os_version: master
sdn_controller: opendaylight
- odl_version: nitrogen
- tacker: true
- congress: true
+ odl_version: master
+ tacker: false
+ congress: false
sfc: false
vpn: false
diff --git a/config/deploy/os-odl-nofeature-noha.yaml b/config/deploy/os-odl-nofeature-noha.yaml
index 271d2717..0767822b 100644
--- a/config/deploy/os-odl-nofeature-noha.yaml
+++ b/config/deploy/os-odl-nofeature-noha.yaml
@@ -3,9 +3,11 @@ global_params:
ha_enabled: false
deploy_options:
+ containers: true
+ os_version: master
sdn_controller: opendaylight
- odl_version: nitrogen
- tacker: true
- congress: true
+ odl_version: master
+ tacker: false
+ congress: false
sfc: false
vpn: false
diff --git a/config/deploy/os-odl-pike-noha.yaml b/config/deploy/os-odl-pike-noha.yaml
deleted file mode 100644
index 44eff664..00000000
--- a/config/deploy/os-odl-pike-noha.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-global_params:
- ha_enabled: false
- patches:
- undercloud:
- - change-id: I301370fbf47a71291614dd60e4c64adc7b5ebb42
- project: openstack/tripleo-heat-templates
-deploy_options:
- os_version: pike
- sdn_controller: opendaylight
- odl_version: carbon
- tacker: false
- congress: false
- sfc: false
- vpn: false
diff --git a/config/deploy/os-odl-queens-ha.yaml b/config/deploy/os-odl-queens-ha.yaml
new file mode 100644
index 00000000..9738be38
--- /dev/null
+++ b/config/deploy/os-odl-queens-ha.yaml
@@ -0,0 +1,13 @@
+---
+global_params:
+ ha_enabled: true
+
+deploy_options:
+ containers: true
+ os_version: queens
+ sdn_controller: opendaylight
+ odl_version: oxygen
+ tacker: false
+ congress: false
+ sfc: false
+ vpn: false
diff --git a/config/deploy/os-odl-queens-noha.yaml b/config/deploy/os-odl-queens-noha.yaml
new file mode 100644
index 00000000..0500eec1
--- /dev/null
+++ b/config/deploy/os-odl-queens-noha.yaml
@@ -0,0 +1,13 @@
+---
+global_params:
+ ha_enabled: false
+
+deploy_options:
+ containers: true
+ os_version: queens
+ sdn_controller: opendaylight
+ odl_version: oxygen
+ tacker: false
+ congress: false
+ sfc: false
+ vpn: false
diff --git a/config/deploy/os-odl-rocky-ha.yaml b/config/deploy/os-odl-rocky-ha.yaml
new file mode 100644
index 00000000..8728bd8d
--- /dev/null
+++ b/config/deploy/os-odl-rocky-ha.yaml
@@ -0,0 +1,13 @@
+---
+global_params:
+ ha_enabled: true
+
+deploy_options:
+ containers: true
+ os_version: rocky
+ sdn_controller: opendaylight
+ odl_version: oxygen
+ tacker: false
+ congress: false
+ sfc: false
+ vpn: false
diff --git a/config/deploy/os-odl-rocky-noha.yaml b/config/deploy/os-odl-rocky-noha.yaml
new file mode 100644
index 00000000..f6ceb81b
--- /dev/null
+++ b/config/deploy/os-odl-rocky-noha.yaml
@@ -0,0 +1,13 @@
+---
+global_params:
+ ha_enabled: false
+
+deploy_options:
+ containers: true
+ os_version: rocky
+ sdn_controller: opendaylight
+ odl_version: oxygen
+ tacker: false
+ congress: false
+ sfc: false
+ vpn: false
diff --git a/config/deploy/os-odl-sfc-ha.yaml b/config/deploy/os-odl-sfc-ha.yaml
index 3a87bfe3..e8df1170 100644
--- a/config/deploy/os-odl-sfc-ha.yaml
+++ b/config/deploy/os-odl-sfc-ha.yaml
@@ -3,9 +3,11 @@ global_params:
ha_enabled: true
deploy_options:
+ containers: true
+ os_version: master
sdn_controller: opendaylight
- odl_version: nitrogen
- tacker: true
- congress: true
+ odl_version: master
+ tacker: false
+ congress: false
sfc: true
vpn: false
diff --git a/config/deploy/os-odl-sfc-noha.yaml b/config/deploy/os-odl-sfc-noha.yaml
index 2b08af6c..3dac36fa 100644
--- a/config/deploy/os-odl-sfc-noha.yaml
+++ b/config/deploy/os-odl-sfc-noha.yaml
@@ -3,9 +3,11 @@ global_params:
ha_enabled: false
deploy_options:
+ containers: true
+ os_version: master
sdn_controller: opendaylight
- odl_version: nitrogen
- tacker: true
- congress: true
+ odl_version: master
+ tacker: false
+ congress: false
sfc: true
vpn: false
diff --git a/config/deploy/os-odl-sfc_rocky-ha.yaml b/config/deploy/os-odl-sfc_rocky-ha.yaml
new file mode 100644
index 00000000..3a1b6c93
--- /dev/null
+++ b/config/deploy/os-odl-sfc_rocky-ha.yaml
@@ -0,0 +1,13 @@
+---
+global_params:
+ ha_enabled: true
+
+deploy_options:
+ containers: true
+ os_version: rocky
+ sdn_controller: opendaylight
+ odl_version: master
+ tacker: false
+ congress: false
+ sfc: true
+ vpn: false
diff --git a/config/deploy/os-odl-sfc_rocky-noha.yaml b/config/deploy/os-odl-sfc_rocky-noha.yaml
new file mode 100644
index 00000000..8af873a5
--- /dev/null
+++ b/config/deploy/os-odl-sfc_rocky-noha.yaml
@@ -0,0 +1,13 @@
+---
+global_params:
+ ha_enabled: false
+
+deploy_options:
+ containers: true
+ os_version: rocky
+ sdn_controller: opendaylight
+ odl_version: master
+ tacker: false
+ congress: false
+ sfc: true
+ vpn: false
diff --git a/config/deploy/os-odl-sriov-ha.yaml b/config/deploy/os-odl-sriov-ha.yaml
new file mode 100644
index 00000000..03e34a23
--- /dev/null
+++ b/config/deploy/os-odl-sriov-ha.yaml
@@ -0,0 +1,21 @@
+---
+global_params:
+ ha_enabled: true
+
+deploy_options:
+ sdn_controller: opendaylight
+ odl_version: nitrogen
+ tacker: true
+ congress: true
+ sfc: false
+ vpn: false
+ sriov: em2
+ performance:
+ Controller:
+ kernel:
+ Compute:
+ kernel:
+ hugepagesz: 2M
+ hugepages: 2048
+ intel_iommu: 'on'
+ iommu: pt
diff --git a/config/deploy/os-odl-sriov-noha.yaml b/config/deploy/os-odl-sriov-noha.yaml
new file mode 100644
index 00000000..52b5aa18
--- /dev/null
+++ b/config/deploy/os-odl-sriov-noha.yaml
@@ -0,0 +1,21 @@
+---
+global_params:
+ ha_enabled: false
+
+deploy_options:
+ sdn_controller: opendaylight
+ odl_version: nitrogen
+ tacker: true
+ congress: true
+ sfc: false
+ vpn: false
+ sriov: em2
+ performance:
+ Controller:
+ kernel:
+ Compute:
+ kernel:
+ hugepagesz: 2M
+ hugepages: 2048
+ intel_iommu: 'on'
+ iommu: pt
diff --git a/config/deploy/os-ovn-nofeature-ha.yaml b/config/deploy/os-ovn-nofeature-ha.yaml
new file mode 100644
index 00000000..6c42cad9
--- /dev/null
+++ b/config/deploy/os-ovn-nofeature-ha.yaml
@@ -0,0 +1,15 @@
+---
+global_params:
+ ha_enabled: true
+ patches:
+ undercloud:
+ - change-id: Ic08ff58b10d4fa7116163be1f7fce57879cee8c5
+ project: openstack/tripleo-common
+
+deploy_options:
+ containers: true
+ sdn_controller: ovn
+ tacker: false
+ congress: false
+ sfc: false
+ vpn: false
diff --git a/config/deploy/os-ovn-rocky-ha.yaml b/config/deploy/os-ovn-rocky-ha.yaml
new file mode 100644
index 00000000..a2c5a865
--- /dev/null
+++ b/config/deploy/os-ovn-rocky-ha.yaml
@@ -0,0 +1,17 @@
+---
+global_params:
+ ha_enabled: true
+ patches:
+ undercloud:
+ - change-id: Ic08ff58b10d4fa7116163be1f7fce57879cee8c5
+ project: openstack/tripleo-common
+ branch: master
+
+deploy_options:
+ containers: true
+ os_version: rocky
+ sdn_controller: ovn
+ tacker: false
+ congress: false
+ sfc: false
+ vpn: false
diff --git a/config/network/network_settings.yaml b/config/network/network_settings.yaml
index fe11a9b5..fee6b500 100644
--- a/config/network/network_settings.yaml
+++ b/config/network/network_settings.yaml
@@ -57,6 +57,10 @@ syslog:
server: 10.128.1.24
transport: 'tcp'
+# http(s) proxy settings added to /etc/environment of uc and oc nodes
+# http_proxy: http://proxy.server:8080
+# https_proxy: https://proxy.server:8081
+
# Common network settings
networks:
# Admin configuration (pxe and jumpstart)
@@ -112,6 +116,12 @@ networks:
mtu: 1500
# Tenant network Overlay segmentation ID range:
# VNI, VLAN-ID, etc.
+ # VLAN config should follow the pattern of neutron ml2 network_vlan_ranges
+ # allowed patterns are <physical_network> or
+ # <physical_network>:<vlan_min>:<vlan_max>
+ # Note that for VLAN config, physnet 'datacentre:1:1000' is used for
+ # external networks by default and will be automatically added to
+ # Neutron config if the range specified here does not include datacentre.
overlay_id_range: 2,65535
# Tenant network segmentation type:
@@ -176,8 +186,11 @@ networks:
nic_mapping:
# Mapping for compute profile (nodes assigned as Compute nodes)
compute:
- # Physical interface type (interface or bond)
- phys_type: interface
+ # Physical interface type (ovs_bridge, interface or bond)
+ # Note that this phys_type for external network will be changed
+ # to vpp_interface for odl_fdio scenarios and linux_bridge for
+ # nosdn_fdio scenarios.
+ phys_type: ovs_bridge
# VLAN tag to use with this NIC
vlan: native
# Physical NIC members of this mapping
@@ -186,7 +199,10 @@ networks:
- eth2
# Mapping for controller profile (nodes assigned as Controller nodes)
controller:
- phys_type: interface
+ # Note that this phys_type for external network will be changed
+ # to vpp_interface for odl_fdio scenarios and linux_bridge for
+ # nosdn_fdio scenarios.
+ phys_type: ovs_bridge
vlan: native
members:
- eth2
diff --git a/config/network/network_settings_vpp.yaml b/config/network/network_settings_csit.yaml
index 2f6bba5e..75271140 100644
--- a/config/network/network_settings_vpp.yaml
+++ b/config/network/network_settings_csit.yaml
@@ -57,6 +57,10 @@ syslog:
server: 10.128.1.24
transport: 'tcp'
+# http(s) proxy settings added to /etc/environment of uc and oc nodes
+# http_proxy: http://proxy.server:8080
+# https_proxy: https://proxy.server:8081
+
# Common network settings
networks:
# Admin configuration (pxe and jumpstart)
@@ -105,13 +109,19 @@ networks:
# Tenant network configuration
tenant:
- enabled: true
+ enabled: false
# Subnet in CIDR format 192.168.1.0/24
cidr: 11.0.0.0/24
# Tenant network MTU
mtu: 1500
# Tenant network Overlay segmentation ID range:
# VNI, VLAN-ID, etc.
+ # VLAN config should follow the pattern of neutron ml2 network_vlan_ranges
+ # allowed patterns are <physical_network> or
+ # <physical_network>:<vlan_min>:<vlan_max>
+ # Note that for VLAN config, physnet 'datacentre:1:1000' is used for
+ # external networks by default and will be automatically added to
+ # Neutron config if the range specified here does not include datacentre.
overlay_id_range: 2,65535
# Tenant network segmentation type:
@@ -123,6 +133,9 @@ networks:
compute:
# Physical interface type (interface/bond)
phys_type: interface
+ # UIO driver to use for DPDK scenarios.
+ # The value is ignored for non-DPDK scenarios.
+ uio_driver: uio_pci_generic
# VLAN tag to use with this NIC
vlan: native
# Physical NIC members of this mapping
@@ -142,7 +155,7 @@ networks:
# Can contain 1 or more external networks
external:
- public:
- enabled: true
+ enabled: false
# Public network MTU
mtu: 1500
# Network settings for the Installer VM on external network
@@ -248,7 +261,7 @@ networks:
# Storage network configuration
storage:
- enabled: true
+ enabled: false
# Subnet in CIDR format
cidr: 12.0.0.0/24
# Storage network MTU
diff --git a/config/network/network_settings_tenant_vlan.yaml b/config/network/network_settings_tenant_vlan.yaml
new file mode 100644
index 00000000..e1f009fa
--- /dev/null
+++ b/config/network/network_settings_tenant_vlan.yaml
@@ -0,0 +1,333 @@
+---
+# This configuration file defines Network Environment for a
+# Baremetal Deployment of OPNFV. It contains default values
+# for 5 following networks:
+#
+# - admin
+# - tenant*
+# - external*
+# - storage*
+# - api*
+# *) optional networks
+#
+# Optional networks will be consolidated with the admin network
+# if not explicitly configured.
+#
+# See short description of the networks in the comments below.
+#
+# "admin" is the short name for Control Plane Network.
+# This network should be IPv4 even it is an IPv6 deployment
+# IPv6 does not have PXE boot support.
+# During OPNFV deployment it is used for node provisioning which will require
+# PXE booting as well as running a DHCP server on this network. Be sure to
+# disable any other DHCP/TFTP server on this network.
+#
+# "tenant" is the network used for tenant traffic.
+#
+# "external" is the network which should have internet or external
+# connectivity. External OpenStack networks will be configured to egress this
+# network. There can be multiple external networks, but only one assigned as
+# "public" which OpenStack public API's will register.
+#
+# "storage" is the network for storage I/O.
+#
+# "api" is an optional network for splitting out OpenStack service API
+# communication. This should be used for IPv6 deployments.
+
+
+# Meta data for the network configuration
+network-config-metadata:
+ title: LF-POD-1 Network config
+ version: 0.1
+ created: Mon Dec 28 2015
+ comment: None
+
+# DNS Settings
+dns-domain: opnfvlf.org
+dns-search: opnfvlf.org
+dns_nameservers:
+ - 8.8.8.8
+ - 8.8.4.4
+# NTP servers
+ntp:
+ - 0.se.pool.ntp.org
+ - 1.se.pool.ntp.org
+# Syslog server
+syslog:
+ server: 10.128.1.24
+ transport: 'tcp'
+
+# http(s) proxy settings added to /etc/environment of uc and oc nodes
+# http_proxy: http://proxy.server:8080
+# https_proxy: https://proxy.server:8081
+
+# Common network settings
+networks:
+ # Admin configuration (pxe and jumpstart)
+ admin:
+ enabled: true
+ # Network settings for the Installer VM on admin network
+ installer_vm:
+ # Indicates if this VM will be bridged to an interface, or to a bond
+ nic_type: interface
+ # Interfaces to bridge for installer VM (use multiple values for bond)
+ members:
+ - em1
+ # VLAN tag to use for this network on Installer VM, native means none
+ vlan: native
+ # IP to assign to Installer VM on this network
+ ip: 192.0.2.1
+ # Usable ip range for the overcloud node IPs (including VIPs)
+ # Last IP is used for host bridge (i.e. br-admin).
+ # If empty entire range is usable.
+ # Cannot overlap with dhcp_range or introspection_range.
+ overcloud_ip_range:
+ - 192.0.2.51
+ - 192.0.2.99
+ # Gateway (only needed when public_network is disabled)
+ gateway: 192.0.2.1
+ # Subnet in CIDR format 192.168.1.0/24
+ cidr: 192.0.2.0/24
+ # DHCP range for the admin network, automatically provisioned if empty
+ dhcp_range:
+ - 192.0.2.2
+ - 192.0.2.50
+ # Mapping of network configuration for Overcloud Nodes
+ nic_mapping:
+ # Mapping for compute profile (nodes assigned as Compute nodes)
+ compute:
+ # Physical interface type (interface or bond)
+ phys_type: interface
+ # Physical NIC members (Single value allowed for phys_type: interface)
+ members:
+ - eth0
+ # Mapping for controller profile (nodes assigned as Controller nodes)
+ controller:
+ phys_type: interface
+ members:
+ - eth0
+
+ # Tenant network configuration
+ tenant:
+ enabled: true
+ # Subnet in CIDR format 192.168.1.0/24
+ cidr: 11.0.0.0/24
+ # Tenant network MTU
+ mtu: 1500
+ # Tenant network Overlay segmentation ID range:
+ # VNI, VLAN-ID, etc.
+ # VLAN config should follow the pattern of neutron ml2 network_vlan_ranges
+ # allowed patterns are <physical_network> or
+ # <physical_network>:<vlan_min>:<vlan_max>
+ # Note that for VLAN config, physnet 'datacentre:1:1000' is used for
+ # external networks by default and will be automatically added to
+ # Neutron config if the range specified here does not include datacentre.
+ overlay_id_range: vlan:500:525
+
+ # Tenant network segmentation type:
+ # vlan, vxlan, gre
+ segmentation_type: vlan
+ # Mapping of network configuration for Overcloud Nodes
+ nic_mapping:
+ # Mapping for compute profile (nodes assigned as Compute nodes)
+ compute:
+ # Physical interface type (interface/bond)
+ phys_type: interface
+ # UIO driver to use for DPDK scenarios.
+ # The value is ignored for non-DPDK scenarios.
+ uio_driver: uio_pci_generic
+ # VLAN tag to use with this NIC
+ vlan: native
+ # Physical NIC members of this mapping
+ # Single value allowed for phys_type: interface
+ members:
+ # Note logical name like nic1 not valid for fdio deployment yet.
+ - eth1
+ # Mapping for controller profile (nodes assigned as Controller nodes)
+ controller:
+ # Physical interface type (interface/bond)
+ phys_type: interface
+ vlan: native
+ # Note: logicial names like nic1 are not valid for fdio deployment yet.
+ members:
+ - eth1
+
+ # Can contain 1 or more external networks
+ external:
+ - public:
+ enabled: true
+ # Public network MTU
+ mtu: 1500
+ # Network settings for the Installer VM on external network
+ # (note only valid on 'public' external network)
+ installer_vm:
+ # Indicates if this VM will be bridged to an interface, or to a bond
+ nic_type: interface
+ vlan: native
+ # Interfaces to bridge for installer VM (use multiple values for bond)
+ members:
+ - em1
+ # IP to assign to Installer VM on this network
+ ip: 192.168.37.1
+ cidr: 192.168.37.0/24
+ gateway: 192.168.37.1
+ # Range to allocate to floating IPs for the public network with Neutron
+ floating_ip_range:
+ - 192.168.37.200
+ - 192.168.37.220
+ # Usable ip range for the overcloud node IPs (including VIPs)
+ # Last IP will be used for host bridge (i.e. br-public).
+ # If empty entire range is usable.
+ # Cannot overlap with dhcp_range or introspection_range.
+ overcloud_ip_range:
+ - 192.168.37.10
+ - 192.168.37.199
+ # Mapping of network configuration for Overcloud Nodes
+ nic_mapping:
+ # Mapping for compute profile (nodes assigned as Compute nodes)
+ compute:
+ # Physical interface type (interface or bond)
+ # Note that this phys_type for external network will be changed
+ # to vpp_interface for odl_fdio scenarios and linux_bridge for
+ # nosdn_fdio scenarios.
+ phys_type: ovs_bridge
+ # VLAN tag to use with this NIC
+ vlan: native
+ # Physical NIC members of this mapping
+ # Single value allowed for phys_type: interface
+ members:
+ - eth2
+ # Mapping for controller profile (nodes assigned as Controller nodes)
+ controller:
+ # Note that this phys_type for external network will be changed
+ # to vpp_interface for odl_fdio scenarios and linux_bridge for
+ # nosdn_fdio scenarios.
+ phys_type: ovs_bridge
+ vlan: native
+ members:
+ - eth2
+ # External network to be created in OpenStack by Services tenant
+ external_overlay:
+ name: Public_internet
+ type: flat
+ gateway: 192.168.37.1
+ # another external network
+ # This is an example and not yet supported
+ - private_cloud:
+ enabled: false
+ mtu: 1500
+ # Network settings for the Installer VM on external network
+ # note only valid on 'public' external network
+ installer_vm:
+ # Indicates if this VM will be bridged to an interface, or to a bond
+ nic_type: interface
+ vlan: 101
+ # Interfaces to bridge for installer VM (use multiple values for bond)
+ members:
+ - em1
+ # IP to assign to Installer VM on this network
+ ip: 192.168.38.1
+ cidr: 192.168.38.0/24
+ gateway: 192.168.38.1
+ # Range to allocate to floating IPs for the public network with Neutron
+ floating_ip_range:
+ - 192.168.38.200
+ - 192.168.38.220
+ # Usable IP range for overcloud nodes (including VIPs)i
+ # usually this is a shared subnet.
+ # Cannot overlap with dhcp_range or introspection_range.
+ overcloud_ip_range:
+ - 192.168.38.10
+ - 192.168.38.199
+ # Mapping of network configuration for Overcloud Nodes
+ nic_mapping:
+ # Mapping for compute profile (nodes assigned as Compute nodes)
+ compute:
+ # Physical interface type (interface or bond)
+ phys_type: interface
+ # VLAN tag to use with this NIC
+ vlan: 101
+ # Physical NIC members of this mappingi
+ # Single value allowed for phys_type: interface
+ # Note: logical names like nic1 are not valid for fdio deployment yet.
+ members:
+ - eth3
+ # Mapping for controller profile (nodes assigned as Controller nodes)
+ controller:
+ phys_type: interface
+ vlan: 101
+ members:
+ - eth3
+ # External network to be created in OpenStack by Services tenant
+ external_overlay:
+ name: private_cloud
+ type: vlan
+ segmentation_id: 101
+ gateway: 192.168.38.1
+
+ # Storage network configuration
+ storage:
+ enabled: true
+ # Subnet in CIDR format
+ cidr: 12.0.0.0/24
+ # Storage network MTU
+ mtu: 1500
+ # Mapping of network configuration for Overcloud Nodes
+ nic_mapping:
+ # Mapping for compute profile (nodes assigned as Compute nodes)
+ compute:
+ # Physical interface type (interface or bond)
+ phys_type: interface
+ # VLAN tag to use with this NIC
+ vlan: native
+ # Physical NIC members of this mapping
+ # Single value allowed for phys_type: interface
+ members:
+ # Note logical names like nic1 not valid for fdio deployment yet.
+ - eth3
+ # Mapping for controller profile (nodes assigned as Controller nodes)
+ controller:
+ phys_type: interface
+ vlan: native
+ members:
+ - eth3
+
+ api:
+ # API network configuration
+ enabled: false
+ # Subnet in CIDR format
+ cidr: fd00:fd00:fd00:4000::/64
+ # VLAN tag to use for Overcloud hosts on this network
+ vlan: 13
+ # Api network MTU
+ mtu: 1500
+ # Mapping of network configuration for Overcloud Nodes
+ nic_mapping:
+ # Mapping for compute profile (nodes assigned as Compute nodes)
+ compute:
+ # Physical interface type (interface or bond)
+ phys_type: interface
+ # VLAN tag to use with this NIC
+ vlan: native
+ # Physical NIC members of this mapping
+ # Single value allowed for phys_type: interface
+ # Note logical names like nic1 not valid for fdio deployment yet.
+ members:
+ - eth4
+ # Mapping for controller profile (nodes assigned as Controller nodes)
+ controller:
+ phys_type: interface
+ vlan: native
+ members:
+ - eth4
+
+# Apex specific settings
+apex:
+ networks:
+ admin:
+ # Range used for introspection phase (examining nodes).
+ # This cannot overlap with dhcp_range or overcloud_ip_range.
+ # for the overcloud default external network
+ introspection_range:
+ - 192.0.2.100
+ - 192.0.2.120
diff --git a/config/network/network_settings_v6.yaml b/config/network/network_settings_v6.yaml
index 7dddf343..71b0b272 100644
--- a/config/network/network_settings_v6.yaml
+++ b/config/network/network_settings_v6.yaml
@@ -57,6 +57,10 @@ syslog:
server: 10.128.1.24
transport: 'tcp'
+# http(s) proxy settings added to /etc/environment of uc and oc nodes
+# http_proxy: http://proxy.server:8080
+# https_proxy: https://proxy.server:8081
+
# Common network settings
networks:
# Admin configuration (pxe and jumpstart)
@@ -112,6 +116,12 @@ networks:
mtu: 1500
# Tenant network Overlay segmentation ID range:
# VNI, VLAN-ID, etc.
+ # VLAN config should follow the pattern of neutron ml2 network_vlan_ranges
+ # allowed patterns are <physical_network> or
+ # <physical_network>:<vlan_min>:<vlan_max>
+ # Note that for VLAN config, physnet 'datacentre:1:1000' is used for
+ # external networks by default and will be automatically added to
+ # Neutron config if the range specified here does not include datacentre.
overlay_id_range: 2,65535
# Tenant network segmentation type:
@@ -170,7 +180,7 @@ networks:
# Mapping for compute profile (nodes assigned as Compute nodes)
compute:
# Physical interface type (interface or bond)
- phys_type: interface
+ phys_type: ovs_bridge
# VLAN tag to use with this NIC
vlan: native
# Physical NIC members of this mapping
@@ -179,7 +189,7 @@ networks:
- nic3
# Mapping for controller profile (nodes assigned as Controller nodes)
controller:
- phys_type: interface
+ phys_type: ovs_bridge
vlan: native
members:
- nic3
diff --git a/config/network/network_settings_vlans.yaml b/config/network/network_settings_vlans.yaml
index 345dbbde..29cd193d 100644
--- a/config/network/network_settings_vlans.yaml
+++ b/config/network/network_settings_vlans.yaml
@@ -57,6 +57,10 @@ syslog:
server: 10.128.1.24
transport: 'tcp'
+# http(s) proxy settings added to /etc/environment of uc and oc nodes
+# http_proxy: http://proxy.server:8080
+# https_proxy: https://proxy.server:8081
+
# Common network settings
networks:
# Admin configuration (pxe and jumpstart)
diff --git a/contrib/aarch64/overcloud-full-rootfs.yaml b/contrib/aarch64/overcloud-full-rootfs.yaml
new file mode 100644
index 00000000..ad420427
--- /dev/null
+++ b/contrib/aarch64/overcloud-full-rootfs.yaml
@@ -0,0 +1,54 @@
+disk_images:
+ -
+ imagename: overcloud-full-rootfs
+ arch: aarch64
+ type: qcow2
+ distro: centos7
+ elements:
+ - baremetal
+ - dhcp-all-interfaces
+ - cloud-init
+ - openvswitch
+ - overcloud-agent
+ - overcloud-full
+ - overcloud-controller
+ - overcloud-compute
+ - overcloud-ceph-storage
+ - puppet-modules
+ - enable-serial-console
+ - stable-interface-names
+ - selinux-permissive
+ - grub2
+ - growroot
+ - devuser
+ - element-manifest
+ - dynamic-login
+ - iptables
+ - enable-packages-install
+ - pip-and-virtualenv-override
+ - dracut-regenerate
+ - remove-machine-id
+ - remove-resolvconf
+ packages:
+ - openstack-utils
+ - python-tripleoclient
+ - python-tripleoclient-heat-installer
+ - python-psutil
+ - python-debtcollector
+ - plotnetcfg
+ - sos
+ - yum-plugin-priorities
+ - ntp
+ - jq
+ - openstack-heat-agents
+ - device-mapper-multipath
+ - os-net-config
+ - grub2-efi-aa64
+ - grub2-efi-aa64-modules
+ options:
+ - " --no-tmpfs"
+ environment:
+ DIB_PYTHON_VERSION: '2'
+ DIB_DEV_USER_USERNAME: 'stack'
+ DIB_DEV_USER_PASSWORD: 'stack'
+ DIB_DEV_USER_PWDLESS_SUDO: 'Yes'
diff --git a/contrib/aarch64/undercloud-full.yaml b/contrib/aarch64/undercloud-full.yaml
new file mode 100644
index 00000000..42084c89
--- /dev/null
+++ b/contrib/aarch64/undercloud-full.yaml
@@ -0,0 +1,87 @@
+disk_images:
+ -
+ imagename: undercloud-full
+ arch: aarch64
+ type: qcow2
+ distro: centos7
+ elements:
+ - vm
+ - block-device-efi
+ - baremetal
+ - dhcp-all-interfaces
+ - disable-selinux
+ - cloud-init-nocloud
+ - openvswitch
+ - overcloud-agent
+ - overcloud-full
+ - overcloud-controller
+ - overcloud-compute
+ - overcloud-ceph-storage
+ - puppet-modules
+ - enable-serial-console
+ - stable-interface-names
+ - grub2
+ - bootloader
+ - devuser
+ - element-manifest
+ - dynamic-login
+ - iptables
+ - enable-packages-install
+ - pip-and-virtualenv-override
+ - dracut-regenerate
+ - remove-machine-id
+ - remove-resolvconf
+ packages:
+ - openstack-utils
+ - python-tripleoclient
+ - python-tripleoclient-heat-installer
+ - python-psutil
+ - python-debtcollector
+ - plotnetcfg
+ - sos
+ - yum-plugin-priorities
+ - ntp
+ - jq
+ - openstack-heat-agents
+ - device-mapper-multipath
+ - os-net-config
+ options:
+ - " --no-tmpfs"
+ environment:
+ DIB_PYTHON_VERSION: '2'
+ DIB_DEV_USER_USERNAME: 'stack'
+ DIB_DEV_USER_PASSWORD: 'stack'
+ DIB_DEV_USER_PWDLESS_SUDO: 'Yes'
+ -
+ imagename: ironic-python-agent
+ # This is bogus, but there's no initrd type in diskimage-builder
+ arch: aarch64
+ type: qcow2
+ distro: centos7
+
+ # So we just override the extension instead
+ imageext: initramfs
+ elements:
+ - ironic-agent
+ - ironic-agent-multipath
+ - dynamic-login
+ - devuser
+ - disable-selinux
+ - element-manifest
+ - network-gateway
+ - enable-packages-install
+ - pip-and-virtualenv-override
+ packages:
+ - util-linux
+ - grub2-efi-aa64
+ - grub2-efi-aa64-module
+ - python-hardware-detect
+ - yum-plugin-priorities
+ - iscsi-initiator-utils
+ options:
+ - " --no-tmpfs"
+ environment:
+ DIB_PYTHON_VERSION: '2'
+ DIB_DEV_USER_USERNAME: 'stack'
+ DIB_DEV_USER_PASSWORD: 'stack'
+ DIB_DEV_USER_PWDLESS_SUDO: 'Yes'
diff --git a/docs/conf.py b/docs/conf.py
new file mode 100644
index 00000000..eb12e74b
--- /dev/null
+++ b/docs/conf.py
@@ -0,0 +1 @@
+from docs_conf.conf import * # noqa: F401,F403
diff --git a/docs/conf.yaml b/docs/conf.yaml
new file mode 100644
index 00000000..6c76e3c0
--- /dev/null
+++ b/docs/conf.yaml
@@ -0,0 +1,3 @@
+---
+project_cfg: opnfv
+project: APEX
diff --git a/docs/contributor/APEX-on-aarch64.rst b/docs/contributor/APEX-on-aarch64.rst
new file mode 100644
index 00000000..a2e90dd6
--- /dev/null
+++ b/docs/contributor/APEX-on-aarch64.rst
@@ -0,0 +1,146 @@
+==================================================================================
+APEX on AARCH64
+==================================================================================
+
+This document describes the changes needed to deploy OPNFV-APEX on aarch64
+ * General considerations
+ * Creating undercloud and overcloud images using DIB
+ * Creating Kolla containers
+
+General considerations
+--------------------------
+
+OPNFV - APEX relies on artifacts created by the OOO project.
+
+Those artifacts are:
+
+1. Openstack packages, found in delorean_.
+
+ .. _delorean: http://www.python.org/
+
+2. UC and OC images created by RDO and found in images_.
+
+ .. _images: https://images.rdoproject.org/master/rdo_trunk/current-tripleo-rdo-internal/
+
+3. The containerized version of the openstack services found in docker.io_.
+
+ .. _docker.io: https://hub.docker.com/r/tripleomaster/
+
+All the above artifacts are x86_64 only and as a result cannot be used by APEX on aarch64
+As a result the user needs to create the Images locally before attempting to deploy.
+The only supported scenario is 'os-nosdn-rocky-ha'.
+
+Other than the aarch64 disk images and containers, there is no other special configuration
+required for aarch64. The only requirement is for the nodes to be identified as aarch64 nodes
+in the inventory files.
+
+For example :
+
+.. code-block:: yaml
+
+ node1:
+ mac_address: "68:05:CA:68:08:CA"
+ ipmi_ip: 10.10.10.10
+ ipmi_user: user
+ ipmi_pass: pass
+ pm_type: "pxe_ipmitool"
+ cpus: 1
+ memory: 128000
+ disk: 480
+ disk_device: sda
+ arch: "aarch64"
+ capabilities: "profile:control"
+
+
+Creating undercloud and overcloud images using DIB
+--------------------------------------------------
+In order to create that image DIB_ must be used. DIB can either be built from source or use yum to be installed.
+
+.. _DIB: https://github.com/openstack/diskimage-builder
+
+It is important to use a fairly late version of DIB to support UEFI systems. The version currently on epel does NOT have support for UEFI. The version on delorean (15.01) works just fine. DIB uses a YAML file from the user which describes how the
+image should look like. The original yaml from RDO is here_:
+
+
+.. _here: https://github.com/openstack/tripleo-common/blob/master/image-yaml/overcloud-images.yaml
+
+The equivelant yaml files for aarch64 are included in the apex repo in the "apex/contrib/aarch64" folder.
+The UC and OC images are very similar in terms of packages. The major difference is the partition table in EFI so for the undercloud, that has to provided as an environmental variable.
+
+.. code-block:: python
+
+ export DIB_BLOCK_DEVICE_CONFIG="
+
+ - local_loop:
+ name: image0
+
+ - partitioning:
+ base: image0
+ label: gpt
+ partitions:
+ - name: ESP
+ type: 'EF00'
+ size: 64MiB
+ mkfs:
+ type: vfat
+ mount:
+ mount_point: /boot/efi
+ fstab:
+ options: "defaults"
+ fsck-passno: 1
+ - name: root
+ type: '8300'
+ size: 50GiB
+ mkfs:
+ type: ext4
+ mount:
+ mount_point: /
+ fstab:
+ options: "defaults"
+ fsck-passno: 1
+ "
+
+ export DIB_YUM_REPO_CONF+="/etc/yum.repos.d/delorean-deps-rocky.repo /etc/yum.repos.d/delorean-rocky.repo /etc/yum.repos.d
+ /epel.repo "
+ openstack --debug overcloud image build --config-file undercloud_full.yaml --output-directory ./
+
+
+The overcloud is built in a similar way.
+
+.. code-block:: python
+
+ export DIB_YUM_REPO_CONF+="/etc/yum.repos.d/delorean-deps-rocky.repo /etc/yum.repos.d/delorean-rocky.repo /etc/yum.repos.d
+ /epel.repo "
+ openstack --debug overcloud image build --config-file overcloud_full_rootfs.yaml --output-directory ./
+
+
+
+Apex container deployment
+-------------------------
+Similarly the containers provided by OOO are for x86 only. Containers for apex on aarch64 for the Rocky release can
+be found in armbandapex_.
+
+.. _armbandapex: https://registry.hub.docker.com/v2/repositories/armbandapex/
+
+A user who wishes to rebuild the containers can easily do so by sing Kolla. An example kolla.conf and the command to build the containers is given bellow.
+
+
+.. code-block:: python
+
+ [DEFAULT]
+
+ base=centos
+ type=binary
+ namespace="private docker.io repository"
+ tag=current-tripleo-rdo
+ rpm_setup_config=ceph.repo,epel.repo,delorean-deps.repo,delorean.repo
+ push=True
+
+
+
+.. code-block:: python
+
+ openstack overcloud container image build --config-file /usr/share/tripleo-common/container-images/overcloud_containers.yaml
+ --kolla-config-file /etc/kolla/kolla-build.conf
+
+
diff --git a/docs/contributor/upstream-overcloud-container-design.rst b/docs/contributor/upstream-overcloud-container-design.rst
new file mode 100644
index 00000000..4b368c2e
--- /dev/null
+++ b/docs/contributor/upstream-overcloud-container-design.rst
@@ -0,0 +1,126 @@
+=======================================
+Overcloud Container Design/Architecture
+=======================================
+
+This document describes the changes done to implement container deployments in
+Apex.
+
+ * OOO container architecture
+ * Upstream vs Downstream deployment
+ * Apex container deployment overview
+
+OOO container architecture
+--------------------------
+
+Typically in OOO each OpenStack service is represented by a TripleO Heat
+Template stored under the puppet/services directory in the THT code base. For
+containers, there are new templates created in the docker/services directory
+which include templates for most of the previously defined puppet services.
+These docker templates in almost all cases inherit their puppet template
+counterpart and then build off of that to provide OOO docker specific
+configuration.
+
+The containers configuration in OOO is still done via puppet, and config files
+are then copied into a host directory to be later mounted in the service
+container during deployment. The docker template contains docker specific
+settings to the service, including what files to mount into the container,
+along with which puppet resources to execute, etc. Note, the puppet code is
+still stored locally on the host, while the service python code is stored in
+the container image.
+
+RDO has its own registry which stores the Docker images per service to use in
+deployments. The container image is usually just a CentOS 7 container with the
+relevant service RPM installed.
+
+In addition, Ceph no longer uses puppet to deploy. puppet-ceph was previously
+used to configure Ceph on the overcloud, but has been replaced with
+Ceph-Ansible. During container deployment, the undercloud calls a mistral
+workflow to initiate a Ceph-Ansible playbook that will download the Ceph Daemon
+container image to the overcloud and configure it.
+
+Upstream vs. Downstream deployment
+----------------------------------
+
+In Apex we typically build artifacts and then deploy from them. This works in
+the past as we usually modify disk images (qcow2s) with files or patches and
+distribute them as RPMs. However, with containers space becomes an issue. The
+size of each container image ranges from 800 MB to over 2GB. This makes it
+unfeasible to download all of the possible images and store them into a disk
+image for distribution.
+
+Therefore for container deployments the only option is to deploy using
+upstream. This means that only upstream undercloud/overcloud images are pulled
+at deploy time, and the required containers are docker pulled during deployment
+into the undercloud. For upstream deployments the modified time of the
+RDO images are checked and cached locally, to refrain from unnecessary
+downloading of artifacts. Also, the optional '--no-fetch' argument may be
+provided at deploy time, to ignore pulling any new images, as long as previous
+artifacts are cached locally.
+
+Apex container deployment
+-------------------------
+
+For deploying containers with Apex, a new deploy setting is available,
+'containers'. When this flag is used, along with '--upstream' the following
+workflow occurs:
+
+ 1. The upstream RDO images for undercloud/overcloud are checked and
+ downloaded if necessary.
+ 2. The undercloud VM is installed and configured as a normal deployment.
+ 3. The overcloud prep image method is called which is modified now for
+ patches and containers. The method will now return a set of container
+ images which are going to be patched. These can be either due to a change
+ in OpenDaylight version for example, or patches included in the deploy
+ settings for the overcloud that include a python path.
+ 4. During the overcloud image prep, a new directory in the Apex tmp dir is
+ created called 'containers' which then includes sub-directories for each
+ docker image which is being patched (for example, 'containers/nova-api').
+ 5. A Dockerfile is created inside of the directory created in step 4, which
+ holds Dockerfile operations to rebuild the container with patches or any
+ required changes. Several container images could be used for different
+ services inside of an OS project. For example, there are different images
+ for each nova service (nova-api, nova-conductor, nova-compute). Therefore
+ a lookup is done to figure out all of the container images that a
+ hypothetically provided nova patch would apply to. Then a directory and
+ Dockerfile is created for each image. All of this is tar'ed and
+ compressed into an archive which will be copied to the undercloud.
+ 6. Next, the deployment is checked to see if a Ceph devices was provided in
+ Apex settings. If it is not, then a persistent loop device is created
+ in the overcloud image to serve as storage backend for Ceph OSDs. Apex
+ previously used a directory '/srv/data' to serve as the backend to the
+ OSDs, but that is no longer supported with Ceph-Ansible.
+ 7. The deployment command is then created, as usual, but with minor changes
+ to add docker.yaml and docker-ha.yaml files which are required to deploy
+ containers with OOO.
+ 8. Next a new playbook is executed, 'prepare_overcloud_containers.yaml',
+ which includes several steps:
+
+ a. The previously archived docker image patches are copied and unpacked
+ into /home/stack.
+ b. 'overcloud_containers' and 'sdn_containers' image files are then
+ prepared which are basically just yaml files which indicate which
+ docker images to pull and where to store them. Which in our case is a
+ local docker registry.
+ c. The docker images are then pulled and stored into the local registry.
+ The reason for using a local registry is to then have a static source
+ of images that do not change every time a user deploys. This allows
+ for more control and predictability in deployments.
+ d. Next, the images in the local registry are cross-checked against
+ the images that were previously collected as requiring patches. Any
+ image which then exists in the local registry and also requires changes
+ is then rebuilt by the docker build command, tagged with 'apex' and
+ then pushed into the local registry. This helps the user distinguish
+ which containers have been modified by Apex, in case any debugging is
+ needed in comparing upstream docker images with Apex modifications.
+ e. Then new OOO image files are created, to indicate to OOO that the
+ docker images to use for deployment are the ones in the local registry.
+ Also, the ones modified by Apex are modified with the 'apex' tag.
+ f. The relevant Ceph Daemon Docker image is pulled and pushed into the
+ local registry for deployment.
+ 9. At this point the OOO deployment command is initiated as in regular
+ Apex deployments. Each container will be started on the overcloud and
+ puppet executed in it to gather the configuration files in Step 1. This
+ leads to Step 1 taking longer than it used to in non-containerized
+ deployments. Following this step, the containers are then brought up in
+ their regular step order, while mounting the previously generated
+ configuration files.
diff --git a/docs/index.rst b/docs/index.rst
new file mode 100644
index 00000000..2fd1b4ab
--- /dev/null
+++ b/docs/index.rst
@@ -0,0 +1,23 @@
+.. _apex:
+
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. SPDX-License-Identifier CC-BY-4.0
+.. (c) Open Platform for NFV Project, Inc. and its contributors
+
+*********************************
+OPNFV Apex
+*********************************
+
+.. toctree::
+ :numbered:
+ :maxdepth: 3
+
+ release/scenarios/os-nosdn-nofeature-noha/index
+ release/scenarios/os-ovn-nofeature-ha/index
+ release/scenarios/os-nosdn-nofeature-ha/index
+ release/scenarios/os-odl-nofeature-noha/index
+ release/scenarios/os-odl-nofeature-ha/index
+ release/scenarios/k8s-nosdn-nofeature-noha/index
+ release/installation/index
+ release/release-notes/index
diff --git a/docs/release/installation/abstract.rst b/docs/release/installation/abstract.rst
index 534d8a89..2d55c154 100644
--- a/docs/release/installation/abstract.rst
+++ b/docs/release/installation/abstract.rst
@@ -1,16 +1,16 @@
Abstract
========
-This document describes how to install the Euphrates release of OPNFV when
+This document describes how to install the Gambia release of OPNFV when
using Apex as a deployment tool covering it's limitations, dependencies
and required system resources.
License
=======
-Euphrates release of OPNFV when using Apex as a deployment tool Docs
-(c) by Tim Rozet (Red Hat) and Dan Radez (Red Hat)
+Gambia release of OPNFV when using Apex as a deployment tool Docs
+(c) by Tim Rozet (Red Hat)
-Euphrates release of OPNFV when using Apex as a deployment tool Docs
+Gambia release of OPNFV when using Apex as a deployment tool Docs
are licensed under a Creative Commons Attribution 4.0 International License.
You should have received a copy of the license along with this.
If not, see <http://creativecommons.org/licenses/by/4.0/>.
diff --git a/docs/release/installation/architecture.rst b/docs/release/installation/architecture.rst
index 079c26d5..0bf2d3bc 100644
--- a/docs/release/installation/architecture.rst
+++ b/docs/release/installation/architecture.rst
@@ -16,8 +16,7 @@ deploy the overcloud.
The undercloud is the all-in-one installation of OpenStack that includes
baremetal provisioning capability. The undercloud will be deployed as a
-virtual machine on a Jump Host. This VM is pre-built and distributed as part
-of the Apex RPM.
+virtual machine on a Jump Host.
The overcloud is OPNFV. Configuration will be passed into undercloud and
the undercloud will use OpenStack's orchestration component, named Heat, to
@@ -127,26 +126,26 @@ issues per scenario. The following scenarios correspond to a supported
+-------------------------+-------------+---------------+
| os-nosdn-nofeature-noha | Apex | Yes |
+-------------------------+-------------+---------------+
-| os-nosdn-bar-ha | Barometer | Yes |
+| os-nosdn-bar-ha | Barometer | No |
+-------------------------+-------------+---------------+
-| os-nosdn-bar-noha | Barometer | Yes |
+| os-nosdn-bar-noha | Barometer | No |
+-------------------------+-------------+---------------+
| os-nosdn-calipso-noha | Calipso | Yes |
+-------------------------+-------------+---------------+
-| os-nosdn-ovs_dpdk-ha | Apex | Yes |
+| os-nosdn-ovs_dpdk-ha | Apex | No |
+-------------------------+-------------+---------------+
-| os-nosdn-ovs_dpdk-noha | Apex | Yes |
+| os-nosdn-ovs_dpdk-noha | Apex | No |
+-------------------------+-------------+---------------+
| os-nosdn-fdio-ha | FDS | No |
+-------------------------+-------------+---------------+
| os-nosdn-fdio-noha | FDS | No |
+-------------------------+-------------+---------------+
-| os-nosdn-kvm_ovs_dpdk-ha| KVM for NFV | Yes |
+| os-nosdn-kvm_ovs_dpdk-ha| KVM for NFV | No |
+-------------------------+-------------+---------------+
-| os-nosdn-kvm_ovs_dpdk | KVM for NFV | Yes |
+| os-nosdn-kvm_ovs_dpdk | KVM for NFV | No |
| -noha | | |
+-------------------------+-------------+---------------+
-| os-nosdn-performance-ha | Apex | Yes |
+| os-nosdn-performance-ha | Apex | No |
+-------------------------+-------------+---------------+
| os-odl-nofeature-ha | Apex | Yes |
+-------------------------+-------------+---------------+
@@ -160,7 +159,15 @@ issues per scenario. The following scenarios correspond to a supported
+-------------------------+-------------+---------------+
| os-odl-bgpvpn-noha | SDNVPN | Yes |
+-------------------------+-------------+---------------+
-| os-odl-sfc-ha | SFC | No |
+| os-odl-sriov-ha | Apex | No |
++-------------------------+-------------+---------------+
+| os-odl-sriov-noha | Apex | No |
++-------------------------+-------------+---------------+
+| os-odl-l2gw-ha | Apex | No |
++-------------------------+-------------+---------------+
+| os-odl-l2gw-noha | Apex | No |
++-------------------------+-------------+---------------+
+| os-odl-sfc-ha | SFC | Yes |
+-------------------------+-------------+---------------+
| os-odl-sfc-noha | SFC | Yes |
+-------------------------+-------------+---------------+
@@ -168,9 +175,9 @@ issues per scenario. The following scenarios correspond to a supported
+-------------------------+-------------+---------------+
| os-odl-csit-noha | Apex | No |
+-------------------------+-------------+---------------+
-| os-odl-fdio-ha | FDS | Yes |
+| os-odl-fdio-ha | FDS | No |
+-------------------------+-------------+---------------+
-| os-odl-fdio-noha | FDS | Yes |
+| os-odl-fdio-noha | FDS | No |
+-------------------------+-------------+---------------+
| os-odl-fdio_dvr-ha | FDS | No |
+-------------------------+-------------+---------------+
@@ -180,5 +187,7 @@ issues per scenario. The following scenarios correspond to a supported
+-------------------------+-------------+---------------+
| os-onos-sfc-ha | ONOSFW | No |
+-------------------------+-------------+---------------+
-| os-ovn-nofeature-noha | Apex | Yes |
+| os-ovn-nofeature-noha | Apex | No |
++-------------------------+-------------+---------------+
+| os-ovn-nofeature-ha | Apex | Yes |
+-------------------------+-------------+---------------+
diff --git a/docs/release/installation/baremetal.rst b/docs/release/installation/baremetal.rst
index 49997f89..efea0f86 100644
--- a/docs/release/installation/baremetal.rst
+++ b/docs/release/installation/baremetal.rst
@@ -46,11 +46,17 @@ and report the properties of it back to the undercloud node.
After introspection the undercloud will execute a Heat Stack Deployment to
continue node provisioning and configuration. The nodes will reboot and PXE
from the undercloud PXE server again to provision each node using Glance disk
-images provided by the undercloud. These disk images include all the necessary
-packages and configuration for an OPNFV deployment to execute. Once the disk
+images provided by the undercloud. These disk images include all the necessary
+packages and configuration for an OPNFV deployment to execute. Once the disk
images have been written to node's disks the nodes will boot locally and
-execute cloud-init which will execute the final node configuration. This
-configuration is largely completed by executing a puppet apply on each node.
+execute cloud-init which will execute the final node configuration. At this
+point in the deployment, the Heat Stack will complete, and Mistral will
+takeover the configuration of the nodes. Mistral handles calling Ansible which
+will connect to each node, and begin configuration. This configuration includes
+launching the desired OPNFV services as containers, and generating their
+configuration files. These configuration is largely completed by executing a
+puppet apply on each container to generate the config files, which are then
+stored on the overcloud host and mounted into the service container at runtime.
Installation Guide - Bare Metal Deployment
==========================================
@@ -62,11 +68,7 @@ Install Bare Metal Jump Host
----------------------------
1a. If your Jump Host does not have CentOS 7 already on it, or you would like
- to do a fresh install, then download the Apex bootable ISO from the OPNFV
- artifacts site <http://artifacts.opnfv.org/apex.html>. There have been
- isolated reports of problems with the ISO having trouble completing
- installation successfully. In the unexpected event the ISO does not work
- please workaround this by downloading the CentOS 7 DVD and performing a
+ to do a fresh install, then download the CentOS 7 DVD and perform a
"Virtualization Host" install. If you perform a "Minimal Install" or
install type other than "Virtualization Host" simply run
``sudo yum -y groupinstall "Virtualization Host"``
@@ -84,11 +86,11 @@ Install Bare Metal Jump Host
Replace /dev/sdX with the device assigned to your usb drive. Then select
the USB device as the boot media on your Jump Host
-2a. When not using the OPNFV Apex ISO, install these repos:
+2a. Install these repos:
- ``sudo yum install https://repos.fedorapeople.org/repos/openstack/openstack-pike/rdo-release-pike-1.noarch.rpm``
+ ``sudo yum install https://repos.fedorapeople.org/repos/openstack/openstack-queens/rdo-release-queens-1.noarch.rpm``
``sudo yum install epel-release``
- ``sudo curl -o /etc/yum/repos.d/opnfv-apex.repo http://artifacts.opnfv.org/apex/euphrates/opnfv-apex.repo``
+ ``sudo curl -o /etc/yum.repos.d/opnfv-apex.repo http://artifacts.opnfv.org/apex/gambia/opnfv-apex.repo``
The RDO Project release repository is needed to install OpenVSwitch, which
is a dependency of opnfv-apex. If you do not have external connectivity to
@@ -97,14 +99,12 @@ Install Bare Metal Jump Host
opnfv-apex repo hosts all of the Apex dependencies which will automatically
be installed when installing RPMs, but will be pre-installed with the ISO.
-2b. If you chose not to use the Apex ISO, then you must download and install
- the Apex RPMs to the Jump Host. Download the first 3 Apex RPMs from the
- OPNFV downloads page, under the TripleO RPMs
- ``https://www.opnfv.org/software/downloads``.
+2b. Download the first Apex RPMs from the OPNFV downloads page, under the
+ TripleO RPMs ``https://www.opnfv.org/software/downloads``. The dependent
+ RPMs will be automatically installed from the opnfv-apex repo in the
+ previous step.
The following RPMs are available for installation:
- - opnfv-apex - OpenDaylight, OVN, and nosdn support
- - opnfv-apex-undercloud - (reqed) Undercloud Image
- python34-opnfv-apex - (reqed) OPNFV Apex Python package
- python34-markupsafe - (reqed) Dependency of python34-opnfv-apex **
- python34-jinja2 - (reqed) Dependency of python34-opnfv-apex **
@@ -123,9 +123,9 @@ Install Bare Metal Jump Host
automatically installed by installing python34-opnfv-apex when the
opnfv-apex.repo has been previously downloaded to ``/etc/yum.repos.d/``.
- Install the three required RPMs (replace <rpm> with the actual downloaded
+ Install the required RPM (replace <rpm> with the actual downloaded
artifact):
- ``yum -y install <opnfv-apex.rpm> <opnfv-apex-undercloud> <python34-opnfv-apex>``
+ ``yum -y install <python34-opnfv-apex>``
3. After the operating system and the opnfv-apex RPMs are installed, login to
your Jump Host as root.
@@ -150,9 +150,13 @@ IPMI configuration information gathered in section
template to ``/etc/opnfv-apex/inventory.yaml``.
2. The nodes dictionary contains a definition block for each baremetal host
- that will be deployed. 1 or more compute nodes and 3 controller nodes are
- required. (The example file contains blocks for each of these already).
+ that will be deployed. 0 or more compute nodes and 1 or 3 controller nodes
+ are required (the example file contains blocks for each of these already).
It is optional at this point to add more compute nodes into the node list.
+ By specifying 0 compute nodes in the inventory file, the deployment will
+ automatically deploy "all-in-one" nodes which means the compute will run
+ along side the controller in a single overcloud node. Specifying 3 control
+ nodes will result in a highly-available service model.
3. Edit the following values for each node:
@@ -224,7 +228,7 @@ Follow the steps below to execute:
network_settings.yaml allows you to customize your networking topology.
Note it can also be useful to run the command with the ``--debug``
argument which will enable a root login on the overcloud nodes with
- password: 'opnfv-apex'. It is also useful in some cases to surround the
+ password: 'opnfvapex'. It is also useful in some cases to surround the
deploy command with ``nohup``. For example:
``nohup <deploy command> &``, will allow a deployment to continue even if
ssh access to the Jump Host is lost during deployment.
@@ -238,5 +242,5 @@ Follow the steps below to execute:
3. When the deployment is complete the undercloud IP and overcloud dashboard
url will be printed. OPNFV has now been deployed using Apex.
-.. _`Execution Requirements (Bare Metal Only)`: index.html#execution-requirements-bare-metal-only
-.. _`Network Requirements`: index.html#network-requirements
+.. _`Execution Requirements (Bare Metal Only)`: requirements.html#execution-requirements-bare-metal-only
+.. _`Network Requirements`: requirements.html#network-requirements
diff --git a/docs/release/installation/index.rst b/docs/release/installation/index.rst
index 8fb49464..443aef6a 100644
--- a/docs/release/installation/index.rst
+++ b/docs/release/installation/index.rst
@@ -16,13 +16,14 @@ Contents:
requirements.rst
baremetal.rst
virtual.rst
+ upstream.rst
verification.rst
troubleshooting.rst
references.rst
:Authors: Tim Rozet (trozet@redhat.com)
:Authors: Dan Radez (dradez@redhat.com)
-:Version: 5.0
+:Version: 7.1
Indices and tables
==================
diff --git a/docs/release/installation/introduction.rst b/docs/release/installation/introduction.rst
index bb220b7d..706e2265 100644
--- a/docs/release/installation/introduction.rst
+++ b/docs/release/installation/introduction.rst
@@ -1,8 +1,8 @@
Introduction
============
-This document describes the steps to install an OPNFV Euphrates reference
-platform, as defined by the Genesis Project using the Apex installer.
+This document describes the steps to install an OPNFV Gambia reference
+platform using the Apex installer.
The audience is assumed to have a good background in networking
and Linux administration.
@@ -12,31 +12,22 @@ Preface
Apex uses Triple-O from the RDO Project OpenStack distribution as a
provisioning tool. The Triple-O image based life cycle installation
-tool provisions an OPNFV Target System (3 controllers, 2 or more
+tool provisions an OPNFV Target System (1 or 3 controllers, 0 or more
compute nodes) with OPNFV specific configuration provided by the Apex
deployment tool chain.
The Apex deployment artifacts contain the necessary tools to deploy and
configure an OPNFV target system using the Apex deployment toolchain.
-These artifacts offer the choice of using the Apex bootable ISO
-(``opnfv-apex-euphrates.iso``) to both install CentOS 7 and the
-necessary materials to deploy or the Apex RPMs (``opnfv-apex*.rpm``),
-and their associated dependencies, which expects installation to a
-CentOS 7 libvirt enabled host. The RPM contains a collection of
-configuration files, prebuilt disk images, and the automatic deployment
-script (``opnfv-deploy``).
+The Apex artifact is a python package capable of automating the installation of
+TripleO and other OPNFV components.
-An OPNFV install requires a "Jump Host" in order to operate. The bootable
-ISO will allow you to install a customized CentOS 7 release to the Jump Host,
+An OPNFV install requires a "Jump Host" in order to operate. It is required
+to install CentOS 7 release to the Jump Host for traditional deployment,
which includes the required packages needed to run ``opnfv-deploy``.
If you already have a Jump Host with CentOS 7 installed, you may choose to
-skip the ISO step and simply install the (``opnfv-apex*.rpm``) RPMs. The RPMs
-are the same RPMs included in the ISO and include all the necessary disk
-images and configuration files to execute an OPNFV deployment. Either method
-will prepare a host to the same ready state for OPNFV deployment.
+skip the ISO step and simply install the (``python34-opnfv-apex*.rpm``) RPM.
``opnfv-deploy`` instantiates a Triple-O Undercloud VM server using libvirt
as its provider. This VM is then configured and used to provision the
-OPNFV target deployment (3 controllers, n compute nodes). These nodes can
-be either virtual or bare metal. This guide contains instructions for
-installing either method.
+OPNFV target deployment. These nodes can be either virtual or bare metal.
+This guide contains instructions for installing either method.
diff --git a/docs/release/installation/references.rst b/docs/release/installation/references.rst
index 249da226..b8b177d6 100644
--- a/docs/release/installation/references.rst
+++ b/docs/release/installation/references.rst
@@ -21,7 +21,7 @@ OPNFV
OpenStack
---------
-`OpenStack Newton Release artifacts <http://www.openstack.org/software/newton>`_
+`OpenStack Queens Release artifacts <http://www.openstack.org/software/queens>`_
`OpenStack documentation <http://docs.openstack.org>`_
@@ -30,7 +30,7 @@ OpenDaylight
Upstream OpenDaylight provides `a number of packaging and deployment options <https://wiki.opendaylight.org/view/Deployment>`_ meant for consumption by downstream projects like OPNFV.
-Currently, OPNFV Apex uses `OpenDaylight's Puppet module <https://github.com/dfarrell07/puppet-opendaylight>`_, which in turn depends on `OpenDaylight's RPM <http://cbs.centos.org/repos/nfv7-opendaylight-4-release/>`_.
+Currently, OPNFV Apex uses `OpenDaylight's Puppet module <https://git.opendaylight.org/gerrit/#/admin/projects/integration/packaging/puppet-opendaylight>`_, which in turn depends on `OpenDaylight's RPM <https://nexus.opendaylight.org/content/repositories/opendaylight-nitrogen-epel-7-x86_64-devel/>`_.
RDO Project
-----------
diff --git a/docs/release/installation/requirements.rst b/docs/release/installation/requirements.rst
index 8d441404..239db197 100644
--- a/docs/release/installation/requirements.rst
+++ b/docs/release/installation/requirements.rst
@@ -6,7 +6,7 @@ Jump Host Requirements
The Jump Host requirements are outlined below:
-1. CentOS 7 (from ISO or self-installed).
+1. CentOS 7 (self-installed) or Fedora (with Snapshot deployment).
2. Root access.
@@ -15,7 +15,7 @@ The Jump Host requirements are outlined below:
4. minimum 1 networks and maximum 5 networks, multiple NIC and/or VLAN
combinations are supported. This is virtualized for a VM deployment.
-5. The Euphrates Apex RPMs and their dependencies.
+5. The Gambia Apex RPM and its dependencies.
6. 16 GB of RAM for a bare metal deployment, 64 GB of RAM for a Virtual
Deployment.
diff --git a/docs/release/installation/troubleshooting.rst b/docs/release/installation/troubleshooting.rst
index 6a81bef6..f5b42089 100644
--- a/docs/release/installation/troubleshooting.rst
+++ b/docs/release/installation/troubleshooting.rst
@@ -132,3 +132,13 @@ some possible solutions or workarounds to get the process continued.
it will pass a different value for step each time. There is a total of
five steps. Some of these steps will not be executed depending on the
type of scenario that is being deployed.
+
+Reporting a Bug
+---------------
+
+Please report bugs via the `OPNFV Apex JIRA <https://wiki.opnfv.org/apex>`_
+page. You may now use the log collecting utility provided by Apex in order
+to gather all of the logs from the overcloud after a deployment failure. To
+do this please use the ``opnfv-pyutil --fetch-logs`` command. The log file
+location will be displayed at the end of executing the script. Please attach
+this log to the JIRA Bug.
diff --git a/docs/release/installation/upstream.rst b/docs/release/installation/upstream.rst
new file mode 100644
index 00000000..f18c4b11
--- /dev/null
+++ b/docs/release/installation/upstream.rst
@@ -0,0 +1,101 @@
+Deploying Directly from Upstream
+================================
+
+When installing the Undercloud and Overcloud, the disk images are now downloaded
+directly from upstream artifacts. Essentially this deployment pulls the latest
+RDO overcloud and undercloud artifacts at deploy time. This option is useful
+for being able to pull the latest Queens and other OPNFV components which have
+been promoted via a TripleO pipeline and deemed to be stable.
+
+Upstream Deployment Key Features
+--------------------------------
+
+In addition to being able to install newer versions of OpenStack, the upstream
+deployment option allows the use of a newer version of TripleO, which provides
+overcloud container support. Therefore when deploying from upstream with an
+OpenStack version newer than Pike, every OpenStack service (also OpenDaylight)
+will be running as a docker container. Furthermore, deploying upstream gives
+the user the flexibility of including any upstream OpenStack patches he/she
+may need by simply adding them into the deploy settings file. The patches will
+be applied live during deployment.
+
+Installation Guide - Upstream Deployment
+========================================
+
+This section goes step-by-step on how to correctly install and provision the
+OPNFV target system using a direct upstream deployment.
+
+Special Requirements for Upstream Deployments
+---------------------------------------------
+
+With upstream deployments it is required to have internet access. In addition,
+the upstream artifacts will be cached under the root partition of the jump
+host. It is required to at least have 10GB free space in the root partition
+in order to download and prepare the cached artifacts.
+
+Scenarios and Deploy Settings for Upstream Deployments
+------------------------------------------------------
+
+The deploy settings and scenarios included with the Gambia release of Apex will
+be supported as deemed by the `OPNFV Scenarios in Apex`_ section of this guide.
+Each of these scenarios has been tested by Apex over the Gambia release, and
+using those deploy settings will control which upstream artifacts are pulled
+at deploy time. By specifying different versions of OpenStack, ODL, or other
+components in the deploy settings, different upstream artifacts may be downloaded
+and are not considered to be supported. For deploying newer versions of components
+it is advised to use the master branch of OPNFV Apex as part of our continuous
+integration effort to support those components.
+
+Including Upstream Patches with Deployment
+------------------------------------------------------
+
+With upstream deployments it is possible to include any pending patch in
+OpenStack gerrit with the deployment. These patches are applicable to either
+the undercloud or the overcloud. This feature is useful in the case where
+a developer or user desires to pull in an unmerged patch for testing with a
+deployment. In order to use this feature, include the following in the deploy
+settings file, under "global_params" section:
+
+.. code-block:: yaml
+
+ patches:
+ undercloud:
+ - change-id: <gerrit change id>
+ project: openstack/<project name>
+ branch: <branch where commit is proposed>
+ overcloud:
+ - change-id: <gerrit change id>
+ project: openstack/<project name>
+ branch: <branch where commit is proposed>
+
+You may include as many patches as needed. If the patch is already merged or
+abandoned, then it will not be included in the deployment.
+
+Running ``opnfv-deploy``
+------------------------
+
+Deploying is similar to the typical method used for baremetal and virtual
+deployments with the addition of a few new arguments to the ``opnfv-deploy``
+command. The artifacts for each upstream deployment are only
+downloaded when a newer version is detected upstream. In order to explicitly
+disable downloading new artifacts from upstream if previous artifacts are
+already cached, please use the ``--no-fetch`` argument.
+
+Interacting with Containerized Overcloud
+----------------------------------------
+
+Upstream deployments will use a containerized overcloud. These containers are
+Docker images built by the Kolla project. The Containers themselves are run
+and controlled through Docker as root user. In order to access logs for each
+service, examine the '/var/log/containers' directory or use the `docker logs
+<container name>`. To see a list of services running on the node, use the
+``docker ps`` command. Each container uses host networking, which means that
+the networking of the overcloud node will act the same exact way as a
+traditional deployment. In order to attach to a container, use this command:
+``docker exec -it <container name/id> bin/bash``. This will login to the
+container with a bash shell. Note the containers do not use systemd, unlike
+the traditional deployment model and are instead started as the first process
+in the container. To restart a service, use the ``docker restart <container>``
+command.
+
+.. _`OPNFV Scenarios in Apex`: architecture.html#opnfv-scenarios-in-apex
diff --git a/docs/release/installation/virtual.rst b/docs/release/installation/virtual.rst
index 9336b8e7..a844d43f 100644
--- a/docs/release/installation/virtual.rst
+++ b/docs/release/installation/virtual.rst
@@ -3,20 +3,36 @@ Installation High-Level Overview - Virtual Deployment
Deploying virtually is an alternative deployment method to bare metal, where
only a single bare metal Jump Host server is required to execute deployment.
-In this deployment type, the Jump Host server will host the undercloud VM along
-with any number of OPNFV overcloud control/compute nodes. This deployment type
-is useful when physical resources are constrained, or there is a desire to
-deploy a temporary sandbox environment.
+This deployment type is useful when physical resources are constrained, or
+there is a desire to deploy a temporary sandbox environment.
+
+With virtual deployments, two deployment options are offered. The first is a
+standard deployment where the Jump Host server will host the undercloud VM along
+with any number of OPNFV overcloud control/compute nodes. This follows the same
+deployment workflow as baremetal, and can take between 1 to 2 hours to complete.
+
+The second option is to use snapshot deployments. Snapshots are saved disk images
+of previously deployed OPNFV upstream. These snapshots are promoted daily and contain
+and already deployed OPNFV environment that has passed a series of tests. The
+advantage of the snapshot is that it deploys in less than 10 minutes. Another
+major advantage is that the snapshots work on both CentOS and Fedora OS. Note:
+Fedora support is only tested via PIP installation at this time and not via RPM.
+
+Standard Deployment Overview
+----------------------------
The virtual deployment operates almost the same way as the bare metal
deployment with a few differences mainly related to power management.
``opnfv-deploy`` still deploys an undercloud VM. In addition to the undercloud
VM a collection of VMs (3 control nodes + 2 compute for an HA deployment or 1
-control node and 1 or more compute nodes for a Non-HA Deployment) will be
+control node and 0 or more compute nodes for a Non-HA Deployment) will be
defined for the target OPNFV deployment. All overcloud VMs are registered
with a Virtual BMC emulator which will service power management (IPMI)
commands. The overcloud VMs are still provisioned with the same disk images
-and configuration that baremetal would use.
+and configuration that baremetal would use. Using 0 nodes for a virtual
+deployment will automatically deploy "all-in-one" nodes which means the compute
+will run along side the controller in a single overcloud node. Specifying 3
+control nodes will result in a highly-available service model.
To Triple-O these nodes look like they have just built and registered the same
way as bare metal nodes, the main difference is the use of a libvirt driver for
@@ -24,6 +40,23 @@ the power management. Finally, the default network settings file will deploy wi
modification. Customizations are welcome but not needed if a generic set of
network settings are acceptable.
+Snapshot Deployment Overview
+----------------------------
+
+Snapshot deployments use the same ``opnfv-deploy`` CLI as standard deployments.
+The snapshot deployment will use a cache in order to store snapshots that are
+downloaded from the internet at deploy time. This caching avoids re-downloading
+the same artifact between deployments. The snapshot deployment recreates the same
+network and libvirt setup as would have been provisioned by the Standard
+deployment, with the exception that there is no undercloud VM. The snapshot
+deployment will give the location of the RC file to use in order to interact
+with the Overcloud directly from the jump host.
+
+Snapshots come in different topology flavors. One is able to deploy either HA
+(3 Control, 2 Computes, no-HA (1 Control, 2 Computes), or all-in-one
+(1 Control/Compute. The snapshot deployment itself is always done with the
+os-odl-nofeature-* scenario.
+
Installation Guide - Virtual Deployment
=======================================
@@ -54,8 +87,8 @@ Install Jump Host
Follow the instructions in the `Install Bare Metal Jump Host`_ section.
-Running ``opnfv-deploy``
-------------------------
+Running ``opnfv-deploy`` for Standard Deployment
+------------------------------------------------
You are now ready to deploy OPNFV!
``opnfv-deploy`` has virtual deployment capability that includes all of
@@ -67,7 +100,7 @@ environment will deploy with the following architecture:
- 1 undercloud VM
- The option of 3 control and 2 or more compute VMs (HA Deploy / default)
- or 1 control and 1 or more compute VM (Non-HA deploy / pass -n)
+ or 1 control and 0 or more compute VMs (Non-HA deploy)
- 1-5 networks: provisioning, private tenant networking, external, storage
and internal API. The API, storage and tenant networking networks can be
@@ -80,10 +113,11 @@ Follow the steps below to execute:
-n network_settings.yaml -d deploy_settings.yaml``
Note it can also be useful to run the command with the ``--debug``
argument which will enable a root login on the overcloud nodes with
- password: 'opnfv-apex'. It is also useful in some cases to surround the
+ password: 'opnfvapex'. It is also useful in some cases to surround the
deploy command with ``nohup``. For example:
``nohup <deploy command> &``, will allow a deployment to continue even if
- ssh access to the Jump Host is lost during deployment.
+ ssh access to the Jump Host is lost during deployment. By specifying
+ ``--virtual-computes 0``, the deployment will proceed as all-in-one.
2. It will take approximately 45 minutes to an hour to stand up undercloud,
define the target virtual machines, configure the deployment and execute
@@ -92,11 +126,48 @@ Follow the steps below to execute:
3. When the deployment is complete the IP for the undercloud and a url for the
OpenStack dashboard will be displayed
+Running ``opnfv-deploy`` for Snapshot Deployment
+------------------------------------------------
+
+Deploying snapshots requires enough disk space to cache snapshot archives, as well
+as store VM disk images per deployment. The snapshot cache directory can be
+configured at deploy time. Ensure a directory is used on a partition with enough
+space for about 20GB. Additionally, Apex will attempt to detect the default
+libvirt storage pool on the jump host. This is typically '/var/lib/libvirt/images'.
+On default CentOS installations, this path will resolve to the /root partition,
+which is only around 50GB. Therefore, ensure that the path for the default storage
+pool has enough space to hold the VM backing storage (approx 4GB per VM). Note,
+each Overcloud VM disk size is set to 40GB, however Libvirt grows these disks
+dynamically. Due to this only 4GB will show up at initial deployment, but the disk
+may grow from there up to 40GB.
+
+The new arguments to deploy snapshots include:
+
+ - `--snapshot`: Enables snapshot deployments
+ - `--snap-cache`: Indicates the directory to use for caching artifacts
+
+An example deployment command is:
+
+.. code-block::
+
+ opnfv-deploy -d ../config/deploy/os-odl-queens-noha.yaml --snapshot
+ --snap-cache /home/trozet/snap_cache --virtual-computes 0 --no-fetch
+
+In the above example, several of the Standard Deployment arguments are still
+used to deploy snapshots:
+
+ - `-d`: Deploy settings are used to determine OpenStack version of snapshots
+ to use as well as the topology
+ - `--virtual-computes` - When set to 0, it indicates to Apex to use an
+ all-in-one snapshot
+ - `--no-fetch` - Can be used to disable fetching latest snapshot artifact
+ from upstream and use the latest found in `--snap-cache`
+
Verifying the Setup - VMs
-------------------------
To verify the set you can follow the instructions in the `Verifying the Setup`_
section.
-.. _`Install Bare Metal Jump Host`: index.html#install-bare-metal-jump-host
-.. _`Verifying the Setup`: index.html#verifying-the-setup
+.. _`Install Bare Metal Jump Host`: baremetal.html#install-bare-metal-jump-host
+.. _`Verifying the Setup`: verification.html#verifying-the-setup
diff --git a/docs/release/release-notes/release-notes.rst b/docs/release/release-notes/release-notes.rst
index 4be2e651..159165de 100644
--- a/docs/release/release-notes/release-notes.rst
+++ b/docs/release/release-notes/release-notes.rst
@@ -1,11 +1,11 @@
-===========================================================================
-OPNFV Release Notes for the Euphrates release of OPNFV Apex deployment tool
-===========================================================================
+========================================================================
+OPNFV Release Notes for the Gambia release of OPNFV Apex deployment tool
+========================================================================
Abstract
========
-This document provides the release notes for Euphrates release with the Apex
+This document provides the release notes for Gambia release with the Apex
deployment toolchain.
License
@@ -17,7 +17,7 @@ All Apex and "common" entities are protected by the Apache 2.0 License
Important Notes
===============
-This is the OPNFV Euphrates release that implements the deploy stage of the
+This is the OPNFV Gambia release that implements the deploy stage of the
OPNFV CI pipeline via Apex.
Apex is based on RDO's Triple-O installation tool chain.
@@ -29,14 +29,14 @@ deploy OPNFV using Apex installer.
Summary
=======
-Euphrates release with the Apex deployment toolchain will establish an OPNFV
+Gambia release with the Apex deployment toolchain will establish an OPNFV
target system on a Pharos compliant lab infrastructure. The current definition
-of an OPNFV target system is OpenStack Newton combined with an SDN
+of an OPNFV target system is OpenStack Pike combined with an SDN
controller, such as OpenDaylight. The system is deployed with OpenStack High
Availability (HA) for most OpenStack services. SDN controllers are deployed
on every controller unless deploying with one the HA FD.IO scenarios. Ceph
storage is used as Cinder backend, and is the only supported storage for
-Euphrates. Ceph is setup as 3 OSDs and 3 Monitors, one OSD+Mon per Controller
+Gambia. Ceph is setup as 3 OSDs and 3 Monitors, one OSD+Mon per Controller
node in an HA setup. Apex also supports non-HA deployments, which deploys a
single controller and n number of compute nodes. Furthermore, Apex is
capable of deploying scenarios in a bare metal or virtual fashion. Virtual
@@ -46,7 +46,7 @@ simulate the a bare metal deployment.
- Documentation is built by Jenkins
- .iso image is built by Jenkins
- .rpm packages are built by Jenkins
-- Jenkins deploys a Euphrates release with the Apex deployment toolchain
+- Jenkins deploys a Gambia release with the Apex deployment toolchain
bare metal, which includes 3 control+network nodes, and 2 compute nodes.
Release Data
@@ -56,16 +56,16 @@ Release Data
| **Project** | apex |
| | |
+--------------------------------------+--------------------------------------+
-| **Repo/tag** | apex/euphrates.1.0 |
+| **Repo/tag** | opnfv-7.1.0 |
| | |
+--------------------------------------+--------------------------------------+
-| **Release designation** | 5.0.0 |
+| **Release designation** | 7.1.0 |
| | |
+--------------------------------------+--------------------------------------+
-| **Release date** | 2017-10-20 |
+| **Release date** | 2018-12-14 |
| | |
+--------------------------------------+--------------------------------------+
-| **Purpose of the delivery** | OPNFV Euphrates release |
+| **Purpose of the delivery** | OPNFV Gambia release |
| | |
+--------------------------------------+--------------------------------------+
@@ -74,159 +74,44 @@ Version change
Module version changes
~~~~~~~~~~~~~~~~~~~~~~
-This is the first tracked version of the Euphrates release with the Apex
-deployment toolchain. It is based on following upstream versions:
+This is the first tracked version of the Gambia release with the Apex
+deployment toolchain. It is based on following upstream versions:
-- OpenStack (Newton release)
+- OpenStack (Queens release)
-- OpenDaylight (Carbon/Nitrogen(master) releases)
+- OpenDaylight (Oxygen releases)
- CentOS 7
Document Version Changes
~~~~~~~~~~~~~~~~~~~~~~~~
-This is the first tracked version of Euphrates release with the Apex
+This is the first tracked version of Gambia release with the Apex
deployment toolchain.
The following documentation is provided with this release:
-- OPNFV Installation instructions for the Euphrates release with the Apex
+- OPNFV Installation instructions for the Gambia release with the Apex
deployment toolchain - ver. 1.0.0
-- OPNFV Release Notes for the Euphrates release with the Apex deployment
+- OPNFV Release Notes for the Gambia release with the Apex deployment
toolchain - ver. 1.0.0 (this document)
-Feature Additions
-~~~~~~~~~~~~~~~~~
-
-+--------------------------------------+--------------------------------------+
-| **JIRA REFERENCE** | **SLOGAN** |
-| | |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-129 | Adds OVN SDN Controller support |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-299 | Migrate to OpenStack Newton |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-150 | Allow for multiple external networks |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-301 | Support Networking ODL v2 Driver |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-300 | Support OpenDaylight new netvirt |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-302 | Upstream Tacker and Congress |
-| | support |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-106 | Enable CPU pinning for Overcloud |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-390 | OpenDaylight HA as default for HA |
-| | scenarios |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-357 | Include Quagga in SDNVPN scenario |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-262 | Migrate to new network settings |
-| | format |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-128 | Adds Real Time KVM support |
-+--------------------------------------+--------------------------------------+
-
-Bug Corrections
-~~~~~~~~~~~~~~~
-
-**JIRA TICKETS:**
-
-+--------------------------------------+--------------------------------------+
-| **JIRA REFERENCE** | **SLOGAN** |
-| | |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-208 | Need ability to specify which nic |
-| | to place vlan on |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-215 | Keystone services not configured and |
-| | error is silently ignored on VLAN |
-| | Deployments |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-221 | NoHA virtual deployments should use 1|
-| | compute |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-276 | ODL HA is unstable and crashes |
-| | frequently |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-287 | Name mismatch for package openstack- |
-| | congress during overcloud build |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-339 | Enable pinning for OVS DPDK |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-345 | Horizon and cloud failures due to |
-| | running out of file descriptors for |
-| | MariaDB in noha deployments |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-370 | ISO builds fail in Danube |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-372 | Specifying same NIC for storage and |
-| | private network but different VLANs |
-| | results in duplicate NIC error |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-373 | Running smoke tests should install |
-| | Ansible onto jump host |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-374 | Ceph accidentally disabled by default|
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-378 | OVS 2.5.90 NSH build fails |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-382 | yum update on undercloud breaks |
-| | deployments |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-386 | Fix os-net-config to match upstream |
-| | stable/newton |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-398 | Tacker uses "RegionOne" instead of |
-| | "regionOne" |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-399 | hugepages are not enabled when |
-| | configured in deploy settings |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-403 | Remove Quagga from build process and |
-| | cache to artifacts |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-406 | ODL FDIO neutron patches to all |
-| | scenarios |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-407 | VPP service does not start upon |
-| | reboot |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-408 | Quagga's bgpd cannot start due to |
-| | permissions |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-421 | Update odl/hc/vpp versions for odl_l3|
-| | noha |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-426 | Missing virtual-computes arg in help |
-| | output for deploy |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-427 | Neutron openvswitch agent starts when|
-| | openvswitch is restarted |
-+--------------------------------------+--------------------------------------+
-
Deliverables
------------
Software Deliverables
~~~~~~~~~~~~~~~~~~~~~
-- Apex .iso file
-- Apex release .rpm (opnfv-apex-release)
-- Apex overcloud .rpm (opnfv-apex) - For nosdn and OpenDaylight Scenarios
-- Apex undercloud .rpm (opnfv-apex-undercloud)
-- Apex common .rpm (opnfv-apex-common)
-- build.py - Builds the above artifacts
+- Apex .rpm (python34-opnfv-apex)
+- build.py - Builds the above artifact
- opnfv-deploy - Automatically deploys Target OPNFV System
- opnfv-clean - Automatically resets a Target OPNFV Deployment
- opnfv-util - Utility to connect to or debug Overcloud nodes + OpenDaylight
Documentation Deliverables
~~~~~~~~~~~~~~~~~~~~~~~~~~
-- OPNFV Installation instructions for the Euphrates release with the Apex
- deployment toolchain - ver. 5.0
-- OPNFV Release Notes for the Euphrates release with the Apex deployment
- toolchain - ver. 5.0 (this document)
+- OPNFV Installation instructions for the Gambia release with the Apex
+ deployment toolchain - ver. 7.1
+- OPNFV Release Notes for the Gambia release with the Apex deployment
+ toolchain - ver. 7.1 (this document)
Known Limitations, Issues and Workarounds
=========================================
@@ -253,18 +138,12 @@ Known Issues
| **JIRA REFERENCE** | **SLOGAN** |
| | |
+--------------------------------------+--------------------------------------+
-| JIRA: APEX-138 | Unclear error message when interface |
-| | set to dhcp |
-+--------------------------------------+--------------------------------------+
| JIRA: APEX-280 | Deleted network not cleaned up |
| | on controller |
+--------------------------------------+--------------------------------------+
| JIRA: APEX-295 | Missing support for VLAN tenant |
| | networks |
+--------------------------------------+--------------------------------------+
-| JIRA: APEX-352 | Package "openstack-utils" is |
-| | missing from overcloud |
-+--------------------------------------+--------------------------------------+
| JIRA: APEX-368 | Ceilometer stores samples and events |
| | forever |
+--------------------------------------+--------------------------------------+
@@ -277,20 +156,8 @@ Known Issues
| JIRA: APEX-389 | Compute kernel parameters are used |
| | for all nodes |
+--------------------------------------+--------------------------------------+
-| JIRA: APEX-410 | Need to limit number of workers per |
-| | OpenStack service for baremetal |
-| | deployments |
-+--------------------------------------+--------------------------------------+
| JIRA: APEX-412 | Install failures with UEFI |
+--------------------------------------+--------------------------------------+
-| JIRA: APEX-417 | Missing OVS 2.6 + NSH support |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-419 | opnfv-clean sometimes leaves admin |
-| | and public network down |
-+--------------------------------------+--------------------------------------+
-| JIRA: APEX-425 | Need to tweak performance settings |
-| | virtual DPDK scenarios |
-+--------------------------------------+--------------------------------------+
Workarounds
@@ -308,10 +175,10 @@ Apex installer.
References
==========
-For more information on the OPNFV Euphrates release, please see:
+For more information on the OPNFV Gambia release, please see:
-http://wiki.opnfv.org/releases/Euphrates
+http://wiki.opnfv.org/releases/Gambia
:Authors: Tim Rozet (trozet@redhat.com)
:Authors: Dan Radez (dradez@redhat.com)
-:Version: 5.0
+:Version: 7.1
diff --git a/docs/release/scenarios/os-odl-csit-noha/index.rst b/docs/release/scenarios/k8s-nosdn-nofeature-noha/index.rst
index 51cf903f..6efd74c2 100644
--- a/docs/release/scenarios/os-odl-csit-noha/index.rst
+++ b/docs/release/scenarios/k8s-nosdn-nofeature-noha/index.rst
@@ -1,15 +1,15 @@
-.. _os-odl-csit-noha:
+.. _k8s-nosdn-nofeature-noha:
.. This work is licensed under a Creative Commons Attribution 4.0 International Licence.
.. http://creativecommons.org/licenses/by/4.0
.. (c) <optionally add copywriters name>
-=========================================
-os-odl-csit-noha overview and description
-=========================================
+=================================================
+k8s-nosdn-nofeature-noha overview and description
+=================================================
.. toctree::
:numbered:
:maxdepth: 4
- os-odl-csit-noha.rst
+ k8s-nosdn-nofeature-noha.rst
diff --git a/docs/release/scenarios/k8s-nosdn-nofeature-noha/k8s-nosdn-nofeature-noha.rst b/docs/release/scenarios/k8s-nosdn-nofeature-noha/k8s-nosdn-nofeature-noha.rst
new file mode 100644
index 00000000..7ff21b73
--- /dev/null
+++ b/docs/release/scenarios/k8s-nosdn-nofeature-noha/k8s-nosdn-nofeature-noha.rst
@@ -0,0 +1,46 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) <optionally add copywriters name>
+
+This document provides scenario level details for Gambia 1.1 of
+Kubernetes deployment with no SDN controller, no extra features
+and no High Availability enabled. Note this scenario is *not* supported
+for Gambia initial release and will be supported in a later service release
+of Gambia.
+
+============
+Introduction
+============
+
+This scenario is used primarily to validate and deploy a Kubernetes
+deployment without any NFV features or SDN controller enabled.
+
+Scenario components and composition
+===================================
+
+This scenario deploys a Kubernetes cluster on bare metal or virtual
+environment with a single master node. TripleO is used to bootstrap
+all the nodes and set up basic services like SSH. An undercloud VM
+used similarly to Openstack deployments, however no Openstack services
+(Nova, Neutron, Keystone, etc) will be deployed to the nodes. After
+TripleO successfully executes all the bootstrapping tasks, Kubespray
+is run (using ansible) to deploy Kubernetes cluster on the nodes.
+
+
+Scenario usage overview
+=======================
+
+Simply deploy this scenario by using the k8s-nosdn-nofeature-noha.yaml deploy
+settings file.
+
+Limitations, Issues and Workarounds
+===================================
+
+None
+
+References
+==========
+
+For more information on the OPNFV Gambia release, please visit
+http://www.opnfv.org/gambia
+
diff --git a/docs/release/scenarios/os-nosdn-nofeature-ha/os-nosdn-nofeature-ha.rst b/docs/release/scenarios/os-nosdn-nofeature-ha/os-nosdn-nofeature-ha.rst
index 0aa72ba0..5f2839c1 100644
--- a/docs/release/scenarios/os-nosdn-nofeature-ha/os-nosdn-nofeature-ha.rst
+++ b/docs/release/scenarios/os-nosdn-nofeature-ha/os-nosdn-nofeature-ha.rst
@@ -2,14 +2,14 @@
.. http://creativecommons.org/licenses/by/4.0
.. (c) <optionally add copywriters name>
-This document provides scenario level details for Euphrates 1.0 of
+This document provides scenario level details for Gambia 1.1 of
deployment with no SDN controller and no extra features enabled.
============
Introduction
============
-This scenario is used primarily to validate and deploy a Newton OpenStack
+This scenario is used primarily to validate and deploy a Queens OpenStack
deployment without any NFV features or SDN controller enabled.
Scenario components and composition
@@ -38,6 +38,6 @@ None
References
==========
-For more information on the OPNFV Euphrates release, please visit
-http://www.opnfv.org/euphrates
+For more information on the OPNFV Gambia release, please visit
+http://www.opnfv.org/gambia
diff --git a/docs/release/scenarios/os-nosdn-nofeature-noha/os-nosdn-nofeature-noha.rst b/docs/release/scenarios/os-nosdn-nofeature-noha/os-nosdn-nofeature-noha.rst
index 6889f7d9..e5d4c989 100644
--- a/docs/release/scenarios/os-nosdn-nofeature-noha/os-nosdn-nofeature-noha.rst
+++ b/docs/release/scenarios/os-nosdn-nofeature-noha/os-nosdn-nofeature-noha.rst
@@ -2,14 +2,14 @@
.. http://creativecommons.org/licenses/by/4.0
.. (c) <optionally add copywriters name>
-This document provides scenario level details for Euphrates 1.0 of
+This document provides scenario level details for Gambia 1.1 of
deployment with no SDN controller and no extra features enabled.
============
Introduction
============
-This scenario is used primarily to validate and deploy a Newton OpenStack
+This scenario is used primarily to validate and deploy a Queens OpenStack
deployment without any NFV features or SDN controller enabled.
Scenario components and composition
@@ -35,6 +35,6 @@ None
References
==========
-For more information on the OPNFV Euphrates release, please visit
-http://www.opnfv.org/euphrates
+For more information on the OPNFV Gambia release, please visit
+http://www.opnfv.org/gambia
diff --git a/docs/release/scenarios/os-nosdn-ovs_dpdk-ha/index.rst b/docs/release/scenarios/os-nosdn-ovs_dpdk-ha/index.rst
deleted file mode 100644
index febf16c1..00000000
--- a/docs/release/scenarios/os-nosdn-ovs_dpdk-ha/index.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-.. _os-nosdn-ovs_dpdk-ha:
-
-.. OPNFV - Open Platform for Network Function Virtualization
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-**********************************************************************************
-User Space Accelerated OVS scenario: os-nosdn-ovs_dpdk-ha Overview and Description
-**********************************************************************************
-
-.. toctree::
- :numbered:
- :maxdepth: 4
-
- os-nosdn-ovs_dpdk-ha.rst
diff --git a/docs/release/scenarios/os-nosdn-ovs_dpdk-ha/os-nosdn-ovs_dpdk-ha.rst b/docs/release/scenarios/os-nosdn-ovs_dpdk-ha/os-nosdn-ovs_dpdk-ha.rst
deleted file mode 100644
index 39083850..00000000
--- a/docs/release/scenarios/os-nosdn-ovs_dpdk-ha/os-nosdn-ovs_dpdk-ha.rst
+++ /dev/null
@@ -1,87 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) <optionally add copywriters name>
-
-This document provides scenario level details for Euphrates 1.0 of
-deployment with no SDN controller and DPDK enabled Open vSwitch.
-
-Introduction
-============
-
-NFV and virtualized high performance applications, such as video processing,
-require Open vSwitch to be accelerated with a fast data plane solution that
-provides both carrier grade forwarding performance, scalability and open
-extensibility.
-
-A key component of any NFV solution is the virtual forwarder, which should
-consist of soft switch that includes an accelerated data plane component. For
-this, any virtual switch should make use of hardware accelerators and optimized
-cache operation to be run in user space.
-
-Scenario components and composition
-===================================
-
-This scenario enables high performance data plan acceleration by utilizing
-DPDK enabled Open vSwitch (OVS). This allows packet switching to be isolated
-to particular hardware resources (CPUs, huge page memory allocation) without
-kernel interrupt or context switching on the data plane CPU.
-
-Tenant networking leverages Open vSwitch accelerated with a fast user space
-data path such. OVS with the Linux kernel module data path is used for all
-other connectivity, such as connectivity to the external network (i.e. br-ex)
-is performed via non-accelerated OVS.
-
-Scenario Configuration
-======================
-
-Due to the performance optimization done by this scenario, it is recommended to
-set some performance settings in the deploy settings in order to ensure maximum
-performance. This is not necessary unless doing a baremetal deployment. Note,
-this scenario requires taking the NIC mapped to the tenant network on the
-compute node and binding it to DPDK. This means it will no longer be
-accessible via the kernel. Ensure the NIC that is mapped to the Compute
-Tenant network supports DPDK.
-
-Make a copy of the deploy settings file, os-nosdn-ovs_dpdk-ha.yaml. Under the
-kernel options for Compute, edit as follows:
- - hugepagesz: the size of hugepages as an integer, followed by unit M
- (megabyte) or G (gigabyte).
- - hugepages: number of hugepages of hugepagesz size. Huge page memory will be
- used for OVS as well as each nova instance spawned. It is a good idea to
- allocate the maximum number possible, while still leaving some non-huge page
- memory available to other processes (nova-compute, etc).
- - isolcpus: comma-separated list of CPUs to isolate from the kernel. Isolated
- CPUs will be used for pinning OVS and libvirtd to.
-
-Under the performance->Compute->ovs section, edit as follows:
- - socket_memory: the amount of huge page memory in MB to allocate to allocate
- per socket to OVS as a comma-separated list. It is best to allocate the
- memory to the socket which is closest to the PCI-Express bus of the NIC
- to be used with OVS DPDK for tenant traffic.
- - pmd_cores: comma-separated list of cores to pin to the poll-mode driver in
- OVS. OVS DPDK will spawn TX/RX PMD threads to handle forwarding packets.
- This setting identifies which cores to pin these threads to. For best
- performance, dedicate at least 2 isolated cores on the same NUMA node where
- socket_memory was assigned.
- - dpdk_cores: comma-separated list of cores to pin OVS lcore threads to.
- These threads do validation and control handling and it may not have any
- impact on performance to include this setting.
-
-Under the performance->Compute section. Add a nova subsection and include
-the following setting:
- - libvirtpin: comma-separated list of CPUs to pin libvirt (nova) instances to.
- For best results, set this to be one or more CPUs that are located on the
- same NUMA node where OVS socket memory was dedicated.
-
-Now deploy with the modified deploy settings file.
-
-Limitations, Issues and Workarounds
-===================================
-
-* _APEX-415 br-phy dpdk interfaces are not brought up by os-net-config
-
-References
-==========
-
-For more information on the OPNFV Euphrates release, please visit
-http://www.opnfv.org/euphrates
diff --git a/docs/release/scenarios/os-nosdn-ovs_dpdk-noha/index.rst b/docs/release/scenarios/os-nosdn-ovs_dpdk-noha/index.rst
deleted file mode 100644
index 699f3915..00000000
--- a/docs/release/scenarios/os-nosdn-ovs_dpdk-noha/index.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-.. _os-nosdn-ovs_dpdk-noha:
-
-.. OPNFV - Open Platform for Network Function Virtualization
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-************************************************************************************
-User Space Accelerated OVS scenario: os-nosdn-ovs_dpdk-noha Overview and Description
-************************************************************************************
-
-.. toctree::
- :numbered:
- :maxdepth: 4
-
- os-nosdn-ovs_dpdk-noha.rst
diff --git a/docs/release/scenarios/os-nosdn-ovs_dpdk-noha/os-nosdn-ovs_dpdk-noha.rst b/docs/release/scenarios/os-nosdn-ovs_dpdk-noha/os-nosdn-ovs_dpdk-noha.rst
deleted file mode 100644
index be0f37d3..00000000
--- a/docs/release/scenarios/os-nosdn-ovs_dpdk-noha/os-nosdn-ovs_dpdk-noha.rst
+++ /dev/null
@@ -1,87 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) <optionally add copywriters name>
-
-This document provides scenario level details for Euphrates 1.0 of
-deployment with no SDN controller and DPDK enabled Open vSwitch.
-
-Introduction
-============
-
-NFV and virtualized high performance applications, such as video processing,
-require Open vSwitch to be accelerated with a fast data plane solution that
-provides both carrier grade forwarding performance, scalability and open
-extensibility.
-
-A key component of any NFV solution is the virtual forwarder, which should
-consist of soft switch that includes an accelerated data plane component. For
-this, any virtual switch should make use of hardware accelerators and optimized
-cache operation to be run in user space.
-
-Scenario components and composition
-===================================
-
-This scenario enables high performance data plan acceleration by utilizing
-DPDK enabled Open vSwitch (OVS). This allows packet switching to be isolated
-to particular hardware resources (CPUs, huge page memory allocation) without
-kernel interrupt or context switching on the data plane CPU.
-
-Tenant networking leverages Open vSwitch accelerated with a fast user space
-data path such. OVS with the Linux kernel module data path is used for all
-other connectivity, such as connectivity to the external network (i.e. br-ex)
-is performed via non-accelerated OVS.
-
-Scenario Configuration
-======================
-
-Due to the performance optimization done by this scenario, it is recommended to
-set some performance settings in the deploy settings in order to ensure maximum
-performance. This is not necessary unless doing a baremetal deployment. Note,
-this scenario requires taking the NIC mapped to the tenant network on the
-compute node and binding it to DPDK. This means it will no longer be
-accessible via the kernel. Ensure the NIC that is mapped to the Compute
-Tenant network supports DPDK.
-
-Make a copy of the deploy settings file, os-nosdn-ovs_dpdk-noha.yaml. Under
-the kernel options for Compute, edit as follows:
- - hugepagesz: the size of hugepages as an integer, followed by unit M
- (megabyte) or G (gigabyte).
- - hugepages: number of hugepages of hugepagesz size. Huge page memory will be
- used for OVS as well as each nova instance spawned. It is a good idea to
- allocate the maximum number possible, while still leaving some non-huge page
- memory available to other processes (nova-compute, etc).
- - isolcpus: comma-separated list of CPUs to isolate from the kernel. Isolated
- CPUs will be used for pinning OVS and libvirtd to.
-
-Under the performance->Compute->ovs section, edit as follows:
- - socket_memory: the amount of huge page memory in MB to allocate to allocate
- per socket to OVS as a comma-separated list. It is best to allocate the
- memory to the socket which is closest to the PCI-Express bus of the NIC
- to be used with OVS DPDK for tenant traffic.
- - pmd_cores: comma-separated list of cores to pin to the poll-mode driver in
- OVS. OVS DPDK will spawn TX/RX PMD threads to handle forwarding packets.
- This setting identifies which cores to pin these threads to. For best
- performance, dedicate at least 2 isolated cores on the same NUMA node where
- socket_memory was assigned.
- - dpdk_cores: comma-separated list of cores to pin OVS lcore threads to.
- These threads do validation and control handling and it may not have any
- impact on performance to include this setting.
-
-Under the performance->Compute section. Add a nova subsection and include
-the following setting:
- - libvirtpin: comma-separated list of CPUs to pin libvirt (nova) instances to.
- For best results, set this to be one or more CPUs that are located on the
- same NUMA node where OVS socket memory was dedicated.
-
-Now deploy with the modified deploy settings file.
-
-Limitations, Issues and Workarounds
-===================================
-
-* _APEX-415 br-phy dpdk interfaces are not brought up by os-net-config
-
-References
-==========
-
-For more information on the OPNFV Euphrates release, please visit
-http://www.opnfv.org/euphrates
diff --git a/docs/release/scenarios/os-nosdn-performance-ha/index.rst b/docs/release/scenarios/os-nosdn-performance-ha/index.rst
deleted file mode 100644
index e0dbca7f..00000000
--- a/docs/release/scenarios/os-nosdn-performance-ha/index.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-.. _os-nosdn-performance-ha:
-
-.. This work is licensed under a Creative Commons Attribution 4.0 International Licence.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) <optionally add copywriters name>
-
-================================================
-os-nosdn-performance-ha overview and description
-================================================
-
-.. toctree::
- :numbered:
- :maxdepth: 4
-
- os-nosdn-performance-ha.rst
diff --git a/docs/release/scenarios/os-nosdn-performance-ha/os-nosdn-performance-ha.rst b/docs/release/scenarios/os-nosdn-performance-ha/os-nosdn-performance-ha.rst
deleted file mode 100644
index 6437ce1b..00000000
--- a/docs/release/scenarios/os-nosdn-performance-ha/os-nosdn-performance-ha.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) <optionally add copywriters name>
-
-This document provides scenario level details for Euphrates 1.0 of
-deployment with no SDN controller and performance options enabled.
-
-============
-Introduction
-============
-
-This scenario is used primarily to demonstrate the performance settings and
-capabilities in Apex. This scenario will deploy a Newton OpenStack
-deployment without any NFV features or SDN controller enabled.
-
-Scenario components and composition
-===================================
-
-This scenario is composed of common OpenStack services enabled by default,
-including Nova, Neutron, Glance, Cinder, Keystone, Horizon. Optionally and
-by default, Tacker and Congress services are also enabled. Ceph is used as
-the backend storage to Cinder on all deployed nodes.
-
-All services are in HA, meaning that there are multiple cloned instances of
-each service, and they are balanced by HA Proxy using a Virtual IP Address
-per service.
-
-The main purpose of this scenario is to serve as an example to show how to
-set optional performance settings in an Apex deploy settings file.
-
-Scenario usage overview
-=======================
-
-The performance options listed in os-nosdn-performance-ha.yaml give an example
-of the different options a user can set in any deploy settings file. Some
-of these performance options are actually required for other scenarios which
-rely on DPDK. Options under the nova section like 'libvirtpin' allow a
-user to choose which core to pin nova instances to on the overcloud compute
-node. Options under 'kernel' allow a user to set kernel specific arguments
-at boot, which include options like hugepages, isolcpus, enabling iommu, etc.
-
-
-Limitations, Issues and Workarounds
-===================================
-
-* `APEX-389 <https://jira.opnfv.org/browse/APEX-389>`_:
- Compute kernel parameters are applied to all nodes
-
-References
-==========
-
-For more information on the OPNFV Euphrates release, please visit
-http://www.opnfv.org/euphrates
-
diff --git a/docs/release/scenarios/os-odl-csit-noha/os-odl-csit-noha.rst b/docs/release/scenarios/os-odl-csit-noha/os-odl-csit-noha.rst
deleted file mode 100644
index b75c4355..00000000
--- a/docs/release/scenarios/os-odl-csit-noha/os-odl-csit-noha.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) <optionally add copywriters name>
-
-This document provides scenario level details for Euphrates 1.0 of
-deployment with the OpenDaylight SDN controller and only CSIT relevant
-features enabled.
-
-============
-Introduction
-============
-
-This scenario is used primarily to validate and deploy a minimum Newton
-OpenStack + OpenDaylight deployment with only required OpenStack services.
-
-Scenario components and composition
-===================================
-
-This scenario is composed of only required OpenStack services enabled by
-default, including Nova, Neutron, Glance, and Keystone. OpenDaylight is also
-enabled. File storage is used as the backend to Glance.
-
-The purpose of this file is to deploy a minimum OpenStack setup that will
-still be able to exercise OpenDaylight. The use case for this scenario is
-to be able to test OpenDaylight quickly in an environment with low
-CPU/Memory requirements.
-
-
-Scenario usage overview
-=======================
-
-Simply deploy this scenario by using the os-odl-csit-noha.yaml deploy
-settings file.
-
-Limitations, Issues and Workarounds
-===================================
-
-* `APEX-112 <https://jira.opnfv.org/browse/APEX-112>`_:
- ODL routes local subnet traffic to GW
-* `APEX-149 <https://jira.opnfv.org/browse/APEX-149>`_:
- OpenFlow rules are populated very slowly
-* `APEX-268 <https://jira.opnfv.org/browse/APEX-268>`_:
- VMs with multiple floating IPs can only access via first NIC
-* `APEX-384 <https://jira.opnfv.org/browse/APEX-384>`_:
- Not including odl_version in deploy settings causes error
-* `APEX-422 <https://jira.opnfv.org/browse/APEX-422>`_:
- First nova instance DHCP request fails
-
-References
-==========
-
-For more information on the OPNFV Euphrates release, please visit
-http://www.opnfv.org/euphrates
-
diff --git a/docs/release/scenarios/os-odl-nofeature-ha/os-odl-nofeature-ha.rst b/docs/release/scenarios/os-odl-nofeature-ha/os-odl-nofeature-ha.rst
index e5561a79..111ba6f7 100644
--- a/docs/release/scenarios/os-odl-nofeature-ha/os-odl-nofeature-ha.rst
+++ b/docs/release/scenarios/os-odl-nofeature-ha/os-odl-nofeature-ha.rst
@@ -2,14 +2,14 @@
.. http://creativecommons.org/licenses/by/4.0
.. (c) <optionally add copywriters name>
-This document provides scenario level details for Euphrates 1.0 of
+This document provides scenario level details for Gambia 1.1 of
deployment with the OpenDaylight SDN controller and no extra features enabled.
============
Introduction
============
-This scenario is used primarily to validate and deploy a Newton OpenStack
+This scenario is used primarily to validate and deploy a Queens OpenStack
deployment with OpenDaylight, and without any NFV features enabled.
Scenario components and composition
@@ -38,20 +38,12 @@ settings file.
Limitations, Issues and Workarounds
===================================
-* `APEX-112 <https://jira.opnfv.org/browse/APEX-112>`_:
- ODL routes local subnet traffic to GW
-* `APEX-149 <https://jira.opnfv.org/browse/APEX-149>`_:
- OpenFlow rules are populated very slowly
* `APEX-268 <https://jira.opnfv.org/browse/APEX-268>`_:
VMs with multiple floating IPs can only access via first NIC
-* `APEX-384 <https://jira.opnfv.org/browse/APEX-384>`_:
- Not including odl_version in deploy settings causes error
-* `APEX-422 <https://jira.opnfv.org/browse/APEX-422>`_:
- First nova instance DHCP request fails
References
==========
-For more information on the OPNFV Euphrates release, please visit
-http://www.opnfv.org/euphrates
+For more information on the OPNFV Gambia release, please visit
+http://www.opnfv.org/gambia
diff --git a/docs/release/scenarios/os-odl-nofeature-noha/os-odl-nofeature-noha.rst b/docs/release/scenarios/os-odl-nofeature-noha/os-odl-nofeature-noha.rst
index f04e7c02..3e26d672 100644
--- a/docs/release/scenarios/os-odl-nofeature-noha/os-odl-nofeature-noha.rst
+++ b/docs/release/scenarios/os-odl-nofeature-noha/os-odl-nofeature-noha.rst
@@ -2,14 +2,14 @@
.. http://creativecommons.org/licenses/by/4.0
.. (c) <optionally add copywriters name>
-This document provides scenario level details for Euphrates 1.0 of
+This document provides scenario level details for Gambia 1.1 of
deployment with the OpenDaylight SDN controller and no extra features enabled.
============
Introduction
============
-This scenario is used primarily to validate and deploy a Newton OpenStack
+This scenario is used primarily to validate and deploy a Queens OpenStack
deployment with OpenDaylight, and without any NFV features enabled.
Scenario components and composition
@@ -32,20 +32,12 @@ settings file.
Limitations, Issues and Workarounds
===================================
-* `APEX-112 <https://jira.opnfv.org/browse/APEX-112>`_:
- ODL routes local subnet traffic to GW
-* `APEX-149 <https://jira.opnfv.org/browse/APEX-149>`_:
- OpenFlow rules are populated very slowly
* `APEX-268 <https://jira.opnfv.org/browse/APEX-268>`_:
VMs with multiple floating IPs can only access via first NIC
-* `APEX-384 <https://jira.opnfv.org/browse/APEX-384>`_:
- Not including odl_version in deploy settings causes error
-* `APEX-422 <https://jira.opnfv.org/browse/APEX-422>`_:
- First nova instance DHCP request fails
References
==========
-For more information on the OPNFV Euphrates release, please visit
-http://www.opnfv.org/euphrates
+For more information on the OPNFV Gambia release, please visit
+http://www.opnfv.org/gambia
diff --git a/docs/release/scenarios/os-ovn-nofeature-noha/index.rst b/docs/release/scenarios/os-ovn-nofeature-ha/index.rst
index 74545044..b7e62e6c 100644
--- a/docs/release/scenarios/os-ovn-nofeature-noha/index.rst
+++ b/docs/release/scenarios/os-ovn-nofeature-ha/index.rst
@@ -1,4 +1,4 @@
-.. _os-ovn-nofeature-noha:
+.. _os-ovn-nofeature-ha:
.. This work is licensed under a Creative Commons Attribution 4.0 International Licence.
.. http://creativecommons.org/licenses/by/4.0
@@ -12,4 +12,4 @@ os-ovn-nofeature-noha overview and description
:numbered:
:maxdepth: 4
- os-ovn-nofeature-noha.rst
+ os-ovn-nofeature-ha.rst
diff --git a/docs/release/scenarios/os-ovn-nofeature-noha/os-ovn-nofeature-noha.rst b/docs/release/scenarios/os-ovn-nofeature-ha/os-ovn-nofeature-ha.rst
index a838e4b1..165b5f71 100644
--- a/docs/release/scenarios/os-ovn-nofeature-noha/os-ovn-nofeature-noha.rst
+++ b/docs/release/scenarios/os-ovn-nofeature-ha/os-ovn-nofeature-ha.rst
@@ -2,14 +2,14 @@
.. http://creativecommons.org/licenses/by/4.0
.. (c) <optionally add copywriters name>
-This document provides scenario level details for Euphrates 1.0 of
+This document provides scenario level details for Gambia 1.1 of
deployment with the OVN SDN controller and no extra features enabled.
============
Introduction
============
-This scenario is used primarily to validate and deploy a Newton OpenStack
+This scenario is used primarily to validate and deploy a Pike OpenStack
deployment with the OVN SDN controller, and without any NFV features enabled.
Scenario components and composition
@@ -23,18 +23,17 @@ the backend storage to Cinder on all deployed nodes.
Scenario usage overview
=======================
-Simply deploy this scenario by using the os-ovn-nofeature-noha.yaml deploy
+Simply deploy this scenario by using the os-ovn-nofeature-ha.yaml deploy
settings file.
Limitations, Issues and Workarounds
===================================
-* `APEX-430 <https://jira.opnfv.org/browse/APEX-430>`_:
- OVN HA functionality is not available.
+None
References
==========
-For more information on the OPNFV Euphrates release, please visit
-http://www.opnfv.org/euphrates
+For more information on the OPNFV Gambia release, please visit
+http://www.opnfv.org/gambia
diff --git a/docs/requirements.txt b/docs/requirements.txt
new file mode 100644
index 00000000..9fde2df2
--- /dev/null
+++ b/docs/requirements.txt
@@ -0,0 +1,2 @@
+lfdocs-conf
+sphinx_opnfv_theme
diff --git a/lib/ansible/playbooks/configure_undercloud.yml b/lib/ansible/playbooks/configure_undercloud.yml
index c0e1cd35..07b82c8e 100644
--- a/lib/ansible/playbooks/configure_undercloud.yml
+++ b/lib/ansible/playbooks/configure_undercloud.yml
@@ -27,26 +27,36 @@
with_items:
- controller
- compute
+ - name: Copy container prep env file to undercloud
+ copy:
+ src: "{{ apex_temp_dir }}/containers-prepare-parameter.yaml"
+ dest: "/home/stack/containers-prepare-parameter.yaml"
+ owner: stack
+ group: stack
+ mode: 0644
- lineinfile:
path: /etc/sudoers
regexp: 'Defaults\s*requiretty'
state: absent
become: yes
+ - lineinfile:
+ path: /etc/environment
+ regexp: '^http_proxy'
+ line: "http_proxy={{ http_proxy }}"
+ become: yes
+ when: http_proxy
+ - lineinfile:
+ path: /etc/environment
+ regexp: '^https_proxy'
+ line: "https_proxy={{ https_proxy }}"
+ become: yes
+ when: https_proxy
- name: openstack-configs undercloud
shell: openstack-config --set undercloud.conf DEFAULT {{ item }}
with_items: "{{ undercloud_config }}"
- - name: openstack-configs ironic
- shell: openstack-config --set /etc/ironic/ironic.conf {{ item }}
- become: yes
- with_items: "{{ ironic_config }}"
- - name: openstack-configs undercloud aarch64
- shell: openstack-config --set undercloud.conf DEFAULT ipxe_enabled false
- when: aarch64
- - lineinfile:
- path: /usr/lib/python2.7/site-packages/ironic/common/pxe_utils.py
- regexp: '_link_ip_address_pxe_configs'
- line: ' _link_mac_pxe_configs(task)'
- when: aarch64
+ - name: openstack-configs undercloud network
+ shell: openstack-config --set undercloud.conf ctlplane-subnet {{ item }}
+ with_items: "{{ undercloud_network_config }}"
- block:
- name: undercloud install
shell: openstack undercloud install &> apex-undercloud-install.log
@@ -63,32 +73,43 @@
src: /home/stack/apex-undercloud-install.log
dest: "{{ apex_temp_dir }}/"
flat: yes
+ - name: Install ceph-ansible
+ yum:
+ name: ceph-ansible
+ become: yes
- name: openstack-configs nova
- shell: openstack-config --set /etc/nova/nova.conf DEFAULT {{ item }}
+ shell: openstack-config --set /var/lib/config-data/nova/etc/nova/nova.conf DEFAULT {{ item }}
become: yes
with_items: "{{ nova_config }}"
- name: restart nova services
- service:
- name: "{{ item }}"
- state: restarted
- enabled: yes
+ shell: "{{ container_client }} restart {{ item }}"
with_items:
- - openstack-nova-conductor
- - openstack-nova-compute
- - openstack-nova-api
- - openstack-nova-scheduler
+ - nova_conductor
+ - nova_compute
+ - nova_api
+ - nova_scheduler
+ become: yes
- name: openstack-configs neutron
- shell: openstack-config --set /etc/neutron/neutron.conf DEFAULT {{ item }}
+ shell: openstack-config --set /var/lib/config-data/neutron/etc/neutron/neutron.conf DEFAULT {{ item }}
become: yes
with_items: "{{ neutron_config }}"
- name: restart neutron services
- service:
- name: "{{ item }}"
- state: restarted
- enabled: yes
+ shell: "{{ container_client }} restart {{ item }}"
with_items:
- - neutron-server
- - neutron-dhcp-agent
+ - neutron_api
+ - neutron_dhcp
+ become: yes
+ - name: openstack-configs ironic
+ shell: openstack-config --set /var/lib/config-data/ironic/etc/ironic/ironic.conf {{ item }}
+ become: yes
+ with_items: "{{ ironic_config }}"
+ - name: restart ironic services
+ shell: "{{ container_client }} restart {{ item }}"
+ with_items:
+ - ironic_api
+ - ironic_conductor
+ - ironic_inspector
+ become: yes
- name: configure external network vlan ifcfg
template:
src: external_vlan_ifcfg.yml.j2
@@ -112,21 +133,12 @@
when:
- external_network.vlan == "native"
- external_network.enabled
- - not aarch64
- name: bring up eth2
shell: ip link set up dev eth2
when:
- external_network.vlan == "native"
- external_network.enabled
- - not aarch64
become: yes
- - name: assign IP to native eth0 if aarch64
- shell: ip a a {{ external_network.ip }}/{{ external_network.prefix }} dev eth0
- become: yes
- when:
- - external_network.vlan == "native"
- - external_network.enabled
- - aarch64
- name: bring up eth0 if aarch64
shell: ip link set up dev eth0
when:
@@ -134,11 +146,61 @@
- external_network.enabled
- aarch64
become: yes
+ - block:
+ - name: Undercloud NAT - MASQUERADE interface
+ iptables:
+ table: nat
+ chain: POSTROUTING
+ out_interface: eth0
+ jump: MASQUERADE
+ - name: Undercloud NAT - MASQUERADE interface with subnet
+ iptables:
+ table: nat
+ chain: POSTROUTING
+ out_interface: eth0
+ jump: MASQUERADE
+ source: "{{ nat_cidr }}"
+ - name: Undercloud NAT - Allow Forwarding
+ iptables:
+ chain: FORWARD
+ in_interface: eth2
+ jump: ACCEPT
+ - name: Undercloud NAT - Allow Stateful Forwarding
+ iptables:
+ chain: FORWARD
+ in_interface: eth2
+ jump: ACCEPT
+ source: "{{ nat_cidr }}"
+ ctstate: ESTABLISHED,RELATED
+ become: yes
+ when:
+ - not nat_network_ipv6
+ - nat
+ - name: Allow SSH in iptables
+ iptables:
+ action: insert
+ chain: INPUT
+ rule_num: 1
+ protocol: tcp
+ destination_port: 22
+ jump: ACCEPT
+ become: yes
+ - name: Undercloud NAT - Save iptables
+ shell: service iptables save
+ become: yes
- name: fetch storage environment file
fetch:
src: /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml
dest: "{{ apex_temp_dir }}/"
flat: yes
+ - name: fetch sriov environment file
+ fetch:
+ src: /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-opendaylight-sriov.yaml
+ dest: "{{ apex_temp_dir }}/"
+ flat: yes
+ - name: Restorecon for root ssh
+ shell: restorecon -r -v /root/.ssh
+ become: yes
- include: undercloud_aarch64.yml
when: aarch64
diff --git a/lib/ansible/playbooks/deploy_dependencies.yml b/lib/ansible/playbooks/deploy_dependencies.yml
index 545ee33d..ab09ff6e 100644
--- a/lib/ansible/playbooks/deploy_dependencies.yml
+++ b/lib/ansible/playbooks/deploy_dependencies.yml
@@ -7,6 +7,26 @@
with_items:
- python-lxml
- libvirt-python
+ - libguestfs-tools
+ - python-netaddr
+ - python2-pip
+ when: ansible_distribution == 'CentOS'
+ - dnf:
+ name: "{{ item }}"
+ state: present
+ with_items:
+ - libselinux-python
+ - python-lxml
+ - libvirt-python
+ - libguestfs-tools
+ - python-netaddr
+ - python2-pip
+ when: ansible_distribution == 'Fedora'
+ - pip:
+ name: ansible-modules-hashivault,hvac,Jinja2
+ state: latest
+ executable: pip2
+ when: not snapshot
- sysctl:
name: net.ipv4.ip_forward
state: present
@@ -31,20 +51,31 @@
xml: '{{ lookup("template", "virsh_network_default.xml.j2") }}'
state: active
autostart: yes
+ when: not snapshot
- openvswitch_bridge:
bridge: 'br-{{ item }}'
state: present
with_items: '{{ virsh_enabled_networks }}'
+ - name: 'Configure IP on bridge'
+ shell: 'ip addr add 192.0.2.99/24 dev br-{{ item }}'
+ with_items: '{{ virsh_enabled_networks }}'
+ when: snapshot
+ - name: 'Bring up bridge'
+ shell: 'ip link set up br-{{ item }}'
+ with_items: '{{ virsh_enabled_networks }}'
+ when: snapshot
- virt_net:
state: present
name: '{{ item }}'
xml: '{{ lookup("template", "virsh_network_ovs.xml.j2") }}'
with_items: '{{ virsh_enabled_networks }}'
+ when: not snapshot
- virt_net:
state: active
name: '{{ item }}'
autostart: yes
with_items: '{{ virsh_enabled_networks }}'
+ when: not snapshot
- virt_pool:
name: default
autostart: yes
@@ -72,18 +103,27 @@
when:
- ansible_architecture == "x86_64"
- "'Y' not in nested_result.stdout"
+ - modprobe:
+ name: ip6_tables
+ state: present
+ - modprobe:
+ name: ip_tables
+ state: present
- name: Generate SSH key for root if missing
shell: test -e ~/.ssh/id_rsa || ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
+ when: not snapshot
- name: Check that /u/l/python3.4/site-packages/virtualbmc/vbmc.py exists
stat:
path: /usr/lib/python3.4/site-packages/virtualbmc/vbmc.py
register: vbmc_py
+ when: not snapshot
- name: Manually patch vmbc to work with python3.x
lineinfile:
line: " conn.defineXML(ET.tostring(tree, encoding='unicode'))"
regexp: "tostring"
path: /usr/lib/python3.4/site-packages/virtualbmc/vbmc.py
when: vbmc_py.stat.exists == True
+ when: not snapshot
- name: Add ssh retry to Ansible config
ini_file:
path: /etc/ansible/ansible.cfg
diff --git a/lib/ansible/playbooks/deploy_overcloud.yml b/lib/ansible/playbooks/deploy_overcloud.yml
index b2d9234a..9a405814 100644
--- a/lib/ansible/playbooks/deploy_overcloud.yml
+++ b/lib/ansible/playbooks/deploy_overcloud.yml
@@ -12,10 +12,23 @@
- network-environment.yaml
- instackenv.json
- overcloud-full.qcow2
+ - overcloud-full.vmlinuz
+ - overcloud-full.initrd
+ - ironic-python-agent.initramfs
+ - ironic-python-agent.kernel
- deploy_command
- virtual-environment.yaml
- baremetal-environment.yaml
+ - kubernetes-environment.yaml
- "{{ apex_env_file }}"
+ - name: Copy ansible.cfg data to undercloud in aarch64
+ copy:
+ src: "{{ apex_temp_dir }}/ansible.cfg"
+ dest: "/home/stack/ansible.cfg"
+ owner: stack
+ group: stack
+ mode: 0644
+ when: aarch64
- name: Copy network data to undercloud
copy:
src: "{{ apex_temp_dir }}/network_data.yaml"
@@ -30,11 +43,12 @@
owner: root
group: root
mode: 0664
- - systemd:
- name: openstack-swift-proxy
- state: restarted
- enabled: yes
- become: yes
+ - copy:
+ src: "{{ apex_temp_dir }}/neutron-opendaylight-sriov.yaml"
+ dest: /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-opendaylight-sriov.yaml
+ owner: root
+ group: root
+ mode: 0664
- name: Remove Ceph OSD from ceph storage role
lineinfile:
path: /usr/share/openstack-tripleo-heat-templates/roles_data.yaml
@@ -51,38 +65,95 @@
owner: root
group: root
become: yes
+ - name: Insert Ceph OSDs into Controller role
+ lineinfile:
+ path: /usr/share/openstack-tripleo-heat-templates/roles_data.yaml
+ insertbefore: '^\s*-\sOS::TripleO::Services::CephRbdMirror$'
+ line: ' - OS::TripleO::Services::CephOSD'
+ owner: root
+ group: root
+ become: yes
+ - name: Insert External network into Compute role
+ shell: |
+ ruby -e '
+ require "yaml"
+ data = YAML.load(File.read("/usr/share/openstack-tripleo-heat-templates/roles_data.yaml"))
+ if data[1]["networks"].is_a?(Array)
+ data[1]["networks"].push("External")
+ elsif data[1]["networks"].is_a?(Hash)
+ data[1]["networks"].merge!("External"=> { "subnet" => "external_subnet" })
+ else
+ raise "Unable to determine data to modify in roles_data.yaml"
+ end
+ data[1]["default_route_networks"] = Array.new(["External"])
+ File.open("/usr/share/openstack-tripleo-heat-templates/roles_data.yaml", "w") { |f| f.write(data.to_yaml) }
+ '
+ become: yes
- name: Upload glance images
shell: "{{ stackrc }} && openstack overcloud image upload"
become: yes
become_user: stack
- name: Import inventory (baremetal)
shell: "{{ stackrc }} && openstack overcloud node import instackenv.json"
- when: not virtual
+ when: introspect
- name: Introspect inventory (baremetal)
shell: "{{ stackrc }} && openstack overcloud node introspect --all-manageable --provide"
- when:
- - not virtual
- - not aarch64
+ when: introspect
- name: Import inventory (virtual)
shell: "{{ stackrc }} && openstack overcloud node import --provide instackenv.json"
- when: virtual
+ when: not introspect
- name: Set flavors
shell: '{{ stackrc }} && openstack flavor set --property "cpu_arch"="{{ ansible_architecture }}" {{ item }}'
with_items:
- baremetal
- control
- compute
+ - name: Re-enable ceph config for aarch64
+ replace:
+ path: "/usr/share/ceph-ansible/roles/ceph-client/tasks/create_users_keys.yml"
+ regexp: "x86_64"
+ replace: "aarch64"
+ backup: yes
+ when: aarch64
- name: Configure DNS server for ctlplane network
shell: "{{ stackrc }} && openstack subnet set ctlplane-subnet {{ dns_server_args }}"
+ - name: Update NIC templates before deployment
+ shell: >
+ /usr/share/openstack-tripleo-heat-templates/tools/merge-new-params-nic-config-script.py
+ -n /home/stack/network_data.yaml -t /home/stack/nics/{{ item }}.yaml --discard-comments True
+ --role-name Controller
+ become: yes
+ become_user: stack
+ with_items:
+ - controller
+ - compute
- block:
- name: Execute Overcloud Deployment
shell: "{{ stackrc }} && bash deploy_command"
+ become: yes
+ become_user: stack
rescue:
- name: Show overcloud failures
shell: "{{ stackrc }} && openstack stack failures list overcloud --long"
+ become: yes
+ become_user: stack
+ always:
+ - name: Archive Mistral logs
+ archive:
+ path:
+ - /var/lib/mistral
+ - /var/log/mistral
+ dest: /root/mistral_logs.tar.gz
+ become: yes
+ - name: Fetch mistral logs
+ fetch:
+ src: /root/mistral_logs.tar.gz
+ dest: "{{ apex_temp_dir }}/"
+ flat: yes
+ become: yes
- name: Show Keystone output
shell: "{{ overcloudrc }} && {{ item }}"
- when: debug
+ when: debug and vim == 'openstack'
with_items:
- openstack endpoint list
- openstack service list
diff --git a/lib/ansible/playbooks/fetch_overcloud_logs.yml b/lib/ansible/playbooks/fetch_overcloud_logs.yml
new file mode 100644
index 00000000..1ab52475
--- /dev/null
+++ b/lib/ansible/playbooks/fetch_overcloud_logs.yml
@@ -0,0 +1,25 @@
+---
+- hosts: all
+ tasks:
+ - name: Archive logs
+ archive:
+ path:
+ - /var/log
+ - /etc/puppet
+ - /etc/nova
+ - /etc/neutron
+ - /etc/heat
+ - /etc/haproxy
+ - /etc/glance
+ - /etc/puppet
+ - /etc/vpp
+ - /etc/os-net-config
+ - /opt/opendaylight/data/log
+ - /opt/opendaylight/etc
+ dest: /root/logging.tar.gz
+ become: yes
+ - name: Fetch /var/log/
+ fetch:
+ src: /root/logging.tar.gz
+ dest: "{{ apex_temp_dir }}/"
+ become: yes
diff --git a/lib/ansible/playbooks/fetch_overcloud_nodes.yml b/lib/ansible/playbooks/fetch_overcloud_nodes.yml
new file mode 100644
index 00000000..bcb5f0f6
--- /dev/null
+++ b/lib/ansible/playbooks/fetch_overcloud_nodes.yml
@@ -0,0 +1,13 @@
+---
+- hosts: all
+ tasks:
+ - name: Get overcloud nodes and IPs
+ shell: "{{ stackrc }} && openstack server list -f json"
+ register: nova_list
+ - name: Write nova list output to file
+ local_action: copy content="{{ nova_list.stdout }}" dest="{{ apex_temp_dir }}/nova_output"
+ - name: Get ironic node information
+ shell: "{{ stackrc }} && openstack server list -f json"
+ register: ironic_list
+ - name: Write ironic list output to file
+ local_action: copy content="{{ ironic_list.stdout }}" dest="{{ apex_temp_dir }}/ironic_output"
diff --git a/lib/ansible/playbooks/k8s_remove_pkgs.yml b/lib/ansible/playbooks/k8s_remove_pkgs.yml
new file mode 100644
index 00000000..f9fa7787
--- /dev/null
+++ b/lib/ansible/playbooks/k8s_remove_pkgs.yml
@@ -0,0 +1,5 @@
+---
+- hosts: all
+ tasks:
+ - name: Removing existing docker related packages
+ shell: "rpm -e --nodeps docker docker-common docker-client container-selinux"
diff --git a/lib/ansible/playbooks/patch_containers.yml b/lib/ansible/playbooks/patch_containers.yml
new file mode 100644
index 00000000..1ef05810
--- /dev/null
+++ b/lib/ansible/playbooks/patch_containers.yml
@@ -0,0 +1,13 @@
+---
+ - name: "Pull docker image to ensure it exists locally: {{ item }}"
+ shell: "{{ container_client }} pull {{ undercloud_ip }}:8787/tripleo{{ os_version }}/centos-binary-{{ item }}:current-tripleo"
+ - name: "Find docker image user {{ item }}"
+ shell: >
+ {{ container_client }} inspect --format='{{ '{{' }}.ContainerConfig.User{{ '}}' }}'
+ {{ undercloud_ip }}:8787/tripleo{{ os_version }}/centos-binary-{{ item }}:current-tripleo
+ register: user_result
+ - name: "Patch docker image {{ item }}"
+ shell: >
+ cd /home/stack/containers/{{ item }} && {{ container_client }} build
+ --build-arg REAL_USER={{ user_result.stdout }}
+ -t {{ undercloud_ip }}:8787/tripleo{{ os_version }}/centos-binary-{{ item }}:apex .
diff --git a/lib/ansible/playbooks/post_deploy_overcloud.yml b/lib/ansible/playbooks/post_deploy_overcloud.yml
index af1c648a..2b90ab1f 100644
--- a/lib/ansible/playbooks/post_deploy_overcloud.yml
+++ b/lib/ansible/playbooks/post_deploy_overcloud.yml
@@ -13,15 +13,6 @@
- dataplane == 'ovs_dpdk'
- "'compute' in ansible_hostname"
- sdn == false
- - name: SFC config workaround
- file:
- src: /etc/neutron/networking_sfc.conf
- dest: /etc/neutron/conf.d/neutron-server/networking_sfc.conf
- state: link
- become: yes
- when:
- - sfc
- - "'controller' in ansible_hostname"
- name: Ensure ZRPCD is running
shell: ps aux | grep zrpcd | grep -v grep
ignore_errors: yes
@@ -51,3 +42,54 @@
owner: root
group: tacker
become: yes
+ when: tacker
+ - name: Restart Controller Neutron/Nova Services (Pike Workaround)
+ shell: "systemctl restart {{ item }}"
+ become: yes
+ when:
+ - "'controller' in ansible_hostname"
+ - os_version == 'pike'
+ with_items:
+ - neutron-server
+ - openstack-nova-api
+ - openstack-nova-scheduler
+ - openstack-nova-conductor
+ - name: Restart Compute Nova Compute (workaround for NFS)
+ shell: "{{ container_client }} restart nova_compute"
+ become: yes
+ when: "'compute' in ansible_hostname or all_in_one"
+ - name: Update ODL container restart policy to always
+ shell: "{{ container_client }} update --restart=always opendaylight_api"
+ become: yes
+ when:
+ - sdn == 'opendaylight'
+ - "'controller' in ansible_hostname"
+ - name: Open port 8101 (karaf shell) for ODL
+ iptables:
+ chain: INPUT
+ action: insert
+ protocol: tcp
+ destination_port: 8101
+ jump: ACCEPT
+ rule_num: 1
+ become: yes
+ when:
+ - sdn == 'opendaylight'
+ - "'controller' in ansible_hostname"
+ - name: save iptables
+ command: service iptables save
+ become: yes
+ - name: Modify nova metadata host to be IP
+ shell: >
+ crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/metadata_agent.ini
+ DEFAULT nova_metadata_host $(hiera -c /etc/puppet/hiera.yaml nova_metadata_vip)
+ become: yes
+ when:
+ - "'controller' in ansible_hostname"
+ - sdn != 'ovn'
+ - name: Restart metadata service
+ shell: "{{ container_client }} restart neutron_metadata_agent"
+ become: yes
+ when:
+ - "'controller' in ansible_hostname"
+ - sdn != 'ovn'
diff --git a/lib/ansible/playbooks/post_deploy_undercloud.yml b/lib/ansible/playbooks/post_deploy_undercloud.yml
index 2e1bf0f3..8cdfedfe 100644
--- a/lib/ansible/playbooks/post_deploy_undercloud.yml
+++ b/lib/ansible/playbooks/post_deploy_undercloud.yml
@@ -9,6 +9,7 @@
- name: Configure external network
shell: "{{ overcloudrc }} && {{ item }}"
with_items: "{{ external_network_cmds }}"
+ when: vim == 'openstack'
- name: Configure gluon networks
shell: "{{ overcloudrc }} && {{ item }}"
when: gluon
@@ -26,9 +27,7 @@
group: stack
mode: 0644
become: yes
- with_items:
- - overcloudrc
- - overcloudrc.v3
+ with_items: "{{ overcloudrc_files }}"
- name: Inject OS_PROJECT_ID and OS_TENANT_NAME into overcloudrc
lineinfile:
line: "{{ item }}"
@@ -74,56 +73,45 @@
when: sdn != false
become: yes
become_user: stack
- with_items:
- - overcloudrc
- - overcloudrc.v3
- - name: Undercloud NAT - MASQUERADE interface
- iptables:
- table: nat
- chain: POSTROUTING
- out_interface: eth0
- jump: MASQUERADE
- when:
- - virtual
- - not external_network_ipv6
- become: yes
- - name: Undercloud NAT - MASQUERADE interface with subnet
- iptables:
- table: nat
- chain: POSTROUTING
- out_interface: eth0
- jump: MASQUERADE
- source: "{{ external_cidr }}"
- when:
- - virtual
- - not external_network_ipv6
+ with_items: "{{ overcloudrc_files }}"
+ - name: Write SDN WEB and REST PORT to overcloudrc
+ lineinfile:
+ line: "export {{ item[0] }}=8081"
+ regexp: "{{ item[0] }}"
+ path: "/home/stack/{{ item[1] }}"
+ when: sdn != false
become: yes
- - name: Undercloud NAT - Allow Forwarding
- iptables:
- chain: FORWARD
- in_interface: eth2
- jump: ACCEPT
- when:
- - virtual
- - not external_network_ipv6
+ become_user: stack
+ with_nested:
+ - [ 'SDN_CONTROLLER_WEBPORT', 'SDN_CONTROLLER_RESTCONFPORT' ]
+ - "{{ overcloudrc_files }}"
+ - name: Grab Heat Environment variables
+ shell: "{{ stackrc }} && openstack stack environment show overcloud -f json"
+ register: heat_env
become: yes
- - name: Undercloud NAT - Allow Stateful Forwarding
- iptables:
- chain: FORWARD
- in_interface: eth2
- jump: ACCEPT
- source: "{{ external_cidr }}"
- ctstate: ESTABLISHED,RELATED
- when:
- - virtual
- - not external_network_ipv6
+ become_user: stack
+ - name: Write SDN controller password to overcloudrc for ODL
+ lineinfile:
+ line: "export SDN_CONTROLLER_PASSWORD={{(heat_env.stdout|from_json)['parameter_defaults']['OpenDaylightPassword']}}"
+ regexp: 'SDN_CONTROLLER_PASSWORD'
+ path: "/home/stack/{{ item }}"
+ when: sdn == 'opendaylight'
become: yes
- - name: Undercloud NAT - Save iptables
- shell: service iptables save
+ become_user: stack
+ with_items: "{{ overcloudrc_files }}"
+ - name: Register OS Region
+ shell: "{{ overcloudrc }} && openstack endpoint list -c Region -f json"
+ register: region
+ when: vim == 'openstack'
+ - name: Write Region into overcloudrc
+ lineinfile:
+ line: "export OS_REGION_NAME={{(region.stdout|from_json)[1]['Region']}}"
+ regexp: 'OS_REGION_NAME'
+ path: "/home/stack/{{ item }}"
become: yes
- when:
- - virtual
- - not external_network_ipv6
+ become_user: stack
+ with_items: "{{ overcloudrc_files }}"
+ when: vim == 'openstack'
- name: Create congress datasources
shell: "{{ overcloudrc }} && openstack congress datasource create {{ item }}"
become: yes
@@ -133,6 +121,10 @@
ignore_errors: yes
- name: Configure Calipso
block:
+ - name: Install pip3
+ yum:
+ name: python34-pip
+ state: present
- name: Install Calipso dependencies
pip:
name: "{{ item }}"
@@ -153,6 +145,8 @@
- docker-common
- docker-selinux
- docker-engine
+ - name: Add Docker CE repo
+ shell: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- name: Install Docker CE
package:
name: docker-ce
@@ -166,6 +160,6 @@
command: >
python3 /root/calipso-installer.py --command start-all
--copy q --hostname {{ calipso_ip }} --dbport 37017 --webport 81
- --apiport 8001 --rabbitmport 15673
+ --apiport 8001 --rabbitmport 15673 --home /root
become: yes
when: calipso
diff --git a/lib/ansible/playbooks/prepare_overcloud_containers.yml b/lib/ansible/playbooks/prepare_overcloud_containers.yml
new file mode 100644
index 00000000..ebf081dc
--- /dev/null
+++ b/lib/ansible/playbooks/prepare_overcloud_containers.yml
@@ -0,0 +1,50 @@
+---
+- hosts: all
+ tasks:
+ - name: Upload container patches archive
+ copy:
+ src: "{{ apex_temp_dir }}/docker_patches.tar.gz"
+ dest: "/home/stack/docker_patches.tar.gz"
+ owner: stack
+ group: stack
+ mode: 0644
+ when: patched_docker_services|length > 0
+ - name: Unpack container patches archive
+ unarchive:
+ src: /home/stack/docker_patches.tar.gz
+ remote_src: yes
+ list_files: yes
+ group: stack
+ owner: stack
+ dest: /home/stack/
+ when: patched_docker_services|length > 0
+ - name: Prepare generic docker registry image file
+ shell: >
+ sudo openstack tripleo container image prepare
+ -e /home/stack/containers-prepare-parameter.yaml
+ --output-env-file docker-images.yaml
+ - name: Collect docker images in registry
+ uri:
+ url: http://{{ undercloud_ip }}:8787/v2/_catalog
+ body_format: json
+ register: response
+ - include_tasks: patch_containers.yml
+ with_items: "{{ patched_docker_services }}"
+ loop_control:
+ loop_var: item
+ when:
+ - patched_docker_services|length > 0
+ - item in (response.json)['repositories']|join(" ")
+ - name: Push patched docker images to local registry
+ shell: "{{ container_client }} push {{ undercloud_ip }}:8787/tripleo{{ os_version }}/centos-binary-{{ item }}:apex"
+ when:
+ - patched_docker_services|length > 0
+ - item in (response.json)['repositories']|join(" ")
+ with_items: "{{ patched_docker_services }}"
+ - name: Modify Images with Apex tag
+ replace:
+ path: "/home/stack/docker-images.yaml"
+ regexp: "(\\s*Docker.*?:.*?centos-binary-{{ item }}):.*"
+ replace: '\1:apex'
+ with_items: "{{ patched_docker_services }}"
+ become: yes
diff --git a/lib/ansible/playbooks/undercloud_aarch64.yml b/lib/ansible/playbooks/undercloud_aarch64.yml
index 040831c5..efcbdabd 100644
--- a/lib/ansible/playbooks/undercloud_aarch64.yml
+++ b/lib/ansible/playbooks/undercloud_aarch64.yml
@@ -3,13 +3,12 @@
tasks:
- name: aarch64 configuration
block:
- - shell: yum -y reinstall grub2-efi shim
- copy:
src: /boot/efi/EFI/centos/grubaa64.efi
- dest: /tftpboot/grubaa64.efi
+ dest: /var/lib/config-data/puppet-generated/ironic/var/lib/ironic/tftpboot/grubaa64.efi
remote_src: yes
- file:
- path: /tftpboot/EFI/centos
+ path: /var/lib/config-data/puppet-generated/ironic/var/lib/ironic/tftpboot/EFI/centos
state: directory
mode: 0755
- copy:
@@ -18,30 +17,25 @@
set timeout=5
set hidden_timeout_quiet=false
menuentry "local" {
- configfile (hd0,gpt3)/boot/grub2/grub.cfg
+ configfile /var/lib/ironic/tftpboot/$net_default_mac.conf
}
- dest: /tftpboot/EFI/centos/grub.cfg
+ dest: /var/lib/config-data/puppet-generated/ironic/var/lib/ironic/tftpboot/EFI/centos/grub.cfg
mode: 0644
- - shell: 'openstack-config --set /etc/ironic/ironic.conf pxe uefi_pxe_bootfile_name grubaa64.efi'
- - systemd:
- name: openstack-ironic-conductor
- state: restarted
- enabled: yes
- - replace:
- path: /usr/lib/python2.7/site-packages/ironic/drivers/modules/pxe_grub_config.template
- regexp: 'linuxefi'
- replace: 'linux'
- - replace:
- path: /usr/lib/python2.7/site-packages/ironic/drivers/modules/pxe_grub_config.template
- regexp: 'initrdefi'
- replace: 'initrd'
+ - shell: 'sudo crudini --set /var/lib/config-data/puppet-generated/ironic/etc/ironic/ironic.conf pxe pxe_bootfile_name_by_arch aarch64:grubaa64.efi'
+ - shell: 'sudo crudini --set /var/lib/config-data/puppet-generated/ironic/etc/ironic/ironic.conf pxe pxe_config_template_by_arch aarch64:\$pybasedir/drivers/modules/pxe_grub_config.template'
+ - shell: 'docker exec -u root ironic_conductor sed -i "s/initrdefi/initrd/g" /usr/lib/python2.7/site-packages/ironic/drivers/modules/pxe_grub_config.template'
+ - shell: 'docker exec -u root ironic_conductor sed -i "s/linuxefi/linux/g" /usr/lib/python2.7/site-packages/ironic/drivers/modules/pxe_grub_config.template'
- lineinfile:
- path: /tftpboot/map-file
+ path: /var/lib/config-data/puppet-generated/ironic/var/lib/ironic/tftpboot/map-file
insertafter: EOF
state: present
line: ''
- - shell: "echo 'r ^/EFI/centos/grub.cfg-(.*) /tftpboot/pxelinux.cfg/\\1' | sudo tee --append /tftpboot/map-file"
- - shell: "echo 'r ^/EFI/centos/grub.cfg /tftpboot/EFI/centos/grub.cfg' | sudo tee --append /tftpboot/map-file"
+ - shell: "echo 'r ^/EFI/centos/grub.cfg-(.*) /var/lib/ironic/tftpboot/pxelinux.cfg/\\1' | sudo tee --append /var/lib/config-data/puppet-generated/ironic/var/lib/ironic/tftpboot/map-file"
+ - shell: "echo 'r ^/EFI/centos/grub.cfg /var/lib/ironic/tftpboot/EFI/centos/grub.cfg' | sudo tee --append /var/lib/config-data/puppet-generated/ironic/var/lib/ironic/tftpboot/map-file"
+ - shell: "docker restart {{ item }}"
+ with_items:
+ - ironic_conductor
+ - ironic_pxe_tftp
- systemd:
name: xinetd
state: restarted
diff --git a/requirements.txt b/requirements.txt
index 0326a8cb..2d7c4199 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -4,10 +4,11 @@
pbr!=2.1.0,>=2.0.0 # Apache-2.0
libvirt-python
python-iptables
-virtualbmc
+virtualbmc==1.2.0
cryptography
python-ipmi
PyYAML
Jinja2>=2.8
GitPython
pygerrit2
+distro
diff --git a/setup.cfg b/setup.cfg
index 52ad12fd..4bb9312e 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -25,20 +25,26 @@ setup-hooks =
console_scripts =
opnfv-deploy = apex.deploy:main
opnfv-clean = apex.clean:main
+ opnfv-pyutil = apex.utils:main
[files]
packages =
apex
data_files =
share/opnfv-apex/ =
+ build/containers-prepare-parameter.yaml
build/network-environment.yaml
build/opnfv-environment.yaml
build/upstream-environment.yaml
+ build/kubernetes-environment.yaml
build/nics-template.yaml.jinja2
build/csit-environment.yaml
+ build/csit-queens-environment.yaml
+ build/csit-rocky-environment.yaml
build/virtual-environment.yaml
build/baremetal-environment.yaml
build/domain.xml
+ build/build_ovs_nsh.sh
share/opnfv-apex/ansible = lib/ansible/*
share/opnfv-apex/config = config/*
share/opnfv-apex/docs = docs/*
diff --git a/tox.ini b/tox.ini
index 6d53f30a..f69881ed 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
[tox]
-envlist = docs,pep8,pylint,py35
+envlist = docs,docs-linkcheck,pep8,pylint,py35
[testenv]
usedevelop = True
@@ -14,7 +14,7 @@ commands =
--cover-package=apex \
--cover-xml \
--cover-min-percentage 95 \
- apex/tests
+ {posargs}
coverage report
[testenv:pep8]
@@ -24,3 +24,13 @@ commands = flake8 --exclude .build,build --ignore=F401
[testenv:py35]
basepython = python3
+[testenv:docs]
+deps = -rdocs/requirements.txt
+commands =
+ sphinx-build -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html
+ echo "Generated docs available in {toxinidir}/docs/_build/html"
+whitelist_externals = echo
+
+[testenv:docs-linkcheck]
+deps = -rdocs/requirements.txt
+commands = sphinx-build -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck