def SetSyspurpose(self, syspurpose_values, locale, sender):
        """
        Set syspurpose values
        :param syspurpose_values: Dictionary with all syspurpose values
        :param locale: String with locale
        :param sender: Object representing client application that called this method
        :return: String with successfully set syspurpose values
        """
        syspurpose_values = dbus_utils.dbus_to_python(syspurpose_values,
                                                      expected_type=dict)
        locale = dbus_utils.dbus_to_python(locale, expected_type=str)
        Locale.set(locale)

        cp = self.build_uep({})
        system_purpose = syspurpose.Syspurpose(cp)
        new_syspurpose_values = system_purpose.set_syspurpose_values(
            syspurpose_values)

        # Check if there was any conflict during three-way merge
        conflicts = {}
        for key, value in new_syspurpose_values.items():
            if key in syspurpose_values and syspurpose_values[key] != value:
                conflicts[key] = value
        if len(conflicts) > 0:
            raise ThreeWayMergeConflict(conflict_fields=conflicts)

        return json.dumps(new_syspurpose_values)
 def GetSyspurposeStatus(self, locale, sender=None):
     """
     D-Bus method for getting system purpose status
     :param locale: string representing locale
     :param sender: object representing application which called this method
     :return:
     """
     locale = dbus_utils.dbus_to_python(locale, expected_type=str)
     Locale.set(locale)
     cp = self.build_uep({})
     system_purpose = syspurpose.Syspurpose(cp)
     syspurpose_status = system_purpose.get_syspurpose_status()["status"]
     return system_purpose.get_overall_status(syspurpose_status)
 def GetValidFields(self, locale, sender=None):
     """
     Method for getting valid syspurpose attributes and values
     :param locale: string with locale
     :param sender: object representing application which called this method
     :return: string representing dictionary with valid fields
     """
     locale = dbus_utils.dbus_to_python(locale, expected_type=str)
     Locale.set(locale)
     cp = self.build_uep({})
     system_purpose = syspurpose.Syspurpose(cp)
     valid_fields = system_purpose.get_owner_syspurpose_valid_fields()
     if valid_fields is None:
         # When it is not possible to get valid fields, then raise exception
         if self.is_registered() is False:
             raise dbus.DBusException(
                 "Unable to get system purpose valid fields. System is not registered.",
             )
         else:
             raise dbus.DBusException(
                 "Unable to get system purpose valid fields.", )
     else:
         return json.dumps(valid_fields)
示例#4
0
 def _sync_with_server(self, uep, uuid, on_date=None, *args, **kwargs):
     self.syspurpose_service = syspurpose.Syspurpose(uep)
     self.server_status = self.syspurpose_service.get_syspurpose_status(
         on_date)
 def GetSyspurposeStatus(self, sender=None):
     cp = self.build_uep({})
     systempurpose = syspurpose.Syspurpose(cp)
     syspurpose_status = systempurpose.get_syspurpose_status()['status']
     return systempurpose.get_overall_status(syspurpose_status)
示例#6
0
 def GetSyspurposeStatus(self, sender=None):
     cp = inj.require(inj.CP_PROVIDER).get_consumer_auth_cp()
     systempurpose = syspurpose.Syspurpose(cp)
     syspurpose_status = systempurpose.get_syspurpose_status()['status']
     return systempurpose.get_overall_status(syspurpose_status)