def to_xml(self):
        smf_svc_config = SMFConfig('system/config-user')
        smf_svc_config_default = SMFInstance('default')
        smf_svc_config.insert_children(smf_svc_config_default)
        smf_svc_config_default.insert_children(self.root)
        smf_svc_config_default.insert_children(self.user)

        return [smf_svc_config.get_xml_tree()]
Esempio n. 2
0
    def to_xml(self):
        data_objects = []

        net_physical = SMFConfig("network/physical")
        data_objects.append(net_physical)

        net_default = SMFInstance("default", enabled=True)
        net_physical.insert_children(net_default)

        netcfg_prop = SMFPropertyGroup("netcfg")
        net_default.insert_children(netcfg_prop)

        if self.type == NetworkInfo.AUTOMATIC:
            netcfg_prop.setprop(name="active_ncp",
                                ptype="astring",
                                value="Automatic")
        elif self.type == NetworkInfo.MANUAL:
            netcfg_prop.setprop(name="active_ncp",
                                ptype="astring",
                                value="DefaultFixed")

            net_install = SMFConfig('network/install')
            data_objects.append(net_install)

            net_install_default = SMFInstance("default", enabled=True)
            net_install.insert_children([net_install_default])

            ipv4 = SMFPropertyGroup('install_ipv4_interface')
            ipv6 = SMFPropertyGroup('install_ipv6_interface')
            net_install_default.insert_children([ipv4, ipv6])

            static_address = IPAddress(self.ip_address, netmask=self.netmask)

            nic_name = self.get_nic_name(self.nic_iface)

            # IPv4 configuration
            ipv4.add_props(static_address=static_address,
                           name='%s/v4' % nic_name,
                           address_type='static')

            #
            # IPv4 default route is optional. If it was not configured
            # on Network screen, do not populate related smf property.
            #
            if self.gateway:
                ipv4.add_props(default_route=self.gateway)

            # IPv6 configuration
            ipv6.add_props(name='%s/v6' % nic_name,
                           address_type='addrconf',
                           stateless='yes',
                           stateful='yes')

        return [do.get_xml_tree() for do in data_objects]
    def to_xml(self):
        data_objects = []

        net_physical = SMFConfig("network/physical")
        data_objects.append(net_physical)

        net_default = SMFInstance("default", enabled=True)
        net_physical.insert_children(net_default)

        netcfg_prop = SMFPropertyGroup("netcfg")
        net_default.insert_children(netcfg_prop)

        if self.type == NetworkInfo.AUTOMATIC:
            netcfg_prop.setprop(name="active_ncp", ptype="astring",
                                value="Automatic")
        elif self.type == NetworkInfo.MANUAL:
            netcfg_prop.setprop(name="active_ncp", ptype="astring",
                                value="DefaultFixed")

            net_install = SMFConfig('network/install')
            data_objects.append(net_install)

            net_install_default = SMFInstance("default", enabled=True)
            net_install.insert_children([net_install_default])

            ipv4 = SMFPropertyGroup('install_ipv4_interface')
            ipv6 = SMFPropertyGroup('install_ipv6_interface')
            net_install_default.insert_children([ipv4, ipv6])

            static_address = IPAddress(self.ip_address, netmask=self.netmask)

            nic_name = self.get_nic_name(self.nic_iface)

            # IPv4 configuration
            ipv4.add_props(static_address=static_address,
                           name='%s/v4' % nic_name,
                           address_type='static')

            #
            # IPv4 default route is optional. If it was not configured
            # on Network screen, do not populate related smf property.
            #
            if self.gateway:
                ipv4.add_props(default_route=self.gateway)

            # IPv6 configuration
            ipv6.add_props(name='%s/v6' % nic_name,
                           address_type='addrconf',
                           stateless='yes',
                           stateful='yes')
            
        return [do.get_xml_tree() for do in data_objects]
