Ejemplo n.º 1
0
    def get_stack_version_before_packages_installed(self):
        """
    This works in a lazy way (calculates the version first time and stores it). 
    If you need to recalculate the version explicitly set:
    
    Script.stack_version_from_distro_select = None
    
    before the call. However takes a bit of time, so better to avoid.

    :return: stack version including the build number. e.g.: 2.3.4.0-1234.
    """
        # preferred way is to get the actual selected version of current component
        component_name = self.get_component_name()
        if not Script.stack_version_from_distro_select and component_name:
            from resource_management.libraries.functions import stack_select
            Script.stack_version_from_distro_select = stack_select.get_stack_version_before_install(
                component_name)

        # If <stack-selector-tool> has not yet been done (situations like first install),
        # we can use <stack-selector-tool> version itself.
        if not Script.stack_version_from_distro_select:
            Script.stack_version_from_distro_select = packages_analyzer.getInstalledPackageVersion(
                stack_tools.get_stack_tool_package(
                    stack_tools.STACK_SELECTOR_NAME))

        return Script.stack_version_from_distro_select
Ejemplo n.º 2
0
    def get_stack_version_before_packages_installed(self):
        """
    This works in a lazy way (calculates the version first time and stores it). 
    If you need to recalculate the version explicitly set:
    
    Script.stack_version_from_distro_select = None
    
    before the call. However takes a bit of time, so better to avoid.

    :return: stack version including the build number. e.g.: 2.3.4.0-1234.
    """
        # preferred way is to get the actual selected version of current component
        component_name = self.get_component_name()
        if not Script.stack_version_from_distro_select and component_name:
            from resource_management.libraries.functions import stack_select
            Script.stack_version_from_distro_select = stack_select.get_stack_version_before_install(
                component_name)

        # If <stack-selector-tool> has not yet been done (situations like first install),
        # we can use <stack-selector-tool> version itself.
        # Wildcards cause a lot of troubles with installing packages, if the version contains wildcards we should try to specify it.
        if not Script.stack_version_from_distro_select or '*' in Script.stack_version_from_distro_select:
            # FIXME: this method is not reliable to get stack-selector-version
            # as if there are multiple versions installed with different <stack-selector-tool>, we won't detect the older one (if needed).
            Script.stack_version_from_distro_select = packages_analyzer.getInstalledPackageVersion(
                stack_tools.get_stack_tool_package(
                    stack_tools.STACK_SELECTOR_NAME))

        return Script.stack_version_from_distro_select
Ejemplo n.º 3
0
  def get_stack_version_before_packages_installed(self):
    """
    This works in a lazy way (calculates the version first time and stores it). 
    If you need to recalculate the version explicitly set:
    
    Script.stack_version_from_distro_select = None
    
    before the call. However takes a bit of time, so better to avoid.

    :return: stack version including the build number. e.g.: 2.3.4.0-1234.
    """
    # preferred way is to get the actual selected version of current component
    component_name = self.get_component_name()
    if not Script.stack_version_from_distro_select and component_name:
      from resource_management.libraries.functions import stack_select
      Script.stack_version_from_distro_select = stack_select.get_stack_version_before_install(component_name)
      
    # If <stack-selector-tool> has not yet been done (situations like first install),
    # we can use <stack-selector-tool> version itself.
    # Wildcards cause a lot of troubles with installing packages, if the version contains wildcards we should try to specify it.
    if not Script.stack_version_from_distro_select or '*' in Script.stack_version_from_distro_select:
      # FIXME: this method is not reliable to get stack-selector-version
      # as if there are multiple versions installed with different <stack-selector-tool>, we won't detect the older one (if needed).
      Script.stack_version_from_distro_select = packages_analyzer.getInstalledPackageVersion(
              stack_tools.get_stack_tool_package(stack_tools.STACK_SELECTOR_NAME))

    return Script.stack_version_from_distro_select
Ejemplo n.º 4
0
 def test_get_installed_package_version_ubuntu(self, is_ubuntu_family_mock,
                                               checked_call_mock):
     is_ubuntu_family_mock.return_value = True
     checked_call_mock.return_value = (0, '1.2.3')
     result = packages_analyzer.getInstalledPackageVersion("package1")
     self.assertEqual(result, '1.2.3')
     self.assertEqual(
         checked_call_mock.call_args_list,
         [call("dpkg -s package1 | grep Version | awk '{print $2}'")])
 def test_get_installed_package_version_centos_suse(self,
                                                    is_ubuntu_family_mock,
                                                    checked_call_mock):
     is_ubuntu_family_mock.return_value = False
     checked_call_mock.return_value = (0, '0.0.1-SNAPSHOT', '')
     result = packages_analyzer.getInstalledPackageVersion("package1")
     self.assertEqual(result, '0.0.1-SNAPSHOT')
     self.assertEqual(checked_call_mock.call_args_list, [
         call(
             "rpm -q --queryformat '%{version}-%{release}' package1 | sed -e 's/\\.el[0-9]//g'",
             stderr=-1)
     ])
Ejemplo n.º 6
0
 def test_get_installed_package_version_centos_suse(self, is_ubuntu_family_mock, checked_call_mock):
   is_ubuntu_family_mock.return_value = False
   checked_call_mock.return_value = (0, '0.0.1-SNAPSHOT','')
   result = packages_analyzer.getInstalledPackageVersion("package1")
   self.assertEqual(result, '0.0.1-SNAPSHOT')
   self.assertEqual(checked_call_mock.call_args_list, [call("rpm -q --queryformat '%{version}-%{release}' package1 | sed -e 's/\\.el[0-9]//g'", stderr=-1)])
Ejemplo n.º 7
0
 def test_get_installed_package_version_ubuntu(self, is_ubuntu_family_mock, checked_call_mock):
   is_ubuntu_family_mock.return_value = True
   checked_call_mock.return_value = (0, '1.2.3','')
   result = packages_analyzer.getInstalledPackageVersion("package1")
   self.assertEqual(result, '1.2.3')
   self.assertEqual(checked_call_mock.call_args_list, [call("dpkg -s package1 | grep Version | awk '{print $2}'", stderr=-1)])