Esempio n. 4
0
    def to_xml(self):
        '''Write SupportInfo object data to XML.

        Write out "None" values as empty strings.
        '''

        # Create no profile data if neither OCM nor ASR services are
        # configured on the system creating the profiles.
        if self.netcfg == SupportInfo.NOSVC:
            LOGGER().debug("SupportInfo.to_xml: NOT creating profile data.")
            return []

        LOGGER().debug("SupportInfo.to_xml: Creating profile data.")

        data_objects = []

        # Set up network configuration variables.  This blocks any entered
        # proxy variables from being put in the profile, if the last thing the
        # user selected was hub, etc.
        phost = puser = ocm_ppassword = asr_ppassword = None
        ocm_hub = asr_hub = None
        if self.netcfg == SupportInfo.PROXY:
            phost = "%s%s%s" % (self.proxy_hostname.strip(), ":",
                                self.proxy_port.strip())
            puser = self.proxy_user
            ocm_ppassword = self.ocm_proxy_password
            asr_ppassword = self.asr_proxy_password
        elif self.netcfg == SupportInfo.HUB:
            ocm_hub = self.ocm_hub
            asr_hub = self.asr_hub

        if self.ocm_available:
            LOGGER().debug("SupportInfo.to_xml: Creating OCM profile data.")
            smf_ocm_svc_config = SMFConfig('system/ocm')
            data_objects.append(smf_ocm_svc_config)
            smf_ocm_svc_config_instance = SMFInstance('default')
            smf_ocm_svc_pg = SMFPropertyGroup('reg')
            smf_ocm_svc_config.insert_children([smf_ocm_svc_config_instance])
            smf_ocm_svc_config_instance.insert_children([smf_ocm_svc_pg])

            # Don't use SMFPropertyGroup add_props() as it doesn't handle
            # dashes in the property names.
            smf_ocm_svc_pg_props = [
                SMFProperty("user", propval=CONV_EMPTY(self.mos_email)),
                SMFProperty("password",
                            propval=CONV_EMPTY(self.ocm_mos_password)),
                SMFProperty("key", propval=CONV_EMPTY(self.ocm_index)),
                SMFProperty("cipher", propval=CONV_EMPTY(self.ocm_ciphertext)),

                SMFProperty("proxy_host", propval=CONV_EMPTY(phost)),
                SMFProperty("proxy_user", propval=CONV_EMPTY(puser)),
                SMFProperty("proxy_password",
                            propval=CONV_EMPTY(ocm_ppassword)),
                SMFProperty("config_hub", propval=CONV_EMPTY(ocm_hub))]
            smf_ocm_svc_pg.insert_children(smf_ocm_svc_pg_props)

        if self.asr_available:
            LOGGER().debug("SupportInfo.to_xml: Creating ASR profile data.")
            smf_asr_svc_config = SMFConfig('system/fm/asr-notify')
            data_objects.append(smf_asr_svc_config)
            smf_asr_svc_config_instance = SMFInstance('default')
            smf_asr_svc_pg = SMFPropertyGroup('autoreg')
            smf_asr_svc_config.insert_children([smf_asr_svc_config_instance])
            smf_asr_svc_config_instance.insert_children([smf_asr_svc_pg])

            smf_asr_svc_pg_props = [
                SMFProperty("user", propval=CONV_EMPTY(self.mos_email)),
                SMFProperty("password",
                            propval=CONV_EMPTY(self.asr_mos_password)),
                SMFProperty("index", propval=CONV_EMPTY(self.asr_index)),
                SMFProperty("private-key",
                            propval=CONV_EMPTY(self.asr_private_key)),
                SMFProperty("public-key",
                            propval=CONV_EMPTY(self.asr_public_key)),
                SMFProperty("client-id",
                            propval=CONV_EMPTY(self.asr_client_id)),
                SMFProperty("timestamp",
                            propval=CONV_EMPTY(self.asr_timestamp)),

                SMFProperty("proxy-host", propval=CONV_EMPTY(phost)),
                SMFProperty("proxy-user", propval=CONV_EMPTY(puser)),
                SMFProperty("proxy-password",
                            propval=CONV_EMPTY(asr_ppassword)),
                SMFProperty("hub-endpoint", propval=CONV_EMPTY(asr_hub))]
            smf_asr_svc_pg.insert_children(smf_asr_svc_pg_props)

        return [do.get_xml_tree() for do in data_objects]
Esempio n. 5
0
    def to_xml(self):
        data_objects = []

        #
        # fmri:
        #  svc:/system/timezone:default
        #
        # configures:
        #  timezone - timezone/localtime smf property
        #
        if self.tz_timezone is not None:
            smf_svc_timezone = SMFConfig('system/timezone')
            data_objects.append(smf_svc_timezone)

            smf_svc_timezone_default = SMFInstance('default')
            smf_svc_timezone.insert_children(smf_svc_timezone_default)
            smf_pg_timezone = SMFPropertyGroup('timezone')
            smf_svc_timezone_default.insert_children(smf_pg_timezone)

            smf_pg_timezone.add_props(localtime=self.tz_timezone)

        #
        # fmri:
        #  svc:/system/environment:init
        #
        # configures:
        #  locale - environment/LANG smf property
        #
        if self.locale is not None:
            smf_svc_env = SMFConfig('system/environment')
            data_objects.append(smf_svc_env)

            smf_svc_env_init = SMFInstance('init')
            smf_svc_env.insert_children(smf_svc_env_init)
            smf_pg_env = SMFPropertyGroup('environment')
            smf_svc_env_init.insert_children(smf_pg_env)

            smf_pg_env.add_props(LANG=self.locale)

        #
        # fmri:
        #  svc:/system/identity:node
        #
        # configures:
        #  system hostname - config/nodename smf property
        #

        smf_svc_system_identity = SMFConfig('system/identity')
        data_objects.append(smf_svc_system_identity)
        smf_instance_system_identity = SMFInstance('node')
        smf_svc_system_identity.insert_children([smf_instance_system_identity])

        smf_pg_config = SMFPropertyGroup('config')
        smf_instance_system_identity.insert_children([smf_pg_config])

        # force the property type to 'astring'
        smf_pg_config.setprop(name="nodename",
                              ptype="astring",
                              value=self.hostname)

        #
        # fmri:
        #  svc:/system/keymap/config:default
        #
        # configures:
        #  keyboard layout - keymap/layout smf property
        #

        smf_svc_keymap = SMFConfig('system/keymap')
        data_objects.append(smf_svc_keymap)
        smf_instance_keymap = SMFInstance('default')
        smf_svc_keymap.insert_children([smf_instance_keymap])

        smf_pg_keymap = SMFPropertyGroup('keymap', pg_type='system')
        smf_instance_keymap.insert_children([smf_pg_keymap])

        smf_pg_keymap.add_props(layout=self.keyboard)

        #
        # fmri:
        #  svc:/system/console-login:default
        #
        # configures:
        #  terminal type - ttymon/terminal_type smf property
        #

        smf_svc_console = SMFConfig('system/console-login')
        data_objects.append(smf_svc_console)
        smf_instance_console = SMFInstance('default')
        smf_svc_console.insert_children([smf_instance_console])

        smf_pg_ttymon = SMFPropertyGroup('ttymon')
        smf_instance_console.insert_children([smf_pg_ttymon])

        smf_pg_ttymon.add_props(terminal_type=self.terminal_type)

        return [do.get_xml_tree() for do in data_objects]
    def to_xml(self):
        data_objects = []

        #
        # fmri:
        #  svc:/system/timezone:default
        #
        # configures:
        #  timezone - timezone/localtime smf property
        #
        if self.tz_timezone is not None:
            smf_svc_timezone = SMFConfig('system/timezone')
            data_objects.append(smf_svc_timezone)
        
            smf_svc_timezone_default = SMFInstance('default')
            smf_svc_timezone.insert_children(smf_svc_timezone_default)
            smf_pg_timezone = SMFPropertyGroup('timezone')
            smf_svc_timezone_default.insert_children(smf_pg_timezone)

            smf_pg_timezone.add_props(localtime=self.tz_timezone)

        #
        # fmri:
        #  svc:/system/environment:init
        #
        # configures:
        #  locale - environment/LANG smf property
        #
        if self.locale is not None:
            smf_svc_env = SMFConfig('system/environment')
            data_objects.append(smf_svc_env)
        
            smf_svc_env_init = SMFInstance('init')
            smf_svc_env.insert_children(smf_svc_env_init)
            smf_pg_env = SMFPropertyGroup('environment')
            smf_svc_env_init.insert_children(smf_pg_env)

            smf_pg_env.add_props(LANG=self.locale)

        #
        # fmri:
        #  svc:/system/identity:node
        #
        # configures:
        #  system hostname - config/nodename smf property
        #

        smf_svc_system_identity = SMFConfig('system/identity')
        data_objects.append(smf_svc_system_identity)
        smf_instance_system_identity = SMFInstance('node')
        smf_svc_system_identity.insert_children([smf_instance_system_identity])

        smf_pg_config = SMFPropertyGroup('config')
        smf_instance_system_identity.insert_children([smf_pg_config])

        smf_pg_config.add_props(nodename=self.hostname)

        #
        # fmri:
        #  svc:/system/keymap/config:default
        #
        # configures:
        #  keyboard layout - keymap/layout smf property
        #

        smf_svc_keymap = SMFConfig('system/keymap')
        data_objects.append(smf_svc_keymap)
        smf_instance_keymap = SMFInstance('default')
        smf_svc_keymap.insert_children([smf_instance_keymap])
        
        smf_pg_keymap = SMFPropertyGroup('keymap', pg_type='system')
        smf_instance_keymap.insert_children([smf_pg_keymap])
        
        smf_pg_keymap.add_props(layout=self.keyboard)
        
        #
        # fmri:
        #  svc:/system/console-login:default
        #
        # configures:
        #  terminal type - ttymon/terminal_type smf property
        #
        
        smf_svc_console = SMFConfig('system/console-login')
        data_objects.append(smf_svc_console)
        smf_instance_console = SMFInstance('default')
        smf_svc_console.insert_children([smf_instance_console])
        
        smf_pg_ttymon = SMFPropertyGroup('ttymon')
        smf_instance_console.insert_children([smf_pg_ttymon])
        
        smf_pg_ttymon.add_props(terminal_type=self.terminal_type)
        
        return [do.get_xml_tree() for do in data_objects]